:root{--red:#d33;--green:#4c9;--ink:#e8ecef;--dim:#8a949c}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none}
html,body{margin:0;height:100%;background:#050607;color:var(--ink);font-family:system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;overflow:hidden;touch-action:none;overscroll-behavior:none}
#view{position:fixed;inset:0;width:100%;height:100%;display:block}
[hidden]{display:none!important}

#hud{position:fixed;inset:0;pointer-events:none}
#vignette{position:absolute;inset:0;background:radial-gradient(ellipse at center,transparent 45%,rgba(160,0,0,.85) 100%);opacity:0}
#bile{position:absolute;inset:0;background:radial-gradient(ellipse at center,rgba(120,150,40,.35),rgba(80,110,20,.75));opacity:0;transition:opacity .4s}
#cross{position:absolute;left:50%;top:50%;width:0;height:0}
#cross i{position:absolute;background:#fff;opacity:.85;box-shadow:0 0 2px #000}
#cross i:nth-child(1){left:-1px;top:-14px;width:2px;height:8px}
#cross i:nth-child(2){left:-1px;top:6px;width:2px;height:8px}
#cross i:nth-child(3){left:-14px;top:-1px;width:8px;height:2px}
#cross i:nth-child(4){left:6px;top:-1px;width:8px;height:2px}
#cross.hit i{background:#f44;opacity:1}
#objective{position:absolute;top:calc(10px + env(safe-area-inset-top));left:50%;transform:translateX(-50%);padding:6px 14px;background:rgba(0,0,0,.45);border-left:3px solid var(--green);font-size:14px;letter-spacing:.02em;max-width:80vw;text-align:center}
#msg{position:absolute;top:22%;left:50%;transform:translateX(-50%);font-size:22px;font-weight:700;text-shadow:0 2px 6px #000;opacity:0;transition:opacity .3s;text-align:center;max-width:86vw}
#msg.on{opacity:1}
#tankbar{position:absolute;top:58px;left:50%;transform:translateX(-50%);width:min(420px,70vw);text-align:center;font-size:12px;letter-spacing:.2em;color:#e88}
#tankbar>div{height:10px;background:rgba(0,0,0,.6);border:1px solid #733;margin-top:3px}
#tankfill{display:block;height:100%;width:100%;background:linear-gradient(#e33,#a11)}
#stats{position:absolute;left:calc(16px + env(safe-area-inset-left));bottom:calc(14px + env(safe-area-inset-bottom));display:flex;flex-direction:column;gap:8px}
.hp{position:relative;width:min(240px,38vw);height:22px;background:rgba(0,0,0,.55);border:1px solid #444}
#hpfill{position:absolute;left:0;top:0;bottom:0;width:100%;background:linear-gradient(#5c5,#2a2)}
#hptxt{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:14px;text-shadow:0 1px 3px #000}
.ammo{display:flex;align-items:baseline;gap:10px;text-shadow:0 1px 4px #000}
.ammo span{font-size:12px;color:var(--dim);text-transform:uppercase;letter-spacing:.1em}
.ammo b{font-size:26px;font-variant-numeric:tabular-nums}
#pin{position:absolute;bottom:26%;left:50%;transform:translateX(-50%);color:#f66;font-weight:700;text-shadow:0 2px 6px #000;text-align:center;max-width:80vw}

/* touch */
#touch{position:fixed;inset:0;pointer-events:none;z-index:5}
#touch button{position:absolute;pointer-events:auto;border:2px solid rgba(255,255,255,.35);background:rgba(20,24,28,.5);color:#fff;font:700 13px system-ui,sans-serif;border-radius:50%;touch-action:none;padding:0}
#touch button:active,#touch button.down{background:rgba(255,255,255,.3)}
#bFire{right:calc(26px + env(safe-area-inset-right));bottom:calc(30px + env(safe-area-inset-bottom));width:92px;height:92px;font-size:15px;background:rgba(180,30,30,.45)!important}
#bReload{right:calc(130px + env(safe-area-inset-right));bottom:calc(24px + env(safe-area-inset-bottom));width:58px;height:58px}
#bShove{right:calc(36px + env(safe-area-inset-right));bottom:calc(138px + env(safe-area-inset-bottom));width:58px;height:58px;font-size:11px}
#bSwap{right:calc(112px + env(safe-area-inset-right));bottom:calc(98px + env(safe-area-inset-bottom));width:58px;height:58px;font-size:10px}
#bPause{right:calc(10px + env(safe-area-inset-right));top:calc(8px + env(safe-area-inset-top));width:40px;height:40px}
#joyBase{position:absolute;width:120px;height:120px;margin:-60px 0 0 -60px;border-radius:50%;border:2px solid rgba(255,255,255,.3);background:rgba(255,255,255,.07);display:none}
#joyKnob{position:absolute;left:50%;top:50%;width:54px;height:54px;margin:-27px 0 0 -27px;border-radius:50%;background:rgba(255,255,255,.35)}

#loading{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;background:#050607;z-index:30;letter-spacing:.2em;color:var(--dim)}

.screen{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;background:rgba(3,4,5,.82);z-index:20;padding:16px;overflow:auto}
.card{max-width:520px;width:100%;text-align:center;background:rgba(18,21,24,.92);border:1px solid #2a3036;padding:26px 22px}
.card h1{font-size:clamp(30px,6vw,46px);margin:.1em 0 .3em;letter-spacing:.02em}
.card h2{font-size:30px;margin:.1em 0 .4em}
.card h2.red{color:var(--red)}.card h2.green{color:var(--green)}
.card p{color:#b9c2c9;line-height:1.5;margin:.4em 0 1em}
.eyebrow{font-size:12px;letter-spacing:.22em;text-transform:uppercase;color:var(--green)}
.keys{display:grid;gap:6px;text-align:left;font-size:14px;color:#b9c2c9;margin:0 auto 18px;max-width:420px}
kbd{display:inline-block;padding:1px 7px;background:#262c32;border:1px solid #444c54;border-radius:4px;font:600 12px ui-monospace,monospace;color:#fff}
.big{font:700 18px system-ui,sans-serif;padding:14px 38px;background:#c33;color:#fff;border:0;cursor:pointer;letter-spacing:.06em}
.big:hover{background:#e44}
#rotate{position:fixed;left:0;right:0;top:0;padding:10px;text-align:center;background:#a60;color:#fff;z-index:40;font-size:14px}
