/* ════════════════════════════════════════════════════════════
   MADAWAY TOURS — animations.css
   Reveals au scroll, parallaxe, compteurs + prefers-reduced-motion
   ════════════════════════════════════════════════════════════ */

/* ── Reveals (pilotés par IntersectionObserver ou GSAP) ────── */
[data-reveal] {
  opacity: 0;
  transform: translateY(36px);
  transition: opacity .9s var(--ease-luxe), transform 1s var(--ease-luxe);
  transition-delay: var(--reveal-delay, 0s);
  will-change: opacity, transform;
}
[data-reveal="left"]  { transform: translateX(-44px); }
[data-reveal="right"] { transform: translateX(44px); }
/* Mobile : pas de décalage horizontal (le contenu est en pleine largeur,
   un translateX sortirait de l'écran) — on retombe sur le reveal vertical */
@media (max-width: 920px) {
  [data-reveal="left"], [data-reveal="right"] { transform: translateY(36px); }
}
[data-reveal="scale"] { transform: scale(.92); }
[data-reveal].is-visible {
  opacity: 1;
  transform: none;
}

/* Décalage en cascade pour les grilles */
[data-reveal-stagger] > * {
  opacity: 0;
  transform: translateY(30px);
  transition: opacity .8s var(--ease-luxe), transform .9s var(--ease-luxe);
}
[data-reveal-stagger].is-visible > * { opacity: 1; transform: none; }
[data-reveal-stagger].is-visible > *:nth-child(1) { transition-delay: 0s; }
[data-reveal-stagger].is-visible > *:nth-child(2) { transition-delay: .1s; }
[data-reveal-stagger].is-visible > *:nth-child(3) { transition-delay: .2s; }
[data-reveal-stagger].is-visible > *:nth-child(4) { transition-delay: .3s; }
[data-reveal-stagger].is-visible > *:nth-child(5) { transition-delay: .4s; }
[data-reveal-stagger].is-visible > *:nth-child(6) { transition-delay: .5s; }
[data-reveal-stagger].is-visible > *:nth-child(n+7) { transition-delay: .6s; }

/* Ligne qui se dessine */
[data-draw-line] {
  position: relative;
}
[data-draw-line]::after {
  content: "";
  position: absolute;
  left: 0; bottom: -8px;
  height: 1px;
  width: 100%;
  background: linear-gradient(90deg, var(--terra), var(--ochre));
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 1.3s var(--ease-luxe) .2s;
}
[data-draw-line].is-visible::after { transform: scaleX(1); }

/* Texte masqué qui remonte */
[data-mask-reveal] { overflow: hidden; display: block; }
[data-mask-reveal] > span {
  display: block;
  transform: translateY(110%);
  transition: transform 1.1s var(--ease-luxe);
  transition-delay: var(--reveal-delay, 0s);
}
[data-mask-reveal].is-visible > span { transform: none; }

/* ── Flottement doux (orbe, badges) ────────────────────────── */
.float-soft { animation: float-soft 7s ease-in-out infinite; }
@keyframes float-soft {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-14px); }
}

/* ── Rotation lente (décor) ────────────────────────────────── */
.spin-slow { animation: spin-slow 26s linear infinite; }
@keyframes spin-slow { to { transform: rotate(360deg); } }

/* ── Pulse lueur ───────────────────────────────────────────── */
.glow-pulse { animation: glow-pulse 4s ease-in-out infinite; }
@keyframes glow-pulse {
  0%, 100% { box-shadow: 0 0 30px rgba(201,169,97,.18); }
  50% { box-shadow: 0 0 70px rgba(201,169,97,.4); }
}

/* ════════════════════════════════════════════════════════════
   PREFERS-REDUCED-MOTION : tout est désactivé proprement.
   ════════════════════════════════════════════════════════════ */
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after {
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .01ms !important;
    scroll-behavior: auto !important;
  }
  [data-reveal], [data-reveal-stagger] > *, [data-mask-reveal] > span {
    opacity: 1 !important;
    transform: none !important;
  }
  [data-draw-line]::after { transform: scaleX(1) !important; }
  .hero-slide.active .kenburns { animation: none !important; }
  .marquee-track { animation: none !important; flex-wrap: wrap; }
  .maya-fab::before { animation: none !important; }
  .scroll-hint .line::after { animation: none !important; }
  .preloader { display: none !important; }
  .page-veil { display: none !important; }
  .hscroll-sticky { position: static; min-height: 0; }
  .hscroll-track { overflow-x: auto; transform: none !important; }
  .cursor-dot, .cursor-ring { display: none !important; }
  .wizard-step.active { animation: none !important; }
}
