/* Lenis (MIT) base rules, from /assets/vendor/lenis/lenis.css */
html.lenis, html.lenis body { height: auto; }
.lenis:not(.lenis-autoToggle).lenis-stopped { overflow: clip; }
.lenis [data-lenis-prevent] { overscroll-behavior: contain; }
.lenis.lenis-smooth iframe { pointer-events: none; }
/* Lenis drives the easing; the browser's own smooth scroll would fight it. */
html.lenis { scroll-behavior: auto !important; }

/* Reveal on scroll (only once the script has marked the page, so no-JS visitors see everything) */
.sm-reveal-ready .sm-reveal {
  opacity: 0;
  transform: translate3d(0, 22px, 0);
  transition: opacity .75s cubic-bezier(.22, .61, .36, 1), transform .75s cubic-bezier(.22, .61, .36, 1);
  transition-delay: var(--sm-reveal-delay, 0ms);
  will-change: opacity, transform;
}
.sm-reveal-ready .sm-reveal.is-in { opacity: 1; transform: none; will-change: auto; }

/* Softer state changes on links, buttons and cards */
a, button, .button, input, select, textarea {
  transition-property: color, background-color, border-color, box-shadow, opacity;
  transition-duration: .25s;
  transition-timing-function: ease;
}

@media (prefers-reduced-motion: reduce) {
  .sm-reveal-ready .sm-reveal { opacity: 1; transform: none; transition: none; }
}
