/* Shared motion language. Content is visible before JS and after every effect.
   Entrance effects are finite; there are no recurring timers or scroll loops. */
@media screen and (prefers-reduced-motion:no-preference) {
  :root {--motion-ease:cubic-bezier(.16,1,.3,1)}
  @keyframes mp-arrive {
    from {opacity:.5;translate:0 18px}
    to {opacity:1;translate:0 0}
  }
  @keyframes mp-visual-arrive {
    from {opacity:.65;translate:0 22px;scale:.985}
    to {opacity:1;translate:0 0;scale:1}
  }
  @keyframes mp-soft-arrive {
    from {opacity:.65;translate:0 8px}
    to {opacity:1;translate:0 0}
  }
  @keyframes mp-aura {
    from {opacity:0;translate:5% 3%;scale:.94}
    65% {opacity:1}
    to {opacity:0;translate:-3% 0;scale:1.02}
  }
  @keyframes mp-line-draw {from {scale:0 1} to {scale:1 1}}
  @keyframes mp-control-press {50% {translate:0 1px}}
  @keyframes mp-route-draw {from {stroke-dashoffset:1} to {stroke-dashoffset:0}}
  @keyframes mp-node-arrive {
    from {opacity:.6;translate:0 9px;scale:.97}
    to {opacity:1;translate:0 0;scale:1}
  }

  /* First impression: headline, explanation, action, then product visual. */
  .is-hero-playing :is(.hero-copy,.checkout-hero-grid>div:first-child,.orch-hero>.container,.compact-hero>.container,.contact-hero>.container,.not-found>.container)>.eyebrow,
  .is-hero-playing>.container>.eyebrow {animation:mp-arrive 650ms var(--motion-ease) both}
  .is-hero-playing h1 {animation:mp-arrive 760ms var(--motion-ease) 70ms both}
  .is-hero-playing :is(.hero-description,.orch-hero-description,.hero-audience,.article-deck) {animation:mp-arrive 760ms var(--motion-ease) 150ms both}
  .is-hero-playing :is(.hero-actions,.orch-hero-actions,.orch-hero-points,.checkout-hero-note,.big-search,.suggested-searches) {animation:mp-arrive 700ms var(--motion-ease) 230ms both}
  .is-hero-playing .investigation>.portal-preview,
  .is-hero-playing :is(.checkout-hero-art,.product-hero-visual,.ai-page-hero-visual,.merchant-hero-card) {animation:mp-visual-arrive 850ms var(--motion-ease) 180ms both}
  :is(.home-hero,.checkout-hero,.orch-hero,.product-hero,.compact-hero) {position:relative;isolation:isolate}
  :is(.home-hero,.checkout-hero,.orch-hero,.product-hero,.compact-hero).is-hero-playing::after {
    content:"";position:absolute;inset:4% 6%;pointer-events:none;z-index:-1;
    background:radial-gradient(ellipse at 75% 40%,#0891b213,transparent 45%),radial-gradient(ellipse at 35% 80%,#0f766e10,transparent 50%);
    animation:mp-aura 1100ms var(--motion-ease) both;
  }

  /* Sections, imagery and cards share one restrained rise and short stagger. */
  .is-card-playing {animation:mp-arrive 640ms var(--motion-ease) both}
  .is-card-playing.motion-slot-1 {animation-delay:65ms}
  .is-card-playing.motion-slot-2 {animation-delay:130ms}
  .is-card-playing.motion-slot-3 {animation-delay:195ms}
  .is-visual-playing {animation:mp-visual-arrive 820ms var(--motion-ease) 60ms both}
  .is-copy-playing {animation:mp-arrive 700ms var(--motion-ease) both}
  .is-cta-playing :is(.eyebrow,h2,p,.cta-actions,.orch-cta-actions),.is-cta-playing>.container>.button {animation:mp-arrive 680ms var(--motion-ease) both}
  .is-cta-playing h2 {animation-delay:60ms}
  .is-cta-playing p:not(.eyebrow) {animation-delay:120ms}
  .is-cta-playing :is(.cta-actions,.orch-cta-actions),.is-cta-playing>.container>.button {animation-delay:180ms}
  .is-footer-playing>div {animation:mp-arrive 620ms var(--motion-ease) both}
  .is-footer-playing>div:nth-child(2) {animation-delay:70ms}
  .is-footer-playing>div:nth-child(3) {animation-delay:140ms}
  .is-footer-playing>div:nth-child(4) {animation-delay:210ms}
  .is-reveal-playing>.section-heading .eyebrow-line,
  .is-reveal-playing>.editorial-heading .eyebrow-line {transform-origin:left;animation:mp-line-draw 650ms var(--motion-ease) both}

  /* A one-time network connection sequence, followed by selection feedback. */
  .is-network-playing .orch-hub {animation:mp-node-arrive 650ms var(--motion-ease) both}
  .is-network-playing .orch-provider {animation:mp-node-arrive 650ms var(--motion-ease) 120ms both}
  .is-network-playing .orch-provider:nth-of-type(2) {animation-delay:190ms}
  .is-network-playing .orch-provider:nth-of-type(3) {animation-delay:260ms}
  .is-network-playing .orch-provider:nth-of-type(4) {animation-delay:330ms}
  .is-network-playing .orch-provider:nth-of-type(5) {animation-delay:400ms}
  .is-network-playing .orch-provider:nth-of-type(6) {animation-delay:470ms}
  .is-network-playing .orch-route {stroke-dasharray:1;animation:mp-route-draw 1000ms var(--motion-ease) 240ms both}
  .orch-route.is-route-playing {stroke-dasharray:1;animation:mp-route-draw 700ms var(--motion-ease) both}

  /* Controls respond immediately; motion never delays navigation or submission. */
  .is-pressed {animation:mp-control-press 180ms var(--motion-ease)}
  .button .icon,.text-link .icon,.checkout-jump a .icon,.page-subnav a .icon {transition:translate 220ms var(--motion-ease)}
  .button:is(:hover,:focus-visible) .icon,.text-link:is(:hover,:focus-visible) .icon {translate:3px 0}
  .nav-trigger .icon {transition:rotate 220ms var(--motion-ease)}
  .nav-trigger[aria-expanded="true"] .icon {rotate:180deg}
  .nav-dropdown:not([hidden]):not([inert])>a {animation:mp-soft-arrive 260ms var(--motion-ease) both}
  .nav-dropdown:not([hidden]):not([inert])>a:nth-child(2n) {animation-delay:35ms}
  .portal-preview-navigation a,.merchant-category-nav a,.portal-menu-group,.checkout-feature,.checkout-jump-card,.orch-guide-card,.article-card {
    transition:translate 250ms var(--motion-ease),box-shadow 250ms var(--motion-ease),border-color 220ms ease,background-color 220ms ease;
  }
  .portal-preview-navigation a>span {transition:translate 200ms var(--motion-ease)}
  .portal-preview-navigation a:is(:hover,:focus-visible)>span {translate:3px 0}
  .portal-menu-expand,.faq-item summary::after,.merchant-module summary::after {transition:transform 240ms var(--motion-ease)}
  :is(.portal-menu-group,.faq-item,.checkout-confirmation,.merchant-module)[open]>:not(summary) {animation:mp-soft-arrive 280ms var(--motion-ease) both}
  :is(.checkout-image-dialog,.home-video-dialog)[open] {animation:mp-soft-arrive 260ms var(--motion-ease) both}
  :is(.checkout-image-dialog,.home-video-dialog)[open]::backdrop {animation:mp-backdrop 220ms ease both}
  @keyframes mp-backdrop {from {opacity:0} to {opacity:1}}
  /* Focused content is immediately settled, including during a delayed reveal. */
  :is(.is-card-playing,.is-visual-playing,.is-copy-playing):focus-within {animation:none}
  .is-hero-playing :is(.hero-actions,.orch-hero-actions,.big-search):focus-within {animation:none}
}
@media screen and (hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference) {
  :is(a.checkout-feature,.orch-guide-card,.article-card,.merchant-category-nav a):hover {translate:0 -4px;border-color:var(--brand-secondary);box-shadow:0 12px 28px #0f766e0d}
  .portal-menu-group:hover {border-color:var(--brand-secondary);box-shadow:0 5px 16px #0f766e09}
  .checkout-shot-link img {transition:scale 450ms var(--motion-ease)}
  .checkout-shot-link:hover img {scale:1.015}
  .checkout-jump-card:hover {translate:0 -5px}
  .checkout-jump-card:hover .checkout-jump-arrow .icon {translate:3px 0}
}
@media screen and (max-width:1100px) and (prefers-reduced-motion:no-preference) {
  .primary-nav.is-open {animation:mp-soft-arrive 230ms var(--motion-ease) both}
}
@media (prefers-reduced-motion:reduce) {
  /* Includes effects that may already be running when the OS preference changes. */
  *,*::before,*::after {animation:none!important;transition:none!important;scroll-behavior:auto!important}
}
@media print {*,*::before,*::after {animation:none!important;transition:none!important}}
