:root{--bg: #0b0a14;--ink: #f4efe6;--mute: #a9a5b5;--gold: #f2c063;--line: #2c2a3c;--red: #ff3b30;color-scheme:dark}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body,#app{margin:0;height:100%;background:var(--bg);color:var(--ink);font-family:system-ui,-apple-system,Segoe UI,sans-serif;overflow:hidden}body{overscroll-behavior:none;user-select:none;-webkit-user-select:none}h1{margin:0 0 6px;font-size:34px;font-weight:700;letter-spacing:.01em}p{margin:0;color:var(--mute)}button{font:inherit;font-weight:600;color:#231a06;background:var(--gold);border:0;border-radius:10px;padding:12px 22px;cursor:pointer}button:disabled{background:#3a3849;color:#8b8899;cursor:default}input{font:inherit;font-size:18px;color:var(--ink);background:#17151f;border:1px solid var(--line);border-radius:8px;padding:10px 12px;width:100%;margin-top:4px;user-select:text;-webkit-user-select:text}[hidden]{display:none!important}#commit{position:fixed;right:10px;bottom:6px;font:12px ui-monospace,monospace;color:#77748a;z-index:5}.menu{height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:16px}.menu button{width:min(280px,100%)}#game{position:absolute;inset:0}#game canvas{display:block;width:100%!important;height:100%!important}.panel{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;gap:48px;background:#07060eb8;padding:24px}.panel-main{width:min(420px,50vw);display:flex;flex-direction:column;gap:12px;align-items:flex-start}.panel-main h1{font-size:clamp(30px,4vw,52px);line-height:1.1}.panel-join{text-align:center;display:flex;flex-direction:column;gap:6px;align-items:center}.qr{width:min(240px,30vh);background:#fff;border-radius:10px;padding:6px}.qr svg{display:block;width:100%;height:auto}.code{font-size:44px;font-weight:700;letter-spacing:.14em;color:var(--gold)}.hint{font-size:14px}.players{list-style:none;padding:0;margin:4px 0;width:100%;display:flex;flex-direction:column;gap:6px}.players li{display:flex;align-items:center;gap:10px}.players li i{width:14px;height:14px;border-radius:50%}.players li span{color:var(--mute);font-size:13px}.players li b{margin-left:auto}.players .empty{color:var(--mute)}#hud{position:absolute;top:10px;left:0;right:0;display:flex;justify-content:center;align-items:center;gap:24px;pointer-events:none;text-shadow:0 1px 3px #000}.hud-code{position:absolute;left:14px;font-size:16px;font-weight:600;color:var(--gold)}.hud-time{font-size:26px;font-weight:700;font-variant-numeric:tabular-nums}.hud-hp{display:flex;align-items:center;gap:8px}.bar{width:180px;height:12px;background:#000a;border:1px solid #fff4;border-radius:6px;overflow:hidden}.bar i{display:block;height:100%;width:100%;background:var(--red)}#count{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:140px;font-weight:800;color:var(--gold);text-shadow:0 2px 8px #000;pointer-events:none}.join{height:100%;max-width:380px;margin:0 auto;padding:16px;display:flex;flex-direction:column;justify-content:center;gap:14px}.join label{color:var(--mute);font-size:14px}.join #code{text-transform:uppercase;letter-spacing:.2em;font-weight:700}.err{color:#ffb3a8;font-size:14px;min-height:20px}.wait{height:100%;padding:24px 16px;display:flex;flex-direction:column;gap:10px;align-items:center;justify-content:center;text-align:center;border-top:6px solid var(--me, transparent)}.wait .players{max-width:260px;text-align:left}.phone-map{position:absolute;inset:0}.pad{position:absolute;inset:0;touch-action:none}.pad.villager{transition:background .25s}.pad.villager[data-danger="1"]{background:#2a1a12}.pad.villager[data-danger="2"]{background:#451a10}.pad.villager[data-danger="3"]{background:#6e160f;animation:throb .5s infinite alternate}@keyframes throb{to{background:#a01a12}}.stick{position:absolute;width:120px;height:120px;margin:-60px 0 0 -60px;border-radius:50%;border:2px solid #fff5;pointer-events:none}.stick i{position:absolute;left:35px;top:35px;width:50px;height:50px;border-radius:50%;background:#fff8}.act{position:absolute;right:max(24px,env(safe-area-inset-right));bottom:28px;width:112px;height:112px;border-radius:50%;pointer-events:none;font-size:20px}.act.held{background:#fff;transform:scale(.94)}.pad.monster .act{opacity:.85}.status{position:absolute;top:12px;left:0;right:0;padding:0 16px;display:flex;flex-direction:column;align-items:center;gap:8px;pointer-events:none;text-align:center;text-shadow:0 1px 3px #000}.status .bar i{background:var(--gold)}.status .bar i.low{background:#777}.beat{display:flex;gap:8px;align-items:flex-end;height:44px}.beat i{width:18px;background:#fff2;border-radius:3px}.beat i:nth-child(1){height:14px}.beat i:nth-child(2){height:28px}.beat i:nth-child(3){height:44px}.beat i.on{background:#ff5d4d}.note{min-height:20px;font-size:15px}
