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

/* split-heading words (built by motion.js) */
.mw{display:inline-block; overflow:hidden; vertical-align:top; padding:.06em 0 .14em; margin-bottom:-.14em;}
.mwi{display:inline-block; will-change:transform;}
/* the hero highlight is a gradient-clipped text: give each word its own gradient so the clip survives the transform */
.hero h1.split-ready .highlight{background:none; -webkit-background-clip:border-box; background-clip:border-box; color:inherit; animation:none;}
.hero h1.split-ready .highlight .mwi{
  background:linear-gradient(90deg, var(--blue1), var(--blue2), var(--blue1)); background-size:200% auto;
  -webkit-background-clip:text; background-clip:text; color:transparent;
  animation:shine 5s linear infinite;
}

/* magnetic hover uses the individual `translate` property so it never fights :hover transforms */
.motion-on .magnetic{translate:var(--mx,0px) var(--my,0px);}

/* scroll progress bar */
.scroll-progress{
  position:fixed; top:0; inset-inline:0; height:3px; z-index:9998; pointer-events:none;
  background:linear-gradient(90deg, var(--blue2), #8b85ff, var(--blue2));
  transform:scaleX(0); transform-origin:left center;
}
[dir="rtl"] .scroll-progress{transform-origin:right center;}

@media (prefers-reduced-motion: reduce){
  .scroll-progress{display:none;}
}
