/* animations.css : MOT-4 texte masque montant + reveal sobre */

/* Reveal generique : translateY uniquement (PIEGE PROD #13) */
[data-reveal]:not(.reveal-mask){
  opacity:0;
  transform:translateY(18px);
  transition:opacity .6s ease,transform .6s ease;
  will-change:opacity,transform;
}
[data-reveal]:not(.reveal-mask).in{opacity:1;transform:none;}

/* MOT-4 Texte masque montant : applique au H1 hero + titres de sections cles */
.reveal-mask{overflow:hidden;display:block;}
.reveal-mask > *{
  display:inline-block;
  transform:translateY(105%);
  transition:transform .8s cubic-bezier(.2,.8,.2,1);
  will-change:transform;
}
.reveal-mask.in > *{transform:none;}

/* Stagger sur grilles/cards */
.stagger > *{
  opacity:0;
  transform:translateY(20px);
  transition:opacity .55s ease,transform .55s ease;
}
.stagger.in > *{opacity:1;transform:none;}
.stagger.in > *:nth-child(1){transition-delay:.05s;}
.stagger.in > *:nth-child(2){transition-delay:.12s;}
.stagger.in > *:nth-child(3){transition-delay:.19s;}
.stagger.in > *:nth-child(4){transition-delay:.26s;}
.stagger.in > *:nth-child(5){transition-delay:.33s;}
.stagger.in > *:nth-child(6){transition-delay:.40s;}
.stagger.in > *:nth-child(7){transition-delay:.47s;}
.stagger.in > *:nth-child(8){transition-delay:.54s;}

/* Reduced motion : on coupe tout */
@media (prefers-reduced-motion:reduce){
  [data-reveal],.reveal-mask > *,.stagger > *{
    opacity:1 !important;
    transform:none !important;
    transition:none !important;
  }
}
