/* ── KEYFRAMES ── */
@keyframes blink {
  0%, 100% { opacity: 1; }
  50%       { opacity: 0; }
}

@keyframes fadeUp {
  from { opacity: 0; transform: translateY(30px); }
  to   { opacity: 1; transform: translateY(0); }
}

@keyframes fadeIn {
  from { opacity: 0; }
  to   { opacity: 1; }
}

@keyframes glowPulse {
  0%, 100% { opacity: 0.35; }
  50%       { opacity: 0.55; }
}

/* ── HERO ENTRANCE ── */
.hero-content .badge      { animation: fadeUp 0.7s var(--ease) 0.1s both; }
.hero-content .hero-title { animation: fadeUp 0.8s var(--ease) 0.2s both; }
.hero-content .hero-sub   { animation: fadeUp 0.8s var(--ease) 0.35s both; }
.hero-content .hero-actions { animation: fadeUp 0.8s var(--ease) 0.45s both; }
.hero-content .hero-stats { animation: fadeUp 0.8s var(--ease) 0.55s both; }
.hero-terminal            { animation: fadeUp 1s var(--ease) 0.3s both; }

/* ── GLOW PULSE ── */
.glow { animation: glowPulse 4s ease-in-out infinite; }
.glow-2 { animation-delay: 2s; }

/* ── SCROLL REVEAL ── */
.reveal {
  opacity: 0;
  transform: translateY(24px);
  transition: opacity 0.7s var(--ease), transform 0.7s var(--ease);
}
.reveal.visible {
  opacity: 1;
  transform: translateY(0);
}

/* ── SCAN LINE (terminal decoration) ── */
.hero-terminal::after {
  content: '';
  position: absolute;
  left: 0; right: 0;
  height: 2px;
  background: linear-gradient(90deg, transparent, var(--accent), transparent);
  top: 0;
  animation: scan 3s linear infinite;
  opacity: 0.4;
  pointer-events: none;
}
@keyframes scan {
  from { top: 48px; }
  to   { top: 100%; }
}
