:root{--g:#7dffb2;--a:#ffc34d;--r:#ff5a4d;--c:#7fe3ff;--bg:#081016c7;--line:#7dffb259}*{box-sizing:border-box}html,body{color:#dfeaf2;-webkit-user-select:none;user-select:none;background:#0a0f14;height:100%;margin:0;font-family:Segoe UI,system-ui,sans-serif;overflow:hidden}#app{position:fixed;inset:0}#gl{display:block;position:absolute;inset:0}#hud,#ui{pointer-events:none;position:absolute;inset:0}#ui>*{pointer-events:auto}.screen{background:linear-gradient(90deg,#050a0ee0 0%,#050a0e59 55%,#050a0e00 100%);flex-direction:column;justify-content:center;padding:4vh 5vw;display:flex;position:absolute;inset:0}.screen.wide{background:#050a0ed1;justify-content:flex-start;align-items:center;padding-top:6vh;overflow-y:auto}.screen.scroll{overflow-y:auto}.screen.hangar{pointer-events:none;background:0 0;justify-content:flex-end;padding:2vh 2vw}.screen.hangar *{pointer-events:auto}.center{text-align:center;margin:12px auto}.title h1{letter-spacing:.12em;text-shadow:0 0 30px #7dffb259;margin:0;font-size:clamp(36px,7vw,92px);font-weight:800}.title h1 span{color:var(--g)}.title p{letter-spacing:.35em;color:var(--c);margin:8px 0 28px;font-size:13px}.ui-panel{background:var(--bg);border:1px solid var(--line);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);border-radius:6px;padding:14px 18px}.menu{flex-direction:column;gap:8px;width:min(360px,90vw);display:flex}button{font:inherit;letter-spacing:.06em;text-transform:uppercase;color:#e8f4ff;border:1px solid var(--line);cursor:pointer;text-align:left;background:#0e1e24e6;border-radius:3px;padding:11px 18px;font-size:15px;transition:all .12s}button:hover:not([disabled]),button:focus-visible{border-color:var(--g);background:#7dffb22e;outline:none;transform:translate(3px)}button[disabled]{opacity:.35;cursor:not-allowed}button.sec{color:#aab;background:#14181ecc}button.danger{border-color:var(--r);color:var(--r)}button.active{border-color:var(--a);color:var(--a)}button small{float:right;opacity:.6;text-transform:none;letter-spacing:0}.center button{text-align:center}.foot{opacity:.55;letter-spacing:.12em;margin-top:20px;font-size:12px}h2{letter-spacing:.3em;margin:6px 0 14px;font-weight:300}h3{letter-spacing:.08em;margin:0 0 6px}.cards{flex-wrap:wrap;justify-content:center;gap:22px;margin:12px 0;display:flex}.card{width:min(440px,92vw)}.card .sub{color:var(--c);margin-bottom:8px}.card ul{padding-left:18px;font-size:14px;line-height:1.6}.card:hover{border-color:var(--g)}.brief{width:min(760px,92vw);line-height:1.55}.brief li{margin:4px 0}.small,small{opacity:.7;font-size:12px}.mlist{flex-direction:column;gap:12px;width:min(820px,92vw);display:flex}.mrow{justify-content:space-between;align-items:center;gap:18px;display:flex}.settings{flex-wrap:wrap;gap:32px;width:min(900px,94vw);display:flex}.settings .col{flex-direction:column;flex:360px;gap:8px;display:flex}.settings label{justify-content:space-between;align-items:center;gap:10px;font-size:14px;display:flex}.settings input[type=range]{max-width:190px;accent-color:var(--g);flex:1}.settings select{color:#e8f4ff;border:1px solid var(--line);background:#0d1a20;padding:5px}.settings output{text-align:right;width:44px;color:var(--a)}.tg{justify-content:flex-start!important}.ctl{width:min(1000px,95vw);max-height:70vh;overflow:auto}.ctl table,.spec,.bd{border-collapse:collapse;width:100%;font-size:14px}.ctl td{vertical-align:top;border-bottom:1px solid #7dffb21f;padding:6px 10px}.ctl td:first-child{color:var(--c);white-space:nowrap}.spec td,.bd td{border-bottom:1px solid #7dffb21a;padding:4px 8px}.spec td:first-child{color:var(--c)}.bd td:last-child{text-align:right;color:var(--g)}.bd td.neg,.neg{color:var(--r)!important}.overlay{background:#04080cc7;justify-content:center;align-items:center;display:flex;position:absolute;inset:0;overflow:auto}.ovbody{max-height:96vh;padding:10px;overflow:auto}.pausemenu{margin:0 auto}#mapc{border:1px solid var(--line);background:#111;width:auto;max-width:92vw;height:60vh;max-height:60vh;margin:8px auto;display:block}.objs{padding:0;list-style:none}.objs li{padding:6px 0}.objs li.done{opacity:.55}.objs li.active{color:var(--g)}.objs li.failed{color:var(--r)}.hint{color:var(--c);border-left:3px solid var(--c);padding-left:10px}.deb{width:min(1100px,96vw)}.gradebox{justify-content:center;align-items:center;gap:24px;margin:6px 0 14px;display:flex}.grade{border:3px solid var(--g);width:130px;height:130px;color:var(--g);border-radius:12px;place-items:center;font-size:96px;font-weight:800;display:grid}.gradebox.fail .grade{border-color:var(--r);color:var(--r)}.score{color:var(--a);font-size:38px}.cols{flex-wrap:wrap;gap:16px;display:flex}.cols>*{flex:420px}.dlg{margin:14px 0}.dlg p{margin:6px 0}.hangar-bar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:20px;display:flex}.hangar-bar button{padding:8px 12px;font-size:13px}#subtitle{text-align:center;opacity:0;pointer-events:none;z-index:5;background:#0000009e;border-radius:6px;max-width:min(900px,90vw);padding:8px 16px;font-size:18px;line-height:1.35;transition:opacity .15s;position:absolute;bottom:12%;left:50%;transform:translate(-50%)}#subtitle.show{opacity:1}#subtitle .who{letter-spacing:.15em;text-transform:uppercase;color:var(--c);margin-bottom:2px;font-size:.7em;display:block}#subtitle .who.specter1{color:#9fe9a8}#subtitle .who.specter2{color:#ffd37a}#subtitle .who.groundcontrol{color:#8fd0ff}#subtitle .garbled{color:#cbb;text-shadow:1px 0 #f55,-1px 0 #5af}#toast{border:1px solid var(--line);opacity:0;pointer-events:none;z-index:6;background:#000000b3;border-radius:4px;padding:8px 18px;transition:opacity .25s;position:absolute;top:16%;left:50%;transform:translate(-50%)}#toast.show{opacity:1}#hprompt{letter-spacing:.1em;border:1px solid var(--g);opacity:0;pointer-events:none;z-index:5;background:#000000a6;border-radius:4px;padding:8px 18px;font-size:20px;position:absolute;bottom:24%;left:50%;transform:translate(-50%)}#hprompt.show{opacity:1}#loading{z-index:20;background:#070b0f;flex-direction:column;justify-content:center;align-items:center;gap:14px;display:flex;position:absolute;inset:0}#loading.hide{display:none}.ld-title{letter-spacing:.3em;font-size:42px}.ld-bar{background:#1a2630;width:min(420px,80vw);height:6px}.ld-fill{background:var(--g);width:0;height:100%;transition:width .1s}.ld-text{opacity:.6;letter-spacing:.1em;font-size:13px}.bigmsg{margin-top:20vh}.fatal{padding:10vh 10vw}.fatal h1{letter-spacing:.2em}@media (width<=700px){.screen{padding:3vh 4vw}.grade{width:90px;height:90px;font-size:64px}}body[data-state=HANGAR] #subtitle{bottom:17%}body[data-state=DEBRIEFING] #subtitle,body[data-state=MISSION_FAILED] #subtitle{top:10px;bottom:auto}.screen{overflow-x:hidden}.overlay{z-index:8}.ctl .grp td{color:var(--a);letter-spacing:.2em;text-transform:uppercase;padding-top:14px;font-size:12px}.keybtn{text-align:center;min-width:150px;padding:5px 10px}.keybtn.changed{border-color:var(--a);color:var(--a)}.keybtn.waiting{border-color:var(--a);background:#ffc34d40}#voice{z-index:9;width:min(600px,62vw);font-family:Consolas,Courier New,monospace;font-size:13px;position:absolute;bottom:8px;left:50%;transform:translate(-50%)}#voice .vrow{border:1px solid var(--line);background:#061016b8;border-radius:6px;align-items:center;gap:6px;padding:4px 8px;display:flex}#voice.focus .vrow{border-color:var(--a);box-shadow:0 0 14px #ffc34d59}#voice .vin{color:#e8f4ff;font:inherit;-webkit-user-select:text;user-select:text;background:0 0;border:0;outline:0;flex:1;min-width:0;padding:5px 4px}#voice .vin::placeholder{color:#8caaa0b3}#voice .vbtn{text-transform:none;letter-spacing:0;text-align:center;padding:3px 9px;font-size:12px}#voice .vbtn.on{border-color:var(--r);color:var(--r)}#voice .vlog{text-align:left;max-height:150px;margin-bottom:4px;display:none;overflow:hidden}#voice.active .vlog,#voice.focus .vlog{display:block}#voice .vheard{color:var(--c)}#voice .vfb{color:var(--g)}#voice .vfb.bad{color:var(--a)}#voice .vfb.note{color:#9fc9d6;font-style:italic}#voice .vchip{font:inherit;color:var(--c);border:1px solid var(--c);cursor:pointer;text-transform:none;letter-spacing:0;background:#00000080;border-radius:12px;min-height:26px;margin:3px 2px;padding:2px 10px;font-size:12px}#voice .vchip:hover{background:#50c8e62e}#voice .vhint{text-align:center;opacity:.55;margin-top:3px;font-size:11px}#voice .vlog>div{background:#00000073;padding:1px 8px}#pilotbar{z-index:9;max-width:min(940px,74vw);font-family:Consolas,Courier New,monospace;position:absolute;bottom:62px;left:50%;transform:translate(-50%)}#pilotbar .pbbtn{padding:5px 8px;font-size:11px}#pilotbar .pbrow{justify-content:center}#pilotbar .pbstep{text-align:center;border:1px solid var(--line);border-left:3px solid var(--a);color:#e8f4ff;background:#061016c7;border-radius:6px;margin-bottom:6px;padding:7px 10px;font-size:13px;line-height:1.35}#pilotbar .pbrow{flex-wrap:wrap;gap:6px;display:flex}#pilotbar .pbbtn{color:#cfe8e0;border:1px solid var(--line);font:inherit;letter-spacing:.04em;cursor:pointer;background:#061016cc;border-radius:5px;padding:6px 10px;font-size:12px}#pilotbar .pbbtn:hover{border-color:var(--a);color:#fff}#pilotbar .pbbtn.hot{border-color:var(--a);color:var(--a);box-shadow:0 0 10px #ffc34d4d}#pilotbar .pbbtn.on{color:#fff;border-color:var(--a);background:#ffc34d38}#quickguide{z-index:30;background:#00060ab8;justify-content:center;align-items:center;position:absolute;inset:0}#quickguide .qgcard{border:1px solid var(--a);color:#e8f4ff;background:#08141cf5;border-radius:10px;max-width:560px;padding:22px 26px;font-family:Consolas,Courier New,monospace;font-size:14px;line-height:1.5}#quickguide h2{color:var(--a);margin:0 0 10px;font-size:18px}#quickguide ol{margin:0 0 10px;padding-left:20px}#quickguide li{margin-bottom:6px}#quickguide .qgclose{background:var(--a);color:#101820;font:inherit;cursor:pointer;border:0;border-radius:5px;padding:8px 18px;font-weight:700}#actiondial{z-index:28;background:radial-gradient(circle,#000a0e8c 0,#000a0e40 60%,#0000 75%);justify-content:center;align-items:center;position:absolute;inset:0}#actiondial .adring{border:1px solid var(--line);border-radius:50%;width:420px;max-width:92vw;height:420px;max-height:92vw;position:relative}#actiondial .adbtn,#actiondial .adclose{color:#e8f4ff;border:1px solid var(--a);letter-spacing:.05em;cursor:pointer;background:#061016e6;border-radius:22px;min-width:112px;padding:12px 14px;font:12px Consolas,Courier New,monospace;position:absolute;transform:translate(-50%,-50%)}#actiondial .adbtn:hover,#actiondial .adbtn:focus-visible{background:#ffc34d40;outline:none}#actiondial .adclose{border-color:var(--line);color:#9fc;top:50%;left:50%}#squadbtns{z-index:9;gap:4px;display:flex;position:absolute}#squadbtns button{color:#7fe3ff;border:1px solid var(--line);cursor:pointer;background:#061016cc;border-radius:4px;flex:1;padding:5px 0;font:11px Consolas,monospace}#squadbtns button:hover{color:#fff;border-color:#7fe3ff}body[data-state=TAKEOFF] #subtitle,body[data-state=ACTIVE_MISSION] #subtitle{padding:6px 14px;font-size:15px}body[data-state=TAKEOFF] #toast,body[data-state=ACTIVE_MISSION] #toast{top:112px}#commands{z-index:32;background:#00060acc;justify-content:center;align-items:center;position:absolute;inset:0}#commands .ccard{border:1px solid var(--a);color:#e8f4ff;background:#08141cf7;border-radius:10px;width:min(1180px,96vw);max-height:92vh;padding:16px 22px;font:13px Consolas,Courier New,monospace;overflow:auto}#commands .chead{justify-content:space-between;align-items:center;display:flex}#commands .chead h2{color:var(--a);margin:0;font-size:18px}#commands .ccols{grid-template-columns:1.1fr 1fr 1fr;gap:22px;display:grid}@media (width<=900px){#commands .ccols{grid-template-columns:1fr}}#commands .csec{color:var(--c);border-bottom:1px solid var(--line);margin:12px 0 4px;padding-bottom:4px;font-size:15px}#commands h3{color:var(--g);letter-spacing:.08em;text-transform:uppercase;margin:10px 0 3px;font-size:12px}#commands table{border-collapse:collapse;width:100%}#commands td{vertical-align:top;padding:2px 6px 2px 0}#commands .ck{color:var(--a);white-space:nowrap;width:1%}#commands .cn{color:#8fb0a8;font-size:11px}#commands .cs{margin:0 0 10px}#commands .cs p{color:#c9dcd6;margin:2px 0 0}#commands .cw{color:var(--c);border:1px solid var(--line);border-radius:3px;padding:0 4px;font-size:11px}#commands .cv{color:#c9dcd6;margin:0;line-height:1.6}#commands .cclose{background:var(--a);color:#101820;font:inherit;cursor:pointer;border:0;border-radius:5px;padding:6px 14px;font-weight:700}#pilotbar .pbbtn,#squadbtns button{min-height:30px}#pilotbar .pbrow{row-gap:6px}#pilotbar .pbstep{margin-bottom:6px}
