/* ==========================================================================
   NIGHTCROW — Animations
   Scroll-driven reveals via clip-path + opacity (no translateY → no CLS)
   Respects prefers-reduced-motion
   ========================================================================== */

/* === Reveal on scroll (ajouté par animations.js via IntersectionObserver) === */

[data-reveal] {
  opacity: 0;
  clip-path: inset(0 0 100% 0);
  transition: opacity var(--nc-dur-slow) var(--nc-ease-out),
              clip-path var(--nc-dur-slow) var(--nc-ease-out);
  transition-delay: var(--reveal-delay, 0ms);
}
[data-reveal].is-visible {
  opacity: 1;
  clip-path: inset(0 0 0 0);
}

[data-reveal="fade"] {
  clip-path: none;
  transform: none;
}
[data-reveal="fade"].is-visible { opacity: 1; }

[data-reveal="left"] {
  clip-path: inset(0 100% 0 0);
}
[data-reveal="left"].is-visible { clip-path: inset(0 0 0 0); }

[data-reveal="right"] {
  clip-path: inset(0 0 0 100%);
}
[data-reveal="right"].is-visible { clip-path: inset(0 0 0 0); }

/* === Stagger children ===================================================== */
[data-stagger] > * {
  opacity: 0;
  clip-path: inset(0 0 100% 0);
  transition: opacity 600ms var(--nc-ease-out),
              clip-path 600ms var(--nc-ease-out);
}
[data-stagger].is-visible > * {
  opacity: 1;
  clip-path: inset(0 0 0 0);
}
[data-stagger].is-visible > *:nth-child(1) { transition-delay: 0ms; }
[data-stagger].is-visible > *:nth-child(2) { transition-delay: 100ms; }
[data-stagger].is-visible > *:nth-child(3) { transition-delay: 200ms; }
[data-stagger].is-visible > *:nth-child(4) { transition-delay: 300ms; }
[data-stagger].is-visible > *:nth-child(5) { transition-delay: 400ms; }
[data-stagger].is-visible > *:nth-child(6) { transition-delay: 500ms; }
[data-stagger].is-visible > *:nth-child(7) { transition-delay: 600ms; }
[data-stagger].is-visible > *:nth-child(8) { transition-delay: 700ms; }

/* === Text split reveal (clip words) ======================================= */
.word-reveal {
  display: inline-block;
  overflow: hidden;
  vertical-align: bottom;
  padding-bottom: 0.05em;
}
.word-reveal > span {
  display: inline-block;
  clip-path: inset(0 0 100% 0);
  opacity: 0;
  transition: clip-path 700ms var(--nc-ease-out),
              opacity 700ms var(--nc-ease-out);
  transition-delay: var(--word-delay, 0ms);
}
.word-reveal.is-visible > span {
  clip-path: inset(0 0 0 0);
  opacity: 1;
}

/* === Hero logo fallback float (si Three.js absent) ======================== */
.hero-logo-fallback {
  animation: heroFloat 7s var(--nc-ease-in-out) infinite;
  filter: drop-shadow(0 0 60px rgba(201, 150, 74, 0.25));
}
@keyframes heroFloat {
  0%, 100% { transform: translateY(0) rotate(-1deg); }
  50% { transform: translateY(-8px) rotate(1deg); }
}

/* === Gold line draw (sections) ============================================ */
.draw-line {
  height: 1px;
  background: var(--nc-gold);
  width: 0;
  transition: width 900ms var(--nc-ease-out);
}
.draw-line.is-visible { width: 100%; }

/* === Counter ============================================================== */
.counter {
  display: inline-block;
  font-variant-numeric: tabular-nums;
}

/* === Marquee (texte défilant) ============================================= */
.marquee {
  display: flex;
  overflow: hidden;
  gap: var(--nc-space-10);
  border-top: 1px solid var(--nc-border);
  border-bottom: 1px solid var(--nc-border);
  padding-block: var(--nc-space-4);
  mask-image: linear-gradient(90deg, transparent, #000 10%, #000 90%, transparent);
  -webkit-mask-image: linear-gradient(90deg, transparent, #000 10%, #000 90%, transparent);
}
.marquee__track {
  display: flex;
  gap: var(--nc-space-10);
  animation: marquee 30s linear infinite;
  white-space: nowrap;
  flex-shrink: 0;
}
.marquee__item {
  font-family: var(--nc-font-mono);
  font-size: var(--nc-fs-sm);
  letter-spacing: var(--nc-tracking-widest);
  text-transform: uppercase;
  color: var(--nc-text-muted);
  display: inline-flex;
  align-items: center;
  gap: var(--nc-space-10);
}
.marquee__item::after {
  content: "\2022";
  color: var(--nc-gold);
}
@keyframes marquee {
  from { transform: translateX(0); }
  to { transform: translateX(-50%); }
}

/* === prefers-reduced-motion ============================================== */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.001ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.001ms !important;
    scroll-behavior: auto !important;
  }
  [data-reveal], [data-stagger] > *, .word-reveal > span {
    opacity: 1 !important;
    clip-path: none !important;
  }
  .hero-logo-fallback { animation: none; }
  .marquee__track { animation: none; }
  .badge__dot { animation: none; }
  .hero__scroll::after { animation: none; }
}
