/* Motion starts only after motion.js is ready, so content stays visible without JS. */
.motion-ready [data-motion="reveal"],
.motion-ready [data-motion="wipe"] { transition: opacity .65s ease var(--motion-delay,0ms), transform .65s ease var(--motion-delay,0ms), clip-path .7s ease var(--motion-delay,0ms); }
.motion-ready [data-motion="reveal"]:not(.is-in) { opacity: 0; transform: translateY(24px); }
.motion-ready [data-motion="wipe"]:not(.is-in) { clip-path: inset(0 100% 0 0); }
.motion-ready [data-motion="parallax"] { transform: translateY(var(--motion-shift,0%)); }
.motion-ready [data-motion="rule"] { transform-origin: left center; transform: scaleX(var(--motion-progress,0)); }
.motion-ready [data-motion="flash"] { opacity: var(--motion-opacity,.16); }
.motion-ready [data-motion="warm"] { filter: grayscale(var(--motion-gray,1)) blur(var(--motion-blur,6px)); }
.motion-ready [data-motion="fill"] { transform-origin: top center; transform: scaleY(var(--motion-progress,0)); }
.motion-ready [data-motion="scrub"] { transform-origin: left center; transform: perspective(550px) rotateY(var(--motion-angle,0deg)); }
[data-motion="marquee"] { overflow: hidden; }
.motion-ready [data-motion="marquee"] .motion-track { width: max-content; display: flex; animation: motion-travel 12s linear infinite; animation-delay: var(--motion-delay,0ms); }
@keyframes motion-travel { to { transform: translateX(-50%); } }
@media (prefers-reduced-motion: reduce) {
  [data-motion], [data-motion] * { animation: none !important; transition: none !important; transform: none !important; clip-path: none !important; filter: none !important; opacity: 1 !important; }
}
