/* Scroll-reveal for `.gsapsection .reveal` elements. Hidden state lives here (a
   real stylesheet, applies from first paint); components/site/RevealOnScroll.tsx
   adds `.is-revealed` as each section enters view. Replaces the Webflow GSAP
   reveal, which loaded late under the deferred-script model and retroactively
   re-hid already-visible content (a jagged double reveal). Scoped to
   `.gsapsection` so `.reveal` outside a section is untouched. */
.gsapsection .reveal {
  opacity: 0;
  transform: translateY(50px);
  transition: opacity 1s cubic-bezier(0.16, 0.84, 0.44, 1),
              transform 1s cubic-bezier(0.16, 0.84, 0.44, 1);
  will-change: opacity, transform;
}

.gsapsection .reveal.is-revealed {
  opacity: 1;
  transform: none;
}

@media (prefers-reduced-motion: reduce) {
  .gsapsection .reveal {
    transition: none;
  }
}
