:root{color-scheme:dark;font-family:Inter,ui-sans-serif,system-ui,sans-serif;background:#080b0e;color:#dce8e4}*{box-sizing:border-box}body{margin:0;min-width:320px;background:radial-gradient(circle at 20% 0%,#183229 0,#080b0e 48rem)}.classic-intro{align-items:center;background:#000;display:flex;top:0;right:0;bottom:0;left:0;justify-content:center;position:fixed;z-index:20}.classic-intro-frame{border:1px solid #1d6bff;box-shadow:0 0 0 1px #02102a,0 18px 60px #000;max-width:min(640px,100vw);overflow:hidden;position:relative;width:640px}.classic-intro-art{aspect-ratio:4 / 3;background:radial-gradient(circle at 52% 42%,#293c35,#07100c 68%);background-position:center;background-size:cover;image-rendering:auto}.classic-intro-copy{background:linear-gradient(180deg,#020913d8,#000000f4);border-top:1px solid #1d6bff;bottom:0;left:0;padding:13px 18px 15px;position:absolute;right:0}.classic-intro-title{color:#e7f5e3;font:700 1.25rem/1.1 ui-monospace,monospace;letter-spacing:.28em;margin:0 0 5px;text-shadow:0 0 9px #5cf0a1}.classic-intro-subtitle,.classic-intro-status{color:#76e7a4;font:700 .68rem/1.3 ui-monospace,monospace;letter-spacing:.08em;margin:4px 0;text-transform:uppercase}.classic-intro-progress{background:#0b281b;border:1px solid #2b805c;height:7px;margin:10px 0 5px}.classic-intro-progress span{background:#75e2a3;box-shadow:0 0 8px #75e2a3;display:block;height:100%;transition:width .2s ease;width:0}.classic-intro-enter{background:#070b12;border:1px solid #91a7b5;border-radius:0;color:#dce8e4;float:right;font-size:.68rem;padding:4px 12px}.classic-intro.is-dismissed{opacity:0;pointer-events:none;transition:opacity .4s ease}.shell{width:min(1120px,calc(100% - 32px));margin:0 auto;padding:42px 0 28px}.topbar{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;border-bottom:1px solid #31564a;padding-bottom:20px}.eyebrow{margin:0 0 8px;color:#73e0a2;font:600 .72rem/1.2 ui-monospace,monospace;letter-spacing:.16em}h1,h2{margin:0;font-weight:650;letter-spacing:-.02em}h1{font-size:clamp(1.7rem,4vw,2.7rem)}h2{font-size:1.15rem;margin-bottom:12px}.badge{border:1px solid #59756b;border-radius:999px;color:#b8c6c1;padding:7px 13px;font:700 .7rem ui-monospace,monospace;letter-spacing:.1em}.badge.ready{color:#91f3b9;border-color:#48c57c}.badge.error{color:#ff9c8e;border-color:#d96b5c}.grid{display:grid;grid-template-columns:1.3fr 1fr;gap:16px;padding-top:16px}.panel{background:#111c19e6;border:1px solid #29483d;border-radius:10px;padding:22px;box-shadow:0 12px 30px #0005}.hero{grid-row:span 2;min-height:260px}p{color:#aebdb7;line-height:1.6}code{color:#9ae9ba;font:.9em ui-monospace,monospace;overflow-wrap:anywhere}button{background:#77e1a2;border:0;border-radius:6px;color:#06110b;cursor:pointer;font:750 .8rem ui-monospace,monospace;padding:11px 15px}button:hover{background:#b1f5c9}button:disabled{background:#395348;color:#78958a;cursor:not-allowed}.connect-form,.lobby-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:end}.connect-form label,.lobby-actions label{display:grid;gap:4px;color:#78958a;font:.7rem ui-monospace,monospace;text-transform:uppercase;letter-spacing:.08em}input,select{width:100%;min-width:90px;border:1px solid #47695b;border-radius:5px;background:#0b1511;color:#dce8e4;padding:9px;font:.85rem ui-monospace,monospace}.lobby-actions{margin:14px 0}.lobby-board{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:16px}.lobby-board section{border:1px solid #223a31;border-radius:6px;padding:10px;min-width:0}.lobby-board #character-preview{background:#050908;border:1px solid #29483d;display:block;image-rendering:pixelated;margin-top:10px;max-width:100%}.account-lobby-panel{grid-column:1 / -1;position:relative}.classic-lobby-view{aspect-ratio:4 / 3;background:#000;color:#8dff42;image-rendering:pixelated;margin:0 auto 16px;max-width:640px;overflow:hidden;position:relative;width:100%}.classic-lobby-view[hidden]{display:none}.classic-lobby-art{background:#000 center / 100% 100% no-repeat;top:0;right:0;bottom:0;left:0;position:absolute}.classic-lobby-titlebar{align-items:center;color:#ecffec;display:grid;font:700 clamp(8px,1.65vw,12px) ui-monospace,monospace;grid-template-columns:29% 20% 18% 33%;left:1%;letter-spacing:.02em;position:absolute;right:1%;text-shadow:0 0 5px #5dff38;text-transform:none;top:5%}.classic-lobby-titlebar[aria-hidden=true]{display:none}.classic-lobby-titlebar strong{overflow:hidden;padding:0 2%;text-overflow:ellipsis;white-space:nowrap}.classic-lobby-titlebar strong:nth-child(n+2){color:#92bbff;text-shadow:0 0 5px #1f64ff}.classic-lobby-list{display:grid;align-content:start;gap:1px;overflow:hidden}.classic-lobby-personnel,.classic-lobby-missions,.classic-lobby-tables,.classic-lobby-fireteams{overflow:hidden;position:absolute;top:10%}.classic-lobby-personnel{left:3%;width:25%;height:57%}.classic-lobby-missions{left:38%;width:30%;height:57%}.classic-lobby-tables{left:72%;width:25%;height:27%}.classic-lobby-fireteams{left:72%;width:25%;height:29%;top:39%}body.classic-lobby-active .classic-lobby-subhead{display:none}.classic-lobby-subhead{align-items:center;color:#d6e2ff;display:grid;font:700 clamp(6px,1.05vw,9px)/1 ui-monospace,monospace;gap:2px;height:6%;overflow:hidden;text-shadow:0 0 4px #315fc0;white-space:nowrap}.classic-lobby-subhead span{overflow:hidden;text-overflow:ellipsis}.classic-lobby-personnel .classic-lobby-subhead{color:#8dff42;grid-template-columns:1fr 1fr;text-shadow:0 0 4px #168c21}.classic-lobby-missions .classic-lobby-subhead{grid-template-columns:1.25fr 1fr .35fr .35fr .35fr .7fr}.classic-lobby-tables .classic-lobby-subhead{grid-template-columns:1fr .6fr}.classic-lobby-fireteams .classic-lobby-subhead{grid-template-columns:repeat(4,1fr)}.classic-lobby-list{height:94%}.classic-lobby-row{background:transparent;border:0;border-bottom:1px solid #0e321b;color:#70ff45;display:block;font:700 clamp(7px,1.25vw,10px)/1.15 ui-monospace,monospace;min-width:0;overflow:hidden;padding:1px 2%;text-align:left;text-shadow:0 0 4px #168c21;width:100%}.classic-lobby-row b,.classic-lobby-row small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.classic-lobby-row small{color:#63d936;font-size:.86em;font-weight:400}button.classic-lobby-row{cursor:pointer}button.classic-lobby-row:hover,button.classic-lobby-row:focus-visible{background:#0c3318aa;color:#dcffd4;outline:1px solid #49ff65}.classic-lobby-mission{color:#9ec4ff;text-shadow:0 0 4px #255fb2}.classic-lobby-empty{color:#8fa090;font:700 clamp(7px,1.15vw,10px) ui-monospace,monospace;padding:2px}.classic-lobby-chat{bottom:5%;color:#6fff46;font:700 clamp(7px,1.2vw,10px)/1.15 ui-monospace,monospace;left:1%;overflow:hidden;position:absolute;right:1%;text-shadow:0 0 4px #168c21}.classic-lobby-chat-lines{height:72%;overflow:hidden}.classic-lobby-chat>span{display:block;color:#9fff8d;margin-top:2px}.classic-lobby-exit{background:#070a0caa;border:1px solid #91a7b5;bottom:1.6%;color:#b3c1c9;font:700 clamp(8px,1.35vw,11px) ui-monospace,monospace;padding:1px 4%;position:absolute;right:1%}.classic-lobby-view[data-faction=alien] .classic-lobby-row{color:#e0dcff;text-shadow:0 0 4px #5945b4}.classic-lobby-view[data-faction=alien] .classic-lobby-titlebar strong:first-child{color:#d8cfff;text-shadow:0 0 5px #7759ff}body.classic-lobby-active,body.classic-mission-active{background:#000;overflow:hidden}body.classic-lobby-active .shell,body.classic-mission-active .shell{height:100vh;max-width:none;padding:0;width:100vw}body.classic-lobby-active .topbar,body.classic-lobby-active .grid>.hero,body.classic-lobby-active .grid>.panel:not(.account-lobby-panel),body.classic-lobby-active footer{display:none}body.classic-lobby-active .grid{display:block;padding:0}body.classic-lobby-active .account-lobby-panel{background:#000;border:0;border-radius:0;box-shadow:none;padding:0}body.classic-lobby-active .account-lobby-panel>h2,body.classic-lobby-active .account-lobby-panel>.connect-form,body.classic-lobby-active .account-lobby-panel>#player-id,body.classic-lobby-active .account-lobby-panel>#connection,body.classic-lobby-active .account-lobby-panel>#reconnect,body.classic-lobby-active .account-lobby-panel>.chat-form,body.classic-lobby-active .account-lobby-panel>#chat-log,body.classic-lobby-active .account-lobby-panel>#lobby-feed{display:block;left:0;opacity:0;position:fixed;top:540px;width:640px}body.classic-lobby-active .account-lobby-panel>.chat-form{display:flex}body.classic-lobby-active .account-lobby-panel>.lobby-actions{display:flex;left:0;position:fixed;top:480px;width:640px}body.classic-lobby-active .account-lobby-panel>.lobby-actions,body.classic-lobby-active .account-lobby-panel>.lobby-actions *{background:transparent!important;border-color:transparent!important;box-shadow:none!important;color:transparent!important;text-shadow:none!important}body.classic-lobby-active .account-lobby-panel>.lobby-actions{opacity:.01}body.classic-lobby-active .account-lobby-panel>.lobby-board{display:grid;height:480px;left:0;overflow:hidden;position:absolute;top:480px;width:640px}body.classic-lobby-active .account-lobby-panel>.lobby-board,body.classic-lobby-active .account-lobby-panel>.lobby-board *{background:transparent!important;border-color:transparent!important;box-shadow:none!important;color:transparent!important;text-shadow:none!important}body.classic-lobby-active .account-lobby-panel>.lobby-board{clip-path:inset(100%)}body.classic-lobby-active .classic-lobby-view{height:min(100vh,75vw);margin:0 auto;max-height:none;max-width:none;width:min(100vw,calc(100vh * 4 / 3))}body.classic-mission-active .topbar,body.classic-mission-active .grid>.hero,body.classic-mission-active .grid>.panel:not(#map-panel),body.classic-mission-active footer{display:none}body.classic-mission-active .grid{display:block;padding:0}body.classic-mission-active .shell{position:relative}body.classic-mission-active #map-panel{background:#000;border:0;border-radius:0;box-shadow:none;padding:0}body.classic-mission-active #map-panel>:not(#play-stage){display:none}body.classic-mission-active #play-stage{align-items:center;background:#000;display:flex;height:min(100vh,75vw);justify-content:center;margin:0 auto;max-height:none;max-width:none;width:min(100vw,calc(100vh * 4 / 3))}body.classic-mission-active #first-person{height:100%;margin:0;max-height:none;max-width:none;object-fit:contain;width:100%}html.fs-play body.classic-mission-active .shell,body.classic-mission-active #play-stage:fullscreen{height:100vh;max-width:none;width:100vw}html.fs-play body.classic-mission-active #play-stage,body.classic-mission-active #play-stage:fullscreen{height:100vh;max-height:none;max-width:none;width:100vw}body.classic-mission-active .mission-panel{background:transparent;border:0;border-radius:0;box-shadow:none;display:block!important;height:min(100vh,75vw);left:calc((100vw - min(100vw,calc(100vh * 4 / 3)))/2);padding:0;pointer-events:none;position:absolute;top:calc((100vh - min(100vh,75vw))/2);width:min(100vw,calc(100vh * 4 / 3));z-index:5}body.classic-mission-active .mission-panel>:not(#fireteam-cameras){display:none}body.classic-mission-active #fireteam-cameras{bottom:15.4%;display:grid;gap:2px;grid-template-columns:repeat(3,minmax(0,1fr));margin:0;pointer-events:auto;position:absolute;right:.94%;width:38.4%}body.classic-mission-active .fireteam-camera{background:#020605e8;border:1px solid #29483d;min-width:0;padding:2px}body.classic-mission-active .fireteam-camera[data-state=off]{display:none}body.classic-mission-active .fireteam-camera-label{color:#9ae9ba;font-size:clamp(7px,.7vw,11px);margin:0 0 1px}body.classic-mission-active .fireteam-camera canvas{width:100%}body.classic-mission-active .mission-panel>.mission-actions{bottom:25.4%;display:grid!important;gap:0;grid-template-rows:repeat(2,1fr);height:12.5%;left:28.1%;margin:0;pointer-events:auto;position:absolute;width:4.7%}body.classic-mission-active .mission-panel>.mission-actions button{background:transparent;border:0;border-radius:0;color:transparent;font-size:0;outline-offset:-2px;padding:0}body.classic-mission-active .mission-panel>.mission-actions button:focus-visible{outline:1px solid #78b7ff}body.classic-mission-active .mission-panel>.mission-chat{bottom:7.1%;display:flex!important;left:.94%;margin:0;pointer-events:auto;position:absolute;width:43.75%}body.classic-mission-active .mission-chat input{background:#020605f2;border:1px solid #477d60;border-radius:0;color:#9ae9ba;font-size:9px;padding:3px 5px}body.classic-mission-active #account-lobby-panel{background:transparent;border:0;box-shadow:none;display:block!important;height:min(100vh,75vw);left:calc((100vw - min(100vw,calc(100vh * 4 / 3)))/2);padding:0;pointer-events:none;position:absolute;top:calc((100vh - min(100vh,75vw))/2);width:min(100vw,calc(100vh * 4 / 3));z-index:6}body.classic-mission-active #account-lobby-panel>:not(#chat-log){display:none}body.classic-mission-active #account-lobby-panel>#chat-log{bottom:7.1%;color:#6fff46;display:block!important;font:700 clamp(8px,.9vw,13px)/1.15 ui-monospace,monospace;left:.94%;margin:0;max-height:13%;overflow:hidden;padding:0;pointer-events:none;position:absolute;text-shadow:0 0 4px #168c21;width:59.4%}body.classic-mission-active #account-lobby-panel>#chat-log li{border:0;color:#6fff46;padding:1px 0}.mission-overview{background:#07100c;border:1px solid #29483d;margin-top:10px;padding:8px}.mission-overview p{margin:5px 0}.mission-overview strong{color:#b1f5c9}.lobby-board h3{color:#91f3b9;font:700 .72rem ui-monospace,monospace;letter-spacing:.08em;margin:0 0 6px;text-transform:uppercase}.lobby-board li{font-size:.82rem;overflow-wrap:anywhere}.chat-form{display:flex;align-items:end;gap:8px;margin-top:14px}.chat-form label{flex:1;display:grid;gap:4px;color:#78958a;font:.7rem ui-monospace,monospace;text-transform:uppercase;letter-spacing:.08em}.chat-form select{width:auto}.chat-channel{color:#73e0a2;font:.7rem ui-monospace,monospace;text-transform:uppercase}.control-settings{display:flex;flex-wrap:wrap;gap:10px;align-items:end;margin:12px 0 16px}.control-settings label{display:flex;gap:6px;align-items:center;color:#9bb9aa;font:.75rem ui-monospace,monospace}.control-settings label:first-child{display:grid;gap:4px;align-items:stretch}.control-settings input[type=range]{accent-color:#77e1a2;min-width:150px}.control-settings output{color:#b1f5c9}#key-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.bindrow{display:grid;grid-template-columns:minmax(130px,.6fr) 1fr;gap:8px;align-items:center;border-bottom:1px solid #223a31;padding:5px 0}.bindrow .ba{color:#9bb9aa;font-size:.76rem}.bindrow .bk{display:flex;flex-wrap:wrap;gap:4px}.bindrow button{background:#19392b;border:1px solid #477d60;color:#b1f5c9;font-size:.68rem;padding:5px 8px}.bindrow button.add{background:transparent;border-style:dashed}.bindrow button.listening{background:#fff18a;color:#0a160e}.controls-panel #binding-editor{max-height:360px;overflow:auto;margin-bottom:12px;padding-right:4px}.keylist{border-collapse:collapse;width:100%;font-size:.75rem}.keylist caption{color:#91f3b9;font:700 .72rem ui-monospace,monospace;letter-spacing:.08em;margin-bottom:5px;text-align:left;text-transform:uppercase}.keylist th,.keylist td{border-bottom:1px solid #223a31;padding:4px 5px;text-align:left;vertical-align:top}.keylist th{color:#78958a;font-size:.65rem;text-transform:uppercase}.keylist td.keys{color:#dce8e4;text-align:right;white-space:nowrap}.play-stage{--play-view-size: 100%;position:relative;width:100%}.play-stage canvas{display:block;height:auto;image-rendering:pixelated;margin:12px auto 0;max-width:100%;width:var(--play-view-size)}.play-settings{display:flex;flex-wrap:wrap;gap:10px;align-items:end;margin-top:10px}.play-settings label{display:grid;gap:4px;color:#78958a;font:.7rem ui-monospace,monospace;text-transform:uppercase;letter-spacing:.08em}.play-settings input[type=range]{accent-color:#77e1a2;min-width:150px}.play-settings output{color:#b1f5c9}html.fs-play .play-stage,.play-stage:fullscreen{align-items:center;background:#050908;display:flex;height:100vh;justify-content:center;margin:0;max-width:none;overflow:hidden;width:100vw}html.fs-play .play-stage canvas,.play-stage:fullscreen canvas{height:min(100vh,75vw);margin:0;max-height:none;max-width:none;object-fit:contain;width:min(100vw,calc(100vh * 4 / 3))}.small{font-size:.78rem}.mission-support{border:1px solid currentColor;border-radius:999px;padding:0 .35rem;font-size:.68rem;text-transform:uppercase;letter-spacing:.04em}.mission-support-beta{color:#7ee787}.mission-support-experimental{color:#f2cc60}.dim{opacity:.8}.message{min-height:24px;margin-bottom:0}.muted{color:#9bb9aa}.map-status{background:#07100c;border:1px solid #29483d;color:#b1f5c9;max-height:220px;overflow:auto;padding:12px;white-space:pre-wrap}#map-preview,#mission-view{background:#050908;border:1px solid #29483d;display:block;height:auto;margin-top:12px;max-width:100%;width:100%}.mission-panel{grid-column:1 / -1}dl{margin:0}dt{color:#78958a;font:.7rem ui-monospace,monospace;text-transform:uppercase;letter-spacing:.1em}dd{margin:4px 0 15px;overflow-wrap:anywhere}.mission-chat{align-items:center;display:flex;gap:8px;margin-top:10px}.mission-chat input{flex:1;min-width:0}.mission-actions{align-items:center;display:flex;gap:8px;margin-top:10px}.inventory-panel{background:#07100c;border:1px solid #29483d;margin-top:10px;padding:10px}.inventory-panel h3{color:#91f3b9;font:700 .72rem ui-monospace,monospace;letter-spacing:.08em;margin:0 0 4px;text-transform:uppercase}.inventory-panel p{margin:0 0 5px}.inventory-panel li{padding:4px 0}.fireteam-cameras{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:12px}.fireteam-camera{min-width:0;border:1px solid #29483d;background:#050908;padding:6px}.fireteam-camera-label{color:#9ae9ba;font:.7rem ui-monospace,monospace;margin:0 0 4px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fireteam-camera canvas{display:block;height:auto;image-rendering:pixelated;max-width:100%;width:100%}ul{list-style:none;margin:0;padding:0}li{border-bottom:1px solid #223a31;padding:9px 0;color:#b8c6c1}li:last-child{border-bottom:0}li.good{color:#91f3b9}li.bad{color:#ff9c8e}.native-rank-badge{image-rendering:pixelated;height:18px;margin-right:5px;object-fit:contain;vertical-align:middle;width:auto}.mission-result-panel{grid-column:1 / -1}.mission-result-card{border:1px solid #4b8065;border-radius:8px;background:#07140edb;padding:18px}.mission-result-card h2{color:#b1f5c9}.mission-result-card h3{color:#91f3b9;font:700 .78rem ui-monospace,monospace;letter-spacing:.08em;text-transform:uppercase}.mission-result-status{color:#fff18a;font:700 1rem ui-monospace,monospace}.mission-result-card dl{display:grid;grid-template-columns:minmax(120px,.4fr) 1fr;gap:5px 14px;max-width:640px}.mission-result-card dt{color:#78958a}.mission-result-card dd{margin:0;color:#dce8e4}.death-overlay{grid-column:1 / -1;border:1px solid #d45b5b;background:#23090cf2}.death-overlay h2{color:#ff8b8b}.death-overlay p{color:#f4d0d0}.death-actions{display:flex;flex-wrap:wrap;gap:8px}footer{color:#78958a;font:.75rem ui-monospace,monospace;padding-top:20px}.error{margin-top:42px}.error p{overflow-wrap:anywhere}@media(max-width:720px){.shell{width:min(100% - 20px,560px);padding-top:24px}.topbar{align-items:flex-start;flex-direction:column}.grid{grid-template-columns:1fr}.hero{grid-row:auto}.lobby-board{grid-template-columns:1fr}.chat-form{align-items:stretch;flex-direction:column}.chat-form select{width:100%}.fireteam-cameras,#key-list{grid-template-columns:1fr}}
