:root{--bg:#08131e;--bg2:#0d1c2a;--panel:#0c1926;--line:#1d3647;--line2:#23475a;--ink:#e5f1f7;--dim:#829daf;--muted:#577184;--accent:#51e0e6;--gold:#f6a956;--font:'DM Sans',sans-serif;--cond:'Barlow Condensed','Arial Narrow',sans-serif;--mono:'IBM Plex Mono',monospace}*{box-sizing:border-box}html,body{margin:0;height:100%;background:var(--bg);color:var(--ink);font:13px/1.5 var(--font)}button,input,select{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.32!important}button:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--accent);outline-offset:2px}button{transition:background .15s,border-color .15s,color .15s}a{color:var(--accent)}.app{display:flex;flex-direction:column;min-height:100dvh;height:100dvh;overflow:hidden}.topbar{height:76px;flex:none;display:grid;grid-template-columns:minmax(220px,1fr) auto minmax(220px,1fr);align-items:center;border-bottom:1px solid var(--line);padding:0 23px;background:#07131e;gap:18px}.brand{display:flex;align-items:center;gap:11px}.brandmark{width:38px;height:38px;display:flex;align-items:center;justify-content:center;border:1px solid #2b6573;color:var(--accent);background:#102936}.brandmark svg{width:26px}.brandmain{font:800 19px var(--cond);letter-spacing:1.4px;line-height:1}.brandmain span{color:var(--accent)}.brandmain b{font:600 12px var(--mono);color:#718c9b}.brandfine,.project-eyebrow,.project-small{font:9px var(--mono);letter-spacing:1px;color:var(--muted)}.brandfine{margin-top:5px}.dot,.live-label{color:var(--accent)}.project-header{text-align:center;display:flex;flex-direction:column;gap:0}.project-header strong{font:800 31px/1.12 var(--cond);letter-spacing:2px}.project-header em{font-style:normal;color:var(--accent)}.top-actions{display:flex;justify-content:flex-end;gap:8px;align-items:center}.engine-status{font:10px var(--mono);color:var(--dim);padding-right:9px}.engine-status i,.pulse,.status-dot{display:inline-block;height:6px;width:6px;background:var(--accent);border-radius:50%;box-shadow:0 0 9px rgba(71,222,227,.75);vertical-align:middle;margin-right:7px}.icon-btn{width:36px;height:35px;border:1px solid var(--line2);background:#10222f;color:#b5d5dd;font-size:18px}.icon-btn:hover,.view-buttons button:hover{background:#1a4050;border-color:var(--accent)}.modebar{height:47px;display:flex;justify-content:center;gap:4px;background:#0d1d2a;border-bottom:1px solid var(--line);flex:none}.mode-button{border:0;border-bottom:2px solid transparent;background:transparent;color:#89a5b5;min-width:124px;padding:0 12px;font:600 11px var(--mono);letter-spacing:.4px}.mode-button span{font-size:17px;font-weight:normal;padding-right:7px;vertical-align:-1px}.mode-button:hover{background:#142c3a;color:#fff}.mode-button.active{border-bottom-color:var(--accent);color:var(--accent);background:#132936}.workbench{display:grid;grid-template-columns:270px minmax(0,1fr) 302px;min-height:0;flex:1}.panel{min-height:0;background:var(--panel);display:flex;flex-direction:column}.leftpanel{border-right:1px solid var(--line)}.rightpanel{border-left:1px solid var(--line);overflow:auto}.panel-caption{height:46px;padding:16px 17px 11px;display:flex;justify-content:space-between;gap:10px;border-bottom:1px solid var(--line);color:#d1e2e8;font:600 10px var(--mono);letter-spacing:.5px;flex-shrink:0}.panel-caption span:last-child{color:var(--muted)}.tree-search{margin:17px 14px 18px;height:37px;border:1px solid #274454;display:flex;align-items:center;background:#071521;padding:0 10px;gap:9px}.tree-search>span{font-size:20px;color:var(--accent)}.tree-search input{width:100%;min-width:0;background:transparent;color:var(--ink);outline:0;border:0;font-size:12px}.tree-search kbd{font:10px var(--mono);padding:0 5px;border:1px solid #315568;color:var(--dim)}.tree-header{padding:0 15px 9px;display:flex;justify-content:space-between;font:10px var(--mono);color:var(--dim)}.tree-header strong{font-weight:500;letter-spacing:1px}.link-btn{color:var(--accent);background:none;border:0;font:9px var(--mono)}.part-tree{min-height:0;overflow:auto;padding-bottom:14px;scrollbar-width:thin;scrollbar-color:#29556a transparent}.group-toggle{display:flex;align-items:center;width:100%;padding:12px 13px;gap:9px;color:#c4e0e9;background:#0e2330;border:0;border-bottom:1px solid var(--line);font:600 10px var(--mono);text-align:left}.group-toggle .group-icon{color:var(--accent);font-size:18px}.group-toggle b{font-size:9px;color:var(--muted);margin-left:auto}.group-toggle .chevron{font-size:10px;color:var(--dim);margin:0 3px}.tree-part{display:flex;width:100%;align-items:center;gap:9px;background:transparent;color:#8ca5b6;text-align:left;padding:9px 12px 9px 24px;border:0;border-left:2px solid transparent;white-space:nowrap;font-size:11px}.tree-part:hover{background:#152b3a;color:white}.tree-part.active{background:#173945;border-left-color:var(--accent);color:#d6faff}.tree-part .part-indicator{display:inline-grid;place-items:center;width:14px;height:14px;border:1px solid #36576b;font:10px var(--mono);flex-shrink:0}.tree-part .part-indicator.ready{background:#103c3d;border-color:#399e92;color:var(--accent)}.tree-part .part-text{overflow:hidden;text-overflow:ellipsis}.tree-part .part-serial{margin-left:auto;font:9px var(--mono);color:#597a8d}.left-footer{margin-top:auto;padding:13px;border-top:1px solid var(--line);display:flex;align-items:center;gap:3px;color:var(--dim);font:9px var(--mono);flex:none}.left-footer b{margin-left:auto;font-weight:500;color:var(--accent);max-width:100px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.viewport-shell{min-width:0;display:flex;flex-direction:column;background:#07131d}.viewport{position:relative;flex:1;min-height:180px;overflow:hidden;background:radial-gradient(ellipse at 48% 33%,#18384b 0%,#0c2030 44%,#07121d 91%);touch-action:none}.viewport canvas{position:absolute;width:100%;height:100%;top:0;left:0;outline:0;touch-action:none;cursor:grab}.viewport canvas.dragging{cursor:grabbing}.vignette{position:absolute;inset:0;background:linear-gradient(180deg,rgba(6,15,25,.14),transparent 32%,transparent 70%,rgba(4,12,20,.41));pointer-events:none}.viewport-top{position:absolute;top:17px;left:19px;right:17px;display:flex;justify-content:space-between;gap:12px;align-items:flex-start;pointer-events:none}.eyebrow-tag{font:9px var(--mono);letter-spacing:1px;color:#a4d1e0;line-height:25px}.eyebrow-tag .sep{margin:0 8px;color:var(--muted)}.view-buttons{display:flex;gap:5px;pointer-events:auto}.view-buttons button{background:#0b2230dc;color:#9fc3d2;font:10px var(--mono);border:1px solid #2a5063;padding:7px 8px}.view-buttons .compact{font-size:18px;line-height:13px}.view-buttons button.active{border-color:var(--accent);color:var(--accent)}.viewport-left-meta{position:absolute;left:21px;top:50%;transform:translateY(-50%);display:flex;flex-direction:column;gap:6px;color:#658b9e;font:9px var(--mono);letter-spacing:.7px;pointer-events:none;writing-mode:vertical-rl;rotate:180deg}.vertical-hair{height:50px;width:1px;background:#358fa0;margin-bottom:10px}.viewport-bottom{position:absolute;bottom:14px;left:19px;right:19px;display:flex;justify-content:space-between;align-items:flex-end;pointer-events:none}.orientation-widget{width:74px;height:69px;position:relative;border:1px solid #315363;background:#0a1d2ad9}.or-axis{position:absolute;font:700 12px var(--mono)}.ax-x{left:50px;top:25px;color:#ff927c}.ax-y{left:23px;top:8px;color:#9af7ac}.ax-z{left:12px;top:33px;color:#70caff}.orientation-widget small{position:absolute;bottom:3px;left:7px;font:7px var(--mono);color:var(--dim)}.view-stats{display:flex;gap:14px;color:#7da4b3;font:9px var(--mono)}.view-stats b{color:var(--accent)}.control-strip{display:flex;align-items:center;flex-wrap:wrap;gap:12px;background:#0e1d29;border-top:1px solid #2a4353;min-height:95px;padding:12px 18px}.strip-title{min-width:160px;flex:1}.strip-title strong{display:block;font:700 14px var(--cond);letter-spacing:1px}.strip-title span{font-size:10px;color:var(--dim)}.explosion-panel{min-width:200px;max-width:340px;flex:2}.slider-label,.slider-end{display:flex;justify-content:space-between;align-items:center;color:var(--dim);font:9px var(--mono);letter-spacing:.2px}.slider-label strong{color:var(--accent);font-size:12px}.slider-end{font-size:8px}.explosion-panel input{width:100%;height:6px;accent-color:var(--accent);cursor:pointer}.strip-play{display:flex;align-items:center;gap:5px;flex:1;justify-content:flex-end}.strip-play button{height:32px;min-width:32px;border:1px solid #2a4c5d;color:#b9d6dc;background:#132b39}.strip-play .play-btn{background:#2caaa9;border:1px solid #61d3d9;color:#041d28;font-size:14px}.strip-play button:hover{background:#28505d}.small-btn{font:11px var(--mono)!important}.speed-select{margin-left:6px;white-space:nowrap;color:var(--dim);font:9px var(--mono)}select{background:#0b202d;border:1px solid #2d4a5c;color:#b9dce6;padding:7px 6px;outline:0;font:10px var(--mono)}.speed-select select{margin-left:4px}.context-bar{display:flex;justify-content:space-between;align-items:center;gap:15px;flex-wrap:wrap;border-top:1px solid #1d3647;min-height:61px;padding:10px 18px;background:#091925}.context-controls{display:flex;gap:18px;flex-wrap:wrap}.context-item{display:flex;flex-direction:column;gap:4px}.context-item label{font:9px var(--mono);color:#739aad}.context-item select{min-width:110px}.context-hint{font:9px var(--mono);color:#638c9c;letter-spacing:.1px}.inspector-visual{padding:21px 17px 20px;border-bottom:1px solid var(--line);position:relative;background:radial-gradient(circle at 85% 20%,#142f41 0%,transparent 65%)}.inspector-index{font:9px var(--mono);color:var(--accent);letter-spacing:1px}.inspector-symbol{font:46px var(--cond);color:#305d71;height:65px;line-height:60px}.inspector-visual h2{font:700 23px/1.12 var(--cond);margin:5px 0 8px;letter-spacing:.4px}.inspector-visual p{color:var(--dim);font-size:11px;line-height:1.7;margin:0}.spec-block{padding:16px 17px 8px;border-bottom:1px solid var(--line)}.spec-heading,.card-head{display:flex;justify-content:space-between;gap:5px;font:600 10px var(--mono);color:#c9e2ea;margin:0 0 10px}.spec-heading span,.card-head span{font-size:9px;color:var(--muted)}.spec-row{display:flex;justify-content:space-between;align-items:baseline;gap:8px;border-top:1px solid #172b3a;padding:10px 0;color:var(--dim);font:10px var(--mono)}.spec-row strong{color:#bfd4df;font-weight:500;text-align:right;max-width:65%;overflow-wrap:anywhere}.inspector-actions{display:grid;grid-template-columns:repeat(2,1fr);gap:6px;padding:14px 16px}.inspector-actions button,.inline-tools button,.movement-tools button,.assembly-selectors button,.learning button,.hint-btn{border:1px solid #2b5263;background:#102837;color:#9fc5d2;padding:9px 7px;font:10px var(--mono)}.inspector-actions button:hover,.inline-tools button:hover,.movement-tools button:hover,.learning button:hover,.hint-btn:hover{border-color:var(--accent);color:var(--accent)}.assembly-card,.operate-card,.learning{padding:17px;border-top:1px solid var(--line)}.progress-line{width:100%;height:5px;background:#163341;margin:12px 0 8px;overflow:hidden}.progress-line span{display:block;height:100%;width:0;background:var(--accent);transition:width .25s}.assembly-selectors{display:flex;gap:4px;margin-bottom:11px}.assembly-selectors button{flex:1;padding:7px 3px;font-size:9px}.assembly-selectors button.active{border-color:var(--accent);color:var(--accent);background:#12363c}.inline-tools{display:flex;gap:5px;flex-wrap:wrap}.inline-tools button{flex:1;font-size:9px}.movement-tools{display:grid;grid-template-columns:repeat(4,1fr);gap:4px;margin:9px 0}.movement-tools button{padding:8px 0}.assembly-status{font:10px/1.6 var(--mono);color:var(--dim);padding:8px 0;min-height:46px}.hint-btn{width:100%;color:var(--accent)}.telemetry-grid{display:grid;grid-template-columns:1fr 1fr;gap:1px;margin:12px 0 17px;background:#193749;border:1px solid #193749}.telemetry-grid>div{background:#0c2634;padding:13px 9px}.telemetry-grid span{color:var(--dim);font:9px var(--mono);display:block}.telemetry-grid strong{display:block;color:var(--accent);font:700 27px var(--cond)}.telemetry-grid small{font:10px var(--mono);color:var(--dim)}.control-range{display:flex;justify-content:space-between;flex-wrap:wrap;gap:6px;font:10px var(--mono);margin:14px 0 12px;color:#a0bac9}.control-range span{color:var(--accent)}.control-range input{flex-basis:100%;width:100%;accent-color:var(--accent)}.action-primary{border:1px solid var(--accent);background:#194a4d;color:#d8fff9;padding:12px;width:100%;font:600 11px var(--mono);letter-spacing:.4px}.action-primary.active{background:#124126}.learning p{font:11px/1.65 var(--font);color:var(--dim)}.learning button{width:100%}.panel-bottom{margin-top:auto;border-top:1px solid var(--line);padding:13px 16px;display:flex;justify-content:space-between;font:9px var(--mono);color:var(--muted)}.statusbar{height:31px;flex:none;border-top:1px solid var(--line);background:#07131d;display:flex;gap:14px;align-items:center;justify-content:space-between;padding:0 18px;color:var(--dim);font:9px var(--mono)}.statusbar b{color:#426274;font-weight:400;padding:0 5px}.statusbar a{text-decoration:none;color:var(--accent)}.mobilebar{display:none}.notice{position:absolute;top:72px;left:50%;transform:translateX(-50%);background:#0c2a36ee;border:1px solid #478894;color:#d1f8fb;padding:10px 17px;font:11px var(--mono);box-shadow:0 12px 35px #0006;z-index:10;display:none;max-width:80%;pointer-events:none;text-align:center}.notice.show{display:block}.loading{position:absolute;inset:0;display:flex;flex-direction:column;gap:7px;align-items:center;justify-content:center;background:#091b28;color:#cdeff4;font:12px var(--mono);letter-spacing:.8px;z-index:12}.loading-art{font-size:78px;color:var(--accent);animation:turn 8s linear infinite}.loading small{color:var(--dim);font-size:10px}@keyframes turn{to{transform:rotate(360deg)}}.view-center-marker{position:absolute;left:50%;top:50%;pointer-events:none;transform:translate(-50%,-50%);text-align:center;color:#71fafa;font:9px var(--mono);text-shadow:0 1px 8px #000;z-index:5;white-space:nowrap}.view-center-marker[hidden]{display:none}.reticle{border:1px dashed #38f0ef;border-radius:50%;width:38px;height:38px;line-height:34px;font-size:26px;margin:auto auto 5px;background:#5fe8ff1a;box-shadow:0 0 30px #3cf0ff55}.view-center-marker b{display:block}.view-center-marker span{display:block}dialog{width:min(780px,calc(100vw - 28px));max-height:calc(100dvh - 32px);border:1px solid #3a8d9b;background:#0c1c2a;color:var(--ink);padding:0;box-shadow:0 24px 120px #000b}dialog::backdrop{background:#02070bdc;backdrop-filter:blur(8px)}.dialog-inner{padding:23px;overflow:auto}.dialog-top{display:flex;justify-content:space-between;align-items:center;font:11px var(--mono);color:var(--accent)}.dialog-top button{border:1px solid var(--line2);background:transparent;color:var(--ink);padding:8px 12px}.dialog-inner h2{font:800 42px var(--cond);margin:17px 0 8px}.dialog-inner>p{color:var(--dim);line-height:1.7}.help-grid{display:grid;grid-template-columns:1fr 1fr;gap:11px}.help-grid>div{padding:14px;background:#102735;border:1px solid var(--line)}.help-grid b{font:11px var(--mono);color:var(--accent)}.help-grid p{color:#a1bbc9;font-size:12px;line-height:1.6}.dialog-note kbd{color:var(--accent)}
@media(max-width:1270px){.workbench{grid-template-columns:230px minmax(0,1fr) 267px}.context-hint{display:none}.topbar{padding:0 13px}.inspector-visual{padding:15px}.view-buttons button{font-size:9px;padding:7px}.control-strip{gap:7px;padding:12px}}
@media(max-width:1020px){.workbench{grid-template-columns:200px minmax(0,1fr) 237px}.topbar{grid-template-columns:1fr auto}.project-header{display:none}.panel-caption{font-size:9px}.context-controls{gap:9px}.strip-title{display:none}.speed-select{display:none}.mode-button{min-width:0;flex:1;font-size:10px}}
@media(max-width:740px){.app{height:100dvh;min-height:0}.topbar{height:59px;grid-template-columns:1fr auto;gap:5px}.brandmain{font-size:17px}.brandfine{font-size:8px}.brandmark{width:31px;height:31px}.engine-status{font-size:8px;max-width:78px;overflow:hidden;white-space:nowrap}.top-actions{gap:4px}.icon-btn{width:30px;height:29px}.modebar{height:51px;overflow-x:auto;justify-content:flex-start;scrollbar-width:none}.mode-button{flex:1;min-width:76px;padding:4px 3px;font-size:9px;line-height:1.5}.mode-button span{display:block;line-height:16px;font-size:15px;padding:0}.workbench{display:block;position:relative;flex:1;min-height:0}.viewport-shell{height:100%;min-height:0}.viewport{min-height:0}.leftpanel,.rightpanel{position:absolute;z-index:30;left:0;right:0;bottom:0;top:0;display:none;border:0;box-shadow:0 0 40px #000a}.leftpanel.mobile-open,.rightpanel.mobile-open{display:flex}.part-tree{flex:1}.rightpanel{overflow-y:auto}.rightpanel .panel-bottom{padding-bottom:20px}.viewport-top{top:13px;left:12px;right:12px;flex-wrap:wrap}.eyebrow-tag{font-size:8px}.view-buttons{margin-left:auto}.view-buttons button{font-size:9px;padding:5px}.viewport-left-meta{display:none}.viewport-bottom{bottom:7px;left:10px;right:10px}.view-stats{gap:5px;font-size:8px;flex-direction:column;align-items:flex-end}.orientation-widget{transform:scale(.7);transform-origin:bottom left}.control-strip{min-height:77px;padding:7px 9px;flex-wrap:nowrap;gap:12px}.explosion-panel{min-width:0;flex:1}.strip-play{flex:0;gap:3px}.strip-play .small-btn{min-width:28px;font-size:9px!important}.strip-play button{height:30px;min-width:28px}.strip-play #resetBtn{font-size:9px!important}.slider-label,.slider-end{font-size:8px}.context-bar{min-height:58px;padding:7px;display:block}.context-controls{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.context-item select{width:100%;min-width:0;font-size:9px;padding:6px 4px}.context-item label{font-size:7px}.statusbar{display:none}.mobilebar{height:56px;display:flex;flex:none;border-top:1px solid #285264;background:#0e2532;padding-bottom:env(safe-area-inset-bottom)}.mobilebar button{flex:1;background:transparent;border:0;border-top:2px solid transparent;color:#8eb3c2;font:10px var(--mono)}.mobilebar button.active{color:var(--accent);border-top-color:var(--accent);background:#173746}.notice{top:80px}}
@media(max-width:410px){.brandfine{display:none}.brandmain{font-size:14px}.icon-btn{width:26px}.mode-button{min-width:61px;font-size:8px}.eyebrow-tag{font-size:7px}.viewport-top{gap:5px}.view-buttons{gap:3px}.view-buttons button{font-size:8px;padding:4px}.strip-play #resetBtn{display:none}.help-grid{grid-template-columns:1fr}}

.technical-lines,.technical-labels{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:4}.technical-lines{stroke:#52cdd4;stroke-width:1;opacity:.72}.tech-label{position:absolute;border:1px solid #378392;background:#092938df;padding:5px 7px;color:#dbfbfc;font:9px var(--mono);max-width:155px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;box-shadow:0 2px 13px #0008}.tech-label strong{color:#57d8e2;margin-right:6px}.tech-label small{display:block;color:#6fa8bd;font-size:8px;margin-top:2px}@media(max-width:740px){.tech-label{font-size:7px;padding:3px 4px;max-width:90px}.tech-label small{display:none}}

body.embed-mode,body.embed-mode html{height:100vh;height:100dvh}body.embed-mode .app{height:100vh;height:100dvh;min-height:0}
.science{position:absolute;right:10px;top:54px;z-index:6;max-width:min(420px,calc(100% - 20px));background:rgba(8,19,30,.94);border:1px solid var(--line2);border-radius:8px;font-size:12px}.science summary{cursor:pointer;padding:7px 12px;font:600 11px var(--mono);letter-spacing:.08em;color:var(--accent)}.science[open]{max-height:calc(100% - 70px);overflow:auto}.science .sci-body{padding:0 12px 10px}.science code{font-family:var(--mono);color:var(--gold)}.science p,.science li{margin:4px 0}.science ul{padding-left:18px;margin:4px 0}.science .chk{font-family:var(--mono);color:var(--accent)}
@media(max-width:740px){.science{top:96px}}
