:root{color-scheme:dark;--bg:#10191e;--panel:#172329;--line:#304047;--muted:#91a4a6;--mint:#bcebc9;--gold:#edc389}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:#e5e9e4;font:14px/1.5 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}button,select{font:inherit;color:inherit;background:#223239;border:1px solid #3d5056;border-radius:5px;padding:7px 11px;cursor:pointer}button:hover{border-color:var(--mint);color:var(--mint)}button:disabled{opacity:.4;cursor:wait}header{height:88px;padding:0 36px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between}.brand{display:flex;align-items:center;gap:13px;color:var(--mint);font-size:34px;text-decoration:none}.brand span{font:600 23px Georgia,serif;letter-spacing:3px}.brand small{display:block;font:9px sans-serif;letter-spacing:2.5px;color:var(--muted);margin-top:6px}.header-right{display:flex;gap:26px;align-items:center}.live{font-size:10px;letter-spacing:1px;color:#bcebc9}main{display:grid;grid-template-columns:235px minmax(0,1fr);max-width:1700px;margin:auto}aside{padding:31px 22px;border-right:1px solid var(--line)}.eyebrow{font-size:10px;letter-spacing:2px;color:var(--gold)}h2{font:25px/1.2 Georgia,serif;margin:17px 0}.muted{color:var(--muted);font-size:12px}.workspace{padding:28px 30px 40px;min-width:0}.contract{display:flex;justify-content:space-between;gap:20px;margin-bottom:22px}h1{font:36px Georgia,serif;margin:7px 0}p{margin:8px 0}.contract p{color:var(--muted);max-width:760px}.sun{display:flex;flex-direction:column;text-align:right;min-width:110px}.sun span{font-size:8px;letter-spacing:1.6px;color:var(--gold)}.sun b{font:36px Georgia;color:var(--gold)}.sun small{color:var(--muted)}nav{margin-top:30px;display:grid;gap:7px}nav button{text-align:left;background:transparent;border-color:transparent;font-size:12px;padding:10px}nav button small{display:block;color:var(--muted);margin-left:26px;font-size:10px}nav button.selected{background:#243a37;border-color:#4b7260;color:var(--mint)}nav button.locked{opacity:.4}.office{border-top:1px solid var(--line);margin-top:30px;padding-top:20px;color:var(--muted);font-size:10px}.office>span{letter-spacing:1px}#stamps{font-size:21px;color:var(--gold);letter-spacing:5px;margin-top:9px}.city-panel{border:1px solid #425850;border-radius:9px;overflow:hidden;background:#101f29}.city-top,.city-bottom{display:flex;align-items:center;justify-content:space-between;padding:12px 18px;background:#1c2a30;font-size:10px;letter-spacing:1px}.city-top small{color:var(--muted);letter-spacing:0;margin-left:12px}.city-top select{font-size:10px;padding:3px 6px}.city-top i{display:inline-block;width:6px;height:6px;background:var(--mint);border-radius:50%;margin-right:7px}.city-bottom{font-size:9px;color:#b4c7c7}#city{width:100%;display:block;max-height:390px}.transport{display:flex;gap:8px;align-items:center;margin:12px 0 20px}.transport button,.transport select{font-size:11px}.transport input{flex:1;accent-color:var(--mint);min-width:30px}.transport>span{font-size:10px;color:var(--muted)}.bottom-grid{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(280px,1fr);gap:18px}.editor-panel,.report{border:1px solid var(--line);border-radius:8px;overflow:hidden;background:var(--panel)}.panel-heading{display:flex;align-items:center;justify-content:space-between;padding:11px 14px;font-size:10px;letter-spacing:1px;border-bottom:1px solid var(--line)}.panel-heading small{color:var(--muted);margin-left:12px;letter-spacing:0}.panel-heading button{font-size:10px;background:none;padding:3px 8px}.code-wrap{display:flex;height:290px;background:#121d23;padding-top:15px}#lines{width:42px;flex-shrink:0;text-align:right;padding-right:12px;font:12px/21px monospace;color:#557078;overflow:hidden;white-space:pre}textarea{width:100%;resize:none;border:0;outline:0;background:transparent;color:#cce9da;font:12px/21px ui-monospace,SFMono-Regular,Consolas,monospace;tab-size:4;white-space:pre;padding:0 12px 20px 0}.editor-footer{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;gap:8px}.editor-footer>span{color:var(--muted);font-size:10px}.primary{background:var(--mint);color:#152920;border:0;font-weight:600}.primary:hover{background:#d8fbe1;color:#152920}kbd{margin-left:12px;font-size:10px;opacity:.7}.tabs{display:flex;border-bottom:1px solid var(--line);padding:5px 10px}.tabs button{border:0;background:none;font-size:11px;color:var(--muted);padding:9px 12px}.tabs button.active{color:var(--mint);box-shadow:0 2px var(--mint);border-radius:0}.tab-content{padding:18px;max-height:350px;overflow:auto;font-size:12px;color:#b5c6c8}.tab-content h3{font:21px Georgia;color:#e6eadf;margin:0 0 10px}.tab-content code{font-size:11px;color:var(--mint);background:#0e1b20;padding:2px 4px;white-space:pre-wrap}.tab-content pre{white-space:pre-wrap;line-height:1.6}.note{border-left:2px solid var(--gold);padding:9px 12px;background:#26302c;color:#d6d5b9;margin-top:15px}.logline{padding:7px 0;border-bottom:1px solid #293a40;font:11px/1.5 monospace}.logline b{color:var(--gold)}#result{margin-top:15px;white-space:pre-wrap;font:12px/1.6 monospace;color:var(--gold)}.records{border-top:1px solid var(--line);padding-top:18px;margin-top:16px}.records .eyebrow span{color:var(--muted);letter-spacing:0;margin-left:12px}#metrics{display:grid;grid-template-columns:repeat(5,1fr);margin:12px 0}#metrics div{border-right:1px solid var(--line);padding-left:20px}#metrics div:first-child{padding-left:0}#metrics b{display:block;font:25px Georgia;color:var(--mint)}#metrics small{font-size:9px;color:var(--muted);letter-spacing:1px}.records button{font-size:11px;margin-right:9px}.ghost{animation:bob 2.5s ease-in-out infinite}.star{animation:twinkle 4s ease-in-out infinite}.window{transition:fill .5s}.route{stroke-dasharray:4 7;animation:flow 6s linear infinite}@keyframes bob{50%{transform:translateY(-5px)}}@keyframes twinkle{50%{opacity:.25}}@keyframes flow{to{stroke-dashoffset:-66}}@media(max-width:1000px){main{grid-template-columns:180px 1fr}.workspace{padding:20px 16px}.bottom-grid{grid-template-columns:1fr}aside{padding:25px 12px}.header-right .live{display:none}h1{font-size:29px}}@media(max-width:680px){header{padding:0 15px}.brand span{font-size:18px}main{display:block}aside{border-right:0;padding:15px}aside h2,aside>.muted,.office,aside>.eyebrow{display:none}nav{display:flex;overflow:auto;margin:0}nav button{min-width:145px}.workspace{padding:15px}.city-top small,.city-bottom span:last-child{display:none}.sun{min-width:65px}.header-right select{max-width:125px;font-size:10px}#metrics div{padding-left:8px}}

#workers{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:12px}.worker{font:10px monospace;border:1px solid #405a51;padding:6px 9px;border-radius:4px;color:#bcebc9}.worker.waiting{color:#edc389;border-color:#89704c}
.office button{font-size:10px;margin-top:8px;display:block}

[hidden]{display:none!important}

.quick-guide{border:1px solid #425b52;background:#1d302d;border-radius:8px;padding:16px 20px;margin:0 0 20px}.quick-guide>div>b{font:21px Georgia;color:var(--mint)}.quick-guide p{color:#b7c9c6;font-size:12px}.quick-guide ol{display:flex;gap:28px;padding-left:18px;margin:14px 0}.quick-guide li{flex:1;font-size:12px;padding-left:3px}.quick-guide li span{display:block;color:var(--muted);font-size:11px;margin-top:3px}.quick-guide button{font-size:12px;background:#29463b}.tool-card{border:1px solid #354b48;padding:10px;border-radius:5px;margin:8px 0}.tool-card p{margin-bottom:0}.tip-list{padding-left:20px}.tip-list li{padding:7px 0;color:#e2d4b4}.tab-content h4{color:#dfe9df;margin:18px 0 8px}.tab-content button{font-size:11px;margin:5px 7px 0 0}#solutionPanel pre{padding:12px;background:#0e1b20;overflow:auto}#resetStage{border-color:#91b69b;color:var(--mint)}@media(max-width:680px){.quick-guide ol{display:block}.quick-guide li{margin:10px 0}.transport{flex-wrap:wrap}}

.code-wrap{position:relative}.completion-popup{position:absolute;z-index:5;width:min(300px,95%);max-height:220px;overflow:auto;background:#21332e;border:1px solid #88b99a;border-radius:6px;box-shadow:0 8px 25px #0008;font:12px/1.5 monospace}.completion-option{padding:6px 10px;display:flex;justify-content:space-between;gap:12px;cursor:pointer}.completion-option[aria-selected="true"]{background:#365646;color:#dcffe5}.completion-option small{color:#a6b8ad;font-size:10px}.completion-description{padding:9px 10px;margin:0;border-top:1px solid #496454;color:#ccddd2;font:11px/1.5 sans-serif}.signature-help{padding:10px 14px;border-top:1px solid #3c5348;background:#20312b;font-size:11px}.signature-help code{display:block;color:#9fbcaa;white-space:pre-wrap}.signature-help strong{color:#eaffbc;text-decoration:underline;text-underline-offset:3px}.signature-help>span{display:block;color:#acbfb4;margin-top:5px}.completion-hint{display:block;border-top:1px solid #304047;padding:6px 14px;font-size:9px;color:#91a4a6}

.concept-lesson{background:#1b2b2a;border:1px solid #516955;border-radius:9px;padding:20px 24px;margin-bottom:18px;font-size:13px;line-height:1.7}.concept-lesson summary{cursor:pointer;font:24px Georgia;color:#cbeacd}.concept-lesson pre{background:#101d22;padding:16px;overflow:auto;border-radius:5px;color:#c8e7d3;font:12px/1.7 monospace}.concept-lesson li{margin:9px 0;color:#bed0c8}.concept-lesson ol{padding-left:23px}.experiment{border-left:3px solid #c5b17f;background:#28392f;padding:13px 17px;margin-top:17px}.experiment small{display:block;color:#a8beb0;margin-top:8px}.lesson-next{border-top:1px solid #425647;margin-top:18px;padding-top:12px;color:#e5d5ab}.practice-reminder{padding:12px 16px;background:#3e3c26;color:#e9dcac;font-size:12px}dialog{max-width:660px;width:calc(100% - 40px);padding:28px 32px;background:#1c2d2b;color:#dce8de;border:1px solid #8eb79b;border-radius:12px;line-height:1.7}dialog::backdrop{background:#071313cf}dialog h2{font-size:30px}dialog li{margin:13px 0}dialog button{background:#bcebc9;color:#173527;font-weight:600}.header-right #howToPlay{font-size:12px}@media(max-width:680px){.concept-lesson{padding:16px}.header-right{gap:8px}.header-right #howToPlay{font-size:10px;padding:5px}}
