/* Light scroll motion styles (pairs with motion.js). Nothing here applies until motion.js adds .motion-on. */
html.lenis, html.lenis body { height: auto; }
.lenis.lenis-smooth { scroll-behavior: auto !important; }
.lenis.lenis-smooth [data-lenis-prevent] { overscroll-behavior: contain; }
.lenis.lenis-stopped { overflow: hidden; }

.motion-on .fx { transition: opacity .85s cubic-bezier(.2,.7,.2,1) var(--d,0ms), transform 1s cubic-bezier(.2,.7,.2,1) var(--d,0ms); }
.motion-on .fx-focus:not(.in) { opacity: 0; transform: translateY(26px); }
.motion-on .fx-rise:not(.in) { opacity: 0; transform: translateY(30px); }
.motion-on .fx-unveil { transition-duration: 1.1s, 1.4s; }
.motion-on .fx-unveil:not(.in) { opacity: 0; transform: scale(.96) translateY(22px); }

/* Footer wordmark */
[data-mark] { display: block; white-space: nowrap; line-height: 1; overflow: hidden; padding: .02em 0 .2em; }
[data-mark] span { display: inline-block; }
.motion-on [data-mark] span { transform: translateY(105%); transition: transform .9s cubic-bezier(.2,.7,.2,1) calc(var(--i, 0) * 45ms); }
.motion-on [data-mark].up span { transform: none; }
