@keyframes accordion-down {
  from { height: 0; }
  to { height: var(--radix-accordion-content-height); }
}

@keyframes accordion-up {
  from { height: var(--radix-accordion-content-height); }
  to { height: 0; }
}

@keyframes caret-blink {
  0%, 70%, 100% { opacity: 1; }
  20%, 50% { opacity: 0; }
}

@keyframes pulse-glow {
  0%, 100% { box-shadow: 0 0 5px #DC143C; }
  50% { box-shadow: 0 0 20px #DC143C, 0 0 40px #8B0000; }
}

@keyframes float {
  0%, 100% { transform: translateY(0px); }
  50% { transform: translateY(-10px); }
}

@keyframes shimmer {
  0% { background-position: -200% 0; }
  100% { background-position: 200% 0; }
}

@keyframes pulse-red {
  0%, 100% { color: var(--warm-white); }
  50% { color: var(--crimson); }
}

@keyframes slide-up {
  0% { transform: translateY(20px); opacity: 0; }
  100% { transform: translateY(0); opacity: 1; }
}

@keyframes fade-in {
  0% { opacity: 0; }
  100% { opacity: 1; }
}

@keyframes dust-rise {
  0% { transform: translateY(0) translateX(0); opacity: 0; }
  10% { opacity: 0.3; }
  90% { opacity: 0.1; }
  100% { transform: translateY(-100vh) translateX(20px); opacity: 0; }
}

@keyframes card-play {
  0% { transform: translateY(40px) scale(0.8); opacity: 0.4; }
  40% { transform: translateY(-6px) scale(1.06); opacity: 1; }
  70% { transform: translateY(2px) scale(0.98); }
  100% { transform: translateY(0) scale(1); opacity: 1; }
}

@keyframes damage-flash {
  0% { filter: brightness(1) saturate(1); }
  15% { filter: brightness(2.4) saturate(0) hue-rotate(180deg); }
  40% { filter: brightness(1.6) saturate(0.3); }
  100% { filter: brightness(1) saturate(1); }
}

@keyframes damage-float {
  0% { opacity: 0; transform: translate(-50%, -20%) scale(0.8); }
  18% { opacity: 1; transform: translate(-50%, -50%) scale(1.15); }
  100% { opacity: 0; transform: translate(-50%, -135%) scale(0.9); }
}

@keyframes card-destroy {
  0% { transform: scale(1); opacity: 1; }
  25% { transform: scale(1.2); filter: brightness(2) hue-rotate(30deg); opacity: 1; }
  100% { transform: scale(0) rotate(180deg); opacity: 0; }
}

@keyframes banner-slide {
  0% { transform: translateY(-120%); opacity: 0; }
  12% { transform: translateY(0); opacity: 1; }
  80% { transform: translateY(0); opacity: 1; }
  100% { transform: translateY(-120%); opacity: 0; }
}

@keyframes gold-pulse-btn {
  0%, 100% { box-shadow: 0 0 8px rgba(212,175,55,0.3); }
  50% { box-shadow: 0 0 24px rgba(212,175,55,0.6), 0 0 48px rgba(212,175,55,0.2); }
}

@keyframes target-pulse {
  0%, 100% { box-shadow: 0 0 0 2px rgba(220,20,60,0.5); }
  50% { box-shadow: 0 0 0 5px rgba(220,20,60,0.8), 0 0 24px rgba(220,20,60,0.3); }
}

@keyframes tooltip-fade-in {
  0% { opacity: 0; transform: translateX(-50%) translateY(5px); }
  100% { opacity: 1; transform: translateX(-50%) translateY(0); }
}

@keyframes mana-spend {
  0% { transform: scale(1); box-shadow: 0 0 6px rgba(212,175,55,0.5); }
  50% { transform: scale(0.6); box-shadow: 0 0 14px rgba(212,175,55,0.8); }
  100% { transform: scale(1); box-shadow: 0 0 6px rgba(212,175,55,0.5); }
}

@keyframes pulse {
  0%, 100% { opacity: 1; }
  50% { opacity: 0.5; }
}

.animate-pulse-glow { animation: pulse-glow 2s ease-in-out infinite; }
.animate-float { animation: float 3s ease-in-out infinite; }
.animate-shimmer { animation: shimmer 3s linear infinite; }
.animate-pulse-red { animation: pulse-red 1s ease-in-out infinite; }
.animate-slide-up { animation: slide-up 0.5s ease-out; }
.animate-fade-in { animation: fade-in 0.5s ease-out; }
.animate-dust-rise { animation: dust-rise 10s linear infinite; }
.animate-pulse { animation: pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite; }
.animate-card-play { animation: card-play 0.45s ease-out; }
.animate-damage-flash { animation: damage-flash 0.4s ease-out; }
.animate-card-destroy { animation: card-destroy 0.5s ease-out forwards; }
.animate-gold-pulse-btn { animation: gold-pulse-btn 2s ease-in-out infinite; }
.animate-target-pulse { animation: target-pulse 1.2s ease-in-out infinite; }
.animate-banner-slide { animation: banner-slide 2.5s ease-out forwards; }
.animate-tooltip { animation: tooltip-fade-in 0.2s ease-out; }
