/* Dragon Breath Game - Animations */

@keyframes floatCloud {
  0% { transform: translateX(0); }
  50% { transform: translateX(40px); }
  100% { transform: translateX(0); }
}

@keyframes rippleMove {
  0% { background-position: 0 0; }
  100% { background-position: 60px 30px; }
}

/* Idle Dragon Animation */
.dragon.idle .dragon-body {
  animation: dragonBreathe 3s ease-in-out infinite;
  transform-origin: bottom center;
}

.dragon.idle .dragon-wing {
  animation: wingFlutter 2.5s ease-in-out infinite;
  transform-origin: top left;
}

.dragon.idle .dragon-eye {
  animation: dragonBlink 4.5s infinite;
  transform-origin: center;
}

@keyframes dragonBreathe {
  0%, 100% { transform: scaleY(1); }
  50% { transform: scaleY(1.04) translateY(-2px); }
}

@keyframes wingFlutter {
  0%, 100% { transform: rotate(0deg); }
  50% { transform: rotate(-8deg) scaleY(1.05); }
}

@keyframes dragonBlink {
  0%, 94%, 98%, 100% { transform: scaleY(1); }
  96% { transform: scaleY(0.1); }
}

/* Dragon Jumping State */
.dragon.jumping .dragon-wing {
  animation: wingJump 0.2s ease-in-out infinite alternate;
  transform-origin: top left;
}

@keyframes wingJump {
  0% { transform: rotate(-15deg); }
  100% { transform: rotate(20deg); }
}

/* Dragon Blowing State */
.dragon.blowing .dragon-body {
  transform: scale(1.06, 0.95);
  transition: transform 0.2s ease;
}

.dragon-breath svg {
  animation: breathPuff 0.6s ease-out infinite;
}

@keyframes breathPuff {
  0% { transform: scale(0.4) translateX(0); opacity: 0.2; }
  50% { opacity: 0.9; }
  100% { transform: scale(1.4) translateX(60px); opacity: 0; }
}

/* Dragon Victory Dance */
.dragon.celebrating {
  animation: dragonVictory 0.8s ease-in-out infinite alternate;
}

@keyframes dragonVictory {
  0% { transform: translate(-50%, -100%) translateY(0) rotate(-4deg); }
  100% { transform: translate(-50%, -100%) translateY(-22px) rotate(4deg); }
}

/* Candle Flame Flicker */
@keyframes flameFlicker {
  0% { transform: scale(1) rotate(-2deg); filter: drop-shadow(0 0 6px #FFA000); }
  50% { transform: scale(1.15, 0.9) rotate(3deg); filter: drop-shadow(0 0 10px #FF5722); }
  100% { transform: scale(0.95, 1.1) rotate(-1deg); filter: drop-shadow(0 0 8px #FFD54F); }
}

/* Cake Tada */
@keyframes cakeTada {
  0%, 100% { transform: scale(1); }
  10%, 20% { transform: scale(0.95) rotate(-3deg); }
  30%, 50%, 70%, 90% { transform: scale(1.08) rotate(3deg); }
  40%, 60%, 80% { transform: scale(1.08) rotate(-3deg); }
}

/* Banner Pop */
@keyframes bannerPop {
  0% { transform: scale(0.5); opacity: 0; }
  70% { transform: scale(1.06); opacity: 1; }
  100% { transform: scale(1); opacity: 1; }
}
