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

/* Aurora drift */
@keyframes auroraShift {
  0%   { background-position: 0% 50%; }
  100% { background-position: 100% 50%; }
}

/* Orb float */
@keyframes orbFloat {
  0%   { transform: translate(0, 0) scale(1); }
  100% { transform: translate(20px, -30px) scale(1.08); }
}

/* Ring spin CW */
@keyframes ringSpin {
  to { transform: rotate(360deg); }
}

/* Ring spin CCW */
@keyframes ringSpinRev {
  to { transform: rotate(-360deg); }
}

/* Dots grid drift */
@keyframes dotsDrift {
  0%   { background-position: 0 0; }
  100% { background-position: 60px 60px; }
}

/* Particle rise */
@keyframes particleRise {
  0%   { transform: translateY(0) scale(1); opacity: 0; }
  10%  { opacity: 0.8; }
  90%  { opacity: 0.4; }
  100% { transform: translateY(-80vh) scale(0.5); opacity: 0; }
}

/* Stat glow pulse */
@keyframes sgPulse {
  0%   { opacity: 0.4; transform: scale(0.95); }
  100% { opacity: 1;   transform: scale(1.05); }
}

/* Center ring pulse */
@keyframes centerPulse {
  0%, 100% { opacity: 0.5; transform: translate(-50%,-50%) scale(0.9); }
  50%       { opacity: 1;   transform: translate(-50%,-50%) scale(1.1); }
}

/* Scroll bounce */
@keyframes scBounce {
  0%, 100% { transform: translateY(0); }
  50%       { transform: translateY(8px); }
}

/* Gradient headline shift */
@keyframes gradientShift {
  0%   { background-position: 0% 50%; }
  50%  { background-position: 100% 50%; }
  100% { background-position: 0% 50%; }
}

/* Pulse ring (hero CTA) */
@keyframes pulseRing {
  0%   { transform: scale(1); opacity: 0.6; }
  100% { transform: scale(1.7); opacity: 0; }
}

/* Shimmer (button hover) */
@keyframes shimmer {
  0%   { left: -100%; }
  100% { left: 200%; }
}

/* Fade up (scroll reveal) */
@keyframes fadeUp {
  from { opacity: 0; transform: translateY(36px); }
  to   { opacity: 1; transform: translateY(0); }
}

/* Float gentle */
@keyframes floatGently {
  0%, 100% { transform: translateY(0); }
  50%       { transform: translateY(-12px); }
}

/* ===========================
   SCROLL REVEAL
   =========================== */
.em-will-animate {
  opacity: 0;
  transform: translateY(36px);
  transition: opacity 0.7s cubic-bezier(0.4,0,0.2,1),
              transform 0.7s cubic-bezier(0.4,0,0.2,1);
}

.em-will-animate.em-animated {
  opacity: 1;
  transform: translateY(0);
}

/* Stagger delays */
.em-stagger > .em-will-animate:nth-child(1)  { transition-delay: 0s; }
.em-stagger > .em-will-animate:nth-child(2)  { transition-delay: 0.1s; }
.em-stagger > .em-will-animate:nth-child(3)  { transition-delay: 0.2s; }
.em-stagger > .em-will-animate:nth-child(4)  { transition-delay: 0.3s; }
.em-stagger > .em-will-animate:nth-child(5)  { transition-delay: 0.4s; }
.em-stagger > .em-will-animate:nth-child(6)  { transition-delay: 0.5s; }
.em-stagger > .em-will-animate:nth-child(7)  { transition-delay: 0.6s; }
.em-stagger > .em-will-animate:nth-child(8)  { transition-delay: 0.7s; }
.em-stagger > .em-will-animate:nth-child(9)  { transition-delay: 0.8s; }
.em-stagger > .em-will-animate:nth-child(10) { transition-delay: 0.9s; }
.em-stagger > .em-will-animate:nth-child(11) { transition-delay: 1.0s; }
.em-stagger > .em-will-animate:nth-child(12) { transition-delay: 1.1s; }

/* ===========================
   FLOATING ELEMENTS
   =========================== */
.em-float { animation: floatGently 5s ease-in-out infinite; }
.em-float-delay { animation: floatGently 6s ease-in-out infinite 1.5s; }
