:root{color-scheme:dark;--bg:#08131d;--panel:#10212d;--line:#304652;--ink:#eef1e9;--muted:#a5bbc6;--cyan:#83e2dc;--gold:#f5ac56;--red:#ff9382}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:15px/1.45 system-ui, sans-serif}button,input,select{font:inherit}button,select,input{border:1px solid #526674;border-radius:5px;background:#192e3c;color:var(--ink);min-height:44px;padding:9px 12px}button{cursor:pointer;touch-action:manipulation;font-weight:650}button:hover{background:#294654;border-color:var(--cyan)}button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid var(--gold);outline-offset:2px}button:disabled{opacity:.42;cursor:default}button.primary{background:var(--gold);border-color:var(--gold);color:#17202a}button.primary:hover{background:#ffcb83}.wide{width:100%;margin-top:8px}.micro{font-size:12px;color:var(--muted)}[hidden]{display:none!important}#app{max-width:1660px;margin:auto;padding:0 22px}header{height:72px;display:flex;justify-content:space-between;align-items:center;gap:12px;border-bottom:1px solid var(--line)}.brand{font-size:16px;letter-spacing:2px;font-weight:850}.brand small{display:block;font-size:9px;color:var(--muted);letter-spacing:3px;margin-left:28px}.mark{color:var(--gold)}nav{display:flex;gap:7px}nav button{font-size:12px;min-height:40px}.eyebrow{font:700 11px/1.4 ui-monospace,monospace;letter-spacing:1.6px;color:var(--gold)}h1{font-size:18px;line-height:1.25;margin:5px 0;font-weight:550}.missionbar{padding:17px 0;display:flex;align-items:center;justify-content:space-between;gap:20px}.resources{font:12px ui-monospace,monospace;color:var(--cyan);text-align:right;white-space:pre-line}main{display:grid;grid-template-columns:minmax(0,1fr) 304px;gap:16px;align-items:start}.viewport{position:relative;border:1px solid #52616c;border-radius:7px;overflow:hidden;background:#08131b;align-self:start}canvas{display:block;width:100%;height:auto;image-rendering:pixelated;touch-action:none}.scene-badge{position:absolute;top:16px;left:18px;font:700 10px ui-monospace,monospace;letter-spacing:1.4px;background:#091720d9;border:1px solid #3f5c65;padding:7px 10px;color:var(--cyan)}.legend{position:absolute;bottom:12px;left:17px;font:11px ui-monospace,monospace;color:#d0dee0;background:#07121de0;padding:5px 8px}.telemetry{position:absolute;right:18px;top:18px;text-align:right;font:12px ui-monospace,monospace;color:#dbe8e9;white-space:pre-line}aside{background:var(--panel);border:1px solid var(--line);border-radius:7px;padding:16px}.panel-top{display:flex;justify-content:space-between;gap:8px}#stageCount{font:11px monospace;color:var(--muted)}#guidance{font-size:14px;margin:12px 0}.readout{font:12px/1.7 ui-monospace,monospace;background:#091821;padding:10px;border-left:2px solid var(--cyan);white-space:pre-line;color:#d5e5e7}.fieldrow{display:flex;gap:10px}.fieldrow label{font-size:11px;color:var(--muted);width:50%}.fieldrow select{width:100%;font-size:13px;padding:8px}.stepper{display:flex}.stepper button{padding:6px;width:30px;min-width:30px}.stepper input{width:51px;min-width:0;text-align:center;padding:5px;border-radius:0;appearance:textfield}.stepper input::-webkit-inner-spin-button{display:none}#queue{font:12px/1.7 ui-monospace,monospace;margin:8px 0;padding-left:26px;max-height:110px;overflow-y:auto}#queue li{padding:2px 0;color:var(--cyan)}.buttonrow{display:flex;gap:8px}.buttonrow>*{flex:1;min-width:0}.panel-footer{display:flex;gap:6px;flex-wrap:wrap;margin-top:12px;border-top:1px solid var(--line);padding-top:12px}.panel-footer button{font-size:11px;padding:6px 9px}#walk{margin-top:12px}#walk button{touch-action:none}footer{display:flex;justify-content:space-between;gap:12px;padding:15px 0;color:var(--muted);font-size:12px}#status{color:var(--cyan)}.keys{font-size:11px;white-space:nowrap}.veil{position:fixed;inset:0;z-index:5;display:grid;place-items:center;padding:20px;background:#031019d9;overflow:auto;backdrop-filter:blur(6px)}#home{background:linear-gradient(90deg,#05121aef 15%,#081824b0);background-size:cover;background-position:center}.home-card{width:min(820px,100%);padding:30px 45px;border-left:3px solid var(--gold);background:linear-gradient(90deg,#06141bea,#06141b55);margin:auto}.home-card h2{font-size:clamp(54px,8vw,95px);line-height:.9;letter-spacing:-3px;margin:28px 0 25px}.home-card h2 em{font-style:normal;color:var(--gold)}.subtitle{font:13px monospace;letter-spacing:3px;color:var(--cyan)}.home-actions{display:flex;gap:10px;flex-wrap:wrap;margin:28px 0 10px}.home-card details{max-width:400px;margin:16px 0}.home-card summary{cursor:pointer;color:var(--muted);padding:8px 0}.home-card details label{display:block;font-size:12px;margin:10px 0}.home-card #teacher{font-size:12px;background:transparent}.dialog{width:min(640px,100%);max-height:90dvh;overflow-y:auto;background:#112532;border:1px solid #64717b;border-top:3px solid var(--gold);border-radius:8px;padding:28px;box-shadow:0 30px 80px #0008}.dialog h2{font-size:26px;line-height:1.1;margin:10px 0 18px}.dialog p{line-height:1.6}.dialog-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:22px}.dialog-actions button{flex:1}.dialog label{display:block;margin:15px 0;font-size:14px}.dialog label input,.dialog label select{display:block;width:100%;margin-top:6px}.answerfields{display:grid;grid-template-columns:1fr 1fr;gap:10px}.feedback{padding:12px;background:#091a25;border-left:3px solid var(--gold)}table{border-collapse:collapse;width:100%;font-size:12px}td,th{text-align:left;padding:8px 6px;border-bottom:1px solid var(--line)}.cutscene{position:fixed;inset:0;background:#050b13;z-index:10;display:flex;flex-direction:column}.cutscene>button{align-self:flex-end;margin:8px}.cutscene iframe{width:100%;flex:1;border:0;background:#050b13}a{color:var(--cyan)}@media(min-width:1400px){main{grid-template-columns:minmax(0,1fr) 325px}}@media(max-width:1100px){#app{padding:0 12px}header{height:58px}.missionbar{padding:12px 0}main{grid-template-columns:minmax(0,1fr) 270px;gap:10px}aside{padding:12px}.keys{display:none}.fieldrow{gap:5px}.stepper input{width:45px}}@media(max-width:800px){main{grid-template-columns:1fr}.viewport{max-width:100%}aside{display:block}.panel-top{margin-bottom:6px}.fieldrow{max-width:450px}#planner{display:grid;grid-template-columns:1fr 1fr;gap:8px}#planner .fieldrow,#planner .micro,#planner #planStats{grid-column:1/-1}#planner .micro{margin:0}#queue{margin:0}#guidance{margin:8px 0}#live{display:grid;grid-template-columns:1fr 1fr;gap:8px}#readout{grid-column:1/-1}#walk{margin-top:0}#interact,#plan{margin-top:0}#burnControls{grid-column:1/-1}.resources{font-size:10px}.brand{font-size:12px;letter-spacing:1px}.brand small{font-size:8px}nav{gap:4px}nav button{font-size:11px;padding:7px}.missionbar{min-height:78px}h1{font-size:15px}.home-card{padding:22px}.dialog{padding:22px}.telemetry{font-size:10px;right:10px;top:10px}.scene-badge{font-size:8px;top:8px;left:8px;padding:5px}.legend{font-size:9px;bottom:5px;left:5px}.home-card h2{margin-top:15px}.answerfields{grid-template-columns:1fr 1fr}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}
/* Prediction entry stays in the suit console, beside the visible room. */
.viewport{position:sticky;top:12px}#prediction h2{font-size:20px;line-height:1.25;margin:12px 0}#prediction p{font-size:13px;line-height:1.5}#prediction .readout{font-size:12px}#prediction .answerfields{display:block}#prediction label{display:block;font-size:12px;color:var(--muted);margin:12px 0}#prediction input{display:block;width:100%;margin-top:6px;font-size:16px;min-height:46px}#predictionActions{margin-top:12px}#prediction .micro{font-size:12px}#answerFeedback:empty{display:none}#predictionTitle:focus{outline:none}#predictionRoute{max-height:90px;overflow:auto}header{flex-wrap:wrap;height:auto;min-height:72px;padding:10px 0}nav{flex-wrap:wrap}nav button{min-height:44px}
@media(max-width:800px){.viewport{top:0;z-index:2}.viewport canvas{width:auto;max-width:100%;max-height:38dvh;margin:auto}header{min-height:58px;gap:7px}.brand{flex:1}nav button{padding:7px;font-size:10px}#prediction .answerfields{display:grid;grid-template-columns:1fr 1fr}#predictionActions{display:flex;gap:8px}#predictionActions button{flex:1}#prediction h2{font-size:20px}}
@media(max-width:480px){header nav{width:100%}header nav button{flex:1}#prediction .answerfields{display:block}.missionbar{min-height:70px}}
