/* Shared motion tokens. Every entry uses these; no raw cubic-bezier() anywhere else. */
:root {
  /* curves */
  --ease-out: cubic-bezier(.2, .7, .2, 1);      /* default for entries */
  --ease-spring: cubic-bezier(.3, 1.6, .5, 1);  /* overshoot, small elements only; a real spring below */
  --ease-inout: cubic-bezier(.4, 0, .2, 1);     /* draw-on, crossfades, start-and-stop moves */
  --ease-paper: cubic-bezier(.2, .9, .25, 1.15); /* paper layers: a slight landing overshoot */
  --ease-in: cubic-bezier(.55, 0, 1, .45);      /* accelerating: impacts and exits */

  /* durations */
  --dur-quick: 200ms;   /* hover, press, toggles */
  --dur-base: 600ms;    /* rise, pop, stamp */
  --dur-slow: 900ms;    /* large images, paper layers, calm pages */
  --dur-draw: 1600ms;   /* SVG stroke draw-on */

  /* rhythm and distance */
  --stagger: 80ms;        /* delay step between siblings */
  --stagger-paper: 500ms; /* delay step between paper layers */
  --rise-y: 18px;         /* rise travel */
}

/* Browsers with linear() easing get a real damped spring (damping ratio .45): one clear overshoot,
   one small settle. Others keep the cubic-bezier above. */
@supports (animation-timing-function: linear(0, 1)) {
  :root {
    --ease-spring: linear(0, 0.039, 0.14, 0.282, 0.444, 0.61, 0.767, 0.905, 1.018, 1.104, 1.162, 1.195, 1.205, 1.198, 1.178, 1.149, 1.116, 1.082, 1.05, 1.021, 0.998, 0.98, 0.967, 0.96, 0.958, 0.959, 0.963, 0.969, 0.976, 0.983, 0.989, 0.995, 1);
  }
}
