/* =====================================================
   ANIMATIONS.CSS — Keyframes & états de révélation
   Couleurs : #d0252a | #f2c728 | #b24290
   ===================================================== */

/* -------- LOADER -------- */
@keyframes loaderPulse {
  0%, 100% { opacity: 0.6; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.08); }
}
@keyframes loaderRule {
  from { width: 0; }
  to { width: 140px; }
}

/* -------- HERO -------- */
@keyframes heroZoom {
  from { transform: scale(1.15); }
  to { transform: scale(1); }
}
@keyframes scrollLine {
  0% { top: -100%; }
  60% { top: 100%; }
  100% { top: 100%; }
}

/* -------- REVEAL DE BASE (piloté par JS via IntersectionObserver) -------- */
.reveal-fade,
.reveal-blur,
.reveal-up {
  opacity: 0;
}

.reveal-fade { transition: opacity 1.1s var(--ease-lux); }
.reveal-fade.is-visible { opacity: 1; }

.reveal-blur {
  filter: blur(14px);
  transform: translateY(14px);
  transition: opacity 1.2s var(--ease-lux), filter 1.2s var(--ease-lux), transform 1.2s var(--ease-lux);
}
.reveal-blur.is-visible { opacity: 1; filter: blur(0); transform: translateY(0); }

.reveal-up {
  transform: translateY(28px);
  transition: opacity 1s var(--ease-lux), transform 1s var(--ease-lux);
}
.reveal-up.is-visible { opacity: 1; transform: translateY(0); }

/* Délais échelonnés pour le hero */
[data-delay="0"] { transition-delay: 0.2s; }
[data-delay="1"] { transition-delay: 0.5s; }
[data-delay="2"] { transition-delay: 0.9s; }
[data-delay="3"] { transition-delay: 1.2s; }
[data-delay="4"] { transition-delay: 1.5s; }

/* -------- ANIMATIONS AU SCROLL (data-animate) -------- */
[data-animate] {
  opacity: 0;
  transition: opacity 0.9s var(--ease-lux), transform 0.9s var(--ease-lux);
}
[data-animate="fade-up"] { transform: translateY(50px); }
[data-animate="fade-left"] { transform: translateX(-60px); }
[data-animate="fade-right"] { transform: translateX(60px); }

[data-animate].is-visible {
  opacity: 1;
  transform: translate(0, 0);
}

/* Délais en cascade pour les grilles */
[data-animate][data-delay="1"] { transition-delay: 0.12s; }
[data-animate][data-delay="2"] { transition-delay: 0.24s; }
[data-animate][data-delay="3"] { transition-delay: 0.36s; }
[data-animate][data-delay="4"] { transition-delay: 0.48s; }

/* -------- REDUCED MOTION -------- */
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
  .reveal-fade, .reveal-blur, .reveal-up, [data-animate] {
    opacity: 1 !important;
    filter: none !important;
    transform: none !important;
  }
}