/* Case study motion (owner 2026-10-11; design/prototypes/case-study-motion-v2.html): rows and cards stagger in once
   (fade + 16 px rise, 0.5 s, 80 ms apart); js/case-motion.js adds .cm-on (hidden start) and .cm-in (shown), so without JS
   or with reduced motion everything is simply there. Count-up numbers keep their final width while counting (min-width measured after the fonts loaded). */
.cm-on .cm-item { opacity: 0; transform: translateY(var(--cm-rise)); }
.cm-on.cm-in .cm-item { opacity: 1; transform: none; transition: opacity var(--cm-dur) var(--pg-ease), transform var(--cm-dur) var(--pg-ease);
  transition-delay: calc(var(--cm-i, 0) * var(--cm-step)); }
.cm-counting { font-variant-numeric: tabular-nums; }   /* only while counting; removed at the end */
@media (prefers-reduced-motion: reduce) { .cm-on .cm-item { opacity: 1; transform: none; transition: none; } }
