@keyframes screenFlashPulse {
  0%   { opacity: 1; }
  30%  { opacity: 0.6; }
  50%  { opacity: 0.8; }
  100% { opacity: 0; }
}

@keyframes floatUp {
  0%   { opacity: 1; transform: translateY(0) scale(1); }
  100% { opacity: 0; transform: translateY(-80px) scale(1.4); }
}

@keyframes warnPulse {
  from { border-color: rgba(255,60,60,0.2); box-shadow: 0 0 8px rgba(255,50,50,0.1); }
  to   { border-color: rgba(255,60,60,0.6); box-shadow: 0 0 20px rgba(255,50,50,0.25); }
}

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

@keyframes missionGlow {
  from { box-shadow: 0 0 6px rgba(0,220,130,0.1); }
  to   { box-shadow: 0 0 18px rgba(0,220,130,0.35); }
}

@keyframes missionUnreadPulse {
  0%   { background: rgba(0,220,130,0.08); border-color: rgba(0,220,130,0.2); box-shadow: none; }
  100% { background: rgba(0,220,130,0.22); border-color: rgba(0,220,130,0.6); box-shadow: 0 0 14px rgba(0,220,130,0.3); }
}

@keyframes hintBtnGlow {
  from { box-shadow: 0 2px 12px rgba(0,0,0,0.2), 0 0 6px rgba(0,200,120,0.06); }
  to   { box-shadow: 0 2px 12px rgba(0,0,0,0.2), 0 0 16px rgba(0,200,120,0.18); }
}

@keyframes energyBtnGlow {
  from { box-shadow: 0 2px 12px rgba(0,0,0,0.2), 0 0 6px rgba(0,229,255,0.06); }
  to   { box-shadow: 0 2px 12px rgba(0,0,0,0.2), 0 0 16px rgba(0,229,255,0.18); }
}

@keyframes rewardBoxIn {
  from { opacity: 0; transform: scale(0.8) translateY(24px); }
  to   { opacity: 1; transform: scale(1) translateY(0); }
}

@keyframes rewardBoxOut {
  from { opacity: 1; transform: scale(1); }
  to   { opacity: 0; transform: scale(0.92) translateY(12px); }
}

@keyframes rewardResultPulse {
  0%   { opacity: 0; transform: scale(0.8); }
  50%  { transform: scale(1.05); }
  100% { opacity: 1; transform: scale(1); }
}

@keyframes missionBoxIn {
  from { opacity: 0; transform: scale(0.85) translateY(20px); }
  to   { opacity: 1; transform: scale(1) translateY(0); }
}

@keyframes missionBoxOut {
  from { opacity: 1; transform: scale(1); }
  to   { opacity: 0; transform: scale(0.92) translateY(12px); }
}

@keyframes levelUpIn {
  from { opacity: 0; transform: scale(0.7) translateY(30px); }
  to   { opacity: 1; transform: scale(1) translateY(0); }
}

@keyframes levelUpOut {
  from { opacity: 1; transform: scale(1); }
  to   { opacity: 0; transform: scale(0.9) translateY(15px); }
}

@keyframes gameoverIn {
  from { opacity: 0; transform: scale(0.8) translateY(30px); }
  to   { opacity: 1; transform: scale(1) translateY(0); }
}

@keyframes lbBoxIn {
  from { opacity: 0; transform: scale(0.85) translateY(20px); }
  to   { opacity: 1; transform: scale(1) translateY(0); }
}

@keyframes lbBoxOut {
  from { opacity: 1; transform: scale(1); }
  to   { opacity: 0; transform: scale(0.92) translateY(12px); }
}

@keyframes lbPromoIn {
  from { opacity: 0; transform: scale(0.6) translateY(40px); }
  to   { opacity: 1; transform: scale(1) translateY(0); }
}

@keyframes lbPromoOut {
  from { opacity: 1; transform: scale(1); }
  to   { opacity: 0; transform: scale(0.9) translateY(15px); }
}

/* Power bar electricity shimmer */
@keyframes powerBarSparkShimmer {
  0%   { transform: translateX(-100%); }
  100% { transform: translateX(100%); }
}

/* Power bar spark dots scroll */
@keyframes powerBarSparkDots {
  0%   { transform: translateY(-50%) translateX(-20px); }
  100% { transform: translateY(-50%) translateX(20px); }
}

/* O-5: Badge appear animation for gameover */
@keyframes badgeAppear {
  0%   { opacity: 0; transform: scale(0.5); }
  60%  { transform: scale(1.15); }
  100% { opacity: 1; transform: scale(1); }
}

/* M-1: Mission fly animation */
@keyframes missionFlyOut {
  0%   { opacity: 1; transform: translate(-50%, -50%) scale(1); }
  80%  { opacity: 0.7; }
  100% { opacity: 0; transform: translate(-50%, -50%) scale(0.3); }
}


