@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(./inter-latin-wght-normal-Dx4kXJAl.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(./inter-latin-ext-wght-normal-DO1Apj_S.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(./jetbrains-mono-latin-wght-normal-B9CIFXIH.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(./jetbrains-mono-latin-ext-wght-normal-DBQx-q_a.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}:root{--font-ui:"Inter", "Segoe UI", "Microsoft YaHei", "PingFang SC", system-ui, -apple-system, sans-serif;--font-mono:"JetBrains Mono", "SFMono-Regular", Consolas, "Cascadia Mono", monospace;--fs-2xs:10px;--fs-xs:11px;--fs-sm:12px;--fs-md:13px;--fs-lg:15px;--fs-xl:18px;--fs-2xl:22px;--lh-tight:1.2;--lh:1.45;--fw-normal:400;--fw-medium:500;--fw-strong:600;--ls-label:.4px;--sp-1:2px;--sp-2:4px;--sp-3:6px;--sp-4:8px;--sp-5:12px;--sp-6:16px;--sp-7:20px;--sp-8:24px;--r-xs:3px;--r-sm:4px;--r-md:6px;--r-lg:8px;--r-xl:12px;--r-pill:999px;--h-topbar:40px;--h-toolbar:36px;--h-transport:34px;--h-pane-head:32px;--h-statusbar:24px;--w-strip:44px;--tl-tree-w:320px;--tl-h:0px;--area-left-w:0px;--area-right-w:0px;--cell-x:8px;--cell-y:8px;--h-input:28px;--h-input-sm:24px;--h-input-xs:20px;--h-btn:28px;--h-btn-sm:24px;--h-btn-xs:20px;--w-field-num:62px;--row-h:28px;--row-fs:13px;--row-h-min:20px;--row-h-max:48px;--pp-label-w:92px;--eff-label-w:64px;--dur-1:80ms;--dur-2:.14s;--dur-3:.22s;--dur-collapse:.2s;--ease:cubic-bezier(.3, 0, .2, 1);--z-view:10;--z-topbar:20;--z-dropdown:30;--z-float:140;--z-welcome:180;--z-titlebar:190;--z-modal:200;--z-dropzone:500;--z-popover:3200;--z-guide:8000;--z-tooltip:9999}:root,:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#1e1f22;--panel:#2b2d30;--panel-2:#313438;--panel-3:#393b40;--panel-4:#43454a;--border:#393b40;--border-soft:#303236;--border-strong:#4b4d52;--text:#dfe1e5;--muted:#9da0a8;--text-on-accent:#fff;--ink:#1e1f22;--accent:#3574f0;--accent-hover:#4a83f2;--accent-active:#2b64d9;--accent-soft:#3574f029;--accent-selected:#3574f047;--hover:#ffffff0f;--selected:#3574f038;--orange:#e0a03f;--orange-soft:#e0a03f29;--danger:#db5c5c;--danger-soft:#db5c5c29;--success:#5fad65;--success-soft:#5fad6529;--shadow:0 8px 24px #00000073;--shadow-sm:0 2px 8px #00000052;--shadow-lg:0 16px 48px #0000008c;--focus-ring:0 0 0 2px #3574f08c;--slider-ring:#1e1f22;--slider-track:#43454a;--scrollbar-thumb:#4a4d53;--scrollbar-thumb-hover:#5e6167;--stage-clear:#1e1f22;--stage-grad-1:#2a2c30;--stage-grad-2:#1e1f22;--grid-color:#393b40;--grid-dot:#ffffff1a;--axis-x:#e05c5c;--axis-y:#5fad65;--axis-z:#4a83f2;--cam-widget:#4fbfa0;--cam-widget-active:#e09a3f;--lane-bg:#232427;--lane-line:#303236;--playhead:#e0a03f;--kf-x:#e0a03f;--kf-y:#5a9cf8;--kf-z:#57b98a;--kf-r:#e0705f;--kf-g:#57b98a;--kf-b:#5a9cf8;--kf-a:#c97fc0;--kf-default:#9da0a8;--bar-group:#d0a650;--bar-fx:#9484e8;--bar-particle:#6e9fd8;--bar-text:#d08fc4;--bar-audio:#d08a4b;--bar-camera:#5fbfa0;--bar-default:#5b8fd6;--tex-bg:#1e1f22;--tex-cell:#2b2d30;--checker-a:#3a3d42;--checker-b:#2e3136;--code-bg:#1e1f22;--terminal-bg:#1e1f22;--ee-bg:#232427;--ee-grid:#303236;--ee-grid-major:#3d4045;--tooltip-bg:#393b40;--tooltip-text:#dfe1e5;--blk-pos:#328053;--blk-color:#9a5bc4;--blk-appearance:#a86a22;--blk-math:#3568bd;--blk-vec:#7b5bd9;--blk-mat:#26788d;--blk-var:#a8621f;--blk-const:#6b7280;--blk-logic:#96731a;--blk-array:#b04a6d;--blk-raw:#2b2d30;--blk-comment:#6e7681;--blk-ctl:#313438;--blk-start:#547a3a;--blk-frag:#7d6e40;--blk-text:#fff;--cm-bg:#1e1f22;--cm-gutter:#1e1f22;--cm-gutter-text:#5a5d63;--cm-text:#bcbec4;--cm-keyword:#cf8e6d;--cm-string:#6aab73;--cm-number:#2aacb8;--cm-comment:#7a7e85;--cm-function:#56a8f5;--cm-variable:#bcbec4;--cm-property:#c77dbb;--cm-atom:#cf8e6d;--cm-operator:#bcbec4;--cm-selection:#2e436e;--cm-active-line:#26282c;--cm-selection-match:#548af740;--cm-tooltip-bg:#393b40;--cm-tooltip-text:#bcbec4;--cm-tooltip-border:#4b4d52;--cm-tooltip-selected:#2e436e;--cm-tooltip-selected-text:#dfe1e5;--cm-highlight:#548af7}:root[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#fff;--panel:#f7f8fa;--panel-2:#eef0f3;--panel-3:#e4e7ec;--panel-4:#d6dae1;--border:#d4d7dc;--border-soft:#e6e8eb;--border-strong:#b8bcc4;--text:#1f2329;--muted:#6c707e;--text-on-accent:#fff;--ink:#1f2329;--accent:#3574f0;--accent-hover:#2b64d9;--accent-active:#2456bd;--accent-soft:#3574f01f;--accent-selected:#3574f033;--hover:#1f23290f;--selected:#3574f029;--orange:#b8741a;--orange-soft:#b8741a24;--danger:#c7222d;--danger-soft:#c7222d1f;--success:#2e7d32;--success-soft:#2e7d321f;--shadow:0 8px 24px #0f172a24;--shadow-sm:0 2px 8px #0f172a1a;--shadow-lg:0 16px 48px #0f172a33;--focus-ring:0 0 0 2px #3574f066;--slider-ring:#fff;--slider-track:#c9ccd1;--scrollbar-thumb:#c3c7cf;--scrollbar-thumb-hover:#a9aeb8;--stage-clear:#b7bdc6;--stage-grad-1:#aeb5bf;--stage-grad-2:#b9bfc8;--grid-color:#8f97a3;--grid-dot:#141e321f;--axis-x:#e05c5c;--axis-y:#5fad65;--axis-z:#4a83f2;--cam-widget:#2b8f77;--cam-widget-active:#b8741a;--lane-bg:#eef0f3;--lane-line:#dde0e5;--playhead:#b8741a;--kf-x:#b8741a;--kf-y:#2b62bd;--kf-z:#2e7d4f;--kf-r:#c0503d;--kf-g:#2e7d4f;--kf-b:#2b62bd;--kf-a:#a04f96;--kf-default:#6c707e;--bar-group:#a8801f;--bar-fx:#6a55c9;--bar-particle:#3d74b8;--bar-text:#a85f9c;--bar-audio:#a86a2b;--bar-camera:#2b8f77;--bar-default:#3d6fc0;--tex-bg:#e8eaee;--tex-cell:#c7cdd6;--checker-a:#fff;--checker-b:#dde1e6;--code-bg:#fff;--terminal-bg:#f4f6f9;--ee-bg:#fff;--ee-grid:#eef0f4;--ee-grid-major:#d4d9e0;--tooltip-bg:#2b2d30;--tooltip-text:#f2f5fa;--blk-pos:#328053;--blk-color:#9a5bc4;--blk-appearance:#a86a22;--blk-math:#3568bd;--blk-vec:#7b5bd9;--blk-mat:#26788d;--blk-var:#a8621f;--blk-const:#6b7280;--blk-logic:#96731a;--blk-array:#b04a6d;--blk-raw:#f7f8fa;--blk-comment:#8a9199;--blk-ctl:#edeff2;--blk-start:#547a3a;--blk-frag:#7d6e40;--blk-text:#fff;--cm-bg:#fff;--cm-gutter:#fff;--cm-gutter-text:#aeb3c2;--cm-text:#080808;--cm-keyword:#0033b3;--cm-string:#067d17;--cm-number:#1750eb;--cm-comment:#8c8c8c;--cm-function:#00627a;--cm-variable:#080808;--cm-property:#871094;--cm-atom:#871094;--cm-operator:#080808;--cm-selection:#a6d2ff;--cm-active-line:#f5f8fe;--cm-selection-match:#88adf759;--cm-tooltip-bg:#fff;--cm-tooltip-text:#080808;--cm-tooltip-border:#d4d4d4;--cm-tooltip-selected:#e7effd;--cm-tooltip-selected-text:#080808;--cm-highlight:#006dcc}*{box-sizing:border-box}::selection{background:var(--accent-selected);color:var(--text)}button:focus-visible,.menu-btn:focus-visible,.dd-item:focus-visible,.cm-item:focus-visible,.csel-item:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--accent);outline-offset:1px}html,body{background:var(--bg);height:100%;color:var(--text);font-family:var(--font-ui), sans-serif;font-size:var(--fs-md);line-height:var(--lh);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;-webkit-user-select:none;user-select:none;margin:0}input[type=number],code,pre,kbd,.mono{font-family:var(--font-mono), monospace}input,textarea,.kf-v,.rename-input{-webkit-user-select:text;user-select:text}input{text-align:center}input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}input[type=number]{appearance:textfield}body{grid-template-rows:var(--h-topbar) 1fr;display:grid;overflow:hidden}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb);border-radius:var(--r-pill);background-clip:content-box;border:2px solid #0000}::-webkit-scrollbar-thumb:hover{background:var(--scrollbar-thumb-hover);background-clip:content-box}::-webkit-scrollbar-corner{background:0 0}input[type=range]{appearance:none;cursor:pointer;background:0 0;height:18px}input[type=range]::-webkit-slider-runnable-track{border-radius:var(--r-pill);background:var(--slider-track);height:4px}input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;background:var(--accent);border:2px solid var(--slider-ring);width:14px;height:14px;box-shadow:0 0 0 1px var(--accent);transition:transform var(--dur-1) var(--ease);border-radius:50%;margin-top:-5px}input[type=range]::-webkit-slider-thumb:hover{transform:scale(1.15)}input[type=range]::-moz-range-track{border-radius:var(--r-pill);background:var(--slider-track);height:4px}input[type=range]::-moz-range-thumb{background:var(--accent);border:2px solid var(--slider-ring);border-radius:50%;width:12px;height:12px}.checker,.checker-bg{background-image:linear-gradient(45deg, var(--checker-b) 25%, transparent 25%, transparent 75%, var(--checker-b) 75%), linear-gradient(45deg, var(--checker-b) 25%, transparent 25%, transparent 75%, var(--checker-b) 75%);background-color:var(--checker-a);background-position:0 0,6px 6px;background-size:12px 12px}.topbar{align-items:center;gap:var(--sp-4);height:100%;padding:0 var(--sp-5);background:var(--panel);border-bottom:1px solid var(--border);z-index:var(--z-topbar);display:flex}#topbar-title{align-items:center;gap:var(--sp-3);text-overflow:ellipsis;white-space:nowrap;max-width:40%;color:var(--muted);font-size:var(--fs-sm);letter-spacing:var(--ls-label);margin:0 auto;display:inline-flex;overflow:hidden}#topbar-title:before{content:"";opacity:.75;background:currentColor;flex:none;width:13px;height:13px;-webkit-mask:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 18 18'%3E%3Cpath d='M5 2.5h5l3 3V15a.5.5 0 0 1-.5.5h-7a.5.5 0 0 1-.5-.5V3a.5.5 0 0 1 .5-.5z'/%3E%3Cpath d='M10 2.5V5h2.5' fill='none' stroke='black' stroke-width='1.2' stroke-linejoin='round'/%3E%3C/svg%3E") 50%/contain no-repeat;mask:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 18 18'%3E%3Cpath d='M5 2.5h5l3 3V15a.5.5 0 0 1-.5.5h-7a.5.5 0 0 1-.5-.5V3a.5.5 0 0 1 .5-.5z'/%3E%3Cpath d='M10 2.5V5h2.5' fill='none' stroke='black' stroke-width='1.2' stroke-linejoin='round'/%3E%3C/svg%3E") 50%/contain no-repeat}.menubar{align-items:center;gap:var(--sp-1);flex:none;display:flex;overflow:hidden}.menu{position:relative}.menu-btn{height:var(--h-btn-sm);padding:0 var(--sp-4);border-radius:var(--r-sm);color:var(--text);font-size:var(--fs-md);cursor:pointer;transition:background var(--dur-2) var(--ease), color var(--dur-2) var(--ease);background:0 0;border:none}.menu-btn:hover,.menu.open>.menu-btn{background:var(--hover)}.menu.open>.menu-btn{color:var(--text)}.topbar-actions{align-items:center;gap:var(--sp-1);flex:none;display:flex}.icon-btn{width:var(--h-btn-sm);height:var(--h-btn-sm);border-radius:var(--r-sm);color:var(--muted);cursor:pointer;transition:background var(--dur-2) var(--ease), color var(--dur-2) var(--ease);background:0 0;border:none;justify-content:center;align-items:center;padding:0;display:inline-flex}.icon-btn svg{width:16px;height:16px}.icon-btn:hover,.menu.open>.icon-btn{background:var(--hover);color:var(--text)}.dropdown{z-index:var(--z-dropdown);min-width:190px;padding:var(--sp-3);background:var(--panel-2);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow);transform-origin:0 0;animation:menuPopIn var(--dur-2) var(--ease);display:none;position:absolute;top:100%;left:0}.dropdown-right{transform-origin:100% 0;left:auto;right:0}.menu.open .dropdown{display:block}.dd-item{justify-content:space-between;align-items:center;gap:var(--sp-7);width:100%;padding:var(--sp-2) var(--sp-4);border-radius:var(--r-sm);color:var(--text);font-size:var(--fs-md);text-align:left;cursor:pointer;transition:background var(--dur-1) var(--ease), color var(--dur-1) var(--ease);background:0 0;border:none;display:flex}.dd-item:hover{background:var(--hover)}.dd-item.danger{color:var(--danger)}.dd-item.danger:hover{background:var(--danger-soft)}.dd-item kbd{color:var(--muted);font-family:var(--font-mono), monospace;font-size:var(--fs-xs);background:0 0;border:none;margin-left:auto}.dd-check{color:var(--accent);font-weight:var(--fw-strong);margin-left:auto}.dd-sep{height:1px;margin:var(--sp-2) 0;background:var(--border-soft)}.dd-item[hidden],.dd-sep[hidden]{display:none}.dd-text{padding:var(--sp-3) var(--sp-4);color:var(--muted)}.dd-sub{position:relative}.dd-sub-btn{justify-content:space-between}.dd-sub-caret{color:var(--muted);font-size:var(--fs-xs)}.dd-submenu{left:100%;top:calc(-1 * var(--sp-3) - 1px);z-index:calc(var(--z-dropdown) + 1);min-width:190px;padding:var(--sp-3);background:var(--panel-2);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow);display:none;position:absolute}.dd-sub:hover>.dd-submenu,.dd-submenu.open{display:block}.topbar input[type=text]{width:180px;height:var(--h-input-sm);padding:0 var(--sp-4);background:var(--panel-3);border:1px solid var(--border);border-radius:var(--r-sm);color:var(--text);transition:border-color var(--dur-2) var(--ease), box-shadow var(--dur-2) var(--ease)}.topbar input[type=text]:focus{border-color:var(--accent);box-shadow:var(--focus-ring);outline:none}.titlebar-controls{align-items:center;gap:var(--sp-1);height:100%;z-index:var(--z-titlebar);flex:none;margin-left:auto;display:flex;position:relative}body.win-titlebar .welcome-header{padding-right:140px}.titlebar-controls[hidden]{display:none}.tb-btn{width:36px;height:var(--h-btn-sm);border-radius:var(--r-sm);color:var(--text);cursor:pointer;transition:background var(--dur-1) var(--ease), color var(--dur-1) var(--ease);background:0 0;border:none;justify-content:center;align-items:center;padding:0;display:inline-flex}.tb-btn:hover{background:var(--hover)}.tb-btn:active{opacity:.8}.tb-btn svg{width:12px;height:12px}.tb-close:hover{background:var(--danger);color:var(--text-on-accent)}.tb-icon-restore,.tb-btn.restored .tb-icon-max{display:none}.tb-btn.restored .tb-icon-restore{display:block}.view-col{background:var(--bg);flex-direction:column;grid-area:1/3;min-width:0;min-height:0;display:flex}.toolbar{align-items:center;gap:var(--sp-2);height:var(--h-toolbar);padding:0 var(--sp-4);background:var(--panel);border-bottom:1px solid var(--border);flex:none;display:flex;overflow:auto hidden}.tool{border-radius:var(--r-sm);width:28px;height:28px;color:var(--muted);cursor:pointer;transition:background var(--dur-2) var(--ease), color var(--dur-2) var(--ease);background:0 0;border:none;flex:none;justify-content:center;align-items:center;padding:0;display:inline-flex;position:relative}.tool svg{width:18px;height:18px}.tool:hover{background:var(--hover);color:var(--text)}.tool.active{background:var(--panel-3);color:var(--accent)}.tool:disabled{opacity:.35;pointer-events:none}.tool-row{align-items:center;gap:var(--sp-1);flex:none;display:flex}.tool-row:empty{display:none}.tool-row .tool+.tool{margin-left:1px}.viewport-head{align-items:center;gap:var(--sp-3);height:30px;padding:0 var(--sp-4);background:var(--panel);border-bottom:1px solid var(--border);flex:none;display:flex}.mode-item .dd-check{margin-left:auto}.modal-readout{align-items:baseline;gap:var(--sp-3);white-space:nowrap;min-width:0;font-size:var(--fs-sm);flex:0 auto;margin-left:auto;display:flex;overflow:hidden}.modal-readout[hidden]{display:none}.mr-main{color:var(--accent);font-weight:var(--fw-strong)}.mr-hints{color:var(--muted);text-overflow:ellipsis;overflow:hidden}.modal-hud{z-index:40;pointer-events:none;width:0;height:0;color:var(--text);position:fixed;top:0;left:0}.modal-hud[hidden]{display:none}.mh-dial{display:block;position:absolute;top:0;left:0;overflow:visible;transform:translate(-50%,-50%)}.modal-hud:not(.has-dial) .mh-dial{display:none}.mh-tick{stroke:var(--muted)}.mh-tick.major{stroke-width:1.6px}.mh-tick.minor{stroke-width:1px;opacity:.55}.mh-label{fill:var(--muted);font-size:10px}.mh-arc{fill:none;stroke:var(--accent);stroke-width:2px}.mh-needle{stroke:var(--accent);stroke-width:2px;stroke-linecap:round}.mh-hub{fill:var(--accent)}.mh-value{padding:1px var(--sp-3);background:var(--panel-3);border:1px solid var(--border-strong);border-radius:var(--r-sm);font-family:var(--font-mono), monospace;font-size:var(--fs-sm);white-space:nowrap;line-height:1.5;position:absolute;left:0;transform:translate(-50%,-50%)}.modal-hud.has-dial .mh-value{transform:translate(-50%)}.modal-hud.snapped .mh-value{border-color:var(--orange);color:var(--orange)}.modal-hud.snapped .mh-needle,.modal-hud.snapped .mh-arc{stroke:var(--orange)}.modal-hud.typing .mh-value{border-color:var(--accent);color:var(--accent)}.modal-hud.typing .mh-value:after{content:"_";opacity:.85}.cam-tabs{align-items:center;gap:var(--sp-1);height:30px;padding:0 var(--sp-4);background:var(--panel);border-bottom:1px solid var(--border);flex:none;display:flex;overflow:auto hidden}.cam-tabs[hidden]{display:none}.cam-tabs::-webkit-scrollbar{height:6px}.cam-tabs::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb);border-radius:var(--r-pill);border:none}.cam-tab{align-items:center;gap:var(--sp-2);max-width:160px;height:24px;padding:0 var(--sp-4);white-space:nowrap;border-radius:var(--r-sm);color:var(--muted);font-size:var(--fs-sm);text-overflow:ellipsis;cursor:pointer;transition:background var(--dur-2) var(--ease), color var(--dur-2) var(--ease);background:0 0;border:none;flex:none;display:inline-flex;overflow:hidden}.cam-tab>span:first-child{text-overflow:ellipsis;min-width:0;overflow:hidden}.cam-tab:hover{background:var(--hover);color:var(--text)}.cam-tab.active{background:var(--panel-3);color:var(--accent)}.cam-tab .cam-del{width:14px;height:14px;margin-left:var(--sp-1);border-radius:var(--r-xs);font-size:var(--fs-xs);text-align:center;line-height:12px;display:none}.cam-tab:hover .cam-del{display:inline-block}.cam-tab .cam-del:hover{background:var(--danger-soft);color:var(--danger)}.viewport{background:radial-gradient(circle at 50% 38%, var(--stage-grad-1), var(--stage-grad-2));flex:auto;min-height:0;position:relative;overflow:hidden}.viewport canvas{display:block}#axis-gizmo{cursor:pointer;pointer-events:auto;width:112px;height:112px;position:absolute;top:10px;right:10px}#box-overlay{border:1px dashed var(--accent);background:var(--accent-soft);pointer-events:none;display:none;position:absolute}#fps-counter{right:var(--sp-4);bottom:var(--sp-4);z-index:var(--z-view);padding:var(--sp-1) var(--sp-3);background:var(--panel);background:color-mix(in srgb, var(--panel) 72%, transparent);border:1px solid var(--border-soft);border-radius:var(--r-sm);color:var(--muted);font-family:var(--font-mono), monospace;font-size:var(--fs-xs);line-height:var(--lh-tight);pointer-events:none;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);position:absolute}.transport{align-items:center;gap:var(--sp-4);height:var(--h-transport);padding:0 var(--sp-4);background:var(--panel);border-top:1px solid var(--border);flex:none;display:flex}.transport .btn,.transport .tl-loop{flex:none}.transport .ticks{color:var(--muted);white-space:nowrap}.transport input[type=number]{height:var(--h-input-sm);padding:0 var(--sp-3);background:var(--panel-3);border:1px solid var(--border);border-radius:var(--r-sm);color:var(--text);font-family:var(--font-mono), monospace}.transport input[type=number]:focus{border-color:var(--accent);box-shadow:var(--focus-ring);outline:none}.tl-speed-group,.tl-time-group{align-items:center;gap:var(--sp-3);height:var(--h-input);padding:0 var(--sp-4);background:var(--panel-3);border:1px solid var(--border);border-radius:var(--r-sm);transition:border-color var(--dur-2) var(--ease), box-shadow var(--dur-2) var(--ease);display:inline-flex}.tl-speed-group:focus-within,.tl-time-group:focus-within{border-color:var(--accent);box-shadow:var(--focus-ring)}.tl-speed-group #tl-speed,.tl-time-group #tl-time{field-sizing:content;background:0 0;border:none;border-radius:0;width:auto;height:auto;padding:0}.tl-speed-group #tl-speed{min-width:2ch}.tl-time-group #tl-time{text-align:center;min-width:15px}.tl-speed-group #tl-speed:focus,.tl-time-group #tl-time:focus{box-shadow:none}#btn-play{min-width:74px;padding:0 var(--sp-5);background:var(--accent);border-color:var(--accent);color:var(--text-on-accent);font-weight:var(--fw-strong);justify-content:center}#btn-play:hover{background:var(--accent-hover);border-color:var(--accent-hover);color:var(--text-on-accent)}#btn-play:active{background:var(--accent-active);border-color:var(--accent-active)}#tl-easing{width:var(--h-btn);height:var(--h-btn)}.tab-pane{padding:var(--sp-5);flex:1;min-height:0;display:none;overflow-y:auto}.tab-pane.active{display:block}.row{align-items:center;gap:var(--sp-4);min-height:var(--row-h);margin:var(--sp-2) 0;font-size:var(--row-fs);white-space:nowrap;display:flex}.row input[type=text],.row input[type=number],.row input[type=search],.row select{min-width:0;max-width:100px;height:calc(var(--row-h) - 8px);padding:0 var(--sp-3);background:var(--panel-3);border:1px solid var(--border-soft);border-radius:var(--r-sm);color:var(--text);font-size:var(--row-fs);text-align:center;transition:border-color var(--dur-2) var(--ease), background var(--dur-2) var(--ease), box-shadow var(--dur-2) var(--ease);flex:auto}.row input[type=number]{font-family:var(--font-mono), monospace;font-variant-numeric:tabular-nums}.row select{text-align:left;cursor:pointer}.row input[type=text]:hover,.row input[type=number]:hover,.row input[type=search]:hover,.row select:hover{background:var(--panel-2)}.row input[type=text]:focus,.row input[type=number]:focus,.row input[type=search]:focus,.row select:focus{border-color:var(--accent);box-shadow:var(--focus-ring);outline:none}.row input[type=range]{min-width:0;accent-color:var(--accent);flex:auto}.row .color-swatch{width:calc(var(--row-h) - 8px);height:calc(var(--row-h) - 8px);border:1px solid var(--border);border-radius:var(--r-sm);flex:none}.row.chk>span:first-child{color:var(--muted);flex:none}.color-swatch{border:1px solid var(--border);border-radius:var(--r-sm);cursor:pointer;background:linear-gradient(var(--panel), var(--panel)), repeating-conic-gradient(var(--muted) 0 25%, var(--panel-3) 0 50%) 0 0 / 10px 10px;flex:none;width:30px;height:30px;padding:0}.chk{align-items:center;gap:var(--sp-3);min-height:var(--row-h);cursor:pointer;font-size:var(--row-fs);display:flex}.chk input{width:15px;height:15px;accent-color:var(--accent);flex:none}.hint{margin:var(--sp-2) 0;color:var(--muted);font-size:var(--fs-sm)}.hint code{padding:1px var(--sp-3);background:var(--panel-3);border-radius:var(--r-xs)}#pane-props .row,#pane-fx .fx-panel .row,.uv-panel .row{justify-content:flex-start;gap:var(--sp-4);width:100%;padding:var(--sp-1) var(--sp-2);min-height:var(--row-h);border:none;border-bottom:1px solid var(--border-soft);background:0 0;border-radius:0;margin:0}#pane-props .row:last-child,#pane-fx .fx-panel .row:last-child,.uv-panel .row:last-child{border-bottom:none}#pane-props .row>span:first-child,#pane-fx .fx-panel .row>span:first-child,.uv-panel .row>span:first-child{color:var(--muted);font-size:var(--row-fs);flex:none}#pane-props .row>span:first-child+*,#pane-fx .fx-panel .row>span:first-child+*,.uv-panel .row>span:first-child+*{margin-left:auto}#pane-props .row>input[type=number],#pane-fx .fx-panel .row>input[type=number]{width:var(--w-field-num);max-width:none;height:calc(var(--row-h) - 8px);padding:0 var(--sp-3);background:var(--panel-2);border:1px solid var(--border-soft);border-radius:var(--r-sm);font-size:var(--row-fs);text-align:center;flex:none}#pane-props .vec3 input{field-sizing:content;width:auto;min-width:2.4ch;max-width:9ch}#pane-props .row .color-swatch{width:calc(var(--row-h) - 8px);height:calc(var(--row-h) - 8px)}#pane-props .row>input[type=range]{flex:auto;height:18px;margin-left:0}#pane-props .row>#pp-light-val{min-width:22px;color:var(--text);font-size:var(--row-fs);font-variant-numeric:tabular-nums;text-align:right;flex:none}#pane-props .row.chk{padding:var(--sp-1) var(--sp-2);min-height:var(--row-h);border-bottom:1px solid var(--border-soft);justify-content:flex-start;margin:0}#pane-props .row.chk span{color:var(--muted);font-size:var(--row-fs)}#prop-panel .prow{align-items:center;gap:var(--sp-4);min-height:var(--row-h);padding:var(--sp-1) var(--sp-2);border-bottom:1px solid var(--border-soft);flex-direction:row;margin:0;display:flex}#prop-panel .prow:last-child{border-bottom:none}#prop-panel .prow-head{flex:0 auto;min-width:0;min-height:0}#prop-panel .prow-label{text-overflow:ellipsis;white-space:nowrap;flex:0 auto;min-width:0;overflow:hidden}#prop-panel .prow .vec3{flex:0 auto;min-width:0;max-width:100%;margin-left:auto;padding-left:0}#prop-panel .prow .vec3-seg{min-width:0}#prop-panel .prow .vec3-seg input{flex:auto;min-width:2.4ch}#prop-panel .prow-color{flex:auto;min-width:0;margin-left:auto;padding-left:0}.tex-editor{background:var(--tex-bg);border:1px solid var(--border);border-radius:var(--r-lg);height:200px;display:flex;position:relative;overflow:hidden}.tex-tools{gap:var(--sp-1);padding:var(--sp-3) var(--sp-2);background:var(--panel-2);border-right:1px solid var(--border);flex-direction:column;flex:none;display:flex}.tex-tool{border-radius:var(--r-sm);width:30px;height:30px;color:var(--muted);cursor:pointer;transition:background var(--dur-1) var(--ease), color var(--dur-1) var(--ease);background:0 0;border:none;justify-content:center;align-items:center;padding:0;display:flex}.tex-tool svg{width:17px;height:17px}.tex-tool:hover{background:var(--hover);color:var(--text)}.tex-tool.active{background:var(--accent-soft);color:var(--accent)}.tex-tool:disabled{opacity:.35;cursor:default}.tex-tool-sep{height:1px;margin:var(--sp-1) var(--sp-1);background:var(--border)}.tex-canvas-wrap{flex:1;justify-content:center;align-items:center;min-width:0;display:flex;position:relative;overflow:hidden}#tex-canvas{image-rendering:pixelated;cursor:crosshair;box-shadow:0 0 0 1px var(--border);display:block}.tex-overlay{z-index:2;box-sizing:border-box;pointer-events:none;border-style:solid;border-width:1px;display:none;position:absolute}#tex-grid{z-index:1;background-image:repeating-linear-gradient(to right, var(--border) 0, var(--border) 1px, transparent 1px, transparent var(--cell-x,8px)), repeating-linear-gradient(to bottom, var(--border) 0, var(--border) 1px, transparent 1px, transparent var(--cell-y,8px));background-size:var(--cell-x,8px) 100%, 100% var(--cell-y,8px);background-origin:content-box;border:none;display:none}#tex-overlay-cells{background-origin:content-box}.tex-resize-pop{z-index:var(--z-float);width:210px;padding:var(--sp-5) var(--sp-5);background:var(--panel-2);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow);animation:modalPopIn var(--dur-2) var(--ease);position:fixed}.tex-resize-pop .trp-title{margin-bottom:var(--sp-4);color:var(--text);font-size:var(--fs-sm);font-weight:var(--fw-strong)}.tex-resize-pop .trp-row{align-items:center;gap:var(--sp-3);margin-bottom:var(--sp-4);display:flex}.tex-resize-pop .trp-label{width:18px;color:var(--muted);font-size:var(--fs-sm);flex:none}.tex-resize-pop input{width:60px;min-width:0;height:var(--h-input-sm);padding:0 var(--sp-4);background:var(--panel-3);border:1px solid var(--border);border-radius:var(--r-sm);color:var(--text);text-align:center;transition:border-color var(--dur-2) var(--ease), box-shadow var(--dur-2) var(--ease);flex:1}.tex-resize-pop input:focus{border-color:var(--accent);box-shadow:var(--focus-ring);outline:none}.tex-resize-pop .trp-btns{justify-content:flex-end;gap:var(--sp-3);display:flex}#tex-color-btn{top:var(--sp-3);right:var(--sp-3);width:var(--h-btn-sm);height:var(--h-btn-sm);border:2px solid var(--panel);border-radius:var(--r-sm);cursor:pointer;box-shadow:var(--shadow-sm);padding:0;position:absolute}.tex-meta{bottom:var(--sp-2);color:var(--muted);font-size:var(--fs-xs);pointer-events:none;position:absolute;right:42px}.tex-fullscreen-btn{right:var(--sp-4);bottom:var(--sp-4);z-index:6;width:var(--h-btn-sm);height:var(--h-btn-sm);background:var(--panel-2);border:1px solid var(--border);border-radius:var(--r-sm);color:var(--muted);cursor:pointer;opacity:0;pointer-events:none;transition:opacity var(--dur-2) var(--ease), color var(--dur-2) var(--ease), border-color var(--dur-2) var(--ease);justify-content:center;align-items:center;padding:0;display:inline-flex;position:absolute}.tex-fullscreen-btn svg{width:15px;height:15px}.tex-editor:hover .tex-fullscreen-btn{opacity:1;pointer-events:auto}.tex-fullscreen-btn:hover{color:var(--text);border-color:var(--accent)}.tex-magnifier{bottom:var(--sp-4);z-index:5;background:var(--tex-bg);border:1px solid var(--border);border-radius:var(--r-sm);box-shadow:var(--shadow);image-rendering:pixelated;pointer-events:none;display:none;position:absolute;left:50%;transform:translate(-50%)}.tex-io{gap:var(--sp-3);margin-top:var(--sp-4);display:flex}.tex-io .mini{flex:1}.tex-list{gap:var(--sp-3);margin-top:var(--sp-4);flex-wrap:wrap;min-height:20px;display:flex}.tex-item{align-items:center;gap:var(--sp-2);max-width:120px;padding:var(--sp-1) var(--sp-3) var(--sp-1) var(--sp-1);background:var(--panel-2);border:1px solid var(--border);border-radius:var(--r-sm);color:var(--text);cursor:pointer;display:flex}.tex-item:hover{border-color:var(--accent)}.tex-item.active{border-color:var(--accent);background:var(--accent-soft)}.tex-item-thumb{border:1px solid var(--border);border-radius:var(--r-xs);width:20px;height:20px;image-rendering:pixelated;flex:none}.tex-item-name{font-size:var(--fs-xs);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.uv-field{align-items:center;gap:var(--sp-3);height:calc(var(--row-h) - 8px);padding:0 var(--sp-4);background:var(--panel-3);border:1px solid var(--border);border-radius:var(--r-sm);display:inline-flex}.uv-field>input[type=number],.uv-field .uv-input-wrap input[type=number],.uv-field .uv-input-wrap input[type=text]{width:46px;height:auto;color:var(--text);font-size:var(--row-fs);text-align:center;background:0 0;border:none;border-radius:0;padding:0}.uv-field .uv-input-wrap input[type=text]{width:96px;padding:0 var(--sp-3);text-align:center}.uv-field .uv-input-wrap{align-items:center;gap:var(--sp-2);display:inline-flex}.uv-field .uv-input-wrap input:focus{box-shadow:none;outline:none}.uv-field .uv-input-wrap input.uv-error{color:var(--danger);box-shadow:inset 0 -1px 0 var(--danger)}.uv-fx-toggle{width:var(--h-btn-sm);background:var(--panel-3);border:1px solid var(--border);border-radius:var(--r-sm);height:18px;color:var(--muted);font-size:var(--fs-2xs);cursor:pointer;flex:none;padding:0;line-height:1}.uv-fx-toggle.active{background:var(--accent);border-color:var(--accent);color:var(--text-on-accent)}.uv-field .uv-sep{width:1px;height:14px;margin:0 var(--sp-1);background:var(--border-strong);flex:none}.uv-field .uv-sep-mul{width:auto;height:auto;color:var(--muted);font-size:var(--fs-sm);background:0 0;line-height:1}.uv-field .uv-suffix{color:var(--muted);font-size:var(--fs-sm);white-space:nowrap}.uv-field .uv-suffix em{color:var(--accent);font-style:normal}.pdraw-picker{z-index:var(--z-float);width:240px;padding:var(--sp-5);background:var(--panel-2);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow);position:fixed}.pdraw-picker .pp-title{margin-bottom:var(--sp-4);color:var(--muted);font-size:var(--fs-sm)}.pdraw-picker .pp-list{gap:var(--sp-2);flex-direction:column;display:flex}.pdraw-picker .pp-list button{text-align:left;width:100%}.btn{justify-content:center;align-items:center;gap:var(--sp-3);height:var(--h-btn);padding:0 var(--sp-5);background:var(--panel-3);border:1px solid var(--border);border-radius:var(--r-sm);color:var(--text);font-family:inherit;font-size:var(--fs-md);cursor:pointer;transition:background var(--dur-2) var(--ease), border-color var(--dur-2) var(--ease), color var(--dur-2) var(--ease);display:inline-flex}.btn:hover{background:var(--panel-4);border-color:var(--border-strong)}.btn:active{background:var(--panel-2)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn.danger{color:var(--danger)}.btn.danger:hover{background:var(--danger-soft);border-color:var(--danger);color:var(--danger)}.mini{justify-content:center;align-items:center;gap:var(--sp-2);height:var(--h-btn-sm);padding:0 var(--sp-5);background:var(--panel-3);border:1px solid var(--border);border-radius:var(--r-sm);color:var(--text);font-family:inherit;font-size:var(--fs-sm);cursor:pointer;transition:background var(--dur-2) var(--ease), border-color var(--dur-2) var(--ease), color var(--dur-2) var(--ease);display:inline-flex}.mini:hover{background:var(--panel-4);border-color:var(--border-strong)}.mini:active{background:var(--panel-2)}.mini:disabled{opacity:.45;cursor:not-allowed}.var-row,.term-row{align-items:center;gap:var(--sp-3);min-height:var(--row-h);margin:var(--sp-2) 0;display:flex}.var-row input,.term-row input{min-width:0;height:calc(var(--row-h) - 8px);padding:0 var(--sp-3);background:var(--panel-3);border:1px solid var(--border);border-radius:var(--r-sm);color:var(--text);font-size:var(--row-fs);transition:border-color var(--dur-2) var(--ease), box-shadow var(--dur-2) var(--ease);flex:1}.var-row input:focus,.term-row input:focus{border-color:var(--accent);box-shadow:var(--focus-ring);outline:none}.term-row input.narrow{max-width:54px}.del-x{width:var(--h-btn-sm);height:var(--h-btn-sm);border-radius:var(--r-sm);color:var(--muted);font-size:var(--fs-lg);cursor:pointer;transition:background var(--dur-1) var(--ease), color var(--dur-1) var(--ease);background:0 0;border:none;padding:0}.del-x:hover{background:var(--danger-soft);color:var(--danger)}.group-list{gap:var(--sp-2);flex-direction:column;display:flex}.group-row{align-items:center;gap:var(--sp-4);min-height:var(--row-h);padding:var(--sp-2) var(--sp-4);background:var(--panel-3);border-radius:var(--r-sm);cursor:pointer;transition:border-color var(--dur-2) var(--ease), background var(--dur-2) var(--ease);border:1px solid #0000;display:flex}.group-row:hover{border-color:var(--border)}.group-row.active{border-color:var(--orange);background:var(--orange-soft);color:var(--orange)}.group-row .count{color:var(--muted);margin-left:auto}.ui-modal-overlay{z-index:var(--z-modal);background:0 0;outline:none;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.ui-modal-overlay:before{content:"";z-index:-1;background:color-mix(in srgb, var(--bg) 82%, transparent);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);animation:modalFadeIn var(--dur-2) var(--ease) both;position:absolute;inset:0}.ui-modal-overlay.closing:before{animation:modalFadeOut var(--dur-3) var(--ease) both}.ui-modal-overlay.closing{pointer-events:none}.ui-modal{gap:var(--sp-4);width:400px;max-width:90vw;padding:var(--sp-6) var(--sp-7) var(--sp-5);background:var(--panel);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow-lg);animation:modalPopIn var(--dur-3) var(--ease) both;flex-direction:column;display:flex}.ui-modal-overlay.closing .ui-modal{animation:modalPopOut var(--dur-3) var(--ease) both}.ui-modal-title{padding-bottom:var(--sp-4);border-bottom:1px solid var(--border-soft);color:var(--text);font-size:var(--fs-lg);font-weight:var(--fw-strong)}.ui-modal-msg{color:var(--muted);font-size:var(--fs-md);line-height:var(--lh);white-space:pre-wrap;word-break:break-word}.ui-modal-input{height:var(--h-input);padding:0 var(--sp-4);background:var(--panel-3);border:1px solid var(--border);border-radius:var(--r-sm);color:var(--text);font-size:var(--fs-md);transition:border-color var(--dur-2) var(--ease), box-shadow var(--dur-2) var(--ease)}.ui-modal-input:focus{border-color:var(--accent);box-shadow:var(--focus-ring);outline:none}.ui-modal-input.input-invalid{border-color:var(--danger);box-shadow:0 0 0 2px var(--danger-soft)}.ui-modal-fields{gap:var(--sp-4);flex-direction:column;display:flex}.ui-modal-field-row{justify-content:space-between;align-items:center;gap:var(--sp-4);display:flex}.ui-modal-field-row span{color:var(--text);font-size:var(--fs-md)}.ui-modal-field-row .ui-modal-input{width:140px}.ui-modal-status{color:var(--muted);font-size:var(--fs-sm)}.ui-modal-error{color:var(--danger);font-size:var(--fs-sm)}.ui-modal-btns{justify-content:flex-end;gap:var(--sp-4);margin-top:var(--sp-2);display:flex}.ui-modal-btn{height:var(--h-btn);padding:0 var(--sp-6);background:var(--panel-3);border:1px solid var(--border);border-radius:var(--r-sm);color:var(--text);font-family:inherit;font-size:var(--fs-md);cursor:pointer;transition:background var(--dur-2) var(--ease), border-color var(--dur-2) var(--ease), color var(--dur-2) var(--ease)}.ui-modal-btn:hover{background:var(--panel-4);border-color:var(--border-strong)}.ui-modal-btn.primary{background:var(--accent);border-color:var(--accent);color:var(--text-on-accent)}.ui-modal-btn.primary:hover{background:var(--accent-hover);border-color:var(--accent-hover);color:var(--text-on-accent)}.ui-modal-btn.primary:active{background:var(--accent-active);border-color:var(--accent-active)}.ui-modal-btn.danger{color:var(--danger)}.ui-modal-btn.danger:hover{background:var(--danger-soft);border-color:var(--danger);color:var(--danger)}.ui-modal-btn:disabled{opacity:.45;cursor:not-allowed}@keyframes menuPopIn{0%{opacity:0;transform:translateY(-4px)scale(.98)}to{opacity:1;transform:none}}@keyframes modalFadeIn{0%{opacity:0}to{opacity:1}}@keyframes modalFadeOut{0%{opacity:1}to{opacity:0}}@keyframes modalPopIn{0%{opacity:0;transform:translateY(10px)scale(.96)}to{opacity:1;transform:none}}@keyframes modalPopOut{0%{opacity:1;transform:none}to{opacity:0;transform:translateY(6px)scale(.97)}}.about-body{gap:var(--sp-4);flex-direction:column;display:flex}.about-desc{color:var(--muted);font-size:var(--fs-sm);line-height:var(--lh)}.about-row{align-items:center;gap:var(--sp-4);font-size:var(--fs-md);display:flex}.about-label{width:56px;color:var(--muted);flex:none}.about-value{color:var(--text);font-weight:var(--fw-strong)}.about-link{color:var(--accent);word-break:break-all;text-decoration:none}.about-link:hover{text-decoration:underline}#prop-panel .pp-sig-bad{color:var(--danger,#e5544b)}.context-menu{z-index:var(--z-modal);min-width:160px;padding:var(--sp-2);background:var(--panel);border:1px solid var(--border);border-radius:var(--r-md);box-shadow:var(--shadow);transform-origin:0 0;animation:cmPopIn var(--dur-2) var(--ease);position:fixed}.context-menu.closing{animation:cmPopOut var(--dur-2) var(--ease) forwards}@keyframes cmPopIn{0%{opacity:0;transform:scale(.94)}to{opacity:1;transform:scale(1)}}@keyframes cmPopOut{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.96)}}.cm-item{width:100%;height:28px;padding:0 var(--sp-5);text-align:left;border-radius:var(--r-sm);color:var(--text);font-size:var(--fs-md);cursor:pointer;transition:background var(--dur-2) var(--ease), color var(--dur-2) var(--ease);background:0 0;border:none;display:block}.cm-item:hover{background:var(--accent-selected);color:var(--text)}.cm-item.danger{color:var(--danger)}.cm-item.danger:hover{background:var(--danger-soft);color:var(--danger)}.cm-item:disabled{opacity:.5;cursor:not-allowed}.cm-sep{height:1px;margin:var(--sp-2) 0;background:var(--border-soft)}.cm-head{padding:var(--sp-2) var(--sp-5) var(--sp-1);color:var(--muted);font-size:var(--fs-2xs);font-weight:var(--fw-strong)}.cm-item.has-sub{justify-content:space-between;align-items:center;gap:var(--sp-5);display:flex}.cm-item.has-sub:after{content:"›";color:var(--muted);font-size:var(--fs-lg);line-height:1}.cm-item.has-sub.open{background:var(--accent-selected)}.context-menu.cm-sub{min-width:150px;position:absolute}.tl-body{min-height:0;margin-top:var(--sp-3);flex:auto;display:flex}.tl-tree{flex:0 0 var(--tl-tree-w,320px);background:var(--panel-2);border-radius:var(--r-lg) 0 0 var(--r-lg);border:none;min-width:140px;max-width:900px;height:100%;padding-top:34px;overflow:hidden auto}.tl-tree::-webkit-scrollbar{width:8px}.tl-tree-resize{cursor:col-resize;transition:background var(--dur-2) var(--ease);background:0 0;flex:0 0 5px}.tl-tree-resize:hover,.tl-tree-resize.dragging{background:var(--accent)}.tl-main{border-radius:0 var(--r-lg) var(--r-lg) 0;flex-direction:column;flex:auto;min-width:0;height:100%;display:flex;overflow:hidden}#timeline{width:100%;height:28px;margin-top:var(--sp-3);cursor:default;border-radius:0;flex:0 0 28px}.tl-main #timeline{margin:0 0 var(--sp-3)}#tl-module-resize{cursor:ns-resize;z-index:6;height:6px;position:absolute;top:0;left:0;right:0}#tl-layers-canvas{background:var(--lane-bg);cursor:default;border-radius:0;flex:auto;width:100%;min-height:60px;display:block}.tt-row{align-items:center;gap:var(--sp-2);min-width:0;padding-right:var(--sp-2);box-sizing:border-box;min-height:var(--row-h);border-bottom:1px solid var(--border-soft);transition:background var(--dur-2) var(--ease);display:flex}.tt-row:hover{background:var(--hover)}.tt-row.selected{background:var(--accent-selected);box-shadow:inset 2px 0 0 var(--accent)}.tt-arrow{width:20px;height:100%;color:var(--muted);font-size:var(--fs-xs);cursor:pointer;-webkit-user-select:none;user-select:none;transition:color var(--dur-2) var(--ease);flex:0 0 20px;justify-content:center;align-items:center;line-height:1;display:inline-flex}.tt-arrow:hover{color:var(--text)}.tt-arrow-spacer{cursor:default}.tt-label{min-width:0;max-width:110px;color:var(--text);font-size:var(--row-fs);font-weight:var(--fw-medium);white-space:nowrap;text-overflow:ellipsis;flex:0 auto;overflow:hidden}.tt-cam-icon,.tt-text-icon,.tt-audio-icon{margin-right:var(--sp-1);color:var(--muted);line-height:1;font-size:var(--fs-xs);flex:none}.tt-count{color:var(--muted);font-size:var(--fs-xs);flex:none}.tt-sub-label,.tt-var-hint{min-width:0;color:var(--muted);font-size:var(--fs-xs);white-space:nowrap;text-overflow:ellipsis;flex:0 auto;overflow:hidden}.tt-empty{padding:var(--sp-3) var(--sp-4);color:var(--muted);font-size:var(--fs-sm)}.tt-plabel{color:var(--muted);font-size:var(--fs-xs);white-space:nowrap;flex:0 0 52px}.tt-clabel{color:var(--muted);font-size:var(--fs-xs);font-weight:var(--fw-strong);text-align:center;flex:0 0 16px}.tt-vname{min-width:0;max-width:180px;color:var(--text);font-size:var(--row-fs);white-space:nowrap;text-overflow:ellipsis;flex:0 auto;overflow:hidden}.tt-val,.tt-var-val{height:calc(var(--row-h) - 8px);padding:0 var(--sp-2);box-sizing:border-box;border:1px solid var(--border);border-radius:var(--r-xs);color:var(--text);font-family:var(--font-mono), monospace;font-size:calc(var(--row-fs) - 2px);font-variant-numeric:tabular-nums;text-align:center;white-space:nowrap;transition:border-color var(--dur-2) var(--ease), background var(--dur-2) var(--ease);background:0 0}.tt-val:hover,.tt-var-val:hover{border-color:var(--border-strong)}.tt-val:focus,.tt-var-val:focus{border-color:var(--accent);outline:none}.tt-val:disabled,.tt-var-val:disabled{opacity:.5;cursor:not-allowed}.tt-cval{width:40px}.tt-var-val{width:52px}.tt-vm-val{margin-left:var(--sp-2);color:var(--muted);font-size:var(--fs-xs);flex:none}.tt-vm-val.warn{color:var(--danger);font-weight:var(--fw-strong)}.tt-add-kf,.tt-add-var-kf,.tt-add-var{height:calc(var(--row-h) - 10px);min-height:var(--h-input-xs);padding:0 var(--sp-2);margin-left:var(--sp-2);border:1px solid var(--border);border-radius:var(--r-xs);color:var(--muted);font-size:calc(var(--row-fs) - 3px);cursor:pointer;transition:color var(--dur-2) var(--ease), border-color var(--dur-2) var(--ease), background var(--dur-2) var(--ease);background:0 0;flex:none;justify-content:center;align-items:center;line-height:1;display:inline-flex}.tt-add-var{padding:0 var(--sp-3);font-size:var(--row-fs)}.tt-add-kf:hover,.tt-add-var-kf:hover,.tt-add-var:hover{color:var(--accent);border-color:var(--accent);background:var(--accent-soft)}.tt-add-kf:disabled,.tt-add-var-kf:disabled{opacity:.5;cursor:not-allowed;color:var(--muted);border-color:var(--border);background:0 0}.tt-del-var{width:calc(var(--row-h) - 8px);height:calc(var(--row-h) - 8px);border-radius:var(--r-sm);color:var(--muted);font-size:var(--row-fs);cursor:pointer;transition:color var(--dur-2) var(--ease), background var(--dur-2) var(--ease);background:0 0;border:none;flex:none;justify-content:center;align-items:center;padding:0;line-height:1;display:inline-flex}.tt-del-var:hover{color:var(--danger);background:var(--danger-soft)}.tt-spin-space,.tt-rot-space{height:calc(var(--row-h) - 8px);padding:0 var(--sp-3);margin:0 var(--sp-3) 0 var(--sp-1);background:var(--panel-3);border:1px solid var(--border);border-radius:var(--r-xs);color:var(--muted);font-size:var(--fs-2xs);cursor:pointer;transition:color var(--dur-2) var(--ease), border-color var(--dur-2) var(--ease);flex:none;line-height:1}.tt-spin-space:hover,.tt-rot-space:hover{color:var(--accent);border-color:var(--accent)}.tl-loop{align-items:center;gap:var(--sp-3);height:var(--h-input);padding:0 var(--sp-4);background:var(--panel-3);border:1px solid var(--border);border-radius:var(--r-sm);transition:border-color var(--dur-2) var(--ease), box-shadow var(--dur-2) var(--ease);margin:0;display:inline-flex}.tl-loop:hover{border-color:var(--accent)}.tl-loop:has(input:checked){border-color:var(--accent);box-shadow:var(--focus-ring)}.tl-loop input{width:14px;height:14px;accent-color:var(--accent)}.ease-btn{width:var(--h-btn);height:var(--h-btn);background:var(--panel-3);border:1px solid var(--border);border-radius:var(--r-sm);cursor:pointer;transition:border-color var(--dur-2) var(--ease), background var(--dur-2) var(--ease);flex:none;justify-content:center;align-items:center;padding:1px;display:inline-flex}.ease-btn:hover{border-color:var(--accent);background:var(--panel-2)}.ease-btn svg{display:block}.easing-editor{z-index:var(--z-popover);width:216px;padding:var(--sp-5);background:var(--panel);border:1px solid var(--border);border-radius:var(--r-md);box-shadow:var(--shadow);transform-origin:0 0;animation:eePopIn var(--dur-2) var(--ease);position:fixed}.easing-editor.closing{animation:eePopOut var(--dur-2) var(--ease) forwards}@keyframes eePopIn{0%{opacity:0;transform:scale(.94)}to{opacity:1;transform:scale(1)}}@keyframes eePopOut{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.96)}}.ee-inputs{gap:var(--sp-2);margin-bottom:var(--sp-3);flex-direction:column;display:flex}.ee-input-row{align-items:center;gap:var(--sp-2);display:flex}.ee-input-label{width:22px;color:var(--muted);font-size:var(--fs-xs);font-weight:var(--fw-strong);flex:none}.ee-input-row input{min-width:0;height:var(--h-input-sm);padding:0 var(--sp-2);background:var(--panel-2);border:1px solid var(--border);border-radius:var(--r-sm);color:var(--text);font-size:var(--fs-xs);flex:1}.ee-input-row input:focus{border-color:var(--accent);outline:none}.ee-canvas{border-radius:var(--r-sm);cursor:crosshair;margin:0 auto;display:block}.ee-presets{width:100%;height:var(--h-input-sm);margin-top:var(--sp-4);padding:0 var(--sp-3);background:var(--panel-2);border:1px solid var(--border);border-radius:var(--r-sm);color:var(--text);font-size:var(--fs-sm)}body:has(>.easing-editor)>.csel-list{z-index:calc(var(--z-popover) + 1);background:var(--panel-2);width:216px;min-width:0}.kf-editor{z-index:var(--z-popover);width:224px;padding:var(--sp-5);gap:var(--sp-3);background:var(--panel);border:1px solid var(--border);border-radius:var(--r-md);box-shadow:var(--shadow);flex-direction:column;display:flex;position:fixed}.kf-editor.closing{animation:kfPopOut var(--dur-2) var(--ease) forwards}@keyframes kfPopOut{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(4px)}}.kf-editor .ke-title{color:var(--text);font-size:var(--fs-sm);font-weight:var(--fw-strong);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.kf-editor .row{min-height:0;margin:0}.kf-editor .ke-label{width:56px;color:var(--muted);font-size:var(--fs-sm);flex:none}.kf-editor .row input[type=number]{height:var(--h-input-sm);max-width:none;font-size:var(--fs-sm)}.kf-editor .vec3{height:var(--h-input-sm);flex:auto}.kf-editor .vec3-seg{padding:0 var(--sp-2)}.kf-editor .vec3 input{width:100%;font-size:var(--fs-xs)}.kf-editor .ke-btns{justify-content:flex-end;gap:var(--sp-2);display:flex}.kf-editor .ke-btns button{padding:var(--sp-1) var(--sp-4);background:var(--panel-3);border:1px solid var(--border);border-radius:var(--r-sm);color:var(--text);font-size:var(--fs-sm);cursor:pointer}.kf-editor .ke-btns button:hover{background:var(--panel-4);border-color:var(--border-strong)}.kf-editor .ke-btns button:active{background:var(--panel-2)}.fwin{z-index:var(--z-float);background:var(--panel-2);border:1px solid var(--border);border-radius:var(--r-lg);min-width:0;min-height:0;box-shadow:var(--shadow);flex-direction:column;display:flex;position:fixed;overflow:hidden}.fwin-titlebar{align-items:center;gap:var(--sp-2);min-height:var(--row-h);padding:0 var(--sp-2) 0 var(--sp-4);background:var(--panel-3);border-bottom:1px solid var(--border-soft);cursor:move;-webkit-user-select:none;user-select:none;flex:none;display:flex}.fwin-title{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--text);font-size:var(--fs-sm);font-weight:var(--fw-strong);flex:1;overflow:hidden}.fwin-btns{gap:var(--sp-1);flex:none;display:flex}.fwin-btn{width:var(--h-btn-sm);height:calc(var(--row-h) - 8px);border-radius:var(--r-sm);color:var(--muted);font-size:var(--fs-sm);cursor:pointer;transition:background var(--dur-1) var(--ease), color var(--dur-1) var(--ease);background:0 0;border:none;justify-content:center;align-items:center;padding:0;line-height:1;display:inline-flex}.fwin-btn:hover{background:var(--hover);color:var(--text)}.fwin-close:hover{background:var(--danger-soft);color:var(--danger)}.fwin-body{gap:var(--sp-3);min-height:0;padding:var(--sp-4);background:var(--panel);flex-direction:column;flex:1;display:flex;overflow:hidden}.fwin-minimized .fwin-body{display:none}.fwin-rsz{z-index:3;position:absolute}.fwin-rsz-n{cursor:ns-resize;height:6px;top:0;left:8px;right:8px}.fwin-rsz-s{cursor:ns-resize;height:6px;bottom:0;left:8px;right:8px}.fwin-rsz-e{cursor:ew-resize;width:6px;top:8px;bottom:8px;right:0}.fwin-rsz-w{cursor:ew-resize;width:6px;top:8px;bottom:8px;left:0}.fwin-rsz-ne{cursor:nesw-resize;width:10px;height:10px;top:0;right:0}.fwin-rsz-nw{cursor:nwse-resize;width:10px;height:10px;top:0;left:0}.fwin-rsz-se{cursor:nwse-resize;width:10px;height:10px;bottom:0;right:0}.fwin-rsz-sw{cursor:nesw-resize;width:10px;height:10px;bottom:0;left:0}.tex-fwin .fwin-body{overflow:hidden}.tex-fwin .tex-editor{flex:1;height:auto;min-height:0}.tex-fwin .tex-list,.tex-fwin .tex-io{flex:none;margin-top:0}.curve-btn{width:30px;height:var(--h-input-sm);background:var(--panel-2);border:1px solid var(--border);border-radius:var(--r-sm);cursor:pointer;transition:border-color var(--dur-2) var(--ease), background var(--dur-2) var(--ease);flex:none;justify-content:center;align-items:center;padding:0;display:flex}.curve-btn:hover{border-color:var(--accent)}.curve-btn.is-curve{border-color:var(--accent);background:var(--panel)}.curve-btn svg{display:block}.curve-thumb-flat{stroke:var(--muted);stroke-width:1.4px}.curve-thumb-curve{stroke:var(--accent);stroke-width:1.8px}.pp-num.is-curve{color:var(--accent)}.curve-editor{z-index:var(--z-popover);width:260px;padding:var(--sp-5);background:var(--panel);border:1px solid var(--border);border-radius:var(--r-md);box-shadow:var(--shadow);transform-origin:0 0;animation:eePopIn var(--dur-2) var(--ease);position:fixed}.ce-row{align-items:center;gap:var(--sp-2);margin-bottom:var(--sp-3);display:flex}.ce-type{min-width:0;height:var(--h-input-sm);padding:0 var(--sp-3);background:var(--panel-2);border:1px solid var(--border);border-radius:var(--r-sm);color:var(--text);font-size:var(--fs-sm);flex:1}.ce-canvas{border-radius:var(--r-sm);cursor:crosshair;touch-action:none;margin:0 auto;display:block}.ce-hint{margin-top:var(--sp-3);color:var(--muted);font-size:var(--fs-xs);line-height:1.4}.ce-tools{gap:var(--sp-2);margin-top:var(--sp-3);display:flex}.ce-tools button{height:var(--h-input-sm);padding:0 var(--sp-3);background:var(--panel-2);border:1px solid var(--border);border-radius:var(--r-sm);color:var(--text);font-size:var(--fs-sm);cursor:pointer;flex:1}.ce-tools button:hover{border-color:var(--accent)}body:has(>.curve-editor)>.csel-list{z-index:calc(var(--z-popover) + 1);background:var(--panel-2);width:232px;min-width:0}.csel{align-items:center;width:100%;min-width:0;display:flex;position:relative}.row .csel{min-width:0;margin-right:var(--sp-5);flex:1}.csel-btn{width:100%;min-width:0;height:var(--h-input);padding:0 26px 0 var(--sp-5);background:var(--panel);border:1px solid var(--border);border-radius:var(--r-md);color:var(--text);font-size:var(--fs-sm);white-space:nowrap;text-overflow:ellipsis;cursor:pointer;transition:border-color var(--dur-2) var(--ease), background var(--dur-2) var(--ease);justify-content:space-between;align-items:center;display:inline-flex;overflow:hidden}.csel-btn:hover{border-color:var(--accent);background:var(--panel-3)}.csel-btn:after{content:"";right:var(--sp-4);background:var(--muted);pointer-events:none;width:12px;height:12px;position:absolute;-webkit-mask:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M3 5l3 3 3-3' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") 50%/12px 12px no-repeat;mask:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M3 5l3 3 3-3' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") 50%/12px 12px no-repeat}.csel-list{z-index:var(--z-popover);min-width:120px;max-width:min(78vw,360px);max-height:42vh;padding:var(--sp-2);background:var(--panel);border:1px solid var(--border);border-radius:var(--r-md);box-shadow:var(--shadow);display:none;position:fixed;overflow:hidden auto}.csel-item{width:100%;height:28px;padding:0 var(--sp-5);border-radius:var(--r-sm);color:var(--text);font-size:var(--fs-md);text-align:left;white-space:nowrap;text-overflow:ellipsis;cursor:pointer;transition:background var(--dur-2) var(--ease), color var(--dur-2) var(--ease);background:0 0;border:none;display:block;overflow:hidden}.csel-item:hover{background:var(--hover);color:var(--text)}.csel-item.csel-sel{background:var(--accent-selected);color:var(--text)}.vec3{box-sizing:border-box;height:calc(var(--row-h) - 8px);background:var(--panel-2);border:1px solid var(--border-soft);border-radius:var(--r-sm);align-items:center;display:inline-flex;overflow:hidden}.vec3-seg{align-items:center;gap:var(--sp-2);height:100%;padding:0 var(--sp-3);display:inline-flex}.vec3-seg+.vec3-seg{border-left:1px solid var(--border-soft)}.vec3-seg span{color:var(--muted);font-size:var(--fs-2xs);flex:none;line-height:1}.vec3 input{text-align:center;width:42px;height:100%;box-shadow:none;color:var(--text);font-family:var(--font-mono), monospace;font-size:calc(var(--row-fs) - 2px);font-variant-numeric:tabular-nums;background:0 0;border:none;padding:0}.vec3 input:focus{outline:none}.vec3 input:disabled{opacity:.5}.tt-row .vec3 input{width:34px;font-size:var(--fs-2xs)}.tt-row .vec3-seg{padding:0 var(--sp-2)}.app-tooltip{z-index:var(--z-tooltip);max-width:280px;padding:var(--sp-3) 10px;background:var(--tooltip-bg);color:var(--tooltip-text);font-size:var(--fs-xs);line-height:var(--lh);border-radius:var(--r-md);pointer-events:none;white-space:normal;overflow-wrap:break-word;box-shadow:var(--shadow-sm);position:fixed}.topbar{grid-row:1}.layout{grid-row:2;grid-template-columns:auto var(--area-left-w,0px) minmax(0, 1fr) var(--area-right-w,0px) auto;grid-template-rows:minmax(0, 1fr) var(--tl-h,0px);min-width:0;min-height:0;display:grid}#strip-left{grid-area:1/1/3}#area-left{grid-area:1/2}#view-col{grid-area:1/3}#area-right{grid-area:1/4}#strip-right{grid-area:1/5/3}#dock-bottom{grid-area:2/2/auto/5}.view-col{background:var(--bg);flex-direction:column;min-width:0;min-height:0;display:flex}.view-col>#viewport{flex:auto;min-width:0;min-height:0;position:relative}.icon-strip{width:var(--w-strip);min-width:var(--w-strip);background:var(--panel);flex-direction:column;min-height:0;display:flex;overflow:hidden}#strip-left{border-right:1px solid var(--border)}#strip-right{border-left:1px solid var(--border)}.strip-half{align-items:stretch;gap:var(--sp-2);min-height:0;padding:var(--sp-4) var(--sp-2);scrollbar-width:none;flex-direction:column;flex:50%;display:flex;overflow:hidden auto}.strip-half::-webkit-scrollbar{width:0}.strip-half:first-child{justify-content:flex-start}.strip-half:last-child{justify-content:flex-end}.ws-icon{border-radius:var(--r-md);width:34px;height:34px;color:var(--muted);cursor:pointer;transition:background var(--dur-2) var(--ease), color var(--dur-2) var(--ease), border-color var(--dur-2) var(--ease);background:0 0;border:1px solid #0000;flex:none;justify-content:center;align-self:center;align-items:center;padding:0;display:inline-flex}.ws-icon svg{pointer-events:none;width:18px;height:18px}.ws-icon:hover{color:var(--text);background:var(--hover);border-color:var(--border)}.ws-icon.active{color:var(--accent);background:var(--accent-soft);border-color:var(--accent-soft)}body.ws-dragging .ws-icon{cursor:grabbing}.ws-insert-slot{box-sizing:border-box;background:var(--accent-soft);border:1px dashed var(--accent);border-radius:var(--r-md);pointer-events:none;flex:none;align-self:center;width:34px;height:34px}.side-area{background:var(--panel);flex-direction:column;min-width:0;min-height:0;display:flex;position:relative;overflow:hidden}#area-left{border-right:1px solid var(--border)}#area-right{border-left:1px solid var(--border)}.resize-handle-l,.resize-handle-r{z-index:6;cursor:col-resize;width:6px;transition:background var(--dur-2) var(--ease);background:0 0;position:absolute;top:0;bottom:0}.resize-handle-l{right:-3px}.resize-handle-r{left:-3px}.resize-handle-l:hover,.resize-handle-l.dragging,.resize-handle-r:hover,.resize-handle-r.dragging{background:var(--accent-soft)}.layout:not(.area-left-open) #resize-handle-l,.layout:not(.area-right-open) #resize-handle-r{display:none}.dock-bottom{background:var(--panel);border-top:1px solid var(--border);flex-direction:row;min-width:0;min-height:0;display:flex;position:relative;overflow:hidden}.dock-bottom[data-dir=vert]{flex-direction:column}#tl-module-resize{z-index:6;cursor:ns-resize;height:6px;position:absolute;top:-3px;left:0;right:0}#tl-module-resize:hover{background:var(--accent-soft)}.ws-group{background:var(--panel);flex-direction:column;flex:1 1 0;min-width:0;min-height:0;display:flex;position:relative;overflow:hidden}.ws-group.drop-target>.ws-tabs{background:var(--accent-soft)}.ws-tabs{height:var(--h-pane-head);padding:0 var(--sp-2) 0 var(--sp-3);background:var(--panel-2);border-bottom:1px solid var(--border);cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;transition:background var(--dur-2) var(--ease), border-color var(--dur-2) var(--ease);flex:none;align-items:stretch;display:flex;overflow:hidden}body.ws-dragging .ws-pane-head{cursor:grabbing}.ws-tab{align-items:center;gap:var(--sp-2);max-width:180px;padding:0 var(--sp-4);color:var(--muted);font-family:var(--font-ui), sans-serif;font-size:var(--fs-sm);font-weight:var(--fw-medium);white-space:nowrap;cursor:pointer;transition:color var(--dur-2) var(--ease), background var(--dur-2) var(--ease);background:0 0;border:none;border-bottom:2px solid #0000;display:inline-flex}.ws-tab-label{text-overflow:ellipsis;overflow:hidden}.ws-tab:hover{color:var(--text);background:var(--hover)}.ws-tab.active{color:var(--text);background:var(--panel);border-bottom-color:var(--accent)}.ws-tab-close,.ws-pane-btn{border-radius:var(--r-sm);width:22px;height:22px;color:var(--muted);cursor:pointer;transition:background var(--dur-2) var(--ease), color var(--dur-2) var(--ease), opacity var(--dur-2) var(--ease);background:0 0;border:none;flex:none;justify-content:center;align-self:center;align-items:center;padding:0;display:inline-flex}.ws-tab-close svg,.ws-pane-btn svg{pointer-events:none;width:14px;height:14px}.ws-tab-close:hover{background:var(--danger-soft);color:var(--danger)}.ws-pane-btn:hover{background:var(--hover);color:var(--text)}.ws-pane-btn+.ws-pane-btn,.ws-tab-close+.ws-pane-btn{margin-left:var(--sp-1)}.ws-pane-spacer{min-width:var(--sp-2);flex:auto}.ws-pane-btn{opacity:0;pointer-events:none}.ws-group:hover>.ws-tabs .ws-pane-btn,.ws-group:focus-within>.ws-tabs .ws-pane-btn,.ws-float:hover .ws-float-titlebar .ws-pane-btn{opacity:1;pointer-events:auto}.ws-tab-insert{width:2px;margin:var(--sp-2) 1px;border-radius:var(--r-pill);background:var(--accent);pointer-events:none;flex:none}.ws-group>.tab-pane,.ws-float-body>.tab-pane{min-width:0;min-height:0;padding:var(--sp-5);flex:auto;overflow:auto}.ws-group>#pane-timeline.tab-pane.active,.ws-float-body>#pane-timeline.tab-pane{flex-direction:column;padding:0;display:flex;overflow:hidden}.ws-group>#pane-timeline.tab-pane .tl-body,.ws-float-body>#pane-timeline.tab-pane .tl-body{margin-top:0}.side-area #pane-timeline .tl-body{overflow-x:auto}.side-area #pane-timeline .tl-tree{flex:0 1 var(--tl-tree-w,320px);min-width:92px}.side-area #pane-timeline .tl-main{flex:auto;min-width:180px}.dock-bottom .ws-tabs{background:var(--panel-2);height:30px}.dock-bottom .ws-tab{font-size:var(--fs-xs);max-width:160px;padding:0 var(--sp-4)}.dock-bottom .ws-tab.active{background:var(--panel)}.ws-split{transition:background var(--dur-2) var(--ease);background:0 0;flex:0 0 6px}.ws-split:hover,.ws-split.dragging{background:var(--accent-soft)}.ws-split-h{cursor:ns-resize}.ws-split-v{cursor:ew-resize}.ws-drop-zone{z-index:var(--z-dropzone);pointer-events:none;box-sizing:border-box;background:var(--accent-soft);border-radius:var(--r-md);opacity:0;transition:opacity var(--dur-2) var(--ease), background var(--dur-2) var(--ease);border:2px dashed #0000;position:fixed}.ws-drop-zone.visible{opacity:1;border-color:var(--accent)}.ws-drop-zone.active{background:var(--accent-selected)}.ws-drop-zone.replace{background:var(--orange-soft);border-color:var(--orange)}.ws-float{z-index:var(--z-float);background:var(--panel);border:1px solid var(--border-strong);border-radius:var(--r-lg);min-width:240px;min-height:160px;box-shadow:var(--shadow);flex-direction:column;display:flex;position:fixed;overflow:hidden}.ws-float-titlebar{align-items:center;gap:var(--sp-2);height:var(--h-pane-head);padding:0 var(--sp-2) 0 var(--sp-4);background:var(--panel-2);border-bottom:1px solid var(--border);cursor:grab;touch-action:none;flex:none;display:flex}.ws-float-titlebar:active{cursor:grabbing}.ws-float-title{min-width:0;font-size:var(--fs-sm);font-weight:var(--fw-medium);color:var(--text);text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.ws-float-dock{align-items:center;gap:var(--sp-2);height:var(--h-btn-xs);padding:0 var(--sp-4);border:1px solid var(--border);border-radius:var(--r-sm);background:var(--panel-3);color:var(--text);font-family:var(--font-ui), sans-serif;font-size:var(--fs-xs);cursor:pointer;flex:none;display:inline-flex}.ws-float-dock svg{pointer-events:none;width:13px;height:13px}.ws-float-dock:hover{border-color:var(--accent);color:var(--accent)}.ws-float-body{flex-direction:column;flex:1;min-height:0;display:flex;overflow:hidden}.ws-manage-pop{z-index:var(--z-modal);top:calc(var(--h-topbar) + var(--sp-5));right:var(--sp-5);width:260px;padding:var(--sp-4);background:var(--panel);border:1px solid var(--border-strong);border-radius:var(--r-lg);box-shadow:var(--shadow);position:fixed}.ws-manage-title{justify-content:space-between;align-items:center;gap:var(--sp-3);padding:0 var(--sp-2) var(--sp-3);font-size:var(--fs-sm);font-weight:var(--fw-strong);color:var(--text);display:flex}.ws-manage-close{border-radius:var(--r-sm);width:22px;height:22px;color:var(--muted);cursor:pointer;background:0 0;border:none;flex:none;justify-content:center;align-items:center;padding:0;display:inline-flex}.ws-manage-close svg{width:14px;height:14px}.ws-manage-close:hover{background:var(--hover);color:var(--text)}.ws-manage-list{gap:var(--sp-2);flex-direction:column;max-height:320px;display:flex;overflow-y:auto}.ws-manage-row{align-items:center;gap:var(--sp-2);display:flex}.ws-manage-name{min-width:0;height:var(--h-btn-sm);padding:0 var(--sp-4);text-align:left;border-radius:var(--r-sm);color:var(--text);font-family:var(--font-ui), sans-serif;font-size:var(--fs-sm);cursor:pointer;text-overflow:ellipsis;white-space:nowrap;background:0 0;border:1px solid #0000;flex:1;overflow:hidden}.ws-manage-name:hover{background:var(--accent-soft);color:var(--accent)}.ws-manage-empty{padding:var(--sp-3) var(--sp-2);color:var(--muted);font-size:var(--fs-sm)}#panes[hidden]{display:none}@media (width<=1024px){.icon-strip{width:40px;min-width:40px}.strip-half{padding:var(--sp-3) var(--sp-1);gap:var(--sp-1)}.ws-icon{width:30px;height:30px}.ws-icon svg{width:16px;height:16px}.ws-insert-slot{width:30px;height:30px}.ws-tab{max-width:110px;padding:0 var(--sp-3)}}@media (pointer:coarse){.icon-strip{width:46px;min-width:46px}.ws-icon,.ws-insert-slot{width:38px;height:38px}.ws-tabs,.ws-pane-head{height:38px}.ws-tab{font-size:var(--fs-md)}.ws-tab-close,.ws-pane-btn{width:28px;height:28px}.ws-tab-close svg,.ws-pane-btn svg{width:16px;height:16px}.ws-pane-btn{opacity:1;pointer-events:auto}.ws-float-titlebar{height:40px}}.welcome-overlay{z-index:var(--z-welcome);background:var(--bg);color:var(--text);flex-direction:column;display:flex;position:fixed;inset:0;overflow:auto}.welcome-header{justify-content:space-between;align-items:center;gap:var(--sp-6);padding:var(--sp-7) var(--sp-8) var(--sp-6);flex-wrap:wrap;display:flex}.welcome-title{font-size:var(--fs-xl);font-weight:var(--fw-strong)}.welcome-subtitle{margin-top:var(--sp-2);color:var(--muted);font-size:var(--fs-md)}.welcome-grid{gap:var(--sp-6);width:100%;max-width:1120px;padding:var(--sp-4) var(--sp-8) var(--sp-8);grid-template-columns:repeat(auto-fill,minmax(274px,1fr));margin:0 auto;display:grid}.welcome-card{padding:var(--sp-3);background:var(--panel);border:1px solid var(--border);border-radius:var(--r-lg);color:var(--text);text-align:center;cursor:pointer;transition:border-color var(--dur-2) var(--ease), transform var(--dur-2) var(--ease), box-shadow var(--dur-2) var(--ease);flex-direction:column;align-items:center;font-family:inherit;display:flex}.welcome-card:hover,.welcome-card:focus-visible{border-color:var(--accent);box-shadow:var(--shadow);outline:none;transform:translateY(-2px)}.welcome-card-preview{aspect-ratio:1;border-radius:var(--r-md);background-color:var(--stage-clear);background-position:50%;background-repeat:no-repeat;background-size:cover;width:100%}.welcome-card-name{margin-top:var(--sp-4);font-size:var(--fs-md)}.welcome-body{flex:auto;align-items:stretch;min-height:0;display:flex}.welcome-tabs{gap:var(--sp-2);padding:var(--sp-4) var(--sp-3);border-right:1px solid var(--border);flex-direction:column;flex:0 0 208px;display:flex}.welcome-tab{padding:var(--sp-3) var(--sp-4);border-radius:var(--r-md);color:var(--text);font:inherit;font-size:var(--fs-md);text-align:left;cursor:pointer;transition:background var(--dur-2) var(--ease), color var(--dur-2) var(--ease);background:0 0;border:0;border-left:3px solid #0000;align-items:center;display:flex}.welcome-tab:hover{background:var(--panel)}.welcome-tab.active{background:var(--panel);border-left-color:var(--accent);color:var(--accent);font-weight:var(--fw-strong)}.welcome-content{min-width:0;padding:var(--sp-6) var(--sp-8) var(--sp-8);flex:auto;overflow:auto}.welcome-pane{display:none}.welcome-pane.active{display:block}.welcome-pane-title{font-size:var(--fs-lg);font-weight:var(--fw-strong)}.welcome-pane-hint{margin:var(--sp-2) 0 var(--sp-5);color:var(--muted);font-size:var(--fs-md)}.welcome-new-project{padding:var(--sp-3) var(--sp-6);font-size:var(--fs-md)}.welcome-pane .welcome-grid{max-width:none;margin:0;padding:0}.eff-panel{height:100%;padding:var(--sp-1) var(--sp-1) var(--sp-4);gap:var(--sp-2);flex-direction:column;display:flex;overflow-y:auto}.eff-sec{background:var(--panel-2);border:1px solid var(--border-soft);border-radius:var(--r-sm);flex:none;overflow:hidden}.eff-sec-head{align-items:center;gap:var(--sp-2);width:100%;min-height:calc(var(--row-h) - 2px);padding:0 var(--sp-2) 0 var(--sp-3);background:var(--panel-3);color:var(--text);font-size:var(--fs-sm);font-weight:var(--fw-strong);text-align:left;cursor:pointer;border:none;display:flex}.eff-sec-head:hover{background:var(--panel-4)}.eff-sec-head:focus-visible{outline:var(--focus-ring);outline-offset:-2px}.eff-sec-caret{width:1em;color:var(--muted);font-size:var(--fs-xs);transition:transform var(--dur-collapse) var(--ease);flex:none;margin-left:auto}.eff-sec-caret:before{content:"▾"}.eff-sec.collapsed .eff-sec-caret{transform:rotate(-90deg)}.eff-sec-title{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.eff-sec-body{padding:var(--sp-2);gap:var(--sp-1);interpolate-size:allow-keywords;height:auto;transition:height var(--dur-collapse) var(--ease), padding var(--dur-collapse) var(--ease);flex-direction:column;display:flex;overflow:hidden}.eff-sec.collapsed .eff-sec-body{height:0;padding-top:0;padding-bottom:0}.eff-head-name{font-weight:var(--fw-strong);font-size:var(--fs-md);color:var(--text);text-overflow:ellipsis;white-space:nowrap;padding:0 var(--sp-1);overflow:hidden}.eff-row{grid-template-columns:var(--eff-label-w) minmax(0, 1fr) auto;align-items:center;gap:var(--sp-2);min-height:var(--row-h);margin:0;display:grid}.eff-label{text-align:right;color:var(--muted);font-size:var(--fs-xs);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.eff-ctrl{align-items:center;gap:var(--sp-1);min-width:0;display:flex}.eff-icons{align-items:center;gap:var(--sp-1);display:flex}.eff-row>.eff-ctrl>input[type=text],.eff-row>.eff-ctrl>input[type=number],.eff-row>.eff-ctrl>select,.eff-row>.eff-ctrl .pp-color,.eff-row>.eff-ctrl .eff-num{min-width:0;height:calc(var(--row-h) - 8px);background:var(--panel-3);border:1px solid var(--border);border-radius:var(--r-sm);color:var(--text);font-size:var(--row-fs);padding:0 var(--sp-3)}.eff-row>.eff-ctrl>select{max-width:100%}.eff-row input[type=number]{font-variant-numeric:tabular-nums;text-align:center}.eff-row input:focus,.eff-row select:focus{outline:var(--focus-ring);border-color:var(--accent)}.eff-range{align-items:center;gap:var(--sp-1);flex:1;min-width:0;display:flex}.eff-range input[type=range]{flex:1;min-width:0}.eff-num{width:var(--w-field-num);flex:none}.eff-color{align-items:center;gap:var(--sp-1);flex:1;min-width:0;display:flex}.eff-color .pp-color{flex:none;width:9ch}.eff-row .color-swatch{width:var(--row-h);height:calc(var(--row-h) - 8px);border:1px solid var(--border-soft);border-radius:var(--r-sm);cursor:pointer;flex:none;padding:0}.eff-kf-btn{border-radius:var(--r-sm);width:22px;height:22px;color:var(--muted);font-size:var(--fs-sm);cursor:pointer;background:0 0;border:1px solid #0000;padding:0}.eff-kf-btn:hover{background:var(--hover);color:var(--text)}.eff-kf-btn.on{color:var(--accent)}.eff-hint{color:var(--muted);font-size:var(--fs-xs);padding:0 var(--sp-1);line-height:1.5}.eff-tpl-bar{gap:var(--sp-1);flex-wrap:wrap;display:flex}.eff-tpl,.eff-export-bar button{min-width:0;height:var(--h-input-sm);padding:0 var(--sp-2);border:1px solid var(--border-soft);border-radius:var(--r-sm);background:var(--panel);color:var(--text);font-size:var(--fs-xs);cursor:pointer;text-overflow:ellipsis;white-space:nowrap;flex:auto;overflow:hidden}.eff-tpl{transition:background var(--dur-1) var(--ease), border-color var(--dur-1) var(--ease)}.eff-tpl:hover{background:var(--hover);border-color:var(--accent)}.eff-tpl:focus-visible{outline:var(--focus-ring)}.eff-layer-list{gap:var(--sp-1);flex-direction:column;display:flex}.eff-layer{align-items:center;gap:var(--sp-1);min-height:var(--row-h);padding:0 var(--sp-1);border:1px solid var(--border-soft);border-radius:var(--r-sm);background:var(--panel);display:flex}.eff-layer.active{border-color:var(--accent);background:var(--selected)}.eff-layer-name{min-width:0;color:var(--text);font-size:var(--fs-xs);text-align:left;cursor:pointer;text-overflow:ellipsis;white-space:nowrap;background:0 0;border:none;flex:1;overflow:hidden}.eff-layer-btn{border-radius:var(--r-sm);width:22px;height:22px;color:var(--muted);cursor:pointer;font-size:var(--fs-sm);background:0 0;border:1px solid #0000;flex:none;padding:0}.eff-layer-btn:hover:not(:disabled){background:var(--hover);color:var(--text)}.eff-layer-btn:disabled{opacity:.35;cursor:default}.eff-layer-btn:focus-visible{outline:var(--focus-ring)}.eff-layer-add{min-height:var(--h-input-sm);padding:0 var(--sp-2);border:1px dashed var(--border);border-radius:var(--r-sm);color:var(--muted);font-size:var(--fs-xs);cursor:pointer;background:0 0}.eff-layer-add:hover{border-color:var(--accent);color:var(--accent);background:var(--hover)}.eff-placement-bar{gap:var(--sp-1);grid-template-columns:repeat(5,minmax(0,1fr));display:grid}.eff-placement{padding:var(--sp-1) 0;border:1px solid var(--border-soft);border-radius:var(--r-sm);background:var(--panel);color:var(--muted);cursor:pointer;font-size:var(--fs-2xs);flex-direction:column;align-items:center;gap:2px;display:flex}.eff-placement.active{border-color:var(--accent);color:var(--accent);background:var(--selected)}.eff-placement canvas{width:28px;height:22px}.eff-placement-label{text-overflow:ellipsis;white-space:nowrap;max-width:100%;overflow:hidden}.eff-bhv-list{gap:var(--sp-1);flex-direction:column;display:flex}.eff-bhv{border:1px solid var(--border-soft);border-radius:var(--r-sm);background:var(--panel);overflow:hidden}.eff-bhv-head{align-items:center;gap:var(--sp-1);min-height:var(--row-h);padding:0 var(--sp-1);background:var(--panel-3);display:flex}.eff-bhv-label{color:var(--text);font-size:var(--fs-xs);font-weight:var(--fw-strong);flex:1}.eff-bhv-chk{margin:0}.eff-bhv-del,.eff-bhv-caret{border-radius:var(--r-sm);width:22px;height:22px;color:var(--muted);cursor:pointer;background:0 0;border:1px solid #0000;flex:none;padding:0}.eff-bhv-del:hover{color:var(--danger);background:var(--danger-soft)}.eff-bhv-caret:hover{background:var(--hover);color:var(--text)}.eff-bhv-params{padding:var(--sp-1) var(--sp-2);gap:var(--sp-1);flex-direction:column;display:flex}.eff-bhv-add{min-height:var(--h-input-sm);padding:0 var(--sp-2);border:1px dashed var(--border);border-radius:var(--r-sm);color:var(--muted);font-size:var(--fs-xs);cursor:pointer;background:0 0}.eff-bhv-add:hover{border-color:var(--accent);color:var(--accent);background:var(--hover)}.eff-bhv-menu{border:1px solid var(--border);border-radius:var(--r-sm);background:var(--panel-3);padding:var(--sp-1);flex-direction:column;gap:2px;display:flex}.eff-bhv-menu-item{min-height:var(--h-input-sm);border-radius:var(--r-sm);color:var(--text);font-size:var(--fs-xs);text-align:left;cursor:pointer;padding:0 var(--sp-2);background:0 0;border:none}.eff-bhv-menu-item:hover{background:var(--hover);color:var(--accent)}.eff-track-row{align-items:center;gap:var(--sp-1);min-height:var(--row-h);padding:0 var(--sp-1);border:1px solid var(--border-soft);border-radius:var(--r-sm);background:var(--panel);display:flex}.eff-track-label{min-width:0;color:var(--text);font-size:var(--fs-xs);text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.eff-loop-row{align-items:center;gap:var(--sp-1);padding:2px var(--sp-1) var(--sp-1);display:flex}.eff-loop-inp{width:var(--w-field-num);height:var(--h-input-sm);background:var(--panel);border:1px solid var(--border-soft);border-radius:var(--r-sm);color:var(--text);font-size:var(--fs-2xs);padding:0 var(--sp-1)}.eff-cp-list{gap:var(--sp-1);flex-direction:column;display:flex}.eff-cp-row{align-items:center;gap:var(--sp-1);padding:var(--sp-1);border:1px solid var(--border-soft);border-radius:var(--r-sm);background:var(--panel);grid-template-columns:auto minmax(0,1fr) auto;grid-template-areas:"color nums del";display:grid}.eff-cp-row .eff-color{flex:none;grid-area:color}.eff-cp-row .eff-color .pp-color{width:8ch}.eff-cp-nums{gap:var(--sp-1);grid-area:nums;grid-template-columns:repeat(6,minmax(0,1fr));min-width:0;display:grid}.eff-cp-row .eff-cp-num{width:100%;min-width:0;height:var(--h-input-sm);background:var(--panel);border:1px solid var(--border-soft);border-radius:var(--r-sm);color:var(--text);font-size:var(--fs-2xs);font-variant-numeric:tabular-nums;padding:0 2px}.eff-cp-row .eff-cp-blend{width:100%;min-width:0;height:var(--h-input-sm);background:var(--panel);border:1px solid var(--border-soft);border-radius:var(--r-sm);color:var(--text);font-size:var(--fs-2xs);grid-area:nums}.eff-cp-row>.eff-layer-btn{grid-area:del}.eff-script-src{resize:vertical;background:var(--code-bg);border:1px solid var(--border-soft);border-radius:var(--r-sm);width:100%;min-height:120px;color:var(--text);font-family:var(--font-mono), monospace;font-size:var(--fs-xs);padding:var(--sp-2);box-sizing:border-box}.eff-script-err{color:var(--danger);font-size:var(--fs-2xs);min-height:1em}.eff-var-list{gap:var(--sp-1);flex-direction:column;display:flex}.eff-var-row{align-items:center;gap:var(--sp-1);display:flex}.eff-var-name{min-width:0;height:var(--h-input-sm);background:var(--panel);border:1px solid var(--border-soft);border-radius:var(--r-sm);color:var(--text);font-size:var(--fs-xs);padding:0 var(--sp-1);flex:0 34%}.eff-var-base{min-width:64px;height:var(--h-input-sm);background:var(--panel);border:1px solid var(--border-soft);border-radius:var(--r-sm);color:var(--text);font-size:var(--fs-xs);padding:0 var(--sp-1);flex:1}.eff-script-editor{margin-bottom:var(--sp-1);resize:vertical;border:1px solid var(--border-soft);border-radius:var(--r-sm);min-height:120px;overflow:hidden}.eff-script-editor .cm-editor{width:100%;height:100%}.eff-script-editor .cm-scroller{overflow:auto}.eff-script-editor .cm-scroller::-webkit-scrollbar{width:9px;height:9px}.eff-console-body::-webkit-scrollbar{width:9px;height:9px}.eff-script-editor .cm-scroller::-webkit-scrollbar-track{background:0 0}.eff-console-body::-webkit-scrollbar-track{background:0 0}.eff-script-editor .cm-scroller::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb);border-radius:var(--r-pill);background-clip:border-box;border:none}.eff-console-body::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb);border-radius:var(--r-pill);background-clip:border-box;border:none}.eff-script-editor .cm-scroller::-webkit-scrollbar-thumb:hover{background:var(--scrollbar-thumb-hover)}.eff-console-body::-webkit-scrollbar-thumb:hover{background:var(--scrollbar-thumb-hover)}.eff-script-console{margin-bottom:var(--sp-1);border:1px solid var(--border-soft);border-radius:var(--r-sm);background:var(--terminal-bg);overflow:hidden}.eff-console-head{align-items:center;gap:var(--sp-2);width:100%;padding:0 var(--sp-2);height:var(--h-input-sm);color:var(--muted);font-size:var(--fs-xs);cursor:pointer;text-align:left;background:0 0;border:none;display:flex}.eff-console-head:hover{color:var(--text)}.eff-console-head.has-error .eff-console-title{color:var(--danger)}.eff-console-caret{text-align:center;flex:none;width:1em;font-size:11px;line-height:1}.eff-console-caret:before{content:"▸"}.eff-script-console.open .eff-console-caret:before{content:"▾"}.eff-console-title{flex:none}.eff-console-badge{min-width:1.2em;color:var(--muted);font-variant-numeric:tabular-nums;flex:none}.eff-console-clear{padding:0 var(--sp-1);border:1px solid var(--border-soft);border-radius:var(--r-sm);color:var(--muted);font-size:var(--fs-xs);cursor:pointer;background:0 0;margin-left:auto}.eff-console-clear:hover{color:var(--text);border-color:var(--accent)}.eff-console-body{display:none}.eff-script-console.open .eff-console-body{max-height:160px;padding:var(--sp-2);border-top:1px solid var(--border-soft);font-family:var(--font-mono), monospace;font-size:var(--fs-xs);line-height:var(--lh);display:block;overflow:auto}.eff-console-line{white-space:pre-wrap;word-break:break-word;color:var(--text)}.eff-console-line.err{color:var(--danger)}.eff-console-empty{color:var(--muted)}.eff-export-bar{gap:var(--sp-1);margin-top:var(--sp-1);flex-wrap:wrap;display:flex}.eff-export-bar button:hover{background:var(--hover);border-color:var(--accent)}.eff-export-bar button:focus-visible{outline:var(--focus-ring)}@font-face{font-family:"Press Start 2P";src:url(./PressStart2P-Regular-2BZhbCiP.ttf)format("truetype");font-weight:400;font-style:normal;font-display:swap}.tt-text .tt-label{color:var(--bar-text)}.tt-audio .tt-label{color:var(--bar-audio)}#prop-panel{gap:var(--sp-1);padding:var(--sp-1) 0;flex-direction:column;display:flex}#prop-panel .hint{padding:var(--sp-4);color:var(--muted);font-size:var(--fs-md)}#prop-panel .prow{grid-template-columns:var(--pp-label-w) minmax(0, 1fr) auto;align-items:center;gap:var(--sp-2);min-height:var(--row-h);padding:1px 0;display:grid}#prop-panel .prow-alt-span{grid-column:1/-1}#prop-panel>.pp-id,#prop-panel>.prow,#prop-panel>.hint{margin-left:calc(var(--sp-2) + 1px);margin-right:calc(var(--sp-2) + 1px)}#prop-panel .prow .prow-head{justify-content:flex-end}#prop-panel .prow-label{text-align:right;text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}#prop-panel .prow.pp-bhv,#prop-panel .prow.pp-row-head{grid-template-columns:minmax(0,1fr) auto}#prop-panel .prow.pp-bhv .prow-label,#prop-panel .prow.pp-row-head .prow-label{text-align:left}.prow-icons{align-items:center;gap:var(--sp-1);grid-column:3;display:flex}#prop-panel .prow.pp-bhv .prow-icons,#prop-panel .prow.pp-row-head .prow-icons{grid-column:2}.prow-icons:empty{display:none}#prop-panel .prow>input,#prop-panel .prow>select{width:100%;min-width:0;height:calc(var(--row-h) - 8px);padding:0 var(--sp-3);background:var(--panel);border:1px solid var(--border-soft);border-radius:var(--r-sm);color:var(--text);font-size:var(--row-fs);transition:border-color var(--dur-2) var(--ease), background var(--dur-2) var(--ease), box-shadow var(--dur-2) var(--ease)}#prop-panel .prow>input[type=number]{font-family:var(--font-mono), monospace;font-variant-numeric:tabular-nums;text-align:center}#prop-panel .prow>select{text-align:left;cursor:pointer}#prop-panel .prow>input:hover,#prop-panel .prow>select:hover{background:var(--panel-2)}#prop-panel .prow>input:focus,#prop-panel .prow>select:focus{border-color:var(--accent);box-shadow:var(--focus-ring);outline:none}#prop-panel .prow>input:disabled{opacity:.45}#prop-panel .prow input.pp-check{width:15px;height:15px;accent-color:var(--accent);flex:none}.pp-mini{min-width:18px;height:18px;padding:0 var(--sp-2);background:var(--panel-3);border:1px solid var(--border-soft);border-radius:var(--r-sm);color:var(--muted);font-size:var(--fs-2xs);cursor:pointer;line-height:1}.pp-mini:hover:not(:disabled){background:var(--panel-4);color:var(--text)}.pp-mini:disabled{opacity:.4;cursor:default}.pp-mini:focus-visible{box-shadow:var(--focus-ring);outline:none}#prop-panel .prow-color input.pp-color{width:9ch;min-width:0}#prop-panel .row>span:first-child{text-align:right;padding-right:var(--sp-2);flex:0 0 42%}.pp-section{gap:var(--sp-2);margin-top:var(--sp-3);padding-top:var(--sp-2);border-top:1px solid var(--border-soft);flex-direction:column;display:flex}.pp-section-head{margin-bottom:var(--sp-1);color:var(--muted);font-size:var(--fs-sm);font-weight:var(--fw-strong)}.pp-sec{margin-top:var(--sp-2);background:var(--panel-2,var(--panel));border:1px solid var(--border-soft);border-radius:var(--r-sm);flex-direction:column;display:flex;overflow:hidden}.pp-sec:first-of-type{margin-top:0}.pp-sec-head{align-items:center;gap:var(--sp-2);width:100%;min-height:calc(var(--row-h) - 2px);padding:0 var(--sp-2) 0 var(--sp-3);background:var(--panel-3);color:var(--text);font:inherit;font-size:var(--fs-sm);font-weight:var(--fw-strong);text-align:left;cursor:pointer;border:none;display:flex}.pp-sec-head:hover{background:var(--panel-4)}.pp-sec-head:focus-visible{box-shadow:var(--focus-ring);outline:none}.pp-sec-head.static{cursor:default}.pp-sec-head.static:hover{background:var(--panel-3)}.pp-sec-caret{width:0;height:0;transition:transform var(--dur-collapse) var(--ease);color:var(--muted);border-top:3px solid #0000;border-bottom:3px solid #0000;border-left:4px solid;flex:none;margin-left:auto;transform:rotate(90deg)}.pp-sec.collapsed .pp-sec-caret{transform:rotate(0)}.pp-sec-title{text-overflow:ellipsis;white-space:nowrap;flex:auto;min-width:0;overflow:hidden}.pp-sec-body{padding:0 var(--sp-2) var(--sp-1);interpolate-size:allow-keywords;height:auto;transition:height var(--dur-collapse) var(--ease), padding var(--dur-collapse) var(--ease);flex-direction:column;display:flex;overflow:hidden}.pp-sec.collapsed .pp-sec-body{height:0;padding-bottom:0}.pp-sub-head{margin-top:var(--sp-3);padding-top:var(--sp-2);border-top:1px solid var(--border-soft);color:var(--muted);font-size:var(--fs-sm);font-weight:var(--fw-strong)}.pp-sec-plain .pp-sec-head{cursor:default}.pp-id{padding:var(--sp-1) var(--sp-2) var(--sp-2);flex-direction:column;gap:1px;display:flex}.pp-id-name{color:var(--text);font-size:var(--fs-md);font-weight:var(--fw-strong)}.pp-id-type{color:var(--muted);font-size:var(--fs-sm)}.pp-stat{margin:0;padding:0}.pp-textarea{width:100%;min-height:56px;padding:var(--sp-3) var(--sp-4);background:var(--panel-3);border:1px solid var(--border);border-radius:var(--r-sm);color:var(--text);font-family:var(--font-ui), sans-serif;font-size:var(--row-fs);line-height:var(--lh);resize:vertical;transition:border-color var(--dur-2) var(--ease), box-shadow var(--dur-2) var(--ease)}.pp-textarea:focus{border-color:var(--accent);box-shadow:var(--focus-ring);outline:none}.pp-textarea:disabled{opacity:.45}.prow{gap:var(--sp-1);flex-direction:column;padding:1px 0;display:flex}.prow-head{align-items:center;gap:var(--sp-3);min-height:var(--row-h);display:flex}.prow-label{color:var(--text);font-size:var(--row-fs);flex:none}#prop-panel .prow .vec3{background:var(--panel);border:1px solid var(--border-soft);grid-auto-columns:minmax(0,1fr);grid-auto-flow:column;gap:0;width:100%;padding-left:0;display:grid}#prop-panel .prow .vec3-seg{padding:0 var(--sp-2);justify-content:flex-end}#prop-panel .prow .vec3-seg input{width:100%;min-width:0;height:100%;box-shadow:none;color:var(--text);font-size:var(--row-fs);background:0 0;border:none;padding:0}#prop-panel .prow .vec3-seg input:focus{color:var(--accent);outline:none}#prop-panel .prow .vec3-seg input:disabled{opacity:.4}#prop-panel .prow .vec3-seg>span{color:var(--muted);font-size:var(--fs-2xs);flex:none;line-height:1}.prow-color{align-items:center;gap:var(--sp-3);display:flex}.prow-color input.pp-color{min-width:0;height:var(--h-input-sm);padding:0 var(--sp-3);background:var(--panel-3);border:1px solid var(--border);border-radius:var(--r-sm);color:var(--text);font-family:var(--font-mono), monospace;font-size:var(--fs-sm);transition:border-color var(--dur-2) var(--ease), box-shadow var(--dur-2) var(--ease);flex:auto}.prow-color input.pp-color:focus{border-color:var(--accent);box-shadow:var(--focus-ring);outline:none}.prow-color input.pp-color:disabled{opacity:.45}.pp-diamond{width:16px;height:16px;color:var(--muted);font-size:var(--fs-sm);opacity:.7;cursor:pointer;transition:color var(--dur-2) var(--ease), opacity var(--dur-2) var(--ease);background:0 0;border:none;flex:none;padding:0;line-height:1}.pp-diamond:hover{opacity:1}.pp-diamond.on{color:var(--accent);opacity:1;text-shadow:0 0 4px}.pp-diamond:disabled{cursor:default;opacity:.35}.pp-diamond:disabled:hover{opacity:.35}.pp-space{background:var(--panel-3);border:1px solid var(--border);border-radius:var(--r-sm);width:20px;height:17px;color:var(--text);font-family:var(--font-mono), monospace;font-size:var(--fs-2xs);cursor:pointer;transition:border-color var(--dur-2) var(--ease);flex:none;padding:0;line-height:1}.pp-space:hover{border-color:var(--accent)}#prop-panel .row input.pp-num,#prop-panel .row select{min-width:0;height:calc(var(--row-h) - 8px);padding:0 var(--sp-3);background:var(--panel-3);border:1px solid var(--border);border-radius:var(--r-sm);color:var(--text);font-size:var(--row-fs)}#prop-panel .row input[type=checkbox]{width:15px;height:15px;accent-color:var(--accent);flex:none}#prop-panel .row input[type=range]{flex:auto}#prop-panel .row .info-val{color:var(--text);font-family:var(--font-mono), monospace;font-variant-numeric:tabular-nums;font-size:var(--fs-2xs);margin-left:auto}#prop-panel .color-swatch{border:1px solid var(--border);border-radius:var(--r-sm);cursor:pointer;flex:none;width:24px;height:24px;padding:0}#prop-panel .color-swatch:hover{border-color:var(--accent)}.guide-root{z-index:var(--z-guide);pointer-events:none;position:fixed;inset:0}.guide-root[hidden]{display:none}.guide-mask{background:color-mix(in srgb, var(--bg) 62%, transparent);pointer-events:auto;position:fixed}.guide-hole{pointer-events:none;border:2px solid var(--accent);border-radius:var(--r-sm);box-shadow:0 0 0 1px color-mix(in srgb, var(--accent) 32%, transparent), 0 0 14px color-mix(in srgb, var(--accent) 40%, transparent);transition:left var(--dur-2) var(--ease), top var(--dur-2) var(--ease), width var(--dur-2) var(--ease), height var(--dur-2) var(--ease);position:fixed}body.guide-lock .app-tooltip{display:none!important}.guide-bubble{max-width:320px;padding:var(--sp-4) var(--sp-4) var(--sp-3);background:var(--panel);border:1px solid var(--border);border-radius:var(--r-md);box-shadow:var(--shadow-lg);pointer-events:auto;font-size:var(--fs-sm);position:fixed}.guide-bubble-title{font-weight:var(--fw-strong);color:var(--accent);font-size:var(--fs-xs);margin-bottom:var(--sp-2)}.guide-bubble-body{color:var(--text);white-space:pre-wrap;line-height:1.55}.guide-bubble-wait{margin-top:var(--sp-2);color:var(--muted);font-size:var(--fs-xs)}.guide-bubble-row{align-items:center;gap:var(--sp-2);margin-top:var(--sp-3);display:flex}.guide-bubble-row .spacer{flex:1}.guide-btn{height:var(--h-btn-sm);padding:0 var(--sp-4);background:var(--accent);color:var(--text-on-accent);border-radius:var(--r-sm);font-size:var(--fs-xs);cursor:pointer;border:1px solid #0000}.guide-btn:disabled{opacity:.45;cursor:default}.guide-btn.ghost{color:var(--muted);padding:0 var(--sp-3);background:0 0;border-color:#0000}.guide-btn.ghost:hover{color:var(--text)}.guide-btn.tiny{font-size:var(--fs-2xs);padding:0 var(--sp-2);height:auto;line-height:1.6}.guide-btn.tiny.quit{color:var(--danger)}.guide-keys{margin-top:var(--sp-2);color:var(--muted);font-size:var(--fs-2xs);display:none}.guide-bubble:hover .guide-keys{display:block}.guide-panel{height:100%;min-height:0;font-size:var(--fs-sm);display:flex}.guide-toc{min-width:0;padding:var(--sp-2);border-right:1px solid var(--border-soft);flex:0 0 148px;overflow:auto}.guide-toc-item{align-items:center;gap:var(--sp-2);width:100%;padding:var(--sp-2) var(--sp-2);border-radius:var(--r-sm);color:var(--muted);text-align:left;font-size:var(--fs-xs);cursor:pointer;background:0 0;border:none;display:flex}.guide-toc-item:hover{background:var(--panel-2);color:var(--text)}.guide-toc-item.active{background:var(--panel-3);color:var(--text)}.guide-toc-read{color:var(--accent);font-size:var(--fs-2xs)}.guide-body{min-width:0;padding:var(--sp-4) var(--sp-5) var(--sp-6);flex:1;overflow:auto}.guide-ch-title{font-size:var(--fs-lg);font-weight:var(--fw-strong);margin:0 0 var(--sp-3)}.guide-body p{margin:0 0 var(--sp-3);color:var(--text);line-height:1.65}.guide-body h3{font-size:var(--fs-md);font-weight:var(--fw-strong);margin:var(--sp-5) 0 var(--sp-2)}.guide-body h4{font-size:var(--fs-sm);font-weight:var(--fw-strong);color:var(--accent);margin:var(--sp-4) 0 var(--sp-1)}.guide-body ul{margin:0 0 var(--sp-3);padding-left:var(--sp-5)}.guide-body li{margin-bottom:var(--sp-1);line-height:1.65}.guide-body code{font-family:var(--font-mono), monospace;font-size:var(--fs-xs);background:var(--panel-3);border-radius:var(--r-xs);padding:0 3px}.guide-note{border-left:2px solid var(--accent);background:var(--panel-2);padding:var(--sp-2) var(--sp-3);margin:0 0 var(--sp-3);color:var(--muted);font-size:var(--fs-xs);line-height:1.6}.guide-symptom{color:var(--muted);font-size:var(--fs-xs);margin:0 0 var(--sp-1)}.guide-fig{margin:0 0 var(--sp-3);padding:var(--sp-3);background:var(--panel-2);border:1px solid var(--border-soft);border-radius:var(--r-sm);overflow-x:auto}.guide-fig svg{display:block}.guide-fig-cap{color:var(--muted);font-size:var(--fs-2xs);margin-top:var(--sp-2)}.guide-table{border-collapse:collapse;width:100%;font-size:var(--fs-xs)}.guide-table th,.guide-table td{text-align:left;padding:var(--sp-1) var(--sp-2);border-bottom:1px solid var(--border-soft);vertical-align:top}.guide-table th{color:var(--muted);font-weight:var(--fw-strong)}.guide-table td.mono{font-family:var(--font-mono), monospace;white-space:nowrap}.guide-ch-foot{align-items:center;gap:var(--sp-3);margin-top:var(--sp-5);padding-top:var(--sp-3);border-top:1px solid var(--border-soft);display:flex}.guide-video{color:var(--muted);font-size:var(--fs-xs)}.guide-video a{color:var(--accent)}body.guide-reading .welcome-overlay{display:none}.example-list{gap:var(--sp-2);flex-direction:column;max-height:52vh;display:flex;overflow:auto}.example-card{text-align:left;width:100%;padding:var(--sp-3);background:var(--panel-2);border:1px solid var(--border-soft);border-radius:var(--r-sm);cursor:pointer;display:block}.example-card:hover{border-color:var(--accent);background:var(--panel-3)}.example-name{color:var(--text);font-size:var(--fs-sm);margin-bottom:2px}.example-desc{color:var(--muted);font-size:var(--fs-xs)}@media (width<=1024px){.guide-panel{flex-direction:column}.guide-toc{gap:var(--sp-1);border-right:none;border-bottom:1px solid var(--border-soft);flex:none;display:flex;overflow-x:auto}.guide-toc-item{white-space:nowrap}.guide-bubble{max-width:none;right:var(--sp-3);left:var(--sp-3)!important;width:auto!important}.topbar{gap:var(--sp-2);padding:0 var(--sp-4)}.menubar{-webkit-overflow-scrolling:touch;scrollbar-width:none;flex:auto;min-width:0;overflow-x:auto}.menubar::-webkit-scrollbar{display:none}.menubar .menu{flex:none}.menu-btn{padding:var(--sp-3) var(--sp-4);white-space:nowrap}#topbar-title{display:none}.fwin:not(.tex-fwin-fullscreen){max-width:96vw;max-height:70vh}.tex-fwin-fullscreen{border-radius:0;max-width:none;max-height:none}.toolbar{gap:var(--sp-1);padding:0 var(--sp-3);scrollbar-width:none;overflow-x:auto}.toolbar::-webkit-scrollbar{display:none}.tool{width:30px;height:30px}#axis-gizmo{width:92px;height:92px}.cam-tabs{scrollbar-width:none;overflow-x:auto}.cam-tabs::-webkit-scrollbar{display:none}.cam-tab{max-width:120px}.transport{height:auto;min-height:var(--h-transport);gap:var(--sp-3);padding:var(--sp-2) var(--sp-4);flex-wrap:wrap}.transport .btn,.transport .tl-speed-group,.transport .tl-loop,.transport .ease-btn,.transport .tl-time-group{height:30px}.tl-tree{flex:0 0 40vw;min-width:104px;max-width:46vw}}@media (pointer:coarse){*{-webkit-tap-highlight-color:transparent}#viewport canvas,#timeline,#tl-layers-canvas,#axis-gizmo,#tex-canvas,#tex-canvas-wrap,.fwin-titlebar,.fwin-rsz,.ee-canvas{touch-action:none}.menu-btn{padding:var(--sp-5) var(--sp-4)}.dd-item{min-height:40px}.tool{width:38px;height:38px}.tool svg{width:20px;height:20px}.mini{height:30px}.ease-btn,.color-swatch{width:38px;height:38px}.del-x{width:34px;height:34px}.row input[type=text],.row input[type=number],.row select,.fx-panel input,.fx-panel select,.transport input[type=number],.transport select{height:auto;min-height:36px;font-size:16px}.tt-arrow{flex-basis:26px}.tt-add-kf,.tt-add-var-kf,.tt-add-var{width:30px;height:24px}.fwin-btn{width:34px;height:34px}.ui-modal-btn{height:40px;font-size:var(--fs-md)}.ui-modal-input{min-height:40px;font-size:16px}.tt-del-var{width:26px;height:26px}.tex-fullscreen-btn{opacity:.85;pointer-events:auto}.tl-tree{overflow-x:auto}.tt-row{min-width:max-content}.fx-code{resize:none;overflow:visible}.fx-code .cm-tooltip{z-index:30}}
