/* a7-motion.css — shared a7.ae MOTION tokens (single source of truth).
 * Served at /static/apps/a7-motion.css. Consumed by features/home; a7-reveal.js
 * inlines the SAME easings/distances as CSS-var fallbacks, so motion stays
 * coherent even on surfaces that haven't loaded this file yet.
 *
 * Borrowed from /about's signature language (NOT its spine/odometer metaphors):
 *   arrive  = every reveal/arrival
 *   surface = panels/menus settling
 *   pop     = interactive spring ONLY (taps, dropdowns)
 */
:root{
  --a7-ease-arrive: cubic-bezier(.16, 1, .3, 1);
  --a7-ease-surface: cubic-bezier(.22, 1, .36, 1);
  --a7-ease-pop: cubic-bezier(.34, 1.56, .64, 1);

  --a7-dur-hover: .18s;
  --a7-dur-arrive: .6s;
  --a7-dur-stage: .72s;
  --a7-dur-sign: .95s;

  --a7-rise: 18px;   /* reveals RISE from below (Apple / /about convention) */
  --a7-blur: 6px;

  --a7-stagger: .08s;  /* between staggered siblings, reading order */
}

/* Reduced motion neutralises distance/blur/duration at the token layer, so any
 * consumer that reads these vars is automatically calm — belt-and-suspenders
 * with each surface's own prefers-reduced-motion block. */
@media (prefers-reduced-motion: reduce){
  :root{
    --a7-dur-hover: .001s; --a7-dur-arrive: .001s; --a7-dur-stage: .001s; --a7-dur-sign: .001s;
    --a7-rise: 0px; --a7-blur: 0px; --a7-stagger: 0s;
  }
}
