/* ═══════════════════════════════════════════════════════════════════════════
   Design Tokens — Motion v2
   Durations, easings, distances. Scroll-driven + spring physics.
   ═══════════════════════════════════════════════════════════════════════════ */

:root {

  /* ── Durations ──────────────────────────────────────────────────────── */

  --motion-duration-instant: 100ms;
  --motion-duration-fast: 150ms;
  --motion-duration-base: 300ms;
  --motion-duration-slow: 500ms;
  --motion-duration-glacial: 800ms;
  --motion-duration-reveal: 700ms;

  /* ── Easings ────────────────────────────────────────────────────────── */

  --motion-ease-out:    cubic-bezier(0.16, 1, 0.3, 1);       /* Standard deceleration */
  --motion-ease-in:     cubic-bezier(0.4, 0, 1, 1);          /* Acceleration */
  --motion-ease-in-out: cubic-bezier(0.65, 0, 0.35, 1);      /* Symmetric */
  --motion-ease-spring: cubic-bezier(0.34, 1.56, 0.64, 1);   /* Overshoot bounce */
  --motion-ease-smooth: cubic-bezier(0.22, 0.61, 0.36, 1);   /* Gentle deceleration */
  --motion-ease-bounce: cubic-bezier(0.68, -0.55, 0.27, 1.55); /* Playful bounce */

  /* ── Distances ──────────────────────────────────────────────────────── */

  --motion-distance-xs: 4px;
  --motion-distance-sm: 8px;
  --motion-distance-md: 16px;
  --motion-distance-lg: 32px;
  --motion-distance-xl: 48px;
}

/* ── Reduced Motion ───────────────────────────────────────────────────── */

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }

  html {
    scroll-behavior: auto;
  }
}
