:root{color-scheme:dark;--bg:#0d1217;--panel:#141b21;--line:#2a343c;--muted:#83909a;--text:#e5ece9;--orange:#f2a664;--teal:#9bd9c5}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:Inter,Arial,sans-serif;font-size:13px}button,select{font:inherit;color:inherit;border:1px solid var(--line);background:#1b242b;border-radius:4px;padding:8px 11px;cursor:pointer}button:hover{border-color:var(--teal);color:var(--teal)}button:disabled{opacity:.4;cursor:default}button:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--orange);outline-offset:2px}header{height:77px;border-bottom:1px solid var(--line);padding:0 28px;display:flex;align-items:center;gap:45px}.brand{font-size:26px;font-weight:700;color:var(--orange);text-decoration:none;display:flex;align-items:center;gap:2px}.brand-dot{font-size:34px;color:#95aaa8}.brand strong{font-family:'Barlow Condensed',Arial,sans-serif;letter-spacing:3px;font-size:22px;color:var(--text);margin-left:14px}.ship-name{font-size:10px;color:var(--muted);letter-spacing:2px}.ship-name b{display:block;color:#bdc8cc;font-size:11px;margin-top:5px}.header-right{margin-left:auto;display:flex;align-items:center;gap:9px;font-family:'IBM Plex Mono',monospace;font-size:10px;letter-spacing:1px}.header-right select{margin-left:16px;font-size:11px;letter-spacing:0}.live-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--teal);box-shadow:0 0 10px #9bd9c566}main{display:grid;grid-template-columns:224px minmax(450px,1fr) minmax(380px,440px);min-height:calc(100vh - 77px)}aside{border-right:1px solid var(--line);padding:30px 19px}.eyebrow{font-family:'IBM Plex Mono',monospace;font-size:9px;letter-spacing:1.5px;color:var(--muted)}h1{font-family:'Barlow Condensed',Arial,sans-serif;font-size:39px;font-weight:500;line-height:1.05;margin:17px 0}.muted{font-size:11px;color:var(--muted);line-height:1.7}#chapters{margin:30px -8px 22px}.chapter{display:flex;align-items:center;width:100%;background:none;border:1px solid transparent;text-align:left;padding:12px 7px;margin:3px 0;gap:10px}.chapter .num{border:1px solid #38424a;width:26px;height:27px;display:grid;place-items:center;color:var(--muted);font-family:monospace;font-size:11px;flex-shrink:0}.chapter b{font-size:11px;font-weight:500;display:block}.chapter small{font-size:9px;color:var(--muted);display:block;margin-top:5px}.chapter.active{border-color:#8b6947;background:#f2a6640b}.chapter.active .num{border-color:var(--orange);color:var(--orange)}.chapter.done .num{color:var(--teal);border-color:#4b7166}.restoration{border-top:1px solid var(--line);padding-top:20px;font-size:9px;letter-spacing:1px;color:var(--muted)}.restoration b{float:right;color:var(--teal)}.progress-track{height:4px;background:#253238;margin-top:14px}.progress-track i{display:block;height:4px;background:var(--teal);transition:width .6s}.workspace{padding:27px 25px}.mission-head{display:flex;justify-content:space-between;align-items:center;gap:10px}h2{font-family:'Barlow Condensed',Arial,sans-serif;font-weight:500;font-size:30px;margin:8px 0 17px}.tag{font-family:monospace;font-size:10px;color:var(--orange);border:1px solid #584735;padding:6px 8px;white-space:nowrap}.objective{border-left:2px solid var(--orange);background:#f2a66408;padding:12px 14px;min-height:73px;margin-bottom:24px}.objective>span{font-size:8px;letter-spacing:1.5px;color:var(--orange)}.objective p{margin:6px 0 0;font-size:11px;line-height:1.6;color:#bbc6cb}.scene-head{display:flex;justify-content:space-between;font-family:monospace;font-size:9px;letter-spacing:.7px;padding-bottom:11px;color:#a6b7bb}.scene-head small{margin-left:9px;color:#556772;font-size:8px}#worldStatus{color:var(--orange);font-size:8px}.viewport{position:relative;border:1px solid #34434b;background:#091116;overflow:hidden}canvas{width:100%;display:block;aspect-ratio:1000/470}.map-caption{position:absolute;bottom:13px;left:16px;font:8px monospace;letter-spacing:1.7px;color:#78918f}.map-caption small{display:block;font-size:8px;letter-spacing:.5px;margin-top:5px;color:#53676f}#toast{position:absolute;top:15px;left:50%;transform:translateX(-50%);padding:9px 15px;background:#183a30ed;border:1px solid #669f89;color:var(--teal);font-size:11px;white-space:nowrap;display:none}.metrics{display:grid;grid-template-columns:repeat(5,1fr);border:1px solid var(--line);border-top:0;padding:17px 0}.metrics>div{padding:0 12px;border-right:1px solid var(--line)}.metrics>div:last-child{border:0}.metrics span{font:7px 'IBM Plex Mono',monospace;letter-spacing:.8px;color:var(--muted);display:block}.metrics b{font:24px 'Barlow Condensed',Arial,sans-serif;display:block;margin-top:6px}.metrics small{font:10px monospace;color:var(--muted)}.playback{display:flex;gap:6px;align-items:center;padding:14px 0;border-bottom:1px solid var(--line)}.playback button,.playback select{font-size:9px;padding:6px 8px}.playback input{min-width:25px;width:100%;accent-color:var(--teal)}#frame{font:9px monospace;white-space:nowrap;color:var(--muted)}.bottom-cards{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:24px}.bottom-cards>div+div{border-left:1px solid var(--line);padding-left:20px}#log{font:10px/1.9 'IBM Plex Mono',monospace;color:#9cb4b4;margin-top:11px;max-height:160px;overflow:auto}#best{font-size:11px;color:#adbdc0;line-height:1.8}#next{background:var(--teal);color:#14251e;font-size:11px;font-weight:600}.editor-panel{border-left:1px solid var(--line);background:#11181e;padding-bottom:30px}.editor-header{height:59px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);padding:0 19px;font:11px monospace}.editor-header>span:last-child{font-size:9px;color:var(--muted)}.rust-icon{font-style:normal;display:inline-grid;place-items:center;background:#533a29;color:var(--orange);height:21px;width:21px;border-radius:4px;margin-right:7px}.editor-tools{display:flex;align-items:center;gap:7px;padding:12px 14px}.editor-tools button{font-size:9px;padding:6px 8px}#saveStatus{font-size:8px;color:#708b80;margin-left:auto}.wrapper{font:10px/1.7 'IBM Plex Mono',monospace;color:#5e7581;padding:6px 18px}.code-area{display:flex;height:350px;padding-top:7px}#lines{white-space:pre;font:11px/22px 'IBM Plex Mono',monospace;color:#3e5662;text-align:right;width:35px;overflow:hidden;padding-right:10px}textarea{width:calc(100% - 35px);resize:vertical;border:0;outline:0;background:transparent;color:#b5ddcd;font:11px/22px 'IBM Plex Mono',monospace;tab-size:4;white-space:pre;overflow:auto;padding:0 12px 0 0;border-radius:0;min-height:100%;resize:none}.run-row{display:flex;align-items:center;gap:8px;padding:15px 17px 10px}.run-row #run{background:var(--orange);color:#211a14;border-color:var(--orange);font-size:11px;font-weight:700;padding:11px 16px}.run-row span{font-size:8px;color:var(--muted);margin-left:auto}.run-row #stop{font-size:10px}#diagnostics{font:10px/1.65 'IBM Plex Mono',monospace;color:#8ba89d;margin:0 17px 18px;padding:12px;background:#0c1317;border:1px solid #263831;white-space:pre-wrap;max-height:210px;overflow:auto}#diagnostics.error{color:#efac96;border-color:#754936}details{border-top:1px solid var(--line);padding:16px 19px}summary{cursor:pointer;font:9px monospace;letter-spacing:1px;color:#c6d1d1}summary span{float:right;color:#667e89;font-size:8px}details p{color:#92a5ad;font-size:11px;line-height:1.8;margin-bottom:0}.api code{color:var(--orange);font-size:11px;display:block;margin-top:15px}.api p{font-size:10px;margin-top:4px}@media(min-width:1600px){main{grid-template-columns:250px minmax(500px,1fr) 500px}.code-area{height:460px}textarea{font-size:12px}.workspace{padding:33px}}@media(max-width:1150px){main{grid-template-columns:180px minmax(400px,1fr)}aside{padding:24px 12px}.editor-panel{grid-column:2}.ship-name{display:none}.workspace{padding:22px 18px}.code-area{height:380px}}@media(max-width:650px){header{padding:0 15px;height:66px}.brand strong{font-size:17px}.header-right{font-size:0;gap:0}.header-right select{font-size:10px;margin-left:8px}.header-right>.live-dot{display:none}main{display:flex;flex-direction:column}aside{padding:16px;border-right:0}aside h1,aside>.muted,aside>.eyebrow,.restoration{display:none}#chapters{display:flex;overflow:auto;margin:0}.chapter{min-width:140px}.workspace{padding:12px}.editor-panel{border-left:0}.tag{font-size:8px}.scene-head small{display:none}.metrics>div{padding:0 7px}.metrics span{font-size:6px}.bottom-cards{margin-bottom:15px}}

#loadBest{font-size:10px;margin:0 7px 9px 0}#best{white-space:pre-line}.playback button{white-space:nowrap}
.level-help{border:1px solid #34453e;background:#13221d66;padding:15px;margin:-10px 0 22px}.level-help p,.level-help li{font-size:12px;line-height:1.7;color:#bdcbc7}.level-help ol{padding-left:22px;margin:10px 0}.level-help li{margin-bottom:9px}.hint-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.hint-actions button{font-size:11px}.hint-actions span{font:10px monospace;color:#8b9f96}#solutionPanel{border-top:1px solid var(--line);margin-top:15px;padding-top:8px}#solutionCode{background:#0d1518;color:#b5ddcd;font:11px/1.8 monospace;overflow:auto;padding:14px;max-height:320px}#solutionPanel button{font-size:11px;margin-right:5px}.command-help{padding:14px 18px 0;border-bottom:1px solid var(--line);max-height:285px;overflow:auto}.command-intro{font-size:11px;line-height:1.6;color:#a4b5b8}.command-card{padding:8px 0;border-top:1px solid #25313a}.command-card>code{font:11px monospace;color:var(--orange)}.command-card>p{font-size:11px;line-height:1.6;color:#a4b5b8;margin:5px 0 0}.command-help details{padding:12px 0}.command-help details>p{font-size:11px}.command-help summary{letter-spacing:0;font-size:11px}.editor-tools{flex-wrap:wrap}.code-area{height:265px}dialog{width:min(660px,calc(100% - 30px));max-height:85vh;overflow:auto;background:#152027;color:var(--text);border:1px solid #69877a;border-radius:8px;padding:28px;box-shadow:0 20px 100px #000a}dialog::backdrop{background:#04090dd9;backdrop-filter:blur(4px)}dialog h2{font-size:28px;line-height:1.2;margin:13px 0}dialog p,dialog li{font-size:13px;line-height:1.8;color:#bdcbc9}dialog ol{padding-left:22px}dialog li{margin:12px 0}dialog b{color:#e4ede7}dialog code{color:var(--orange);font-size:12px}#guideClose{background:var(--teal);color:#12241b;font-weight:600}#guideOpen{font-size:11px;letter-spacing:0}button[hidden],div[hidden]{display:none!important}@media(max-width:650px){.header-right{flex-wrap:wrap;justify-content:flex-end}.header-right select{padding:5px;margin-left:4px}#guideOpen{font-size:10px;padding:5px}header{height:auto;min-height:77px;padding:10px}.brand{font-size:20px}.brand strong{display:none}.level-help{margin-top:0}.command-help{max-height:none}dialog{padding:20px}}
.editor-assist{display:flex;gap:8px;align-items:center;padding:7px 15px;background:#17232b;border-top:1px solid #2d414b;border-bottom:1px solid #2d414b}.editor-assist span{font:10px/1.6 monospace;color:#8baab5;flex:1;min-width:0}.editor-assist .has-signature{color:var(--orange)}#suggest{font-size:10px;padding:5px 8px}.completion-popup{position:fixed;z-index:50;border:1px solid #628e7e;border-radius:5px;background:#18252b;box-shadow:0 9px 30px #0009;overflow:hidden}.completion-popup[hidden]{display:none}#completion-list{max-height:174px;overflow:auto;overscroll-behavior:contain}.completion-option{padding:7px 12px;display:flex;justify-content:space-between;gap:15px;cursor:pointer;font:12px monospace;color:#dae9e2}.completion-option small{font:9px monospace;color:#92a9a9}.completion-option[aria-selected=true]{background:#315249;color:#c4f9df}.completion-description{white-space:pre-wrap;padding:10px 12px;border-top:1px solid #3b504e;font:11px/1.6 monospace;color:#b6cac5}.completion-keys{padding:7px 12px;background:#101a20;color:#849ba2;font:9px monospace}
#conceptLesson{padding:0 0 18px;margin:0 0 17px;border-top:0;border-bottom:1px solid #3a5048}#conceptLesson>summary{font:600 15px/1.5 Arial,sans-serif;color:#b9e7d2;letter-spacing:0}#lessonExample{padding:14px;background:#0c171c;border:1px solid #304b46;color:#b5ddcd;font:12px/1.8 monospace;white-space:pre;overflow:auto;max-height:280px}#lessonExplanation li{margin-bottom:10px}.practice-task{padding:12px;background:#20372d66;border-left:2px solid var(--teal);margin-top:15px}.practice-task b{font-size:12px;color:#b9e7d2}.practice-task p{margin-top:6px}.practice-task button{font-size:11px}.practice-task small{display:block;margin-top:9px;font-size:10px;line-height:1.6;color:#8fa89e}#lessonBridge{color:#d5ded7!important}
