/* ============================================================
   Effetti globali: smooth scroll (Lenis) + comparsa leggera dei testi.
   ============================================================ */

/* Lenis */
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; }
.lenis.lenis-smooth iframe { pointer-events: none; }

/* Comparsa leggera dei testi allo scroll.
   Nascosti fin dal primo paint via html.reveal-on (classe aggiunta da uno <script> nel <head>):
   niente flicker, e si anima ANCHE la prima sezione above-the-fold. Il JS aggiunge .is-visible. */
html.reveal-on main :is(h1, h2, [class*="__lead"], [class*="__text"], [class*="__intro"], [class*="__body"], [class*="__title"]) {
  opacity: 0;
  transform: translateY(1.5rem);
  transition: opacity .8s ease, transform .8s cubic-bezier(.16, 1, .3, 1);
}
html.reveal-on main :is(h1, h2, [class*="__lead"], [class*="__text"], [class*="__intro"], [class*="__body"], [class*="__title"]).is-visible {
  opacity: 1;
  transform: none;
}

@media (prefers-reduced-motion: reduce) {
  html.reveal-on main :is(h1, h2, [class*="__lead"], [class*="__text"], [class*="__intro"], [class*="__body"], [class*="__title"]) {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
  }
}
