/* Generated by motion-apply.mjs -- DO NOT EDIT BY HAND. Source: _motion/motion.json
 * Non-destructive motion overlay (ADR 0026). Tier-1 CSS motion only here;
 * tier-2 runtime hooks live in site.motion.js. Reduced-motion guarded.
 */
:root{
  --mo-fast:150ms; --mo-base:260ms; --mo-slow:460ms;
  --mo-ease-spring:linear(0, 0.013, 0.048, 0.097, 0.156, 0.22, 0.286, 0.353, 0.417, 0.479, 0.538, 0.592, 0.642, 0.687, 0.728, 0.765, 0.798, 0.826, 0.852, 0.874, 0.894, 0.911, 0.925, 0.938, 0.948, 0.958, 0.965, 0.972, 0.977, 0.982, 0.985, 0.989, 0.991, 0.993, 0.995, 0.996);            /* MUTED spring, settle 425ms */
  --mo-ease-out:cubic-bezier(0.22,1,0.36,1);
  --mo-rise:16px;
}

/* Reduced-motion guard (the ONLY place !important is permitted -- a11y reset). */
@media (prefers-reduced-motion: reduce){
  html.mo-js .mo-reveal,
  html.mo-js .mo-stagger > *{ opacity:1 !important; transform:none !important; transition:none !important; }
  [class*="mo-"]{ animation:none !important; }
}

/* Scroll-reveal utilities. Hidden state applies ONLY when site.motion.js has
 * added html.mo-js -- so no-JS visitors always see content (no-JS-safe). */
@media (prefers-reduced-motion: no-preference){
  html.mo-js .mo-reveal:not(.mo-stagger){ opacity:0; transform:translateY(var(--mo-rise)); transition:opacity var(--mo-slow) ease, transform var(--mo-slow) var(--mo-ease-spring); will-change:opacity,transform; }
  html.mo-js .mo-reveal:not(.mo-stagger).mo-in{ opacity:1; transform:none; }
  html.mo-js .mo-reveal.mo-fade:not(.mo-stagger){ transform:none; }
  html.mo-js .mo-reveal.mo-scale:not(.mo-stagger){ transform:scale(0.96); }
  html.mo-js .mo-reveal.mo-scale:not(.mo-stagger).mo-in{ transform:none; }
  html.mo-js .mo-stagger > *{ opacity:0; transform:translateY(var(--mo-rise)); transition:opacity var(--mo-slow) ease, transform var(--mo-slow) var(--mo-ease-spring); will-change:opacity,transform; }
  html.mo-js .mo-stagger > *.mo-in{ opacity:1; transform:none; }
}
html.mo-js .mo-ed1221{ --mo-rise:18px; }
html.mo-js .mo-7a4e3e{ --mo-rise:22px; }
html.mo-js .mo-cc500b{ --mo-rise:18px; }
html.mo-js .mo-4f8ac8{ --mo-rise:16px; }

/* M003 -- hover.card-lift -- * .card
   Product cards should reward exploration -- these are objects you pick up. A small spring lift on hover signals tactility without the cartoonish bounce that would betray the MUTED character. Transform-only, GPU-cheap. */
.mo-01b610{ transition: transform var(--mo-base) var(--mo-ease-spring); }
.mo-01b610:hover{ transform: translateY(-5px); }
