/* ============================================================
   WORLD CUP STICKER ARENA — animations
   ============================================================ */
@keyframes spin {
  from { transform: rotate(0deg); }
  to   { transform: rotate(360deg); }
}
@keyframes holo {
  0%   { background-position: 0% 0%; }
  100% { background-position: 200% 0%; }
}
@keyframes goldShine {
  0%, 100% { box-shadow: 0 0 24px rgba(255,210,74,0.45); }
  50%      { box-shadow: 0 0 40px rgba(255,210,74,0.85); }
}
@keyframes legendaryPulse {
  0%, 100% { box-shadow: 0 0 30px rgba(255,75,75,0.6); }
  50%      { box-shadow: 0 0 60px rgba(255,75,75,1), 0 0 80px rgba(255,217,102,0.6); }
}
@keyframes pulse {
  0%, 100% { transform: scale(1); }
  50%      { transform: scale(1.05); }
}
@keyframes popIn {
  0%   { transform: scale(0.6); opacity: 0; }
  60%  { transform: scale(1.1); opacity: 1; }
  100% { transform: scale(1); opacity: 1; }
}
@keyframes toastIn {
  from { transform: translateX(120%); opacity: 0; }
  to   { transform: translateX(0);    opacity: 1; }
}
@keyframes toastOut {
  to { transform: translateX(120%); opacity: 0; }
}
@keyframes cardReveal {
  0%   { transform: rotateY(180deg) scale(0.4); opacity: 0; }
  60%  { transform: rotateY(0)      scale(1.05); opacity: 1; }
  100% { transform: rotateY(0)      scale(1);    opacity: 1; }
}
.card-revealing { animation: cardReveal 0.7s cubic-bezier(.2,1.6,.5,1) both; transform-style: preserve-3d; }

@keyframes packShake {
  0%, 100% { transform: rotate(0deg); }
  20% { transform: rotate(-6deg); }
  40% { transform: rotate(6deg); }
  60% { transform: rotate(-4deg); }
  80% { transform: rotate(4deg); }
}
.pack-shake { animation: packShake 0.5s ease-in-out; }

@keyframes packBurst {
  0% { transform: scale(0.4); opacity: 1; filter: blur(0); }
  100% { transform: scale(3.5); opacity: 0; filter: blur(8px); }
}
.pack-burst-fx {
  width: 200px; height: 200px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(255,255,255,0.9) 0%, rgba(255,210,74,0.6) 40%, transparent 70%);
  animation: packBurst 0.8s ease-out forwards;
}

@keyframes floatUp {
  from { transform: translateY(20px); opacity: 0; }
  to   { transform: translateY(0);    opacity: 1; }
}
.float-up { animation: floatUp 0.4s ease both; }

@keyframes goalFlash {
  0%   { background: rgba(255,210,74,0); }
  20%  { background: rgba(255,210,74,0.6); }
  100% { background: rgba(255,210,74,0); }
}
.goal-flash { animation: goalFlash 1s ease; }

@keyframes confettiFall {
  0% { transform: translateY(-100px) rotate(0); opacity: 1; }
  100% { transform: translateY(100vh) rotate(720deg); opacity: 0; }
}
.confetti {
  position: fixed; top: 0; width: 10px; height: 14px;
  pointer-events: none; z-index: 6000;
  animation: confettiFall 3s linear forwards;
}

@keyframes shake {
  0%, 100% { transform: translateX(0); }
  10%, 30%, 50%, 70%, 90% { transform: translateX(-6px); }
  20%, 40%, 60%, 80% { transform: translateX(6px); }
}
.shake { animation: shake 0.4s ease; }

@keyframes superFlash {
  0%   { filter: brightness(1) saturate(1); }
  20%  { filter: brightness(3) saturate(2); }
  100% { filter: brightness(1) saturate(1); }
}
.super-flash { animation: superFlash 0.6s ease; }

@keyframes ballKick {
  0%   { transform: translate(0,0) scale(1) rotate(0); }
  50%  { transform: translate(60px,-90px) scale(1.4) rotate(360deg); }
  100% { transform: translate(0,0) scale(1) rotate(720deg); }
}
.ball-kick { animation: ballKick 0.8s ease; }

/* Card holo flicker */
@keyframes holoFlicker {
  0%, 100% { opacity: 1; }
  50%      { opacity: 0.85; }
}

@keyframes slideInRight {
  from { transform: translateX(40px); opacity: 0; }
  to   { transform: translateX(0); opacity: 1; }
}
.slide-in { animation: slideInRight 0.3s ease both; }
