:root {
  --motion-duration-xs: 140ms;
  --motion-duration-sm: 220ms;
  --motion-duration-md: 360ms;
  --motion-duration-lg: 520ms;
  --motion-ease-standard: cubic-bezier(0.2, 0.72, 0.2, 1);
  --motion-ease-entrance: cubic-bezier(0.16, 1, 0.3, 1);
  --motion-ease-precision: cubic-bezier(0.32, 0.72, 0, 1);
  --motion-distance-sm: 10px;
  --motion-distance-md: 16px;
  --motion-stagger-step: 45ms;
}

/* Unified reveal system */
@media (prefers-reduced-motion: no-preference) {
  body.motion-ready [data-motion] {
    opacity: 0;
    transform: translate3d(0, var(--motion-distance-sm), 0);
    transition:
      opacity var(--motion-duration-md) var(--motion-ease-entrance),
      transform var(--motion-duration-md) var(--motion-ease-entrance);
    transition-delay: var(--motion-delay, 0ms);
    will-change: opacity, transform;
  }

  body.motion-ready [data-motion="section"] {
    transform: translate3d(0, var(--motion-distance-md), 0);
  }

  body.motion-ready [data-motion="heading"] {
    transform: translate3d(0, 8px, 0);
  }

  body.motion-ready [data-motion="card"] {
    transform: translate3d(0, 12px, 0);
  }

  body.motion-ready [data-motion].in-view {
    opacity: 1;
    transform: translate3d(0, 0, 0);
  }
}

/* Reduced motion: show content immediately */
@media (prefers-reduced-motion: reduce) {
  [data-motion] {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
  }
}

/* Refined typography motion cues */
:is(.hero h1, .page-title, .stats-title, .story-title) {
  transition: letter-spacing var(--motion-duration-sm) var(--motion-ease-standard);
}

@media (prefers-reduced-motion: no-preference) {
  body.motion-ready :is(.hero h1, .page-title, .stats-title, .story-title) {
    letter-spacing: 0.01em;
  }

  body.motion-ready :is(.hero h1, .page-title, .stats-title, .story-title).in-view {
    letter-spacing: 0;
  }
}

/* Premium interaction polish */
:is(.nav-cta a, .drawer-cta a, .hero-cta-btn, .transcript-cta, .support-inline-cta, .form-submit) {
  transition:
    transform var(--motion-duration-xs) var(--motion-ease-precision),
    box-shadow var(--motion-duration-sm) var(--motion-ease-standard),
    border-color var(--motion-duration-sm) var(--motion-ease-standard),
    background-color var(--motion-duration-sm) var(--motion-ease-standard),
    color var(--motion-duration-sm) var(--motion-ease-standard);
}

@media (prefers-reduced-motion: no-preference) {
  :is(.nav-cta a, .drawer-cta a, .hero-cta-btn, .transcript-cta, .support-inline-cta, .form-submit):hover {
    transform: translate3d(0, -2px, 0);
  }

  :is(.nav-cta a, .drawer-cta a, .hero-cta-btn, .transcript-cta, .support-inline-cta, .form-submit):active {
    transform: translate3d(0, 0, 0);
    transition-duration: 90ms;
  }
}

:is(.nav-card, .pillar, .contact-card, .pr-card, .feature-card, .timeline-card, .academic-card, .detail-card, .snap-card) {
  transition:
    transform var(--motion-duration-sm) var(--motion-ease-precision),
    box-shadow var(--motion-duration-sm) var(--motion-ease-standard),
    border-color var(--motion-duration-sm) var(--motion-ease-standard);
}

@media (prefers-reduced-motion: no-preference) {
  :is(.nav-card, .pillar, .contact-card, .pr-card, .feature-card, .timeline-card, .academic-card, .detail-card, .snap-card):hover {
    transform: translate3d(0, -3px, 0);
  }
}

/* Link feedback: subtle directional precision */
:is(.nav-link a, .drawer-link, .contact-card-value a, .support-email-link) {
  transition: color var(--motion-duration-xs) var(--motion-ease-standard);
}

@media (prefers-reduced-motion: no-preference) {
  :is(.nav-link a svg, .drawer-link-arrow, .submit-arrow) {
    transition: transform var(--motion-duration-xs) var(--motion-ease-precision);
  }

  :is(.nav-link a:hover svg, .drawer-link:hover .drawer-link-arrow) {
    transform: translate3d(3px, 0, 0);
  }
}
