:root{--gold:#f4c66a;--bg:#0b0f14;--fg:#fff;box-sizing:border-box}
@media (prefers-color-scheme:dark){:root{--bg:#0b0f14}}
html,body{height:100%;margin:0;background:var(--bg);color:var(--fg);font-family:system-ui,sans-serif;overflow:hidden;touch-action:none;user-select:none;-webkit-user-select:none}
canvas{display:block;position:fixed;inset:0;width:100%;height:100%}
#hud{position:fixed;inset:0;pointer-events:none;padding:env(safe-area-inset-top,0) env(safe-area-inset-right,0) env(safe-area-inset-bottom,0) env(safe-area-inset-left,0)}
.b{position:absolute;text-shadow:0 1px 3px #000;font-weight:700}
#top{top:10px;left:12px;font-size:14px}#hpw{position:absolute;left:12px;bottom:14px;width:200px}
#hpb{height:12px;background:#0008;border:1px solid #fff6;border-radius:6px;overflow:hidden}#hpf{height:100%;background:#4ade80;width:100%}
#arb{height:5px;margin-top:3px;background:#0008}#arf{height:100%;background:#60a5fa;width:0}
#wp{right:14px;bottom:14px;text-align:right;font-size:18px;color:var(--gold)}
#cx{left:50%;top:50%;width:14px;height:14px;margin:-7px;border:2px solid #fff;border-radius:50%;opacity:.8}
#msg{left:50%;top:18%;transform:translateX(-50%);font-size:18px;color:var(--gold);text-align:center}
#ov{position:fixed;inset:0;background:#000c;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;text-align:center;padding:20px;z-index:5}
#ov h1{margin:0;font-size:44px;letter-spacing:6px;color:var(--gold)}#ov p{max-width:440px;opacity:.85;line-height:1.5;margin:0}
button{font:700 18px system-ui;background:var(--gold);color:#111;border:0;border-radius:10px;padding:12px 30px}
#tc{display:none;position:fixed;inset:0;pointer-events:none}
.tb{position:absolute;pointer-events:auto;width:58px;height:58px;border-radius:50%;background:#fff3;border:2px solid #fff7;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;padding:0;color:#fff}
#js{position:absolute;left:calc(env(safe-area-inset-left,0px) + 24px);bottom:calc(env(safe-area-inset-bottom,0px) + 50px);width:130px;height:130px;border-radius:50%;background:#fff2;border:2px solid #fff5;pointer-events:auto}
#kn{position:absolute;left:35px;top:35px;width:60px;height:60px;border-radius:50%;background:#fff6}