@keyframes rotate {
  from { transform: rotate(0deg); }
  to { transform: rotate(360deg); }
}

@keyframes blob-bounce {
  0% { transform: scale(1) translate(0, 0); }
  33% { transform: scale(1.1) translate(50px, -50px); }
  66% { transform: scale(0.9) translate(-20px, 30px); }
  100% { transform: scale(1) translate(0, 0); }
}

@keyframes pulse-glow {
  0%, 100% { box-shadow: 0 0 20px rgba(30, 215, 96, 0.4); }
  50% { box-shadow: 0 0 40px rgba(30, 215, 96, 0.8), 0 0 20px rgba(79, 172, 254, 0.6); }
}

@keyframes pulse-dot {
  0%, 100% { transform: scale(1); opacity: 1; }
  50% { transform: scale(1.5); opacity: 0.5; box-shadow: 0 0 15px currentColor; }
}

@keyframes float-up {
  from { opacity: 0; transform: translateY(40px) scale(0.95); }
  to { opacity: 1; transform: translateY(0) scale(1); }
}

@keyframes pop-in {
  0% { opacity: 0; transform: scale(0.8); }
  70% { transform: scale(1.05); }
  100% { opacity: 1; transform: scale(1); }
}

.animate-float-up {
  animation: float-up 0.6s cubic-bezier(0.34, 1.56, 0.64, 1) both;
}

.animate-pop-in {
  animation: pop-in 0.5s cubic-bezier(0.34, 1.56, 0.64, 1) both;
}

.delay-1 { animation-delay: 0.1s; }
.delay-2 { animation-delay: 0.2s; }
.delay-3 { animation-delay: 0.3s; }
.delay-4 { animation-delay: 0.4s; }
.delay-5 { animation-delay: 0.5s; }
