@keyframes slideInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes slideOutDown{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(20px)}}@keyframes fadeInScale{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes choiceSelect{0%{transform:scale(1);box-shadow:0 1px 3px rgba(0,0,0,.1)}50%{transform:scale(1.02);box-shadow:0 4px 12px rgba(34,197,94,.3)}to{transform:scale(1);box-shadow:0 2px 8px rgba(34,197,94,.2)}}@keyframes executeSuccess{0%{background-color:#22c55e;transform:scale(1)}50%{background-color:#16a34a;transform:scale(1.05)}to{background-color:#22c55e;transform:scale(1)}}@keyframes executePulse{0%,to{opacity:1}50%{opacity:.7}}@keyframes progressFill{0%{width:0%}to{width:var(--progress-width)}}@keyframes cardEnter{0%{opacity:0;transform:translateY(30px)scale(.95)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes celebrate{0%,to{transform:scale(1)rotate(0)}25%{transform:scale(1.1)rotate(-5deg)}75%{transform:scale(1.1)rotate(5deg)}}@keyframes collectItem{0%{opacity:0;transform:translateY(20px)scale(.8)}50%{opacity:1;transform:translateY(-10px)scale(1.2)}to{opacity:1;transform:translateY(0)scale(1)}}.dungeon-step-enter{animation:.4s ease-out slideInUp}.dungeon-step-exit{animation:.3s ease-in slideOutDown}.dungeon-card-enter{animation:.5s ease-out cardEnter}.dungeon-choice-selected{background-color:#f0fdf4;border-color:#22c55e;animation:.3s ease-out choiceSelect}.dungeon-execute-success{animation:.4s ease-out executeSuccess}.dungeon-execute-loading{animation:1.5s infinite executePulse}.dungeon-celebrate{animation:.6s ease-in-out celebrate}.dungeon-collect-item{animation:.5s ease-out collectItem}.dungeon-fade-in{animation:.3s ease-out fadeInScale}.dungeon-choice-hover{transition:all .2s}.dungeon-choice-hover:hover{transform:translateY(-2px);box-shadow:0 4px 12px rgba(0,0,0,.15)}.dungeon-loading-spinner{border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;width:16px;height:16px;animation:1s linear infinite spin;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}
@keyframes slash{0%{opacity:.3;transform:rotate(-30deg)scale(.8)}50%{opacity:1;transform:rotate(30deg)scale(1.2)}to{opacity:1;transform:rotate(0)scale(1)}}.ability-slash{animation:.6s cubic-bezier(.68,-.55,.265,1.55) slash}@keyframes punch{0%{transform:translate(-20px)scale(.9)}40%{transform:translate(10px)scale(1.3)}to{transform:translate(0)scale(1)}}.ability-punch{animation:.5s cubic-bezier(.68,-.55,.265,1.55) punch}@keyframes smash{0%{transform:translateY(-30px)scale(.8)}50%{transform:translateY(5px)scale(1.4)}70%{transform:translateY(-2px)scale(.9)}to{transform:translateY(0)scale(1)}}.ability-smash{animation:.7s cubic-bezier(.68,-.55,.265,1.55) smash}@keyframes magic-burst{0%{opacity:0;filter:brightness(2)hue-rotate(180deg);transform:scale(.5)}50%{opacity:1;filter:brightness(1.5)hue-rotate(90deg);transform:scale(1.3)}to{opacity:1;filter:brightness()hue-rotate();transform:scale(1)}}.ability-magic-burst{animation:.8s ease-out magic-burst}@keyframes elemental-swirl{0%{opacity:.5;transform:rotate(0)scale(.8)}50%{opacity:1;transform:rotate(180deg)scale(1.2)}to{opacity:1;transform:rotate(360deg)scale(1)}}.ability-elemental{animation:1s cubic-bezier(.4,0,.2,1) elemental-swirl}@keyframes power-up{0%{transform:scale(1);box-shadow:0 0 rgba(255,215,0,0)}50%{transform:scale(1.1);box-shadow:0 0 30px rgba(255,215,0,.6)}to{transform:scale(1);box-shadow:0 0 15px rgba(255,215,0,.3)}}.ability-power-up{animation:.8s ease-out forwards power-up}@keyframes shield-up{0%{opacity:0;transform:scale(.8)translateY(10px)}50%{opacity:1;transform:scale(1.1)translateY(-5px)}to{opacity:1;transform:scale(1)translateY(0)}}.ability-shield{animation:.6s cubic-bezier(.34,1.56,.64,1) shield-up}@keyframes heal-pulse{0%{transform:scale(1);box-shadow:0 0 rgba(0,255,127,.7)}50%{transform:scale(1.05);box-shadow:0 0 20px 10px rgba(0,255,127,0)}to{transform:scale(1);box-shadow:0 0 rgba(0,255,127,0)}}.ability-heal{animation:1.2s ease-out heal-pulse}@keyframes poison{0%{filter:hue-rotate()saturate();transform:scale(1)}25%{filter:hue-rotate(270deg)saturate(1.5);transform:scale(1.02)}50%{filter:hue-rotate(280deg)saturate(2);transform:scale(1.05)}75%{filter:hue-rotate(290deg)saturate(1.5);transform:scale(1.02)}to{filter:hue-rotate()saturate();transform:scale(1)}}.ability-poison{animation:1.5s ease-in-out poison;position:relative}.ability-poison:after{content:"";pointer-events:none;background:radial-gradient(circle,rgba(128,0,128,.3) 0%,transparent 70%);animation:1.5s ease-out poison-pulse;position:absolute;top:0;bottom:0;left:0;right:0}@keyframes poison-pulse{0%{opacity:0;transform:scale(.8)}50%{opacity:1;transform:scale(1.1)}to{opacity:0;transform:scale(1.2)}}@keyframes ultimate-charge{0%{opacity:0;filter:brightness(.5);transform:scale(.3)rotate(0)}30%{opacity:1;filter:brightness(2);transform:scale(1.5)rotate(120deg)}60%{filter:brightness(1.5);transform:scale(.9)rotate(240deg)}to{opacity:1;filter:brightness();transform:scale(1)rotate(360deg)}}.ability-ultimate{animation:1.2s cubic-bezier(.68,-.55,.265,1.55) ultimate-charge}@keyframes berserk{0%{filter:hue-rotate()saturate();transform:scale(1)}25%{filter:hue-rotate(-20deg)saturate(1.5);transform:scale(1.05)rotate(-2deg)}50%{filter:hue-rotate(-40deg)saturate(2);transform:scale(1.1)rotate(2deg)}75%{filter:hue-rotate(-20deg)saturate(1.5);transform:scale(1.05)rotate(-1deg)}to{filter:hue-rotate()saturate();transform:scale(1)rotate(0)}}.ability-berserk{animation:.8s ease-in-out berserk}@keyframes charge-up{0%{opacity:.5;transform:scale(.95)}50%{opacity:1;transform:scale(1.02);box-shadow:0 0 20px rgba(255,255,0,.5)}to{opacity:1;transform:scale(1);box-shadow:0 0 10px rgba(255,255,0,.3)}}.ability-charging{animation:1s ease-in-out infinite charge-up}@keyframes wait{0%{opacity:.3}50%{opacity:.6}to{opacity:.3}}.ability-skip{animation:2s ease-in-out infinite wait}@keyframes earthquake{0%{transform:translate(0)translateY(0)rotate(0)}10%{transform:translate(-5px)translateY(-5px)rotate(-1deg)}20%{transform:translate(5px)translateY(5px)rotate(1deg)}30%{transform:translate(-8px)translateY(-3px)rotate(-2deg)}40%{transform:translate(8px)translateY(3px)rotate(2deg)}50%{transform:translate(-5px)translateY(5px)rotate(-1deg)}60%{transform:translate(5px)translateY(-5px)rotate(1deg)}70%{transform:translate(-3px)translateY(3px)rotate(-.5deg)}80%{transform:translate(3px)translateY(-3px)rotate(.5deg)}90%{transform:translate(-1px)translateY(1px)rotate(0)}to{transform:translate(0)translateY(0)rotate(0)}}.ability-earthquake{animation:.8s ease-in-out earthquake}@keyframes smoke{0%{opacity:0;filter:blur()grayscale(0)}30%{opacity:.8;filter:blur(2px)grayscale(.3)}60%{opacity:.6;filter:blur(3px)grayscale(.6)}to{opacity:.1;filter:blur(5px)grayscale()}}.ability-smoke{animation:1.5s ease-out smoke}.ability-legendary-slash{--glow:#ff5a00;box-shadow:0 0 20px var(--glow);animation:.6s cubic-bezier(.68,-.55,.265,1.55) slash,2s ease-in-out infinite glow}.ability-rare-magic{animation:.8s ease-out magic-burst,2.5s ease-in-out infinite pulse-glow}@keyframes critical-hit{0%{filter:brightness()hue-rotate();transform:scale(1)rotate(0)}20%{filter:brightness(2)hue-rotate(30deg)saturate(2);transform:scale(1.5)rotate(-10deg)}40%{filter:brightness(2.5)hue-rotate(60deg)saturate(3);transform:scale(1.8)rotate(5deg)}60%{filter:brightness(1.8)hue-rotate(30deg)saturate(2);transform:scale(1.3)rotate(-5deg)}80%{filter:brightness(1.3)hue-rotate(10deg)saturate(1.5);transform:scale(1.1)rotate(2deg)}to{filter:brightness()hue-rotate()saturate();transform:scale(1)rotate(0)}}@keyframes critical-hit-text{0%{opacity:0;transform:scale(0)rotate(-180deg)}50%{opacity:1;transform:scale(1.5)rotate(10deg)}to{opacity:1;transform:scale(1)rotate(0)}}@keyframes critical-pulse{0%{box-shadow:0 0 rgba(255,215,0,.7)}70%{box-shadow:0 0 0 20px rgba(255,215,0,0)}to{box-shadow:0 0 rgba(255,215,0,0)}}.critical-hit{animation:.8s cubic-bezier(.68,-.55,.265,1.55) critical-hit}.critical-hit-text{color:gold;text-shadow:0 0 10px rgba(255,215,0,.8);font-weight:700;animation:.6s cubic-bezier(.68,-.55,.265,1.55) critical-hit-text}.critical-pulse{animation:1s ease-out critical-pulse}@keyframes frost{0%{filter:hue-rotate(180deg)brightness(.8)saturate(1.5);transform:scale(.95);box-shadow:0 0 rgba(173,216,230,0)}25%{filter:hue-rotate(190deg)brightness(1.2)saturate(2);transform:scale(1.02);box-shadow:0 0 20px rgba(173,216,230,.5)}50%{filter:hue-rotate(200deg)brightness(1.4)saturate(2.5);transform:scale(1.05);box-shadow:0 0 40px rgba(173,216,230,.8),inset 0 0 20px rgba(135,206,235,.4)}75%{filter:hue-rotate(195deg)brightness(1.3)saturate(2);transform:scale(1.03);box-shadow:0 0 30px rgba(173,216,230,.6),inset 0 0 15px rgba(135,206,235,.3)}to{filter:none;box-shadow:none;transform:scale(1)}}.ability-frost{animation:1.2s ease-out forwards frost;position:relative}.ability-frost:before{content:"";pointer-events:none;z-index:-1;animation:1.2s ease-out frost-aura;position:absolute;top:-10%;bottom:-10%;left:-10%;right:-10%}@keyframes frost-aura{0%{opacity:0;transform:scale(.8)}50%{opacity:1;transform:scale(1.1)}to{opacity:.7;transform:scale(1)}}@keyframes electric{0%{filter:brightness()hue-rotate();transform:translate(0)scale(1)}10%{filter:brightness(1.5)hue-rotate(180deg);transform:translate(-3px)scale(1.05)}20%{filter:brightness(2)hue-rotate(90deg);transform:translate(3px)scale(.95)}30%{filter:brightness(1.8)hue-rotate(270deg);transform:translate(-2px)scale(1.1)}40%{filter:brightness(2.2)hue-rotate(45deg);transform:translate(2px)scale(.9)}50%{filter:brightness(2.5)hue-rotate(180deg);transform:translate(-4px)scale(1.15)}60%{filter:brightness(2)hue-rotate();transform:translate(4px)scale(.85)}70%{filter:brightness(1.7)hue-rotate(90deg);transform:translate(-1px)scale(1.05)}80%{filter:brightness(1.4)hue-rotate(270deg);transform:translate(1px)scale(.95)}90%{filter:brightness(1.2)hue-rotate(180deg);transform:translate(-2px)scale(1.02)}to{filter:brightness()hue-rotate();transform:translate(0)scale(1)}}.ability-electric{animation:.8s ease-in-out electric}@keyframes fireball{0%{transform:translate(0)translateY(0)rotate(0);box-shadow:0 0 20px rgba(255,0,0,.5)}10%{transform:translate(-5px)translateY(-5px)rotate(-1deg);box-shadow:-5px -5px 30px rgba(255,50,0,.7)}20%{transform:translate(5px)translateY(5px)rotate(1deg);box-shadow:5px 5px 35px rgba(255,100,0,.8)}30%{transform:translate(-8px)translateY(-3px)rotate(-2deg);box-shadow:-8px -3px 40px rgba(255,50,0,.9)}40%{transform:translate(8px)translateY(3px)rotate(2deg);box-shadow:8px 3px 45px red}50%{transform:translate(-5px)translateY(5px)rotate(-1deg);box-shadow:-5px 5px 40px rgba(255,100,0,.9)}60%{transform:translate(5px)translateY(-5px)rotate(1deg);box-shadow:5px -5px 35px rgba(255,50,0,.8)}70%{transform:translate(-3px)translateY(3px)rotate(-.5deg);box-shadow:-3px 3px 30px rgba(255,0,0,.7)}80%{transform:translate(3px)translateY(-3px)rotate(.5deg);box-shadow:3px -3px 25px rgba(255,50,0,.6)}90%{transform:translate(-1px)translateY(1px)rotate(0);box-shadow:-1px 1px 20px rgba(255,0,0,.5)}to{transform:translate(0)translateY(0)rotate(0);box-shadow:0 0 15px rgba(255,0,0,.4)}}.ability-fireball{animation:.8s ease-in-out fireball}@keyframes freeze{0%{filter:hue-rotate()brightness()saturate();transform:scale(1)rotate(0)}25%{filter:hue-rotate(200deg)brightness(1.3)saturate(.8);transform:scale(1.05)rotate(-2deg)}50%{filter:hue-rotate(210deg)brightness(1.5)saturate(.6);transform:scale(1.1)rotate(2deg)}75%{filter:hue-rotate(220deg)brightness(1.4)saturate(.4);transform:scale(1.05)rotate(-1deg)}to{filter:hue-rotate(230deg)brightness(1.2)saturate(.3);transform:scale(1)rotate(0)}}.ability-freeze{animation:1.2s ease-in-out freeze}@keyframes focus{0%{opacity:.7;filter:blur(2px);transform:scale(1)}25%{opacity:.8;filter:blur(1px);transform:scale(.95)}50%{opacity:.9;filter:blur(.5px);transform:scale(.9)}75%{opacity:1;filter:blur();transform:scale(.95)}to{opacity:1;filter:blur()contrast(1.2);transform:scale(1)}}.ability-focus{animation:.6s ease-in-out focus}@keyframes arrow{0%{opacity:0;transform:translate(-50px)translateY(0)rotate(0)scale(.5)}20%{opacity:.5;transform:translate(-20px)translateY(-5px)rotate(-5deg)scale(.8)}40%{opacity:1;transform:translate(0)translateY(-8px)rotate(-10deg)scale(1)}60%{opacity:1;transform:translate(20px)translateY(-5px)rotate(-5deg)scale(1.1)}80%{opacity:.8;transform:translate(35px)translateY(0)rotate(0)scale(1.05)}to{opacity:1;transform:translate(0)translateY(0)rotate(0)scale(1)}}.ability-arrow{animation:.7s cubic-bezier(.175,.885,.32,1.275) arrow}@keyframes unholy{0%{filter:brightness()saturate()hue-rotate();opacity:1;transform:scale(1)rotateY(0)}20%{filter:brightness(.5)saturate(2)hue-rotate(270deg);opacity:.9;transform:scale(1.1)rotateY(180deg)}40%{filter:brightness(1.5)saturate(.5)hue-rotate(180deg)invert();opacity:.8;transform:scale(.9)rotateY(360deg)}60%{filter:brightness(.3)saturate(3)hue-rotate(90deg);opacity:.9;transform:scale(1.2)rotateY(540deg)}80%{filter:brightness(1.8)saturate(.2)hue-rotate(45deg)invert(.5);opacity:.95;transform:scale(.95)rotateY(720deg)}to{filter:brightness()saturate()hue-rotate();opacity:1;transform:scale(1)rotateY(0)}}.ability-unholy{animation:1s ease-in-out unholy}@keyframes buff{0%{opacity:0;filter:brightness();transform:scale(.8)}25%{opacity:.5;filter:brightness(1.3)drop-shadow(0 0 10px rgba(255,215,0,.6));transform:scale(1.15)}50%{opacity:1;filter:brightness(1.5)drop-shadow(0 0 20px rgba(255,215,0,.8));transform:scale(1.2)}75%{opacity:1;filter:brightness(1.4)drop-shadow(0 0 15px rgba(255,215,0,.6));transform:scale(1.1)}to{opacity:1;filter:brightness(1.2)drop-shadow(0 0 5px rgba(255,215,0,.3));transform:scale(1)}}.ability-buff{animation:.8s ease-out buff}
