@font-face{font-family:Arcade;src:url('../assets/fonts/arcade.ttf') format('truetype');font-display:swap}*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden;background:#080e12;color:#eef3e1;font-family:Arial,sans-serif;overscroll-behavior:none}button{font:inherit;cursor:pointer;color:inherit}#app{width:min(100%,540px);height:100dvh;margin:auto;position:relative;overflow:hidden;background:#182d2b;touch-action:pan-y}#game,#game canvas{width:100%;height:100%;image-rendering:pixelated}#hud{position:absolute;inset:0 0 auto;padding:calc(16px + env(safe-area-inset-top)) 20px 12px;pointer-events:none;background:linear-gradient(#0b151aed,transparent)}.hud-top{display:flex;align-items:center;justify-content:space-between;font:18px Arcade,monospace;letter-spacing:2px}.accent{color:#dfff70}#pause{pointer-events:auto;border:1px solid #637b71;background:#132322;width:34px;height:34px}.health{height:15px;background:#16201d;border:1px solid #7b9b73;position:relative;margin-top:10px}.health i{display:block;height:100%;background:#bded75;transition:width .15s}.health span{position:absolute;inset:0;text-align:center;font:10px monospace;color:#fff;text-shadow:1px 1px #000}.hud-stats{display:flex;justify-content:space-between;margin-top:8px;font:12px monospace;color:#d6e2c7}#weapons{display:flex;gap:6px;margin-top:10px}#weapons span{padding:6px;border:1px solid #627b64;background:#14221dde;font:11px monospace}#wave-progress{font:10px monospace;margin-top:8px;color:#91aa98}.boss-health i{background:#f36c79}#boss-name{font-size:11px}#overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;padding:24px;background:linear-gradient(#0c191a55,#091313dc);overflow:auto}#overlay:empty{display:none}.panel{width:100%;max-width:410px;text-align:center;padding:28px 22px;background:#10201eea;border:1px solid #698271;box-shadow:8px 8px 0 #06110c8a}.eyebrow{font:10px monospace;letter-spacing:3px;color:#bada8d;margin:0 0 20px}.logo{font:clamp(28px,7.5vw,44px)/1.25 Arcade,monospace;letter-spacing:-1px;color:#ecf4d1;margin:10px 0;text-shadow:3px 3px #47614c}.logo em{display:block;color:#dfff70;font-style:normal}.subtitle{font-size:13px;line-height:1.7;color:#adbdad;margin:18px 0 28px}.button{display:block;width:100%;padding:15px;margin:10px 0;border:1px solid #65816b;background:#20372b;font-weight:bold;font-size:12px;letter-spacing:1px;box-shadow:3px 3px #07140f}.primary{background:#dfff70;color:#17251d;border-color:#dfff70}.button:hover{filter:brightness(1.12)}button:focus-visible{outline:3px solid #fff;outline-offset:3px}.button:disabled{opacity:.6;cursor:wait}.footnote{font:10px monospace;color:#8caa92;margin-top:26px;line-height:1.7}.panel h2{font:22px Arcade,monospace;line-height:1.4}.instructions{text-align:left;color:#bfd0bd;font-size:14px;line-height:1.8}.setting{display:flex;justify-content:space-between;align-items:center;text-align:left;padding:16px 0;border-bottom:1px solid #344839;font-size:14px}.setting input{accent-color:#dfff70;max-width:130px}.cards{display:grid;gap:10px}.card{text-align:left;padding:15px;background:#20332c;border:1px solid var(--rarity);color:#e8f2da;display:grid;grid-template-columns:38px 1fr;gap:10px}.card .icon{font-size:25px}.card b{font-size:14px}.card small{display:block;font:9px monospace;letter-spacing:1px;color:var(--rarity);margin-bottom:6px}.card p{font-size:12px;line-height:1.5;color:#bccdbc;margin:7px 0 0}.big-score{font:44px Arcade,monospace;color:#dfff70;margin:18px 0}.results{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:20px 0}.results div{background:#192c25;padding:13px}.results small{display:block;font:9px monospace;color:#a7bfa6;margin-bottom:8px}.results b{font:18px monospace}#joystick{position:absolute;bottom:clamp(calc(24px + env(safe-area-inset-bottom)),calc(var(--joy-bottom,14dvh) + env(safe-area-inset-bottom)),calc(100% - var(--joy-size,112px) - 180px));left:clamp(calc(var(--joy-size,112px)/2 + 16px),var(--joy-x,50%),calc(100% - var(--joy-size,112px)/2 - 16px));transform:translateX(-50%);width:112px;height:112px;border-radius:50%;border:2px solid #b7d5a547;background:#0b201d70;touch-action:none}#stick{position:absolute;left:50%;top:50%;width:44px;height:44px;border-radius:50%;background:#dfff7070;border:2px solid #dfff7080;transform:translate(-50%,-50%);pointer-events:none}#toast{position:absolute;bottom:165px;left:20px;right:20px;pointer-events:none;text-align:center;font-size:12px;background:#10201eef;border:1px solid #76936b;padding:12px;opacity:0;transition:opacity .2s}#toast.show{opacity:1}#rotate{display:none;position:absolute;inset:0;z-index:10;background:#0b1715;align-items:center;justify-content:center;flex-direction:column;text-align:center}#rotate span{font-size:70px;color:#dfff70}[hidden]{display:none!important}


.panel{max-height:calc(100dvh - 48px - env(safe-area-inset-top) - env(safe-area-inset-bottom));overflow-y:auto;touch-action:pan-y}.setting>span{display:flex;flex-direction:column;align-items:flex-end;gap:6px}.setting output{font:10px monospace;color:#dfff70}.joy-preview{height:135px;position:relative;background:#253c30;border:1px solid #54735b;margin:14px 0;overflow:hidden}.preview-label{display:block;font:9px monospace;color:#a7bfa6;letter-spacing:1px;padding:10px}.joy-preview i{position:absolute;border-radius:50%;transform:translateX(-50%);border:2px solid #dfff7080;background:#dfff7025}.joy-preview i:after{content:"";position:absolute;width:35%;height:35%;left:32.5%;top:32.5%;background:#dfff7080;border-radius:50%}

#game{touch-action:none}

