/* =============================================
   CORE ANIMATIONS — WooTerminator HUD
   ============================================= */

/* Scan line — sweeps down the viewport */
@keyframes scanLine {
  0% { transform: translateY(-100vh); opacity: 0; }
  5% { opacity: 1; }
  95% { opacity: 1; }
  100% { transform: translateY(100vh); opacity: 0; }
}

/* Typing cursor blink */
@keyframes cursorBlink {
  0%, 100% { border-color: var(--cyan-500); }
  50% { border-color: transparent; }
}

/* Glitch text — horizontal offset flicker */
@keyframes glitch {
  0%, 100% { clip-path: inset(0 0 0 0); transform: translate(0); }
  20% { clip-path: inset(20% 0 60% 0); transform: translate(-2px, 0); }
  40% { clip-path: inset(60% 0 10% 0); transform: translate(2px, 0); }
  60% { clip-path: inset(40% 0 30% 0); transform: translate(-1px, 0); }
  80% { clip-path: inset(10% 0 70% 0); transform: translate(1px, 0); }
}

/* Subtle glitch for hover states */
@keyframes glitchSubtle {
  0%, 90%, 100% { transform: translate(0); }
  92% { transform: translate(-2px, 1px); }
  94% { transform: translate(2px, -1px); }
  96% { transform: translate(-1px, -1px); }
  98% { transform: translate(1px, 1px); }
}

/* Pulse glow */
@keyframes pulse {
  0%, 100% { opacity: 0.4; }
  50% { opacity: 1; }
}

/* Circuit node pulse */
@keyframes nodePulse {
  0%, 100% { box-shadow: 0 0 4px var(--cyan-glow); }
  50% { box-shadow: 0 0 12px var(--cyan-glow-strong), 0 0 24px var(--cyan-glow); }
}

/* Red glow pulse */
@keyframes redPulse {
  0%, 100% { box-shadow: 0 0 8px var(--red-glow); }
  50% { box-shadow: 0 0 20px var(--red-glow-strong), 0 0 40px var(--red-glow); }
}

/* Fade in up */
@keyframes fadeInUp {
  from { opacity: 0; transform: translateY(30px); }
  to { opacity: 1; transform: translateY(0); }
}

/* Fade in */
@keyframes fadeIn {
  from { opacity: 0; }
  to { opacity: 1; }
}

/* SVG stroke draw */
@keyframes strokeDraw {
  to { stroke-dashoffset: 0; }
}

/* SVG fill reveal */
@keyframes fillReveal {
  from { fill-opacity: 0; }
  to { fill-opacity: 1; }
}

/* Border trace — rotating conic gradient */
@keyframes borderTrace {
  from { --angle: 0deg; }
  to { --angle: 360deg; }
}

/* Float — subtle hover */
@keyframes float {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-6px); }
}

/* Dash flow — animated dashed line */
@keyframes dashFlow {
  to { stroke-dashoffset: -20; }
}

/* Dot travel along path */
@keyframes dotTravel {
  0% { offset-distance: 0%; opacity: 0; }
  5% { opacity: 1; }
  95% { opacity: 1; }
  100% { offset-distance: 100%; opacity: 0; }
}

/* Number count-up shimmer */
@keyframes shimmer {
  0% { background-position: -200% 0; }
  100% { background-position: 200% 0; }
}

/* Typing — reveal text width */
@keyframes typing {
  from { width: 0; }
  to { width: 100%; }
}

/* Horizontal scan bar (for hero) */
@keyframes heroScan {
  0% { top: -2px; opacity: 0; }
  10% { opacity: 0.6; }
  90% { opacity: 0.6; }
  100% { top: 100%; opacity: 0; }
}
