@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%{transform:scale(1);background-color:rgb(34,197,94)}50%{transform:scale(1.05);background-color:rgb(22,163,74)}to{transform:scale(1);background-color:rgb(34,197,94)}}@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(0deg)}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:slideInUp .4s ease-out}.dungeon-step-exit{animation:slideOutDown .3s ease-in}.dungeon-card-enter{animation:cardEnter .5s ease-out}.dungeon-choice-selected{animation:choiceSelect .3s ease-out;border-color:rgb(34,197,94);background-color:rgb(240,253,244)}.dungeon-execute-success{animation:executeSuccess .4s ease-out}.dungeon-execute-loading{animation:executePulse 1.5s infinite}.dungeon-celebrate{animation:celebrate .6s ease-in-out}.dungeon-collect-item{animation:collectItem .5s ease-out}.dungeon-fade-in{animation:fadeInScale .3s ease-out}.dungeon-choice-hover{transition:all .2s ease}.dungeon-choice-hover:hover{transform:translateY(-2px);box-shadow:0 4px 12px rgba(0,0,0,.15)}.dungeon-loading-spinner{display:inline-block;width:16px;height:16px;border-radius:50%;border:2px solid rgba(255,255,255,.3);border-top-color:white;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(1turn)}}@keyframes slash{0%{transform:rotate(-30deg) scale(.8);opacity:.3}50%{transform:rotate(30deg) scale(1.2);opacity:1}to{transform:rotate(0deg) scale(1);opacity:1}}.ability-slash{animation:slash .6s cubic-bezier(.68,-.55,.265,1.55)}@keyframes punch{0%{transform:translateX(-20px) scale(.9)}40%{transform:translateX(10px) scale(1.3)}to{transform:translateX(0) scale(1)}}.ability-punch{animation:punch .5s cubic-bezier(.68,-.55,.265,1.55)}@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:smash .7s cubic-bezier(.68,-.55,.265,1.55)}@keyframes magic-burst{0%{transform:scale(.5);opacity:0;filter:brightness(2) hue-rotate(180deg)}50%{transform:scale(1.3);opacity:1;filter:brightness(1.5) hue-rotate(90deg)}to{transform:scale(1);opacity:1;filter:brightness(1) hue-rotate(0deg)}}.ability-magic-burst{animation:magic-burst .8s ease-out}@keyframes elemental-swirl{0%{transform:rotate(0deg) scale(.8);opacity:.5}50%{transform:rotate(180deg) scale(1.2);opacity:1}to{transform:rotate(1turn) scale(1);opacity:1}}.ability-elemental{animation:elemental-swirl 1s cubic-bezier(.4,0,.2,1)}@keyframes power-up{0%{transform:scale(1);box-shadow:0 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:power-up .8s ease-out forwards}@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:shield-up .6s cubic-bezier(.34,1.56,.64,1)}@keyframes heal-pulse{0%{box-shadow:0 0 0 0 rgba(0,255,127,.7);transform:scale(1)}50%{box-shadow:0 0 20px 10px rgba(0,255,127,0);transform:scale(1.05)}to{box-shadow:0 0 0 0 rgba(0,255,127,0);transform:scale(1)}}.ability-heal{animation:heal-pulse 1.2s ease-out}@keyframes ultimate-charge{0%{transform:scale(.3) rotate(0deg);opacity:0;filter:brightness(.5)}30%{transform:scale(1.5) rotate(120deg);opacity:1;filter:brightness(2)}60%{transform:scale(.9) rotate(240deg);filter:brightness(1.5)}to{transform:scale(1) rotate(1turn);opacity:1;filter:brightness(1)}}.ability-ultimate{animation:ultimate-charge 1.2s cubic-bezier(.68,-.55,.265,1.55)}@keyframes berserk{0%{transform:scale(1);filter:hue-rotate(0deg) saturate(1)}25%{transform:scale(1.05) rotate(-2deg);filter:hue-rotate(-20deg) saturate(1.5)}50%{transform:scale(1.1) rotate(2deg);filter:hue-rotate(-40deg) saturate(2)}75%{transform:scale(1.05) rotate(-1deg);filter:hue-rotate(-20deg) saturate(1.5)}to{transform:scale(1) rotate(0deg);filter:hue-rotate(0deg) saturate(1)}}.ability-berserk{animation:berserk .8s ease-in-out}@keyframes dodge{0%{transform:translateX(0);opacity:1}25%{transform:translateX(-20px);opacity:.3}50%{transform:translateX(20px);opacity:.3}75%{transform:translateX(-10px);opacity:.6}to{transform:translateX(0);opacity:1}}.ability-dodge{animation:dodge .6s ease-out}@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:charge-up 1s ease-in-out infinite}@keyframes wait{0%{opacity:.3}50%{opacity:.6}to{opacity:.3}}.ability-skip{animation:wait 2s ease-in-out infinite}@keyframes earthquake{0%{transform:translateX(0) translateY(0) rotate(0deg)}10%{transform:translateX(-5px) translateY(-5px) rotate(-1deg)}20%{transform:translateX(5px) translateY(5px) rotate(1deg)}30%{transform:translateX(-8px) translateY(-3px) rotate(-2deg)}40%{transform:translateX(8px) translateY(3px) rotate(2deg)}50%{transform:translateX(-5px) translateY(5px) rotate(-1deg)}60%{transform:translateX(5px) translateY(-5px) rotate(1deg)}70%{transform:translateX(-3px) translateY(3px) rotate(-.5deg)}80%{transform:translateX(3px) translateY(-3px) rotate(.5deg)}90%{transform:translateX(-1px) translateY(1px) rotate(0deg)}to{transform:translateX(0) translateY(0) rotate(0deg)}}.ability-earthquake{animation:earthquake .8s ease-in-out}@keyframes smoke{0%{opacity:0;filter:blur(0) 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(1)}}.ability-smoke{animation:smoke 1.5s ease-out}@keyframes drain{0%{transform:scale(1);opacity:1;filter:brightness(1) contrast(1)}25%{transform:scale(.95);opacity:.8;filter:brightness(.7) contrast(1.5)}50%{transform:scale(.9);opacity:.6;filter:brightness(.4) contrast(2)}75%{transform:scale(.95);opacity:.8;filter:brightness(.7) contrast(1.5)}to{transform:scale(1);opacity:1;filter:brightness(1) contrast(1)}}.ability-drain{animation:drain 1s ease-in-out}.ability-legendary-slash{animation:slash .6s cubic-bezier(.68,-.55,.265,1.55),glow 2s ease-in-out infinite;--glow:rgba(255,90,0,1);box-shadow:0 0 20px var(--glow)}.ability-rare-magic{animation:magic-burst .8s ease-out,pulse-glow 2.5s ease-in-out infinite}@keyframes critical-hit{0%{transform:scale(1) rotate(0deg);filter:brightness(1) hue-rotate(0deg)}20%{transform:scale(1.5) rotate(-10deg);filter:brightness(2) hue-rotate(30deg) saturate(2)}40%{transform:scale(1.8) rotate(5deg);filter:brightness(2.5) hue-rotate(60deg) saturate(3)}60%{transform:scale(1.3) rotate(-5deg);filter:brightness(1.8) hue-rotate(30deg) saturate(2)}80%{transform:scale(1.1) rotate(2deg);filter:brightness(1.3) hue-rotate(10deg) saturate(1.5)}to{transform:scale(1) rotate(0deg);filter:brightness(1) hue-rotate(0deg) saturate(1)}}@keyframes critical-hit-text{0%{transform:scale(0) rotate(-180deg);opacity:0}50%{transform:scale(1.5) rotate(10deg);opacity:1}to{transform:scale(1) rotate(0deg);opacity:1}}@keyframes critical-pulse{0%{box-shadow:0 0 0 0 rgba(255,215,0,.7)}70%{box-shadow:0 0 0 20px rgba(255,215,0,0)}to{box-shadow:0 0 0 0 rgba(255,215,0,0)}}.critical-hit{animation:critical-hit .8s cubic-bezier(.68,-.55,.265,1.55)}.critical-hit-text{animation:critical-hit-text .6s cubic-bezier(.68,-.55,.265,1.55);color:#ffd700;font-weight:700;text-shadow:0 0 10px rgba(255,215,0,.8)}.critical-pulse{animation:critical-pulse 1s ease-out}