*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body,#root{width:100%;height:100%;overflow-x:hidden;overflow-y:auto;background:#0a0a0a;font-family:Segoe UI,Arial,sans-serif}@keyframes floatUp{0%{transform:translateY(0) rotate(0);opacity:0}10%{opacity:1}90%{opacity:1}to{transform:translateY(-100vh) rotate(360deg);opacity:0}}@keyframes pulse{0%,to{transform:scale(1);filter:brightness(.3)}50%{transform:scale(1.05);filter:brightness(.5)}}@keyframes countdownPulse{0%,to{transform:scale(1);opacity:1}50%{transform:scale(1.15);opacity:.85}}@keyframes titleGlow{0%,to{text-shadow:0 0 20px rgba(255,204,0,.5)}50%{text-shadow:0 0 40px rgba(255,204,0,.9),0 0 80px rgba(255,170,0,.4)}}@keyframes lockInAppear{0%{transform:translateY(10px);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes resolvingSpin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes resolvingDots{0%,20%{content:"."}40%{content:".."}60%,to{content:"..."}}@keyframes resolvingPulse{0%,to{opacity:.6}50%{opacity:1}}@keyframes slashEffect{0%{transform:translate(-60px) rotate(-45deg) scaleX(0);opacity:0}30%{opacity:1}to{transform:translate(60px) rotate(-45deg) scaleX(1.5);opacity:0}}@keyframes slashFlash{0%{opacity:0}20%{opacity:.8}to{opacity:0}}@keyframes fireImpact{0%{transform:scale(.3);opacity:0;filter:hue-rotate(0deg)}40%{transform:scale(1.2);opacity:1}to{transform:scale(1.8);opacity:0;filter:hue-rotate(30deg)}}@keyframes iceImpact{0%{transform:scale(.3) rotate(0);opacity:0}40%{transform:scale(1.1) rotate(90deg);opacity:1}to{transform:scale(1.6) rotate(180deg);opacity:0}}@keyframes holyImpact{0%{transform:scale(.2);opacity:0;box-shadow:0 0 #ffffc800}50%{transform:scale(1);opacity:1;box-shadow:0 0 60px #ffffc8cc}to{transform:scale(2);opacity:0;box-shadow:0 0 #ffffc800}}@keyframes shadowImpact{0%{transform:scale(1.5);opacity:0}30%{transform:scale(.8);opacity:1}to{transform:scale(0);opacity:0}}@keyframes spellParticle{0%{transform:translate(0) scale(1);opacity:1}to{transform:translate(var(--px, 30px),var(--py, -40px)) scale(0);opacity:0}}@keyframes floatDamage{0%{transform:translateY(0) scale(.5);opacity:0}15%{transform:translateY(-10px) scale(1.2);opacity:1}40%{transform:translateY(-40px) scale(1);opacity:1}to{transform:translateY(-90px) scale(.8);opacity:0}}@keyframes floatHeal{0%{transform:translateY(0) scale(.5);opacity:0}15%{transform:translateY(-10px) scale(1.2);opacity:1}40%{transform:translateY(-40px) scale(1);opacity:1}to{transform:translateY(-90px) scale(.8);opacity:0}}@keyframes criticalPop{0%{transform:scale(.3);opacity:0}30%{transform:scale(1.5);opacity:1}60%{transform:scale(.9)}to{transform:scale(1);opacity:0}}@keyframes screenShake{0%,to{transform:translate(0)}10%{transform:translate(-8px,4px)}20%{transform:translate(6px,-6px)}30%{transform:translate(-4px,8px)}40%{transform:translate(8px,-2px)}50%{transform:translate(-6px,-4px)}60%{transform:translate(4px,6px)}70%{transform:translate(-8px,-8px)}80%{transform:translate(6px,4px)}90%{transform:translate(-2px,-6px)}}@keyframes bossTransform{0%{transform:scale(1);filter:brightness(1) saturate(1)}30%{transform:scale(1.3);filter:brightness(2) saturate(2)}60%{transform:scale(.9);filter:brightness(.5) saturate(.5)}to{transform:scale(1);filter:brightness(1) saturate(1)}}@keyframes phaseFlash{0%{opacity:0}20%{opacity:1}80%{opacity:1}to{opacity:0}}@keyframes phaseTextReveal{0%{transform:scale(.5);opacity:0;letter-spacing:.5em}50%{transform:scale(1.1);opacity:1;letter-spacing:.2em}to{transform:scale(1);opacity:1;letter-spacing:.15em}}@keyframes victoryBurst{0%{transform:scale(0);opacity:0}50%{transform:scale(1.2);opacity:1}to{transform:scale(1);opacity:1}}@keyframes statCardSlideIn{0%{transform:translateY(40px);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes goldShimmer{0%{background-position:-200% center}to{background-position:200% center}}@keyframes bossRoar{0%{transform:scale(1)}15%{transform:scale(1.4) rotate(-5deg)}30%{transform:scale(1.3) rotate(5deg)}50%{transform:scale(1.5) rotate(0)}70%{transform:scale(1.2)}to{transform:scale(1)}}@keyframes defeatRedPulse{0%,to{box-shadow:inset 0 0 80px #f000}50%{box-shadow:inset 0 0 80px #ff00004d}}@keyframes defeatTextFlicker{0%,to{opacity:1}50%{opacity:.7}75%{opacity:1}87%{opacity:.8}}@keyframes retryQRPulse{0%,to{box-shadow:0 0 20px #ff33334d}50%{box-shadow:0 0 40px #f339}}.animate-screen-shake{animation:screenShake .6s ease-in-out}.animate-boss-transform{animation:bossTransform 1.2s ease-in-out}::-webkit-scrollbar{width:4px}::-webkit-scrollbar-track{background:#0a051980}::-webkit-scrollbar-thumb{background:#643cb466;border-radius:2px}
