:root{--bg: #1e1e24;--panel: #26262e;--panel-2: #2e2e38;--text: #e8e6e3;--muted: #9a97a3;--accent: #ff6f61;--accent-2: #7aa2f7;--sp-1: 4px;--sp-2: 8px;--sp-3: 12px;--sp-4: 16px;--sp-5: 24px;--ctrl-h: 28px;--ctrl-h-sm: 24px;--r-sm: 4px;--r: 6px;--r-lg: 8px;--border: rgba(255, 255, 255, .08);--border-strong: rgba(255, 255, 255, .15);--divider: rgba(0, 0, 0, .32);--surface-hover: rgba(255, 255, 255, .06);--surface-active: rgba(255, 255, 255, .11);--accent-soft: rgba(255, 111, 97, .16);--accent-2-soft: rgba(122, 162, 247, .16);--sel-gold: #ffd166;--shadow-1: 0 1px 2px rgba(0, 0, 0, .28);--shadow-2: 0 6px 20px rgba(0, 0, 0, .38);color-scheme:dark}*{box-sizing:border-box}body{margin:0;font:13px/1.4 system-ui,sans-serif;background:var(--bg);color:var(--text);height:100vh;display:flex;flex-direction:column;overflow:hidden;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}input[type=number],.tl-time,.tl-fps,.tl-keyinfo,.graph-axis-label{font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1}#toolbar{display:flex;gap:var(--sp-2);align-items:center;padding:var(--sp-2) var(--sp-3);background:var(--panel);border-bottom:1px solid var(--divider);box-shadow:var(--shadow-1);position:relative;z-index:3}#toolbar .spacer{flex:1}.brand{font-size:15px;font-weight:700;letter-spacing:.03em;background:linear-gradient(90deg,var(--accent),var(--accent-2));-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:var(--accent);padding-right:var(--sp-3);white-space:nowrap;-webkit-user-select:none;user-select:none}.tb-group{display:flex;align-items:center;gap:var(--sp-1);padding-right:var(--sp-2);margin-right:var(--sp-1);border-right:1px solid var(--border)}#layout{flex:1;display:grid;grid-template-columns:var(--layers-width, 200px) 6px 1fr 260px;min-height:0}#layers,#inspector{background:var(--panel);padding:var(--sp-3);overflow-y:auto}#layers{border-right:1px solid var(--divider)}#inspector{border-left:1px solid var(--divider)}#layers-splitter{position:relative;cursor:col-resize;background:var(--divider);touch-action:none}#layers-splitter:hover,#layers-splitter.dragging{background:var(--accent-2)}#layers-splitter:before{content:"";position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:2px;height:34px;border-radius:2px;background:#ffffff59}#canvas-col{display:flex;flex-direction:column;min-width:0;min-height:0}#canvas-tools{display:flex;flex-direction:column;flex:none;padding:0 var(--sp-3);background:var(--panel);border-bottom:1px solid var(--divider)}#canvas-tools .ct-controls{display:flex;gap:var(--sp-2);align-items:center;height:40px;flex:none;overflow:hidden;white-space:nowrap}#canvas-tools button{padding:0 var(--sp-2);font-size:12px}#canvas-tools button.armed{background:var(--accent-2);color:#101018;border-color:var(--accent-2)}#canvas-tools .tool-sep{width:1px;height:20px;background:var(--border-strong);margin:0 var(--sp-1)}#canvas-tools .ct-hint{flex:none;height:18px;line-height:18px;margin:0 0 4px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}#canvas{position:relative;flex:1;display:flex;align-items:center;justify-content:center;background:linear-gradient(45deg,#242429 25%,transparent 25%,transparent 75%,#242429 75%),linear-gradient(45deg,#242429 25%,#202026 25%,#202026 75%,#242429 75%);background-size:24px 24px;background-position:0 0,12px 12px;overflow:hidden}#canvas svg{height:100%;width:100%;touch-action:none}.freeze-banner{position:absolute;top:0;left:0;right:0;z-index:6;display:none;padding:5px 10px;text-align:center;font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:#101018;background:var(--accent);box-shadow:0 2px 8px #00000059;pointer-events:none}#canvas.freeze-mode .freeze-banner{display:block}#canvas.freeze-mode:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:5;pointer-events:none;box-shadow:inset 0 0 0 3px var(--accent),inset 0 0 70px #ff6f6138}.freeze-btn.active{background:var(--accent);color:#101018;border-color:var(--accent)}#mode-toggle{display:flex;border:1px solid var(--border-strong);border-radius:var(--r);overflow:hidden;background:#0003}#mode-toggle button{border:none;border-radius:0;padding:0 var(--sp-4);height:var(--ctrl-h);background:transparent}#mode-toggle button:hover:not(.active):not(:disabled){background:var(--surface-hover)}#mode-toggle button.active{background:var(--accent-2);color:#101018;font-weight:600}#mode-toggle button:first-child{border-right:1px solid var(--border-strong)}h2{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.09em;color:var(--muted);margin:2px 0 var(--sp-2)}h3{font-size:12px;font-weight:600;letter-spacing:.01em;margin:var(--sp-4) 0 var(--sp-2);color:var(--accent)}button{display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-1);background:var(--panel-2);color:var(--text);border:1px solid var(--border-strong);border-radius:var(--r-sm);padding:0 var(--sp-3);height:var(--ctrl-h);font:inherit;line-height:1;cursor:pointer;transition:background .12s ease,border-color .12s ease,color .12s ease}button:hover:not(:disabled){background:#363642;border-color:var(--accent)}button:active:not(:disabled){background:#2a2a34}button.active{background:var(--accent);color:#1a1a1a;border-color:var(--accent)}button:disabled{opacity:.5;cursor:not-allowed}button:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--accent-2);outline-offset:2px}#mode-toggle button:focus-visible,#canvas-tools .tool-switch button:focus-visible{outline:none;box-shadow:inset 0 0 0 2px var(--accent-2)}input,select,textarea{background:var(--panel-2);color:var(--text);border:1px solid var(--border-strong);border-radius:var(--r-sm);padding:4px var(--sp-2);width:100%;font:inherit;transition:border-color .12s ease,box-shadow .12s ease}input:not([type=checkbox]):not([type=color]):not([type=range]),select{height:var(--ctrl-h)}input:hover:not(:disabled),select:hover:not(:disabled),textarea:hover:not(:disabled){border-color:#ffffff3d}input:focus,select:focus,textarea:focus,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:none;border-color:var(--accent-2);box-shadow:0 0 0 2px var(--accent-2-soft)}input[type=checkbox]{accent-color:var(--accent-2);cursor:pointer}input[type=number]{width:90px}.layer-tree,.layer-children{list-style:none;margin:0;padding:0}.layer-children{margin-left:14px;border-left:1px solid var(--border);padding-left:var(--sp-1)}.layer-row{display:flex;align-items:center;gap:5px;padding:4px 6px;border-radius:var(--r-sm);cursor:pointer;-webkit-user-select:none;user-select:none;transition:background .1s ease}.layer-row:hover{background:var(--surface-hover)}.layer-row.selected{background:var(--accent);color:#1a1a1a;font-weight:600}.layer-row.selected:hover{background:var(--accent)}.layer-row.in-selection{outline:1px solid var(--accent)}.layer-row.drop-target{outline:2px dashed var(--accent-2)}.layer-row.drop-above{box-shadow:0 -2px 0 0 var(--accent-2)}.layer-row.drop-below{box-shadow:0 2px 0 0 var(--accent-2)}.layer-row .chevron{width:14px;text-align:center;color:var(--muted);flex:none}.layer-row.selected .chevron{color:#1a1a1a}.layer-row .layer-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.layer-row .layer-count{margin-left:auto;color:var(--muted);font-size:11px;font-variant-numeric:tabular-nums}.layer-row.selected .layer-count{color:#1a1a1a}.layer-row.path{color:var(--muted);font-size:12px}.layer-row.path .path-icon{width:14px;text-align:center;color:var(--accent-2);flex:none}.layer-row.search-match .layer-name{color:var(--accent-2);font-weight:600}.layers-search{margin-bottom:var(--sp-2)}.layers-search input{height:var(--ctrl-h-sm)}.layer-row.hidden-part{opacity:.55}.layer-eye{flex:none;display:flex;align-items:center;justify-content:center;width:20px;height:20px;padding:0;border:none;border-radius:var(--r-sm);background:transparent;color:var(--muted);cursor:pointer}.layer-eye:hover{background:var(--surface-hover);color:var(--text)}.layer-row.selected .layer-eye{color:#1a1a1a}.layer-row.selected .layer-eye:hover{background:#0000001f}.unparent-zone{margin-top:var(--sp-2);padding:6px;border:1px dashed var(--border-strong);border-radius:var(--r-sm);color:var(--muted);font-size:11px;text-align:center}.unparent-zone.drop-target{border-color:var(--accent-2);color:var(--accent-2)}.hint{color:var(--muted);font-size:12px}.empty-state{display:flex;flex-direction:column;align-items:flex-start;gap:var(--sp-2);padding:var(--sp-3) var(--sp-2)}.empty-state-actions{display:flex;gap:var(--sp-1);flex-wrap:wrap}.row{display:flex;gap:6px;margin-bottom:var(--sp-2)}.field{display:flex;justify-content:space-between;align-items:center;gap:var(--sp-2);margin:var(--sp-1) 0}.field span{color:var(--muted)}.ai-panel{margin-top:18px;border-top:1px solid var(--border);padding-top:var(--sp-3)}.ai-panel textarea{margin:6px 0;resize:vertical}.ai-panel input{margin-bottom:6px}.ai-panel input[type=checkbox]{width:auto;margin:0}.ai-panel button{margin:3px 4px 3px 0}.critique-out{margin-top:var(--sp-2);padding:var(--sp-2);background:var(--panel-2);border:1px solid var(--border);border-radius:var(--r-sm);font-size:12px;white-space:pre-wrap;max-height:260px;overflow-y:auto}#timeline{background:var(--panel);border-top:1px solid var(--divider);box-shadow:0 -2px 10px #00000038;min-height:120px;max-height:40vh;overflow-y:auto;padding:var(--sp-2) var(--sp-3);position:relative;z-index:2}.tl-bar{display:flex;gap:var(--sp-2);align-items:center;margin-bottom:var(--sp-2);flex-wrap:wrap}.tl-bar label{display:flex;gap:6px;align-items:center;color:var(--muted)}.tl-bar input[type=number]{width:80px}.tl-play{min-width:40px}.tl-time{color:var(--accent-2);min-width:70px;text-align:right;font-weight:600;cursor:pointer}.tl-lanes{position:relative}.tl-ruler{position:relative;height:22px;background:var(--panel-2);border:1px solid var(--border);border-radius:var(--r-sm);margin-left:160px;cursor:crosshair}.tl-playhead{position:absolute;top:0;width:2px;height:22px;background:var(--accent-2);pointer-events:none;z-index:4}.tl-playhead:before{content:"";position:absolute;top:-4px;left:50%;width:9px;height:9px;transform:translate(-50%) rotate(45deg);background:var(--accent-2);border-radius:2px;box-shadow:0 1px 2px #0006}.tl-lane{display:flex;align-items:center;height:24px}.tl-lane-label{width:160px;padding-right:10px;color:var(--muted);text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tl-strip{position:relative;flex:1;height:14px;background:#00000038;border-radius:3px;box-shadow:inset 0 0 0 1px var(--border)}.tl-key{position:absolute;top:50%;width:11px;height:11px;background:var(--accent);border-radius:2px;transform:translate(-50%,-50%) rotate(45deg);cursor:ew-resize;box-shadow:0 1px 2px #00000073;transition:transform .12s ease,background .12s ease,box-shadow .12s ease}.tl-key:hover{background:#ffd166;transform:translate(-50%,-50%) rotate(45deg) scale(1.22);box-shadow:0 2px 6px #00000080}.tl-key.selected{background:#ffd166;outline:1.5px solid #fff;outline-offset:-1px}.tl-empty{color:var(--muted);padding:10px}#timeline.disabled{opacity:.75}.tl-setup-note{color:var(--muted);padding:14px 10px}.tl-setup-note b{color:var(--accent-2)}.tl-speed{width:auto}.tl-fps{color:var(--muted);min-width:46px;text-align:right;font-variant-numeric:tabular-nums}.tl-keybar{display:flex;gap:6px;align-items:center;margin-bottom:var(--sp-2);flex-wrap:nowrap;height:30px;overflow:hidden;white-space:nowrap}.tl-keybar button{padding:0 var(--sp-2);font-size:12px;height:var(--ctrl-h-sm)}.tl-keybar input[type=number]{width:80px;height:var(--ctrl-h-sm);padding:2px 6px}.tl-keybar select{width:auto;height:var(--ctrl-h-sm);padding:2px 6px}.tl-keyinfo{color:var(--accent-2);font-weight:600}.tl-flash{color:#ffd166;font-size:12px}.tl-marquee{position:absolute;border:1px dashed var(--accent-2);background:#7aa2f71f;pointer-events:none;z-index:5}.overlay-passive,#onion{pointer-events:none}.onion-ghost{opacity:.16}.onion-ghost path{stroke:none}.onion-ghost.onion-prev path{fill:var(--accent)}.onion-ghost.onion-next path{fill:var(--accent-2)}.bone-line{stroke:#7aa2f78c;stroke-width:1;vector-effect:non-scaling-stroke}.select-box.secondary{stroke:#7aa2f773}.scale-handle{fill:var(--accent-2);stroke:#fff;stroke-width:.4;vector-effect:non-scaling-stroke}.scale-handle:hover{fill:#ffd166}.scale-handle.handle-nw,.scale-handle.handle-se{cursor:nwse-resize}.scale-handle.handle-ne,.scale-handle.handle-sw{cursor:nesw-resize}.scale-handle.handle-n,.scale-handle.handle-s{cursor:ns-resize}.scale-handle.handle-e,.scale-handle.handle-w{cursor:ew-resize}.rotate-handle{fill:#ff6f6159;stroke:var(--accent);stroke-width:1;vector-effect:non-scaling-stroke;cursor:grab}.rotate-handle:hover{fill:var(--accent)}.path-highlight{fill:none;stroke:#ffd166;stroke-width:1.2;vector-effect:non-scaling-stroke}.color-wrap{display:flex;gap:6px;align-items:center}.color-wrap input[type=checkbox]{width:auto}.color-wrap input[type=color]{width:40px;padding:1px;height:24px}.pivot-handle{cursor:default}#canvas.freeze-mode .pivot-handle:not(.locked){cursor:move}.pivot-handle.locked{cursor:default}.pivot-handle.locked .pivot-ring{stroke:var(--muted)}.pivot-handle.locked .pivot-dot{fill:var(--muted)}.pivot-handle.locked line{stroke:var(--muted)}.pivot-handle .pivot-grab{fill:transparent;stroke:none}.pivot-handle .pivot-ring{fill:none;stroke:var(--accent);stroke-width:1.2;vector-effect:non-scaling-stroke}.pivot-handle .pivot-dot{fill:var(--accent);stroke:none}.pivot-handle line{stroke:var(--accent);stroke-width:1;vector-effect:non-scaling-stroke;pointer-events:none}.pivot-ghost{fill:#ff6f6140;stroke:#ff6f6199;stroke-width:.6;vector-effect:non-scaling-stroke}.select-box{fill:none;stroke:var(--accent-2);stroke-width:1;vector-effect:non-scaling-stroke}.select-corner{fill:var(--accent-2);stroke:none}.skin-hint{fill:var(--accent);font-family:system-ui,sans-serif;font-weight:600;paint-order:stroke;stroke:#141418d9;stroke-width:2.5px;vector-effect:non-scaling-stroke;stroke-linejoin:round;pointer-events:none}.gizmo-line{stroke:#ffd166;stroke-width:1;vector-effect:non-scaling-stroke}.gizmo-arc{fill:#ffd16638;stroke:#ffd166;stroke-width:.8;vector-effect:non-scaling-stroke}.gizmo-text{fill:#ffd166;font-family:system-ui,sans-serif;font-weight:600}.gizmo-text-halo{fill:none;stroke:#1a1a1a;stroke-width:3px;vector-effect:non-scaling-stroke;stroke-linejoin:round;paint-order:stroke;font-family:system-ui,sans-serif;font-weight:600}.node-handle{fill:#7aa2f7b3;stroke:#fff;stroke-width:.5;vector-effect:non-scaling-stroke;cursor:move}.node-handle.selected{fill:#ffd166;stroke:#fff}.ctrl-handle{fill:#ffd166b3;stroke:#6b5b1e;stroke-width:.5;vector-effect:non-scaling-stroke;cursor:move}.node-handle-ring{fill:none;stroke:#fff;stroke-width:1.4;vector-effect:non-scaling-stroke;pointer-events:none}.handle-line{stroke:#ffd16680;stroke-width:1;vector-effect:non-scaling-stroke;pointer-events:none}.null-glyph{cursor:move}.null-glyph.bone path{fill:#7aa2f759;stroke:var(--accent-2);stroke-width:1.2;vector-effect:non-scaling-stroke}.null-glyph.group rect{fill:#ffd1662e;stroke:#ffd166;stroke-width:1;vector-effect:non-scaling-stroke}.null-glyph.selected path,.null-glyph.selected rect{fill:#ff6f6166;stroke:var(--accent)}.null-glyph.ik-active path{fill:#ff6f618c;stroke:var(--accent);stroke-width:1.8}.ik-target-line{stroke:var(--accent);stroke-width:1.2;stroke-dasharray:4 3;vector-effect:non-scaling-stroke;pointer-events:none}.layer-kind{width:14px;text-align:center;flex:none;font-size:11px}.layer-kind.bone{color:var(--accent-2)}.layer-kind.group{color:#ffd166}.align-grid{display:flex;gap:var(--sp-1);flex-wrap:wrap;margin:6px 0}.align-grid button{padding:0 var(--sp-2);font-size:12px;min-width:34px}.align-grid button.node-type-active{background:var(--accent-2-soft);border-color:var(--accent-2);box-shadow:inset 0 0 0 1px var(--accent-2)}.stacking-controls{display:inline-flex;align-items:center;gap:var(--sp-1)}.stacking-pos{color:var(--muted);font-size:12px;font-variant-numeric:tabular-nums}.stacking-step{padding:0;width:var(--ctrl-h-sm);min-width:var(--ctrl-h-sm);height:var(--ctrl-h-sm);font-size:11px}.graph-panel{margin-top:var(--sp-2);border-top:1px solid var(--border);padding-top:6px}.graph-header{display:flex;gap:10px;align-items:center;margin-bottom:var(--sp-1)}.graph-header .graph-track-name{color:var(--accent-2);font-weight:600}.graph-header button{padding:0 var(--sp-2);font-size:12px;height:var(--ctrl-h-sm)}.graph-empty{color:var(--muted);padding:14px 10px}.graph-svg{display:block;width:100%;height:220px;touch-action:none;background:#0000002e;border-radius:var(--r-sm)}.graph-grid-line{stroke:#3a3a44;stroke-width:1}.graph-axis-label{fill:var(--muted);font:10px system-ui,sans-serif}.graph-curve{fill:none;stroke:var(--accent);stroke-width:1.5}.graph-key{fill:var(--accent);stroke:#fff;stroke-width:1;cursor:move}.graph-key:hover{fill:#ffd166}.graph-handle-line{stroke:#7aa2f78c;stroke-width:1;pointer-events:none}.graph-handle-line.preset{stroke:#7aa2f740;stroke-dasharray:3 3}.graph-handle{fill:var(--accent-2);stroke:#fff;stroke-width:.8;cursor:move}.graph-handle:hover{fill:#ffd166}.graph-handle.preset{fill:#7aa2f759;stroke:none}.graph-handle.preset:hover{fill:#ffd166}.icon{display:inline-flex;align-items:center}button .icon{margin-right:1px}button.icon-btn{display:inline-flex;align-items:center;gap:4px}#canvas-tools .tool-switch{display:flex;border:1px solid var(--border-strong);border-radius:var(--r);overflow:hidden;background:#0003}#canvas-tools .tool-switch button{border:none;border-radius:0;padding:0 var(--sp-2)}#canvas-tools .tool-switch button:hover:not(.active):not(:disabled){background:var(--surface-hover)}#canvas-tools .tool-switch button.active{background:var(--accent-2);color:#101018}#canvas-tools .tool-switch button+button{border-left:1px solid var(--border-strong)}.tool-gizmo line,.tool-gizmo path,.tool-gizmo rect,.tool-gizmo circle{vector-effect:non-scaling-stroke}.gizmo-axis-x{stroke:#e0564f;stroke-width:1.6}.gizmo-axis-x.head{fill:#e0564f;stroke:none}.gizmo-axis-y{stroke:#4fbf67;stroke-width:1.6}.gizmo-axis-y.head{fill:#4fbf67;stroke:none}.gizmo-hit{stroke:transparent;stroke-width:10;cursor:pointer}.gizmo-free{fill:#7aa2f759;stroke:var(--accent-2);stroke-width:1;cursor:move}.gizmo-ring-visual{fill:none;stroke:var(--accent-2);stroke-width:1.6}.gizmo-ring-hit{fill:none;stroke:transparent;stroke-width:12;cursor:grab}.bone-tip-handle{fill:#ffd166;stroke:#6b5b1e;stroke-width:.8;cursor:move;vector-effect:non-scaling-stroke}#canvas:not(.freeze-mode) .bone-tip-handle.joint{cursor:default}.null-glyph.placing{opacity:.6;pointer-events:none}.chain-origin{fill:var(--accent-2);stroke:#101018;stroke-width:1;vector-effect:non-scaling-stroke;pointer-events:none}.layer-kind.skin{color:#4fbf67}.skew-handle{fill:#ff6f6140;stroke:var(--accent);stroke-width:.8;vector-effect:non-scaling-stroke;cursor:col-resize}.skew-handle.handle-e,.skew-handle.handle-w{cursor:row-resize}.skew-handle:hover{fill:var(--accent)}.node-handle.nt-s{fill:#4fbf67d9}.node-handle.nt-z{fill:#ff6f61d9}.node-marquee{position:absolute;border:1px dashed var(--accent-2);background:#7aa2f71a;pointer-events:none;z-index:5}#canvas{position:relative}g.dimmed{opacity:.22;pointer-events:none;transition:opacity .12s ease}g.part-hidden{visibility:hidden}.node-handle.nt-c{fill:#7aa2f7d9;stroke:#fff;stroke-width:.5}#layers,#inspector,#timeline,.critique-out,.layer-children{scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.18) transparent}#layers::-webkit-scrollbar,#inspector::-webkit-scrollbar,#timeline::-webkit-scrollbar,.critique-out::-webkit-scrollbar{width:11px;height:11px}#layers::-webkit-scrollbar-track,#inspector::-webkit-scrollbar-track,#timeline::-webkit-scrollbar-track,.critique-out::-webkit-scrollbar-track{background:transparent}#layers::-webkit-scrollbar-thumb,#inspector::-webkit-scrollbar-thumb,#timeline::-webkit-scrollbar-thumb,.critique-out::-webkit-scrollbar-thumb{background:#ffffff29;border-radius:8px;border:3px solid transparent;background-clip:padding-box}#layers::-webkit-scrollbar-thumb:hover,#inspector::-webkit-scrollbar-thumb:hover,#timeline::-webkit-scrollbar-thumb:hover,.critique-out::-webkit-scrollbar-thumb:hover{background:#ffffff4d;background-clip:padding-box}@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition-duration:.01ms!important;animation-duration:.01ms!important;scroll-behavior:auto!important}}.help-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000008c;display:flex;align-items:center;justify-content:center;z-index:50}.help-card{width:min(760px,calc(100vw - var(--sp-5) * 2));max-height:calc(100vh - var(--sp-5) * 2);display:flex;flex-direction:column;background:var(--panel);border:1px solid var(--border-strong);border-radius:var(--r-lg);box-shadow:var(--shadow-2);overflow:hidden}.help-header{display:flex;align-items:center;justify-content:space-between;padding:var(--sp-3) var(--sp-4);border-bottom:1px solid var(--divider);flex:none}.help-header h2{margin:0;font-size:15px;font-weight:700;color:var(--text)}.help-close{height:var(--ctrl-h-sm);width:var(--ctrl-h-sm);padding:0;font-size:13px;line-height:1}.help-body{overflow-y:auto;padding:var(--sp-3) var(--sp-4) var(--sp-4);display:grid;grid-template-columns:1fr 1fr;gap:0 var(--sp-5)}.help-body section{break-inside:avoid;margin-bottom:var(--sp-2)}.help-body h3{margin:var(--sp-4) 0 var(--sp-1);font-size:12px;font-weight:600;color:var(--accent)}.help-body section:first-child h3{margin-top:var(--sp-2)}.help-table{width:100%;border-collapse:collapse}.help-table tr+tr{border-top:1px solid var(--border)}.help-table td{padding:5px 0;font-size:12px;vertical-align:top}.help-keys{white-space:nowrap;padding-right:var(--sp-3)!important;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:11px;color:var(--accent-2);width:1%}.help-body td:last-child{color:var(--muted)}@media(max-width:620px){.help-body{grid-template-columns:1fr}}.sm-editor{margin-top:var(--sp-2);border-top:1px solid var(--border);padding-top:var(--sp-2)}.sm-header{display:flex;gap:var(--sp-2);align-items:center;flex-wrap:wrap;margin-bottom:var(--sp-2)}.sm-header .sm-name{width:140px;height:var(--ctrl-h-sm);padding:2px var(--sp-2);font-weight:600;color:var(--accent-2)}.sm-header button{padding:0 var(--sp-2);font-size:12px;height:var(--ctrl-h-sm)}.sm-preview-btn.active{background:var(--accent);color:#1a1a1a;border-color:var(--accent)}.sm-status{color:var(--accent-2);font-weight:600;padding:0 var(--sp-2);border:1px solid var(--border-strong);border-radius:var(--r-sm);height:var(--ctrl-h-sm);display:flex;align-items:center;background:var(--accent-2-soft);white-space:nowrap}.sm-empty{display:flex;flex-direction:column;gap:var(--sp-2);align-items:flex-start;padding:var(--sp-3) var(--sp-2)}.sm-body{display:flex;gap:var(--sp-3);align-items:stretch}.sm-graph{flex:1 1 auto;min-width:0}.sm-side{display:flex;flex-direction:column;gap:var(--sp-2);overflow-y:auto;max-height:34vh}.sm-side-left{flex:0 0 260px;min-width:200px;max-width:260px}.sm-side-right{flex:0 0 300px;min-width:240px;max-width:300px}.sm-graph-bar{display:flex;gap:var(--sp-2);align-items:center;margin-bottom:var(--sp-1);flex-wrap:wrap}.sm-graph-bar button{padding:0 var(--sp-2);font-size:12px;height:var(--ctrl-h-sm)}.sm-graph-bar .sm-clip-sel{height:var(--ctrl-h-sm);padding:2px var(--sp-2)}.sm-svg{display:block;width:100%;height:300px;touch-action:none;background:#00000038;border-radius:var(--r-sm);border:1px solid var(--border)}.sm-node{cursor:grab}.sm-state{fill:var(--panel-2);stroke:var(--border-strong);stroke-width:1.5}.sm-state-entry{fill:#4fbf6738;stroke:#4fbf67}.sm-state-any{fill:#7aa2f733;stroke:var(--accent-2)}.sm-state-exit{fill:#e0564f33;stroke:#e0564f}.sm-state.selected{stroke:var(--sel-gold);stroke-width:2.5}.sm-state.sm-live{stroke:var(--accent);stroke-width:3;filter:drop-shadow(0 0 4px var(--accent))}.sm-state-name{fill:var(--text);font:600 12px system-ui,sans-serif}.sm-state-clip{fill:var(--muted);font:11px system-ui,sans-serif}.sm-state-glyph{fill:var(--text);font:14px system-ui,sans-serif}.sm-state-kindlabel{fill:var(--muted);font:10px system-ui,sans-serif}.sm-node-close{fill:var(--muted);font:11px system-ui,sans-serif;cursor:pointer}.sm-node-close:hover{fill:#e0564f}.sm-arrow{fill:none;stroke:var(--muted);stroke-width:1.6}.sm-arrow.selected{stroke:var(--sel-gold);stroke-width:2.4}.sm-arrow-hit{fill:none;stroke:transparent;stroke-width:12;cursor:pointer}.sm-arrowhead{fill:var(--muted)}.sm-arrowhead-sel{fill:var(--sel-gold)}.sm-arrow-label{fill:var(--accent-2);font:10px system-ui,sans-serif}.sm-section{border:1px solid var(--border);border-radius:var(--r-sm);padding:var(--sp-2);background:#0000001f}.sm-section-title{display:block;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin-bottom:var(--sp-1)}.sm-subhead{display:block;color:var(--muted);font-size:11px;margin:var(--sp-1) 0}.sm-row{display:flex;gap:var(--sp-1);align-items:center;margin-bottom:var(--sp-1)}.sm-row select{height:var(--ctrl-h-sm);padding:2px var(--sp-1);flex:1 1 auto;min-width:0}.sm-row .sm-num{width:64px;height:var(--ctrl-h-sm);padding:2px 4px;flex:0 0 auto}.sm-inp-name{width:92px;height:var(--ctrl-h-sm);padding:2px var(--sp-1);flex:0 0 auto}.sm-badge{font-size:10px;text-transform:uppercase;letter-spacing:.04em;color:var(--accent-2);background:var(--accent-2-soft);border-radius:var(--r-sm);padding:1px 5px;flex:0 0 auto}.sm-trigger-note{color:var(--muted);font-size:11px;flex:1 1 auto}.sm-add-row{display:flex;gap:var(--sp-1);flex-wrap:wrap;margin-top:var(--sp-1)}.sm-add-row button,.sm-add-action{padding:0 var(--sp-2);font-size:12px;height:var(--ctrl-h-sm)}.sm-icon-btn{flex:0 0 auto;width:var(--ctrl-h-sm);height:var(--ctrl-h-sm);padding:0;font-size:12px}.sm-icon-btn:hover:not(:disabled){background:#e0564f40;border-color:#e0564f}.sm-prop-head{display:flex;gap:var(--sp-2);align-items:center;justify-content:space-between;margin-bottom:var(--sp-1)}.sm-prop-title{font-weight:600;color:var(--accent-2)}.sm-prop-head button{padding:0 var(--sp-2);font-size:12px;height:var(--ctrl-h-sm)}.sm-labeled{display:flex;gap:var(--sp-2);align-items:center;margin-bottom:var(--sp-1)}.sm-labeled .sm-label{color:var(--muted);width:70px;flex:0 0 auto}.sm-listener{border:1px solid var(--border);border-radius:var(--r-sm);padding:var(--sp-1);margin-bottom:var(--sp-1)}.sm-action{margin-left:var(--sp-2)}.sm-hint{display:block;color:var(--muted);font-size:12px;padding:4px 2px}@media(max-width:720px){.sm-body{flex-direction:column}.sm-side,.sm-side-left,.sm-side-right{flex-basis:auto;max-width:none;max-height:none}}.select-gizmo .sg-ring,.select-gizmo .sg-cross,.select-gizmo .sg-hit{vector-effect:non-scaling-stroke}.select-gizmo .sg-ring{fill:none;stroke:var(--accent-2);stroke-width:1.3;opacity:.65}.select-gizmo .sg-cross{fill:none;stroke:var(--accent-2);stroke-width:1.6;opacity:.65}.select-gizmo .sg-rotate .sg-hit{fill:none;stroke:transparent;stroke-width:12;cursor:grab}.select-gizmo .sg-move .sg-hit{fill:transparent;stroke:none;cursor:move}.select-gizmo .sg-rotate:hover .sg-ring{opacity:1;stroke-width:2}.select-gizmo .sg-move:hover .sg-cross{opacity:1;stroke-width:2.3}.sm-header,.sm-graph-bar{flex-wrap:wrap}.sm-cluster{display:flex;align-items:center;gap:var(--sp-1);padding-right:var(--sp-2);margin-right:var(--sp-1);border-right:1px solid var(--border)}.sm-cluster:last-child{border-right:none;margin-right:0;padding-right:0}.sm-cluster-end{margin-left:auto;border-right:none;padding-right:0;margin-right:0}.sm-port{fill:var(--accent-2);stroke:var(--panel-2);stroke-width:1.5;opacity:0;pointer-events:none;transition:opacity .12s ease}.sm-node:hover .sm-port{opacity:.9}.sm-arrow-preview{stroke:var(--accent-2);stroke-width:2;stroke-dasharray:5 4;pointer-events:none}.sm-state.sm-connect-target{stroke:var(--accent-2);stroke-width:3}.sm-check{display:flex;align-items:center;gap:var(--sp-1);color:var(--text);font-size:12px;cursor:pointer}.sm-check input{flex:0 0 auto}.sm-exit-row{flex-wrap:wrap}.sm-listener.sm-listener-warn{border-color:#e0a54f;box-shadow:inset 0 0 0 1px #e0a54f59}.sm-warn-badge{color:#e0a54f;font-size:13px;flex:0 0 auto}.sm-warn{display:block;color:#e0a54f;font-size:11px;padding:2px 2px 0}.sm-props-section{border-color:var(--border-strong)}.sm-scope-group{display:flex;flex-direction:column;gap:var(--sp-3);border:1px dashed var(--border-strong);border-radius:var(--r-sm);padding:var(--sp-2);background:#7aa2f70d}.sm-scope-group .sm-section{border:none;background:transparent;padding:0}#canvas:not(.freeze-mode) .bone-tip-handle.joint{cursor:move}.pivot-handle.joint{cursor:move}.ui-dialog-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000008c;display:flex;align-items:center;justify-content:center;z-index:80}.ui-dialog{width:min(420px,calc(100vw - var(--sp-5) * 2));max-height:calc(100vh - var(--sp-5) * 2);display:flex;flex-direction:column;background:var(--panel);border:1px solid var(--border-strong);border-radius:var(--r-lg);box-shadow:var(--shadow-2);overflow:hidden}.ui-dialog-header{display:flex;align-items:center;justify-content:space-between;padding:var(--sp-3) var(--sp-4);border-bottom:1px solid var(--divider);flex:none}.ui-dialog-header h2{margin:0;font-size:14px;font-weight:700;color:var(--text)}.ui-dialog-close{height:var(--ctrl-h-sm);width:var(--ctrl-h-sm);padding:0;font-size:13px;line-height:1;flex:none}.ui-dialog-body{overflow-y:auto;padding:var(--sp-4);display:flex;flex-direction:column;gap:var(--sp-3)}.ui-dialog-message{margin:0;color:var(--text);line-height:1.5;white-space:pre-wrap}.ui-dialog-field-label{display:flex;flex-direction:column;gap:var(--sp-1);color:var(--muted);font-size:12px}.ui-dialog-field-label input,.ui-dialog-field-label select{margin-top:2px}.ui-dialog-footer{display:flex;justify-content:flex-end;gap:var(--sp-2);padding:var(--sp-3) var(--sp-4);border-top:1px solid var(--divider);flex:none}.ui-dialog-primary{background:var(--accent-2);color:#101018;border-color:var(--accent-2);font-weight:600}.ui-dialog-primary:hover:not(:disabled){background:var(--accent-2);filter:brightness(1.1)}.ui-dialog-danger{background:var(--accent);color:#1a1a1a;border-color:var(--accent);font-weight:600}.ui-dialog-danger:hover:not(:disabled){background:var(--accent);filter:brightness(1.1)}.ui-context-menu{position:fixed;z-index:90;min-width:180px;display:flex;flex-direction:column;padding:var(--sp-1);background:var(--panel);border:1px solid var(--border-strong);border-radius:var(--r);box-shadow:var(--shadow-2)}.ui-context-menu-item{display:block;width:100%;text-align:left;background:transparent;border:none;border-radius:var(--r-sm);padding:6px var(--sp-2);height:auto;color:var(--text);font:inherit;cursor:pointer}.ui-context-menu-item:hover:not(:disabled){background:var(--surface-hover);border-color:transparent}.ui-context-menu-item:disabled{opacity:.4;cursor:not-allowed}.ui-context-menu-sep{height:1px;margin:var(--sp-1) 4px;background:var(--border)}.layer-rename-input{height:20px;padding:0 4px;font:inherit;min-width:0;flex:1 1 auto}.key-field-label{display:inline-flex;align-items:center;gap:6px}.key-toggle{width:10px;height:10px;min-width:10px;padding:0;border-radius:50%;background:transparent;border:1.5px solid var(--muted);flex:none}.key-toggle:hover:not(:disabled),.key-toggle:active:not(:disabled){background:transparent;box-shadow:0 0 0 3px var(--accent-2-soft)}.key-toggle.is-keyed{background:var(--accent);border-color:var(--accent)}.key-toggle.is-keyed:hover:not(:disabled),.key-toggle.is-keyed:active:not(:disabled){background:var(--accent);box-shadow:0 0 0 3px var(--accent-2-soft);filter:brightness(1.15)}#layout.ai-busy{position:relative;pointer-events:none}#layout.ai-busy:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:#0a0a0e73;z-index:40}#layout.ai-busy .ai-panel{position:relative;z-index:41;pointer-events:auto}.ai-busy-indicator{display:inline-flex;align-items:center;gap:6px}.ai-busy-indicator[hidden]{display:none}.ai-busy-dot{width:7px;height:7px;border-radius:50%;background:var(--accent-2);animation:ai-busy-pulse 1s ease-in-out infinite}@keyframes ai-busy-pulse{0%,to{opacity:.25}50%{opacity:1}}.ai-info{color:var(--muted);cursor:help;font-size:11px}.ai-preview-bar{display:flex;flex-direction:column;gap:var(--sp-2);padding:var(--sp-3);margin:var(--sp-2) 0;background:var(--surface-hover);border:1px solid var(--accent-2);border-radius:var(--r)}.ai-preview-summary{margin:0;font-size:12px;font-weight:600;color:var(--text)}.ai-preview-note{margin:0}.ai-preview-actions{display:flex;gap:var(--sp-2)}.ai-preview-apply{background:var(--accent-2);color:#101018;border-color:var(--accent-2);font-weight:600}.ai-preview-apply:hover:not(:disabled){background:var(--accent-2);filter:brightness(1.1)}.ai-panel [hidden]{display:none!important}.ai-thread-strip{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-2);padding:2px var(--sp-1);margin:0 0 var(--sp-2)}.ai-thread-info{color:var(--muted);font-size:11px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ai-thread-clear{flex:none;width:20px;height:20px;padding:0;line-height:1;font-size:11px;color:var(--muted);background:transparent;border-color:transparent}.ai-thread-clear:hover{color:var(--text);border-color:var(--border)}.ai-template-row{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-1);margin:0 0 var(--sp-2)}.ai-template-cap{color:var(--muted);font-size:11px;cursor:help;margin-right:2px}.ai-panel .ai-template-btn{margin:0;padding:1px 8px;height:auto;min-height:20px;font-size:11px;line-height:1.5;color:var(--muted);background:transparent;border:1px solid var(--border);border-radius:999px}.ai-panel .ai-template-btn:hover:not(:disabled){color:var(--text);border-color:var(--accent-2)}.ai-panel .ai-polish-btn{border-color:var(--accent-2);color:var(--accent-2)}.ai-panel .ai-polish-btn:hover:not(:disabled){background:var(--accent-2-soft);color:var(--text)}#timeline{-webkit-user-select:none;user-select:none}#timeline input,#timeline textarea{-webkit-user-select:text;user-select:text}#timeline-splitter{flex:0 0 auto;height:6px;position:relative;cursor:row-resize;background:var(--divider);touch-action:none}#timeline-splitter:hover,#timeline-splitter.dragging{background:var(--accent-2)}#timeline-splitter:before{content:"";position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:34px;height:2px;border-radius:2px;background:#ffffff59}.tl-chip{display:inline-flex;align-items:center;flex:none;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.09em;color:var(--muted);padding-bottom:4px}.tl-body{flex:1 1 auto;min-height:0;overflow-y:auto;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.18) transparent}.tl-body::-webkit-scrollbar{width:11px;height:11px}.tl-body::-webkit-scrollbar-track{background:transparent}.tl-body::-webkit-scrollbar-thumb{background:#ffffff29;border-radius:8px;border:3px solid transparent;background-clip:padding-box}.tl-body::-webkit-scrollbar-thumb:hover{background:#ffffff4d;background-clip:padding-box}.tl-cluster{display:flex;align-items:center;gap:var(--sp-1);padding-right:var(--sp-2);margin-right:var(--sp-1);border-right:1px solid var(--border)}.tl-cluster:last-child{border-right:none;margin-right:0;padding-right:0}.tl-mode-picker{display:flex;border:1px solid var(--border-strong);border-radius:var(--r);overflow:hidden;background:#0003}.tl-mode-picker button{border:none;border-radius:0;padding:0 var(--sp-2);font-size:12px;height:var(--ctrl-h-sm)}.tl-mode-picker button+button{border-left:1px solid var(--border-strong)}.tl-mode-picker button:hover:not(.active):not(:disabled){background:var(--surface-hover)}.tl-mode-picker button.active{background:var(--accent-2);color:#101018;font-weight:600}.tl-divider{height:1px;background:var(--border);margin:var(--sp-2) 0}#timeline .tl-lane{height:30px;border-radius:var(--r-sm)}#timeline .tl-lane.tl-lane-alt{background:#ffffff06}#timeline .tl-lane.tl-lane-alt .tl-strip{background:#ffffff0d}#timeline .tl-lane-label{background:#00000029;border-right:1px solid var(--border);padding:0 10px;margin-right:0;align-self:stretch;display:flex;align-items:center;justify-content:flex-end}.tl-lane-gap{flex:none;width:20px}#timeline .tl-ruler{margin-left:180px}.tl-lanes-pad{margin-left:180px;height:14px}.tl-lane-block{padding-top:var(--sp-1);padding-bottom:var(--sp-1)}.sm-panel-host{margin-top:var(--sp-1)}#timeline .tl-body{overflow-x:hidden}#timeline .tl-lanes{box-sizing:border-box;padding-right:14px}
