/* ML Motion: progressive enhancement only. This file never hides authored content. */
:where(.ml-lab-design, .ml-design, #ml-lab-audit-content) {
  --ml-motion-mode: normal;
  --ml-motion-speed: 1;
  --ml-motion-reveal-speed: 1;
  --ml-motion-ui-speed: 1;
  --ml-motion-reveal-scope: marked;
  --ml-motion-effect-source: global;
  --ml-motion-reveal-style: soft;
  --ml-motion-reveal-target: section;
  --ml-motion-delay: 0ms;
  --ml-motion-stagger: 140ms;
  --ml-motion-reveal-duration: 900ms;
  --ml-motion-mobile-duration: 450ms;
  --ml-motion-distance: 18px;
  --ml-motion-blur: 8px;
  --ml-motion-easing: cubic-bezier(.22, 1, .36, 1);
  --ml-motion-easing-standard: cubic-bezier(.22, 1, .36, 1);
  --ml-motion-easing-enter: cubic-bezier(.16, 1, .3, 1);
  --ml-motion-easing-exit: cubic-bezier(.7, 0, .84, 0);
  --ml-motion-duration-short: 120ms;
  --ml-motion-duration-medium: 220ms;
  --ml-motion-duration-long: 400ms;
  --ml-motion-duration-reveal: 900ms;
  --ml-motion-duration-reveal-mobile: 450ms;
}

/* Area presets (S6): a section may deviate without a script exception; the
   runtime reads these tokens from the revealed element itself. */
:where(.ml-lab-design, .ml-design, #ml-lab-audit-content) .ml-motion-calm { --ml-motion-distance: 8px; --ml-motion-blur: 4px; --ml-motion-reveal-style: fade; }
:where(.ml-lab-design, .ml-design, #ml-lab-audit-content) .ml-motion-bold { --ml-motion-distance: 32px; --ml-motion-blur: 12px; --ml-motion-reveal-style: soft; }

@media (prefers-reduced-motion: reduce) {
  .ml-lab-design, .ml-design, #ml-lab-audit-content { scroll-behavior: auto; }
}
