/* =============================================
   KEYFRAMES
   ============================================= */
@keyframes heroImgFloat {
  from { transform: scale(1.05) translateY(0); }
  to   { transform: scale(1.05) translateY(-18px); }
}
@keyframes fogDrift {
  from { opacity: 0.5; transform: translateX(-12px); }
  to   { opacity: 1; transform: translateX(12px); }
}
@keyframes emblemSpin {
  from { transform: rotate(0deg); }
  to   { transform: rotate(360deg); }
}
@keyframes logoPulse {
  0%, 100% { filter: drop-shadow(0 0 18px var(--accent-glow-strong)) drop-shadow(0 0 36px var(--accent-glow)); }
  50%       { filter: drop-shadow(0 0 28px var(--accent-glow-strong)) drop-shadow(0 0 56px var(--accent-glow)); }
}
@keyframes titleGlow {
  from { text-shadow: 0 0 28px var(--accent-glow), 0 0 56px rgba(111,169,214,0.18); }
  to   { text-shadow: 0 0 56px var(--accent-glow-strong), 0 0 100px var(--accent-glow), 0 0 130px rgba(111,169,214,0.13); }
}
@keyframes runePulse {
  0%, 100% { opacity: 0.65; }
  50%       { opacity: 1; }
}
@keyframes scrollTextFade {
  0%, 100% { opacity: 0.3; }
  50%       { opacity: 0.65; }
}
/* Dot slides top→bottom, then resets */
@keyframes bridgeDot {
  0%   { top: -40%; opacity: 0; }
  10%  { opacity: 1; }
  90%  { opacity: 0.8; }
  100% { top: 140%; opacity: 0; }
}
@keyframes ripplePulse {
  0%   { opacity: 0.75; transform: scale(1); }
  100% { opacity: 0; transform: scale(2.4); }
}
@keyframes floatRune {
  0%, 100% { transform: translateY(0) rotate(-4deg); }
  50%       { transform: translateY(-14px) rotate(4deg); }
}
@keyframes fadeInUp {
  from { opacity: 0; transform: translateY(28px); }
  to   { opacity: 1; transform: translateY(0); }
}
@keyframes fadeInScale {
  from { opacity: 0; transform: scale(0.88); }
  to   { opacity: 1; transform: scale(1); }
}


/* =============================================
   SCROLL REVEAL
   ============================================= */
.reveal { opacity: 0; transform: translateY(36px); transition: opacity 0.7s cubic-bezier(0.16,1,0.3,1), transform 0.7s cubic-bezier(0.16,1,0.3,1); }
.reveal.visible { opacity: 1; transform: translateY(0); }
.reveal-delay-1 { transition-delay: 0.1s; }
.reveal-delay-2 { transition-delay: 0.2s; }
.reveal-delay-3 { transition-delay: 0.3s; }
.reveal-delay-4 { transition-delay: 0.4s; }
.reveal-delay-5 { transition-delay: 0.5s; }


/* =============================================
   HERO ENTRANCE
   ============================================= */
.hero__emblem    { animation: fadeInScale 1s    0.25s both cubic-bezier(0.16,1,0.3,1); }
.hero__eyebrow   { animation: fadeInUp    0.8s  0.55s both cubic-bezier(0.16,1,0.3,1); }
.hero__title     { animation: fadeInUp    0.85s 0.70s both cubic-bezier(0.16,1,0.3,1); }
.hero__divider   { animation: fadeInUp    0.7s  0.85s both cubic-bezier(0.16,1,0.3,1); }
.hero__tagline   { animation: fadeInUp    0.7s  1.00s both cubic-bezier(0.16,1,0.3,1); }
.audio-player    { animation: fadeInUp    0.7s  1.15s both cubic-bezier(0.16,1,0.3,1); }
.hero__cta       { animation: fadeInUp    0.7s  1.30s both cubic-bezier(0.16,1,0.3,1); }
.scroll-bridge   { animation: fadeInUp    0.6s  1.60s both cubic-bezier(0.16,1,0.3,1); }
