:root{--gray-0:#fff;--gray-50:#f7f7f8;--gray-100:#ededef;--gray-150:#e4e4e7;--gray-200:#d4d4d8;--gray-300:#b4b4bc;--gray-400:#8a8a96;--gray-500:#60606c;--gray-600:#48484f;--gray-700:#323238;--gray-750:#2a2a30;--gray-800:#222226;--gray-850:#1a1a1e;--gray-900:#141416;--gray-950:#0e0e10;--violet-50:#f5f3ff;--violet-100:#ede9ff;--violet-300:#a99af5;--violet-400:#9487f0;--violet-500:#7065e0;--violet-600:#5b4fcf;--violet-700:#4a3fbe;--red-100:#ffe0e0;--red-500:#e05a5a;--red-600:#c94444;--green-500:#4caf82;--yellow-500:#f5c842;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--radius-1:4px;--radius-2:6px;--radius-3:8px;--radius-4:12px;--text-2xs:9px;--text-xs:11px;--text-sm:12px;--text-md:13px;--text-lg:15px;--shadow-sm:0 1px 3px #0000001a;--shadow-md:0 4px 12px #0000001f;--shadow-lg:0 8px 24px #00000029;--shadow-xl:0 12px 40px #0003;--transition-fast:.1s ease;--transition-base:.15s ease;--bg:var(--gray-50);--surface-0:var(--gray-100);--surface-1:var(--gray-0);--surface-2:var(--gray-100);--surface-3:var(--gray-150);--surface-hover:var(--gray-200);--border:var(--gray-200);--border-subtle:#0000000f;--border-focus:var(--violet-500);--text-1:var(--gray-900);--text-2:var(--gray-500);--text-3:var(--gray-400);--accent:var(--violet-600);--accent-hover:var(--violet-700);--accent-subtle:var(--violet-50);--accent-text:var(--violet-600);--danger:var(--red-500);--danger-hover:var(--red-600);--danger-subtle:var(--red-100);--success:var(--green-500);--toolbar-h:48px;--panel-w:260px;--font:"Space Grotesk", system-ui, sans-serif}[data-theme=light]{--bg:var(--gray-50);--surface-0:var(--gray-100);--surface-1:var(--gray-0);--surface-2:var(--gray-100);--surface-3:var(--gray-150);--surface-hover:var(--gray-200);--border:var(--gray-200);--border-subtle:#0000000f;--border-focus:var(--violet-500);--text-1:var(--gray-900);--text-2:var(--gray-500);--text-3:var(--gray-400);--accent:var(--violet-600);--accent-hover:var(--violet-700);--accent-subtle:var(--violet-50);--accent-text:var(--violet-600);--danger:var(--red-500);--danger-hover:var(--red-600);--danger-subtle:var(--red-100);--shadow-sm:0 1px 3px #0000001a;--shadow-md:0 4px 12px #0000001f;--shadow-lg:0 8px 24px #00000029;--shadow-xl:0 12px 40px #0003}[data-theme=dark]{--bg:var(--gray-900);--surface-0:var(--gray-950);--surface-1:var(--gray-850);--surface-2:var(--gray-800);--surface-3:var(--gray-750);--surface-hover:var(--gray-700);--border:var(--gray-700);--border-subtle:#ffffff0f;--border-focus:var(--violet-400);--text-1:var(--gray-100);--text-2:var(--gray-400);--text-3:var(--gray-600);--accent:var(--violet-500);--accent-hover:var(--violet-400);--accent-subtle:#7065e026;--accent-text:var(--violet-300);--danger:var(--red-500);--danger-hover:var(--red-500);--danger-subtle:#e05a5a26;--shadow-sm:0 1px 3px #0000004d;--shadow-md:0 4px 12px #0006;--shadow-lg:0 8px 24px #00000080;--shadow-xl:0 12px 40px #0009}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body,#root{width:100%;height:100%}.app{overflow:hidden}body{font-family:var(--font);font-size:var(--text-md);color:var(--text-1);background:var(--bg);-webkit-font-smoothing:antialiased}.app{flex-direction:column;height:100vh;display:flex}.toolbar{align-items:center;gap:var(--space-2);height:var(--toolbar-h);padding:0 var(--space-3);background:var(--surface-1);border-bottom:1px solid var(--border);z-index:10;flex-shrink:0;display:flex}.app-logo{font-size:var(--text-lg);letter-spacing:-.5px;color:#fff;-webkit-user-select:none;user-select:none;margin-right:var(--space-1);align-items:center;gap:6px;font-weight:800;display:flex}.app-logo__img{width:20px;height:20px}.project-name{font-size:var(--text-md);color:var(--text-1);padding:var(--space-1) var(--space-1);border-radius:var(--radius-1);width:140px;transition:border-color var(--transition-fast), background var(--transition-fast);background:0 0;border:1px solid #0000;outline:none}.project-name:hover{border-color:var(--border)}.project-name:focus{border-color:var(--border-focus);background:var(--accent-subtle)}.tool-group{background:var(--surface-2);border-radius:var(--radius-3);gap:2px;padding:2px;display:flex}.tool-btn{padding:var(--space-1) 10px;border-radius:var(--radius-2);font-size:var(--text-sm);color:var(--text-2);cursor:pointer;transition:all var(--transition-fast);background:0 0;border:none;font-weight:500}.tool-btn:hover{background:var(--surface-hover);color:var(--text-1)}.tool-btn.active{background:var(--surface-1);color:var(--accent);box-shadow:var(--shadow-sm);font-weight:600}.toolbar-spacer{flex:1}.action-group{gap:var(--space-1);display:flex}.speak-btn-group{border-radius:var(--radius-2);display:flex;overflow:hidden}.speak-btn__main{border-radius:var(--radius-2) 0 0 var(--radius-2)!important;border-right:1px solid #ffffff26!important}.speak-btn__save{border-radius:0 var(--radius-2) var(--radius-2) 0!important;min-width:0!important;padding:0 8px!important}.export-msg{font-size:var(--text-xs);color:var(--accent);margin-left:var(--space-1)}.main{background:var(--surface-0);flex:1;display:flex;overflow:hidden}.left-panel{background:var(--surface-1);border-right:none;flex-direction:column;flex-shrink:0;width:160px;min-width:80px;max-width:320px;display:flex;overflow:hidden}.main-center{flex-direction:column;flex:1;gap:6px;padding:6px 0;display:flex;overflow:hidden}.canvas-area{border-radius:12px;flex:1;position:relative;overflow:hidden;box-shadow:0 2px 16px #00000040,0 0 0 1px #ffffff0f}.resize-handle-v{cursor:ew-resize;background:0 0;flex-shrink:0;justify-content:center;align-items:center;width:12px;display:flex;position:relative}.resize-handle-v:after{content:"";background:var(--gray-700);width:4px;height:36px;transition:background var(--transition-fast), height var(--transition-fast);border-radius:2px}.resize-handle-v:hover:after,.resize-handle-v:active:after{background:var(--accent);height:48px}.resize-handle-h{cursor:ns-resize;background:0 0;flex-shrink:0;justify-content:center;align-items:center;height:12px;display:flex;position:relative}.resize-handle-h:after{content:"";background:var(--gray-700);width:36px;height:4px;transition:background var(--transition-fast), width var(--transition-fast);border-radius:2px}.resize-handle-h:hover:after,.resize-handle-h:active:after{background:var(--accent);width:48px}.right-panel{width:var(--panel-w);background:var(--surface-1);border-left:none;flex-direction:column;flex-shrink:0;min-width:180px;max-width:400px;display:flex;overflow-y:auto}.panel{padding:var(--space-3)}.panel-empty{font-size:var(--text-xs);color:var(--text-2)}.panel-divider{background:var(--border);height:1px;margin:0}.ui-btn{justify-content:center;align-items:center;gap:var(--space-1);border-radius:var(--radius-2);font-family:var(--font);cursor:pointer;transition:all var(--transition-fast);white-space:nowrap;border:1px solid #0000;outline:none;font-weight:500;display:inline-flex}.ui-btn:focus-visible{box-shadow:0 0 0 2px var(--accent-subtle), 0 0 0 3px var(--accent)}.ui-btn--md{padding:var(--space-1) 10px;font-size:var(--text-sm)}.ui-btn--sm{padding:2px var(--space-2);font-size:var(--text-xs)}.ui-btn--icon{width:28px;height:28px;padding:0}.ui-btn--default{background:var(--surface-1);border-color:var(--border);color:var(--text-1)}.ui-btn--default:hover{border-color:var(--accent);color:var(--accent)}.ui-btn--primary{background:var(--accent);border-color:var(--accent);color:#fff}.ui-btn--primary:hover{background:var(--accent-hover);border-color:var(--accent-hover)}.ui-btn--ghost{color:var(--text-2);background:0 0}.ui-btn--ghost:hover{background:var(--surface-2);color:var(--text-1)}.ui-btn--danger{border-color:var(--danger);color:var(--danger);background:0 0}.ui-btn--danger:hover{background:var(--danger-subtle)}.ui-btn--active{background:var(--accent);border-color:var(--accent);color:#fff}.ui-btn--active.ui-btn--ghost{background:var(--accent-subtle);color:var(--accent)}.ui-switch{all:unset;box-sizing:border-box;background:var(--border);cursor:pointer;border-radius:9px;flex-shrink:0;width:32px;height:18px;transition:background .15s;position:relative}.ui-switch:focus-visible{box-shadow:0 0 0 2px var(--accent-subtle), 0 0 0 3px var(--accent)}.ui-switch[data-state=checked]{background:var(--accent)}.ui-switch__thumb{will-change:transform;background:#fff;border-radius:50%;width:12px;height:12px;transition:transform .15s;display:block;position:absolute;top:3px;left:3px}.ui-switch[data-state=checked] .ui-switch__thumb{transform:translate(14px)}.ui-checkbox{background:var(--surface-2);border:1px solid var(--border);cursor:pointer;border-radius:4px;outline:none;flex-shrink:0;justify-content:center;align-items:center;width:16px;height:16px;display:flex}.ui-checkbox:focus-visible{box-shadow:0 0 0 2px var(--accent-subtle), 0 0 0 3px var(--accent)}.ui-checkbox[data-state=checked]{background:var(--accent);border-color:var(--accent);color:#fff}.ui-checkbox__indicator{justify-content:center;align-items:center;display:flex}.ui-input{background:var(--surface-2);border-radius:var(--radius-1);width:100%;padding:5px var(--space-2);font-size:var(--text-sm);font-family:var(--font);color:var(--text-1);transition:border-color var(--transition-fast), background var(--transition-fast);border:1px solid #0000;outline:none}.ui-input::placeholder{color:var(--text-3)}.ui-input:hover{border-color:var(--border)}.ui-input:focus{border-color:var(--border-focus);background:var(--accent-subtle)}.ui-input:disabled{opacity:.4;cursor:not-allowed}.ui-input--sm{padding:2px var(--space-1);font-size:var(--text-xs)}.ui-select{justify-content:space-between;align-items:center;gap:var(--space-1);background:var(--surface-2);border-radius:var(--radius-1);width:100%;padding:5px var(--space-2);font-size:var(--text-sm);font-family:var(--font);color:var(--text-1);cursor:pointer;transition:border-color var(--transition-fast);border:1px solid #0000;outline:none;display:inline-flex}.ui-select:hover{border-color:var(--border)}.ui-select[data-state=open]{border-color:var(--border-focus)}.ui-select--sm{padding:2px var(--space-1);font-size:var(--text-xs)}.ui-select__icon{color:var(--text-2);flex-shrink:0}.ui-select__content{background:var(--surface-1);border:1px solid var(--border);border-radius:var(--radius-2);box-shadow:var(--shadow-lg);z-index:100;min-width:var(--radix-select-trigger-width);overflow:hidden}.ui-select__viewport{padding:2px}.ui-select__item{padding:var(--space-1) var(--space-2);font-size:var(--text-sm);color:var(--text-1);border-radius:var(--radius-1);cursor:pointer;transition:background var(--transition-fast);outline:none;justify-content:space-between;align-items:center;display:flex}.ui-select__item[data-highlighted]{background:var(--surface-2)}.ui-select__item[data-state=checked],.ui-select__indicator{color:var(--accent)}.ui-slider{align-items:center;gap:var(--space-2);display:flex}.ui-slider__label{font-size:var(--text-xs);color:var(--text-2);text-align:right;flex-shrink:0;width:52px}.ui-slider__root{cursor:pointer;touch-action:none;flex:1;align-items:center;height:16px;display:flex;position:relative}.ui-slider__track{background:var(--surface-2);border-radius:9999px;flex:1;height:3px;position:relative}.ui-slider__range{background:var(--accent);border-radius:9999px;height:100%;position:absolute}.ui-slider__thumb{background:var(--surface-1);border:2px solid var(--accent);width:12px;height:12px;box-shadow:var(--shadow-sm);transition:transform var(--transition-fast);border-radius:50%;outline:none;display:block}.ui-slider__thumb:hover{transform:scale(1.2)}.ui-slider__thumb:focus{box-shadow:0 0 0 3px var(--accent-subtle)}.ui-slider__value{font-size:var(--text-xs);color:var(--text-2);text-align:right;font-variant-numeric:tabular-nums;flex-shrink:0;width:36px}.ui-segmented{background:var(--surface-2);border-radius:var(--radius-2);gap:1px;padding:2px;display:flex}.ui-segmented__item{justify-content:center;align-items:center;gap:var(--space-1);padding:var(--space-1) var(--space-2);border-radius:var(--radius-1);font-size:var(--text-xs);font-weight:500;font-family:var(--font);color:var(--text-2);cursor:pointer;transition:all var(--transition-fast);white-space:nowrap;background:0 0;border:none;flex:1;display:flex}.ui-segmented__item:hover{color:var(--text-1)}.ui-segmented__item--active{background:var(--surface-1);color:var(--text-1);box-shadow:var(--shadow-sm)}.ui-segmented__icon{align-items:center;display:flex}.ui-section__header{padding:10px var(--space-3) var(--space-2);justify-content:space-between;align-items:center;display:flex}.ui-section__title{font-size:var(--text-sm);color:var(--text-1);font-weight:600}.ui-section__actions{align-items:center;gap:var(--space-1);color:var(--text-2);display:flex}.ui-section__body{padding:0 var(--space-3) var(--space-3);gap:var(--space-2);flex-direction:column;display:flex}.ui-prop-row{align-items:center;gap:var(--space-2);min-height:24px;display:grid}.ui-prop-row--1-1{grid-template-columns:1fr 1fr}.ui-prop-row--1-2{grid-template-columns:1fr 2fr}.ui-prop-row--label-only{grid-template-columns:1fr}.ui-prop-row__label{font-size:var(--text-xs);color:var(--text-2);white-space:nowrap}.ui-popover{background:var(--surface-1);border:1px solid var(--border);border-radius:var(--radius-3);box-shadow:var(--shadow-lg);z-index:50}.ui-dialog__overlay{z-index:200;-webkit-backdrop-filter:blur(1px);backdrop-filter:blur(1px);background:#00000026;position:fixed;inset:0}.ui-dialog__content{background:var(--surface-1);border:1px solid var(--border);border-radius:var(--radius-3);box-shadow:var(--shadow-xl);z-index:201;padding:var(--space-2);gap:var(--space-2);align-items:center;display:flex;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%)}.ui-toast__viewport{z-index:600;outline:none;flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex;position:fixed;top:64px;left:50%;transform:translate(-50%)}.ui-toast{background:var(--gray-900);color:var(--gray-100);font-size:var(--text-sm);border-radius:10px;padding:12px 20px;animation:.25s ease-out toast-in;box-shadow:0 8px 32px #00000059}.ui-toast[data-state=closed]{animation:.15s ease-in toast-out}.ui-toast__msg{line-height:1.4}@keyframes toast-in{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}@keyframes toast-out{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-8px)}}.ui-tooltip{background:var(--gray-900);color:var(--gray-100);font-size:var(--text-xs);padding:var(--space-1) var(--space-2);border-radius:var(--radius-1);box-shadow:var(--shadow-md);z-index:300}[data-theme=dark] .ui-tooltip{background:var(--gray-700)}.ui-tooltip__arrow{fill:var(--gray-900)}.ui-row-gap-2{gap:var(--space-2);align-items:center;display:flex}.side-toolbar{padding:var(--space-1);border-bottom:1px solid var(--border);flex-wrap:wrap;flex-shrink:0;gap:2px;display:flex}.side-tool{border-radius:var(--radius-2);width:34px;height:34px;color:var(--text-2);cursor:pointer;transition:all var(--transition-fast);background:0 0;border:none;justify-content:center;align-items:center;display:flex}.side-tool:hover{background:var(--surface-2);color:var(--text-1)}.side-tool.ui-btn--active{background:var(--accent);color:#fff}.toolbar-separator{background:var(--border);width:100%;height:1px;margin:2px 0}.layer-panel{flex-direction:column;flex:1;display:flex;overflow:hidden}.layer-panel-header{font-size:var(--text-xs);color:var(--text-2);padding:var(--space-2) 6px var(--space-1) 10px;flex-shrink:0;justify-content:space-between;align-items:center;font-weight:600;display:flex}.layer-panel-list{flex:1;padding:2px 0;overflow-y:auto}.layer-empty{font-size:var(--text-xs);color:var(--text-2);padding:var(--space-2) 10px}.layer-item{color:var(--text-1);align-items:center;gap:var(--space-1);padding:var(--space-1) var(--space-2);font-size:var(--text-xs);cursor:pointer;border-radius:var(--radius-1);margin:0 var(--space-1);transition:background var(--transition-fast);-webkit-user-select:none;user-select:none;display:flex}.layer-item:hover{background:var(--surface-2)}.layer-item.selected{background:var(--accent);color:#fff}.layer-item-icon{opacity:.5;flex-shrink:0;align-items:center;width:14px;display:flex}.layer-item.selected .layer-item-icon{opacity:1}.layer-item-label{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.props-empty{padding:var(--space-3);font-size:var(--text-xs);color:var(--text-2)}.props-panel{flex-direction:column;flex:1;display:flex;overflow-y:auto}.props-section{border-bottom:1px solid var(--border-subtle)}.props-section:last-child{border-bottom:none}.props-field-group{gap:var(--space-2);padding:0 var(--space-3) var(--space-3);flex-direction:column;display:flex}.props-inline{align-items:center;gap:var(--space-2);display:flex}.trigger-item{align-items:center;gap:var(--space-1);padding:var(--space-1) 0;font-size:var(--text-xs);display:flex}.trigger-event{color:var(--text-1);font-weight:600}.trigger-arrow{color:var(--text-2)}.trigger-bundle{color:var(--accent-text);flex:1}.bundle-item{margin-bottom:var(--space-1)}.bundle-header{align-items:center;gap:var(--space-1);padding:var(--space-1) var(--space-2);background:var(--surface-2);border-radius:var(--radius-2);cursor:pointer;font-size:var(--text-xs);display:flex}.bundle-expand{color:var(--text-2);width:12px;font-size:8px}.bundle-name-input{font-size:var(--text-xs);color:var(--text-1);font-weight:600;font-family:var(--font);background:0 0;border:none;outline:none;flex:1;padding:0}.bundle-name-input:focus{background:var(--surface-1);border-radius:var(--radius-1);padding:0 var(--space-1)}.bundle-count{font-size:var(--text-2xs);color:var(--text-2)}.bundle-body{padding:var(--space-1) 0 var(--space-1) 16px}.bundle-clip{margin-bottom:var(--space-2)}.bundle-clip-header{align-items:center;gap:var(--space-1);font-size:var(--text-xs);padding:3px 0;font-weight:500;display:flex}.bundle-el-name{color:var(--accent-text);flex:1}.bundle-dur-unit{font-size:var(--text-2xs);color:var(--text-2)}.bundle-track{align-items:center;gap:var(--space-1);font-size:var(--text-2xs);padding:2px 0;display:flex}.bundle-track-prop{width:48px;color:var(--text-2);font-weight:500}.bundle-arrow{color:var(--text-2)}.bundle-add-track{padding:2px 0}.bundle-add-el{padding:var(--space-1) 0}.add-row{gap:var(--space-1);margin-bottom:var(--space-1);align-items:center;display:flex}input[type=range]{accent-color:var(--accent)}input[type=checkbox]{accent-color:var(--accent);cursor:pointer}.tile-popover-wrap{position:relative}.tile-popover-trigger{align-items:center;gap:var(--space-1);width:100%;padding:var(--space-1) var(--space-2);border:1px solid var(--border);border-radius:var(--radius-2);background:var(--surface-2);color:var(--text-1);font-size:var(--text-xs);cursor:pointer;text-align:left;transition:border-color var(--transition-fast);display:flex}.tile-popover-trigger:hover{border-color:var(--text-2)}.tile-popover-preview{align-items:center;display:flex}.tile-popover-preview svg{width:16px;height:16px}.tile-popover{padding:var(--space-2);padding-right:var(--space-4);background:var(--surface-1);border:1px solid var(--border);border-radius:var(--radius-3);box-shadow:var(--shadow-lg);z-index:20;position:fixed;overflow:hidden auto}.tile-popover-grid{gap:2px;display:grid}.tile-popover-item{border-radius:var(--radius-1);cursor:pointer;padding:var(--space-1);color:var(--text-1);transition:background var(--transition-fast);background:0 0;border:none;flex-direction:column;justify-content:center;align-items:center;gap:2px;display:flex}.tile-popover-item:hover{background:var(--surface-2)}.tile-popover-item.ui-btn--active{background:var(--accent);color:#fff}.tile-popover-icon{justify-content:center;align-items:center;display:flex}.tile-popover-icon svg{width:20px;height:20px}.tile-popover-icon canvas{display:block}.tile-popover-label{font-size:var(--text-2xs);text-overflow:ellipsis;white-space:nowrap;text-align:center;width:100%;line-height:1.2;overflow:hidden}.split-label{border-radius:var(--radius-1);color:#fff;min-width:18px;height:18px;font-size:var(--text-2xs);pointer-events:none;z-index:6;background:#c83c3cb3;justify-content:center;align-items:center;padding:0 5px;font-weight:600;display:flex;position:absolute;transform:translate(-50%,-50%)}.navigation-gizmo{cursor:pointer;z-index:5;position:absolute;top:8px;right:8px}.color-picker-toolbar{padding:var(--space-1);gap:3px;top:54px}.color-swatch{border:2px solid var(--border);cursor:pointer;width:22px;height:22px;transition:all var(--transition-fast);border-radius:50%;flex-shrink:0;padding:0}.color-swatch:hover{border-color:var(--text-2);transform:scale(1.15)}.color-swatch.active{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-subtle)}.frame-indicator{border-radius:var(--radius-2);padding:3px var(--space-2);font-family:Menlo,Consolas,monospace;font-size:var(--text-xs);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:5;pointer-events:none;-webkit-user-select:none;user-select:none;background:#00000073;border:1px solid #ffffff1a;align-items:center;gap:5px;line-height:1.6;display:flex;position:absolute;bottom:12px;right:12px}.frame-indicator-dot{border-radius:50%;flex-shrink:0;width:6px;height:6px;transition:background .3s}.frame-indicator-fps{color:#ffffffe6;font-weight:700}.frame-indicator-sep{color:#ffffff40}.frame-indicator-zoom{color:#ffffffe6;font-weight:700}.rs-toggle{border:1px solid var(--border);border-radius:var(--radius-2);background:var(--surface-1);width:32px;height:32px;color:var(--text-2);cursor:pointer;box-shadow:var(--shadow-sm);z-index:5;transition:all var(--transition-fast);justify-content:center;align-items:center;display:flex;position:absolute;bottom:12px;left:12px}.rs-toggle:hover{border-color:var(--accent);color:var(--accent)}.rs-panel{background:var(--surface-1);border:1px solid var(--border);border-radius:var(--radius-4);width:300px;max-height:calc(100% - 110px);box-shadow:var(--shadow-lg);z-index:10;flex-direction:column;display:flex;position:absolute;bottom:12px;left:12px;overflow:hidden}.rs-header{padding:var(--space-2) 10px;border-bottom:1px solid var(--border);font-size:var(--text-xs);color:var(--text-2);flex-shrink:0;justify-content:space-between;align-items:center;font-weight:700;display:flex}.rs-body{padding:var(--space-1) 10px 10px;flex:1;overflow-y:auto}.rs-section{font-size:var(--text-xs);color:var(--accent-text);margin:10px 0 var(--space-1);padding-top:var(--space-1);border-top:1px solid var(--border);font-weight:700}.rs-section:first-child{border-top:none;margin-top:2px;padding-top:0}.rs-row{align-items:center;gap:var(--space-1);margin:3px 0;display:flex}.rs-label{font-size:var(--text-xs);color:var(--text-2);text-align:right;flex-shrink:0;width:52px}.rs-row input[type=range]{flex:1;min-width:0;height:4px}.rs-row input[type=color]{border:1px solid var(--border);border-radius:var(--radius-1);cursor:pointer;background:0 0;width:24px;height:20px;padding:0}.rs-value{font-size:var(--text-xs);color:var(--text-1);text-align:right;font-variant-numeric:tabular-nums;flex-shrink:0;width:48px}.rs-group{margin:2px 0}.rs-group-label{font-size:var(--text-xs);color:var(--text-2);margin:var(--space-1) 0 1px;font-weight:600;display:block}.timeline-panel{background:var(--surface-1);height:180px;min-height:80px;font-size:var(--text-xs);border-top:none;border-radius:12px;flex-direction:column;flex-shrink:0;display:flex;position:relative;overflow:hidden;box-shadow:0 2px 16px #00000040,0 0 0 1px #ffffff0f}.timeline-header-bar{align-items:center;gap:var(--space-1);padding:0 var(--space-2);border-bottom:1px solid var(--border);flex-shrink:0;height:32px;display:flex}.playback-controls{align-items:center;gap:var(--space-1);display:flex}.preview-state-label{font-size:var(--text-xs);color:var(--text-2);letter-spacing:.3px;font-weight:600}.timeline-tabs{margin-left:var(--space-2);flex-wrap:wrap;align-items:center;gap:3px;display:flex}.timeline-tab-btn{align-items:center;gap:var(--space-1);padding:2px var(--space-2);font-size:var(--text-xs);border:1px solid var(--border);border-radius:var(--radius-1);background:var(--surface-1);color:var(--text-1);cursor:pointer;transition:all var(--transition-fast);font-family:var(--font);display:inline-flex}.timeline-tab-btn:hover{border-color:var(--accent);color:var(--accent)}.timeline-tab-btn.ui-btn--active{background:var(--accent);color:#fff;border-color:var(--accent)}.timeline-body-row{flex:1;display:flex;overflow:hidden}.timeline-left-panel{border-right:1px solid var(--border);flex-shrink:0;width:190px;overflow:hidden auto}.tl-left-layer{align-items:center;gap:var(--space-1);padding:0 var(--space-1);background:var(--surface-2);border-bottom:1px solid var(--border);box-sizing:border-box;display:flex}.tl-left-label{font-weight:600;font-size:var(--text-xs);color:var(--text-1);white-space:nowrap;text-overflow:ellipsis;flex:1;overflow:hidden}.tl-left-actions{align-items:center;gap:2px;display:flex}.tl-left-track{align-items:center;gap:var(--space-1);padding:0 var(--space-1);border-bottom:1px solid color-mix(in srgb, var(--border), transparent 60%);box-sizing:border-box;display:flex}.tl-left-prop{font-size:var(--text-2xs);color:var(--accent-text);white-space:nowrap}.tl-left-range{font-size:var(--text-2xs);color:var(--text-2);font-variant-numeric:tabular-nums;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.tl-track-del{font-size:var(--text-xs);opacity:.4;cursor:pointer;margin-left:auto}.tl-track-del:hover{opacity:1}.timeline-canvas-wrap{flex:1;position:relative;overflow:hidden}.timeline-tab-name-input{width:90px;font-size:var(--text-xs);padding:2px var(--space-1);font-family:var(--font)}.timeline-tab-divider{color:var(--border);font-size:var(--text-xs);margin:0 2px}.timeline-tab-delete{font-size:var(--text-sm);cursor:pointer;color:var(--text-2);margin-left:auto}.timeline-tab-delete:hover{color:var(--danger)}.easing-popover{background:var(--surface-1);border:1px solid var(--border);border-radius:var(--radius-3);padding:var(--space-1);box-shadow:var(--shadow-lg);flex-direction:column;gap:2px;min-width:120px;display:flex}.easing-option{padding:var(--space-1) 10px;font-size:var(--text-xs);text-align:left;border-radius:var(--radius-1);cursor:pointer;color:var(--text-1);font-family:var(--font);transition:background var(--transition-fast);background:0 0;border:none}.easing-option:hover{background:var(--surface-2)}.easing-option.ui-btn--active{background:var(--accent);color:#fff}.kf-editor-input{width:120px}.context-toolbar{background:var(--surface-1);border:1px solid var(--border);box-shadow:var(--shadow-xl);pointer-events:auto;z-index:25;-webkit-user-select:none;user-select:none;white-space:nowrap;border-radius:24px;align-items:center;gap:1px;padding:4px 6px;display:inline-flex;position:absolute}.context-toolbar:after{content:"";background:var(--surface-1);width:8px;height:8px;position:absolute;transform:rotate(45deg)}.context-toolbar--top:after{border-right:1px solid var(--border);border-bottom:1px solid var(--border);margin-left:-4px;bottom:-5px;left:50%}.context-toolbar--right:after{border-left:1px solid var(--border);border-bottom:1px solid var(--border);margin-top:-4px;top:50%;left:-5px}.context-toolbar--bottom:after{border-left:1px solid var(--border);border-top:1px solid var(--border);margin-left:-4px;top:-5px;left:50%}.ctx-btn{border-radius:var(--radius-2);width:28px;height:28px;color:var(--text-2);cursor:pointer;transition:background var(--transition-fast), color var(--transition-fast);background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;padding:0;display:flex}.context-toolbar>:first-child,.context-toolbar>:last-child{border-radius:18px}.ctx-btn:hover{background:var(--surface-3);color:var(--text-1)}.ctx-btn.ui-btn--active{background:var(--accent);color:#fff}@keyframes ctx-split-blink{0%,to{color:var(--text-2)}50%{color:#f87171}}.ctx-scrub__icon.ctx-split-icon{pointer-events:auto;cursor:pointer;animation:1.4s ease-in-out infinite ctx-split-blink}.ctx-scrub__icon.ctx-split-icon--disabled{cursor:default;opacity:.4;animation:none}.ctx-sep{background:var(--border);flex-shrink:0;width:1px;height:16px;margin:0 3px}.ctx-scrub{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-2);cursor:ew-resize;min-width:52px;transition:border-color var(--transition-fast), background var(--transition-fast);-webkit-user-select:none;user-select:none;align-items:center;gap:4px;padding:4px 8px 4px 6px;display:flex}.ctx-scrub.editing{cursor:text;border-color:var(--border-focus);background:var(--accent-subtle)}.ctx-scrub__icon{color:var(--text-2);pointer-events:none;flex-shrink:0;align-items:center;display:flex}.ctx-scrub__value{font-size:var(--text-xs);color:var(--text-1);font-family:var(--font);font-variant-numeric:tabular-nums;text-align:right;pointer-events:none;width:28px}.ctx-scrub__input{width:28px;box-shadow:none;appearance:none;font-size:var(--text-xs);color:var(--text-1);font-family:var(--font);text-align:right;-moz-appearance:textfield;background:0 0;border:none;outline:none;padding:0}.ctx-scrub__input::-webkit-outer-spin-button{-webkit-appearance:none}.ctx-scrub__input::-webkit-inner-spin-button{-webkit-appearance:none}.ctx-text-input{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-2);font-size:var(--text-xs);font-family:var(--font);color:var(--text-1);width:80px;box-shadow:none;appearance:none;transition:border-color var(--transition-fast);outline:none;padding:4px 8px}.ctx-text-input::placeholder{color:var(--text-3)}.ctx-text-input:focus{border-color:var(--border-focus)}.ctx-icon-picker{padding:var(--space-2);background:var(--surface-1);border:1px solid var(--border);border-radius:var(--radius-3);box-shadow:var(--shadow-xl);z-index:300;max-height:280px;overflow-y:overlay;scrollbar-gutter:stable}.ctx-icon-picker::-webkit-scrollbar{background:0 0;width:4px}.ctx-icon-picker::-webkit-scrollbar-thumb{background:#ffffff26;border-radius:2px}.ctx-icon-picker::-webkit-scrollbar-thumb:hover{background:#ffffff4d}.ctx-icon-grid{grid-template-columns:repeat(8,28px);gap:2px;display:grid}.ctx-icon-item{border-radius:var(--radius-1)}.ctx-icon-item:hover{background:var(--surface-3);color:var(--text-1)}.ctx-icon-item.ui-btn--active{background:var(--accent);color:#fff}.qsp-overlay{z-index:500;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#00000080;justify-content:center;align-items:center;padding-bottom:10vh;display:flex;position:fixed;inset:0}.qsp-panel{background:var(--surface-1);border:1px solid var(--border);border-radius:16px;min-width:360px;max-width:480px;padding:20px 24px 16px;box-shadow:0 16px 48px #0006}.qsp-header{color:var(--text-2);text-align:center;letter-spacing:.02em;margin-bottom:14px;font-size:13px;font-weight:600}.qsp-grid{grid-template-columns:repeat(4,1fr);gap:6px;display:grid}.qsp-item{color:var(--text-2);cursor:pointer;transition:all var(--transition-fast);background:0 0;border:1px solid #0000;border-radius:10px;flex-direction:column;align-items:center;gap:6px;padding:12px 4px 10px;display:flex}.qsp-item:hover{background:var(--surface-2);border-color:var(--border);color:var(--text-1)}.qsp-item:active{background:var(--accent);border-color:var(--accent);color:#fff}.qsp-item__icon{background:var(--surface-2);width:44px;height:44px;transition:background var(--transition-fast);border-radius:10px;justify-content:center;align-items:center;display:flex}.qsp-item:hover .qsp-item__icon{background:var(--surface-3)}.qsp-item:active .qsp-item__icon{background:#ffffff26}.qsp-item__label{white-space:nowrap;text-overflow:ellipsis;max-width:80px;font-size:10px;font-weight:500;overflow:hidden}.qsp-hint{text-align:center;color:var(--text-3);margin-top:12px;font-size:11px}.ctx-color-btn{cursor:pointer;border-radius:var(--radius-2);width:28px;height:28px;transition:background var(--transition-fast);background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;display:flex}.ctx-color-btn:hover{background:var(--surface-3)}.ctx-color-swatch{width:14px;height:14px;box-shadow:0 0 0 1px var(--border);border:1.5px solid #fff3;border-radius:50%;flex-shrink:0}.color-picker{gap:var(--space-2);padding:var(--space-2);background:var(--surface-1);border:1px solid var(--border);border-radius:var(--radius-3);box-shadow:var(--shadow-xl);z-index:300;flex-direction:column;display:flex}.color-picker-arrow{fill:var(--surface-1)}.color-picker-top{gap:var(--space-1);display:flex}.color-picker-canvas-wrap{border-radius:var(--radius-2);cursor:crosshair;flex:1;height:240px;position:relative;overflow:hidden}.color-picker-canvas-wrap canvas{width:100%;height:100%;display:block}.color-picker-bw-wrap{border-radius:var(--radius-2);cursor:crosshair;flex-shrink:0;width:32px;height:240px;position:relative;overflow:hidden}.color-picker-bw-wrap canvas{width:100%;height:100%;display:block}.color-picker-cursor{pointer-events:none;border:2px solid #fff;border-radius:50%;width:14px;height:14px;position:absolute;transform:translate(-50%,-50%);box-shadow:0 0 0 1px #0000004d,inset 0 0 0 1px #00000026}.color-picker-shades{border-radius:var(--radius-2);overflow:hidden}.color-picker-shades__track{width:300%;transition:transform .3s cubic-bezier(.4,0,.2,1);display:flex}.color-picker-shade{cursor:pointer;background:0 0;border:none;flex:0 0 3.7037%;justify-content:center;align-items:center;padding:1px;display:flex}.color-picker-shade__swatch{aspect-ratio:1;border-radius:var(--radius-1);border:1.5px solid #0000;width:100%;transition:transform .2s,border-color .2s}.color-picker-shade__swatch:hover{transform:scale(1.08)}.color-picker-shade.active .color-picker-shade__swatch{box-shadow:0 0 0 1px var(--border);border-color:#fff;transform:scale(1.12)}.color-picker-history{scrollbar-width:none;border-radius:var(--radius-2);margin-top:2px;display:flex;overflow-x:auto}.color-picker-history::-webkit-scrollbar{display:none}.color-picker-history .color-picker-shade{flex:0 0 11.1111%}.ctx-skin-picker{padding:var(--space-2);background:var(--surface-1);border:1px solid var(--border);border-radius:var(--radius-3);box-shadow:var(--shadow-xl);z-index:300;grid-template-columns:repeat(4,28px);gap:2px;display:grid}.ctx-skin-arrow{fill:var(--surface-1)}.site{--site-bg:#0a0a0b;--site-surface:#141416;--site-border:#222228;--site-text-1:#efefef;--site-text-2:#8a8a9a;--site-text-3:#5a5a6a;--site-accent:#7c5cfc;--site-accent-2:#5a8eff;--site-gradient:linear-gradient(135deg, #7c5cfc, #5a8eff);background:var(--site-bg);min-height:100vh;color:var(--site-text-1);-webkit-font-smoothing:antialiased;font-family:Space Grotesk,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;overflow-x:hidden}.site-nav{z-index:100;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--site-border);background:#0a0a0bcc;justify-content:space-between;align-items:center;height:56px;padding:0 32px;display:flex;position:fixed;top:0;left:0;right:0}.site-nav__logo{color:var(--site-text-1);letter-spacing:-.02em;align-items:center;gap:8px;font-size:18px;font-weight:700;text-decoration:none;display:flex}.site-nav__logo-img{width:24px;height:24px}.site-nav__links{align-items:center;gap:28px;display:flex}.site-nav__link{color:var(--site-text-2);font-size:14px;text-decoration:none;transition:color .15s}.site-nav__link:hover,.site-nav__link.active{color:var(--site-text-1)}.site-nav__cta{background:var(--site-gradient);color:#fff;border-radius:6px;padding:6px 16px;font-size:13px;font-weight:600;text-decoration:none;transition:opacity .15s}.site-nav__cta:hover{opacity:.9}.btn-primary{background:var(--site-gradient);color:#fff;border-radius:8px;padding:12px 32px;font-size:15px;font-weight:600;text-decoration:none;transition:opacity .15s,transform .15s;display:inline-block}.btn-primary:hover{opacity:.9;transform:translateY(-1px)}.btn-ghost{border:1px solid var(--site-border);color:var(--site-text-2);border-radius:8px;padding:12px 32px;font-size:15px;font-weight:500;text-decoration:none;transition:color .15s,border-color .15s;display:inline-block}.btn-ghost:hover{color:var(--site-text-1);border-color:var(--site-text-3)}.gradient-text{background:var(--site-gradient);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text}.hero{text-align:center;flex-direction:column;align-items:center;max-width:720px;margin:0 auto;padding:160px 24px 120px;display:flex}.hero__badge{color:var(--site-accent);letter-spacing:.05em;text-transform:uppercase;margin-bottom:20px;font-size:13px;font-weight:500}.hero__title{letter-spacing:-.03em;margin:0 0 24px;font-size:clamp(40px,7vw,64px);font-weight:700;line-height:1.08}.hero__sub{color:var(--site-text-2);max-width:520px;margin:0 0 40px;font-size:18px;line-height:1.6}.hero__actions{gap:16px;display:flex}.hero__image-wrap{border-radius:12px;width:80vw;max-width:1200px;margin-top:56px;position:relative;overflow:hidden;box-shadow:0 8px 48px #0006,0 0 0 1px #ffffff14}.hero__image-wrap:after{content:"";background:linear-gradient(to bottom, transparent, var(--site-bg));pointer-events:none;height:120px;position:absolute;bottom:0;left:0;right:0}.hero__image{border-radius:12px;width:100%;display:block}.props{max-width:1080px;margin:0 auto;padding:0 24px 120px}.props__grid{background:var(--site-border);border-radius:12px;grid-template-columns:repeat(3,1fr);gap:1px;display:grid;overflow:hidden}.prop-card{background:var(--site-surface);padding:40px 32px}.prop-card__icon{width:36px;height:36px;color:var(--site-accent);letter-spacing:.04em;background:#7c5cfc1f;border-radius:8px;justify-content:center;align-items:center;margin-bottom:20px;font-size:12px;font-weight:700;display:inline-flex}.prop-card__title{letter-spacing:-.01em;margin:0 0 10px;font-size:17px;font-weight:600}.prop-card__desc{color:var(--site-text-2);margin:0;font-size:14px;line-height:1.6}.features-hero{text-align:center;max-width:680px;margin:0 auto;padding:140px 24px 80px}.features-hero__title{letter-spacing:-.03em;margin:0 0 20px;font-size:clamp(36px,6vw,56px);font-weight:700;line-height:1.1}.features-hero__sub{color:var(--site-text-2);margin:0;font-size:17px;line-height:1.6}.features-grid{background:var(--site-border);border-radius:12px;grid-template-columns:repeat(2,1fr);gap:1px;max-width:1080px;margin:0 auto 80px;display:grid;overflow:hidden}.feature{background:var(--site-surface);padding:48px 40px}.feature__tag{color:var(--site-accent);letter-spacing:.06em;text-transform:uppercase;margin-bottom:12px;font-size:12px;font-weight:600;display:block}.feature__title{letter-spacing:-.02em;margin:0 0 12px;font-size:22px;font-weight:600}.feature__desc{color:var(--site-text-2);margin:0 0 20px;font-size:14px;line-height:1.65}.feature__video{border-radius:8px;width:100%;margin:16px 0}.feature__list{margin:0;padding:0;list-style:none}.feature__list li{color:var(--site-text-3);padding-left:16px;font-size:13px;line-height:1.6;position:relative}.feature__list li:before{content:"";background:var(--site-accent);opacity:.5;border-radius:50%;width:4px;height:4px;position:absolute;top:9px;left:0}.features-cta{text-align:center;padding:0 24px 120px}.features-cta h2{letter-spacing:-.02em;margin:0 0 24px;font-size:28px;font-weight:600}.site-footer{text-align:center;border-top:1px solid var(--site-border);color:var(--site-text-3);padding:32px 24px;font-size:12px}.footer-link{color:inherit;text-decoration:none;transition:color .15s}.footer-link:hover{color:var(--site-text-1);text-decoration:underline}.app-loading{background:var(--site-bg,#0a0a0b);height:100vh;color:var(--site-text-2,#8a8a9a);justify-content:center;align-items:center;font-size:14px;display:flex}@media (width<=768px){.props__grid,.features-grid{grid-template-columns:1fr}.site-nav{padding:0 16px}.hero{padding:120px 16px 80px}.hero__actions{flex-direction:column;width:100%}.btn-primary,.btn-ghost{text-align:center}}
