*{margin:0;padding:0;box-sizing:border-box}html,body{width:100%;height:100%;overflow:hidden;background:#000;font-family:Courier New,Courier,monospace;-webkit-user-select:none;user-select:none}#game{position:fixed;inset:0}#game canvas{width:100%;height:100%;image-rendering:pixelated;display:block}.hidden{display:none!important}#flash{position:fixed;inset:0;background:#d82800;opacity:0;pointer-events:none;z-index:5}#hud{position:fixed;inset:0;pointer-events:none;z-index:10;color:#fcfcfc;text-shadow:2px 2px 0 #000;font-weight:700}#crosshair{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);font-size:28px;color:#fcfcfc;text-shadow:2px 2px 0 #000}#boss-bar{position:absolute;top:14px;left:50%;transform:translate(-50%);width:min(70vw,560px);text-align:center;pointer-events:none}#boss-name{font-size:20px;letter-spacing:4px;font-weight:700;color:#d82800;text-shadow:2px 2px 0 #000;margin-bottom:4px}#boss-track{height:16px;border:3px solid #fcfcfc;outline:3px solid #000;background:#000}#boss-fill{height:100%;width:100%;background:#d82800;transition:width .15s linear}#aa-reticle{position:absolute;left:50%;top:50%;width:min(58vh,66vw);height:min(58vh,66vw);transform:translate(-50%,-50%);pointer-events:none;z-index:13}#aa-reticle canvas{width:100%;height:100%;display:block}#scope{position:absolute;inset:0;pointer-events:none;background:radial-gradient(circle at 50% 50%,#0000 0 29vh,#0000008c 29.4vh,#000000f7 33vh,#000 34vh)}#scope-ring{position:absolute;left:50%;top:50%;width:58vh;height:58vh;transform:translate(-50%,-50%);border:3px solid rgba(252,252,252,.8);border-radius:50%;box-shadow:inset 0 0 0 3px #000}#scope-cross-h,#scope-cross-v{position:absolute;left:50%;top:50%;background:#fcfcfcd9;box-shadow:0 0 0 1px #000}#scope-cross-h{width:58vh;height:2px;transform:translate(-50%,-50%)}#scope-cross-v{width:2px;height:58vh;transform:translate(-50%,-50%)}#scope-cross-h:after,#scope-cross-v:after{content:"";position:absolute;left:50%;top:50%;width:26px;height:26px;transform:translate(-50%,-50%);background:transparent;box-shadow:0 0 0 4px #0000}#flak-gun{position:absolute;left:50%;bottom:0;height:min(62vh,70vh);transform:translate(-50%);pointer-events:none;z-index:11;transition:transform .08s ease-out}#flak-gun canvas{height:100%;width:auto;image-rendering:pixelated;display:block}#flak-gun.firing{transform:translate(-50%) translateY(10px)}#flak-muzzles{position:absolute;inset:0;opacity:0}#flak-muzzles span{position:absolute;top:33%;width:18%;aspect-ratio:1;transform:translate(-50%,-50%);background:radial-gradient(circle,#fcfcfc 0%,#f8b800 45%,#f87800 70%,transparent 75%)}#flak-muzzles span:first-child{left:25%}#flak-muzzles span:last-child{left:75%}#flak-gun.firing #flak-muzzles{opacity:1}body.touch #flak-gun{display:none}#hud-topleft{position:absolute;top:16px;left:16px}#hud-topright{position:absolute;top:16px;right:16px;text-align:right;font-size:22px;letter-spacing:2px}#hud-topright div{margin-bottom:6px}.hud-label{font-size:16px;letter-spacing:2px;margin-right:8px;display:inline-block;width:58px}#health-row,#grapple-row,#lunge-row{display:flex;align-items:center;margin-bottom:8px}#health-bar,#grapple-bar,#lunge-bar{width:200px;height:18px;border:3px solid #fcfcfc;outline:3px solid #000;background:#000}#grapple-bar,#lunge-bar{width:120px;height:12px}#health-fill{height:100%;width:100%;background:#00a800}#grapple-fill{height:100%;width:100%;background:#f8b800}#lunge-fill{height:100%;width:100%;background:#3cbcfc}#popups{position:fixed;inset:0;pointer-events:none;z-index:11}.popup{position:absolute;color:#f8b800;font-weight:700;font-size:20px;text-shadow:2px 2px 0 #000;transition:transform .8s ease-out,opacity .8s ease-out;white-space:nowrap}#banner{position:fixed;left:50%;top:35%;transform:translate(-50%,-50%);z-index:20;pointer-events:none}#banner canvas{image-rendering:pixelated}.screen{position:fixed;inset:0;z-index:30;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:28px;background:#000000b8;color:#fcfcfc;text-shadow:2px 2px 0 #000;cursor:pointer}#title{background:radial-gradient(ellipse at 50% 38%,#06061a00 34%,#06061a80),linear-gradient(#06061a1f,#06061a80);gap:22px}#title-panel{display:flex;flex-direction:column;align-items:center;gap:20px;max-width:min(880px,92vw);padding:26px 40px;background:#06061a94;border:4px solid #fcfcfc;outline:4px solid #000;border-radius:6px;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);animation:title-bob 4s ease-in-out infinite}@keyframes title-bob{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}body.reduce-motion #title-panel{animation:none}#title-art canvas,#gameover-art canvas{image-rendering:pixelated}.subtitle{font-size:20px;letter-spacing:4px;color:#f8b800;font-weight:700}.controls{font-size:16px;letter-spacing:1px;color:#bcbcbc;font-weight:700;max-width:90%;text-align:center}.bigtext{font-size:28px;letter-spacing:4px;font-weight:700}#shop{background:#0009;gap:16px;justify-content:safe center;overflow-y:auto;touch-action:pan-y;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;padding:20px 12px}#shop-art canvas{image-rendering:pixelated}#shop-money{color:#f8b800}#shop-list{display:flex;flex-direction:column;gap:10px}.shop-option{font-size:20px;letter-spacing:3px;font-weight:700;border:3px solid #fcfcfc;outline:3px solid #000;background:#000000b3;padding:10px 24px;min-width:540px;text-align:center}.shop-option.too-poor{opacity:.45}.shop-key{color:#f8b800;margin-right:12px}.shop-price{color:#00a800;margin-left:16px}.shop-tier{color:#3cbcfc;margin-left:8px}#disaster-debug{position:absolute;top:50%;left:50%;transform:translate(-50%);padding:4px 12px;background:#000000b3;border:2px solid #3cbcfc;color:#3cbcfc;font-size:14px;letter-spacing:2px;font-weight:700;white-space:nowrap;pointer-events:none}.shop-desc{font-size:13px;letter-spacing:2px;color:#bcbcbc;margin-top:4px}.blink{font-size:22px;letter-spacing:3px;font-weight:700;animation:blink 1s steps(1) infinite}@keyframes blink{50%{opacity:0}}#confirm-sub{font-size:15px;letter-spacing:2px;color:#f8b800;font-weight:700}#confirm-buttons{display:flex;gap:24px}#confirm-yes,#confirm-no{font-family:inherit;font-weight:700;font-size:20px;letter-spacing:3px;color:#fcfcfc;text-shadow:2px 2px 0 #000;border:3px solid #fcfcfc;outline:3px solid #000;padding:12px 30px;cursor:pointer;-webkit-tap-highlight-color:transparent}#confirm-yes{background:#d828008c}#confirm-no{background:#0078008c}.touch-only,body.touch .desktop-only{display:none}body.touch .touch-only{display:block}body.touch{touch-action:none;overscroll-behavior:none}#mc{position:fixed;inset:0;z-index:15;pointer-events:none}#mc-move,#mc-look{position:absolute;top:0;bottom:0;pointer-events:auto;touch-action:none}#mc-move{left:0;width:45%}#mc-look{right:0;width:55%}#mc-stick{position:fixed;width:120px;height:120px;margin:-60px 0 0 -60px;border:4px solid rgba(252,252,252,.5);border-radius:50%;background:#00000040;pointer-events:none}#mc-knob{position:absolute;left:50%;top:50%;width:56px;height:56px;margin:-28px 0 0 -28px;border:4px solid #fcfcfc;border-radius:50%;background:#f8b80099}.mc-btn{pointer-events:auto;font-family:inherit;font-weight:700;letter-spacing:1px;color:#fcfcfc;text-shadow:2px 2px 0 #000;background:#0006;border:3px solid #fcfcfc;outline:3px solid #000;border-radius:50%;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}.mc-btn.pressed{background:#f8b8008c}#mc-actions{position:absolute;right:20px;bottom:24px;width:200px;height:240px;pointer-events:none}#mc-actions .mc-btn{position:absolute}.mc-fire{width:96px;height:96px;font-size:18px;right:8px;bottom:8px;border-color:#f83800;background:#d8280066}.mc-small{width:66px;height:66px;font-size:14px}#mc-jump{right:8px;bottom:116px}#mc-ads{right:116px;bottom:8px}#mc-grapple{right:116px;bottom:82px}#mc-lunge{right:116px;bottom:156px}#mc-ads.active{background:#f8b80099;border-color:#f8b800}#mc-fire-left{position:absolute;left:24px;bottom:38%;border-color:#f83800;background:#d8280057;pointer-events:auto}#mc-weapon{position:absolute;left:16px;bottom:20px;min-width:78px;height:48px;padding:0 14px;border-radius:10px;font-size:15px;pointer-events:auto}#mc-quick{position:fixed;inset:0;z-index:20;display:flex;align-items:center;justify-content:center;background:#0000008c;pointer-events:auto}#mc-quick-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:12px;padding:16px}.mc-wpn{pointer-events:auto;font-family:inherit;font-weight:700;font-size:14px;letter-spacing:1px;color:#fcfcfc;text-shadow:1px 1px 0 #000;background:#0000008c;border:3px solid #fcfcfc;outline:2px solid #000;padding:14px 10px;min-width:76px;text-align:center;-webkit-tap-highlight-color:transparent}.mc-wpn.active{background:#00a80099}.mc-wpn.locked{opacity:.35}#mc-pause{position:absolute;top:14px;right:14px;width:48px;height:48px;font-size:16px;pointer-events:auto}#shop-next{font-family:inherit;font-weight:700;font-size:20px;letter-spacing:3px;color:#fcfcfc;text-shadow:2px 2px 0 #000;background:#00780099;border:3px solid #fcfcfc;outline:3px solid #000;padding:12px 32px;margin-top:8px;-webkit-tap-highlight-color:transparent}@media(max-width:820px){body.touch #hud-topright{font-size:15px;letter-spacing:1px}body.touch #health-bar{width:130px}body.touch #grapple-bar,body.touch #lunge-bar{width:90px}body.touch .hud-label{width:40px;font-size:12px}body.touch .shop-option{min-width:0;width:92vw;font-size:16px;letter-spacing:1px}}#webgl-error{background:#06061af5;gap:18px;cursor:default}#webgl-error-body{max-width:620px;width:90%;color:#fcfcfc;font-family:Courier New,Courier,monospace;font-size:15px;line-height:1.5;letter-spacing:.5px;text-align:left;text-shadow:1px 1px 0 #000}#webgl-error-body ul{margin:12px 0 12px 20px}#webgl-error-body li{margin-bottom:8px}#webgl-error-body b{color:#f8b800}#webgl-error .webgl-reload{margin-top:6px;text-align:center}#webgl-error .webgl-reload a{color:#3cbcfc;font-weight:700}#hitmarker{position:absolute;left:50%;top:50%;width:20px;height:20px;transform:translate(-50%,-50%) rotate(45deg) scale(.6);opacity:0;pointer-events:none;z-index:12}#hitmarker:before,#hitmarker:after{content:"";position:absolute;background:#fcfcfc;box-shadow:1px 1px #000}#hitmarker:before{left:9px;top:0;width:2px;height:20px}#hitmarker:after{top:9px;left:0;height:2px;width:20px}#hitmarker.hs:before,#hitmarker.hs:after{background:#f83800}#hitmarker.kill:before,#hitmarker.kill:after{background:#f8b800}#hitmarker.show{animation:hitmark .18s ease-out}@keyframes hitmark{0%{opacity:1;transform:translate(-50%,-50%) rotate(45deg) scale(.6)}to{opacity:0;transform:translate(-50%,-50%) rotate(45deg) scale(1.5)}}.combo-popup{position:absolute;left:50%;top:38%;transform:translate(-50%,-50%) scale(.3);color:#f8b800;font-weight:700;font-size:44px;letter-spacing:4px;text-shadow:3px 3px 0 #000,0 0 12px #f87800;opacity:0;white-space:nowrap;pointer-events:none}.combo-popup.show{animation:combopop .85s ease-out forwards}@keyframes combopop{0%{opacity:0;transform:translate(-50%,-50%) scale(.3)}18%{opacity:1;transform:translate(-50%,-50%) scale(1.15)}30%{transform:translate(-50%,-50%) scale(1)}75%{opacity:1;transform:translate(-50%,-55%) scale(1)}to{opacity:0;transform:translate(-50%,-70%) scale(1)}}.rm-toggle{position:absolute;left:16px;bottom:16px;z-index:40;font-family:inherit;font-weight:700;font-size:14px;letter-spacing:2px;color:#fcfcfc;background:#000000bf;border:3px solid #fcfcfc;outline:3px solid #000;padding:8px 18px;cursor:pointer;-webkit-tap-highlight-color:transparent}.rm-toggle.reduced{color:#3cbcfc;border-color:#3cbcfc}#leaderboard{z-index:35;justify-content:safe start;gap:14px;padding:28px 12px;overflow-y:auto;touch-action:pan-y;overscroll-behavior:contain;cursor:default;background:#06061af0}#lb-art{margin-top:6px}#lb-art canvas{image-rendering:pixelated}#lb-list{width:min(560px,94vw);display:flex;flex-direction:column;gap:4px}.lb-row{display:grid;grid-template-columns:44px 1fr auto auto;align-items:center;gap:12px;padding:8px 14px;background:#0000008c;border:2px solid rgba(252,252,252,.55);font-size:17px;letter-spacing:1px}.lb-row.lb-me{border-color:#f8b800;background:#f8b80024}.lb-rank{color:#f8b800;font-weight:700;text-align:right}.lb-name{font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lb-badge{color:#00c800;margin-left:8px}.lb-wave{color:#bcbcbc;font-size:14px}.lb-score{color:#fcfcfc;font-weight:700;min-width:72px;text-align:right}.lb-empty{color:#bcbcbc;padding:24px;text-align:center;letter-spacing:1px}#lb-you{width:min(560px,94vw)}.lb-claim{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:10px;padding:14px;background:#06061a99;border:3px solid #fcfcfc;outline:3px solid #000}.lb-hint{flex-basis:100%;text-align:center;color:#bcbcbc;font-size:14px;letter-spacing:1px}.lb-input{font-family:inherit;font-size:17px;font-weight:700;letter-spacing:1px;color:#fcfcfc;background:#0009;border:3px solid #fcfcfc;outline:none;padding:9px 12px;min-width:180px;text-align:center}.lb-input::placeholder{color:#7c7c8c}.lb-btn{font-family:inherit;font-weight:700;font-size:16px;letter-spacing:2px;color:#fcfcfc;text-shadow:2px 2px 0 #000;background:#00780099;border:3px solid #fcfcfc;outline:3px solid #000;padding:9px 20px;cursor:pointer;-webkit-tap-highlight-color:transparent}.lb-btn:hover{background:#00a800b3}.lb-btn:active{transform:translateY(2px)}.lb-btn:disabled{opacity:.5}.lb-title-btn{margin-top:4px}.lb-status{flex-basis:100%;display:flex;align-items:center;justify-content:center;gap:12px}.lb-youname{font-size:20px;font-weight:700;color:#f8b800}.lb-tag{font-size:12px;font-weight:700;letter-spacing:1px;padding:3px 9px;border:2px solid}.lb-verified{color:#00c800;border-color:#00c800}.lb-guest{color:#bcbcbc;border-color:#7c7c8c}.lb-email,.lb-coderow{flex-basis:100%;display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:10px}.lb-msg{flex-basis:100%;text-align:center;color:#f8b800;font-size:13px;min-height:16px}#go-claim{width:min(560px,94vw);cursor:default}.go-claim-inner{display:flex;flex-direction:column;align-items:center;gap:12px}.lb-posted{color:#00c800;font-size:18px;font-weight:700;letter-spacing:1px}@media(max-width:820px){.lb-row{font-size:15px;grid-template-columns:36px 1fr auto auto;gap:8px;padding:7px 10px}.lb-input{min-width:150px;font-size:15px}.lb-btn{font-size:14px;padding:8px 16px}}
