/* ============================================================
   ANIMATIONS — reveal au scroll, split-text, etc.
   ============================================================ */

/* ════════════════════════════════════════════════════
   REVEAL AU SCROLL
   ════════════════════════════════════════════════════ */
[data-reveal] .eyebrow,
[data-reveal] .section-title,
[data-reveal] .section-lede,
[data-reveal] .stat,
[data-reveal] .service,
[data-reveal] .roadmap__col,
[data-reveal] .video-demo__player,
[data-reveal] .demo-live__split,
[data-reveal] .cta-final__pin,
[data-reveal] .cta-final__title,
[data-reveal] .cta-final__sub,
[data-reveal] .btn--large {
  opacity: 0;
  transform: translateY(28px);
  transition: opacity 700ms var(--ease-out),
              transform 700ms var(--ease-out);
}

[data-reveal].is-revealed .eyebrow            { opacity: 1; transform: none; transition-delay:   0ms; }
[data-reveal].is-revealed .section-title      { opacity: 1; transform: none; transition-delay: 100ms; }
[data-reveal].is-revealed .section-lede       { opacity: 1; transform: none; transition-delay: 200ms; }
[data-reveal].is-revealed .stat:nth-child(1)  { opacity: 1; transform: none; transition-delay: 200ms; }
[data-reveal].is-revealed .stat:nth-child(2)  { opacity: 1; transform: none; transition-delay: 340ms; }
[data-reveal].is-revealed .stat:nth-child(3)  { opacity: 1; transform: none; transition-delay: 480ms; }
[data-reveal].is-revealed .service:nth-child(1) { opacity: 1; transform: none; transition-delay: 200ms; }
[data-reveal].is-revealed .service:nth-child(2) { opacity: 1; transform: none; transition-delay: 280ms; }
[data-reveal].is-revealed .service:nth-child(3) { opacity: 1; transform: none; transition-delay: 360ms; }
[data-reveal].is-revealed .service:nth-child(4) { opacity: 1; transform: none; transition-delay: 440ms; }
[data-reveal].is-revealed .service:nth-child(5) { opacity: 1; transform: none; transition-delay: 520ms; }
[data-reveal].is-revealed .roadmap__col:nth-child(1) { opacity: 1; transform: none; transition-delay: 200ms; }
[data-reveal].is-revealed .roadmap__col:nth-child(2) { opacity: 1; transform: none; transition-delay: 340ms; }
[data-reveal].is-revealed .video-demo__player { opacity: 1; transform: none; transition-delay: 240ms; }
[data-reveal].is-revealed .demo-live__split    { opacity: 1; transform: none; transition-delay: 240ms; }
[data-reveal].is-revealed .cta-final__pin     { opacity: 1; transform: none; transition-delay:   0ms; }
[data-reveal].is-revealed .cta-final__title   { opacity: 1; transform: none; transition-delay: 160ms; }
[data-reveal].is-revealed .cta-final__sub     { opacity: 1; transform: none; transition-delay: 280ms; }
[data-reveal].is-revealed .btn--large         { opacity: 1; transform: none; transition-delay: 400ms; }

/* ════════════════════════════════════════════════════
   HERO — entrée séquencée
   ════════════════════════════════════════════════════ */
.hero__kicker,
.hero__title-line,
.hero__subtitle,
.hero__actions,
.hero__scroll {
  opacity: 0;
  transform: translateY(24px);
  transition: opacity 900ms var(--ease-out),
              transform 900ms var(--ease-out);
}
.hero.is-loaded .hero__kicker    { opacity: 1; transform: none; transition-delay:  200ms; }
.hero.is-loaded .hero__title-line:first-of-type { opacity: 1; transform: none; transition-delay:  500ms; }
.hero.is-loaded .hero__title-line:nth-of-type(2) { opacity: 1; transform: none; transition-delay:  700ms; }
.hero.is-loaded .hero__subtitle  { opacity: 1; transform: none; transition-delay:  950ms; }
.hero.is-loaded .hero__actions   { opacity: 1; transform: none; transition-delay: 1100ms; }
.hero.is-loaded .hero__scroll    { opacity: 1; transform: none; transition-delay: 1400ms; }

/* Flash d'ouverture au load */
.hero::after {
  content: '';
  position: absolute;
  inset: 0;
  z-index: 9;
  background: #fff;
  opacity: 0;
  pointer-events: none;
}
.hero.is-flashing::after {
  animation: hero-flash 380ms var(--ease-flash);
}
@keyframes hero-flash {
  0%   { opacity: 0; }
  20%  { opacity: 0.85; }
  100% { opacity: 0; }
}

/* ════════════════════════════════════════════════════
   PRINT
   ════════════════════════════════════════════════════ */
@media print {
  .header, .footer, .cursor, .hero__scroll,
  .hero__video, .hero__overlay, .hero__grain,
  [data-reveal] * { animation: none !important; }
  body { background: #fff; color: #000; }
}

/* ════════════════════════════════════════════════════
   REDUCED MOTION — accessibilité
   ════════════════════════════════════════════════════ */
@media (prefers-reduced-motion: reduce) {
  .phone-scan__line,
  .demo-live__qr-scan,
  .hero__scroll-fill,
  .video-demo__play::before,
  .roadmap__dot--on::after,
  .cta-final__pin,
  .hero__pin {
    animation: none !important;
  }
  [data-reveal] * {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
  }
  .hero__pin,
  .hero__title-line,
  .hero__subtitle,
  .hero__actions,
  .hero__scroll {
    opacity: 1 !important;
    transform: none !important;
  }
}
