/* animations.css — MOT-3 Stagger marqué, reveals, IntersectionObserver */

/* Reveal éléments (état initial masqué) */
.reveal {
  opacity: 0;
  transform: translateY(22px);
  transition: opacity 0.55s var(--ease-out), transform 0.55s var(--ease-out);
}
.reveal.is-visible {
  opacity: 1;
  transform: translateY(0);
}

/* Stagger enfants — MOT-3 (délais .05 à .54s, max 8 enfants) */
.stagger-children > * { opacity: 0; transform: translateY(18px); transition: opacity 0.5s var(--ease-out), transform 0.5s var(--ease-out); }
.stagger-children.is-visible > *:nth-child(1) { opacity: 1; transform: none; transition-delay: 0.05s; }
.stagger-children.is-visible > *:nth-child(2) { opacity: 1; transform: none; transition-delay: 0.13s; }
.stagger-children.is-visible > *:nth-child(3) { opacity: 1; transform: none; transition-delay: 0.21s; }
.stagger-children.is-visible > *:nth-child(4) { opacity: 1; transform: none; transition-delay: 0.29s; }
.stagger-children.is-visible > *:nth-child(5) { opacity: 1; transform: none; transition-delay: 0.37s; }
.stagger-children.is-visible > *:nth-child(6) { opacity: 1; transform: none; transition-delay: 0.45s; }
.stagger-children.is-visible > *:nth-child(7) { opacity: 1; transform: none; transition-delay: 0.54s; }
.stagger-children.is-visible > *:nth-child(8) { opacity: 1; transform: none; transition-delay: 0.54s; }

/* Masque de révélation H1 hero */
.reveal-mask {
  clip-path: inset(0 100% 0 0);
  transition: clip-path 0.85s var(--ease-out);
}
.reveal-mask.is-visible {
  clip-path: inset(0 0% 0 0);
}

/* Stat counters — état initial texte affiché en JS */

/* prefers-reduced-motion — tout couper */
@media (prefers-reduced-motion: reduce) {
  .reveal,
  .stagger-children > *,
  .reveal-mask,
  .heroZoom,
  .hero-bg img {
    opacity: 1 !important;
    transform: none !important;
    clip-path: none !important;
    transition: none !important;
    animation: none !important;
  }
}
