/* ── ANIMATION BASE STATES ──────────────────────────────────────── */

/* Elements that will be animated in — start invisible */
.anim-fade-up {
  opacity: 0;
  transform: translateY(40px);
}

/* Hero word split — each word starts invisible */
.hero-word {
  display: inline-block;
  opacity: 0;
  transform: translateY(30px);
  will-change: transform, opacity;
}

/* Ambient orbs */
.orb {
  position: fixed;
  border-radius: 50%;
  filter: blur(120px);
  pointer-events: none;
  z-index: 0;
  will-change: transform;
}
.orb-purple {
  width: 600px;
  height: 600px;
  background: radial-gradient(circle, rgba(124,111,255,0.18) 0%, transparent 70%);
  top: -100px;
  left: -150px;
}
.orb-green {
  width: 500px;
  height: 500px;
  background: radial-gradient(circle, rgba(48,209,88,0.12) 0%, transparent 70%);
  bottom: 10%;
  right: -100px;
}

/* Ensure orbs sit behind content */
body > .orb { z-index: 0; }
section, .ticker-bar, .stats-bar, .hero { position: relative; z-index: 1; }

/* 3D card tilt — enable perspective on card parents */
.learn-grid,
.journey-steps {
  perspective: 1200px;
}

/* Magnetic button wrapper */
.btn-primary,
.btn-secondary {
  display: inline-block;
  will-change: transform;
}

/* Nav active link indicator */
.nav-links a {
  position: relative;
}
.nav-links a.nav-active::after {
  content: '';
  position: absolute;
  bottom: -4px;
  left: 0;
  right: 0;
  height: 2px;
  background: var(--accent);
  border-radius: 2px;
  animation: nav-indicator-in 0.25s ease forwards;
}
@keyframes nav-indicator-in {
  from { transform: scaleX(0); opacity: 0; }
  to   { transform: scaleX(1); opacity: 1; }
}

/* Nav blur intensify on scroll */
nav.scrolled {
  background: rgba(0,0,0,0.95) !important;
  backdrop-filter: saturate(200%) blur(40px) !important;
  -webkit-backdrop-filter: saturate(200%) blur(40px) !important;
}

/* Card hover glow */
.learn-card,
.journey-step {
  transition: box-shadow 0.3s ease;
}
.learn-card:hover,
.journey-step:hover {
  box-shadow: 0 0 0 1px rgba(124,111,255,0.4),
              0 20px 60px rgba(124,111,255,0.15),
              0 0 80px rgba(124,111,255,0.08);
}

/* Stat pop — start state handled by GSAP .from(), no CSS needed */
.stat-pop { will-change: transform, opacity; }

/* ── HERO CANDLESTICK DECORATION ─────────────────────────────────── */
#heroCandleWrap {
  position: absolute;
  right: 6%;
  bottom: 8%;
  pointer-events: none;
  z-index: 0;
  opacity: 0;
  animation: cs-wrap-in 1s ease 5s forwards, cs-float 5s ease-in-out 7.5s infinite;
}
#heroCandlesticks {
  width: 260px;
  height: 210px;
}
@keyframes cs-wrap-in {
  to { opacity: 0.38; }
}
@keyframes cs-float {
  0%, 100% { transform: translateY(0); }
  50%      { transform: translateY(-7px); }
}
.cs-candle {
  transform-origin: center bottom;
  opacity: 0;
  animation: cs-bar-rise 0.5s cubic-bezier(0.34, 1.4, 0.64, 1) calc(5.3s + var(--cs-delay)) forwards;
}
@keyframes cs-bar-rise {
  from { opacity: 0; transform: scaleY(0); }
  to   { opacity: 1; transform: scaleY(1); }
}
@media (max-width: 860px) {
  #heroCandleWrap { display: none; }
}
@media (prefers-reduced-motion: reduce) {
  #heroCandleWrap { animation: none; opacity: 0.3; }
  .cs-candle      { animation: none; opacity: 1; }
}
