:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bone:#e8e8d0;--gold:#fc3;--ink:#0c0a08}html,body{-webkit-user-select:none;user-select:none;background:#000;height:100%;margin:0;font-family:"Press Start 2P",Courier New,monospace;overflow:hidden}canvas#game{width:100vw;height:100vh;image-rendering:pixelated;image-rendering:crisp-edges;display:block}canvas.px{image-rendering:pixelated;vertical-align:middle}[data-icon]{align-items:center;margin-right:6px;display:inline-flex}#hud{pointer-events:none;color:var(--bone);text-shadow:2px 2px #000;position:fixed;inset:0;overflow:hidden}#hud .label{letter-spacing:1px;font-size:11px}#hud .sub{opacity:.8;align-items:center;min-height:16px;margin-top:6px;font-size:9px;display:flex}#crosshair{width:14px;height:14px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}#crosshair:before,#crosshair:after{content:"";background:var(--xhair,var(--bone));position:absolute;box-shadow:0 0 0 1px #000}#crosshair:before{width:2px;height:14px;top:0;left:6px}#crosshair:after{width:14px;height:2px;top:6px;left:0}#crosshair.hit:before,#crosshair.hit:after{background:#ff3030}#crosshair.head:before,#crosshair.head:after{background:var(--gold);box-shadow:0 0 6px var(--gold)}#crosshair.rainbow:before,#crosshair.rainbow:after{animation:1.2s step-end infinite xhair-rainbow}#crosshair.rainbow.hit:before,#crosshair.rainbow.hit:after,#crosshair.rainbow.head:before,#crosshair.rainbow.head:after{animation:none}@keyframes xhair-rainbow{0%{background:#ff3040}17%{background:#ffa020}33%{background:#fff040}50%{background:#40e060}67%{background:#40a0ff}83%{background:#c050ff}}#top{justify-content:space-between;display:flex;position:absolute;top:18px;left:24px;right:24px}#top-right{text-align:right}#combo{flex-direction:column;align-items:flex-end;margin-top:6px;display:flex}#combo-mult{color:var(--gold);font-size:22px}#combo-bar{border:2px solid var(--bone);background:#221;width:120px;height:8px;margin-top:4px}#combo-fill{background:var(--gold);width:100%;height:100%}#bottom{justify-content:space-between;align-items:flex-end;display:flex;position:absolute;bottom:20px;left:24px;right:24px}#bars{width:260px}.bar-row{align-items:flex-end;gap:8px;display:flex}.bar-col{flex:1}.bar{border:3px solid var(--bone);background:#200;height:16px;position:relative;box-shadow:3px 3px #000}.bar.thin{height:8px}.bar:after{content:"";pointer-events:none;background:repeating-linear-gradient(90deg,#0000 0 22px,#00000073 22px 25px);position:absolute;inset:0}#health-fill{background:#3ad03a;width:100%;height:100%;transition:width .1s}#stamina-wrap{margin-top:10px;transition:opacity .3s}#stamina-bar{background:#221}#stamina-fill{background:var(--gold);width:100%;height:100%}#dash-wrap{margin-top:8px}#dash-bar{background:#122}#dash-fill{background:#80d0ff;width:100%;height:100%}#dash-fill.ready{background:#c0f0ff}#grenades{justify-content:flex-end;align-items:center;margin-top:6px;font-size:16px;display:flex}#grenades small{opacity:.6;margin-left:6px;font-size:9px}#right{text-align:right}#weapons{opacity:.85;margin-bottom:8px;font-size:8px}#weapons span{opacity:.45;margin-left:12px}#weapons span.on{opacity:1;color:var(--gold)}#weapon-name{justify-content:flex-end;align-items:center;font-size:11px;display:flex}#ammo{justify-content:flex-end;align-items:center;margin-top:6px;font-size:26px;display:flex}#ammo small{opacity:.8;margin-left:6px;font-size:12px}#reload-hint{color:var(--gold);min-height:14px;margin-top:6px;font-size:9px}#damage{opacity:0;background:radial-gradient(#0000 45%,#ff0000b3 100%);transition:opacity .3s;position:absolute;inset:0}.hit-dir{filter:drop-shadow(0 0 6px #ff2828cc);width:0;height:0;position:absolute;top:50%;left:50%}.hit-dir i{clip-path:polygon(0 100%,50% 0,100% 100%,78% 100%,50% 42%,22% 100%);background:linear-gradient(#ff3030,#ff282859);width:120px;height:28px;position:absolute;top:-14px;left:-60px}.tracker{filter:drop-shadow(2px 2px #000);flex-direction:column;align-items:center;gap:4px;position:absolute;transform:translate(-50%,-50%)}.tracker-arrow{background:var(--gold);clip-path:polygon(50% 0,100% 100%,50% 72%,0 100%);width:22px;height:26px}.tracker-dist{color:var(--gold);font-size:9px}.tracker-marker{background:var(--gold);clip-path:polygon(0 0,100% 0,50% 100%);filter:drop-shadow(2px 2px #000);width:16px;height:12px;animation:.6s steps(2,end) infinite bobble;position:absolute;transform:translate(-50%,-100%)}@keyframes bobble{50%{margin-top:-4px}}#fade{opacity:0;pointer-events:none;background:#000;position:fixed;inset:0}#top-center{flex-direction:column;align-items:center;gap:12px;display:flex;position:absolute;top:16px;left:50%;transform:translate(-50%)}#powerups{gap:18px;display:flex}#boss{flex-direction:column;align-items:center;gap:6px;display:flex}#boss-name{color:#ff5040;letter-spacing:2px;font-size:12px}#boss-name.rage{animation:.4s steps(2,end) infinite blink}#boss-bar{border:3px solid var(--bone);background:#200;width:420px;height:16px;box-shadow:3px 3px #000}#boss-fill{background:#d03020;width:100%;height:100%;transition:width .15s}.pu{color:var(--c);flex-direction:column;align-items:center;gap:4px;font-size:8px;display:flex}.pu-bar{border:2px solid var(--bone);background:#221;width:56px;height:6px}.pu-fill{background:var(--c);width:100%;height:100%}#shield-fx,#speed-fx{opacity:0;pointer-events:none;transition:opacity .3s;position:absolute;inset:0}#shield-fx{box-shadow:inset 0 0 90px #3a8affbf}#speed-fx{box-shadow:inset 0 0 70px #40e04073}#hud.shield #shield-fx,#hud.speed #speed-fx{opacity:1}#banner{text-align:center;opacity:0;font-size:28px;line-height:1.5;transition:opacity .3s;position:absolute;top:28%;left:0;right:0}#banner small{color:var(--gold);margin-top:10px;font-size:11px;display:block}.dmg{color:#fff;white-space:nowrap;font-size:14px;position:absolute;transform:translate(-50%,-50%)}.dmg.kill{color:#ff4040;font-size:18px}.dmg.head{color:var(--gold);text-shadow:3px 3px #000;font-size:22px}.dmg.heal{color:#40e040;font-size:12px}.overlay{color:var(--bone);text-align:center;text-shadow:2px 2px #000;box-sizing:border-box;background:radial-gradient(#00000073 0%,#000000d9 100%);flex-direction:column;justify-content:center;align-items:center;gap:14px;padding:16px;display:flex;position:fixed;inset:0;overflow:auto}.scanlines{pointer-events:none;background:repeating-linear-gradient(0deg,#00000047 0 2px,#0000 2px 4px);position:absolute;inset:0}.overlay>*{position:relative}.overlay h1{color:var(--bone);text-shadow:4px 4px #000,6px 6px #6a1a1a;margin:0;font-size:36px}.overlay .tagline{color:var(--gold);margin:0;font-size:9px}.overlay .keys{opacity:.75;font-size:8px;line-height:2}#logo,#logo-dead{justify-content:center;animation:2.4s ease-in-out infinite float;display:flex}@keyframes float{50%{transform:translateY(-6px)}}.pxbox{background:var(--ink);border:4px solid var(--bone);clip-path:polygon(8px 0,calc(100% - 8px) 0,100% 8px,100% calc(100% - 8px),calc(100% - 8px) 100%,8px 100%,0 calc(100% - 8px),0 8px);box-shadow:0 0 0 4px #000,8px 8px #000}.panel{min-width:520px;padding:14px 22px;font-size:10px;line-height:2.2}.panel.small{font-size:9px}.panel b{color:var(--gold)}.panel .dim{opacity:.6}.panel .rec{justify-content:center;align-items:center;gap:10px;display:flex}.row{justify-content:space-between;align-items:center;gap:20px;display:flex}.row-label{font-size:9px}.overlay button{cursor:pointer;text-transform:uppercase;border:3px solid var(--bone);background:var(--ink);color:var(--bone);justify-content:center;align-items:center;padding:8px 12px;font-family:inherit;font-size:9px;display:inline-flex;box-shadow:4px 4px #000}.overlay button:hover{background:var(--bone);color:#000}.overlay button:active{transform:translate(2px,2px);box-shadow:2px 2px #000}.overlay button.big{color:var(--gold);border-color:var(--gold);padding:14px 40px;font-size:18px;animation:1s steps(2,end) infinite pulse}.overlay button.big:hover{background:var(--gold);color:#000;animation:none}.overlay button.link{box-shadow:none;opacity:.7;background:0 0;border:none;font-size:9px}.overlay button.link:hover{opacity:1;color:var(--gold)}@keyframes pulse{50%{box-shadow:4px 4px #000,0 0 0 4px #ffcc3359}}.choices button{opacity:.55;margin-left:6px;padding:6px 10px}.choices button.on{opacity:1;color:var(--gold);border-color:var(--gold)}.choices [data-icon]{margin-right:3px}input[type=range]{appearance:none;--p:50%;cursor:pointer;background:linear-gradient(to right, var(--gold) var(--p), #332 var(--p));border:3px solid var(--bone);width:220px;height:12px;box-shadow:3px 3px #000}input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;background:var(--bone);border:3px solid #000;width:16px;height:20px}input[type=range]::-moz-range-thumb{background:var(--bone);border:3px solid #000;border-radius:0;width:10px;height:14px}#bestiary{gap:28px;padding:12px 26px;display:flex}.beast{flex-direction:column;align-items:center;gap:8px;font-size:8px;display:flex}.beast canvas{animation:.6s steps(2,end) infinite bob}.beast:nth-child(2) canvas{animation-duration:.3s}.beast:nth-child(3) canvas{animation-duration:1s}@keyframes bob{50%{transform:translateY(-4px)}}.play-row{gap:18px;display:flex}.overlay button.big.alt{color:#80d0ff;border-color:#80d0ff;animation:none}.overlay button.big.alt:hover{color:#000;background:#80d0ff}.overlay button.big.alt span,#resume span{flex-direction:column;align-items:flex-start;display:flex}.overlay button.big.alt small,#resume small{opacity:.8;margin-top:6px;font-size:8px}.coins{color:var(--gold);align-items:center;gap:8px;font-size:11px;display:flex}.tabs{gap:8px;display:flex}.tabs button{opacity:.55}.tabs button.on{opacity:1;color:var(--gold);border-color:var(--gold)}.tab-panel{flex-direction:column;align-items:center;min-height:150px;display:flex}#shop{scrollbar-color:var(--gold) transparent;grid-template-columns:1fr 1fr;gap:10px 18px;max-width:760px;max-height:36vh;display:grid;overflow-y:auto}.shop-item{text-align:left;justify-content:space-between;align-items:center;gap:12px;display:flex}.shop-info{flex-direction:column;gap:4px;display:flex}.shop-info b{color:var(--bone);font-size:9px}.shop-info span{opacity:.7;font-size:7px;line-height:1.6}.shop-item.owned .shop-info b{color:var(--gold)}.shop-item button{white-space:nowrap;min-width:110px}.shop-item button:disabled{opacity:.4;cursor:default}.shop-item button:disabled:hover{background:var(--ink);color:var(--bone)}.shop-item button.on{color:var(--gold);border-color:var(--gold)}.coin-gain{color:var(--gold)}#cards h2{text-shadow:4px 4px #000;margin:0 0 8px;font-size:24px}#card-row{gap:22px;display:flex}.overlay button.card{border:4px solid var(--rc);flex-direction:column;justify-content:flex-start;gap:14px;width:210px;min-height:250px;padding:18px 14px;animation:.25s steps(4,end) both card-in;box-shadow:6px 6px #000,0 0 0 4px #000}.overlay button.card:hover{background:var(--ink);color:var(--bone);box-shadow:6px 12px 0 #000, 0 0 18px var(--rc);transform:translateY(-6px)}.card .rarity{color:var(--rc);letter-spacing:1px;font-size:8px}.card .stars{justify-content:center;align-items:center;gap:4px;min-height:36px;display:flex}.card .stars [data-icon]{margin:0}.card .cname{color:var(--rc);font-size:12px;line-height:1.6}.card .ctext{text-transform:none;letter-spacing:0;font-size:9px;line-height:2}.card .ckey{opacity:.6;margin-top:auto;font-size:10px}.card.legendary{animation:.25s steps(4,end) both card-in,1.2s steps(2,end) infinite glow}@keyframes card-in{0%{opacity:0;transform:translateY(40px)}}@keyframes glow{50%{box-shadow:6px 6px 0 #000, 0 0 0 4px #000, 0 0 24px var(--rc)}}.hidden{display:none!important}.shop-section{color:var(--gold);border-bottom:2px solid #ffffff1f;grid-column:1/-1;padding-top:6px;font-size:9px}#touch{pointer-events:none;display:none;position:absolute;inset:0}body.touch #touch{display:block}#touch-move,#touch-look{pointer-events:auto;touch-action:none;position:absolute;top:0;bottom:0}#touch-move{width:45%;left:0}#touch-look{width:55%;right:0}#touch button{pointer-events:auto;touch-action:none;-webkit-user-select:none;-webkit-touch-callout:none;width:56px;height:56px;color:var(--bone);text-shadow:1px 1px #000;background:#0c0a0873;border:3px solid #e8e8d0b3;border-radius:50%;justify-content:center;align-items:center;padding:0;font-family:inherit;font-size:7px;display:flex;position:absolute}#touch button:active{background:#e8e8d059}#touch button [data-icon]{margin:0}#touch #t-fire{width:88px;height:88px;right:calc(28px + env(safe-area-inset-right,0px));border-color:var(--gold);bottom:36px}#touch #t-jump{right:calc(130px + env(safe-area-inset-right,0px));bottom:22px}#touch #t-crouch{right:calc(130px + env(safe-area-inset-right,0px));bottom:90px}#touch #t-dash{right:calc(38px + env(safe-area-inset-right,0px));bottom:140px}#touch #t-grenade{right:calc(100px + env(safe-area-inset-right,0px));width:48px;height:48px;bottom:158px}#touch #t-reload{right:calc(196px + env(safe-area-inset-right,0px));width:48px;height:48px;bottom:34px}#touch #t-weapon{right:calc(196px + env(safe-area-inset-right,0px));width:48px;height:48px;bottom:94px}#touch #t-menu{left:calc(24px + env(safe-area-inset-left,0px));border-radius:0;width:auto;height:auto;padding:6px 10px;top:64px}body.touch #right{text-align:center;position:fixed;bottom:8px;left:50%;transform:translate(-50%)}body.touch #weapons,body.touch #grenades small,body.touch .keys,body.touch .card .ckey{display:none}body.touch #grenades{justify-content:center}body.touch #bars{width:170px}body.touch #bottom{left:calc(24px + env(safe-area-inset-left,0px))}#rotate{display:none}@media (orientation:portrait){body.touch #rotate{z-index:50;color:var(--gold);background:#000;flex-direction:column;justify-content:center;align-items:center;gap:18px;font-size:12px;display:flex;position:fixed;inset:0}}@media (height<=500px){.overlay{justify-content:flex-start;gap:8px;padding:10px}#logo,#logo-dead{display:none}.overlay h1{font-size:24px}.overlay button.big{padding:10px 22px;font-size:13px}.panel{min-width:0;padding:10px 14px}.tab-panel{min-height:0}#shop{max-height:42vh}#cards h2{font-size:16px}#card-row{gap:12px}.overlay button.card{gap:8px;width:170px;min-height:0;padding:12px 10px}.card .stars{min-height:20px}}@font-face{font-family:"Press Start 2P";font-style:normal;font-display:swap;font-weight:400;src:url(./press-start-2p-latin-400-normal-_wFEWmAB.woff2)format("woff2"),url(./press-start-2p-latin-400-normal-KLytu4cr.woff)format("woff")}
