@keyframes node-pulse{0%,100%{box-shadow:0 0 6px currentColor}50%{box-shadow:0 0 18px currentColor,0 0 30px currentColor}}
@keyframes golden-shimmer{
  0%  {background-position:250% 0;opacity:.6}
  50% {background-position:50%  0;opacity:1}
  100%{background-position:-50% 0;opacity:.6}
}
@keyframes combo-glow{from{text-shadow:0 0 4px var(--accent2)}to{text-shadow:0 0 12px var(--accent2),0 0 20px var(--accent2)}}
@keyframes override-pulse{
  0%,100%{box-shadow:0 0 6px rgba(255,107,53,.3)}
  50%{box-shadow:0 0 18px rgba(255,107,53,.7),0 0 30px rgba(255,80,0,.2)}
}
@keyframes enchanted-foil{
  0%  {background-position:300% 0%;opacity:.7}
  25% {background-position:200% 100%;opacity:1}
  50% {background-position:100% 0%;opacity:.8}
  75% {background-position:0%   100%;opacity:1}
  100%{background-position:-100% 0%;opacity:.7}
}
@keyframes foil-shimmer{from{background-position:200% 0}to{background-position:-200% 0}}
@keyframes poison-border{
  0%  {border-radius:8px;box-shadow:0 0 8px rgba(68,204,68,.4)}
  20% {border-radius:12px 6px 10px 8px;box-shadow:0 0 14px rgba(68,204,68,.7),0 -4px 12px rgba(68,204,68,.3)}
  40% {border-radius:7px 11px 8px 12px;box-shadow:0 0 10px rgba(68,204,68,.5)}
  60% {border-radius:10px 8px 13px 7px;box-shadow:0 0 18px rgba(68,204,68,.8),4px 0 12px rgba(0,200,0,.3)}
  80% {border-radius:8px 12px 7px 11px;box-shadow:0 0 10px rgba(68,204,68,.5)}
  100%{border-radius:8px;box-shadow:0 0 8px rgba(68,204,68,.4)}
}
@keyframes bubble-left{
  0%  {transform:translateY(0) scale(1);opacity:.8}
  50% {transform:translateY(-40px) scale(1.4) translateX(-4px);opacity:.5}
  100%{transform:translateY(-70px) scale(.6) translateX(2px);opacity:0}
}
@keyframes bubble-right{
  0%  {transform:translateY(0) scale(.9);opacity:.7}
  50% {transform:translateY(-35px) scale(1.2) translateX(5px);opacity:.4}
  100%{transform:translateY(-65px) scale(.5) translateX(-3px);opacity:0}
}
@keyframes joker-pulse{0%,100%{box-shadow:0 0 8px rgba(196,75,255,.4)}50%{box-shadow:0 0 18px rgba(196,75,255,.8),0 0 30px rgba(232,197,71,.3)}}
@keyframes joker-rainbow{from{background-position:300% 0}to{background-position:-300% 0}}
@keyframes mythic-pulse{0%,100%{box-shadow:0 0 6px rgba(255,140,0,.3)}50%{box-shadow:0 0 18px rgba(255,140,0,.6)}}
@keyframes tuto-pulse{0%,100%{outline-color:var(--accent);box-shadow:0 0 0 0 rgba(232,197,71,0)}50%{outline-color:#fff;box-shadow:0 0 12px 4px rgba(232,197,71,0.4)}}
@keyframes pulse-glow{0%,100%{text-shadow:0 0 20px var(--accent),0 0 60px rgba(232,197,71,.3)}50%{text-shadow:0 0 40px var(--accent),0 0 100px rgba(232,197,71,.5)}}
@keyframes flicker{0%,90%,100%{opacity:1}92%{opacity:.5}94%{opacity:1}96%{opacity:.3}98%{opacity:1}}
@keyframes enemy-idle{0%,100%{transform:translateY(0)}50%{transform:translateY(-5px)}}
@keyframes enemy-shake{0%,100%{transform:translateX(0)}20%{transform:translateX(-8px)}40%{transform:translateX(8px)}60%{transform:translateX(-5px)}80%{transform:translateX(5px)}}
@keyframes enemy-defeat{0%{transform:scale(1);opacity:1}50%{transform:scale(1.3) rotate(10deg);opacity:.5}100%{transform:scale(0) rotate(180deg);opacity:0}}
@keyframes cell-correct{0%{transform:scale(1)}50%{transform:scale(1.15)}100%{transform:scale(1)}}
@keyframes notif-in{from{opacity:0;transform:translateX(16px)}to{opacity:1;transform:translateX(0)}}
@keyframes notif-out{from{opacity:1}to{opacity:0}}
@keyframes curse-pulse{0%,100%{box-shadow:0 0 6px rgba(196,75,255,.3)}50%{box-shadow:0 0 18px rgba(196,75,255,.7)}}
@keyframes draw-card{from{opacity:0;transform:translateY(20px) scale(.8)}to{opacity:1;transform:translateY(0) scale(1)}}
@keyframes draw-card-fade{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}