/* ════════════════════════════════════════════════════════════════
   NOVA TRADING — HERO BACKGROUND SLIDESHOW
   True crossfade (opacity only) between full-bleed hero photos,
   each with a slow continuous Ken Burns zoom. Powers the entire
   #home background — the dark directional overlay (#home::before
   in home.css) sits on top of this for text readability.
   ════════════════════════════════════════════════════════════════ */

:root {
  --slide-transition: 1.4s;
}

.hero-slideshow {
  position: absolute;
  inset: 0;
  z-index: 0;
  overflow: hidden;
}

/* ── Individual slide — stacked, crossfading via opacity only ── */
.hero-slide {
  position: absolute;
  inset: 0;
  background-size: cover;
  background-position: center 45%;
  opacity: 0;
  transition: opacity var(--slide-transition) ease-in-out;
  animation: heroKenBurns 18s ease-in-out infinite alternate;
  will-change: opacity, transform;
}

.hero-slide.active {
  opacity: 1;
  z-index: 1;
}

.hero-slide[data-kb="reverse"] {
  animation-direction: alternate-reverse;
}

/* Slow, subtle zoom — runs continuously regardless of crossfade state */
@keyframes heroKenBurns {
  from { transform: scale(1.0); }
  to   { transform: scale(1.08); }
}

/* ── Progress dots ── */
.slide-badge {
  position: absolute;
  bottom: 20px;
  left: 50%;
  transform: translateX(-50%);
  z-index: 3;
  display: flex;
  gap: 8px;
  pointer-events: none;
}

.slide-dot {
  width: 24px;
  height: 3px;
  border-radius: 2px;
  background: rgba(255, 255, 255, 0.38);
  transition: background 0.4s ease, width 0.4s ease;
}

.slide-dot.active {
  background: var(--gold, #F97316);
  width: 40px;
}

@media (prefers-reduced-motion: reduce) {
  .hero-slide {
    animation: none !important;
    transition: opacity 0.6s ease !important;
  }
}

/* ── OPTIONAL HERO VIDEO ─────────────────────────────────────────
   Hidden until hero-slideshow.js confirms the file exists and can
   play (#home gets .has-video). Sits above the photo slides and
   below .hero-pipes-overlay so headline text stays readable. */
.hero-video {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  opacity: 0;
  pointer-events: none;
  transition: opacity 1.2s ease;
}
#home.has-video .hero-video { opacity: 1; }
#home.has-video .slide-badge { display: none; }
