*{box-sizing:border-box}html,body{color:#d9e1ea;-webkit-user-select:none;user-select:none;background:#1b2530;height:100%;margin:0;font-family:Segoe UI,system-ui,sans-serif;overflow:hidden}#app,#app canvas{width:100%;height:100%;display:block;position:fixed;inset:0}#app canvas{cursor:none}#loading{letter-spacing:.1em;color:#8fa3b8;place-items:center;font-size:14px;display:grid;position:fixed;inset:0}.hud{pointer-events:none;font-size:12px;position:fixed;inset:0}.debug{color:#c9d3de;text-shadow:0 1px 2px #0008;grid-template-columns:auto auto;column-gap:18px;font:600 12px/1.55 Segoe UI,system-ui,sans-serif;display:grid;position:absolute;top:14px;left:16px}.debug .title{color:#7f93a8;letter-spacing:.12em;grid-column:1/3;margin-bottom:2px;font-size:11px}.debug .k{color:#8ea0b3}.controls{text-align:center;color:#8ea0b3;letter-spacing:.04em;word-spacing:2px;text-shadow:0 1px 2px #0008;font:600 11px Segoe UI,system-ui,sans-serif;position:absolute;bottom:10px;left:0;right:0}.controls b{color:#c9d3de;margin-right:3px;font-weight:700}.controls span{white-space:nowrap;margin:0 8px}.ammo{text-align:right;color:#e7edf3;text-shadow:0 2px 6px #0009;font:700 34px/1 Segoe UI,system-ui,sans-serif;position:absolute;bottom:40px;right:22px}.ammo small{color:#8ea0b3;font-size:15px;font-weight:600}.ammo .state{letter-spacing:.15em;color:#f0b35a;height:14px;margin-top:4px;font-size:11px;display:block}.blend{background:#070b10cc;border-radius:6px;width:170px;height:128px;padding:8px;position:absolute;bottom:215px;right:22px}.blend .lbl{letter-spacing:.12em;color:#7f93a8;margin-bottom:4px;font:600 9px Segoe UI,sans-serif}.blend canvas{width:154px;height:100px;display:block}.reticle{width:0;height:0;position:absolute;top:0;left:0}.reticle i{background:#e8eef5;position:absolute;box-shadow:0 0 2px #000a}.reticle .dot{border-radius:50%;width:3px;height:3px;top:-1.5px;left:-1.5px}.reticle .t,.reticle .b{width:2px;height:7px;left:-1px}.reticle .l,.reticle .r{width:7px;height:2px;top:-1px}.reticle .hit{opacity:0;transition:opacity .12s}.reticle .hit i{background:#fff;width:9px;height:2px;top:-1px;left:-4.5px}.reticle .hit.on{opacity:1;transition:none}.memorial{text-align:center;color:#fff;text-shadow:0 3px 10px #000c;opacity:0;font-family:Georgia,Times New Roman,serif;transition:opacity .6s;position:absolute;top:9%;left:0;right:0}.memorial.on{opacity:1}.memorial .s{letter-spacing:.2em;font-size:13px;font-weight:700}.memorial .n{font-size:54px;font-weight:700;line-height:1.05}.memorial .y{font-size:20px;font-weight:700}.toast{opacity:0;background:#0b1118cc;border-radius:4px;padding:6px 14px;font-size:12px;transition:opacity .3s;position:absolute;top:18px;left:50%;transform:translate(-50%)}.toast.on{opacity:1}.tune{pointer-events:auto;background:#0b1118ee;border:1px solid #2a3a4c;border-radius:6px;width:290px;max-height:calc(100% - 180px);padding:10px 12px;font-size:11px;display:none;position:absolute;top:14px;right:16px;overflow:auto}.tune.on{display:block}.tune h3{letter-spacing:.15em;color:#7f93a8;margin:0 0 8px;font-size:11px}.tune label{grid-template-columns:96px 1fr 44px;align-items:center;gap:6px;margin:3px 0;display:grid}.tune input[type=range]{width:100%}.tune .v{text-align:right;color:#c9d3de;font-variant-numeric:tabular-nums}.tune button{color:#d9e1ea;cursor:pointer;background:#22313f;border:1px solid #34495e;border-radius:4px;margin-top:8px;padding:4px 10px;font-size:11px}.slots{text-align:right;color:#74869a;text-shadow:0 1px 2px #0008;font:600 11px/1.7 Segoe UI,system-ui,sans-serif;position:absolute;bottom:104px;right:22px}.slots div{white-space:nowrap}.slots b{color:#8ea0b3;margin-right:6px;font-weight:700}.slots i{font-variant-numeric:tabular-nums;opacity:.8;margin-left:8px;font-style:normal}.slots .on{color:#f0f4f8}.slots .on b{color:#f0b35a}.health{color:#e7edf3;text-shadow:0 2px 6px #0009;align-items:center;gap:10px;font:700 18px Segoe UI,system-ui,sans-serif;display:flex;position:absolute;bottom:40px;left:22px}.health .bar{background:#0b1118cc;border-radius:4px;width:180px;height:8px;overflow:hidden}.health .bar i{background:#58d6ae;width:100%;height:100%;transition:width .15s;display:block}.vignette{opacity:0;background:radial-gradient(#0000 45%,#b00c0cb0 100%);transition:opacity .5s;position:absolute;inset:0}.vignette.on{opacity:1;transition:none}.menu{z-index:50;cursor:default;-webkit-user-select:text;user-select:text;background:radial-gradient(at 50% 30%,#243242 0%,#141c25 70%);place-items:center;display:grid;position:fixed;inset:0}.menu .card{background:#0f161ee6;border:1px solid #2a3a4c;border-radius:10px;width:min(420px,100vw - 32px);padding:28px 28px 22px}.menu .logo{letter-spacing:.18em;color:#f0f4f8;text-align:center;font:800 44px/1 Segoe UI,system-ui,sans-serif}.menu .sub{text-align:center;color:#9db0c4;margin:14px 0 18px;font-size:14px;line-height:1.45}.menu form{gap:10px;display:grid}.menu input[type=email],.menu input[type=text]{color:#f0f4f8;background:#18222d;border:1px solid #34495e;border-radius:6px;outline:none;width:100%;padding:11px 12px;font-size:15px}.menu input:focus{border-color:#58d6ae}.menu input.code{text-align:center;letter-spacing:.35em;font-size:26px;font-weight:700}.menu button{color:#0d1a16;cursor:pointer;background:#58d6ae;border:0;border-radius:6px;padding:11px 14px;font:700 14px Segoe UI,system-ui,sans-serif}.menu button:hover{background:#6fe3bd}.menu button:disabled{opacity:.5;cursor:default}.menu button.link{color:#8ea0b3;background:0 0;padding:6px 4px;font-size:12px;font-weight:600}.menu button.link:hover{color:#d9e1ea;background:0 0}.menu .card>button{width:100%}.menu .card>button.link{margin-top:10px}.menu .err{color:#f08a80;text-align:center;min-height:1em;margin-top:12px;font-size:13px}.menu .lbl{letter-spacing:.12em;text-transform:uppercase;color:#7f93a8;margin:14px 0 6px;font:600 11px Segoe UI,sans-serif}.menu form .lbl{margin:6px 0 0}.menu .colors{align-items:center;gap:10px;display:flex}.menu .swatches{flex:1;grid-template-columns:repeat(6,1fr);gap:7px;display:grid}.menu .sw{border:2px solid #0000;border-radius:6px;height:30px;padding:0}.menu .sw.on{border-color:#f0f4f8;box-shadow:inset 0 0 0 2px #0f161e}.menu input[type=color]{cursor:pointer;background:0 0;border:1px solid #34495e;border-radius:6px;width:44px;height:68px;padding:0}.menu .me{color:#d9e1ea;align-items:center;gap:8px;margin:18px 0 14px;font-size:15px;display:flex}.menu .me b{flex:1}.menu .me .dot{border:1px solid #0008;border-radius:4px;width:14px;height:14px}.menu .rooms{gap:6px;max-height:240px;display:grid;overflow:auto}.menu .roomrow{background:#18222d;border-radius:6px;align-items:center;gap:10px;padding:9px 10px;display:flex}.menu .roomrow>div{flex:1;min-width:0}.menu .roomrow b{color:#f0f4f8;font-size:14px;display:block}.menu .roomrow span{color:#8ea0b3;white-space:nowrap;text-overflow:ellipsis;font-size:12px;display:block;overflow:hidden}.menu .roomrow button{padding:7px 12px;font-size:12px}.menu .empty{text-align:center;color:#7f93a8;background:#18222d;border-radius:6px;padding:14px;font-size:13px}.nametags{pointer-events:none;z-index:5;position:fixed;inset:0}.nametag{color:#f0f4f8;white-space:nowrap;background:#0b1118b0;border-radius:4px;padding:2px 7px;font:700 11px Segoe UI,system-ui,sans-serif;position:absolute;top:0;left:0}.room{text-align:center;pointer-events:auto;color:#c9d3de;text-shadow:0 1px 2px #0008;margin-top:34px;font:600 11px/1.5 Segoe UI,system-ui,sans-serif;position:absolute;top:14px;left:50%;transform:translate(-50%)}.room .name{color:#7f93a8;letter-spacing:.12em;text-transform:uppercase}.room .players{flex-wrap:wrap;justify-content:center;gap:10px;display:flex}.room button{color:#74869a;cursor:pointer;background:0 0;border:0;margin-top:3px;font:600 10px Segoe UI,sans-serif;text-decoration:underline}.room button:hover{color:#d9e1ea}.viewbtn{pointer-events:auto;cursor:pointer;color:#d9e1ea;background:#0b1118cc;border:1px solid #2a3a4c;border-radius:5px;padding:5px 10px;font:600 11px Segoe UI,system-ui,sans-serif;position:absolute;bottom:70px;left:22px}.viewbtn:hover{border-color:#58d6ae}.viewbtn b{color:#f0b35a;margin-right:7px}.minimap{border:1px solid #2a3a4c;border-radius:8px;width:200px;height:200px;position:absolute;top:14px;right:16px;box-shadow:0 2px 10px #0008}.clock{text-align:center;color:#d9e1ea;text-shadow:0 1px 2px #000c;letter-spacing:.08em;width:200px;font:600 11px Segoe UI,system-ui,sans-serif;position:absolute;top:220px;right:16px}.bigmap{border:1px solid #34495e;border-radius:10px;width:min(720px,86vmin);height:min(720px,86vmin);display:none;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 8px 40px #000c}.bigmap.on{display:block}.hint{color:#f0f4f8;text-shadow:0 1px 4px #000c;font:700 13px Segoe UI,system-ui,sans-serif;position:absolute;bottom:96px;left:50%;transform:translate(-50%)}.slots .locked{opacity:.45}.tune{max-height:calc(100% - 420px);top:250px}.controls{text-shadow:0 1px 3px #000c;color:#c9d3de}.controls b{color:#fff}.debug,.ammo,.health,.slots{text-shadow:0 1px 3px #000d}.menu .modes{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.menu .modes button{padding:12px 6px}.menu .solo{color:#74869a;justify-content:center;align-items:center;gap:6px;margin-top:12px;font-size:12px;display:flex}.menu .solo .link{padding:4px 6px;text-decoration:underline}
