:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--c-bg:#14161a;--c-bg-sunken:#101216;--c-panel:#1b1e24;--c-panel-raised:#21252c;--c-panel-overlay:#272c34;--c-input:#0f1115;--c-hover:#ffffff0a;--c-active:#ffffff14;--c-selected:#4cc2ff24;--c-border:#2a2f37;--c-border-strong:#3a414b;--c-border-subtle:#21252c;--c-fg:#e6e8ec;--c-fg-secondary:#9aa0a8;--c-fg-muted:#6b7178;--c-fg-on-accent:#06222e;--c-accent:#4cc2ff;--c-accent-hover:#6dceff;--c-accent-active:#38b4f5;--c-accent-soft:#4cc2ff24;--c-accent-border:#4cc2ff73;--c-success:#4ade80;--c-success-soft:#4ade8024;--c-warning:#fbbf57;--c-warning-soft:#fbbf5724;--c-error:#ff6b6b;--c-error-soft:#ff6b6b24;--c-info:var(--c-accent);--r-xs:3px;--r-sm:5px;--r-md:8px;--r-lg:12px;--r-full:999px;--sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;--sp-5:20px;--sp-6:24px;--sp-8:32px;--font-ui:-apple-system, BlinkMacSystemFont, "Segoe UI", "Inter", system-ui, "PingFang SC", "Microsoft YaHei", sans-serif;--font-mono:"SF Mono", "JetBrains Mono", "Fira Code", ui-monospace, "Cascadia Code", "Roboto Mono", monospace;--fs-xs:11px;--fs-sm:12px;--fs-md:13px;--fs-lg:15px;--fs-xl:18px;--lh-tight:1.3;--lh-normal:1.5;--shadow-sm:0 1px 2px #0000004d;--shadow-md:0 4px 12px #00000059;--shadow-lg:0 12px 32px #00000073;--shadow-popover:0 8px 24px #00000080;--z-base:0;--z-toolbar:10;--z-panel-resizer:20;--z-overlay:100;--z-popover:200;--z-modal:300;--z-toast:400;--ease-out:cubic-bezier(.22, 1, .36, 1);--ease-in-out:cubic-bezier(.65, 0, .35, 1);--dur-fast:.11s;--dur-base:.18s;--control-h:26px;--control-h-sm:22px;--toolbar-h:40px;--titlebar-h:44px}*,:before,:after{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font-family:var(--font-ui);font-size:var(--fs-md);line-height:var(--lh-normal);color:var(--c-fg);background:var(--c-bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;overflow:hidden}#root{flex-direction:column;display:flex}button{font-family:inherit;font-size:inherit;color:inherit}input,textarea,select{font-family:inherit}::selection{background:var(--c-accent-soft)}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--c-border-strong);border-radius:var(--r-full);background-clip:content-box;border:2px solid #0000}::-webkit-scrollbar-thumb:hover{background:var(--c-fg-muted);background-clip:content-box}:focus-visible{outline:2px solid var(--c-accent);outline-offset:1px}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.001ms!important;animation-duration:.001ms!important}}.ui-btn{justify-content:center;align-items:center;gap:var(--sp-1);height:var(--control-h);padding:0 var(--sp-3);border:1px solid var(--c-border);border-radius:var(--r-sm);background:var(--c-panel-raised);color:var(--c-fg-secondary);font-family:var(--font-ui);font-size:var(--fs-sm);cursor:pointer;transition:background var(--dur-fast), color var(--dur-fast), border-color var(--dur-fast);white-space:nowrap;-webkit-user-select:none;user-select:none;font-weight:500;display:inline-flex}.ui-btn:hover:not(:disabled){background:var(--c-hover);color:var(--c-fg);border-color:var(--c-border-strong)}.ui-btn:active:not(:disabled){background:var(--c-active)}.ui-btn:disabled{opacity:.4;cursor:not-allowed}.ui-btn--primary{background:var(--c-accent);color:var(--c-fg-on-accent);border-color:#0000;font-weight:600}.ui-btn--primary:hover:not(:disabled){background:var(--c-accent-hover);color:var(--c-fg-on-accent);border-color:#0000}.ui-btn--primary:active:not(:disabled){background:var(--c-accent-active)}.ui-btn--ghost{color:var(--c-fg-secondary);background:0 0;border-color:#0000}.ui-btn--ghost:hover:not(:disabled){background:var(--c-hover);color:var(--c-fg);border-color:#0000}.ui-btn--danger{border-color:var(--c-error);color:var(--c-error);background:var(--c-error-soft)}.ui-btn--danger:hover:not(:disabled){background:var(--c-error);color:#fff}.ui-btn--sm{height:var(--control-h-sm);padding:0 var(--sp-2);font-size:var(--fs-xs)}.ui-btn--lg{height:32px;padding:0 var(--sp-4);font-size:var(--fs-md)}.ui-btn-icon{align-items:center;font-size:14px;line-height:1;display:flex}.ui-icon-btn{width:var(--control-h);height:var(--control-h);border-radius:var(--r-sm);color:var(--c-fg-muted);cursor:pointer;transition:background var(--dur-fast), color var(--dur-fast);-webkit-user-select:none;user-select:none;background:0 0;border:none;justify-content:center;align-items:center;padding:0;font-size:15px;line-height:1;display:inline-flex}.ui-icon-btn:hover:not(:disabled){background:var(--c-hover);color:var(--c-fg)}.ui-icon-btn:active:not(:disabled){background:var(--c-active)}.ui-icon-btn--active{color:var(--c-accent);background:var(--c-accent-soft)}.ui-icon-btn--active:hover:not(:disabled){background:var(--c-accent-soft);color:var(--c-accent-hover)}.ui-icon-btn--sm{width:var(--control-h-sm);height:var(--control-h-sm);font-size:13px}.ui-icon-btn--lg{width:32px;height:32px;font-size:17px}.ui-panel{background:var(--c-panel);flex-direction:column;height:100%;display:flex;overflow:hidden}.ui-panel__head{height:var(--toolbar-h);padding:0 var(--sp-3);align-items:center;gap:var(--sp-2);border-bottom:1px solid var(--c-border);flex:none;display:flex}.ui-panel__title{font-size:var(--fs-xs);color:var(--c-fg-muted);text-transform:uppercase;letter-spacing:.07em;white-space:nowrap;text-overflow:ellipsis;flex:1;font-weight:600;overflow:hidden}.ui-panel__actions{align-items:center;gap:var(--sp-1);display:flex}.ui-panel__body{flex:1;position:relative;overflow:hidden}.ui-panel__scroll{height:100%;padding:var(--sp-3);overflow:hidden auto}.ui-panel__scroll::-webkit-scrollbar{width:6px}.ui-panel__scroll::-webkit-scrollbar-track{background:0 0}.ui-panel__scroll::-webkit-scrollbar-thumb{background:var(--c-border);border-radius:var(--r-full)}.ui-tabs{border-bottom:1px solid var(--c-border);align-items:flex-end;gap:0;display:flex}.ui-tab{align-items:center;gap:var(--sp-1);height:var(--toolbar-h);padding:0 var(--sp-3);color:var(--c-fg-muted);font-family:var(--font-ui);font-size:var(--fs-sm);cursor:pointer;transition:color var(--dur-fast);-webkit-user-select:none;user-select:none;white-space:nowrap;background:0 0;border:none;border-bottom:2px solid #0000;margin-bottom:-1px;display:inline-flex;position:relative}.ui-tab:hover{color:var(--c-fg-secondary)}.ui-tab--active{color:var(--c-fg);border-bottom-color:var(--c-accent)}.ui-tab__icon{font-size:13px;line-height:1}.ui-field{flex-direction:column;gap:3px;display:flex}.ui-field__label-row{justify-content:space-between;align-items:baseline;gap:var(--sp-2);display:flex}.ui-field__label{font-size:var(--fs-xs);color:var(--c-fg-muted);letter-spacing:.02em;font-weight:500}.ui-field__hint{font-size:var(--fs-xs);color:var(--c-fg-muted);opacity:.7}.ui-num{height:var(--control-h);padding:0 var(--sp-2);background:var(--c-input);border:1px solid var(--c-border);border-radius:var(--r-xs);color:var(--c-fg);font-family:var(--font-mono);font-size:var(--fs-sm);text-align:right;width:64px;transition:border-color var(--dur-fast);display:inline-block}.ui-num:focus{border-color:var(--c-accent-border);outline:none}.ui-num:hover:not(:focus){border-color:var(--c-border-strong)}.ui-slider-row{align-items:center;gap:var(--sp-2);display:flex}.ui-slider{appearance:none;border-radius:var(--r-full);background:var(--c-border);cursor:pointer;outline:none;flex:1;height:4px}.ui-slider::-webkit-slider-thumb{appearance:none;background:var(--c-accent);cursor:pointer;width:12px;height:12px;box-shadow:var(--shadow-sm);transition:transform var(--dur-fast);border:none;border-radius:50%}.ui-slider::-webkit-slider-thumb:hover{transform:scale(1.2)}.ui-slider::-moz-range-thumb{background:var(--c-accent);cursor:pointer;border:none;border-radius:50%;width:12px;height:12px}.ui-slider::-webkit-slider-runnable-track{background:linear-gradient(to right, var(--c-accent) 0%, var(--c-accent) var(--slider-pct,50%), var(--c-border) var(--slider-pct,50%), var(--c-border) 100%);border-radius:var(--r-full);height:4px}.ui-slider:focus-visible::-webkit-slider-thumb{box-shadow:0 0 0 3px var(--c-accent-soft)}.ui-vec{gap:var(--sp-1);display:flex}.ui-vec__item{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.ui-vec__item-label{color:var(--c-fg-muted);text-align:center;letter-spacing:.04em;text-transform:uppercase;font-size:10px;font-weight:600}.ui-vec__item .ui-num{text-align:center;width:100%}.ui-color{align-items:center;gap:var(--sp-2);display:flex}.ui-color__swatch-wrap{width:36px;height:var(--control-h);border-radius:var(--r-sm);border:1px solid var(--c-border);flex-shrink:0;position:relative;overflow:hidden}.ui-color__swatch-preview{pointer-events:none;border-radius:calc(var(--r-sm) - 1px);position:absolute;inset:0}.ui-color__native{opacity:0;cursor:pointer;border:none;width:100%;height:100%;padding:0;position:absolute;inset:0}.ui-color__alpha-wrap{align-items:center;gap:var(--sp-1);display:flex}.ui-color__alpha-label{font-size:var(--fs-xs);color:var(--c-fg-muted);font-family:var(--font-mono)}.ui-select{height:var(--control-h);padding:0 var(--sp-2);background:var(--c-input);border:1px solid var(--c-border);border-radius:var(--r-sm);color:var(--c-fg);font-family:var(--font-ui);font-size:var(--fs-sm);cursor:pointer;appearance:none;transition:border-color var(--dur-fast);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath d='M0 0l5 6 5-6z' fill='%236b7178'/%3E%3C/svg%3E");background-position:right 8px center;background-repeat:no-repeat;padding-right:24px}.ui-select:focus{border-color:var(--c-accent-border);outline:none}.ui-select:hover{border-color:var(--c-border-strong)}.ui-toggle{align-items:center;gap:var(--sp-2);cursor:pointer;-webkit-user-select:none;user-select:none;display:inline-flex}.ui-toggle__input{flex-shrink:0;width:30px;height:16px;display:inline-block;position:relative}.ui-toggle__input input{opacity:0;width:0;height:0;position:absolute}.ui-toggle__track{background:var(--c-border-strong);border-radius:var(--r-full);transition:background var(--dur-fast);position:absolute;inset:0}.ui-toggle__input input:checked~.ui-toggle__track{background:var(--c-accent)}.ui-toggle__thumb{width:12px;height:12px;transition:transform var(--dur-fast);background:#fff;border-radius:50%;position:absolute;top:2px;left:2px}.ui-toggle__input input:checked~.ui-toggle__thumb{transform:translate(14px)}.ui-toggle__input input:focus-visible~.ui-toggle__track{box-shadow:0 0 0 2px var(--c-accent-soft)}.ui-toggle__label{font-size:var(--fs-sm);color:var(--c-fg-secondary)}.ui-seg{height:var(--control-h);background:var(--c-input);border:1px solid var(--c-border);border-radius:var(--r-sm);gap:2px;padding:2px;display:inline-flex;overflow:hidden}.ui-seg__opt{padding:0 var(--sp-2);border-radius:calc(var(--r-sm) - 2px);color:var(--c-fg-muted);font-family:var(--font-ui);font-size:var(--fs-xs);cursor:pointer;transition:background var(--dur-fast), color var(--dur-fast);white-space:nowrap;-webkit-user-select:none;user-select:none;background:0 0;border:none;flex:1;justify-content:center;align-items:center;font-weight:500;display:inline-flex}.ui-seg__opt:hover:not(.ui-seg__opt--active){color:var(--c-fg-secondary);background:var(--c-hover)}.ui-seg__opt--active{background:var(--c-panel-raised);color:var(--c-fg);border:1px solid var(--c-border)}.ui-shader-slot{align-items:center;gap:var(--sp-1);width:100%;display:flex}.ui-shader-slot__btn{min-width:0;height:var(--control-h);align-items:center;gap:var(--sp-2);padding:0 var(--sp-2);background:var(--c-input);border:1px solid var(--c-border);border-radius:var(--r-sm);cursor:pointer;font-family:var(--font-ui);font-size:var(--fs-sm);transition:border-color var(--dur-fast), background var(--dur-fast);text-align:left;flex:1;display:flex;overflow:hidden}.ui-shader-slot__btn:hover{border-color:var(--c-border-strong);background:var(--c-hover)}.ui-shader-slot__icon{color:var(--c-fg-muted);flex-shrink:0;font-size:11px}.ui-shader-slot__label{white-space:nowrap;text-overflow:ellipsis;font-size:var(--fs-sm);flex:1;overflow:hidden}.ui-shader-slot__label--bound{color:var(--c-fg)}.ui-shader-slot__label--none{color:var(--c-fg-muted);font-style:italic}.ui-shader-slot__clear{width:var(--control-h);height:var(--control-h);border-radius:var(--r-sm);color:var(--c-fg-muted);cursor:pointer;transition:color var(--dur-fast), background var(--dur-fast);background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;font-size:13px;display:inline-flex}.ui-shader-slot__clear:hover{color:var(--c-error);background:var(--c-error-soft)}.ui-dropzone{justify-content:center;align-items:center;gap:var(--sp-2);padding:var(--sp-4);border:2px dashed var(--c-border);border-radius:var(--r-md);background:var(--c-bg-sunken);cursor:pointer;transition:border-color var(--dur-fast), background var(--dur-fast);text-align:center;outline:none;flex-direction:column;min-height:72px;display:flex}.ui-dropzone:hover,.ui-dropzone--drag-over{border-color:var(--c-accent-border);background:var(--c-accent-soft)}.ui-dropzone--drag-over{border-style:solid}.ui-dropzone__hint{font-size:var(--fs-sm);color:var(--c-fg-muted);pointer-events:none}.ui-dropzone__hint strong{color:var(--c-accent);font-weight:600}.ui-dropzone__input{display:none}.ui-badge{align-items:center;gap:var(--sp-1);padding:2px var(--sp-2);border-radius:var(--r-full);font-family:var(--font-ui);font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.04em;-webkit-user-select:none;user-select:none;font-weight:600;display:inline-flex}.ui-badge__dot{border-radius:50%;flex-shrink:0;width:6px;height:6px}.ui-badge--idle{color:var(--c-fg-muted);background:var(--c-hover)}.ui-badge--idle .ui-badge__dot{background:var(--c-fg-muted)}.ui-badge--compiling{color:var(--c-warning);background:var(--c-warning-soft);animation:1.2s ease-in-out infinite badge-pulse}.ui-badge--compiling .ui-badge__dot{background:var(--c-warning);animation:1.2s ease-in-out infinite badge-pulse}.ui-badge--ok{color:var(--c-success);background:var(--c-success-soft)}.ui-badge--ok .ui-badge__dot{background:var(--c-success)}.ui-badge--error{color:var(--c-error);background:var(--c-error-soft)}.ui-badge--error .ui-badge__dot{background:var(--c-error)}@keyframes badge-pulse{0%,to{opacity:1}50%{opacity:.5}}.ui-tooltip-popup{background:var(--c-panel-overlay);color:var(--c-fg);font-size:var(--fs-xs);padding:4px var(--sp-2);border-radius:var(--r-sm);border:1px solid var(--c-border);box-shadow:var(--shadow-popover);pointer-events:none;max-width:240px;z-index:var(--z-popover);line-height:var(--lh-normal);animation:tooltip-in var(--dur-fast) var(--ease-out)}@keyframes tooltip-in{0%{opacity:0;transform:translateY(-2px)}to{opacity:1;transform:translateY(0)}}.titlebar{height:var(--titlebar-h);align-items:center;gap:var(--sp-3);padding:0 var(--sp-3);background:var(--c-panel);border-bottom:1px solid var(--c-border);flex:none;display:flex;position:relative}.tb-brand{align-items:baseline;gap:var(--sp-2);display:flex}.tb-mark{color:var(--c-accent);font-size:var(--fs-lg);align-self:center}.tb-name{font-size:var(--fs-lg);color:var(--c-fg);letter-spacing:.01em;font-weight:700}.tb-sub{font-size:var(--fs-xs);color:var(--c-fg-muted);text-transform:uppercase;letter-spacing:.08em}.tb-divider{background:var(--c-border);flex:none;width:1px;height:18px}.tb-doc{appearance:none;font-family:inherit;font-size:var(--fs-md);color:var(--c-fg-secondary);padding:var(--sp-1) var(--sp-3);border-radius:var(--r-sm);background:var(--c-input);cursor:text;white-space:nowrap;text-overflow:ellipsis;max-width:260px;transition:color var(--dur-fast) var(--ease-out), border-color var(--dur-fast) var(--ease-out);border:1px solid #0000;overflow:hidden}.tb-doc:hover{color:var(--c-fg);border-color:var(--c-border-strong)}.tb-doc-input{font-family:inherit;font-size:var(--fs-md);color:var(--c-fg);padding:var(--sp-1) var(--sp-3);border-radius:var(--r-sm);background:var(--c-input);border:1px solid var(--c-accent-border);outline:none;min-width:160px;max-width:260px}.tb-doc-input:focus{border-color:var(--c-accent);box-shadow:0 0 0 2px var(--c-accent-soft)}.tb-actions{align-items:center;gap:var(--sp-2);display:flex}.tb-menu-trigger{appearance:none;height:var(--control-h-sm);padding:0 var(--sp-2);font-family:inherit;font-size:var(--fs-sm);color:var(--c-fg);background:var(--c-panel-raised);border:1px solid var(--c-border);border-radius:var(--r-sm);cursor:pointer;transition:background var(--dur-fast) var(--ease-out), border-color var(--dur-fast) var(--ease-out);align-items:center;gap:6px;font-weight:500;display:inline-flex}.tb-menu-trigger:hover{background:var(--c-active);border-color:var(--c-border-strong)}.tb-menu-trigger[data-popup-open]{background:var(--c-active);border-color:var(--c-accent-border)}.tb-caret{color:var(--c-fg-muted);margin-left:1px;font-size:9px}.tb-file-input{display:none}.tb-menu-positioner{z-index:var(--z-popover);outline:none}.tb-menu{min-width:280px;max-width:340px;max-height:min(70vh,560px);padding:var(--sp-1);background:var(--c-panel-overlay);border:1px solid var(--c-border-strong);border-radius:var(--r-md);box-shadow:var(--shadow-popover);animation:tb-menu-in var(--dur-fast) var(--ease-out);outline:none;overflow-y:auto}@keyframes tb-menu-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.tb-menu-group+.tb-menu-group{margin-top:var(--sp-1);padding-top:var(--sp-1);border-top:1px solid var(--c-border-subtle)}.tb-menu-group-label{padding:var(--sp-1) var(--sp-2);font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.06em;color:var(--c-fg-muted);font-weight:600;display:block}.tb-menu-item{padding:var(--sp-2);border-radius:var(--r-sm);cursor:pointer;-webkit-user-select:none;user-select:none;outline:none;flex-direction:column;gap:2px;display:flex}.tb-menu-item[data-highlighted],.tb-menu-item:hover{background:var(--c-selected)}.tb-menu-item-name{font-size:var(--fs-sm);color:var(--c-fg);font-weight:600}.tb-menu-item-desc{font-size:var(--fs-xs);line-height:var(--lh-tight);color:var(--c-fg-muted)}.tb-menu-item[data-highlighted] .tb-menu-item-desc,.tb-menu-item:hover .tb-menu-item-desc{color:var(--c-fg-secondary)}.tb-error{align-items:center;gap:var(--sp-2);max-width:420px;padding:var(--sp-1) var(--sp-2);font-size:var(--fs-xs);color:var(--c-error);background:var(--c-error-soft);border:1px solid var(--c-error);border-radius:var(--r-sm);display:flex}.tb-error-icon{border-radius:var(--r-full);background:var(--c-error);width:14px;height:14px;color:var(--c-bg);flex:none;justify-content:center;align-items:center;font-weight:700;display:inline-flex}.tb-error-msg{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.tb-error-close{appearance:none;color:var(--c-error);cursor:pointer;font-size:var(--fs-xs);opacity:.8;background:0 0;border:none;padding:0 2px}.tb-error-close:hover{opacity:1}.tb-stats{align-items:center;gap:var(--sp-3);display:flex}.tb-stat{font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--c-fg-muted)}.tb-pill{font-size:var(--fs-xs);padding:2px var(--sp-2);border-radius:var(--r-full);text-transform:uppercase;letter-spacing:.04em;font-weight:600}.tb-pill--ok{color:var(--c-success);background:var(--c-success-soft)}.tb-pill--error{color:var(--c-error);background:var(--c-error-soft)}.tb-pill--compiling,.tb-pill--idle{color:var(--c-fg-muted);background:var(--c-hover)}.editor-panel{background:var(--c-panel)}.editor-head{gap:var(--sp-2)}.editor-head-title{flex:none}.editor-node-name{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:0;text-transform:none;color:var(--c-fg-muted);flex:0 auto;font-weight:400;overflow:hidden}.editor-node-name:before{content:"/";margin-right:var(--sp-2);color:var(--c-border-strong)}.compile-pill{align-items:center;gap:var(--sp-1);height:var(--control-h-sm);padding:0 var(--sp-2);border-radius:var(--r-full);border:1px solid var(--c-border);background:var(--c-panel-raised);font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:0;text-transform:none;color:var(--c-fg-secondary);flex:none;font-weight:500;display:inline-flex}.compile-dot{border-radius:var(--r-full);background:var(--c-fg-muted);width:6px;height:6px}.compile-pill--ok{color:var(--c-success);border-color:var(--c-success-soft);background:var(--c-success-soft)}.compile-pill--ok .compile-dot{background:var(--c-success)}.compile-pill--error{color:var(--c-error);border-color:var(--c-error-soft);background:var(--c-error-soft)}.compile-pill--error .compile-dot{background:var(--c-error)}.compile-pill--compiling{color:var(--c-accent);border-color:var(--c-accent-border);background:var(--c-accent-soft)}.compile-pill--compiling .compile-dot{background:var(--c-accent);animation:compile-pulse 1s var(--ease-in-out) infinite}@keyframes compile-pulse{0%,to{opacity:1}50%{opacity:.3}}.editor-host{overflow:hidden}.editor-host .cm-editor{height:100%}.editor-host .cm-editor.cm-focused{outline:none}.editor-host .cm-scroller{overflow:auto}.preview-panel{background:var(--c-bg-sunken)}.preview-toolbar{text-transform:none;color:var(--c-fg-secondary);gap:var(--sp-1);font-weight:400}.tbtn{height:var(--control-h);min-width:var(--control-h);padding:0 var(--sp-2);border:1px solid var(--c-border);background:var(--c-panel-raised);color:var(--c-fg-secondary);border-radius:var(--r-sm);cursor:pointer;font-size:var(--fs-sm);justify-content:center;align-items:center;display:inline-flex}.tbtn:hover{background:var(--c-hover);color:var(--c-fg);border-color:var(--c-border-strong)}.tbar-select{height:var(--control-h);background:var(--c-input);color:var(--c-fg);border:1px solid var(--c-border);border-radius:var(--r-sm);font-size:var(--fs-sm);padding:0 var(--sp-1)}.tbar-sep{background:var(--c-border);width:1px;height:18px;margin:0 var(--sp-1)}.tbar-readout{font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--c-fg-muted);text-align:center;min-width:38px}.preview-viewport{flex:auto;justify-content:center;align-items:center;min-height:0;display:flex;position:relative;overflow:hidden}.preview-viewport.bg-checker,.preview-viewport.bg-transparent{background-color:var(--c-bg-sunken);background-image:linear-gradient(45deg,#20242b 25%,#0000 25%),linear-gradient(-45deg,#20242b 25%,#0000 25%),linear-gradient(45deg,#0000 75%,#20242b 75%),linear-gradient(-45deg,#0000 75%,#20242b 75%);background-position:0 0,0 11px,11px -11px,-11px 0;background-size:22px 22px}.preview-viewport.bg-transparent{background-image:none}.preview-viewport.bg-black{background:#000}.preview-viewport.bg-white{background:#fff}.preview-stage{max-width:88%;max-height:88%;box-shadow:var(--shadow-lg);will-change:transform;display:flex}.preview-canvas{width:auto;max-width:100%;height:auto;max-height:100%;display:block}.inspector{background:var(--c-panel);flex-direction:column;height:100%;min-height:0;display:flex}.inspector__tabs{padding:0 var(--sp-2);flex:none}.inspector__tabs .ui-tab{padding:0 var(--sp-1);flex:1;justify-content:center}.inspector__body{min-height:0;padding:var(--sp-3);flex:auto;overflow:hidden auto}.inspector__body::-webkit-scrollbar{width:6px}.inspector__body::-webkit-scrollbar-track{background:0 0}.inspector__body::-webkit-scrollbar-thumb{background:var(--c-border);border-radius:var(--r-full)}.insp-tab{gap:var(--sp-3);flex-direction:column;display:flex}.insp-tab__head{justify-content:space-between;align-items:center;gap:var(--sp-2);display:flex}.insp-tab__count{font-size:var(--fs-xs);color:var(--c-fg-muted);text-transform:uppercase;letter-spacing:.06em}.insp-empty{color:var(--c-fg-muted);font-size:var(--fs-sm);line-height:var(--lh-normal);padding:var(--sp-2) 0}.insp-note{color:var(--c-fg-muted);font-size:var(--fs-xs);line-height:var(--lh-normal)}.insp-note code{font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--c-fg-secondary);background:var(--c-input);border-radius:var(--r-xs);padding:1px 4px}.insp-sub{gap:var(--sp-2);flex-direction:column;display:flex}.insp-sub__title{font-size:var(--fs-xs);color:var(--c-fg-muted);text-transform:uppercase;letter-spacing:.07em;padding-bottom:var(--sp-1);border-bottom:1px solid var(--c-border-subtle);font-weight:600}.insp-actions{gap:var(--sp-2);flex-wrap:wrap;display:flex}.insp-group{flex-direction:column;display:flex}.insp-group__head{align-items:center;gap:var(--sp-2);width:100%;height:var(--control-h);padding:0 var(--sp-1);cursor:pointer;text-align:left;color:var(--c-accent);background:0 0;border:none;display:flex}.insp-group__chevron{color:var(--c-fg-muted);transition:transform var(--dur-fast) var(--ease-out);font-size:10px}.insp-group__chevron.is-open{transform:rotate(90deg)}.insp-group__title{font-size:var(--fs-xs);color:var(--c-accent);text-transform:uppercase;letter-spacing:.06em;white-space:nowrap;text-overflow:ellipsis;flex:1;font-weight:600;overflow:hidden}.insp-group__count{color:var(--c-fg-muted);font-size:10px;font-family:var(--font-mono)}.insp-group__body{gap:var(--sp-2);padding-top:var(--sp-1);flex-direction:column;display:flex}.uni-row{gap:var(--sp-1);padding:var(--sp-2);background:var(--c-panel-raised);border:1px solid var(--c-border-subtle);border-radius:var(--r-sm);flex-direction:column;display:flex}.uni-row__label{justify-content:space-between;align-items:baseline;gap:var(--sp-2);min-width:0;display:flex}.uni-row__name{font-size:var(--fs-md);color:var(--c-fg);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.uni-row__type{font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--c-fg-muted);flex:none}.uni-row__control{min-width:0}.uni-row__control--auto{align-items:center;gap:var(--sp-2);display:flex}.uni-auto-badge{text-transform:uppercase;letter-spacing:.05em;color:var(--c-fg-muted);background:var(--c-hover);border-radius:var(--r-xs);padding:1px var(--sp-1);flex:none;font-size:10px;font-weight:600}.uni-auto-val{font-family:var(--font-mono);font-size:var(--fs-sm);color:var(--c-fg-secondary)}.child-slot{gap:var(--sp-1);padding:var(--sp-2);background:var(--c-panel-raised);border:1px solid var(--c-border-subtle);border-radius:var(--r-sm);flex-direction:column;display:flex}.child-slot__name{justify-content:space-between;align-items:baseline;gap:var(--sp-2);display:flex}.child-slot__picker-wrap{position:relative}.insp-picker__backdrop{z-index:var(--z-popover);position:fixed;inset:0}.insp-picker{z-index:calc(var(--z-popover) + 1);max-height:240px;padding:var(--sp-1);background:var(--c-panel-overlay);border:1px solid var(--c-border);border-radius:var(--r-sm);box-shadow:var(--shadow-popover);animation:insp-pop-in var(--dur-fast) var(--ease-out);flex-direction:column;display:flex;position:absolute;top:calc(100% + 4px);left:0;right:0;overflow-y:auto}@keyframes insp-pop-in{0%{opacity:0;transform:translateY(-3px)}to{opacity:1;transform:translateY(0)}}.insp-picker__opt{justify-content:space-between;align-items:center;gap:var(--sp-2);width:100%;height:var(--control-h);padding:0 var(--sp-2);border-radius:var(--r-xs);cursor:pointer;text-align:left;color:var(--c-fg-secondary);font-family:var(--font-ui);font-size:var(--fs-sm);background:0 0;border:none;display:flex}.insp-picker__opt:hover{background:var(--c-hover);color:var(--c-fg)}.insp-picker__opt.is-active{background:var(--c-accent-soft);color:var(--c-accent)}.insp-picker__opt-label{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.insp-picker__opt-label--none{color:var(--c-fg-muted);font-style:italic}.insp-picker__opt-type{font-family:var(--font-mono);color:var(--c-fg-muted);flex:none;font-size:10px}.insp-picker__empty{padding:var(--sp-2);font-size:var(--fs-xs);color:var(--c-fg-muted)}.node-list{gap:var(--sp-1);flex-direction:column;display:flex}.node-item{align-items:center;gap:var(--sp-2);padding:var(--sp-1) var(--sp-2);min-height:var(--control-h);background:var(--c-panel-raised);border:1px solid var(--c-border-subtle);border-radius:var(--r-sm);cursor:pointer;transition:border-color var(--dur-fast), background var(--dur-fast);outline:none;display:flex}.node-item:hover{border-color:var(--c-border-strong);background:var(--c-hover)}.node-item:focus-visible{border-color:var(--c-accent-border)}.node-item--active{border-color:var(--c-accent-border);background:var(--c-selected)}.node-item__main{align-items:baseline;gap:var(--sp-2);flex:1;min-width:0;display:flex}.node-item__name{font-size:var(--fs-sm);color:var(--c-fg);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.node-item__type{font-family:var(--font-mono);color:var(--c-fg-muted);flex:none;font-size:10px}.node-item__badge{text-transform:uppercase;letter-spacing:.04em;color:var(--c-accent);background:var(--c-accent-soft);border-radius:var(--r-xs);padding:1px var(--sp-1);flex:none;font-size:10px;font-weight:600}.node-item__remove{border-radius:var(--r-xs);width:20px;height:20px;color:var(--c-fg-muted);cursor:pointer;transition:color var(--dur-fast), background var(--dur-fast);background:0 0;border:none;flex:none;justify-content:center;align-items:center;font-size:14px;line-height:1;display:inline-flex}.node-item__remove:hover{color:var(--c-error);background:var(--c-error-soft)}.node-editor{gap:var(--sp-3);flex-direction:column;display:flex}.node-editor__thumb-row{align-items:center;gap:var(--sp-3);display:flex}.node-editor__thumb{border-radius:var(--r-sm);border:1px solid var(--c-border);background-color:var(--c-bg-sunken);background-image:linear-gradient(45deg, var(--c-panel-raised) 25%, transparent 25%), linear-gradient(-45deg, var(--c-panel-raised) 25%, transparent 25%), linear-gradient(45deg, transparent 75%, var(--c-panel-raised) 75%), linear-gradient(-45deg, transparent 75%, var(--c-panel-raised) 75%);background-position:0 0,0 6px,6px -6px,-6px 0;background-size:12px 12px;flex:none;justify-content:center;align-items:center;width:64px;height:64px;display:flex;overflow:hidden}.node-editor__thumb img{object-fit:cover;width:100%;height:100%;display:block}.node-editor__thumb-empty{font-size:var(--fs-xs);color:var(--c-fg-muted)}.node-editor__thumb-meta{flex-direction:column;gap:2px;min-width:0;display:flex}.node-editor__asset-name{font-size:var(--fs-sm);color:var(--c-fg);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.export-meta{gap:var(--sp-1);padding:var(--sp-2);background:var(--c-panel-raised);border:1px solid var(--c-border-subtle);border-radius:var(--r-sm);flex-direction:column;display:flex}.export-meta__row{justify-content:space-between;align-items:baseline;gap:var(--sp-2);min-width:0;display:flex}.export-meta__k{font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.05em;color:var(--c-fg-muted);flex:none}.export-meta__v{color:var(--c-fg);font-size:var(--fs-sm);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.export-meta__v--mono{font-family:var(--font-mono);color:var(--c-fg-secondary)}.export-status{padding:var(--sp-2);border-radius:var(--r-sm);font-size:var(--fs-sm);line-height:var(--lh-normal);word-break:break-word}.export-status--ok{color:var(--c-success);background:var(--c-success-soft)}.export-status--error{color:var(--c-error);background:var(--c-error-soft)}.export-status--busy{color:var(--c-accent);background:var(--c-accent-soft)}.compat-req{gap:var(--sp-1);padding:var(--sp-2);background:var(--c-panel-raised);border:1px solid var(--c-border-subtle);border-radius:var(--r-sm);flex-direction:column;display:flex}.compat-req__row{justify-content:space-between;align-items:baseline;gap:var(--sp-2);display:flex}.compat-req__k{font-size:var(--fs-xs);color:var(--c-fg-muted)}.compat-req__v{font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--c-fg-secondary)}.compat-diags{gap:var(--sp-1);flex-direction:column;display:flex}.compat-diag{align-items:baseline;gap:var(--sp-2);padding:var(--sp-1) var(--sp-2);border-radius:var(--r-xs);font-size:var(--fs-xs);line-height:var(--lh-normal);display:flex}.compat-diag__sev{text-transform:uppercase;letter-spacing:.04em;flex:none;font-size:10px;font-weight:600}.compat-diag__msg{color:var(--c-fg-secondary)}.compat-diag--warning{background:var(--c-warning-soft)}.compat-diag--warning .compat-diag__sev{color:var(--c-warning)}.compat-diag--info{background:var(--c-accent-soft)}.compat-diag--info .compat-diag__sev{color:var(--c-accent)}.compat-diag--error{background:var(--c-error-soft)}.compat-diag--error .compat-diag__sev{color:var(--c-error)}.ws{background:var(--c-bg);flex-direction:column;width:100%;height:100%;display:flex}.ws-body{flex:1;min-height:0;display:flex;overflow:hidden}.ws-left,.ws-right{background:var(--c-panel);flex-direction:column;flex:none;min-width:0;display:flex;overflow:hidden}.ws-left{border-right:1px solid var(--c-border)}.ws-right{border-left:1px solid var(--c-border)}.ws-center{background:var(--c-bg-sunken);flex-direction:column;flex:auto;min-width:0;display:flex;overflow:hidden}.ws-splitter{width:5px;z-index:var(--z-panel-resizer);flex:none;margin:0 -2px;position:relative}.ws-splitter-drag{cursor:col-resize;transition:background var(--dur-fast) var(--ease-out);background:0 0;position:absolute;inset:0}.ws-splitter-drag:hover,.ws-splitter-drag:active{background:var(--c-accent)}.ws-splitter-collapse{width:16px;height:38px;font-size:var(--fs-sm);color:var(--c-fg-muted);background:var(--c-panel-raised);border:1px solid var(--c-border);border-radius:var(--r-sm);cursor:pointer;opacity:0;transition:opacity var(--dur-fast) var(--ease-out), color var(--dur-fast) var(--ease-out), border-color var(--dur-fast) var(--ease-out);justify-content:center;align-items:center;padding:0;line-height:1;display:flex;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.ws-splitter:hover .ws-splitter-collapse{opacity:1}.ws-splitter-collapse:hover{color:var(--c-fg);border-color:var(--c-accent-border)}.ws-rail{align-items:center;gap:var(--sp-2);width:30px;padding-top:var(--sp-2);background:var(--c-panel);flex-direction:column;flex:none;display:flex}.ws-rail--left{border-right:1px solid var(--c-border)}.ws-rail--right{border-left:1px solid var(--c-border)}.ws-rail-label{writing-mode:vertical-rl;font-size:var(--fs-xs);letter-spacing:.08em;text-transform:uppercase;color:var(--c-fg-muted);-webkit-user-select:none;user-select:none;font-weight:600}.ws-status{height:24px;padding:0 var(--sp-2);background:var(--c-panel);border-top:1px solid var(--c-border);flex:none;align-items:center;display:flex}.ws-status-btn{appearance:none;align-items:center;gap:var(--sp-3);height:100%;padding:0 var(--sp-2);cursor:pointer;font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--c-fg-muted);border-radius:var(--r-xs);background:0 0;border:none;display:inline-flex}.ws-status-btn:hover{background:var(--c-hover);color:var(--c-fg-secondary)}.ws-status-ok{color:var(--c-fg-muted)}.ws-status-item{align-items:center;gap:4px;display:inline-flex}.ws-status-item--error{color:var(--c-error)}.ws-status-item--warning{color:var(--c-warning)}.panel{flex-direction:column;height:100%;min-height:0;display:flex}.panel-head{height:var(--toolbar-h);align-items:center;gap:var(--sp-2);padding:0 var(--sp-3);border-bottom:1px solid var(--c-border);background:var(--c-panel-raised);font-size:var(--fs-sm);color:var(--c-fg-secondary);letter-spacing:.03em;text-transform:uppercase;flex:none;font-weight:600;display:flex}.panel-body{flex:auto;min-height:0;overflow:auto}.panel-scroll{padding:var(--sp-3)}.muted{color:var(--c-fg-muted);font-size:var(--fs-sm)}.spacer{flex:1}
