/* Keyframe Animations */
@keyframes radar-sweep {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}

@keyframes pulse-dot {
  0%, 100% { opacity: 0.3; transform: scale(0.8); }
  50% { opacity: 1; transform: scale(1.2); }
}

@keyframes skeleton-shimmer {
  0% { background-position: 200% 0; }
  100% { background-position: -200% 0; }
}

@keyframes float-subtle {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-8px); }
}

@keyframes moon-impact-glow {
  0% { filter: drop-shadow(0 0 8px rgba(198, 255, 61, 0.3)); }
  50% { filter: drop-shadow(0 0 28px rgba(198, 255, 61, 0.9)); }
  100% { filter: drop-shadow(0 0 14px rgba(198, 255, 61, 0.4)); }
}

/* Radar Sweep Animation */
.radar-sweep-arm {
  transform-origin: center;
  animation: radar-sweep 6s linear infinite;
}

/* Hero Celestial Animation from Image 1 */
.hero-svg {
  width: 100%;
  height: 100%;
  max-width: 480px;
  filter: drop-shadow(0 0 30px rgba(198, 255, 61, 0.15));
}

.orbit-ring {
  fill: none;
  stroke: rgba(198, 255, 61, 0.18);
  stroke-width: 1;
  stroke-dasharray: 4 6;
  animation: rotateRing 80s linear infinite;
  transform-origin: 280px 220px;
}

.orbit-ring-outer {
  fill: none;
  stroke-width: 1.5;
  stroke: rgba(198, 255, 61, 0.12);
  animation: rotateRingRev 120s linear infinite;
  transform-origin: 280px 220px;
}

@keyframes rotateRing {
  from { transform: rotate(0deg); }
  to { transform: rotate(360deg); }
}

@keyframes rotateRingRev {
  from { transform: rotate(360deg); }
  to { transform: rotate(0deg); }
}

.hero-arrow-flight {
  animation: arrowGlide 4s ease-in-out infinite alternate;
}

@keyframes arrowGlide {
  0% { transform: translate(-12px, 12px); }
  100% { transform: translate(12px, -12px); }
}

.star-twinkle-1 { animation: starPulse 2.4s infinite ease-in-out; }
.star-twinkle-2 { animation: starPulse 3.1s infinite ease-in-out 0.8s; }
.star-twinkle-3 { animation: starPulse 4.2s infinite ease-in-out 1.5s; }

@keyframes starPulse {
  0%, 100% { opacity: 0.3; transform: scale(0.8); }
  50% { opacity: 1; transform: scale(1.3); }
}

/* Scroll Reveal States */
.reveal-on-scroll {
  opacity: 0;
  transform: translateY(24px);
  transition: opacity var(--duration-slow) var(--ease-motion), transform var(--duration-slow) var(--ease-motion);
  will-change: opacity, transform;
}

.reveal-on-scroll.revealed {
  opacity: 1;
  transform: translateY(0);
}

.delay-1 { transition-delay: 80ms; }
.delay-2 { transition-delay: 160ms; }
.delay-3 { transition-delay: 240ms; }
.delay-4 { transition-delay: 320ms; }

/* SVG Trajectory Stroke Setup */
.path-draw-track {
  stroke-dasharray: 600;
  stroke-dashoffset: 600;
  transition: stroke-dashoffset 0.1s linear;
}

.moon-impact-active {
  animation: moon-impact-glow 2s ease-in-out infinite;
}

/* Prefers Reduced Motion: Accessibility Override */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }

  .radar-sweep-arm {
    animation: none !important;
    transform: rotate(45deg);
  }

  .hero-celestial-float {
    animation: none !important;
    transform: none !important;
  }

  .reveal-on-scroll {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
  }

  .path-draw-track {
    stroke-dashoffset: 0 !important;
  }

  .moon-impact-active {
    animation: none !important;
    filter: drop-shadow(0 0 12px rgba(198, 255, 61, 0.5));
  }
}
