/**
 * Animations au scroll — apparition scroll-liée (scrubbée), pilotée par Lenis.
 * Le JS pose l'opacité et le glissement en inline à chaque frame ; le CSS ne
 * fait que déclarer l'état de base (masqué), l'état final et l'accessibilité.
 * Aucune transition ici : la fluidité vient du scroll lui-même, pas d'une
 * horloge indépendante (sinon ce serait désynchronisé du smooth scroll).
 */

.bejoy-reveal {
  will-change: opacity, transform;
}

/* État final figé une fois la révélation terminée (le JS retire les styles inline). */
.bejoy-reveal.is-in {
  opacity: 1;
  transform: none;
  will-change: auto;
}

@media (prefers-reduced-motion: reduce) {
  .bejoy-reveal {
    opacity: 1 !important;
    transform: none !important;
  }
}
