/* Reveal-up au scroll */
.reveal {
  opacity: 0;
  transform: translateY(18px);
  transition: opacity 700ms cubic-bezier(.22,.61,.36,1), transform 700ms cubic-bezier(.22,.61,.36,1);
  will-change: opacity, transform;
}
.reveal.is-visible {
  opacity: 1;
  transform: translateY(0);
}
.reveal-delay-1 { transition-delay: 90ms; }
.reveal-delay-2 { transition-delay: 180ms; }
.reveal-delay-3 { transition-delay: 270ms; }
.reveal-delay-4 { transition-delay: 360ms; }
.reveal-delay-5 { transition-delay: 450ms; }

/* Stagger cards (data-stagger="1..n") */
.services-grid .card { transition-delay: calc(var(--i, 0) * 90ms); }

/* Underline accent qui se dessine au reveal du H1 */
.hero h1 .accent-wrap::after {
  transform-origin: left center;
  transform: skew(-1deg) scaleX(0.4);
  opacity: 0.6;
  transition: transform 900ms 250ms cubic-bezier(.22,.61,.36,1), opacity 600ms 250ms ease;
}
.hero.is-visible h1 .accent-wrap::after {
  transform: skew(-1deg) scaleX(1);
  opacity: 1;
}

/* Reduced motion : tout couper */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; transition-duration: 0.01ms !important; scroll-behavior: auto !important; }
  .reveal { opacity: 1; transform: none; }
  .hero h1 .accent-wrap::after { transform: skew(-1deg) scaleX(1); opacity: 1; }
  .dispo-dot { animation: none; }
}
