:root{--glass: rgba(13, 19, 25, .68);--glass-edge: rgba(190, 214, 230, .18);--ink: #e8eef2;--muted: #94a6b3;--amber: #ffb547;--red: #ff6b5e;--green: #8ee0a6;--hud: #f3f6ee;--sky: #b9cfdc;--f-label: "Barlow Condensed", "Arial Narrow", "Roboto Condensed", sans-serif;--f-num: "IBM Plex Mono", ui-monospace, Menlo, Consolas, monospace;color-scheme:dark}[hidden]{display:none!important}html,body{height:100%;margin:0;overflow:hidden;background:var(--sky);-webkit-user-select:none;user-select:none}body{font-family:var(--f-label);color:var(--ink)}#view{position:fixed;inset:0}#view canvas{display:block;cursor:crosshair}#vignette{position:fixed;inset:0;background:radial-gradient(ellipse at 50% 45%,transparent 55%,rgba(4,6,8,.38) 100%)}.hud{pointer-events:none}.hud button{pointer-events:auto}.panel{background:var(--glass);border:1px solid var(--glass-edge);border-radius:6px;backdrop-filter:blur(6px)}.lbl{font:600 11px/1.1 var(--f-label);letter-spacing:.13em;text-transform:uppercase;color:var(--muted)}.lbl.right{justify-self:end}.num{font:500 22px/1 var(--f-num);font-variant-numeric:tabular-nums;color:var(--ink)}.num.sm{font-size:14px}kbd{font:500 11px/1 var(--f-num);color:var(--ink);border:1px solid var(--glass-edge);border-radius:3px;padding:2px 5px}#top{position:fixed;left:0;right:0;top:0;display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:8px;padding:calc(12px + env(safe-area-inset-top,0px)) calc(12px + env(safe-area-inset-right,0px)) 0 calc(12px + env(safe-area-inset-left,0px))}#tl{display:flex;flex-direction:column;gap:6px;min-width:0}.brand{display:flex;align-items:baseline;gap:8px;text-shadow:0 1px 2px rgba(0,0,0,.45)}.brand strong{font:700 22px/1 var(--f-label);letter-spacing:.04em;text-transform:uppercase}.brand span{font:500 12px/1 var(--f-num);opacity:.75}.row{display:flex;flex-wrap:wrap;gap:6px}.group-lbl{align-self:center;margin-right:2px;color:var(--ink);text-shadow:0 1px 2px rgba(0,0,0,.6)}button.tg{font:600 13px/1 var(--f-label);letter-spacing:.07em;text-transform:uppercase;color:var(--ink);background:var(--glass);border:1px solid var(--glass-edge);border-radius:4px;padding:8px 10px;cursor:pointer;display:inline-flex;gap:8px;align-items:center;backdrop-filter:blur(6px)}button.tg:hover{border-color:#e8eef273}button.tg kbd{font-size:10px;color:var(--muted);padding:2px 4px}button.tg .led{width:8px;height:8px;border-radius:50%;background:#3b4752;flex:none}button.tg[aria-pressed=true]{border-color:#ffb54799}button.tg[aria-pressed=true] .led{background:var(--amber);box-shadow:0 0 8px var(--amber)}button:focus-visible{outline:2px solid var(--amber);outline-offset:2px}#side{display:flex;flex-direction:column;align-items:stretch;gap:6px;width:212px}#mapWrap{position:relative;padding:6px;border-radius:50%;aspect-ratio:1;box-sizing:border-box}#minimap{display:block;width:100%;height:100%;border-radius:50%}#mapRange{position:absolute;right:10px;bottom:6px;color:var(--ink);text-shadow:0 1px 2px rgba(0,0,0,.8)}.mp{padding:8px 12px;display:flex;flex-direction:column;gap:4px}#mpRoomName{color:var(--amber);text-transform:none}#mpPing{float:right}#mpList{border-collapse:collapse;font:400 12px/1.4 var(--f-num);font-variant-numeric:tabular-nums}#mpList td{padding:0}#mpList td.n{text-align:right;padding-left:10px;color:var(--muted)}#mpList tr.self td:first-child{color:var(--amber)}#tut{width:min(340px,calc(100vw - 24px));padding:10px 12px;display:flex;flex-direction:column;gap:7px}#tut p{margin:0;font:400 13px/1.45 var(--f-num);color:#c9d4db;text-shadow:0 1px 2px rgba(0,0,0,.6)}#tut b{color:var(--amber);font-weight:500}#tut .tut-step{color:var(--ink);font-size:14px}#tut .tut-intro{font-size:12px;color:var(--muted)}.tut-n{font:600 12px/1 var(--f-label);letter-spacing:.08em;color:var(--muted);margin-right:4px}.tut-bar{height:4px;border-radius:2px;background:#e8eef226;overflow:hidden}.tut-bar span{display:block;height:100%;background:var(--amber)}.tut-where{font-size:13px;color:var(--ink)}.tut-foot{font-size:10px;opacity:.8}.tut-results{border-collapse:collapse;font:400 12px/1.3 var(--f-num)}.tut-results th{font:600 11px/1.1 var(--f-label);letter-spacing:.06em;text-transform:uppercase;color:var(--muted);text-align:right;padding:2px 0 4px 10px}.tut-results td{padding:2px 0;color:#c9d4db}.tut-results td.n{text-align:right;padding-left:10px;color:var(--ink);font-variant-numeric:tabular-nums}.lessons{display:grid;grid-template-columns:auto 1fr;gap:6px 14px;align-items:center;font:400 13px/1.35 var(--f-num);color:#c9d4db}.lessons button.tg{justify-content:flex-start}#feed{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:3px;font:500 12px/1.3 var(--f-num);text-shadow:0 1px 3px rgba(0,0,0,.9)}#feed li b{color:var(--amber);font-weight:500}#feed li.kill i{color:var(--red);font-style:normal}#feed li.self{color:var(--green)}.roster{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px;font:400 12px/1.3 var(--f-num)}.roster small{color:var(--muted)}.field{font:400 14px/1 var(--f-num);color:var(--ink);background:#0000004d;border:1px solid var(--glass-edge);border-radius:4px;padding:8px 10px;min-width:0;flex:1}.field:focus{outline:2px solid var(--amber);outline-offset:1px}select.field option{color:#111;background:#e8eef2}.card p.warn{color:var(--red)}.roster{font-size:13px}#hudsvg{position:fixed;left:50%;top:50%;width:min(600px,calc(100vw - 32px));transform:translate(-50%,-46%);overflow:visible;color:var(--hud);filter:drop-shadow(0 1px 1.5px rgba(0,0,0,.75))}#hudsvg line,#hudsvg path,#hudsvg rect,#hudsvg circle{vector-effect:non-scaling-stroke}#hudsvg .st{stroke:currentColor;stroke-width:1.6;fill:none}#hudsvg .st.thin{stroke-width:1;opacity:.75}#hudsvg .st.thrust{stroke:var(--green)}#hudsvg .fl{fill:currentColor}#hudsvg .amb{fill:var(--amber)}#hudsvg text{fill:currentColor;font-family:var(--f-num);font-variant-numeric:tabular-nums}#hudsvg .big{font-size:22px;font-weight:500}#hudsvg .sm{font-size:10px;letter-spacing:.1em;font-family:var(--f-label);font-weight:600}#hudsvg .md{font-size:13px}#hudsvg .warn{fill:var(--red)}#tags{position:fixed;left:50%;top:calc(50% + min(222px,40vw));transform:translate(-50%);display:flex;gap:5px;flex-wrap:wrap;justify-content:center;width:min(520px,calc(100vw - 32px))}#tags span{font:600 10px/1 var(--f-label);letter-spacing:.12em;padding:3px 5px;border-radius:3px;border:1px solid var(--glass-edge);color:#e8eef259;background:#0d131959}#tags span.on{color:var(--green);border-color:#8ee0a68c}#weapons{position:fixed;left:50%;top:calc(50% + min(250px,45vw));transform:translate(-50%);display:flex;gap:14px;font:500 13px/1 var(--f-num);font-variant-numeric:tabular-nums;color:#e8eef28c;text-shadow:0 1px 3px rgba(0,0,0,.9)}#weapons .on{color:var(--amber)}#weapons .empty{color:var(--red)}.aim{position:fixed;left:0;top:0}#pipper{width:26px;height:26px;border:1.5px solid var(--amber);border-radius:50%;box-shadow:0 0 3px #000000b3}#pipper:after{content:"";position:absolute;left:50%;top:50%;width:3px;height:3px;margin:-1.5px;border-radius:50%;background:var(--amber)}#hitMark{width:22px;height:22px;background:linear-gradient(45deg,transparent 46%,#fff 46%,#fff 54%,transparent 54%),linear-gradient(-45deg,transparent 46%,#fff 46%,#fff 54%,transparent 54%)}#seeker{border:1.5px dashed rgba(255,181,71,.7);border-radius:50%}#lockBox{width:54px;height:54px;color:var(--amber)}#lockBox svg{width:100%;height:100%;overflow:visible}#lockBox rect{fill:none;stroke:currentColor;stroke-width:1.5}#lockBox circle{fill:none;stroke:currentColor;stroke-width:3}#lockBox span{position:absolute;left:50%;top:100%;transform:translate(-50%);margin-top:4px;font:700 13px/1 var(--f-label);letter-spacing:.12em;display:none}#lockBox.locked{color:var(--red)}#lockBox.locked span{display:block}#warn{position:fixed;left:50%;top:11%;transform:translate(-50%);font:700 30px/1 var(--f-label);letter-spacing:.14em;color:var(--red);text-shadow:0 2px 8px rgba(0,0,0,.7)}#warn.blink{opacity:.25}#msg{position:fixed;left:50%;top:17%;transform:translate(-50%);text-align:center;width:min(560px,calc(100vw - 32px));opacity:0;transition:opacity .25s}#msg.show{opacity:1}#m1{font:700 34px/1.05 var(--f-label);letter-spacing:.03em;text-transform:uppercase;text-shadow:0 2px 10px rgba(0,0,0,.55);text-wrap:balance}#m2{font:500 14px/1.4 var(--f-num);margin-top:8px;text-shadow:0 1px 4px rgba(0,0,0,.8);white-space:pre-line}#msg.good #m1{color:var(--green)}#msg.bad #m1{color:var(--red)}#msg.info #m1{color:var(--amber);font-size:24px}#menu{position:fixed;inset:0;display:grid;place-items:center;background:#080c108c;padding:16px}.card{background:#0d1319f0;border:1px solid var(--glass-edge);border-radius:8px;max-width:700px;width:100%;max-height:calc(100% - 32px);overflow:auto;padding:22px 24px;display:flex;flex-direction:column;gap:14px;box-sizing:border-box}.menu-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px}.card h2{margin:0;font:700 30px/1 var(--f-label);letter-spacing:.03em;text-transform:uppercase}.card h3{margin:6px 0 0;font:600 12px/1 var(--f-label);letter-spacing:.13em;text-transform:uppercase;color:var(--muted)}.card p{margin:0;font:400 13px/1.55 var(--f-num);color:#c9d4db;max-width:70ch}.card p b{color:var(--amber);font-weight:500}.card p.credit{font-size:11px;color:var(--muted)}.card p.credit a{color:inherit}.menu-head,.menu-row{flex:none}#menuBody{display:flex;flex-direction:column;gap:12px;min-height:min(240px,40vh);overflow-y:auto}.tabs{display:flex;flex-wrap:wrap;gap:2px;border:1px solid var(--glass-edge);border-radius:5px;padding:2px}.tabs button{font:600 13px/1 var(--f-label);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);background:none;border:0;border-radius:3px;padding:7px 12px;cursor:pointer}.tabs button[aria-selected=true]{color:#1a1408;background:var(--amber)}.keys{display:grid;grid-template-columns:auto 1fr;gap:6px 16px;font:400 13px/1.3 var(--f-num);align-items:baseline}.keys .h{font:600 11px/1 var(--f-label);letter-spacing:.13em;text-transform:uppercase;color:var(--muted)}.binds{display:grid;grid-template-columns:1fr auto;gap:4px 16px;align-items:center;font:400 13px/1.3 var(--f-num)}button.bind{font:500 12px/1 var(--f-num);color:var(--ink);background:#00000040;border:1px solid var(--glass-edge);border-radius:3px;padding:6px 10px;min-width:104px;cursor:pointer}button.bind:hover{border-color:#e8eef273}button.bind.listening{border-color:var(--amber);color:var(--amber)}.check{display:flex;gap:10px;align-items:flex-start;font:400 13px/1.45 var(--f-num);cursor:pointer}.check input{margin-top:3px;accent-color:var(--amber)}.check b{color:var(--ink);font-weight:500}.check small{color:var(--muted);font-size:12px}.range{display:flex;flex-direction:column;gap:6px;font:400 13px/1.3 var(--f-num);max-width:360px}.range input{accent-color:var(--amber)}.menu-row{display:flex;flex-wrap:wrap;align-items:center;gap:10px}.note{font:400 12px/1.3 var(--f-num);color:var(--green)}.card .go{font:700 16px/1 var(--f-label);letter-spacing:.1em;text-transform:uppercase;color:#1a1408;background:var(--amber);border:0;border-radius:4px;padding:11px 22px;cursor:pointer}.card .menu-row .tg{font:700 16px/1 var(--f-label);letter-spacing:.1em;padding:10px 21px}@media (max-width: 720px){#side{width:150px}.brand strong{font-size:18px}#m1{font-size:26px}button.tg{padding:7px 8px;font-size:12px}}@media (prefers-reduced-motion: reduce){#msg{transition:none}}
