@import url('https://fonts.googleapis.com/css2?family=Barlow+Condensed:wght@500;600;700;800&family=Inter:wght@400;500;600;700&display=swap');
:root{color-scheme:dark;--bg:#141615;--panel:#1c1e1d;--line:#353835;--text:#e6e8e2;--muted:#90968f;--accent:#dce6c8}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font:14px Inter,Arial,sans-serif}button,input{font:inherit}button,a,input,summary{outline-offset:4px}button{cursor:pointer;border:1px solid var(--line);background:#252825;color:var(--text);padding:12px 17px;border-radius:3px}button:hover{background:#383d36}button:disabled{opacity:.4;cursor:not-allowed}a{color:inherit;text-decoration:none}header{height:88px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 4.5%}.brand{font:bold 25px 'Barlow Condensed',sans-serif;letter-spacing:3px}.brand span{display:block;font:9px Inter;letter-spacing:2.9px;margin:5px 0 0 29px;color:var(--muted)}.header-right{display:flex;align-items:center;gap:12px;font-size:10px;letter-spacing:1px}.header-right button{margin-left:25px;font-size:12px;letter-spacing:0}.dot{width:6px;height:6px;background:var(--accent);border-radius:50%}main{max-width:1440px;margin:auto;padding:50px 4.5% 0;display:grid;grid-template-columns:1fr 1.2fr;gap:35px 60px}.eyebrow,.section-label{font-size:10px;letter-spacing:2px;color:var(--muted)}h1{font:700 clamp(46px,4.5vw,68px)/1.02 'Barlow Condensed',Impact,sans-serif;letter-spacing:-1px;margin:20px 0}p{color:#a8ada5;line-height:1.8}label{font-size:9px;letter-spacing:1.8px;display:block;margin:23px 0 10px}input{width:100%;background:#1d201d;border:1px solid #41463e;border-radius:3px;padding:14px;color:var(--text)}.join{max-width:360px}.primary{display:flex;align-items:center;justify-content:space-between;background:var(--accent);color:#242920;border:0;font-weight:600;width:100%;margin:12px 0}.primary:hover{background:#f0f5e7}.primary b{font-size:23px}small{color:var(--muted);font-size:10px}.join small{display:block;text-align:center}details{max-width:420px;margin-top:23px}summary{cursor:pointer;font-size:12px;color:#b7bcb3;list-style:none}summary span{float:right}.row{display:flex;gap:6px;margin:10px 0}.row input{min-width:0}.row button{padding:9px;font-size:11px}.preview{background:#1b1e1b;border:1px solid var(--line);align-self:center;position:relative}.preview-top,.preview-bottom{display:flex;justify-content:space-between;padding:20px;font-size:9px;letter-spacing:1.5px;color:#9ca494}.preview canvas{display:block;width:100%;height:auto}.preview-bottom{border-top:1px solid var(--line)}.map-note{font-size:11px;display:flex;align-items:center;gap:12px;border-top:1px solid var(--line);padding:16px 20px}.map-note b{border:1px solid #737d69;padding:4px 8px}.map-note span{margin-left:auto;color:var(--muted)}.roster,footer{grid-column:1/-1}.section-label{display:flex;justify-content:space-between;margin:12px 0 18px}.section-label span{letter-spacing:0;font-size:10px}#classes{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.class-card{position:relative;text-align:left;padding:20px;background:#1b1e1b;min-height:160px;border-radius:0}.class-card.selected{border-color:#b9c4aa;background:#232821}.class-card .num{position:absolute;right:14px;top:14px;color:#7a8472;font-size:10px}.class-card .icon{font-size:32px;display:block;color:#b5bead;margin-bottom:12px}.class-card strong{font:600 25px 'Barlow Condensed',sans-serif;letter-spacing:1px}.class-card small{display:block;line-height:1.6;margin-top:9px}.class-card .stat{font-size:9px;letter-spacing:1px;color:#b4bcae;margin-top:16px}footer{display:flex;justify-content:space-between;border-top:1px solid var(--line);padding:20px 0;font-size:9px;letter-spacing:1px;color:var(--muted)}.matchbar{height:60px;display:flex;align-items:center;justify-content:space-between;padding:0 24px;font-size:11px}.matchbar button{font-size:11px}#score{font:600 25px 'Barlow Condensed';word-spacing:15px}.arena{position:relative;max-width:1400px;margin:auto;background:#20241f}#canvas{width:100%;display:block;max-height:calc(100vh - 260px);object-fit:contain;cursor:crosshair}.hud{display:flex;gap:20px;align-items:center;justify-content:center;padding:17px}.hud button{font-size:11px}.hud #health{width:180px}#classSwitch{display:flex;gap:4px}#classSwitch button{padding:12px}.keyline{text-align:center;font-size:10px;color:#c4ccbc;padding-bottom:12px}.keyline span{color:#757e6f}.bar{height:5px;background:#363d31;margin-top:8px}.bar i{display:block;background:#d7e3c8;height:100%}#feed{position:absolute;top:15px;right:25px;font-size:11px;line-height:2;text-shadow:1px 1px #000}#notice{position:absolute;top:12px;left:50%;transform:translateX(-50%);font-size:12px;background:#161916dd;padding:8px 16px;pointer-events:none}#notice:empty{display:none}dialog{background:#1c201b;border:1px solid #59614f;color:var(--text);padding:35px;max-width:560px;width:90%;box-shadow:0 20px 100px #000}dialog::backdrop{background:#0009}h2{font:600 36px 'Barlow Condensed';margin:15px 0}.close{float:right;border:0;padding:5px}.upgrade{display:flex;align-items:center;justify-content:space-between;padding:14px 0;border-bottom:1px solid var(--line)}.upgrade small{display:block;margin-top:5px}#result{position:absolute;inset:20% 25%;background:#171b16f5;border:1px solid #88977c;text-align:center;padding:35px}#rooms button{display:block;width:100%;text-align:left;margin:5px 0}@media(max-width:850px){main{grid-template-columns:1fr;padding-top:28px}.preview{grid-row:2}#classes{grid-template-columns:1fr 1fr}.header-right{font-size:8px}.header-right button{margin-left:0}.section-label span{display:none}.hud{gap:5px;flex-wrap:wrap}.matchbar{padding:0 6px}.keyline{line-height:2}#result{inset:10%}.preview{max-width:600px}.join{max-width:none}}
[hidden]{display:none!important}
/* 0.4 — cobalt / coral, neutral arena surfaces */
:root{--bg:#0b1320;--panel:#142033;--line:#2b3d55;--text:#eaf2ff;--muted:#93a7c2;--accent:#59afff}body{background:radial-gradient(ellipse at 0 0,#172d4a,transparent 65%),var(--bg)}header{background:#0b1320e8}.brand{color:#eff7ff}.brand:first-letter{color:#59afff}button{background:#1b2c43}button:hover{background:#2b4261}input{background:#101e30;border-color:#3c526f}p{color:#a9bad0}.primary{background:#4ba8ff;color:#061424;box-shadow:0 8px 30px #1576e526}.primary:hover{background:#86c7ff}.preview{background:#101d2e;border-color:#38506e;border-radius:8px;overflow:hidden}.preview-top,.preview-bottom{color:#a7bdd9}.map-note b{border-color:#4ba8ff;color:#a3d5ff}.class-card{background:#142135;border-radius:6px;border-top:2px solid #324964}.class-card.selected{border-color:#59afff;background:linear-gradient(135deg,#203c60,#142135)}.class-card .icon{color:#83c5ff}.class-card .num{color:#8aafd5}.class-card .stat{color:#b0c9e7}.matchbar{background:#0d1828;border-bottom:1px solid #31435c}.arena{background:#0d1827}.hud{background:#0b1524;border-top:1px solid #253a55}.bar{background:#243750}.bar i{background:var(--team,#4ba8ff)}.keyline{color:#b7cbe4;background:#0b1524}.keyline span{color:#869ab5}#score{display:flex;align-items:center;gap:24px;word-spacing:5px}.blue{color:#62b5ff}.red{color:#ff7c85}.score-goal{font:10px Inter;color:#8195b1}.header-right{gap:9px}.header-right button{margin-left:0}#soundToggle{font-size:9px;padding:9px}#volume{width:65px;padding:0;accent-color:#59afff}#notice{background:#0a1525dc;border:1px solid #385577;color:#dcecff;border-radius:4px}#feed div{background:#0b1525b8;margin-bottom:4px;padding:2px 9px}dialog{background:#121f32;border-color:#415d80}#result{background:#0b1729f5;border-color:var(--team,#4ba8ff)}.close{background:none}#eliminations{position:absolute;left:50%;bottom:12%;transform:translateX(-50%);display:flex;flex-direction:column;gap:8px;pointer-events:none;z-index:3;width:320px;max-width:90%}.elimination{display:flex;align-items:center;gap:13px;border:1px solid #f5cd76;border-left:4px solid #ffe0a0;padding:13px 18px;background:linear-gradient(100deg,#59462fe8,#13243af5 50%);box-shadow:0 0 35px #ffc66a20;animation:elim-in 2.6s both;color:#fff4d6}.elim-icon{font-size:27px;color:#ffda88}.elimination small{display:block;font:9px Inter;letter-spacing:2.5px;color:#ffd68a}.elimination strong{font:700 24px 'Barlow Condensed',sans-serif;display:block;overflow-wrap:anywhere}.elim-reward{margin-left:auto;font:bold 12px monospace;color:#ffe2a3;white-space:nowrap}#spectator{position:absolute;bottom:14px;left:50%;transform:translateX(-50%);border:1px solid #5c7395;background:#0b1427ed;padding:12px 18px;border-radius:4px;color:#d6e6ff;font-size:12px;text-align:center;max-width:90%;pointer-events:none}@keyframes elim-in{0%{opacity:0;transform:translateY(12px) scale(.92)}8%{opacity:1;transform:translateY(0) scale(1.03)}15%,85%{opacity:1;transform:scale(1)}100%{opacity:0;transform:translateY(-8px)}}@media(prefers-reduced-motion:reduce){.elimination{animation:none}}@media(max-width:850px){#volume{display:none}.header-right{gap:4px}.header-right button{padding:8px}#score{gap:9px;font-size:20px}}

/* Team communication stays outside the aiming surface. */
#teamPanel{max-width:1400px;margin:auto;padding:18px 24px;display:grid;grid-template-columns:1fr 2fr;gap:28px;background:#101c2e;border-top:1px solid #2b3d55;font-size:12px}#roomLabel{color:var(--team)}#teamRoster{line-height:2;color:#b5c7de;margin-top:8px}.chat strong{font-size:10px;letter-spacing:1px}.chat strong small{font-weight:400;letter-spacing:0;margin-left:12px}#chatLog{height:84px;overflow-y:auto;overflow-wrap:anywhere;line-height:1.8;margin:8px 0;color:#d4e2f5}#chatLog b{color:var(--team)}#chatForm{display:flex;gap:8px}#chatInput{padding:10px;font-size:12px}#chatSend{padding:8px 14px;font-size:11px}#chatStatus{display:block;min-height:16px;margin-top:6px}@media(max-width:850px){#teamPanel{grid-template-columns:1fr;gap:12px}.chat strong small{display:block;margin:5px 0}}
/* Home screen only: servic terminal. Match styles above are intentionally retained. */
body.lobby-view{background:#080808;color:#eee;font-family:Consolas,"Courier New",monospace;line-height:1.55}
body.lobby-view header{height:86px;padding:0 max(24px,calc((100% - 1120px)/2));background:#080808;border-bottom:1px solid #666}
body.lobby-view .brand{font:bold 19px Consolas,"Courier New",monospace;letter-spacing:-.6px;color:#fff;white-space:nowrap}
body.lobby-view .brand span{display:none}body.lobby-view .brand:first-letter{color:inherit}
body.lobby-view .header-right{gap:18px;letter-spacing:0}body.lobby-view header button{border:0;background:none;color:#999;padding:8px 0;font:11px Consolas,"Courier New",monospace}body.lobby-view header button:hover{color:#fff}body.lobby-view #volume{accent-color:#fff}
#lobby{display:block;width:min(1120px,calc(100% - 48px));padding:0 0 60px;margin:auto;font-family:Consolas,"Courier New",monospace}
#lobby .intro{display:grid;grid-template-columns:1.3fr 1fr;gap:72px;align-items:center;padding:72px 0 56px}
#lobby .eyebrow{color:#999;font-size:11px;letter-spacing:1.4px}#lobby h1{font:400 clamp(32px,4vw,53px)/1.15 Consolas,"Courier New",monospace;letter-spacing:-2px;margin:22px 0}#lobby .terminal-cursor{color:#777}#lobby p{color:#999;line-height:1.8;font-size:14px;margin:0}
#lobby .match-facts{display:flex;gap:22px;font-size:10px;color:#777;margin-top:28px}#lobby .join{max-width:none;border-left:1px solid #444;padding-left:32px}
#lobby label{margin:0 0 10px;font-size:11px;letter-spacing:1px;color:#bbb}
#lobby button,#lobby input{font-family:inherit;border-radius:0;box-shadow:none}#lobby input{background:#080808;color:#fff;border:1px solid #555;padding:14px}#lobby input:focus{outline:1px solid #fff;border-color:#fff}#lobby input::placeholder{color:#666}
#lobby button{background:#080808;color:#fff;border:1px solid #777}#lobby button:hover{background:#eee;color:#080808}#lobby .primary{background:#eee;color:#080808;border:1px solid #eee;margin:12px 0;font-size:15px;padding:15px 18px}#lobby .primary:hover{background:#080808;color:#fff}#lobby .primary b{font-size:20px}
#lobby #joinHint{text-align:left;line-height:1.6;min-height:32px;color:#888;font-size:10px}#lobby .quiet-button{border:0;border-bottom:1px solid #444;padding:3px 0;margin-top:20px;font-size:11px;color:#aaa;background:none}#lobby .quiet-button:hover{color:#fff;border-color:#fff;background:none}
#lobby .roster{border-top:1px solid #777;padding:25px 0 32px}#lobby .section-label{color:#bbb;margin:0 0 24px;letter-spacing:1px;font-size:11px}#lobby .section-label span{color:#777}
#lobby #classes{gap:0;border:1px solid #444}#lobby .class-card{display:flex;flex-direction:column;align-items:flex-start;min-height:170px;border:0;border-right:1px solid #444;border-top:2px solid transparent;padding:18px 20px;background:#080808;border-radius:0;color:#fff}#lobby .class-card:last-child{border-right:0}#lobby .class-card.selected{background:#151515;border-top-color:#fff}#lobby .class-card:hover{background:#1c1c1c;color:#fff}#lobby .class-card .icon{display:none}#lobby .class-card strong{font:400 18px Consolas,"Courier New",monospace;letter-spacing:0;display:block;margin:16px 0}#lobby .class-card .num{color:#666;font-size:10px;top:12px;right:14px}#lobby .class-card.selected .num{color:#fff}#lobby .class-card small{font-size:10px;color:#999;line-height:1.6}#lobby .class-card .stat{font-size:9px;color:#aaa;margin-top:16px;letter-spacing:0}
#lobby details{max-width:none;margin-top:0;border-top:1px solid #444;padding-top:20px}#lobby summary{color:#aaa;font-size:12px;padding:0 0 10px;cursor:pointer}#lobby summary:hover{color:#fff}#lobby details p{font-size:11px;margin:8px 0 16px;max-width:680px}#lobby .row{max-width:680px}#lobby .row button{white-space:nowrap;padding:12px;font-size:11px}#lobby #rooms{font-size:12px;color:#999;max-width:680px}#lobby #rooms button{font-size:12px}#lobby #netStatus{font-size:10px;color:#999}#lobby .connection-options{border:0;margin-top:20px;padding:0}#lobby .connection-options summary{font-size:10px;color:#777}
body.lobby-view dialog{font-family:Consolas,"Courier New",monospace;background:#101010;border-color:#777;color:#eee}body.lobby-view dialog h2{font-family:inherit}body.lobby-view dialog p{color:#aaa}body.lobby-view dialog button{background:none;color:#fff}
@media(max-width:800px){body.lobby-view header{padding:0 24px}.header-right{gap:10px}#lobby .intro{grid-template-columns:1fr;gap:35px;padding:45px 0 35px}#lobby .join{border-left:0;padding-left:0;max-width:480px}#lobby #classes{grid-template-columns:1fr 1fr}#lobby .class-card:nth-child(2){border-right:0}#lobby .class-card:nth-child(-n+2){border-bottom:1px solid #444}#lobby .match-facts{gap:16px}#lobby h1{letter-spacing:-1px}}
