/* ════════════════════════════════
   KEYFRAMES
════════════════════════════════ */

/* Blob float */
@keyframes blobFloat1 {
  0%, 100% { transform: translate(0, 0) scale(1); }
  33%       { transform: translate(20px, -30px) scale(1.05); }
  66%       { transform: translate(-15px, 15px) scale(0.95); }
}

@keyframes blobFloat2 {
  0%, 100% { transform: translate(0, 0) scale(1); }
  40%       { transform: translate(-25px, -20px) scale(1.08); }
  70%       { transform: translate(18px, 22px) scale(0.92); }
}

@keyframes blobFloat3 {
  0%, 100% { transform: translate(0, 0) scale(1); }
  50%       { transform: translate(12px, -18px) scale(1.1); }
}

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

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

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

/* Gradient pan */
@keyframes gradPan {
  0%, 100% { background-position: 0% 50%; }
  50%       { background-position: 100% 50%; }
}

/* Subtle pulse glow */
@keyframes pulseGlow {
  0%, 100% { box-shadow: var(--shadow-glow); }
  50%       { box-shadow: 0 0 60px rgba(123, 47, 255, 0.4); }
}

/* ════════════════════════════════
   APPLIED ANIMATIONS
════════════════════════════════ */

/* Hero staggered entrance */
.hero-content .badge       { animation: fadeInUp var(--dur-slow) var(--ease-out) 0.1s both; }
.hero-content .hero-title  { animation: fadeInUp var(--dur-slow) var(--ease-out) 0.2s both; }
.hero-content .hero-desc   { animation: fadeInUp var(--dur-slow) var(--ease-out) 0.3s both; }
.hero-content .hero-actions{ animation: fadeInUp var(--dur-slow) var(--ease-out) 0.4s both; }
.hero-content .hero-stats  { animation: fadeInUp var(--dur-slow) var(--ease-out) 0.5s both; }
.hero-visual .terminal-card{ animation: fadeIn   600ms var(--ease-out) 0.6s both; }

/* Gradient text pan (headings) */
.grad-text {
  background-size: 200% 200%;
  animation: gradPan 6s ease infinite;
}

/* Terminal card pulse */
.terminal-card { animation: pulseGlow 4s ease-in-out 1.2s infinite; }
.terminal-card:hover { animation: none; }

/* Navbar fade-in on load */
.navbar {
  animation: fadeIn 500ms var(--ease-out) both;
}
