/* OWNER: Sophie. The one motion language for every lane, release six, September 21 2026. Loaded before css/motion.css.
   Every lane uses these tokens and never invents a duration or a curve of its own.
   Law: transform and opacity only, nothing delays input, feedback at or under 200 ms, entrances at or under 450 ms. */
:root {
  --mo-ease: cubic-bezier(.2, .8, .2, 1);        /* the house curve: quick start, soft landing */
  --mo-ease-out: cubic-bezier(.16, 1, .3, 1);    /* entrances that settle */
  --mo-ease-in: cubic-bezier(.4, 0, 1, 1);       /* exits */
  --mo-spring: cubic-bezier(.34, 1.4, .64, 1);   /* one small overshoot, for pops only */
  --mo-instant: 90ms;
  --mo-fast: 160ms;
  --mo-base: 240ms;
  --mo-slow: 420ms;
  --mo-stagger: 28ms;
  --mo-rise: 10px;                               /* how far an entering element travels */
}
/* The kill switch. Under reduced motion everything lands at once. Lanes do not need their own copy of this rule. */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .01ms !important; animation-delay: 0s !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; transition-delay: 0s !important; scroll-behavior: auto !important; }
}
