/* ===== SCALEX INFINITY — MOTION TOKENS =====
   Motion reads as engineering process flow: measured, mechanical-precise
   ease-outs, never bouncy or playful. No spring/elastic easing anywhere. */
:root{
  --ease-precision: cubic-bezier(0.22, 1, 0.36, 1); /* @kind other */
  --ease-flow: cubic-bezier(0.65, 0, 0.35, 1); /* @kind other */
  --ease-linear: linear; /* @kind other */
  --ease-standard: cubic-bezier(0.4, 0, 0.2, 1); /* @kind other */

  --duration-instant: 100ms; /* @kind other */
  --duration-fast: 180ms; /* @kind other */
  --duration-base: 280ms; /* @kind other */
  --duration-slow: 480ms; /* @kind other */
  --duration-cinematic: 900ms; /* @kind other */

  --transition-hover: background-color var(--duration-fast) var(--ease-standard), border-color var(--duration-fast) var(--ease-standard), color var(--duration-fast) var(--ease-standard);
  --transition-press: transform var(--duration-instant) var(--ease-standard);
  --transition-reveal: opacity var(--duration-slow) var(--ease-precision), transform var(--duration-slow) var(--ease-precision);
}
/* Usage:
   Hover: color/border/background shifts only, never scale — --transition-hover
   Press: scale(0.98) via --transition-press
   Scroll reveal: translateY(24px)->0 + opacity 0->1, --transition-reveal, stagger 60–90ms
   Infinity-loop motifs (ribbons, progress lines): --ease-linear, 6–12s duration, no easing snap
   Section transitions: --ease-flow, --duration-cinematic */
