@import "https://fonts.googleapis.com/css2?family=Press+Start+2P&display=swap";@keyframes flicker{0%,19%,21%,23%,25%,54%,56%,to{opacity:1}20%,24%,55%{opacity:.7}}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}@keyframes slideIn{0%{transform:translate(-100px)}to{transform:translate(0)}}@keyframes shakeHit{0%{transform:translate(0)}15%{transform:translate(-8px,3px)}30%{transform:translate(8px,-3px)}45%{transform:translate(-6px,2px)}60%{transform:translate(6px,-2px)}75%{transform:translate(-3px,1px)}90%{transform:translate(3px,-1px)}to{transform:translate(0)}}@keyframes slashStrike{0%{opacity:1;filter:blur();transform:scale(1.4)rotate(-30deg)}60%{opacity:.6;filter:blur(1px);transform:scale(.8)rotate(20deg)}to{opacity:0;filter:blur(3px);transform:scale(.3)rotate(60deg)}}@keyframes particleFloat{0%{opacity:1;transform:translateY(0)translate(0)}to{transform:translateY(-100px) translateX(var(--drift,0px));opacity:0}}@keyframes ripple{0%{opacity:1;transform:scale(0)}to{opacity:0;transform:scale(1)}}@keyframes chromaShift{0%,to{text-shadow:-2px 0 #ff4500,2px 0 #ff6b00}50%{text-shadow:-2px 0 #ff6b00,2px 0 #ff4500}}.sprite{image-rendering:pixelated;image-rendering:crisp-edges;background-position:0 0;background-repeat:no-repeat;width:100%;height:100%;display:block}.sprite.idle{animation:.8s steps(6,end) infinite idle}.sprite.walk,.sprite.attacking,.sprite.hit,.sprite.death{animation:none!important}@keyframes idle{0%{background-position-x:0}16.67%{background-position-x:-128px}33.33%{background-position-x:-256px}50%{background-position-x:-384px}66.67%{background-position-x:-512px}83.33%{background-position-x:-640px}to{background-position-x:-640px}}@keyframes walk{0%{background-position-x:0}11.11%{background-position-x:-128px}22.22%{background-position-x:-256px}33.33%{background-position-x:-384px}44.44%{background-position-x:-512px}55.55%{background-position-x:-640px}66.67%{background-position-x:-768px}77.78%{background-position-x:-896px}88.89%{background-position-x:-1024px}to{background-position-x:-1024px}}@keyframes attacking{0%{background-position-x:0}25%{background-position-x:-128px}50%{background-position-x:-256px}75%{background-position-x:-384px}to{background-position-x:-384px}}@keyframes hit{0%{background-position-x:0}50%{background-position-x:-128px}to{background-position-x:-128px}}@keyframes death{0%{background-position-x:0}16.67%{background-position-x:-128px}33.33%{background-position-x:-256px}50%{background-position-x:-384px}66.67%{background-position-x:-512px}83.33%{background-position-x:-640px}to{background-position-x:-640px}}.health-bar{background:#111;border:3px solid #000;border-radius:4px;position:relative;overflow:hidden}.health-bar-fill{background:linear-gradient(90deg,#0c4 0%,#0f5 100%);border-radius:2px;height:100%;transition:width .1s ease-out}.health-bar-fill.enemy{background:linear-gradient(90deg,#c00 0%,red 100%)}.particle{pointer-events:none;border-radius:50%;position:absolute}.particle.snow{background:#c8d4e0;animation:linear forwards particleFloat}.particle.ember{background:#fa0;animation:linear forwards emberFloat}@keyframes emberFloat{0%{opacity:1;transform:translateY(0)translate(0)}to{transform:translateY(-100px) translateX(var(--drift,0px));opacity:0}}.game-background{contain:paint;backface-visibility:hidden;display:block}.slash-effect{pointer-events:none;will-change:transform, opacity;width:400px;height:200px;animation:.3s ease-out forwards slashStrike;position:absolute}.slash-effect:before{content:"";clip-path:polygon(10% 90%,50% 5%,90% 90%,50% 75%);opacity:.95;filter:blur(1px);background:linear-gradient(135deg,#0000 20%,#fffffff2 50%,#0000 80%);width:100%;height:100%;position:absolute}.slash-effect:after{content:"";clip-path:polygon(20% 80%,50% 15%,80% 80%,50% 68%);opacity:.75;filter:blur(.5px);background:linear-gradient(135deg,#0000 30%,#ff5000e6 50%,#0000 70%);width:100%;height:100%;position:absolute}.torch{width:20px;height:60px;position:relative}.torch-base{background:#3a2010;border-radius:2px;width:10px;height:40px;position:absolute;bottom:0;left:50%;transform:translate(-50%)}.torch-flame{background:radial-gradient(#fa0 0%,#ff6b00 70%,#0000 100%);border-radius:50%/60% 60% 40% 40%;width:20px;height:30px;animation:.4s ease-in-out infinite torchFlame;position:absolute;bottom:35px;left:50%;transform:translate(-50%)}@keyframes torchFlame{0%,to{opacity:.9;height:28px}50%{opacity:1;height:32px}}.title-text{text-align:center;background:linear-gradient(90deg,#ff4500,#ff6b00,#fa0);-webkit-text-fill-color:transparent;text-shadow:0 0 10px #ff4500;letter-spacing:4px;-webkit-background-clip:text;background-clip:text;font-family:"Press Start 2P",monospace;font-size:72px;font-weight:700;animation:2s ease-in-out infinite chromaShift}.victory-text{background:linear-gradient(90deg,gold,#fa0);-webkit-text-fill-color:transparent;text-shadow:0 0 20px #ff4500;letter-spacing:2px;-webkit-background-clip:text;background-clip:text;font-family:"Press Start 2P",monospace;font-size:64px;font-weight:700}.pixel-text{letter-spacing:1px;text-shadow:2px 2px #000;text-transform:uppercase;font-family:"Press Start 2P",monospace;line-height:1.6}.pixel-text--soft{text-shadow:2px 2px #000000e6;letter-spacing:1px}.game-button{color:#fff;cursor:pointer;text-transform:uppercase;letter-spacing:2px;text-shadow:2px 2px #000;background:#8b2020;border:4px solid #fff;padding:14px 32px;font-family:"Press Start 2P",monospace;font-size:18px;font-weight:700;transition:all .2s;box-shadow:4px 4px #0000008c}.game-button:hover{background:#bb3030;transform:scale(1.05);box-shadow:0 0 10px #ff4500}.game-button:active{transform:scale(.95)}.ripple-effect{pointer-events:none;border:2px solid #fff;border-radius:50%;animation:1s ease-out forwards ripple;position:absolute}.bloom{pointer-events:none;background:radial-gradient(circle,#ffaa004d 0%,#0000 70%);border-radius:50%;position:absolute}.flash-white{will-change:opacity;animation:.2s ease-out flashWhite}@keyframes flashWhite{0%{background-color:#fff9}to{background-color:#fff0}}.darken-screen{will-change:opacity;animation:1.5s ease-out forwards darkenScreen}@keyframes darkenScreen{0%{background-color:#0000}to{background-color:#0009}}.desaturate{filter:grayscale();animation:.5s ease-out forwards desaturate}@keyframes desaturate{0%{filter:grayscale(0)}to{filter:grayscale()}}.screen-shake{will-change:transform;animation:.35s ease-out shakeHit}@keyframes dmgFloat{0%{opacity:1;transform:translateY(0)scale(1.3)}30%{opacity:1;transform:translateY(-28px)scale(1)}80%{opacity:.7;transform:translateY(-54px)scale(.9)}to{opacity:0;transform:translateY(-70px)scale(.8)}}.damage-popup{-webkit-user-select:none;user-select:none;will-change:transform, opacity;animation:.9s cubic-bezier(.22,1,.36,1) forwards dmgFloat}.sprite{contain:layout style paint;image-rendering:pixelated;image-rendering:crisp-edges;backface-visibility:hidden;-webkit-font-smoothing:antialiased}:root{--app-width:100vw;--app-height:100dvh}*{box-sizing:border-box;margin:0;padding:0}html,body{color:#fff;overscroll-behavior:none;-webkit-tap-highlight-color:transparent;background:#000;width:100%;height:100%;min-height:100dvh;font-family:"Press Start 2P",Courier New,monospace;overflow:hidden}#root{width:100%;height:100%;min-height:100dvh}
