/* Shared feedback for public pages. Static, usable controls are the default. */
.marketing-app {
  --feedback-ease:cubic-bezier(.16,1,.3,1);
  --feedback-duration:180ms;
  --feedback-press:100ms;
}

.marketing-app :is(.public-nav > a,.mega-nav > summary,.mega-core a,.seo-breadcrumb a,.category-how-link,.feature-topic-link,.public-topic-nav a,.public-docs-menu > summary,.topic-outline a,.text-link,.wordmark) {
  transition:color var(--feedback-duration) ease,background-color var(--feedback-duration) ease,opacity var(--feedback-press) ease;
}
.marketing-app .brand-footer :is(.brand-footer-col a,.brand-footer-meta a) {
  transition:opacity var(--feedback-duration) ease;
}
.marketing-app :is(.brand-footer-col a,.brand-footer-meta a,.wordmark):focus-visible {
  outline:3px solid currentColor;
  outline-offset:4px;
  border-radius:4px;
}
.marketing-app .button:is(:disabled,[aria-disabled="true"]) { transform:none; }
.marketing-app.reduce-motion :is(.button,.public-snapshot-cta,.seo-link-card):is(:hover,:active) { transform:none; }
.marketing-app :is(.seo-article a:not(.seo-link-card):not(.button),.public-nav a,.mega-nav > summary,.brand-footer-col a,.brand-footer-meta a,.text-link,.wordmark):active {
  opacity:.72;
}
.marketing-app :is(.public-nav > a:not(.public-snapshot-cta),.mega-nav > summary) {
  position:relative;
}
.marketing-app :is(.public-nav > a:not(.public-snapshot-cta),.mega-nav:not(.features-mega,.public-mobile-menu) > summary)::after {
  content:"";
  position:absolute;
  right:0;
  bottom:4px;
  left:0;
  height:1px;
  background:currentColor;
  opacity:0;
  transition:opacity var(--feedback-duration) ease;
}
.marketing-app :is(.public-nav > a:not(.public-snapshot-cta),.mega-nav:not(.features-mega,.public-mobile-menu) > summary):is(:hover,:focus-visible)::after { opacity:.45; }
.marketing-app .mega-core a:is(:hover,:focus-visible) { background:var(--subtle); }
.marketing-app :is(.category-faq,.faq-list) summary {
  transition:color var(--feedback-duration) ease;
}
.marketing-app :is(.category-faq,.faq-list) summary:is(:hover,:focus-visible) { color:var(--accent-text); }
.marketing-app :is(.category-faq,.faq-list) summary:active { color:var(--muted); }
.marketing-app :is(.category-faq,.faq-list) summary:focus-visible {
  outline:3px solid var(--focus-color,#306bff);
  outline-offset:4px;
  border-radius:4px;
}
.marketing-app :is(.category-faq,.faq-list) details[open] > p {
  animation:public-feedback-fade 140ms ease-out;
}
.marketing-app .mega-nav[open] > .mega-panel {
  animation:public-feedback-fade var(--feedback-duration) ease-out;
}
.marketing-app .snapshot-field input {
  transition:border-color 140ms ease,background-color 140ms ease;
}
.marketing-app .snapshot-field input:hover:not([aria-invalid="true"]) { border-color:var(--accent-text); }
.marketing-app #join-dialog.waitlist-dialog .waitlist-dismiss {
  transition:background-color var(--feedback-duration) ease,opacity var(--feedback-press) ease;
}
.marketing-app #join-dialog.waitlist-dialog .waitlist-dismiss:active { opacity:.65; }
.marketing-app #join-dialog.waitlist-dialog[open],
.marketing-app #join-dialog.waitlist-dialog[open]::backdrop {
  animation:public-feedback-fade var(--feedback-duration) ease-out;
}
.marketing-app .seo-article .seo-link-card {
  transition:border-color var(--feedback-duration) ease,background-color var(--feedback-duration) ease;
}
.marketing-app .seo-article .seo-link-card:active { border-color:var(--accent-text); background:var(--accent-soft,#f6f9ff); }

@keyframes public-feedback-fade { from { opacity:0; } to { opacity:1; } }

/* Movement is an enhancement; the hover surface and focus ring work without it. */
@media(prefers-reduced-motion:no-preference) {
  .marketing-app .seo-article .seo-link-card {
    transition:transform var(--feedback-duration) var(--feedback-ease),border-color var(--feedback-duration) ease,background-color var(--feedback-duration) ease;
  }
  .marketing-app :is(.seo-card-action .icon,.category-how-link .icon,.public-snapshot-cta .icon,.button > .icon) {
    transition:transform var(--feedback-duration) var(--feedback-ease);
  }
  .marketing-app .feature-topic-arrow { transition:transform var(--feedback-duration) var(--feedback-ease); }
  .marketing-app :is(.button:not(:disabled):not([aria-disabled="true"]),.public-snapshot-cta) {
    transition:transform var(--feedback-duration) var(--feedback-ease),background-color var(--feedback-duration) ease,border-color var(--feedback-duration) ease,opacity var(--feedback-press) ease;
  }
  .marketing-app .seo-article .seo-link-card:active {
    transform:translateY(0) scale(.99);
    transition-duration:var(--feedback-press);
  }
  .marketing-app :is(.button:not(:disabled):not([aria-disabled="true"]),.public-snapshot-cta):active {
    transform:translateY(0) scale(.98);
    transition-duration:var(--feedback-press);
  }
  .marketing-app :is(.category-faq summary .faq-toggle,.faq-list summary .icon),
  .marketing-app .mega-nav:not(.features-mega) .mega-chevron {
    transition:transform var(--feedback-duration) var(--feedback-ease),color var(--feedback-duration) ease;
  }
  .marketing-app .mega-nav[open] > .mega-panel { animation:public-feedback-enter var(--feedback-duration) var(--feedback-ease); }
  .marketing-app :is(.category-faq,.faq-list) details[open] > p { animation:public-feedback-enter var(--feedback-duration) var(--feedback-ease); }
  .marketing-app [data-state-diagram][data-entering] .state-icon {
    animation:public-state-enter 360ms var(--feedback-ease) both;
    animation-delay:calc(var(--state-order) * 90ms);
  }
  .marketing-app [data-state-diagram][data-entering] .state-icon path {
    stroke-dasharray:1;
    animation:public-state-draw 460ms ease-out both;
    animation-delay:calc(var(--state-order) * 90ms);
  }
  .marketing-app #join-dialog.waitlist-dialog .waitlist-dismiss {
    transition:transform var(--feedback-duration) var(--feedback-ease),background-color var(--feedback-duration) ease,opacity var(--feedback-press) ease;
  }
  .marketing-app #join-dialog.waitlist-dialog .waitlist-dismiss:active { transform:scale(.94); }
  .marketing-app #join-dialog.waitlist-dialog[open] { animation:public-feedback-enter 200ms var(--feedback-ease); }
}
@media(prefers-reduced-motion:no-preference) and (hover:hover) and (pointer:fine) {
  .marketing-app .seo-article .seo-link-card:hover { transform:translateY(-2px); }
  .marketing-app .seo-article .seo-link-card:hover .seo-card-action .icon { transform:translateX(3px); }
  .marketing-app .seo-article .seo-link-card:active { transform:translateY(0) scale(.99); }
  .marketing-app .seo-article .seo-link-card:active .seo-card-action .icon { transform:translateX(1px); }
  .marketing-app :is(.button:not(:disabled):not([aria-disabled="true"]),.public-snapshot-cta):hover { transform:translateY(-1px); }
  .marketing-app :is(.button:not(:disabled):not([aria-disabled="true"]),.public-snapshot-cta):hover > .icon { transform:translateX(2px); }
  .marketing-app :is(.button:not(:disabled):not([aria-disabled="true"]),.public-snapshot-cta):active { transform:translateY(0) scale(.98); }
  .marketing-app .category-how-link:hover .icon { transform:translateY(2px); }
  .marketing-app .feature-topic-link:hover .feature-topic-arrow { transform:translateX(3px); }
  .marketing-app .brand-state:hover .state-icon path {
    stroke-dasharray:1;
    animation:public-state-hover 420ms ease-out;
  }
}

@keyframes public-feedback-enter {
  from { opacity:0; translate:0 -3px; }
  to { opacity:1; translate:0 0; }
}
@keyframes public-state-enter {
  from { opacity:.4; transform:translateY(3px); }
  to { opacity:1; transform:translateY(0); }
}
@keyframes public-state-draw { from { stroke-dashoffset:1; } to { stroke-dashoffset:0; } }
@keyframes public-state-hover { from { stroke-dashoffset:1; } to { stroke-dashoffset:0; } }

@media(prefers-reduced-motion:reduce) {
  .marketing-app .seo-article .seo-link-card,
  .marketing-app .button,
  .marketing-app .seo-cta .button,
  .marketing-app .public-snapshot-cta {
    transition:background-color 120ms ease,border-color 120ms ease,color 120ms ease,opacity 100ms ease!important;
  }
  .marketing-app :is(.button,.public-snapshot-cta,.seo-link-card):is(:hover,:active) { transform:none; }
  .marketing-app :is(.category-faq summary .faq-toggle,.faq-list summary .icon),
  .marketing-app .mega-nav:not(.features-mega) .mega-chevron { transition:color 120ms ease; }
  .marketing-app #join-dialog.waitlist-dialog .waitlist-success { animation:public-feedback-fade 120ms ease-out; }
  .marketing-app #join-dialog.waitlist-dialog input.waitlist-input { transition:border-color 120ms ease; }
  .marketing-app :is(.feature-topic-link,.public-topic-nav a,.public-docs-menu > summary,.topic-outline a,.feature-topic-arrow) { transition:none; transform:none; }
}
