/* ═══════════════════════════════════════════
   NBM WORKS — Animations
   ═══════════════════════════════════════════ */

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

/* Fade scale */
@keyframes fadeScale {
  from { opacity: 0; transform: scale(0.95); }
  to   { opacity: 1; transform: scale(1); }
}

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

/* Glow pulse */
@keyframes glowPulse {
  0%, 100% { box-shadow: 0 0 20px rgba(45,124,246,0.3); }
  50%       { box-shadow: 0 0 50px rgba(45,124,246,0.6), 0 0 80px rgba(0,200,255,0.2); }
}

/* Shimmer */
@keyframes shimmer {
  from { background-position: -200% center; }
  to   { background-position: 200% center; }
}

/* Rotate */
@keyframes spin {
  from { transform: rotate(0deg); }
  to   { transform: rotate(360deg); }
}

/* Loading button */
.btn-loading {
  pointer-events: none;
  opacity: 0.7;
}
.btn-loading span::after {
  content: '';
  display: inline-block;
  width: 12px; height: 12px;
  border: 2px solid rgba(255,255,255,0.3);
  border-top-color: #fff;
  border-radius: 50%;
  animation: spin 0.7s linear infinite;
  margin-left: 8px;
  vertical-align: middle;
}

/* Particle canvas */
#heroCanvas {
  pointer-events: none;
}

/* Active nav link */
.nav-link.active {
  color: var(--c-white);
}
.nav-link.active::after {
  transform: scaleX(1);
}
