/* ============================================================
   ANIMATIONS
   ============================================================ */

@keyframes fadeInUp{
  from{ opacity:0; transform: translateY(24px); }
  to{ opacity:1; transform: translateY(0); }
}
@keyframes fadeIn{
  from{ opacity:0; } to{ opacity:1; }
}
@keyframes scaleIn{
  from{ opacity:0; transform: scale(0.94); } to{ opacity:1; transform: scale(1); }
}
@keyframes drawLine{
  from{ width:0; } to{ width:22px; }
}

.hero-eyebrow, .hero h1, .hero-lede, .hero-actions, .hero-meta{
  animation: fadeInUp .9s var(--ease) both;
}
.hero h1{ animation-delay: .08s; }
.hero-lede{ animation-delay: .18s; }
.hero-actions{ animation-delay: .28s; }
.hero-meta{ animation-delay: .38s; }
.hero-visual{ animation: fadeIn 1.2s var(--ease) .3s both; }

.marquee-track{ display:flex; gap: 3.5rem; animation: marquee 28s linear infinite; width:max-content; }
.marquee-track:hover{ animation-play-state: paused; }
@keyframes marquee{ from{ transform: translateX(0); } to{ transform: translateX(-50%); } }

.pulse-dot{ position:relative; }
.pulse-dot::after{
  content:""; position:absolute; inset:0; border-radius:50%;
  border: 2px solid var(--gold-light); animation: pulseRing 2.4s ease-out infinite;
}
@keyframes pulseRing{
  0%{ transform: scale(0.9); opacity:0.8; }
  100%{ transform: scale(1.8); opacity:0; }
}

/* Loader */
.page-loader{ position:fixed; inset:0; background: var(--forest); z-index:99999; display:flex; align-items:center; justify-content:center; transition: opacity .6s ease, visibility .6s ease; }
.page-loader.hide{ opacity:0; visibility:hidden; }
.loader-mark{ width:56px; height:56px; border-radius:50%; border:2px solid rgba(247,242,231,0.2); border-top-color: var(--gold-light); animation: spin 0.9s linear infinite; }
@keyframes spin{ to{ transform: rotate(360deg); } }

@media (prefers-reduced-motion: reduce){
  .hero-eyebrow, .hero h1, .hero-lede, .hero-actions, .hero-meta, .hero-visual, .tri-card, .marquee-track{
    animation: none !important;
  }
}
