/* ============================================================
   AMBIZ — Animations au scroll
   Reveal fade-in + slide-up pilotées par .ambiz-reveal + .is-visible.
   Le JS reveal.js applique automatiquement .ambiz-reveal aux éléments
   ciblés, puis Intersection Observer ajoute .is-visible.
   ============================================================ */

.ambiz-reveal {
  opacity: 0;
  transform: translateY(24px);
  transition: opacity 600ms cubic-bezier(0.2, 0, 0.4, 1),
              transform 600ms cubic-bezier(0.2, 0, 0.4, 1);
  will-change: opacity, transform;
}

.ambiz-reveal.is-visible {
  opacity: 1;
  transform: none;
}

/* Stagger : --reveal-index est posée par JS sur chaque item d'un groupe.
   Le délai progressif donne l'effet "cascade" naturel. */
.ambiz-reveal[style*="--reveal-index"] {
  transition-delay: calc(var(--reveal-index) * 60ms);
}

/* Limite le stagger pour éviter des délais absurdes (ex. 12e logo) */
.ambiz-reveal[style*="--reveal-index"]:nth-child(n+9) {
  transition-delay: 480ms;
}

/* Respect des préférences utilisateur */
@media (prefers-reduced-motion: reduce) {
  .ambiz-reveal {
    opacity: 1;
    transform: none;
    transition: none;
  }
}
