/* Shared motion layer. Everything here only applies when <html> has .motion,
   which is set in <head> unless the visitor prefers reduced motion. */

/* Lenis smooth scroll */
html.lenis, html.lenis body { height: auto; }
html.lenis { scroll-behavior: auto !important; }
.lenis:not(.lenis-autoToggle).lenis-stopped { overflow: clip; }
.lenis [data-lenis-prevent] { overscroll-behavior: contain; }
.lenis.lenis-smooth iframe { pointer-events: none; }

/* Hidden until GSAP reveals them; motion.js removes .motion if GSAP fails to load */
.motion [data-reveal],
.motion [data-split] { visibility: hidden; }

/* Rules that draw in */
.motion [data-rule] { transform: scaleX(0); transform-origin: left center; }

/* Header that steps aside while reading and returns on scroll up */
[data-autohide] { transition: transform .45s cubic-bezier(.2, .7, .2, 1), background-color .3s, color .3s, box-shadow .3s; }
[data-autohide].nav-hidden { transform: translateY(-100%); }

/* Split-text helpers */
.split-line { padding-bottom: .06em; margin-bottom: -.06em; }
.word { display: inline-block; }
