/* animations.css — MOT-4 Texte masque montant + reveal sobre */

/* PIEGE PROD #13 : jamais de translateX au reveal */
.reveal-mask{overflow:hidden;display:inline-block;line-height:1.08;padding-bottom:.04em;}
.reveal-mask > *{
  display:inline-block;
  transform:translateY(105%);
  transition:transform .7s cubic-bezier(.2,.8,.2,1);
}
.reveal-mask.in > *{transform:none;}

[data-reveal]:not(.reveal-mask){
  opacity:0;transform:translateY(16px);
  transition:opacity .6s ease, transform .6s ease;
}
[data-reveal]:not(.reveal-mask).in{opacity:1;transform:none;}

/* Stagger : enfants en cascade */
.stagger > *{
  opacity:0;transform:translateY(18px);
  transition:opacity .55s ease, transform .55s ease;
}
.stagger.in > *{opacity:1;transform:none;}
.stagger.in > *:nth-child(1){transition-delay:.04s;}
.stagger.in > *:nth-child(2){transition-delay:.10s;}
.stagger.in > *:nth-child(3){transition-delay:.16s;}
.stagger.in > *:nth-child(4){transition-delay:.22s;}
.stagger.in > *:nth-child(5){transition-delay:.28s;}
.stagger.in > *:nth-child(6){transition-delay:.34s;}
.stagger.in > *:nth-child(7){transition-delay:.40s;}
.stagger.in > *:nth-child(8){transition-delay:.46s;}

/* PIEGE PROD #9 : fallback reduced-motion */
@media (prefers-reduced-motion:reduce){
  .reveal-mask > *,
  [data-reveal],
  .stagger > *{
    opacity:1;transform:none;transition:none;
  }
}
