/* Custom Keyframe Animations */

/* Floating movement for mascot/3D placeholders */
@keyframes float {
  0% { transform: translateY(0px); }
  50% { transform: translateY(-10px); }
  100% { transform: translateY(0px); }
}

.animate-float {
  animation: float 4s ease-in-out infinite;
}

/* Atomic Orbits Mock 3D Spin */
@keyframes orbit-spin {
  0% { transform: translateX(-50%) rotate(0deg); }
  100% { transform: translateX(-50%) rotate(360deg); }
}

.orbit-spin-slow {
  animation: orbit-spin 6s linear infinite;
}

/* Soft Pulsing for bubbles */
@keyframes pulse-soft {
  0% { transform: scale(1); }
  50% { transform: scale(1.05); }
  100% { transform: scale(1); }
}

.animate-pulse {
  animation: pulse-soft 3s ease-in-out infinite;
}

/* Pouring Stream Animation */
@keyframes stream-pour {
  0% { transform: scaleY(0); transform-origin: top; }
  30% { transform: scaleY(1); transform-origin: top; }
  70% { transform: scaleY(1); transform-origin: top; opacity: 0.8; }
  100% { transform: scaleY(0); transform-origin: bottom; opacity: 0; }
}

/* Heavy effervescence rise foam */
@keyframes rise-foam {
  0% { height: 10%; opacity: 0.5; }
  35% { height: 95%; opacity: 0.95; }
  75% { height: 95%; opacity: 0.95; }
  100% { height: 40%; opacity: 0.2; }
}

/* Exothermic flashing sparks */
@keyframes glow-flash {
  0% { opacity: 0; transform: scale(0.5); }
  25% { opacity: 0.9; transform: scale(1.4); }
  50% { opacity: 0.8; transform: scale(1.2); }
  100% { opacity: 0; }
}

@keyframes drop-fall {
  0% { transform: translate(-50%, 0) scale(1); opacity: 1; }
  90% { transform: translate(-50%, 120px) scale(1); opacity: 1; }
  100% { transform: translate(-50%, 130px) scale(1.5); opacity: 0; }
}

