:root{color-scheme:dark;font-family:Inter,Segoe UI,system-ui,sans-serif;background:#0f0f10;color:#e7e7e9;--bg: #0f0f10;--panel: #19191b;--panel-2: #242426;--line: #343437;--muted: #97979c;--text: #ededee;--low: #7b858f;--high: #7df2a8;--danger: #ff8796;--shadow: 0 18px 45px rgb(0 0 0 / 28%)}*{box-sizing:border-box}html,body,#app{min-height:100%;margin:0}body{min-width:1100px;background:var(--bg);overflow:hidden}button,input{font:inherit}button{color:inherit}.topbar{height:64px;display:flex;align-items:center;gap:26px;padding:0 18px;border-bottom:1px solid var(--line);background:#111112}.brand{display:flex;align-items:center;gap:10px;min-width:220px}.brand-mark{display:grid;place-items:center;width:34px;height:34px;border:1px solid #6f6f74;color:var(--ui-accent);font:700 11px/1 JetBrains Mono,monospace;letter-spacing:-1px;background:#242426}.brand strong{display:block;font-size:14px;letter-spacing:.01em}.brand-subtitle{display:block;margin-top:3px;color:var(--muted);font-size:10px;text-transform:uppercase;letter-spacing:.13em}.project-title{display:flex;flex:1;flex-direction:column;gap:3px;max-width:360px}.project-name-row{display:flex;align-items:center;gap:8px}.save-state{color:var(--ui-subtle);font:9px JetBrains Mono,monospace;letter-spacing:.08em}.save-state.dirty{color:#ffd18f}.project-title input{width:100%;border:0;outline:0;padding:0;color:var(--text);background:transparent;font-weight:600}.eyebrow{color:var(--ui-subtle);font-size:9px;font-weight:700;letter-spacing:.17em;text-transform:uppercase}.top-actions{display:flex;gap:7px}.button,.tool-button,.icon-button{border:1px solid var(--line);background:var(--ui-control);cursor:pointer;transition:.16s ease}.button{border-radius:4px;padding:7px 12px;font-size:11px}.button-with-icon{display:inline-flex;align-items:center;justify-content:center;gap:7px}.icon-glyph{display:block;width:14px;height:14px;flex:0 0 auto;margin:0;stroke-width:1.8;vertical-align:middle}.action-label{display:inline-flex;min-width:0;align-items:center;gap:7px}.button:hover,.tool-button:hover,.icon-button:hover{background:var(--ui-control-hover)}.button.subtle{color:var(--ui-muted)}.workspace{height:calc(100vh - 64px);display:grid;grid-template-columns:235px minmax(560px,1fr) 245px}.panel{background:var(--panel);border-right:1px solid var(--line);overflow:hidden}.inspector-panel{border-right:0;border-left:1px solid var(--line)}.panel-header{display:flex;justify-content:space-between;align-items:flex-start;padding:18px 16px 13px}h2{margin:4px 0 0;font-size:14px;font-weight:600}.icon-button{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;border-radius:3px;color:var(--ui-accent);line-height:0}.icon-button .icon-glyph{width:16px;height:16px}.count-badge{padding:3px 7px;border:1px solid #4a4a4d;border-radius:12px;color:#b0b0b4;font:11px JetBrains Mono,monospace}.search-field{display:flex;align-items:center;gap:7px;margin:0 12px 12px;padding:7px 9px;border:1px solid var(--line);border-radius:4px;color:var(--muted);background:#151517}.search-field input{min-width:0;width:100%;border:0;outline:0;color:var(--text);background:transparent;font-size:11px}.chip-library{height:calc(100% - 110px);padding:0 10px 18px;overflow:auto}.library-group{margin-bottom:15px}.library-group-title{display:flex;align-items:center;gap:8px;margin:12px 6px 6px;color:#85858a;font-size:9px;font-weight:700;letter-spacing:.15em;text-transform:uppercase}.library-group-title:after{content:"";height:1px;flex:1;background:#303033}.chip-button{display:flex;align-items:center;gap:9px;width:100%;padding:8px;border:1px solid transparent;border-radius:4px;color:var(--ui-text);background:transparent;cursor:pointer;text-align:left}.chip-button:hover{background:#38383b}.chip-swatch{flex:0 0 auto;width:8px;height:8px;border-radius:2px;box-shadow:0 0 0 2px #ffffff0a}.chip-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11px}.chip-meta{margin-left:auto;color:var(--ui-subtle);font:9px JetBrains Mono,monospace}.canvas-panel{position:relative;display:flex;min-width:0;flex-direction:column;background:#151517}.canvas-toolbar{display:flex;justify-content:space-between;align-items:center;min-height:48px;padding:8px 12px;border-bottom:1px solid var(--line);background:#202023}.tool-group,.sim-controls{display:flex;align-items:center;gap:6px}.sim-control-stack{display:flex;flex:0 0 auto;flex-direction:column;align-items:flex-end;gap:4px}.tool-button{border-radius:4px;padding:6px 9px;color:#b4b4b8;font-size:10px}.tool-button[data-annotation-tool]{touch-action:none}.tool-button[data-annotation-tool].dragging{opacity:.55}.bake-button{border:1px solid var(--sim-run-border);border-radius:4px;padding:6px 12px;color:var(--sim-run-text);background:var(--sim-run-surface);cursor:pointer;font-size:10px;font-weight:700}.bake-button.active{color:var(--sim-pause-text);background:var(--sim-pause-surface)}.speed-control{display:flex;align-items:center;color:var(--ui-subtle);font-size:9px}.speed-input-shell{position:relative;display:block;width:86px;height:var(--toolbar-button-height);flex:0 0 86px}.speed-control input{width:100%;height:var(--toolbar-button-height);padding:0 42px 0 8px;border:1px solid var(--ui-control-border);border-radius:2px;outline:0;color:var(--ui-text);background:var(--ui-control);font:9px JetBrains Mono,monospace;text-align:left}.speed-control input[type=number]{-webkit-appearance:textfield;-moz-appearance:textfield;appearance:textfield}.speed-control input[type=number]::-webkit-inner-spin-button,.speed-control input[type=number]::-webkit-outer-spin-button{margin:0;-webkit-appearance:none;-moz-appearance:none;appearance:none}.speed-control input:focus{border-color:var(--ui-control-border-hover)}.speed-unit{position:absolute;top:0;right:7px;bottom:0;display:flex;align-items:center;color:#b0b0b4;font:9px JetBrains Mono,monospace;pointer-events:none;white-space:nowrap}.step-scrubber{display:block;width:100%;min-width:230px;height:14px;padding:0 2px;border:0;border-radius:0;background:transparent;opacity:.76;pointer-events:auto;transition:opacity .16s ease}.step-scrubber:hover{opacity:1}.step-scrubber input{display:block;min-width:60px;width:100%;height:14px;margin:0;padding:0;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:linear-gradient(to right,#f5f5f6 0 var(--scrubber-progress, 0%),rgb(255 255 255 / 18%) var(--scrubber-progress, 0%) 100%) center / 100% 3px no-repeat;cursor:ew-resize}.step-scrubber input::-webkit-slider-runnable-track{height:3px;background:transparent;border-radius:2px}.step-scrubber input::-webkit-slider-thumb{width:10px;height:10px;margin-top:-3.5px;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;border-radius:50%;background:#f5f5f6;cursor:ew-resize}.step-scrubber input::-moz-range-track{height:3px;background:transparent;border-radius:2px}.step-scrubber input::-moz-range-progress{height:3px;background:transparent}.step-scrubber input::-moz-range-thumb{width:10px;height:10px;border:0;border-radius:50%;background:#f5f5f6;cursor:ew-resize}.step-scrubber input:disabled{cursor:default;opacity:.45}.canvas-wrap{position:relative;flex:1;min-height:0;overflow:hidden;touch-action:none}#world{display:block;width:100%;height:100%;cursor:crosshair;touch-action:none;user-select:none;-webkit-user-select:none}.canvas-hover-tooltip{position:absolute;top:0;left:0;z-index:4;display:flex;min-width:96px;max-width:min(320px,calc(100% - 16px));min-height:24px;align-items:center;padding:0 8px;overflow:hidden;border-radius:4px;color:#fff;background:#5284be3d;box-shadow:0 3px 10px #00000024;font:600 11px/1 JetBrains Mono,Consolas,monospace;white-space:nowrap;text-overflow:ellipsis;pointer-events:none;contain:layout paint;will-change:transform}.canvas-wrap.selecting #world{cursor:default}.canvas-wrap.panning #world{cursor:grabbing}.hidden{display:none!important}.canvas-status{display:flex;justify-content:space-between;gap:12px;min-height:27px;padding:7px 12px;border-top:1px solid var(--line);color:var(--ui-subtle);font:9px JetBrains Mono,monospace}.canvas-status #status-message{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.canvas-status #coordinate-readout{margin-left:auto}.inspector-content{min-height:200px;padding:0 15px 15px}.empty-inspector{padding:25px 3px;color:var(--ui-subtle);font-size:11px;line-height:1.7}.selected-card{padding:12px;border:1px solid #414145;border-radius:5px;background:#242426}.selected-title{display:flex;align-items:center;gap:8px;margin-bottom:13px}.selected-title .chip-swatch{width:10px;height:10px}.selected-title strong{font-size:12px}.selected-kind{margin-top:3px;color:var(--ui-subtle);font-size:9px}.inspector-row{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:8px 0;border-top:1px solid #3b3b3e;color:#9a9a9f;font-size:10px}.inspector-value{color:#d2d2d5;font:10px JetBrains Mono,monospace;text-align:right}.inspector-input{width:86px;padding:4px 5px;border:1px solid #55555a;border-radius:3px;outline:0;color:#e7e7e9;background:#151517;font:10px JetBrains Mono,monospace}.inspector-input.annotation-colour-input{height:24px;padding:2px;cursor:pointer}.annotation-editor-label{display:block;padding:8px 0;border-top:1px solid #3b3b3e;color:#9a9a9f;font-size:10px}.annotation-textarea{display:block;width:100%;min-height:92px;margin-top:7px;resize:vertical;line-height:1.45}.inspector-actions{display:flex;align-items:stretch;gap:4px;margin-top:8px;padding-top:8px;border-top:1px solid var(--ui-line-soft)}.inspector-action{display:inline-flex;min-width:0;flex:1 1 0;align-items:center;justify-content:center;gap:4px;min-height:24px;padding:0 4px;overflow:hidden;border:1px solid var(--ui-control-border);border-radius:2px;color:var(--ui-text);background:var(--ui-control);cursor:pointer;font-family:inherit;font-size:8px;font-weight:500;line-height:1;letter-spacing:.02em;white-space:nowrap}.inspector-action:hover{background:var(--ui-control-hover)}.inspector-action .icon-glyph{width:11px;height:11px}.inspector-action>span{overflow:hidden;text-overflow:ellipsis}.inspector-control{display:flex;justify-content:space-between;align-items:center;margin-top:10px;padding:8px;border:1px solid var(--ui-control-border);border-radius:4px;color:var(--ui-text);background:var(--ui-control);cursor:pointer;font-size:10px}.inspector-control.high{color:#b4f7cb;background:#11291f}.input-toggle-control{min-height:24px;margin-top:8px;padding:0 6px;border-radius:2px;font-family:inherit;font-size:8px;font-weight:500;line-height:1;letter-spacing:.02em}.input-toggle-control .action-label{gap:4px}.input-toggle-control .signal-dot{width:6px;height:6px;margin-right:0}.input-toggle-control .action-label{font-size:8px;font-weight:600;letter-spacing:.08em}.inspector-control .signal-dot{margin-right:6px}.signal-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--low);box-shadow:0 0 0 2px #0003}.signal-dot.high{background:var(--high);box-shadow:0 0 9px #7df2a899}.signal-dot.low{background:var(--low)}.signal-dot.disconnected{background:#687279}.notification-stack{position:fixed;right:14px;bottom:102px;z-index:25;display:flex;width:min(360px,calc(100vw - 28px));max-height:calc(100vh - 126px);flex-direction:column;align-items:stretch;gap:7px;overflow:hidden;pointer-events:none}.notification{display:grid;grid-template-columns:16px minmax(0,1fr) 24px;align-items:start;gap:9px;min-width:0;padding:10px 8px 10px 11px;border:1px solid #66666a;border-radius:4px;color:#e1e1e3;background:#2d2d30;box-shadow:var(--shadow);font-size:10px;line-height:1.4;pointer-events:auto;animation:notification-enter .2s ease both}.notification-icon{display:grid;width:16px;height:18px;place-items:center;color:var(--ui-accent)}.notification-icon .icon-glyph{width:14px;height:14px}.notification-message{min-width:0;overflow-wrap:anywhere}.notification-stack .notification-close{width:24px;min-width:24px;height:24px;min-height:24px;border:0;color:#a8a8ad;background:transparent}.notification-stack .notification-close:hover{color:#fff;background:#ffffff1a}.notification-success{border-color:#4c8062}.notification-success .notification-icon{color:#7df2a8}.notification-warning{border-color:#806b3c}.notification-warning .notification-icon{color:#f3d36b}.notification-error{border-color:#7d4151;color:#ffd4db;background:#321a24}.notification-error .notification-icon{color:#f47883}.notification.is-leaving{animation:notification-leave .18s ease forwards}@keyframes notification-enter{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes notification-leave{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-7px)}}.context-menu{position:fixed;z-index:30;min-width:150px;padding:5px;border:1px solid #55555a;border-radius:5px;background:#202023;box-shadow:var(--shadow)}.context-menu-header{padding:6px 9px 7px;border-bottom:1px solid #3b3b3e;color:#ededee;font-size:9px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.context-menu button{display:flex;width:100%;align-items:center;gap:8px;padding:7px 9px;border:0;border-radius:3px;color:#d0d0d3;background:transparent;cursor:pointer;font-size:10px;text-align:left}.context-menu button .icon-glyph{width:14px;height:14px;flex:0 0 auto}.context-menu button:hover{color:#fff;background:#3b3b3e}.context-menu .context-separator{height:1px;margin:4px 2px;background:#3b3b3e}.help-modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:40;display:grid;place-items:center;padding:24px;background:#00000085}.help-dialog{width:min(560px,calc(100vw - 32px));max-height:min(680px,calc(100vh - 48px));overflow:auto;border:1px solid #68686d;border-radius:5px;color:#d7d7da;background:#29292c;box-shadow:0 18px 48px #00000073}.help-dialog-header{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 18px 14px}.help-dialog-header h2{margin:4px 0 0;color:#f5f5f6;font-size:14px;font-weight:600}.help-dialog-header .eyebrow{color:#a6a6aa}.help-dialog-header .icon-button{flex:0 0 auto}.help-dialog-content{display:block;padding:0 18px 18px}.help-guidance,.help-meta{padding:0;border:0;border-radius:0;background:transparent}.help-guidance{padding-top:2px}.help-shortcuts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 22px}.help-section-divider{height:1px;margin:18px 0;background:var(--ui-line-soft)}.help-section-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:10px}.help-section-heading h3{margin:4px 0 0;color:#e4e4e7;font-size:11px;font-weight:600}.help-section-heading>.icon-glyph{width:18px;height:18px;color:#c8c8cb}.help-guidance-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 14px}.help-guidance-item{display:grid;gap:4px;min-width:0;padding:8px 0;border-top:1px solid rgb(255 255 255 / 10%)}.help-guidance-item strong{color:#ededee;font-size:10px;font-weight:600}.help-guidance-item span{color:#bdbdc1;font-size:9px;line-height:1.45}.help-group h3{margin:0 0 7px;color:#d0d0d3;font-size:9px;font-weight:700;letter-spacing:.14em;text-transform:uppercase}.help-command{display:grid;grid-template-columns:110px minmax(0,1fr);min-height:28px;align-items:center;gap:8px;border-top:1px solid rgb(255 255 255 / 8%);color:#c8c8cb;font-size:9px}.help-command kbd{display:inline-flex;min-height:20px;align-items:center;justify-content:center;padding:0 6px;border:1px solid #55555a;border-radius:2px;color:#ededee;background:#1f1f21;font:700 8px/1 JetBrains Mono,monospace;letter-spacing:.04em;white-space:nowrap}.help-examples{min-width:0}.help-examples .help-section-heading{margin-bottom:0}.help-examples .help-section-heading>.icon-glyph{color:var(--ui-accent)}.help-example-groups{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-top:12px}.help-example-groups>div>strong{color:var(--ui-subtle);font-size:8px;letter-spacing:.12em}.help-example-list{display:grid;gap:4px;margin-top:6px}.help-example-list a{display:block;min-width:0;padding:5px 7px;border:1px solid rgb(255 255 255 / 9%);border-radius:2px;color:var(--ui-text);background:#0000001f;font-size:9px;text-decoration:none}.help-example-list a:hover{color:var(--ui-accent-strong);background:var(--ui-control-active)}.help-meta{padding-bottom:0}.help-meta-badge{padding:4px 6px;border:1px solid #55555a;border-radius:2px;color:#c8c8cb;background:#1f1f21;font:700 8px/1 JetBrains Mono,monospace;letter-spacing:.08em}.help-meta-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 22px;margin:0}.help-meta-grid>div{min-width:0;padding:8px 0;border-top:1px solid var(--ui-line-soft)}.help-meta-grid dt{color:var(--ui-subtle);font-size:8px;font-weight:700;letter-spacing:.1em;text-transform:uppercase}.help-meta-grid dd{margin:4px 0 0;overflow-wrap:anywhere;color:#d7d7da;font-size:9px;line-height:1.35}.help-meta-note{margin:10px 0 0;color:var(--ui-subtle);font-size:9px;line-height:1.45}@media(max-width:1200px){body{min-width:900px}.workspace{grid-template-columns:205px minmax(450px,1fr) 210px}}body{min-width:0;font-family:JetBrains Mono,Cascadia Mono,Consolas,monospace;background:#242629}#app{position:relative;min-height:100vh;background:#242629}.topbar{position:fixed;top:9px;left:50%;z-index:5;width:min(420px,calc(100vw - 32px));height:34px;padding:0 8px;border:0;background:#0000007a;box-shadow:0 3px 10px #00000029;transform:translate(-50%);pointer-events:none}.brand,.top-actions{display:none}.project-title{width:100%;max-width:none;align-items:center;pointer-events:auto}.project-title .eyebrow{display:none}.project-name-row{width:100%;justify-content:center}.project-title input{width:min(240px,100%);color:#f5f5f5;font-size:12px;text-align:center}.save-state{color:var(--ui-muted)}.save-state.dirty{color:#ffce68}.workspace{position:relative;display:block;height:100vh}.canvas-panel{width:100%;height:100vh;background:#242629}.canvas-toolbar{position:absolute;top:48px;left:12px;z-index:3;min-height:0;padding:0;border:0;background:transparent;opacity:.72}.canvas-toolbar:hover{opacity:1}.tool-button,.bake-button{border-color:#5a5a5d;border-radius:2px;background:#2d2d30;font-family:inherit}.tool-button:hover,.button:hover,.icon-button:hover{background:var(--ui-control-hover)}.tool-button.active{color:var(--ui-accent-strong);background:var(--ui-control-active)}.bake-button{border-color:var(--sim-run-border);border-radius:2px;background:var(--sim-run-surface)}.bake-button.active{background:var(--sim-pause-surface)}.speed-control{color:#d0d0d0}.canvas-wrap{background:#242629}#world{cursor:crosshair}.canvas-wrap.resizing #world{cursor:nwse-resize}.canvas-status{position:absolute;right:0;bottom:55px;left:0;z-index:2;min-height:23px;border-top:0;color:#c3c3c3;background:transparent}.library-panel,.inspector-panel{position:fixed;top:64px;bottom:102px;z-index:12;width:285px;border:1px solid #67676a;border-radius:4px;background:#1d1d1ff7;box-shadow:0 10px 28px #00000061;transition:transform .18s ease}.library-panel{left:10px;transform:translate(calc(-100% - 16px))}.inspector-panel{right:10px;border-left:1px solid #67676a;transform:translate(calc(100% + 16px))}#app.library-open .library-panel,#app.inspector-open .inspector-panel{transform:translate(0)}.panel-header{padding:14px 14px 11px;border-bottom:1px solid #4c4c4f}.panel-actions{display:flex;align-items:center;gap:5px}.close-drawer{color:#c4c4c4}.panel h2{color:#fff;font-family:inherit;font-size:12px;text-transform:uppercase}.eyebrow,.library-group-title{color:#b2b2b5;font-family:inherit}.search-field{border-color:#555559;border-radius:2px;background:#29292c}.search-field input{font-family:inherit}.chip-library{height:calc(100% - 104px)}.chip-button{border-color:transparent;border-radius:2px;font-family:inherit}.inspector-content{color:#ddd}.selected-card{border-color:var(--ui-line);border-radius:2px;background:var(--surface-raised)}.inspector-row{border-color:var(--ui-line-soft)}.inspector-input{border-color:var(--ui-control-border);border-radius:2px;background:var(--surface);font-family:inherit}.inspector-control{border-color:var(--ui-control-border);border-radius:2px;background:var(--ui-control);font-family:inherit}.context-menu{min-width:170px;border-color:var(--ui-light-line);border-radius:2px;background:var(--ui-light-surface);box-shadow:0 8px 22px #00000059}.context-menu-header{border-color:var(--ui-light-line-soft);color:var(--ui-light-text);background:var(--ui-light-surface-raised);font-family:inherit}.context-menu button{border-radius:0;color:var(--ui-light-text);font-family:inherit}.context-menu button:hover{color:#000;background:var(--ui-light-surface-hover)}.bottom-bar{position:fixed;right:0;bottom:0;left:0;z-index:15;display:flex;align-items:center;gap:6px;height:54px;padding:7px 9px;border-top:0;background:#1d1d1f;box-shadow:none}.bottom-menu-button,.bottom-action{flex:0 0 auto;height:38px;padding:0 12px;border:1px solid var(--ui-control-border);border-radius:2px;color:var(--ui-text);background:var(--ui-control);cursor:pointer;font-size:11px}.bottom-menu-button:hover,.bottom-action:hover{background:var(--ui-control-hover)}.bottom-menu-button.active,#app.library-open #bottom-library,#app.inspector-open #bottom-inspector{color:var(--ui-accent-strong);background:var(--ui-control-active)}.bottom-action{height:30px;padding:0 8px;border-color:var(--ui-line);color:var(--ui-muted);background:var(--ui-control);font-size:10px}.bottom-action.hidden{display:none}.collection-tabs{display:flex;min-width:0;flex:1 1 auto;align-items:center;gap:4px;overflow-x:auto;scrollbar-width:thin}.collection-tab{display:inline-flex;min-width:max-content;height:36px;flex:0 0 auto;align-items:center;gap:6px;padding:0 10px;border:1px solid var(--ui-line);border-radius:3px;color:var(--ui-text);background:var(--ui-control);cursor:grab;font-size:10px;white-space:nowrap;-webkit-user-select:none;user-select:none}.collection-tab:hover,.collection-tab.drag-over{background:var(--ui-control-hover)}.collection-tab.dragging{opacity:.45}.collection-tab .collection-caret{width:13px;height:13px;color:var(--ui-muted)}.collection-tab-label{font-weight:600;letter-spacing:.03em}.collection-tab-count{min-width:15px;color:var(--ui-muted);font:9px JetBrains Mono,monospace;text-align:right}.bottom-menu-popup{position:fixed;bottom:60px;left:9px;z-index:16;display:flex;min-width:210px;flex-direction:column;padding:5px;border:1px solid var(--ui-light-line);border-radius:2px;background:var(--ui-light-surface);box-shadow:0 8px 22px #00000061}.bottom-menu-popup button{display:flex;justify-content:space-between;padding:8px 10px;border:0;color:var(--ui-light-text);background:transparent;cursor:pointer;font-size:10px;text-align:left}.bottom-menu-popup button:hover{background:var(--ui-light-surface-hover)}.bottom-menu-popup button.active{color:var(--ui-light-text-strong, #000);background:var(--ui-light-surface-hover)}.bottom-menu-popup button span{margin-left:18px;color:var(--ui-light-muted)}.bottom-menu-popup .menu-item-label{display:inline-flex;align-items:center;gap:7px;margin-left:0;color:var(--ui-light-text)}.bottom-menu-popup .menu-item-label .icon-glyph{width:14px;height:14px}.bottom-menu-popup .menu-divider{flex:0 0 auto;height:1px;margin:5px 4px;background:var(--ui-light-line-soft)}.bottom-menu-popup button>span:not(.menu-item-label){margin-left:18px;color:var(--ui-light-muted)}.collection-popup{position:fixed;bottom:60px;left:84px;z-index:16;display:flex;max-height:calc(100vh - 75px);min-width:180px;flex-direction:column;overflow:auto;padding:5px;border:1px solid var(--ui-light-line);border-radius:2px;background:var(--ui-light-surface);box-shadow:0 8px 22px #00000061}.collection-popup-header{display:flex;justify-content:space-between;gap:18px;padding:7px 9px;border-bottom:1px solid var(--ui-light-line-soft);color:var(--ui-light-text);font-size:9px;font-weight:700}.collection-popup-header>span:last-child{color:var(--ui-light-muted);font:9px JetBrains Mono,monospace}.collection-popup button{display:flex;width:100%;min-width:170px;align-items:center;gap:8px;padding:8px 10px;border:0;color:var(--ui-light-text);background:transparent;cursor:grab;font-size:10px;text-align:left}.collection-popup button:active{cursor:grabbing}.collection-popup button .chip-swatch{flex:0 0 auto;width:8px;height:8px}.collection-popup button .chip-meta{margin-left:auto;color:var(--ui-light-muted);font:9px JetBrains Mono,monospace}.collection-popup button:hover{background:var(--ui-light-surface-hover)}.collection-popup-empty{min-width:170px;padding:10px;color:var(--ui-light-muted);font-size:9px}@media(max-width:760px){.bottom-action{padding:0 6px}.library-panel,.inspector-panel{width:min(285px,calc(100vw - 20px))}}:root{--world: #242629;--surface: #1d1d1f;--surface-raised: #29292c;--surface-hover: #38383b;--surface-active: #4b4b50;--ui-line: #4c4c4f;--ui-line-soft: #3b3b3e;--ui-text: #e7e7e9;--ui-muted: #a6a6aa;--ui-subtle: #85858a;--ui-accent: #d7d7da;--ui-accent-strong: #f5f5f6;--ui-focus: #d4d4d8;--ui-control: #303034;--ui-control-hover: #414144;--ui-control-active: #4b4b50;--ui-control-border: #66666a;--ui-control-border-hover: #919196;--ui-light-surface: #f5f5f5;--ui-light-surface-raised: #d9d9d9;--ui-light-surface-hover: #dedede;--ui-light-line: #929296;--ui-light-line-soft: #d1d1d1;--ui-light-text: #111;--ui-light-muted: #666;--sim-run-border: #5a5a5d;--sim-run-text: #e1e1e4;--sim-run-surface: #2d2d30;--sim-pause-border: #5a5a5d;--sim-pause-text: var(--ui-accent-strong);--sim-pause-surface: var(--ui-control-active);--sim-bake-border: rgb(125 242 168 / 58%);--sim-bake-text: #c9f4d2;--sim-bake-surface: rgb(45 112 66 / 84%);--sim-bake-surface-hover: rgb(57 135 79 / 92%);--sim-bake-active-surface: rgb(35 91 52 / 88%);--sim-bake-active-hover: rgb(47 115 65 / 94%);--ui-warning-border: #a98349;--toolbar-height: 40px;--toolbar-button-height: 30px;--toolbar-surface: rgb(29 29 31 / 90%);--toolbar-border: rgb(255 255 255 / 14%)}body,#app,.canvas-panel,.canvas-wrap{background:var(--world)}button:focus-visible,input:focus-visible{outline:2px solid var(--ui-focus);outline-offset:2px}.topbar{display:none}.project-title input{font-size:11px;font-weight:500}.save-state{display:inline-flex;min-width:58px;height:20px;align-items:center;justify-content:center;gap:5px;padding:0 7px;border:1px solid var(--ui-line-soft);border-radius:0;color:var(--ui-muted);background:#ffffff0a;font-size:8px;line-height:1}.save-state:before{content:"";width:5px;height:5px;flex:0 0 5px;border-radius:50%;background:#87d8a6}.save-state.dirty{border-color:var(--ui-warning-border);color:#ffce68;background:#ffce6814}.save-state.dirty:before{background:#ffce68}.canvas-toolbar{top:14px;right:14px;left:14px;width:auto;min-height:0;align-items:flex-start;justify-content:flex-start;gap:0;opacity:1;pointer-events:none}.canvas-toolbar>.toolbar-project-title{flex:0 1 clamp(220px,24vw,340px);width:clamp(220px,24vw,340px);min-width:0;height:var(--toolbar-height);justify-content:center;gap:0;padding:4px 8px;border:1px solid var(--toolbar-border);border-radius:0 3px 3px 0;background:var(--toolbar-surface);box-shadow:0 4px 14px #00000029;pointer-events:auto}.toolbar-menu-button{display:inline-flex;flex:0 0 62px;width:62px;height:var(--toolbar-height);align-items:center;justify-content:center;padding:0;border:1px solid var(--toolbar-border);border-radius:0;color:var(--ui-text);background:var(--toolbar-surface);box-shadow:0 4px 14px #00000029;cursor:pointer;font:700 9px JetBrains Mono,monospace;letter-spacing:.05em;pointer-events:auto}.toolbar-back-button{display:inline-flex;flex:0 0 62px;width:62px;height:var(--toolbar-height);align-items:center;justify-content:center;padding:0;border:1px solid var(--toolbar-border);border-radius:3px 0 0 3px;color:var(--ui-text);background:var(--toolbar-surface);box-shadow:0 4px 14px #00000029;cursor:pointer;font:700 9px JetBrains Mono,monospace;letter-spacing:.05em;pointer-events:auto}.toolbar-menu-button:hover,.toolbar-menu-button.active,.toolbar-back-button:hover,.toolbar-menu-button:active,.toolbar-back-button:active{color:var(--ui-accent-strong);background:var(--ui-control-active)}.toolbar-menu-button:focus-visible,.toolbar-back-button:focus-visible{outline-color:var(--toolbar-border)}.toolbar-back-button+.toolbar-menu-button,.toolbar-menu-button+.toolbar-project-title{margin-left:-1px}.toolbar-back-button.hidden+.toolbar-menu-button{margin-left:0;border-radius:3px 0 0 3px}.toolbar-project-title .project-name-row{width:100%;min-width:0;height:var(--toolbar-button-height);justify-content:flex-start;gap:6px}.toolbar-project-title input{flex:1 1 auto;width:auto;min-width:0;height:var(--toolbar-button-height);color:var(--ui-accent-strong);font-size:11px;line-height:1;text-align:left}.toolbar-project-title input:focus-visible{outline:0;outline-offset:0}.toolbar-project-title .save-state{flex:0 0 auto;height:20px}.tool-group{gap:0;height:var(--toolbar-height);padding:4px;border:1px solid var(--toolbar-border);border-radius:3px;background:var(--toolbar-surface);box-shadow:0 4px 14px #00000029;pointer-events:auto}.sim-controls{gap:0;height:var(--toolbar-height);padding:0;border:0;border-radius:0;background:transparent;box-shadow:none;pointer-events:auto}.canvas-toolbar>.tool-group{flex:0 0 auto}.canvas-toolbar>.sim-control-stack{flex:0 0 auto;margin-left:auto}.canvas-toolbar>.tool-group{position:fixed;top:50%;left:14px;z-index:4;display:flex;width:auto;height:auto;flex-direction:column;align-items:center;gap:0;padding:0;border:0;border-radius:0;background:transparent;box-shadow:none;opacity:1;pointer-events:auto;transform:translateY(-50%)}.canvas-toolbar>.tool-group .tool-button{display:inline-flex;width:42px;min-width:42px;height:42px;flex:0 0 42px;align-items:center;justify-content:center;gap:0;padding:0}.canvas-toolbar>.tool-group .tool-button>span{display:none}.canvas-toolbar>.tool-group .tool-button .icon-glyph{width:19px;height:19px}.tool-button,.bake-button{display:inline-flex;height:var(--toolbar-button-height);align-items:center;justify-content:center;gap:7px;padding:0 9px;border-radius:2px}.canvas-toolbar #bake-sim{width:82px;min-width:82px;flex:0 0 82px;color:var(--sim-bake-text);border-color:var(--sim-bake-border);background:var(--sim-bake-surface)}.canvas-toolbar #bake-sim.active{color:var(--sim-bake-text);border-color:var(--sim-bake-border);background:var(--sim-bake-active-surface)}.canvas-toolbar #clear-bake{width:72px;min-width:72px;flex:0 0 72px;color:var(--sim-run-text);border-color:var(--sim-run-border);background:var(--sim-run-surface)}.canvas-toolbar #bake-sim:hover{color:#e0f9e5;background:var(--sim-bake-surface-hover)}.canvas-toolbar #bake-sim.active:hover{color:#e0f9e5;background:var(--sim-bake-active-hover)}.canvas-toolbar #clear-bake:hover{color:var(--sim-pause-text);background:var(--ui-control-hover)}.canvas-toolbar .bake-control-group{display:inline-flex;flex:0 0 auto;align-items:center;height:var(--toolbar-height)}.canvas-toolbar .bake-control-group>*+*{margin-left:-1px}.canvas-toolbar .bake-control-group>#bake-sim,.canvas-toolbar .bake-control-group>#clear-bake,.canvas-toolbar .bake-control-group>.step-control-group{border-radius:2px}.canvas-toolbar .step-control-group>.step-scrubber{display:flex;width:clamp(150px,14vw,220px);min-width:150px;height:var(--toolbar-height);flex:0 0 clamp(150px,14vw,220px);align-items:center;padding:0 7px;border-radius:0;border:1px solid #5a5a5d;background:#2d2d30;opacity:1}.canvas-toolbar .step-control-group>.step-scrubber.ready{border-color:#5a5a5d;background:#2d2d30;opacity:1}.canvas-toolbar .step-control-group>.step-scrubber.disabled{opacity:.36}.canvas-toolbar .step-control-group>.step-scrubber input{width:100%;min-width:0}.canvas-toolbar .step-control-group>.step-scrubber input:disabled{opacity:1}.canvas-toolbar .bake-control-group>#bake-sim,.canvas-toolbar .bake-control-group>#clear-bake,.canvas-toolbar .bake-control-group>.step-control-group,.canvas-toolbar .step-control-group>.step-scrubber,.canvas-toolbar .bake-control-group .step-jump-button,.canvas-toolbar .bake-control-group #step-sim{height:var(--toolbar-height)}.canvas-toolbar #bake-sim:disabled,.canvas-toolbar #clear-bake:disabled,.canvas-toolbar #step-sim:disabled{cursor:default;opacity:.36}.canvas-toolbar #bake-sim:disabled:hover{background:var(--sim-bake-surface)}.canvas-toolbar #clear-bake:disabled:hover{background:var(--sim-run-surface)}.canvas-toolbar .sim-controls>*+*{margin-left:-1px}.canvas-toolbar .sim-controls>:first-child{border-radius:2px 0 0 2px}.canvas-toolbar .step-control-group{display:inline-flex;flex:0 0 auto;align-items:center;gap:0}.canvas-toolbar .step-control-group>*+*{margin-left:-1px}.canvas-toolbar .step-control-group>:first-child{border-radius:2px 0 0 2px}.canvas-toolbar .step-control-group>:last-child{border-radius:0 2px 2px 0}.canvas-toolbar .step-jump-button{width:26px;min-width:26px;flex:0 0 26px;padding:0}.canvas-toolbar .step-jump-button .icon-glyph{width:13px;height:13px}.canvas-toolbar .step-jump-button:disabled{cursor:default;opacity:.36}.canvas-toolbar .step-jump-button:disabled:hover{background:#2d2d30}.canvas-toolbar #step-sim{width:84px;min-width:84px;height:var(--toolbar-button-height);flex:0 0 84px;padding:0 7px;border:1px solid var(--ui-control-border);border-radius:0;outline:0;color:var(--ui-accent-strong);background:var(--ui-control);font:600 10px JetBrains Mono,monospace;text-align:center;font-variant-numeric:tabular-nums;-webkit-appearance:textfield;-moz-appearance:textfield;appearance:textfield}.canvas-toolbar #step-sim::-webkit-inner-spin-button,.canvas-toolbar #step-sim::-webkit-outer-spin-button{margin:0;-webkit-appearance:none;-moz-appearance:none;appearance:none}.canvas-toolbar #step-sim:focus{border-color:var(--ui-control-border-hover)}.canvas-toolbar #step-sim:disabled{cursor:default;opacity:.36}.sim-control-stack{pointer-events:auto}.speed-control{height:var(--toolbar-button-height);margin:0;padding:0}.speed-control input{border-radius:0}.library-panel,.inspector-panel{display:flex;flex-direction:column}.panel-header{flex:0 0 auto;align-items:center;padding:14px;border-bottom:0}.library-panel .panel-header h2,.inspector-panel .panel-header h2{margin-top:0}.icon-button{display:inline-flex;width:30px;min-width:30px;height:30px;flex:0 0 30px;align-items:center;justify-content:center;margin:0;padding:0;line-height:0;vertical-align:middle}.icon-button .icon-glyph{width:14px;height:14px;margin:0}.search-field{flex:0 0 auto;height:32px;margin:0 14px 10px;padding:0 9px;border-radius:3px}.search-field:focus-within{border-color:var(--ui-control-border-hover);box-shadow:0 0 0 2px #ffffff1a}.search-icon{flex:0 0 auto;width:14px;height:14px;color:var(--ui-control-border-hover)}.chip-library{flex:1 1 auto;height:auto;min-height:0;padding:0 14px 12px}.library-group{margin-bottom:12px}.library-group-title{margin:10px 2px 5px}.chip-button{min-height:32px;padding:0 8px;border-radius:3px}.chip-button:hover{background:var(--surface-hover)}.inspector-content{flex:1 1 auto;min-height:0;overflow:auto;padding:0 14px 14px}.selected-card{border-color:var(--ui-line);border-radius:3px;background:var(--surface-raised)}.inspector-row{min-height:34px;padding:7px 0}.inspector-control{min-height:32px;margin-top:8px;padding:0 9px;border-radius:3px}.canvas-status{right:0;bottom:56px;left:0;min-height:34px;align-items:center;gap:16px;height:34px;padding:4px 12px;justify-content:flex-start;border-top:0;color:#b7b7bc;background:transparent}.status-message-slot{display:flex;min-width:0;flex:1 1 auto;align-items:center;height:100%;padding:0 2px}.canvas-status #status-message{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.status-readouts{display:flex;flex:0 0 auto;align-items:center;gap:7px}.status-readout{display:flex;width:100%;height:24px;flex:0 0 auto;align-items:center;justify-content:space-between;gap:10px;padding:0 9px;border:1px solid var(--ui-line-soft);border-radius:3px;color:var(--ui-muted);background:#0000002e}.status-coordinate{width:128px}.status-zoom{width:92px}.status-readout-label{color:#85858a;font-size:8px;font-weight:700;letter-spacing:.12em;line-height:1}.status-readout-value{margin:0;color:var(--ui-accent);font:600 10px JetBrains Mono,monospace;text-align:right;white-space:nowrap}.canvas-status #coordinate-readout,.canvas-status #zoom-readout{min-width:0;margin-left:0}.canvas-status .status-button{display:inline-flex;width:52px;height:24px;min-width:52px;flex:0 0 auto;align-items:center;justify-content:center;gap:6px;margin:0;padding:0 9px;border:1px solid var(--ui-line-soft);border-radius:3px;color:var(--ui-accent);background:#0000002e;cursor:pointer;font:700 9px JetBrains Mono,monospace;letter-spacing:.08em;white-space:nowrap}.canvas-status .status-button .icon-glyph{width:13px;height:13px}.canvas-status .status-button:hover{color:var(--ui-accent-strong);background:#00000047}.canvas-status .status-button.active{color:var(--ui-accent-strong);background:var(--ui-control-active)}.canvas-status #xray-toggle{width:70px;min-width:70px}.canvas-status .status-speed-control{display:flex;width:142px;min-width:142px;height:24px;flex:0 0 142px;align-items:center;gap:7px;margin:0;padding:0 8px;border:1px solid var(--ui-line-soft);border-radius:3px;color:var(--ui-muted);background:#0000002e}.canvas-status .status-speed-control .status-readout-label{flex:0 0 auto}.canvas-status .status-speed-control .speed-input-shell{width:auto;min-width:0;height:100%;flex:1 1 auto}.canvas-status .status-speed-control input{width:100%;height:100%;padding:0 42px 0 0;border-color:transparent;border-radius:2px;color:var(--ui-accent);background:transparent;text-align:right}.canvas-status .status-speed-control input:focus{border-color:var(--ui-control-border-hover)}.canvas-status .status-speed-control .speed-unit{right:0;color:var(--ui-muted)}.canvas-inspect-button{position:absolute;z-index:5;display:flex;width:24px;height:24px;align-items:center;justify-content:center;padding:0;border:1px solid var(--ui-control-border-hover);border-radius:50%;color:var(--ui-accent-strong);background:var(--ui-control-active);box-shadow:0 3px 10px #0000004d;cursor:pointer;font:700 14px/1 Georgia,serif;line-height:0;transform:translate(-50%,-50%)}.canvas-inspect-button:hover{background:#606064;transform:translate(-50%,-50%) scale(1.08)}.canvas-inspect-button .icon-glyph{width:15px;height:15px;stroke-width:2}.bottom-bar{height:56px;gap:8px;padding:8px 12px}.bottom-menu-button,.bottom-action{border-radius:3px}.bottom-menu-button{min-width:70px;height:38px;padding:0 12px;letter-spacing:.05em}.bottom-action{height:32px}.bottom-library-button{min-width:104px;height:36px;gap:6px;padding:0 10px;border-color:var(--ui-control-border);color:var(--ui-accent-strong);background:var(--surface-hover);font-size:10px;font-weight:600;letter-spacing:.03em}.bottom-library-button:hover,#app.library-open .bottom-library-button{color:var(--ui-accent-strong);background:var(--ui-control-active)}.collection-tabs{gap:4px;min-height:38px;padding:0 2px}.collection-tab{height:36px;border-radius:3px;touch-action:none}.collection-caret{width:14px;height:14px;margin-right:8px;color:var(--ui-muted)}.bottom-menu-popup,.collection-popup{bottom:64px;border-radius:3px}.bottom-menu-popup{top:58px;right:auto;bottom:auto;left:14px}.bottom-menu-popup button,.collection-popup button{min-height:30px;border-radius:2px}.context-menu{border-radius:3px}@media(max-width:760px){.canvas-toolbar{top:8px;right:8px;left:8px;gap:0}.toolbar-menu-button,.toolbar-back-button{flex-basis:58px;width:58px}.canvas-toolbar>.toolbar-project-title{flex-basis:200px;width:200px}.sim-controls,.sim-control-stack{max-width:100%;overflow:hidden}.speed-input-shell{width:78px;flex-basis:78px}.step-scrubber{min-width:0}.bottom-menu-popup{top:52px;left:8px}.bottom-bar{gap:4px;padding:8px}.bottom-menu-button{min-width:62px;padding:0 8px}.bottom-library-button{min-width:96px}.help-modal{padding:16px}.help-shortcuts{grid-template-columns:1fr;gap:16px}.help-guidance-grid,.help-meta-grid,.help-example-groups{grid-template-columns:1fr}.canvas-status{gap:8px;padding:4px 8px}.status-readouts{gap:5px}.status-readout{gap:6px;padding:0 7px}.status-coordinate{width:112px}.status-zoom{width:82px}.canvas-status .status-button{width:48px;min-width:48px;padding:0 7px}.canvas-status #xray-toggle{width:70px;min-width:70px}.canvas-status .status-speed-control{width:132px;min-width:132px;flex-basis:132px}}
