/*
 * motion-tokens.css — Pet Travel Planner shared motion system
 * design/SPEC.md Sec 4.2. Written once, inherited by every component that
 * animates (choice cards, loaders, stagger reveals, step transitions).
 * Self-hosted, no inline <style> — safe under the site's strict CSP.
 */

:root {
  /* Easing per motion tier */
  --ease-pop: cubic-bezier(0.34, 1.56, 0.64, 1);      /* micro: slight overshoot, "pup energy" */
  --ease-standard: cubic-bezier(0.25, 0.1, 0.25, 1);   /* standard: card/accordion/modal */
  --ease-bounce: cubic-bezier(0.68, -0.25, 0.32, 1.25); /* scene: step wipes, used sparingly */

  /* Durations per motion tier */
  --dur-micro: 160ms;     /* hover/focus, checkbox ticks, chip selection: 120-180ms */
  --dur-standard: 280ms;  /* card-to-card, accordion, modal in: 240-320ms */
  --dur-scene: 500ms;     /* step wipes, Step 5 beats: 400-600ms */
  --dur-ambient: 9s;      /* background parallax, idle breathing loops: 6-12s */
}

/*
 * Reduced motion: one shared guard block. Disables ambient/scene tiers via a
 * custom-property swap (duration -> 1ms) rather than display:none, so
 * layout never jumps; keeps micro-tier transitions but caps them at 100ms
 * with no overshoot easing.
 */
@media (prefers-reduced-motion: reduce) {
  :root {
    --ease-pop: var(--ease-standard);
    --dur-micro: 100ms;
    --dur-standard: 100ms;
    --dur-scene: 1ms;
    --dur-ambient: 1ms;
  }
}
