:root {
  /* Motion communicates care, not entertainment (§15): fades, small offsets,
     line reveals. Never bounce, never overshoot. */
  --ease-calm: cubic-bezier(0.22, 0.61, 0.36, 1); /* @kind other */
  --ease-in-out: cubic-bezier(0.4, 0, 0.2, 1); /* @kind other */
  --dur-instant: 120ms; /* @kind other */
  --dur-fast: 180ms; /* @kind other */
  --dur-base: 280ms; /* @kind other */
  --dur-slow: 480ms; /* @kind other */
  --dur-reveal: 720ms; /* @kind other */
  --reveal-offset: 16px; /* @kind spacing */
  --hover-lift: 2px; /* @kind spacing */
}
@media (prefers-reduced-motion: reduce) {
  :root {
    --dur-instant: 1ms; /* @kind other */
    --dur-fast: 1ms; /* @kind other */
    --dur-base: 1ms; /* @kind other */
    --dur-slow: 1ms; /* @kind other */
    --dur-reveal: 1ms; /* @kind other */
    --reveal-offset: 0px; /* @kind spacing */
    --hover-lift: 0px; /* @kind spacing */
  }
}
