/* ============================================================
   JG CAPITAL — Motion V24
   One-shot compositor-friendly reveals. No scroll churn.
   ============================================================ */

/* ── Base reveal state ──────────────────────────────────────── */
[data-reveal].reveal-ready {
  opacity: 0;
  transform: translate3d(-24px, 6px, 0);
  transition:
    opacity   .36s ease,
    transform .62s cubic-bezier(.22, 1, .36, 1);
}

[data-reveal="right"].reveal-ready {
  transform: translate3d(24px, 6px, 0);
}

[data-reveal="up"].reveal-ready {
  transform: translate3d(0, 22px, 0);
}

[data-reveal="fade"].reveal-ready {
  transform: none;
}

/* ── Visible state ──────────────────────────────────────────── */
[data-reveal].reveal-ready.is-visible {
  opacity: 1;
  transform: translate3d(0, 0, 0);
}

/* ── Stagger delays ─────────────────────────────────────────── */
.reveal-ready.is-visible.reveal-delay-1 { transition-delay: 48ms  }
.reveal-ready.is-visible.reveal-delay-2 { transition-delay: 96ms  }
.reveal-ready.is-visible.reveal-delay-3 { transition-delay: 144ms }

/* ── Accessibility: always show when focused inside ─────────── */
[data-reveal]:focus-within {
  opacity: 1 !important;
  transform: none !important;
}

/* ── Overflow guard on animated sections ────────────────────── */
.section,
.contact-section,
.market-section,
.partners-section,
.banner {
  overflow-x: clip;
}

/* ── Mobile — tighter offsets, same timing ──────────────────── */
@media (max-width: 600px) {
  [data-reveal].reveal-ready {
    transform: translate3d(-14px, 5px, 0);
  }

  [data-reveal="right"].reveal-ready {
    transform: translate3d(14px, 5px, 0);
  }

  [data-reveal="up"].reveal-ready {
    transform: translate3d(0, 14px, 0);
  }

  [data-reveal="fade"].reveal-ready {
    transform: none;
  }
}

/* ── Reduced motion: show everything immediately ────────────── */
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto }

  *,
  *::before,
  *::after {
    animation: none !important;
    transition: none !important;
    scroll-behavior: auto !important;
  }

  [data-reveal].reveal-ready {
    opacity: 1;
    transform: none;
  }

  .hero-video { display: none }

  .image-story:hover > img,
  .audience-card:hover > img,
  .business-card:hover img { transform: none }
}

/* ── contain: layout style on heavyweight sections ──────────── */
.section,
.partners-section,
.footer {
  contain: layout style;
}