*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{color-scheme:dark;font-family:Segoe UI,system-ui,-apple-system,sans-serif;font-size:13px;line-height:1.5;--panel-w: 264px;--toolbar-w: 42px;--toolbar-h: 44px;--menubar-h: 34px;--timeline-h: 200px;--radius: 6px;--fab-size: 58px;--fab-radius: var(--radius);--fab-accent: #f6e24a;--fab-accent-border: rgba(246, 226, 74, .72);--fab-accent-soft: rgba(246, 226, 74, .3);--fab-accent-glow: rgba(246, 226, 74, .18);--fab-accent-shadow: rgba(246, 226, 74, .12);--bg: #0f1117;--surface-1: #161b22;--surface-2: #1e2530;--surface-3: #252d3a;--border: rgba(255,255,255,.08);--border-hi: rgba(255,255,255,.18);--accent: #4f8ef7;--accent-dim: rgba(79,142,247,.18);--accent2: #f59f3b;--accent2-dim: rgba(245,159,59,.18);--green: #56c281;--red: #e05555;--text: #d6dde8;--muted: #7a8494;--text-inv: #0f1117;--checker-a: #1a1f28;--checker-b: #0e1219}:root[data-theme=gray]{color-scheme:dark;--bg: #181818;--surface-1: #222222;--surface-2: #2c2c2c;--surface-3: #363636;--border: rgba(255,255,255,.09);--border-hi: rgba(255,255,255,.2);--accent: #b0b0b0;--accent-dim: rgba(176,176,176,.15);--accent2: #e0c080;--accent2-dim: rgba(224,192,128,.15);--green: #70c070;--red: #d06060;--text: #dedede;--muted: #888888;--text-inv: #181818;--checker-a: #222222;--checker-b: #161616}:root[data-theme=dark-blue]{color-scheme:dark;--bg: #09101e;--surface-1: #0d1628;--surface-2: #122038;--surface-3: #182a48;--border: rgba(60,120,255,.14);--border-hi: rgba(60,120,255,.3);--accent: #3d8fff;--accent-dim: rgba(61,143,255,.18);--accent2: #00d4ff;--accent2-dim: rgba(0,212,255,.15);--green: #30d896;--red: #ff5577;--text: #c8d8f8;--muted: #5878a0;--text-inv: #09101e;--checker-a: #122038;--checker-b: #0a1424}:root[data-theme=light]{color-scheme:light;--bg: #eef0f4;--surface-1: #ffffff;--surface-2: #f4f5f8;--surface-3: #e8eaf0;--border: rgba(0,0,0,.1);--border-hi: rgba(0,0,0,.22);--accent: #2563eb;--accent-dim: rgba(37,99,235,.12);--accent2: #d97706;--accent2-dim: rgba(217,119,6,.12);--green: #16a34a;--red: #dc2626;--text: #1e2535;--muted: #64748b;--text-inv: #ffffff;--checker-a: #e0e4eb;--checker-b: #cdd1da}body{background:var(--bg);color:var(--text);min-height:100vh;overflow:hidden;user-select:none;-webkit-user-select:none}#root{height:100vh;display:flex;flex-direction:column}.app-shell{display:flex;flex-direction:column;flex:1;min-height:0}input,textarea,[contenteditable]{user-select:text;-webkit-user-select:text}button{cursor:pointer;font:inherit;border:none;background:none;color:inherit}input[type=range]{cursor:pointer}dl,dt,dd{margin:0}.menubar{height:var(--menubar-h);background:var(--surface-1);border:1px solid var(--border);border-radius:var(--radius);box-shadow:0 4px 20px #00000052;display:flex;align-items:center;padding:0 8px;gap:0;position:absolute;top:8px;left:8px;z-index:200}.menubar-brand{display:flex;align-items:center;gap:6px;padding-right:18px;font-weight:700;letter-spacing:.04em;flex-shrink:0}.logo-mark{color:var(--accent);font-size:14px}.menubar-nav{display:flex;gap:1px}.menu-root{position:relative}.menu-item{padding:4px 10px;border-radius:var(--radius);color:var(--muted);font-size:12px;font-weight:500;transition:background .1s,color .1s;cursor:pointer;background:none;border:none;white-space:nowrap}.menu-item:hover,.menu-item.open{background:var(--surface-3);color:var(--text)}.menu-dropdown{position:absolute;top:calc(100% + 4px);left:0;min-width:190px;background:var(--surface-1);border:1px solid var(--border-hi);border-radius:var(--radius);padding:4px;box-shadow:0 8px 24px #0006;z-index:500;display:flex;flex-direction:column;gap:1px}.menu-option{display:flex;align-items:center;gap:8px;padding:6px 10px;border-radius:calc(var(--radius) - 2px);font-size:12px;color:var(--text);text-align:left;width:100%;transition:background .1s}.menu-option:hover:not(.disabled){background:var(--accent-dim);color:var(--accent)}.menu-option.disabled{opacity:.38;cursor:not-allowed}.menu-option.checked .menu-option-label{font-weight:600}.menu-option-label{flex:1}.menu-option-shortcut{font-size:10px;color:var(--muted);font-family:monospace;margin-left:auto;padding-left:16px}.menu-check{color:var(--accent);font-size:11px;font-weight:700;flex-shrink:0}.menu-divider{height:1px;background:var(--border);margin:3px 6px}.menubar-right{display:flex;align-items:center;gap:10px;flex-shrink:0;margin-left:8px;padding-left:10px;border-left:1px solid var(--border)}.theme-btn{display:flex;align-items:center;gap:5px;padding:4px 10px;border-radius:var(--radius);border:1px solid var(--border);background:var(--surface-2);font-size:11px;color:var(--text);cursor:pointer;transition:background .1s,border-color .1s}.theme-btn:hover,.theme-btn.open{background:var(--surface-3);border-color:var(--border-hi)}.theme-icon{font-size:13px}.theme-label{font-weight:600}.theme-caret{font-size:9px;color:var(--muted)}.theme-dropdown{right:0;left:auto;min-width:150px}.theme-option{gap:10px}.theme-swatch{width:16px;height:16px;display:flex;align-items:center;justify-content:center;font-size:12px;flex-shrink:0}.theme-swatch-dark{color:#4f8ef7}.theme-swatch-gray{color:#aaa}.theme-swatch-dark-blue{color:#3d8fff}.theme-swatch-light{color:#2563eb}.status-pill{display:flex;align-items:center;gap:6px;font-size:11px;color:var(--muted);background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius);padding:3px 10px}.status-dot{width:6px;height:6px;border-radius:50%}.dot-idle{background:var(--muted)}.dot-active{background:var(--green);box-shadow:0 0 6px var(--green)}.editor-layout{position:relative;flex:1;min-height:0;display:flex}.panel{background:var(--surface-1);border:1px solid var(--border);border-radius:var(--radius);box-shadow:0 4px 20px #00000052;overflow-y:auto;display:flex;flex-direction:column;position:absolute;top:calc(var(--menubar-h) + 16px);width:var(--panel-w);max-height:calc(100% - var(--menubar-h) - 24px);z-index:10}.left-panel{left:calc(var(--toolbar-w) + 18px)}.right-panel{right:8px}.panel-drag-header{cursor:grab;-webkit-user-select:none;user-select:none}.panel-drag-header:active{cursor:grabbing}.panel-section{padding:12px;border-bottom:1px solid var(--border)}.panel-section:last-child{border-bottom:none}.section-header{display:flex;align-items:center;justify-content:space-between;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin-bottom:10px}.subsection-label{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--muted);opacity:.6;margin-bottom:6px}.icon-btn{font-size:11px;padding:3px 8px;background:var(--surface-3);border:1px solid var(--border);border-radius:var(--radius);color:var(--text);transition:background .12s}.icon-btn:hover{background:var(--accent-dim);border-color:var(--accent);color:var(--accent)}.bone-list,.mesh-list{display:flex;flex-direction:column;gap:3px}.layers-panel{display:flex;flex-direction:column;gap:1px;margin-top:2px}.layer-row{display:flex;align-items:center;gap:5px;padding:5px 6px;border-radius:var(--radius);border:1px solid transparent;cursor:pointer;transition:background .1s;min-width:0}.layer-row:hover{background:var(--surface-3)}.layer-row.layer-row-selected{background:var(--accent-dim);border-color:#4f8ef759}.layer-row.layer-row-hidden{opacity:.45}.layer-vis{flex-shrink:0;width:20px;height:20px;display:flex;align-items:center;justify-content:center;border-radius:4px;border:none;background:transparent;color:var(--muted);cursor:pointer;transition:color .1s}.layer-vis:hover{color:var(--text)}.layer-color-dot{flex-shrink:0;width:8px;height:8px;border-radius:50%;border:1px solid rgba(255,255,255,.15)}.layer-type-icon{flex-shrink:0;display:flex;color:var(--muted)}.layer-name{flex:1;min-width:0;font-size:12px;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.layer-rename-input{flex:1;min-width:0;font-size:12px;background:var(--bg);border:1px solid var(--accent);border-radius:3px;color:var(--text);padding:1px 4px;outline:none}.layer-count{flex-shrink:0;font-size:10px;color:var(--muted)}.layer-delete{flex-shrink:0;width:18px;height:18px;display:flex;align-items:center;justify-content:center;border-radius:3px;border:none;background:transparent;color:transparent;cursor:pointer;transition:color .1s,background .1s}.layer-row:hover .layer-delete{color:var(--muted)}.layer-delete:hover{color:#f87171!important;background:#f871711f}.layer-convert{flex-shrink:0;width:18px;height:18px;display:flex;align-items:center;justify-content:center;border-radius:3px;border:none;background:transparent;color:transparent;cursor:pointer;transition:color .1s,background .1s}.layer-row:hover .layer-convert{color:var(--accent)}.layer-convert:hover{background:var(--accent-dim)}.convert-cta{margin-top:12px;padding:10px 12px;background:var(--surface-3);border:1px solid var(--border);border-radius:var(--radius);display:flex;flex-direction:column;gap:10px}.convert-cta .hint{font-size:11px;line-height:1.5;margin:0;color:var(--muted)}.convert-cta .hint strong{color:var(--text)}.btn-convert{display:flex;align-items:center;gap:6px;padding:6px 10px;border-radius:var(--radius);border:1px solid var(--accent);background:var(--accent-dim);color:var(--accent);font-size:12px;font-weight:600;cursor:pointer;transition:background .12s;width:100%;justify-content:center}.btn-convert:hover{background:#4f8ef740}.layer-group{display:flex;flex-direction:column;gap:1px}.layer-group-header{display:flex;align-items:center;gap:5px;padding:3px 6px;font-size:10px;font-weight:600;color:var(--muted);letter-spacing:.04em;text-transform:uppercase}.layer-group .layer-row{padding-left:18px}.layers-sep{height:1px;background:var(--border);margin:3px 0}.subsection-count{margin-left:5px;font-size:10px;padding:0 5px;background:var(--surface-3);border-radius:8px;color:var(--muted)}.bone-row{display:flex;align-items:center;gap:8px;padding:6px 8px;border-radius:var(--radius);background:transparent;border:1px solid transparent;text-align:left;transition:background .1s;cursor:pointer;width:100%}.bone-row:hover{background:var(--surface-3)}.bone-row.selected{background:var(--accent-dim);border-color:#4f8ef74d}.bone-row.drop-target{background:#f59f3b2e;border-color:#f59f3b8c!important}.bone-row.dragging{opacity:.35}.bone-ctx-menu{background:var(--surface-2);border:1px solid var(--border);border-radius:6px;padding:4px;box-shadow:0 8px 24px #00000073;min-width:120px}.bone-ctx-item{display:flex;align-items:center;gap:6px;width:100%;padding:5px 8px;border:none;background:transparent;color:var(--text-primary);font-size:12px;border-radius:4px;cursor:pointer;text-align:left}.bone-ctx-item:hover{background:var(--surface-3)}.bone-ctx-danger{color:#e06c75}.bone-ctx-danger:hover{background:#e06c7526}.bone-dot{width:10px;height:10px;border-radius:2px;flex-shrink:0;background:var(--bone-color, #f59f3b);box-shadow:0 0 6px var(--bone-color, #f59f3b)}.bone-name{flex:1;font-size:12px}.bone-tree-node{display:flex;flex-direction:column}.bone-chevron{width:16px;height:16px;display:flex;align-items:center;justify-content:center;flex-shrink:0;color:var(--muted);border-radius:3px;transition:color .1s,background .1s;cursor:pointer}.bone-chevron:hover{background:var(--surface-3);color:var(--text)}.bone-chevron.invisible{opacity:0;pointer-events:none}.mesh-row{display:flex;align-items:center;gap:8px;padding:5px 8px;font-size:12px;border-radius:var(--radius);background:var(--surface-2);border:1px solid var(--border)}.mesh-icon{color:var(--accent)}.viewport-area{display:flex;flex-direction:column;flex:1;min-height:0;overflow:hidden;background:var(--bg);position:relative}.toolbar{position:absolute;top:8px;left:8px;z-index:20}.fab-shell{position:relative}.fab-trigger{width:var(--fab-size);height:var(--fab-size);display:flex;align-items:center;justify-content:center;padding:0;background:color-mix(in srgb,var(--surface-1) 90%,transparent);border:1px solid var(--border);border-radius:var(--fab-radius);box-shadow:0 8px 24px #0000003d;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:var(--muted);transition:transform .14s ease,background .12s ease,color .12s ease,border-color .12s ease;cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;overflow:hidden;outline:none}.fab-menu-btn{width:var(--fab-size);height:var(--fab-size);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;padding:7px 5px 6px;background:color-mix(in srgb,var(--surface-1) 90%,transparent);border:1px solid rgba(255,255,255,.08);border-radius:var(--fab-radius);box-shadow:0 8px 24px #0003;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:var(--muted);transition:transform .14s ease,background .12s ease,color .12s ease,border-color .12s ease;outline:none}.fab-trigger:focus,.fab-trigger:focus-visible,.fab-menu-btn:focus,.fab-menu-btn:focus-visible{outline:none}.fab-trigger:hover,.fab-menu-btn:hover{background:var(--surface-3);color:var(--text);transform:translateY(-1px)}.fab-trigger.active,.fab-trigger.open,.fab-trigger.dragging,.fab-menu-btn.active,.fab-menu-btn.open{border-color:var(--fab-accent-border);box-shadow:0 0 0 1px var(--fab-accent-glow),0 10px 24px var(--fab-accent-shadow);color:var(--fab-accent)}.fab-trigger.dragging{cursor:grabbing;transform:scale(.98)}.fab-menu-btn:hover{border-color:var(--fab-accent-soft)}.fab-trigger-logo,.fab-menu-logo{display:block;width:100%;height:100%;object-fit:cover;border-radius:inherit}.fab-menu-panel{position:absolute;top:0;left:calc(100% + 12px);display:flex;flex-direction:column;gap:6px;align-items:stretch;padding:0;background:transparent;border:0;border-radius:0;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none;animation:fab-panel-in .14s ease-out}.fab-menu-level-0,.fab-menu-level-2,.fab-menu-level-4{top:calc(100% + 8px);left:0;display:flex;flex-direction:column;align-items:flex-start;min-width:auto}.fab-menu-level-1,.fab-menu-level-3,.fab-menu-level-5{flex-direction:row;align-items:flex-start;min-width:auto}.fab-menu-item{position:relative;flex:0 0 auto}.fab-menu-item.open{z-index:4}.fab-menu-level-1>.fab-menu-item>.fab-menu-panel,.fab-menu-level-3>.fab-menu-item>.fab-menu-panel,.fab-menu-level-5>.fab-menu-item>.fab-menu-panel{top:calc(100% + 8px);left:0;z-index:5}.fab-menu-level-0>.fab-menu-item>.fab-menu-panel,.fab-menu-level-2>.fab-menu-item>.fab-menu-panel,.fab-menu-level-4>.fab-menu-item>.fab-menu-panel{top:0;left:calc(100% + 8px);z-index:5}.fab-custom-panel{min-width:248px;padding:0}.fab-menu-icon,.fab-trigger{position:relative}.fab-menu-icon{width:20px;height:20px;display:inline-flex;align-items:center;justify-content:center}.fab-menu-caption{position:static;color:var(--text);font-size:9px;font-weight:600;letter-spacing:.02em;line-height:1.1;text-align:center;white-space:normal;max-width:46px;background:none;border:0;padding:0;box-shadow:none;opacity:1;pointer-events:none}.fab-menu-caret{position:absolute;right:5px;top:5px;opacity:.55;transition:transform .1s ease}.fab-menu-level-1>.fab-menu-item>.fab-menu-btn .fab-menu-caret,.fab-menu-level-3>.fab-menu-item>.fab-menu-btn .fab-menu-caret,.fab-menu-level-5>.fab-menu-item>.fab-menu-btn .fab-menu-caret{transform:rotate(90deg)}.fab-menu-level-1>.fab-menu-item>.fab-menu-btn.open .fab-menu-caret,.fab-menu-level-3>.fab-menu-item>.fab-menu-btn.open .fab-menu-caret,.fab-menu-level-5>.fab-menu-item>.fab-menu-btn.open .fab-menu-caret{transform:rotate(270deg)}.fab-control-card{display:flex;flex-direction:column;gap:12px;min-width:248px;padding:14px;border:1px solid rgba(255,255,255,.08);border-radius:calc(var(--fab-radius) + 2px);background:color-mix(in srgb,var(--surface-1) 94%,transparent);box-shadow:0 16px 40px #00000047;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.fab-control-caption{font-size:11px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--muted)}.fab-control-value{font-size:12px;font-weight:700;color:var(--text)}.fab-range-input{width:100%;accent-color:var(--fab-accent)}.fab-slider-card{align-items:stretch}.fab-inline-actions{display:flex;gap:8px}.fab-inline-btn{flex:1;height:34px;border:1px solid rgba(255,255,255,.08);border-radius:12px;background:var(--surface-2);color:var(--text);font-size:11px;font-weight:600;transition:border-color .12s ease,background .12s ease,color .12s ease}.fab-inline-btn:hover,.fab-inline-btn.active{border-color:var(--fab-accent-border);background:color-mix(in srgb,var(--fab-accent-soft) 48%,var(--surface-2));color:var(--fab-accent)}.fab-swatch-row{display:flex;flex-wrap:wrap;gap:8px}.fab-color-swatch{width:28px;height:28px;padding:0;border:2px solid transparent;border-radius:10px;box-shadow:inset 0 0 0 1px #ffffff1f;transition:transform .12s ease,border-color .12s ease}.fab-color-swatch:hover,.fab-color-swatch.active{transform:translateY(-1px);border-color:var(--fab-accent-border)}.fab-color-swatch-transparent{position:relative;overflow:hidden;background:repeating-conic-gradient(var(--checker-a) 0% 25%,var(--checker-b) 0% 50%) 50% / 12px 12px}.fab-color-swatch-transparent span{position:absolute;inset:50% auto auto 50%;width:20px;height:2px;background:#ff6b6b;transform:translate(-50%,-50%) rotate(-45deg)}.fab-picker-shell{width:228px;overflow:hidden;border-radius:16px}.fab-menu-btn.disabled{opacity:.42;cursor:default;transform:none}.fab-menu-btn.disabled:hover{color:var(--muted);transform:none;border-color:transparent}.rest-edit-active{background:#f59f3b2e!important;border-color:#f59f3b80!important;color:#f59f3b!important;box-shadow:0 0 8px #f59f3b33}.rest-edit-active svg{filter:drop-shadow(0 0 4px #f59f3b)}@keyframes fab-panel-in{0%{opacity:0;transform:translate(-6px) scale(.96)}to{opacity:1;transform:translate(0) scale(1)}}@keyframes fab-panel-in-down{0%{opacity:0;transform:translateY(-6px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}.fab-menu-level-0,.fab-menu-level-2,.fab-menu-level-4{animation:fab-panel-in-down .14s ease-out}.fab-menu-btn svg,.transform-btn svg{display:block;flex-shrink:0}.viewport-wrap.rest-edit-mode{outline:2px solid rgba(245,159,59,.5);outline-offset:-2px}.rest-edit-badge{position:absolute;top:12px;left:50%;transform:translate(-50%);padding:3px 12px;border-radius:999px;font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;background:#f59f3b2e;border:1px solid rgba(245,159,59,.5);color:#f59f3b;pointer-events:none;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);display:flex;align-items:center;gap:5px}.viewport-wrap{flex:1;min-height:0;position:relative;background:repeating-conic-gradient(var(--checker-a) 0% 25%,var(--checker-b) 0% 50%) 50% / 20px 20px}.viewport-canvas{display:block;width:100%;height:100%;cursor:crosshair;background:var(--bg)}.transform-toolbar{position:absolute;bottom:16px;left:58px;display:flex;gap:4px;background:var(--surface-1);border:1px solid var(--border);border-radius:var(--radius);padding:4px;box-shadow:0 4px 16px #00000040;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);transition:bottom .38s cubic-bezier(.22,1,.36,1)}.transform-btn{width:32px;height:32px;display:flex;align-items:center;justify-content:center;font-size:16px;border-radius:calc(var(--radius) - 2px);color:var(--muted);transition:all .12s}.transform-btn:hover{background:var(--surface-3);color:var(--text)}.transform-btn.active{background:var(--accent);color:#fff}.transform-btn.danger:hover{color:#e06c75}.transform-btn.danger.active{background:#e0533f;color:#fff}.viewport-visibility{position:absolute;top:12px;right:12px;display:flex;gap:6px}.vis-toggle{display:flex;align-items:center;gap:6px;padding:4px 10px;font-size:11px;border-radius:var(--radius);background:var(--surface-2);border:1px solid var(--border);color:var(--muted);transition:all .12s;cursor:pointer}.vis-toggle:hover{background:var(--surface-3);border-color:var(--border-hi);color:var(--text)}.vis-toggle.active{color:var(--fab-accent);border-color:var(--fab-accent-border);box-shadow:0 0 0 1px var(--fab-accent-glow),0 8px 20px var(--fab-accent-shadow)}.vis-toggle.active .vis-dot{background:var(--fab-accent);box-shadow:0 0 6px var(--fab-accent)}.vis-dot{width:6px;height:6px;border-radius:50%;background:var(--muted);transition:all .12s}.viewport-hud{position:absolute;bottom:12px;right:14px;display:flex;gap:6px;transition:bottom .38s cubic-bezier(.22,1,.36,1)}.hud-pill{padding:3px 9px;border-radius:var(--radius);font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.07em;background:var(--surface-2);border:1px solid var(--border);color:var(--muted)}.hud-weight{color:#f5a623;border-color:#f5a62366}.timeline{position:absolute;bottom:8px;left:8px;right:8px;height:var(--timeline-h);background:var(--surface-1);border:1px solid var(--border);border-radius:var(--radius);box-shadow:0 4px 20px #00000052;display:flex;flex-direction:column;overflow:hidden;z-index:10;transform:translateY(calc(100% + 20px));pointer-events:none;visibility:hidden;transition:transform .38s cubic-bezier(.22,1,.36,1),visibility 0s .38s}.timeline-open .timeline{transform:translateY(0);pointer-events:auto;visibility:visible;transition:transform .38s cubic-bezier(.22,1,.36,1),visibility 0s 0s}.timeline-open .transform-toolbar{bottom:calc(var(--timeline-h) + 24px)}.timeline-open .viewport-hud{bottom:calc(var(--timeline-h) + 20px)}.timeline-header{display:flex;align-items:center;gap:10px;padding:8px 14px;border-bottom:1px solid var(--border);flex-shrink:0;flex-wrap:wrap}.timeline-title-group{display:flex;flex-direction:column;gap:2px;min-width:120px}.timeline-clip-picker{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.timeline-clip-name{font-size:13px;color:var(--text)}.timeline-clip-select{min-width:132px;padding:4px 8px;border-radius:8px;border:1px solid var(--border);background:var(--surface-2);color:var(--text)}.tl-label{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--muted)}.tl-transport,.timeline-actions,.timeline-meta{display:flex;gap:4px;align-items:center}.timeline-meta{margin-left:auto;flex-wrap:wrap}.timeline-actions{margin-left:4px}.timeline-mini-field{display:inline-flex;align-items:center;gap:6px;font-size:11px;color:var(--muted)}.timeline-mini-field input{width:68px;padding:3px 6px;border-radius:8px;border:1px solid var(--border);background:var(--surface-2);color:var(--text)}.timeline-fps{padding-left:6px}.tl-btn{padding:4px 8px;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius);font-size:12px;transition:background .1s,border-color .1s;display:inline-flex;align-items:center;gap:6px}.tl-btn:hover{background:var(--surface-3)}.tl-play{background:var(--accent-dim);border-color:#4f8ef766;color:var(--accent)}.tl-btn-active{border-color:#f59f3b73;color:var(--accent2)}.tl-btn-autokey-on{border-color:#e06c758c;color:#e06c75;background:#e06c751f}.tl-btn-autokey-on:hover{background:#e06c7533}.tl-zoom-group{display:flex;gap:4px;margin-left:8px;padding-left:8px;border-left:1px solid var(--border)}.tl-zoom-btn{padding:4px 6px}.timeline-summary{display:flex;align-items:center;gap:10px;padding:8px 14px;border-bottom:1px solid rgba(255,255,255,.05);font-size:11px;flex-wrap:wrap}.timeline-summary-chip{padding:4px 10px;border-radius:999px;background:var(--surface-2);border:1px solid var(--border);color:var(--text)}.timeline-body{display:flex;flex-direction:column;min-height:0;flex:1}.timeline-ruler-row{display:flex;min-height:32px;border-bottom:1px solid rgba(255,255,255,.05)}.timeline-track-name-header{font-size:10px;text-transform:uppercase;letter-spacing:.08em}.timeline-scroll{position:relative;overflow-x:auto;overflow-y:hidden;flex:1}.timeline-ruler{position:relative;height:32px}.timeline-ruler-cell{position:absolute;top:0;bottom:0;width:18px;border-left:1px solid rgba(255,255,255,.04)}.timeline-ruler-cell:before{content:"";position:absolute;left:0;bottom:0;width:1px;height:8px;background:#ffffff2e}.timeline-ruler-cell.is-medium:before{height:14px}.timeline-ruler-cell.is-major:before{height:20px;background:#ffffff52}.timeline-ruler-cell span{position:absolute;top:5px;left:4px;font-size:10px;color:var(--muted)}.tl-tracks{flex:1;overflow:auto}.tl-track{display:flex;min-height:34px;border-bottom:1px solid rgba(255,255,255,.04)}.tl-track.tl-track-active .tl-track-name{background:var(--accent-dim);color:var(--accent)}.tl-track-name{width:160px;flex-shrink:0;display:flex;align-items:flex-start;justify-content:center;flex-direction:column;gap:2px;font-size:11px;color:var(--muted);border-right:1px solid var(--border);cursor:pointer;transition:background .1s;padding:0 10px 0 8px;background:transparent;text-align:left}.tl-track-name small{text-transform:uppercase;letter-spacing:.06em;font-size:9px;opacity:.8}.tl-track-name:hover{background:var(--surface-3)}.tl-track-lane{flex:1;position:relative;overflow:hidden;cursor:pointer}.tl-lane-grid{position:absolute;inset:0 auto 0 0;background-image:linear-gradient(to right,rgba(255,255,255,.05) 1px,transparent 1px),linear-gradient(to right,rgba(255,255,255,.025) 1px,transparent 1px);background-size:72px 100%,18px 100%;background-position:0 0,0 0}.tl-playhead{position:absolute;top:0;left:var(--tl-playhead-left, 0px);width:1px;height:100%;background:var(--accent);opacity:.85;pointer-events:none;will-change:left}.tl-work-area-bar{position:absolute;top:0;height:100%;background:var(--accent2-dim);border-left:2px solid var(--accent2);border-right:2px solid var(--accent2);pointer-events:none;z-index:1}.tl-work-handle{position:absolute;top:0;width:14px;height:100%;cursor:col-resize;z-index:5;transform:translate(-50%)}.tl-work-handle:before{content:"";position:absolute;top:0;bottom:0;left:50%;transform:translate(-50%);width:2px;height:100%;opacity:.65}.tl-work-handle:after{content:"";position:absolute;top:0;left:50%;transform:translate(-50%);width:0;height:0;border-left:6px solid transparent;border-right:6px solid transparent}.tl-work-handle-in:before{background:var(--accent2)}.tl-work-handle-in:after{border-top:8px solid var(--accent2)}.tl-work-handle-out:before{background:var(--accent2)}.tl-work-handle-out:after{border-top:8px solid var(--accent2)}.tl-work-handle:hover:before{opacity:1}.tl-resize-handle{position:absolute;top:0;left:0;right:0;height:6px;cursor:ns-resize;z-index:20;background:transparent;transition:background .15s}.tl-resize-handle:hover,.tl-resize-handle:active{background:var(--accent2-dim)}.kf{position:absolute;top:50%;width:9px;height:9px;transform:translate(-50%,-50%) rotate(45deg);background:var(--accent2);border-radius:1px;box-shadow:0 0 6px #f59f3b80}.timeline-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;height:100%;color:var(--muted);text-align:center;padding:16px}.inspector-bone{display:flex;flex-direction:column;gap:10px}.bone-badge-lg{padding:5px 12px;border-radius:var(--radius);font-weight:700;font-size:13px;color:#000;width:fit-content}.prop-grid{display:grid;grid-template-columns:auto 1fr;gap:4px 14px;align-items:center}dt{color:var(--muted);font-size:11px;white-space:nowrap}dd{font-size:12px;overflow:hidden;text-overflow:ellipsis}.weight-section{flex:1;overflow:hidden;display:flex;flex-direction:column}.weight-table-wrap{display:flex;flex-direction:column;gap:8px;overflow:hidden}.weight-table-header{display:flex;align-items:center;gap:8px}.bone-badge{padding:2px 8px;border-radius:4px;font-size:11px;font-weight:700;color:#000}.weight-table{display:flex;flex-direction:column;gap:5px;overflow-y:auto;max-height:280px;padding-right:2px}.weight-row{display:flex;align-items:center;gap:8px}.vtx-id{font-size:10px;width:28px;flex-shrink:0;font-family:monospace}.weight-bar-wrap{flex:1;height:16px;background:var(--surface-3);border-radius:3px;position:relative;overflow:hidden}.weight-bar{height:100%;border-radius:3px;transition:width .12s}.weight-val{position:absolute;right:4px;top:1px;font-size:10px;font-weight:700;color:#fff;text-shadow:0 1px 2px #000}.weight-slider{width:64px;flex-shrink:0;accent-color:var(--accent)}.weight-legend{margin:8px 0}.weight-gradient{height:10px;border-radius:4px;background:linear-gradient(to right,#5078dc,#3cb482,#f0c83c,#e66428,#dc3232);margin-bottom:4px}.weight-legend-labels{display:flex;justify-content:space-between;font-size:9px;color:var(--muted)}.toggle-label{display:flex;align-items:center;gap:5px;cursor:pointer;font-size:11px}.toggle-label input{accent-color:var(--accent)}.toggle-text{color:var(--muted)}.brush-controls{display:flex;flex-direction:column;gap:8px;padding:10px 0;border-bottom:1px solid var(--border);margin-bottom:10px}.brush-control-row{display:grid;grid-template-columns:60px 1fr 50px;align-items:center;gap:8px}.brush-label{font-size:11px;color:var(--muted);font-weight:600}.brush-slider{width:100%;height:4px;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:var(--surface-3);border-radius:2px;outline:none}.brush-slider::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:14px;height:14px;border-radius:50%;background:var(--accent);cursor:pointer;transition:background .12s}.brush-slider::-webkit-slider-thumb:hover{background:var(--accent2)}.brush-slider::-moz-range-thumb{width:14px;height:14px;border:none;border-radius:50%;background:var(--accent);cursor:pointer}.brush-value{font-size:11px;color:var(--text);text-align:right;font-weight:600;font-variant-numeric:tabular-nums}.muted{color:var(--muted)}.hint{font-size:11px;line-height:1.6}::-webkit-scrollbar{width:5px;height:5px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--surface-3);border-radius:99px}::-webkit-scrollbar-thumb:hover{background:var(--muted)}.td-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000008c;display:flex;align-items:center;justify-content:center;z-index:9999}.td-panel{background:var(--surface-2);border:1px solid var(--border-hi);border-radius:var(--radius);min-width:420px;max-width:520px;box-shadow:0 16px 48px #0009;overflow:hidden}.td-header{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;background:var(--surface-1);border-bottom:1px solid var(--border);font-size:12px;font-weight:600;color:var(--text);letter-spacing:.02em}.td-body{display:flex;flex-direction:column;gap:0;padding:4px 0}.td-row{display:grid;grid-template-columns:130px 36px 1fr;align-items:center;gap:8px;padding:7px 14px}.td-label{font-size:12px;color:var(--text)}.td-value{font-size:12px;color:var(--muted);text-align:right;font-variant-numeric:tabular-nums}.td-slider{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:100%;height:4px;border-radius:2px;background:var(--surface-3);outline:none;cursor:pointer}.td-slider::-webkit-slider-thumb{-webkit-appearance:none;width:14px;height:14px;border-radius:50%;background:var(--accent);cursor:pointer;border:2px solid var(--surface-1);box-shadow:0 0 0 1px var(--accent)}.td-slider::-moz-range-thumb{width:14px;height:14px;border-radius:50%;background:var(--accent);cursor:pointer;border:2px solid var(--surface-1)}.td-footer{display:flex;align-items:center;gap:8px;padding:10px 14px;background:var(--surface-1);border-top:1px solid var(--border)}.td-vtx{font-size:12px}.td-btn-cancel{padding:5px 14px;border-radius:var(--radius);border:1px solid var(--border-hi);background:transparent;color:var(--muted);font-size:12px;cursor:pointer}.td-btn-cancel:hover{color:var(--text);background:var(--surface-3)}.td-btn-ok{padding:5px 18px;border-radius:var(--radius);border:1px solid var(--accent);background:var(--accent-dim);color:var(--accent);font-size:12px;font-weight:600;cursor:pointer}.td-btn-ok:hover{background:var(--accent);color:var(--text-inv)}.td-panel--image{min-width:280px}.td-close{margin-left:auto;background:none;border:none;color:var(--muted);font-size:13px;cursor:pointer;line-height:1;padding:2px 4px;border-radius:3px}.td-close:hover{color:var(--text);background:var(--surface-3)}.td-mode-row{display:flex;gap:6px;padding:8px 14px 6px;border-bottom:1px solid var(--border)}.td-mode-btn{flex:1;padding:5px 0;border-radius:var(--radius);border:1px solid var(--border-hi);background:var(--surface-2);color:var(--muted);font-size:12px;font-weight:500;cursor:pointer;transition:background .12s,color .12s,border-color .12s}.td-mode-btn:hover{background:var(--surface-3);color:var(--text)}.td-mode-btn.active{border-color:var(--accent);background:var(--accent-dim);color:var(--accent)}.td-row-check{display:grid;grid-template-columns:130px 1fr;align-items:center;gap:8px;padding:7px 14px}.td-check-label{display:flex;align-items:center;gap:6px;cursor:pointer;-webkit-user-select:none;user-select:none}.td-check-hint{font-size:10px;color:var(--muted)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:300;background:#0000008c;display:flex;align-items:center;justify-content:center}.modal-panel{background:var(--surface-1);border:1px solid var(--border-hi);border-radius:var(--radius);box-shadow:0 8px 32px #00000080;min-width:340px;max-width:520px;width:100%;overflow:hidden}.modal-header{display:flex;align-items:center;padding:10px 14px;border-bottom:1px solid var(--border);gap:8px}.modal-title{font-size:13px;font-weight:600;color:var(--text);flex:1}.drawing-editor-panel{width:min(1120px,calc(100vw - 48px));height:min(760px,calc(100vh - 48px));max-width:none;display:flex;flex-direction:column}.drawing-editor-actions{display:flex;align-items:center;gap:8px}.drawing-editor-shell{display:flex;flex-direction:column;gap:10px;padding:12px;min-height:0;flex:1}.drawing-editor-note{font-size:11px;color:var(--muted)}.drawing-editor-error{font-size:11px;color:var(--red)}.drawing-editor-canvas{flex:1;min-height:0;position:relative;border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;background:var(--surface-1)}.drawing-canvas-editor{position:absolute;top:0;right:0;bottom:0;left:0;z-index:12;display:flex;flex-direction:column;overflow:hidden;border:0;border-radius:0;background:#12121af5;box-shadow:none;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.drawing-canvas-area{flex:1;position:relative;overflow:hidden;background:transparent;touch-action:none}.drawing-canvas-area.transparent{background:repeating-conic-gradient(var(--checker-a) 0% 25%,var(--checker-b) 0% 50%) 50% / 18px 18px}.drawing-canvas-background,.drawing-canvas-main,.drawing-canvas-overlay{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;display:block}.drawing-canvas-overlay{pointer-events:none}.drawing-inline-name{font-size:12px;font-weight:600;color:var(--text);margin-right:4px;white-space:nowrap}.hotkeys-body{padding:8px 0 12px}.hotkey-row{display:grid;grid-template-columns:170px 1fr;align-items:center;gap:12px;padding:6px 16px}.hotkey-row:hover{background:var(--surface-2)}.hotkey-kbd{font-family:ui-monospace,monospace;font-size:11px;color:var(--text);background:var(--surface-3);border:1px solid var(--border-hi);border-radius:4px;padding:2px 7px;white-space:nowrap;text-align:center}.hotkey-desc{font-size:12px;color:var(--muted)}
