/* ══════════════════════════════════════════
   animations.css — Keyframe definitions
══════════════════════════════════════════ */

/* ─── Bar animations ─── */
@keyframes swapPulse {
  0% {
    transform: scaleX(1);
  }
  40% {
    transform: scaleX(0.85);
  }
  100% {
    transform: scaleX(1);
  }
}

@keyframes doneWave {
  0% {
    transform: scaleY(1);
  }
  50% {
    transform: scaleY(1.03);
  }
  100% {
    transform: scaleY(1);
  }
}

/* ─── Node animations ─── */
@keyframes nodeEnter {
  0% {
    opacity: 0;
    transform: scale(0.6) translateY(20px);
  }
  60% {
    opacity: 1;
    transform: scale(1.05) translateY(-4px);
  }
  100% {
    opacity: 1;
    transform: scale(1) translateY(0);
  }
}

@keyframes highlightFlash {
  0%,
  100% {
    box-shadow: none;
  }
  50% {
    box-shadow: 0 0 20px rgba(0, 210, 150, 0.5);
  }
}

@keyframes leaveFlash {
  0% {
    opacity: 1;
    transform: scale(1);
  }
  50% {
    opacity: 0.5;
    transform: scale(1.1);
  }
  100% {
    opacity: 0;
    transform: scale(0.5);
  }
}

/* ─── Toast ─── */
@keyframes toastIn {
  from {
    opacity: 0;
    transform: translateX(30px);
  }
  to {
    opacity: 1;
    transform: translateX(0);
  }
}

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

/* ─── Slide in ─── */
@keyframes slideInLeft {
  from {
    opacity: 0;
    transform: translateX(-10px);
  }
  to {
    opacity: 1;
    transform: translateX(0);
  }
}

/* ─── Logo ─── */
@keyframes rotateSlow {
  from {
    transform: rotate(0deg);
  }
  to {
    transform: rotate(360deg);
  }
}

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

/* ─── Pulse glow ─── */
@keyframes pulseGlow {
  0%,
  100% {
    box-shadow: 0 0 8px rgba(0, 210, 150, 0.2);
  }
  50% {
    box-shadow: 0 0 20px rgba(0, 210, 150, 0.5);
  }
}

/* ─── Section transitions ─── */
.section {
  animation: sectionFadeIn 0.25s ease;
}

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