/**
 * QEDU Interactive Live Activity - Animations & Effects
 */

@keyframes floatSlow {
  0%, 100% { transform: translateY(0px) rotate(0deg); }
  50% { transform: translateY(-8px) rotate(1.5deg); }
}

@keyframes pulseGlow {
  0%, 100% { box-shadow: 0 0 15px rgba(16, 185, 129, 0.4); }
  50% { box-shadow: 0 0 35px rgba(16, 185, 129, 0.8); }
}

@keyframes pulseGold {
  0%, 100% { box-shadow: 0 0 15px rgba(245, 158, 11, 0.4); }
  50% { box-shadow: 0 0 35px rgba(245, 158, 11, 0.8); }
}

@keyframes urgentPulse {
  0%, 100% { transform: scale(1); filter: drop-shadow(0 0 8px rgba(239, 68, 68, 0.6)); }
  50% { transform: scale(1.06); filter: drop-shadow(0 0 20px rgba(239, 68, 68, 0.9)); }
}

@keyframes popIn {
  0% { transform: scale(0.3) rotate(-10deg); opacity: 0; }
  70% { transform: scale(1.08) rotate(3deg); }
  100% { transform: scale(1) rotate(0deg); opacity: 1; }
}

@keyframes slideUp {
  0% { transform: translateY(40px); opacity: 0; }
  100% { transform: translateY(0); opacity: 1; }
}

@keyframes slideInRight {
  0% { transform: translateX(60px); opacity: 0; }
  100% { transform: translateX(0); opacity: 1; }
}

@keyframes barGrow {
  0% { height: 0%; }
  100% { height: var(--target-height, 100%); }
}

@keyframes podiumRise {
  0% { transform: translateY(120%); opacity: 0; }
  60% { transform: translateY(-10px); opacity: 1; }
  100% { transform: translateY(0); opacity: 1; }
}

@keyframes flameWiggle {
  0%, 100% { transform: scale(1) rotate(0deg); }
  25% { transform: scale(1.15) rotate(-5deg); }
  75% { transform: scale(1.15) rotate(5deg); }
}

@keyframes ripple {
  0% { transform: scale(0.8); opacity: 1; }
  100% { transform: scale(2.2); opacity: 0; }
}

.animate-pop {
  animation: popIn 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275) forwards;
}

.animate-slide-up {
  animation: slideUp 0.5s cubic-bezier(0.16, 1, 0.3, 1) forwards;
}

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

.animate-flame {
  display: inline-block;
  animation: flameWiggle 0.8s ease-in-out infinite;
}

.podium-1 {
  animation: podiumRise 1s cubic-bezier(0.2, 0.9, 0.3, 1.2) 0.6s forwards;
  opacity: 0;
}
.podium-2 {
  animation: podiumRise 1s cubic-bezier(0.2, 0.9, 0.3, 1.2) 0.3s forwards;
  opacity: 0;
}
.podium-3 {
  animation: podiumRise 1s cubic-bezier(0.2, 0.9, 0.3, 1.2) 0s forwards;
  opacity: 0;
}
