/* ─── Glitch ─── */
@keyframes glitch {
  0%,100% { text-shadow: none; transform: none; clip-path: none; }
  15%  { text-shadow: -3px 0 #FF4444, 3px 0 #00E5FF; transform: translateX(-2px); }
  30%  { text-shadow:  3px 0 #FF4444,-3px 0 #00E5FF; transform: translateX( 2px); }
  45%  { text-shadow: -3px 0 #FF4444, 3px 0 #00E5FF; transform: translateX( 0);   }
  60%  { text-shadow:  2px 0 #7C4DFF,-2px 0 #00CFFF; transform: translateX( 1px); }
  75%  { text-shadow: -4px 0 #FF4444, 4px 0 #00E5FF; transform: translateX(-1px); }
  90%  { text-shadow:  2px 0 #7C4DFF; transform: none; }
}

.glitch {
  animation: glitch 0.4s steps(1, end) forwards;
}

/* ─── Glow pulse on primary button ─── */
@keyframes glowPulse {
  0%,100% { box-shadow: 0 0 12px rgba(124,77,255,0.4), 0 0 28px rgba(124,77,255,0.15); }
  50%      { box-shadow: 0 0 24px rgba(124,77,255,0.7), 0 0 50px rgba(124,77,255,0.30); }
}

/* ─── Blink (scroll indicator) ─── */
@keyframes blink {
  0%,100% { opacity: 1; }
  50%      { opacity: 0.2; }
}

/* ─── Fade in upward (hero content) ─── */
@keyframes fadeInUp {
  from { opacity: 0; transform: translateY(24px); }
  to   { opacity: 1; transform: translateY(0); }
}

/* ─── Float (decorative icons) ─── */
@keyframes float {
  0%,100% { transform: translateY(0); }
  50%      { transform: translateY(-8px); }
}

/* ─── Scroll line drop ─── */
@keyframes scrollDrop {
  0%   { transform: scaleY(0); transform-origin: top; opacity: 1; }
  80%  { transform: scaleY(1); transform-origin: top; opacity: 1; }
  100% { transform: scaleY(1); transform-origin: top; opacity: 0; }
}

/* ─── Scanlines overlay ─── */
body::after {
  content: '';
  position: fixed;
  inset: 0;
  background: repeating-linear-gradient(
    0deg,
    transparent,
    transparent 3px,
    rgba(0,0,0,0.04) 3px,
    rgba(0,0,0,0.04) 4px
  );
  pointer-events: none;
  z-index: 9999;
}

/* ─── Scroll reveal ─── */
.reveal {
  opacity: 0;
  transform: translateY(28px);
  transition: opacity 0.65s ease, transform 0.65s ease;
}
.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; }
