*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--nes-black:#0f0f0f;--nes-white:#fcfcfc;--nes-red:#d62828;--nes-blue:#1a6bc7;--nes-cyan:#42c5f5;--nes-yellow:#f5c542;--nes-green:#22b14c;--nes-orange:#e06c00;--nes-purple:#7928ca;--nes-gray:#6d6d6d;--nes-darkgray:#2a2a2a;--nes-red-shadow:#6b1414;--nes-green-shadow:#115826;--nes-yellow-shadow:#7a6221;--nes-red-hover:#e05e5e;--nes-green-hover:#4ec170;--nes-yellow-hover:#e68933;--pixel-border:4px solid var(--nes-white);--pixel-shadow:4px 4px 0 var(--nes-black);font-variant-ligatures:none;image-rendering:pixelated;image-rendering:crisp-edges;font-family:"Press Start 2P",monospace;font-size:22px}body{background-color:var(--nes-black);color:var(--nes-white);min-height:100vh;overflow-x:hidden}body:after{content:"";pointer-events:none;z-index:9999;background:repeating-linear-gradient(0deg,#0000,#0000 2px,#00000026 2px 4px);position:fixed;inset:0}.pixel-box{border:var(--pixel-border);box-shadow:var(--pixel-shadow);padding:16px}.pixel-box--blue{border-color:var(--nes-blue);box-shadow:4px 4px 0 var(--nes-blue)}.pixel-box--red{border-color:var(--nes-red);box-shadow:4px 4px 0 var(--nes-red)}.pixel-box--cyan{border-color:var(--nes-cyan);box-shadow:4px 4px 0 var(--nes-cyan)}.pixel-box--yellow{border-color:var(--nes-yellow);box-shadow:4px 4px 0 var(--nes-yellow)}.pixel-box--green{border-color:var(--nes-green);box-shadow:4px 4px 0 var(--nes-green)}.pixel-btn{border:4px solid var(--nes-white);box-shadow:4px 4px 0 var(--nes-white);background:var(--nes-darkgray);color:var(--nes-white);cursor:pointer;text-transform:uppercase;letter-spacing:1px;-webkit-user-select:none;user-select:none;padding:12px 20px;font-family:inherit;font-size:.9rem;transition:transform 80ms,box-shadow 80ms;display:inline-block}.pixel-btn:hover{background:var(--nes-blue);box-shadow:2px 2px 0 var(--nes-white);transform:translate(2px,2px)}.pixel-btn:active{box-shadow:none;transform:translate(4px,4px)}.pixel-btn:disabled{opacity:.45;cursor:not-allowed}.pixel-btn:disabled:hover,.pixel-btn:disabled:active{background:var(--nes-darkgray);box-shadow:4px 4px 0 var(--nes-white);transform:none}.pixel-btn--red:disabled:hover,.pixel-btn--red:disabled:active{background:var(--nes-red);box-shadow:4px 4px 0 var(--nes-red-shadow)}.pixel-btn--green:disabled:hover,.pixel-btn--green:disabled:active{background:var(--nes-green);box-shadow:4px 4px 0 var(--nes-green-shadow)}.pixel-btn--yellow:disabled:hover,.pixel-btn--yellow:disabled:active{background:var(--nes-orange);box-shadow:4px 4px 0 var(--nes-yellow-shadow)}.pixel-btn--red{background:var(--nes-red);border-color:var(--nes-red);box-shadow:4px 4px 0 var(--nes-red-shadow)}.pixel-btn--red:hover{background:var(--nes-red-hover);box-shadow:2px 2px 0 var(--nes-red-shadow)}.pixel-btn--green{background:var(--nes-green);border-color:var(--nes-green);box-shadow:4px 4px 0 var(--nes-green-shadow)}.pixel-btn--green:hover{background:var(--nes-green-hover);box-shadow:2px 2px 0 var(--nes-green-shadow)}.pixel-btn--yellow{background:var(--nes-orange);border-color:var(--nes-yellow);box-shadow:4px 4px 0 var(--nes-yellow-shadow)}.pixel-btn--yellow:hover{background:var(--nes-yellow-hover);box-shadow:2px 2px 0 var(--nes-yellow-shadow)}.pixel-btn--red-outline{border-color:var(--nes-red);box-shadow:4px 4px 0 var(--nes-red-shadow);background:#d6282826}.pixel-btn--red-outline:hover{box-shadow:2px 2px 0 var(--nes-red-shadow);background:#d628284d}.pixel-input{background:var(--nes-darkgray);border:4px solid var(--nes-white);color:var(--nes-white);width:100%;caret-color:var(--nes-cyan);outline:none;padding:10px 12px;font-family:inherit;font-size:.9rem}.pixel-input:focus{border-color:var(--nes-cyan);box-shadow:0 0 0 2px var(--nes-cyan)}.hp-bar-container{border:3px solid var(--nes-white);background:#111;width:100%;height:18px;position:relative;overflow:hidden}.hp-bar-fill{height:100%;transition:width .4s ease-out}.hp-bar-fill--high{background:var(--nes-green)}.hp-bar-fill--medium{background:var(--nes-yellow)}.hp-bar-fill--low{background:var(--nes-red)}.dialog-box{background:var(--nes-darkgray);border:4px solid var(--nes-white);padding:14px 16px;font-size:.8rem;line-height:2;position:relative}.dialog-box--active:before{content:"▶";color:var(--nes-white);font-size:.7rem;animation:.8s step-start infinite blink;position:absolute;bottom:8px;right:12px}.sprite{image-rendering:pixelated;font-size:48px;display:inline-block}.sprite--idle{animation:1s steps(2,end) infinite idle-bounce}.sprite--shake{animation:.2s step-end infinite shake}.sprite--defeated{filter:grayscale()opacity(.5);animation:none}@keyframes idle-bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}@keyframes shake{0%{transform:translate(0)}25%{transform:translate(-4px)}75%{transform:translate(4px)}to{transform:translate(0)}}@keyframes blink{0%,to{opacity:1}50%{opacity:0}}@keyframes slide-in-left{0%{opacity:0;transform:translate(-100%)}to{opacity:1;transform:translate(0)}}@keyframes slide-in-right{0%{opacity:0;transform:translate(100%)}to{opacity:1;transform:translate(0)}}@keyframes flash{0%,to{opacity:1}50%{opacity:.1}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes dmg-float{0%{opacity:1;transform:translate(-50%,4px)}to{opacity:0;transform:translate(-50%,-30px)}}@keyframes confetti-fall{0%{opacity:1;transform:translateY(-12px)rotate(0)}to{opacity:0;transform:translateY(200px)rotate(540deg)}}@keyframes pixel-glow{0%,to{text-shadow:0 0 4px var(--nes-cyan)}50%{text-shadow:0 0 10px var(--nes-cyan), 0 0 18px var(--nes-cyan)}}.animate-flash{animation:.3s step-end 3 flash}.animate-glow{animation:2s ease-in-out infinite pixel-glow}.animate-fade-in{animation:.6s forwards fade-in}.tile--cursor{outline:3px solid var(--nes-white);outline-offset:3px;animation:.6s step-start infinite kb-cursor}@keyframes kb-cursor{0%,to{outline-color:var(--nes-white)}50%{outline-color:var(--nes-cyan)}}@keyframes screen-shake-mild{0%,to{transform:translate(0)}20%{transform:translate(-5px,3px)}40%{transform:translate(5px,-4px)}60%{transform:translate(-4px,5px)}80%{transform:translate(4px,-3px)}}@keyframes screen-shake-hard{0%,to{transform:translate(0)rotate(0)}10%{transform:translate(-11px,7px)rotate(-.5deg)}20%{transform:translate(12px,-9px)rotate(.6deg)}30%{transform:translate(-9px,11px)rotate(-.4deg)}45%{transform:translate(10px,-8px)rotate(.4deg)}60%{transform:translate(-7px,6px)rotate(-.2deg)}75%{transform:translate(5px,-4px)}90%{transform:translate(-3px,2px)}}@keyframes screen-blur-hit{0%{filter:blur(5px)brightness(1.3)}20%{filter:blur(3px)brightness(1.1)}to{filter:blur()brightness()}}@keyframes overlay-t1{0%{opacity:.28}to{opacity:0}}@keyframes overlay-t2{0%{opacity:0}12%{opacity:.5}to{opacity:0}}@keyframes overlay-t3{0%{opacity:0}7%{opacity:.75}30%{opacity:.55}to{opacity:0}}.screen-shake--mild{animation:.5s cubic-bezier(.36,.07,.19,.97) both screen-shake-mild}.screen-shake--hard{animation:.7s cubic-bezier(.36,.07,.19,.97) both screen-shake-hard}.screen-blur--hit{animation:.7s ease-out forwards screen-blur-hit}::-webkit-scrollbar{width:8px}::-webkit-scrollbar-track{background:var(--nes-black)}::-webkit-scrollbar-thumb{background:var(--nes-gray);border:2px solid var(--nes-black)}.text-cyan{color:var(--nes-cyan)}.text-yellow{color:var(--nes-yellow)}.text-red{color:var(--nes-red)}.text-green{color:var(--nes-green)}.text-gray{color:var(--nes-gray)}.pixel-arrow{display:inline-block;position:relative;top:-.18em}.screen{flex-direction:column;justify-content:center;align-items:center;min-height:100vh;padding:32px 16px;display:flex}.audio-controls--icons .audio-controls__label,.audio-controls--stack .audio-controls__label{display:none}.credits-badge{position:relative}.credits-badge--bump{animation:.48s steps(4,end) credit-kick}@keyframes credit-kick{0%{transform:translate(0)scale(1)}20%{transform:translate(-3px,2px)scale(1.14)}50%{transform:translate(3px,-1px)scale(1.06)}75%{transform:translate(-1px,1px)scale(1.02)}to{transform:translate(0)scale(1)}}.credits-badge__delta{pointer-events:none;white-space:nowrap;text-shadow:2px 2px #000;animation:.9s steps(8,end) forwards credit-spend-float;position:absolute;top:50%;left:50%}@keyframes credit-spend-float{0%{opacity:1;transform:translate(-50%,-50%)}to{opacity:0;transform:translate(-50%,34px)}}@media (prefers-reduced-motion:reduce){.credits-badge--bump{animation:none}.credits-badge__delta{animation:.9s steps(2,end) forwards credit-spend-float}}
