@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Space+Grotesk:wght@400;500;600;700&display=swap');
:root{color-scheme:dark;--bg:#11141d;--panel:#1b202b;--line:#303643;--text:#eeefe9;--muted:#959ca9;--mint:#c2edaf}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:'DM Sans',sans-serif;font-size:14px}button,input,select{font:inherit}button,a,input,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer;color:inherit;background:transparent;border:1px solid var(--line);border-radius:7px;padding:9px 12px}button:hover{background:#ffffff0c;border-color:#737e8e}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,canvas:focus-visible{outline:2px solid var(--mint);outline-offset:4px}a{color:inherit;text-decoration:none}header{height:78px;border-bottom:1px solid #ffffff10;display:flex;align-items:center;justify-content:space-between;max-width:1480px;margin:auto;padding:0 44px}.brand{font-size:29px;font-weight:700;display:flex;align-items:center;gap:4px}.brand>span:first-child{color:var(--mint);margin-left:-5px;font-size:30px}.brand b{font-size:19px;letter-spacing:-1px;margin-left:10px}.brand .back{font:10px 'Space Grotesk',sans-serif;letter-spacing:1.7px;color:var(--muted);margin-left:18px}header>button{font-size:12px;border:0;color:#c0c5cd}header>button span{margin-left:16px}main{max-width:1480px;padding:0 44px;margin:auto}.intro{display:flex;align-items:center;justify-content:space-between;padding:32px 0 28px}.eyebrow{font:10px 'Space Grotesk',sans-serif;letter-spacing:2px;color:var(--mint);margin:0 0 10px}h1{font:500 36px 'Space Grotesk',sans-serif;letter-spacing:-1.4px;margin:0;display:flex;align-items:center;gap:14px}.version{font:10px 'Space Grotesk',sans-serif;color:#b6baca;letter-spacing:0;border:1px solid #3f4553;border-radius:5px;padding:5px 7px}.intro p:last-child{margin:10px 0 0;color:var(--muted);font-size:13px}.subtle{font-size:11px;color:var(--muted);border:0}.workspace{display:grid;grid-template-columns:270px minmax(0,1fr);grid-template-rows:minmax(640px,71vh) 64px;border:1px solid var(--line);border-radius:13px;overflow:hidden}aside{grid-row:1/3;background:var(--panel);border-right:1px solid var(--line);overflow:auto}.panel-title{display:flex;gap:12px;align-items:center;padding:24px 22px}.tiny-orbit{color:var(--mint);font-size:33px}h2{font:500 17px 'Space Grotesk',sans-serif;margin:0}.panel-title p{font-size:10px;color:var(--muted);margin:5px 0 0}.controls{border-top:1px solid var(--line);padding:20px 22px}h3{font:10px 'Space Grotesk',sans-serif;letter-spacing:1.4px;color:#b3b8c2;margin:0 0 17px}.label-row{display:flex;justify-content:space-between;align-items:start}.label-row>span{font-size:10px;color:var(--mint)}.body-types{display:flex;gap:8px;margin-bottom:18px}.body-types button{display:flex;flex:1;align-items:center;justify-content:center;gap:8px;font-size:11px;padding:11px 8px}.body-types button.active{background:#c2edaf12;border-color:#a6c49a;color:var(--mint)}.planet-icon{border-radius:50%;width:13px;height:13px;background:#91d8cb;box-shadow:inset -4px -3px #0003}.star-icon{color:#ffd17b;font-size:19px;line-height:13px}.range-label{display:flex;justify-content:space-between;align-items:center;font-size:11px;color:#c4c8d0;margin:0 0 9px}.range-label span{font-size:9px;color:var(--muted)}output{color:var(--mint);font:11px monospace}input[type=range]{appearance:none;height:3px;width:100%;background:#444b59;accent-color:var(--mint);margin:7px 0 23px;cursor:pointer}input[type=range]::-webkit-slider-thumb{appearance:none;background:var(--mint);width:12px;height:12px;border-radius:50%;box-shadow:0 0 0 4px #c2edaf12}.swatches{display:flex;gap:15px;margin:0 0 18px}.swatches button{padding:0;border-radius:50%;width:18px;height:18px;background:var(--swatch);border:2px solid var(--panel)}.swatches button.active{outline:1px solid var(--swatch);outline-offset:3px}.hint{font-size:11px;color:var(--muted);line-height:1.7;margin:0}.controls select{width:100%;background:#242a36;color:#d3d7dc;border:1px solid #414958;border-radius:6px;font-size:11px;padding:9px;margin:0 0 17px}.check{display:flex;align-items:center;font-size:11px;color:#b9bfca;margin:12px 0 0;gap:8px}.check input{accent-color:var(--mint);margin:0}.check span{margin-left:auto;color:#8c96aa}.presets button{display:flex;width:100%;text-align:left;border:0;padding:7px 0;font-size:11px;color:#c4c9d3;gap:10px}.presets button span{color:#c9b7f4;width:15px}.presets b{margin-left:auto;font-weight:400;color:#737f92}.model-note{font-size:10px;color:#858e9e;line-height:1.7;margin:0 22px 20px}.stage{position:relative;min-width:0;background:#101621;overflow:hidden;isolation:isolate}canvas{display:block;width:100%;height:100%;touch-action:none;cursor:crosshair}.stage-top{position:absolute;inset:20px 22px auto;display:flex;justify-content:space-between;align-items:center;pointer-events:none;z-index:2}.live{font:9px 'Space Grotesk',sans-serif;letter-spacing:1.7px;color:#9da6b6;display:flex;gap:9px;align-items:center}.live i,.stat-dot{display:inline-block;width:5px;height:5px;background:var(--mint);border-radius:50%;box-shadow:0 0 9px #c2edaf66}.stage-actions{display:flex;gap:8px;pointer-events:auto}.stage-actions button{font-size:10px;color:#b5becb;background:#141b28c9;padding:6px 9px}.tools{position:absolute;top:70px;left:22px;display:flex;gap:3px;padding:5px;border:1px solid #3b4454;border-radius:9px;background:#1b2332df}.tools button{border:0;font-size:16px;color:#9eaabe;padding:7px 10px}.tools span{font-size:10px;margin-left:4px}.tools .active{background:var(--mint);color:#27382a}.zoom{position:absolute;right:22px;bottom:54px;display:flex;align-items:center;background:#1b2332df;border:1px solid #3b4454;border-radius:8px}.zoom button{border:0;font-size:13px;padding:8px 10px;color:#b9c3d4}.zoom #fit{font-size:10px}.stage-bottom{position:absolute;bottom:20px;left:22px;right:22px;display:flex;justify-content:space-between;color:#707f96;font:9px 'Space Grotesk',sans-serif;letter-spacing:1.1px;pointer-events:none}.transport{background:#1b202b;border-top:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;gap:12px;padding:0 20px}.playback{display:flex;gap:12px;align-items:center}.playback button{border:0;padding:6px;color:#b6c1d1}.playback .pause{background:var(--mint);color:#29362a;min-width:33px;height:33px;border-radius:50%;font-weight:700}.playback>span{font:10px monospace;color:#909cac;min-width:72px}.stats{display:flex;gap:20px;font-size:10px;color:#8d98aa}.stats b{font-weight:500;color:#d4d9e2}.stats .stat-dot{margin-right:4px;width:4px;height:4px}.transport>button{font-size:10px;color:var(--mint);border:0;padding:6px}.below{display:flex;align-items:center;justify-content:space-between;gap:30px;padding:19px 0 28px;font-size:10px;color:#7e899b;line-height:1.7}.below p{margin:0}.below p span{color:var(--mint);margin-right:8px}.below b{font-weight:400;color:#b3bfcd}.below>span{white-space:nowrap}.below a{color:#b9c5d4}.toast{position:absolute;bottom:65px;left:50%;transform:translateX(-50%);border-radius:7px;padding:10px 15px;font-size:12px;max-width:85%;width:max-content;color:#e1ebdb;background:#2d3a30;pointer-events:none;opacity:0;transition:opacity .2s}.toast.show{opacity:1}#inspector{position:absolute;top:125px;left:22px;background:#202b3ded;border:1px solid #4b5c75;border-radius:8px;padding:12px;font-size:11px;max-width:260px}#inspector span{display:block;line-height:1.8}#inspector button{font-size:10px;margin-top:10px;color:#ffb5ad}dialog{background:#1e2532;color:#c1c9d5;border:1px solid #4a566a;border-radius:15px;padding:28px;max-width:590px;width:calc(100% - 30px);line-height:1.8;font-size:13px}dialog::backdrop{background:#070b16b8;backdrop-filter:blur(6px)}.dialog-head{display:flex;align-items:center;justify-content:space-between;color:#f1f3ed;gap:16px;margin-bottom:22px}.dialog-head button{padding:2px 8px;font-size:23px}dialog b{color:var(--mint)}dialog ul{padding-left:18px}
@media(min-width:1500px){.workspace{grid-template-rows:minmax(720px,72vh) 64px}}@media(max-width:1000px){header{padding:0 24px}main{padding:0 24px}.workspace{grid-template-columns:240px minmax(0,1fr)}.controls{padding:18px}.panel-title{padding:20px 18px}.tools span{display:none}.stats{gap:9px}.transport{padding:0 12px;gap:4px}.transport>button{max-width:100px}.below{align-items:start}.below>span{white-space:normal;text-align:right}}@media(max-width:700px){header{height:62px;padding:0 18px}.brand .back{display:none}main{padding:0 14px}.intro{padding:25px 3px 22px}.intro h1{font-size:25px;letter-spacing:-1px;gap:8px}.intro .eyebrow{font-size:8px}.intro p:last-child{font-size:11px}.intro>.subtle{display:none}.version{font-size:8px;padding:3px 4px}.workspace{display:flex;flex-direction:column;overflow:visible;border:0;border-radius:0}.stage{height:60vh;min-height:400px;border:1px solid var(--line);border-radius:12px 12px 0 0;order:0}.transport{order:1;min-height:65px;border:1px solid var(--line);border-radius:0 0 12px 12px}.stats{flex-direction:column;gap:5px}.playback{gap:6px}.playback>span{min-width:60px}.transport>button{font-size:9px}aside{order:2;border:1px solid var(--line);border-radius:12px;margin-top:16px;display:grid;grid-template-columns:1fr 1fr;overflow:visible}.panel-title{grid-column:1/-1;padding:18px}.controls{padding:16px;min-width:0}.controls:nth-of-type(2){border-left:1px solid var(--line)}.presets{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr;column-gap:20px}.presets h3{grid-column:1/-1}.model-note{grid-column:1/-1;margin:0 16px 16px}.stage-top{inset:15px 14px auto}.stage-actions{gap:4px}.stage-actions button{font-size:9px;padding:6px}.live{font-size:7px;letter-spacing:1px}.tools{top:59px;left:14px}.tools span{display:inline;font-size:9px;margin-left:3px}.tools button{padding:6px 7px;font-size:14px}.stage-bottom{left:14px;right:14px;font-size:7px}.below{display:block;padding:16px 4px}.below>span{display:block;text-align:left;margin-top:12px}.hint{font-size:10px}.range-label span{font-size:8px}.swatches{gap:12px}.body-types{gap:5px}.body-types button{padding:8px 4px;font-size:10px}h3{font-size:9px}.label-row>span{font-size:9px}}
@media(max-width:700px){.intro{flex-wrap:wrap;gap:12px}.intro>.subtle{display:block;padding:0;font-size:10px}}
.universe-actions{display:flex;align-items:center;gap:12px}.save-button{font-size:12px;color:var(--mint);background:#c2edaf0c;border-color:#668260}.library-note{color:#9daabb;font-size:12px;line-height:1.65}.save-row{display:flex;gap:9px;margin-top:7px}.save-row input{min-width:0;flex:1;background:#121a28;border:1px solid #526175;border-radius:6px;color:#edf2e7;padding:10px;font-size:13px}.save-row button{color:#243126;background:var(--mint);font-size:12px;white-space:nowrap}#save-form>label{font-size:12px;color:#d5dfcc}#save-status{font-size:12px;color:var(--mint);min-height:20px}#save-status.error{color:#ffb2a7}#saved-list{max-height:280px;overflow:auto}.saved-universe{padding:13px 0;border-top:1px solid #394456}.saved-universe strong{display:block;color:#e5eedd;font-size:14px;overflow-wrap:anywhere}.saved-universe small{display:block;color:#8f9fb6;font-size:10px;margin:3px 0 9px}.saved-universe>div{display:flex;gap:7px}.saved-universe button{font-size:11px;padding:5px 11px}.saved-universe button:last-child{color:#e9aca6}.library-empty{font-size:12px;color:#9daabb;padding:14px 0}.file-actions{display:flex;gap:10px;border-top:1px solid #394456;padding-top:18px;margin-top:15px;align-items:center}.file-actions button,.import-button{font-size:11px;padding:8px 12px;border:1px solid #526175;border-radius:6px;cursor:pointer}.import-button:hover{background:#ffffff0c}#import-universe{position:absolute;width:1px;height:1px;opacity:0}.file-actions:has(#import-universe:focus-visible) .import-button{outline:2px solid var(--mint);outline-offset:3px}@media(max-width:700px){.universe-actions{width:100%;justify-content:space-between}.universe-actions .subtle{display:block;padding:0;font-size:10px}.save-button{font-size:11px}#library{padding:21px}.save-row{gap:6px}.save-row button{padding:8px;font-size:11px}}
.mission-control{margin-top:16px;padding:20px 22px;background:var(--panel);border:1px solid var(--line);border-radius:12px}.history-row,.explorer-row,.autosave-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.undo-buttons{display:flex;gap:7px}.mission-control button{font-size:11px}.mission-control button:disabled{opacity:.35;cursor:default}.history-row>label{font-size:11px;color:var(--mint)}.history-row output{font-size:10px;display:block;color:var(--muted);margin-top:4px}.history-row>input{min-width:100px;flex:1;width:auto;margin:10px 0}.control-note{font-size:10px;line-height:1.7;color:var(--muted);margin:12px 0 20px}.explorer-row{border-top:1px solid var(--line);padding-top:18px}.explorer-row label{font-size:11px;color:#b9c5d4}.explorer-row select{max-width:270px;flex:1;min-width:140px;border:1px solid #526175;background:#141c29;color:#dce4d6;border-radius:6px;padding:8px;font-size:12px}#follow-status{font-size:10px;color:var(--muted);margin:12px 0 17px}.autosave-row{border-top:1px solid var(--line);padding-top:14px;font-size:11px;color:var(--muted)}.autosave-row label{color:var(--mint);display:flex;align-items:center;gap:7px}.autosave-row input{accent-color:var(--mint)}.autosave-row span{font-size:10px}.recovery-banner{border:1px solid #809b70;border-radius:10px;background:#243125;margin:0 0 18px;padding:18px 22px;display:flex;gap:12px;align-items:center;flex-wrap:wrap}.recovery-banner[hidden]{display:none}.recovery-banner>div{flex:1;min-width:200px}.recovery-banner strong{font-size:14px;color:var(--mint)}.recovery-banner p{font-size:11px;color:#bbc8b7;line-height:1.7;margin:6px 0 0}.recovery-banner button{font-size:11px;border-color:#718366}#recover{background:var(--mint);color:#243126}#editor-form>input,.editor-grid input{display:block;width:100%;padding:9px;background:#101a28;border:1px solid #526175;border-radius:5px;color:#dce7d5;font-size:13px;margin-top:6px}#editor-form label{font-size:11px;color:#c3d0bb}.editor-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:18px}.editor-grid input[type=color]{height:37px;padding:4px}#editor-form button[type=submit]{background:var(--mint);color:#273627;font-size:12px}#editor-error{color:#ffb2a7;font-size:12px}#challenge-card{border:1px solid #615a78;border-radius:9px;background:#a99af309;padding:18px;margin-bottom:17px;display:flex;align-items:center;gap:10px;flex-wrap:wrap}#challenge-card[hidden]{display:none}#challenge-card>div{flex:1;min-width:200px}#challenge-card h2{font-size:16px;color:#c9b7f4}#challenge-description{font-size:11px;color:#a6b3c5;line-height:1.7;max-width:750px}#challenge-progress{font:12px 'Space Grotesk',sans-serif;color:var(--mint)}.challenge-option{border-top:1px solid var(--line);padding:18px 0}.challenge-option h3{color:#d6c5ff;font-size:12px;margin-bottom:7px;letter-spacing:0}.challenge-option p{font-size:12px;color:#aab8cd}.challenge-option button{font-size:11px;color:var(--mint)}#inspector button{margin-right:4px}#inspector #edit-selected,#inspector #follow-selected{color:var(--mint)}@media(max-width:700px){.mission-control{padding:16px}.history-row{gap:10px}.history-row>input{flex-basis:65%;order:2}.history-row>label{margin-left:auto}.history-row>#live-edge{order:3}.explorer-row{gap:8px}.explorer-row>label{width:100%}.explorer-row select{max-width:none;flex-basis:60%}.autosave-row{gap:6px}.autosave-row span{line-height:1.7}.editor-grid{gap:12px}.recovery-banner{padding:16px}#inspector{max-width:240px}}
#lesson-guide{margin-top:18px;border-top:1px solid #625879;padding-top:17px}#lesson-steps{display:flex;gap:10px;list-style:none;padding:0;margin:0 0 17px;flex-wrap:wrap}#lesson-steps li{flex:1;min-width:130px;border:1px solid #4c485e;border-radius:7px;padding:10px;font-size:10px;color:#8e99ad;line-height:1.5}#lesson-steps li[aria-current]{background:#c2edaf0d;border-color:#8aa677;color:var(--mint)}#lesson-steps li.done{color:#bbd7a9;border-color:#5e7159}#lesson-instruction{font-size:13px;line-height:1.8;color:#dae2d6;max-width:850px}#lesson-readings{font:11px 'Space Grotesk',sans-serif;color:#c8baf5;line-height:1.7}#lesson-meter{width:100%;height:5px;appearance:none;display:block;margin:12px 0 18px;border:0;border-radius:4px;background:#36404c;accent-color:var(--mint)}#lesson-meter::-webkit-progress-bar{background:#36404c;border-radius:4px}#lesson-meter::-webkit-progress-value{background:var(--mint);border-radius:4px}.lesson-actions{display:flex;gap:9px;align-items:center;flex-wrap:wrap}#lesson-action{background:var(--mint);color:#283625;border-color:var(--mint);font-weight:600}#lesson-hint{background:#c9b7f40b;border-left:2px solid #a99af3;padding:11px 14px;color:#bcc9db;font-size:12px;line-height:1.8}#lesson-jump{position:absolute;bottom:56px;left:22px;max-width:calc(100% - 175px);font-size:10px;background:#263329f0;color:var(--mint);border-color:#6d8863;text-align:left}.universe-actions{flex-wrap:wrap;justify-content:flex-end}@media(max-width:700px){.universe-actions{justify-content:space-between;gap:8px}.universe-actions .save-button{font-size:10px;padding:8px}.universe-actions .subtle{margin-left:auto}#lesson-steps{gap:6px}#lesson-steps li{min-width:100px;font-size:9px;padding:8px}#lesson-jump{left:14px;font-size:9px;max-width:calc(100% - 150px)}#challenge-card{padding:14px}#lesson-instruction{font-size:12px}}
.field-control{margin:12px 22px}.check[hidden]{display:none}.field-note{margin:8px 22px 18px;color:#8e9caf;font-size:10px;line-height:1.7}.observatory{background:var(--panel);border:1px solid var(--line);border-radius:12px;margin-top:16px;padding:22px}.observatory-heading{display:flex;justify-content:space-between;align-items:center;gap:12px}.observatory-heading button,.measurement-controls button{font-size:11px}.observatory-heading h2{font-size:20px}.measurement-controls{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-top:20px}.measurement-controls label{display:flex;gap:8px;align-items:center;color:#b4c0d1;font-size:11px}.measurement-controls select,.compare-toolbar select,.compare-rules select{background:#111b29;color:#d5dfdc;border:1px solid #526175;border-radius:5px;padding:7px;max-width:240px;font-size:11px}.plot-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.plot-grid figure{min-width:0;margin:0;border:1px solid #354355;border-radius:8px;overflow:hidden}.plot-grid figcaption{font-size:12px;padding:12px;color:#d5e1d1}.plot-grid small{display:block;color:#8494ac;font-size:9px;margin-top:4px}.plot-grid canvas{width:100%;height:160px;display:block}.compare-dialog{width:min(1160px,calc(100% - 30px));max-width:1160px}.comparison-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px;margin:18px 0}.comparison-grid>section{min-width:0;border:1px solid #40506a;border-radius:8px;padding:14px}.comparison-grid h3{color:var(--mint);font-size:12px}.comparison-grid>section:nth-child(2) h3{color:#c5b3ff}.comparison-grid canvas{width:100%;height:290px;display:block;border-radius:6px;touch-action:auto;cursor:default}.comparison-grid .comparison-plot{height:130px}.compare-toolbar{display:flex;align-items:center;gap:9px;flex-wrap:wrap}.compare-toolbar button{font-size:11px}.compare-toolbar label{display:flex;gap:7px;align-items:center;font-size:11px;color:#aebbd0}#compare-play,#compare-apply{background:var(--mint);color:#263727}.compare-rules{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-bottom:12px}.compare-rules label{font-size:11px;color:#b7c6d7}.compare-rules input{display:block;margin:14px 0;width:100%}.compare-rules select{display:block;margin-top:7px;width:100%}.compare-rules output{float:right}#compare-status{font:11px monospace;color:#c3d9b7}#share-link{display:block;width:100%;max-width:100%;background:#101a28;border:1px solid #526175;color:#cee2c4;font:11px monospace;padding:12px;border-radius:6px;margin:10px 0 15px;resize:vertical;overflow-wrap:anywhere}#share-dialog>label{font-size:12px}#share-status{font-size:12px;color:var(--mint)}#lesson-compare-twin[hidden]{display:none}#shared-banner{border-color:#9c86c5;background:#2a2737}#shared-banner strong{color:#d5c0ff}#open-shared{background:#c9b7f4;color:#242534}.universe-actions{max-width:530px}@media(max-width:900px){.plot-grid{grid-template-columns:1fr}.plot-grid canvas{height:150px}.universe-actions{max-width:260px}.comparison-grid{gap:10px}.compare-rules{gap:8px}.compare-toolbar{gap:7px}}@media(max-width:700px){.observatory{padding:16px}.observatory-heading{align-items:flex-start}.observatory-heading h2{font-size:18px}.observatory-heading .eyebrow{font-size:8px}.observatory-heading button{font-size:9px}.measurement-controls{gap:10px}.measurement-controls label{width:100%;justify-content:space-between}.measurement-controls select{max-width:210px}.universe-actions{max-width:none}.comparison-grid{grid-template-columns:1fr}.compare-dialog{padding:18px}.comparison-grid canvas{height:270px}.comparison-grid .comparison-plot{height:125px}.compare-rules{gap:15px}.field-control{margin:12px 16px}.field-note{margin:8px 16px 18px}.plot-grid{gap:10px}}
.observatory canvas{touch-action:auto;cursor:default}@media(max-width:700px){.field-control,.field-note{grid-column:1/-1}}
