@font-face{font-family:Pretendard;src:url(https://cdn.jsdelivr.net/gh/projectnoonnu/pretendard@1.0/Pretendard-Thin.woff2)format("woff2");font-weight:100;font-display:swap}@font-face{font-family:Pretendard;src:url(https://cdn.jsdelivr.net/gh/projectnoonnu/pretendard@1.0/Pretendard-ExtraLight.woff2)format("woff2");font-weight:200;font-display:swap}@font-face{font-family:Pretendard;src:url(https://cdn.jsdelivr.net/gh/projectnoonnu/pretendard@1.0/Pretendard-Light.woff2)format("woff2");font-weight:300;font-display:swap}@font-face{font-family:Pretendard;src:url(https://cdn.jsdelivr.net/gh/projectnoonnu/pretendard@1.0/Pretendard-Regular.woff2)format("woff2");font-weight:400;font-display:swap}@font-face{font-family:Pretendard;src:url(https://cdn.jsdelivr.net/gh/projectnoonnu/pretendard@1.0/Pretendard-Medium.woff2)format("woff2");font-weight:500;font-display:swap}@font-face{font-family:Pretendard;src:url(https://cdn.jsdelivr.net/gh/projectnoonnu/pretendard@1.0/Pretendard-SemiBold.woff2)format("woff2");font-weight:600;font-display:swap}@font-face{font-family:Pretendard;src:url(https://cdn.jsdelivr.net/gh/projectnoonnu/pretendard@1.0/Pretendard-Bold.woff2)format("woff2");font-weight:700;font-display:swap}@font-face{font-family:Pretendard;src:url(https://cdn.jsdelivr.net/gh/projectnoonnu/pretendard@1.0/Pretendard-ExtraBold.woff2)format("woff2");font-weight:800;font-display:swap}@font-face{font-family:Pretendard;src:url(https://cdn.jsdelivr.net/gh/projectnoonnu/pretendard@1.0/Pretendard-Black.woff2)format("woff2");font-weight:900;font-display:swap}:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg-app:oklch(13% .004 260);--bg-panel:oklch(17% .005 260);--bg-elevated:oklch(21% .006 260);--border:oklch(26% .006 260);--border-strong:oklch(34% .008 260);--text:oklch(94% .004 260);--text-muted:oklch(70% .008 260);--text-faint:oklch(52% .008 260);--accent:oklch(74% .14 250);--accent-hover:oklch(80% .14 250);--accent-text:oklch(13% .01 260);--success:oklch(75% .13 150);--warning:oklch(80% .12 85);--danger:oklch(68% .16 25);--canvas-checker-a:oklch(16% .004 260);--canvas-checker-b:oklch(19% .005 260);--radius:12px;--radius-sm:8px;--radius-pill:999px;--shadow-soft:0 4px 16px oklch(0% 0 0/.35);--shadow-raised:0 8px 24px oklch(0% 0 0/.45);--font-body:"Pretendard", system-ui, sans-serif;--font-display:"Pretendard", system-ui, sans-serif;--transition:.22s cubic-bezier(.33, 1, .68, 1);--duration-fast:.16s;--duration-base:.24s;--duration-slow:.34s;--ease-out:cubic-bezier(.33, 1, .68, 1);--ease-pop:cubic-bezier(.34, 1.2, .64, 1);--timeline-label-col:150px}*{box-sizing:border-box}body{background:var(--bg-app);color:var(--text);font:13px/1.45 var(--font-body);margin:0}button{font:inherit;color:inherit}input:not([type=checkbox]):not([type=radio]):not([type=range]),select,textarea{font:inherit;font-variant-numeric:tabular-nums;color:var(--text);background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-sm)}input[type=checkbox],input[type=radio],input[type=range]{accent-color:var(--accent)}:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.panel-card{border-radius:var(--radius);border:1px solid var(--border);background:var(--bg-panel);padding:12px}.panel-card-accent{border-color:var(--accent);background:color-mix(in oklch, var(--bg-panel) 84%, var(--accent) 16%)}.panel-card-warning{border-color:var(--warning);background:color-mix(in oklch, var(--bg-panel) 88%, var(--warning) 12%)}.ellipsis-cell{white-space:nowrap;text-overflow:ellipsis;min-width:0;overflow:hidden}.count-badge{white-space:nowrap;color:var(--text-faint);font-variant-numeric:tabular-nums;flex-shrink:0;font-size:10px}.group-chip{background:var(--bone-stroke,var(--border-strong));flex:0 0 3px;width:3px;height:13px}.pixel-title{font-family:var(--font-display);letter-spacing:.08em;text-transform:uppercase;color:var(--text-faint);font-size:10px;font-weight:600}.tabular{font-variant-numeric:tabular-nums}.app-shell{background:var(--bg-app);grid-template-rows:40px 1fr 24px;min-width:1280px;height:100vh;min-height:800px;display:grid}.topbar{box-sizing:border-box;border-bottom:1px solid var(--border);background:var(--bg-panel);grid-template-columns:120px 1fr auto 100px auto;align-items:center;gap:12px;height:40px;padding:0 10px;display:grid}.topbar-actions{align-items:center;gap:8px;display:inline-flex}.brand{font-family:var(--font-display);letter-spacing:.01em;color:var(--accent);align-items:center;gap:6px;font-size:15px;font-weight:700;line-height:1;display:inline-flex}.brand-acorn{image-rendering:pixelated;flex:none}.project-title{color:var(--text-muted)}.mode-tabs{border:1px solid var(--border);border-radius:var(--radius-pill);background:var(--bg-app);justify-content:center;align-items:center;gap:2px;padding:3px;display:flex}.mode-tabs button{border-radius:var(--radius-pill);cursor:pointer;min-width:84px;height:26px;transition:background var(--duration-fast), color var(--duration-fast);background:0 0;border:none;place-items:center;display:grid}.mode-tabs button span{letter-spacing:.06em;text-transform:uppercase;font-size:11px;font-weight:600;line-height:1}.mode-tabs button:not(.selected):hover{background:color-mix(in oklch, var(--bg-elevated) 90%, var(--accent) 10%)}.mode-tabs button.selected{background:var(--bg-elevated);color:var(--text)}.mode-tabs button.selected:hover{background:var(--bg-elevated)}.save-state{color:var(--text-faint);text-align:right;justify-content:flex-end;align-items:center;gap:6px;font-size:11px;display:inline-flex}.save-state .save-retry{font:inherit;color:var(--accent);cursor:pointer;background:0 0;border:none;padding:0;text-decoration:underline}.save-state .save-retry:hover{color:var(--accent-hover)}.save-state .save-now{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-elevated);height:22px;color:var(--text-muted);margin-left:0;padding:0 8px;text-decoration:none}.save-state .save-now:hover{color:var(--accent-hover);background:color-mix(in oklch, var(--bg-elevated) 84%, var(--accent) 16%)}.export-button,.wide-button,.transport-button,.tool-list button,.category-list button,.clip-list button,.segmented-row button{border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--bg-elevated);cursor:pointer;height:26px;transition:background var(--duration-fast), border-color var(--duration-fast), color var(--duration-fast);justify-content:center;align-items:center;gap:6px;display:inline-flex}.wide-button{font-size:12px}.wide-button svg{flex:none}.export-button:hover,.wide-button:hover,.transport-button:hover,.tool-list button:hover,.category-list button:hover,.clip-list button:hover,.segmented-row button:hover{background:color-mix(in oklch, var(--bg-elevated) 90%, var(--accent) 10%)}.export-button:disabled,.wide-button:disabled,.transport-button:disabled,.tool-list button:disabled,.category-list button:disabled,.clip-list button:disabled,.segmented-row button:disabled{opacity:.55;cursor:not-allowed}.workspace{min-height:0;display:grid;position:relative}.panel{background:var(--bg-panel);border-right:1px solid var(--border);padding:10px;overflow:hidden auto}.panel-cards{align-content:start;gap:10px;display:grid}.panel>*{min-width:0;max-width:100%}.panel label:not(.toggle-row):not(.color-picker-row):not(.mask-color-row):not(.bone-field):not(.layer-mapping-row):not(.duration-field):not(.selected-easing-field){color:var(--text-muted);gap:3px;margin-bottom:8px;font-size:11px;display:grid}.panel label:not(.color-picker-row) select,.panel label:not(.color-picker-row)>input:not([type=checkbox]):not([type=radio]):not([type=color]){width:100%;height:26px;color:var(--text);padding:0 6px}.panel small{color:var(--text-faint);font-size:11px;line-height:1.45}.panel p{color:var(--text-muted);margin:0 0 8px;font-size:12px}.right-panel{border-right:0;border-left:1px solid var(--border)}.tool-rail{background:var(--bg-panel);border-right:1px solid var(--border);flex-direction:column;align-items:center;gap:6px;width:44px;padding:10px 0;display:flex;overflow:hidden auto}.tool-rail button{border-radius:var(--radius-sm);width:30px;height:30px;color:var(--text-muted);cursor:pointer;transition:background var(--duration-fast), color var(--duration-fast);background:0 0;border:none;flex:0 0 30px;place-items:center;padding:0;display:grid}.tool-rail button:hover:not(:disabled){color:var(--accent-hover);background:color-mix(in oklch, var(--bg-elevated) 90%, var(--accent) 10%)}.tool-rail button:disabled{color:var(--text-faint);opacity:.5;cursor:not-allowed}.tool-rail button[aria-pressed=true]{background:color-mix(in oklch, var(--bg-elevated) 78%, var(--accent) 22%);color:var(--accent-hover)}.tool-rail button.tool-rail-active{background:var(--accent);color:var(--accent-text)}.tool-rail-divider{background:var(--border);flex:0 0 1px;width:20px;height:1px;margin:4px 0}.tool-rail-gap{flex:auto;min-height:4px}.panel-resizer{cursor:col-resize;z-index:5;touch-action:none;width:7px;height:100%;position:absolute;top:0}.panel-resizer:hover,.panel-resizer:active{background:color-mix(in oklch, var(--accent) 55%, transparent)}.panel-collapse-toggle{z-index:6;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--bg-elevated);width:16px;height:48px;color:var(--text-muted);cursor:pointer;place-items:center;padding:0;display:grid;position:absolute;top:50%;transform:translateY(-50%)}.panel-collapse-toggle:hover{color:var(--accent-hover);background:color-mix(in oklch, var(--bg-elevated) 84%, var(--accent) 16%)}.panel-collapse-toggle-left{transform:translate(-50%,-50%)}.panel-collapse-toggle-right{transform:translate(50%,-50%)}.tool-strip{background:var(--bg-panel);border-right:1px solid var(--border);flex-direction:column;align-items:center;gap:6px;padding:8px 7px;display:flex;overflow:hidden auto}.tool-strip button,.tool-strip-toggle{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-elevated);width:32px;height:32px;color:var(--text-muted);cursor:pointer;flex:0 0 32px;place-items:center;padding:0;display:grid;position:relative}.tool-strip button:hover,.tool-strip-toggle:hover{color:var(--accent-hover);background:color-mix(in oklch, var(--bg-elevated) 90%, var(--accent) 10%)}.tool-strip-toggle input{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;margin:-1px;position:absolute;overflow:hidden}.tool-strip-toggle svg+svg{position:absolute;bottom:3px;right:3px}.tool-strip-toggle:has(input:checked){border-color:var(--accent);background:color-mix(in oklch, var(--bg-elevated) 74%, var(--accent) 26%);color:var(--accent-hover)}.tool-strip-toggle:has(input:focus-visible){outline:2px solid var(--accent);outline-offset:1px}.tool-strip-divider{background:var(--border);width:24px;height:1px;margin:2px 0}.tool-strip-slider{color:var(--text-muted);flex-direction:column;flex:none;align-items:center;gap:4px;padding:6px 0 2px;display:flex}.tool-strip-slider input[type=range]{writing-mode:vertical-lr;width:16px;height:68px;accent-color:var(--accent);cursor:pointer;direction:rtl}.tool-strip-slider-value{font-variant-numeric:tabular-nums;font-size:10px}.visually-hidden{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;margin:-1px;position:absolute;overflow:hidden}h2{font-family:var(--font-display);letter-spacing:.04em;color:var(--text);margin:0 0 6px;font-size:12px;font-weight:600;line-height:1.4}.panel h2:not(:first-child){border-top:1px solid var(--border);margin-top:14px;padding-top:10px}h3{font-family:var(--font-display);letter-spacing:.08em;text-transform:uppercase;color:var(--text-faint);margin:0 0 6px;font-size:10px;font-weight:600}h2+small{color:var(--text-muted);margin:-4px 0 8px;font-size:12px;line-height:1.5;display:block}.tool-list{gap:6px;margin-bottom:16px;display:grid}.tool-list button{justify-content:flex-start;padding:0 8px;font-size:12px;font-weight:600;line-height:1}.tool-list button svg{color:var(--text-muted)}.palette-grid{grid-template-columns:repeat(auto-fill,minmax(20px,1fr));gap:3px;margin-bottom:10px;display:grid}.palette-grid button{aspect-ratio:1;border:1px solid var(--border-strong);width:100%;height:auto;image-rendering:pixelated;cursor:pointer;border-radius:4px}.palette-edit-row{flex-wrap:wrap;align-items:center;gap:4px;margin-bottom:10px;display:flex}.palette-edit-row button{border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--bg-elevated);height:24px;color:var(--text);cursor:pointer;padding:0 6px;font-size:11px}.palette-edit-row button:hover{background:color-mix(in oklch, var(--bg-elevated) 90%, var(--accent) 10%)}.palette-edit-row select{height:24px;font-size:11px}.variant-list,.cycle-list{gap:4px;margin-bottom:8px;display:grid}.variant-row{grid-template-columns:minmax(0,1fr) auto;gap:4px;display:grid}.variant-row button,.cycle-row button{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-elevated);height:24px;color:var(--text);cursor:pointer;padding:0 8px;font-size:11px}.variant-row button:hover,.cycle-row button:hover{background:color-mix(in oklch, var(--bg-elevated) 90%, var(--accent) 10%)}.variant-row button:first-child{text-align:left;text-overflow:ellipsis;white-space:nowrap;justify-self:stretch;overflow:hidden}.selected-variant{color:var(--accent-hover);border-color:var(--accent)!important;background:color-mix(in oklch, var(--bg-elevated) 74%, var(--accent) 26%)!important}.cycle-row{grid-template-columns:minmax(0,1fr) repeat(3,minmax(0,34px)) auto;align-items:center;gap:3px;font-size:11px;display:grid}.cycle-row>span{text-overflow:ellipsis;white-space:nowrap;color:var(--text-muted);overflow:hidden}.cycle-row input{width:100%;min-width:0;height:24px;padding:0 4px;font-size:11px}.variant-color-grid{flex-wrap:wrap;gap:3px;margin-bottom:8px;display:flex}.variant-swatch{border:1px solid var(--border-strong);width:16px;height:16px;image-rendering:pixelated;border-radius:4px}.palette-color-name{flex:140px;min-width:140px;height:28px;padding:0 8px}.palette-import-row{flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:8px;display:flex}.palette-import-row textarea{width:100%;min-height:44px;font-family:ui-monospace,monospace;font-size:11px}.palette-import-row input[type=file]{max-width:100%;font-size:11px}.palette-import-error{color:var(--accent-hover);margin:0 0 12px;font-size:11px}.color-picker-row{align-items:center;gap:8px;margin-bottom:12px;display:flex}.color-picker-row input[type=color]{border:1px solid var(--border-strong);border-radius:var(--radius-sm);cursor:pointer;background:0 0;width:44px;height:28px;padding:0}.color-hex{color:var(--text-muted);letter-spacing:.04em;font-family:ui-monospace,monospace;font-size:12px}.viewport{background:var(--bg-app);min-width:0;position:relative;overflow:auto}.canvas-stage{place-items:center;height:100%;display:grid;position:relative}.checker{width:512px;height:512px;image-rendering:pixelated;background-color:var(--canvas-checker-a);background-image:linear-gradient(45deg, var(--canvas-checker-b) 25%, transparent 25%), linear-gradient(-45deg, var(--canvas-checker-b) 25%, transparent 25%), linear-gradient(45deg, transparent 75%, var(--canvas-checker-b) 75%), linear-gradient(-45deg, transparent 75%, var(--canvas-checker-b) 75%);border:1px solid var(--border-strong);background-position:0 0,0 16px,16px -16px,-16px 0;background-size:32px 32px}.mini-preview{border:1px solid var(--border-strong);background:var(--bg-panel);border-radius:var(--radius);width:112px;height:112px;box-shadow:var(--shadow-raised);image-rendering:pixelated;position:absolute;top:12px;right:12px}.layer-list,.category-list,.clip-list{gap:4px;margin-bottom:10px;display:grid}.layer-row{border:1px solid var(--border);background:var(--bg-elevated);border-radius:6px;grid-template-columns:repeat(7,minmax(0,1fr));align-items:center;gap:3px;padding:5px 6px;display:grid}.layer-row>svg:first-child{color:var(--text-faint);grid-area:1/1}.layer-row>.layer-name-button{text-overflow:ellipsis;white-space:nowrap;grid-area:1/2/auto/-1;font-size:12px;font-weight:600;overflow:hidden}.layer-row button{width:24px;height:24px;color:var(--text-muted);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:4px;place-items:center;display:grid}.layer-row>button:not(.layer-name-button){grid-row:2;width:100%;height:22px}.layer-row>button:not(.layer-name-button):hover{color:var(--accent-hover);background:color-mix(in oklch, var(--bg-panel) 60%, var(--accent) 40%)}.layer-row>button.layer-register-chip{border:1px dashed var(--border-strong);width:100%;height:20px;color:var(--text-muted);grid-area:3/1/auto/-1;font-size:10px}.layer-row>button.layer-register-chip:hover{border-style:solid}.layer-row>button.layer-register-chip.layer-register-chip-unknown{color:#ffb85c;border-color:#ffb85c}.active-layer{border-color:var(--accent)}.layer-hidden{opacity:.5}.layer-name-button{color:var(--text);justify-content:start!important;width:100%!important}.wide-button{width:100%}.outfit-set-field{color:var(--text-muted);gap:4px;margin-bottom:6px;font-size:11px;display:grid}.outfit-set-field select,.outfit-set-field input{height:26px;padding:0 8px}.outfit-set-list{gap:4px;margin-top:8px;display:grid}.outfit-set-row{grid-template-columns:1fr auto auto;align-items:center;gap:4px;display:grid}.outfit-set-apply{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-elevated);width:100%;height:32px;color:var(--text);cursor:pointer;align-items:center;gap:8px;padding:0 8px;font-size:11px;display:flex}.outfit-set-thumb{object-fit:contain;width:24px;height:24px;image-rendering:pixelated;flex:none}.outfit-set-name{text-align:left;flex:auto}.outfit-set-apply:hover{background:color-mix(in oklch, var(--bg-elevated) 90%, var(--accent) 10%)}.outfit-set-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.outfit-set-kind{color:var(--text-faint);flex:none;font-size:10px}.new-layer-group{color:var(--text-muted);gap:4px;margin:8px 0 6px;font-size:11px;display:grid}.new-layer-group select{height:26px;padding:0 8px}.quick-combination-panel{border-top:1px solid var(--border);margin-top:16px;padding-top:12px}.quick-combination-list{gap:8px;display:grid}.quick-combination-list label{color:var(--text-muted);gap:4px;display:grid}.quick-combination-list select{height:28px;padding:0 8px}.statusbar{box-sizing:border-box;border-top:1px solid var(--border);background:var(--bg-panel);min-height:24px;color:var(--text-muted);font-variant-numeric:tabular-nums;align-items:center;padding:0 10px;font-size:11px;line-height:1;display:flex}.hidden-input{display:none}.start-screen{background:var(--bg-app);place-items:center;min-width:1280px;height:100vh;min-height:800px;display:grid}.start-panel{gap:12px;width:420px;display:grid}.start-panel .brand{justify-content:center;margin-bottom:4px}.start-panel .brand-acorn{width:24px;height:24px}.start-panel h1{letter-spacing:0;margin:0;font-size:22px;font-weight:700;line-height:1}.start-token-section{gap:8px;display:grid}.start-token-section h1{font-size:14px;font-family:var(--font-display)}.start-token-choices{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.autosave-list{gap:8px;display:grid}.autosave-card{border:1px solid var(--border);background:var(--bg-elevated);min-height:56px;color:var(--text);border-radius:6px;align-items:stretch;display:flex;overflow:hidden}.autosave-card small{color:var(--text-muted)}.autosave-open{color:inherit;cursor:pointer;background:0 0;border:none;flex:1;align-content:center;justify-items:start;padding:8px 12px;display:grid}.autosave-open:hover{background:var(--bg-panel)}.autosave-delete{border:none;border-left:1px solid var(--border);color:var(--text-muted);cursor:pointer;background:0 0;padding:0 12px}.autosave-delete:hover{color:var(--accent-hover);background:var(--bg-panel)}.selected-tool{color:var(--accent-hover);border-color:var(--accent)!important;background:color-mix(in oklch, var(--bg-elevated) 74%, var(--accent) 26%)!important}.selected-tool svg{color:var(--accent-hover)}.selected-swatch{outline:2px solid var(--accent);outline-offset:2px;border-color:var(--accent)!important}.parts-board-wrap{flex-direction:column;height:100%;min-height:0;display:flex}.board-topbar{background:var(--bg-panel);border-bottom:1px solid var(--border);flex:none;align-items:center;gap:8px;min-width:0;padding:8px 14px;display:flex;overflow:hidden}.board-search{flex:auto;min-width:0;height:28px;padding:0 8px;font-size:12px}.board-chip{border:1px solid var(--border);border-radius:var(--radius-pill);background:var(--bg-elevated);height:28px;color:var(--text-muted);white-space:nowrap;cursor:pointer;transition:background var(--duration-fast), border-color var(--duration-fast), color var(--duration-fast);flex:none;padding:0 10px;font-size:11px;line-height:1}.board-chip:hover{color:var(--accent-hover);background:color-mix(in oklch, var(--bg-elevated) 90%, var(--accent) 10%)}.board-chip[aria-pressed=true]{border-color:var(--accent);background:color-mix(in oklch, var(--bg-elevated) 84%, var(--accent) 16%);color:var(--accent-hover)}.parts-board{flex:1;align-content:start;gap:12px;min-height:0;padding:14px;display:grid;overflow:hidden auto}.category-card-header{align-items:center;gap:8px;min-width:0;margin-bottom:8px;display:flex}.category-card>.category-card-header{border-bottom:1px solid var(--border);margin-bottom:12px;padding-bottom:10px}.category-card-header h2,.category-card-header h3{flex:auto;min-width:0;margin:0}.card-fold{border-radius:var(--radius-sm);width:18px;height:18px;color:var(--text-faint);cursor:pointer;background:0 0;border:none;flex:0 0 18px;place-items:center;padding:0;font-size:10px;line-height:1;display:grid}.card-fold:hover{color:var(--accent-hover)}.subcategory-section{border-left:1px solid var(--border);margin-top:12px;padding-left:12px}.slot-rows{gap:12px;display:grid}.slot-row{grid-template-columns:74px minmax(0,1fr);align-items:start;gap:12px;display:grid}.slot-row-label{gap:2px;min-width:0;padding-top:4px;display:grid}.slot-row-name{font-size:11px;font-weight:600}.slot-row-state{color:var(--text-faint);white-space:nowrap;font-size:10px}.slot-row-state-on{color:var(--success)}.part-card-grid{grid-template-columns:repeat(auto-fill,minmax(92px,1fr));gap:8px;min-width:0;display:grid}.part-card-grid-sm{grid-template-columns:repeat(auto-fill,minmax(64px,1fr))}.subcategory-title{color:var(--text-muted);margin:0 0 8px;font-size:12px}.category-tree{gap:1px;margin-top:8px;font-size:11px;display:grid}.category-tree-row{align-items:center;gap:4px;display:flex}.tree-fold{width:20px;height:24px;color:var(--text-muted);cursor:pointer;background:0 0;border:none;padding:0}.tree-fold-spacer{display:inline-block}.tree-select{text-align:left;border-radius:var(--radius-sm);background:0 0;border:1px solid #0000;flex:1;justify-content:space-between;align-items:center;gap:6px;min-height:24px;padding:2px 6px;display:flex}.tree-select:hover{border-color:var(--border);background:var(--bg-elevated)}.tree-selected{color:var(--accent-hover);background:var(--bg-elevated);border-color:var(--accent)!important}.tree-count{color:var(--text-faint);white-space:nowrap;font-variant-numeric:tabular-nums;flex-shrink:0;font-size:10px}.attachment-card{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-elevated);min-width:0;color:inherit;cursor:pointer;transition:background var(--duration-fast), border-color var(--duration-fast), color var(--duration-fast);justify-items:center;gap:7px;padding:9px 6px 7px;font-size:11px;line-height:1.2;display:grid;position:relative}.attachment-card:hover{background:color-mix(in oklch, var(--bg-elevated) 90%, var(--accent) 10%)}.selected-attachment{border-color:var(--accent);background:color-mix(in oklch, var(--bg-elevated) 84%, var(--accent) 16%);color:var(--accent-hover);font-weight:600}.attachment-check{background:var(--accent);width:14px;height:14px;color:var(--accent-text);border-radius:50%;place-items:center;font-size:9px;line-height:1;display:grid;position:absolute;top:3px;right:3px}.attachment-card-wrap{min-width:0;display:grid;position:relative}.attachment-delete{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-panel);width:16px;height:16px;color:var(--text-faint);cursor:pointer;opacity:0;transition:opacity var(--duration-fast), color var(--duration-fast), border-color var(--duration-fast);place-items:center;padding:0;display:grid;position:absolute;top:3px;left:3px}.attachment-card-wrap:hover .attachment-delete,.attachment-delete:focus-visible{opacity:1}.attachment-delete:hover{color:var(--danger);border-color:var(--danger)}.attachment-thumb{width:60px;height:60px;image-rendering:pixelated;background-size:16px 16px}.part-card-grid-sm .attachment-thumb{width:40px;height:40px}.attachment-card-add{color:var(--text-faint);background:0 0;border-style:dashed}.attachment-card-add:hover{border-color:var(--accent);color:var(--accent-hover)}.attachment-add-glyph{place-items:center;width:60px;height:60px;font-size:20px;display:grid}.part-card-grid-sm .attachment-add-glyph{width:40px;height:40px;font-size:16px}.warning-title{font-family:var(--font-display);letter-spacing:.08em;text-transform:uppercase;color:var(--warning);margin:0 0 6px;font-size:10px}.warning-button{border:1px solid var(--warning);border-radius:var(--radius-sm);width:100%;height:26px;color:var(--warning);cursor:pointer;transition:background var(--duration-fast);background:0 0;margin-top:8px;font-size:11px}.warning-button:hover{background:color-mix(in oklch, var(--bg-panel) 82%, var(--warning) 18%)}.preview-actions{align-items:center;gap:6px;margin-top:8px;display:flex}.preview-actions .wide-button{flex:auto;width:auto}.attachment-label{text-align:center;white-space:nowrap;text-overflow:ellipsis;width:100%;min-width:0;overflow:hidden}.preview-box{border:1px solid var(--border-strong);border-radius:var(--radius);background:var(--bg-elevated);width:100%;height:52px;color:var(--text);font-variant-numeric:tabular-nums;box-shadow:var(--shadow-soft);place-items:center;margin-bottom:10px;font-size:16px;font-weight:700;display:grid}.clip-row{grid-template-columns:minmax(0,1fr) 24px 24px;gap:3px;display:grid}.clip-row>button:first-child{text-overflow:ellipsis;white-space:nowrap;justify-content:flex-start;padding:0 8px;font-size:12px;overflow:hidden}.clip-row>button:not(:first-child){width:24px;color:var(--text-muted);box-shadow:none;background:0 0;border-color:#0000;padding:0}.clip-row>button:not(:first-child):hover{color:var(--accent-hover);background:color-mix(in oklch, var(--bg-elevated) 90%, var(--accent) 10%)}.mask-swatch-grid{grid-template-columns:repeat(auto-fill,minmax(18px,1fr));gap:4px;margin:8px 0 12px;display:grid}.mask-swatch-cell{aspect-ratio:1;border:1px solid var(--border-strong);width:100%;height:auto;image-rendering:pixelated;cursor:pointer;transition:box-shadow var(--duration-fast);border-radius:4px}.mask-swatch-cell:hover{box-shadow:0 0 0 2px var(--accent-hover)}.mask-swatch-on{border-color:var(--accent);box-shadow:inset 0 0 0 2px var(--accent)}.mask-swatch-cell:has(input:focus-visible){outline:2px solid var(--accent);outline-offset:1px}.bone-list{gap:1px;margin-top:6px;display:grid}.bone-row{border-radius:var(--radius-sm);background:0 0;border:1px solid #0000;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:6px;min-height:24px;padding:0 6px;display:grid}.bone-row:hover{border-color:var(--border);background:var(--bg-elevated)}.bone-row small{color:var(--text-faint);font-size:10px}.bone-name-button{min-width:0;color:var(--text);text-align:left;text-overflow:ellipsis;white-space:nowrap;cursor:pointer;background:0 0;border:0;padding:0;font-size:11px;overflow:hidden}.selected-bone-row{border-color:var(--accent);background:var(--bg-elevated)}.selected-bone-row .bone-name-button{color:var(--accent-hover);font-weight:600}.panel-actions{grid-template-columns:1fr 1fr;gap:4px;margin-bottom:10px;display:grid}.panel-actions .wide-button{text-align:center;white-space:normal;word-break:keep-all;width:auto;height:auto;min-height:26px;padding:4px 6px;font-size:11px;line-height:1.25}.rig-stage{flex-direction:column;height:100%;min-height:0;display:flex}.rig-stage>.canvas-stage{flex:1;height:auto;min-height:0}.viewport-topbar{background:var(--bg-panel);border-bottom:1px solid var(--border);flex:none;align-items:center;gap:8px;min-width:0;padding:7px 12px;display:flex;overflow:hidden}.segmented-inline{border:1px solid var(--border);border-radius:var(--radius-pill);background:var(--bg-app);flex:none;gap:2px;padding:2px;display:flex}.segmented-inline button{border-radius:var(--radius-pill);height:22px;color:var(--text-muted);cursor:pointer;white-space:nowrap;transition:background var(--duration-fast), color var(--duration-fast);background:0 0;border:none;padding:0 10px;font-size:11px;line-height:1}.segmented-inline button:hover:not([aria-pressed=true]){color:var(--accent-hover);background:color-mix(in oklch, var(--bg-elevated) 90%, var(--accent) 10%)}.segmented-inline button[aria-pressed=true]{background:var(--bg-elevated);color:var(--text)}.topbar-divider{background:var(--border);flex:0 0 1px;width:1px;height:18px}.topbar-gap{flex:auto;min-width:0}.icon-toggle{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-elevated);width:26px;height:26px;color:var(--text-muted);cursor:pointer;transition:background var(--duration-fast), border-color var(--duration-fast), color var(--duration-fast);flex:0 0 26px;place-items:center;padding:0;display:grid}.icon-toggle:hover{color:var(--accent-hover);background:color-mix(in oklch, var(--bg-elevated) 90%, var(--accent) 10%)}.icon-toggle[aria-pressed=true]{border-color:var(--accent);background:color-mix(in oklch, var(--bg-elevated) 78%, var(--accent) 22%);color:var(--accent-hover)}.topbar-status{white-space:nowrap;text-overflow:ellipsis;min-width:0;color:var(--text-faint);font-variant-numeric:tabular-nums;flex:0 auto;font-size:11px;overflow:hidden}.viewport-topbar small{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--text-faint);flex:0 auto;font-size:11px;overflow:hidden}.bone-overlay{position:absolute;inset:0}.bone-svg{pointer-events:none;width:100%;height:100%;position:absolute;inset:0;overflow:visible}.bone-link{stroke:var(--text-muted);stroke-width:.3px;stroke-dasharray:1 1;opacity:.5}.bone-shape{pointer-events:auto;cursor:grab;fill:var(--bone-fill,#a0a0b073);stroke:var(--bone-stroke,var(--text-muted));stroke-width:.25px}.bone-hit{fill:none;stroke:#0000;stroke-width:14px;pointer-events:stroke;cursor:grab}.bone-create-preview{fill:none;stroke:var(--accent);stroke-width:2px;stroke-dasharray:4 3;pointer-events:none}.bone-shape:hover,g:hover>.bone-shape{fill:var(--bone-fill-hover,#c8c8d899)}.bone-shape-selected{fill:var(--accent);stroke:var(--accent-hover);opacity:.85}.bone-label{fill:var(--accent-hover);paint-order:stroke;stroke:var(--bg-app);stroke-width:.4px;font-size:3px}.bone-fields{grid-template-columns:1fr 1fr;gap:6px;margin-bottom:10px;display:grid}.bone-fields .bone-field{min-width:0;color:var(--text-muted);gap:3px;font-size:10px;display:grid}.bone-field-wide{grid-column:1/-1}.bone-fields input,.bone-fields select{background:var(--bg-app);width:100%;min-width:0;height:26px;padding:0 6px;font-size:12px}.bone-fields-empty{color:var(--text-muted);margin-bottom:12px;display:block}.rig-help{color:var(--text-faint);margin:0;padding-left:14px;font-size:11px;line-height:1.55}.rig-help li+li{margin-top:2px}.rig-help b{color:var(--text);font-weight:600}.panel-tabs{align-items:center;gap:4px;margin-bottom:10px;display:flex}.panel-tabs button{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-elevated);min-width:0;height:24px;color:var(--text-muted);font-family:var(--font-display);letter-spacing:.02em;cursor:pointer;transition:background var(--duration-fast), border-color var(--duration-fast), color var(--duration-fast);flex:1 1 0;padding:0 4px;font-size:10px;line-height:1}.panel-tabs button:hover{color:var(--accent-hover);background:color-mix(in oklch, var(--bg-elevated) 90%, var(--accent) 10%)}.panel-tabs button[aria-selected=true]{border-color:var(--accent);background:var(--accent);color:var(--accent-text)}.panel-help-toggle{width:26px;height:26px;font-family:var(--font-body)!important;border-radius:50%!important;flex:0 0 26px!important;font-size:11px!important}.panel-help-toggle[aria-expanded=true]{border-color:var(--accent);color:var(--accent-hover)}.help-popover{background:var(--bg-elevated);border:1px solid var(--border-strong);border-radius:var(--radius-sm);margin:-4px 0 10px;padding:10px 12px}.card-title-row{align-items:baseline;gap:8px;margin-bottom:8px;display:flex}.card-title-row h2{flex:auto;min-width:0;margin:0}.card-title-row .card-title-count{color:var(--text-muted);font-variant-numeric:tabular-nums;white-space:nowrap;flex:none;font-size:11px}.progress-bar{border-radius:var(--radius-pill);background:var(--bg-app);height:5px;margin-bottom:10px;overflow:hidden}.progress-bar>span{background:var(--success);height:100%;display:block}.filter-chips{gap:4px;margin-bottom:10px;display:flex}.filter-chips button{border:1px solid var(--border);border-radius:var(--radius-pill);background:var(--bg-elevated);height:24px;color:var(--text-muted);white-space:nowrap;cursor:pointer;transition:background var(--duration-fast), border-color var(--duration-fast), color var(--duration-fast);padding:0 10px;font-size:10px;line-height:1}.filter-chips button[aria-pressed=true]{border-color:var(--accent);background:color-mix(in oklch, var(--bg-elevated) 84%, var(--accent) 16%);color:var(--accent-hover)}.bone-card-header{align-items:center;gap:6px;margin-bottom:10px;display:flex}.bone-card-name{flex:auto;min-width:0;font-size:12px;font-weight:600}.bone-card-parent{color:var(--text-faint);flex:none;font-size:10px}.primary-button{border-radius:var(--radius-sm);background:var(--accent);width:100%;height:30px;color:var(--accent-text);cursor:pointer;transition:background var(--duration-fast);border:none;font-size:11px;font-weight:700}.primary-button:hover:not(:disabled){background:var(--accent-hover)}.primary-button:disabled{opacity:.5;cursor:not-allowed}.card-note{color:var(--text-faint);margin:8px 0 0;font-size:10px;line-height:1.5}.pose-test-canvas{width:100%;height:100%;image-rendering:pixelated;position:absolute;inset:0}.bone-marker{border:2px solid var(--bg-app);background:var(--text-muted);cursor:grab;border-radius:50%;width:12px;height:12px;padding:0;position:absolute;transform:translate(-50%,-50%)}.bone-end-handle{border:1px solid var(--accent);border-radius:var(--radius-sm);background:var(--bg-panel);cursor:ew-resize;width:14px;height:14px;padding:0;position:absolute;transform:translate(-50%,-50%)rotate(45deg)}.selected-bone-marker{border-color:var(--accent-text);background:var(--accent);box-shadow:0 0 0 2px var(--accent)}.rest-ghost-canvas,.onion-canvas{width:100%;height:100%;image-rendering:pixelated;pointer-events:none;opacity:.35;position:absolute;inset:0}.rest-ghost-canvas{opacity:.55}.right-panel .checker{aspect-ratio:1;width:100%;height:auto}.combination-preview-canvas{aspect-ratio:1;width:100%;height:auto;image-rendering:pixelated;display:block}.preview-palette-controls{gap:6px;margin:8px 0 10px;display:grid}.preview-palette-controls small{color:var(--text-faint);font-size:11px;line-height:1.45}.animate-canvas{width:100%;height:100%;image-rendering:pixelated}.onion-prev{filter:hue-rotate(160deg)}.onion-next{filter:hue-rotate(20deg)}.pivot-marker,.ik-target,.stretch-pin-marker{border:1px solid var(--accent-hover);cursor:crosshair;background:0 0;width:14px;height:14px;padding:0;position:absolute;transform:translate(-50%,-50%)}.stretch-pin-marker{border-color:var(--warning,#f0a050);border-radius:50%}.selected-stretch-pin-marker{background:var(--warning,#f0a050)}.drag-readout{background:color-mix(in oklch, var(--bg-app) 88%, transparent);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--accent-hover);font-variant-numeric:tabular-nums;pointer-events:none;padding:4px 9px;font-size:11px;font-weight:600;line-height:1.4;position:absolute;bottom:12px;left:12px}.pivot-marker:before,.pivot-marker:after,.ik-target:before,.ik-target:after{content:"";background:var(--accent-hover);position:absolute}.pivot-marker:before,.ik-target:before{height:1px;top:6px;left:1px;right:1px}.pivot-marker:after,.ik-target:after{width:1px;top:1px;bottom:1px;left:6px}.rotate-gizmo,.scale-gizmo{border:2px solid var(--accent-text);background:var(--accent);cursor:grab;width:13px;height:13px;padding:0;position:absolute;transform:translate(-50%,-50%)}.rotate-gizmo{border-radius:50%}.scale-gizmo{border-radius:3px}.rotate-gizmo:active,.scale-gizmo:active{cursor:grabbing}.toggle-row{height:28px;color:var(--text-muted);align-items:center;gap:8px;display:flex}.toggle-row input[type=checkbox],.toggle-row input[type=radio]{flex:0 0 16px;align-self:center;width:16px;height:16px;margin:0;padding:0}.transport-bar{background:var(--bg-panel);border-top:1px solid var(--border);flex:none;align-items:center;gap:8px;min-width:0;padding:8px 12px;display:flex;overflow:hidden}.transport-bar .transport-button{flex:none;height:30px;padding:0 8px;font-size:11px}.transport-play{min-width:44px;color:var(--accent-text);font-weight:700;background:var(--accent)!important;border-color:#0000!important}.transport-play:hover{background:var(--accent-hover)!important}.frame-counter{font-family:var(--font-display);letter-spacing:.02em;color:var(--accent-hover);font-variant-numeric:tabular-nums;flex:none;align-items:baseline;gap:4px;font-size:14px;font-weight:700;display:flex}.frame-counter input{border:1px solid var(--border);background:var(--bg-app);width:44px;height:26px;color:var(--accent-hover);text-align:right;padding:0 4px;font-family:inherit;font-size:14px}.frame-counter input::-webkit-outer-spin-button{appearance:none;margin:0}.frame-counter input::-webkit-inner-spin-button{appearance:none;margin:0}.transport-bar .duration-field{flex:none;margin-left:0;font-size:11px}.transport-bar .duration-field input{width:52px;height:26px;padding:0 6px}.segmented-row{grid-template-columns:repeat(3,1fr);gap:6px;margin-bottom:8px;display:grid}.segmented-pair{grid-template-columns:repeat(2,1fr)}.segmented-row button[aria-pressed=true]{border-color:var(--accent);background:color-mix(in oklch, var(--bg-elevated) 70%, var(--accent) 30%);color:var(--accent-hover);font-weight:700}.field-hint{color:var(--text-faint);margin:-2px 0 10px;font-size:11px;line-height:1.5;display:block}.dopesheet-list{gap:6px;margin-bottom:8px;display:grid}.preset-grid{grid-template-columns:1fr 1fr;gap:4px;margin-bottom:8px;display:grid}.preset-grid .wide-button{padding:0 6px;font-size:11px}.dopesheet-list{-webkit-user-select:none;user-select:none}.dopesheet-list input,.dopesheet-list textarea{-webkit-user-select:text;user-select:text}.preset-group+.preset-group{margin-top:10px}.preset-group h3{margin-bottom:6px}.track-row{grid-template-columns:var(--timeline-label-col) 1fr;border-bottom:1px solid var(--bg-elevated);align-items:center;gap:8px;height:30px;padding:0 8px;display:grid}.track-row>span{text-overflow:ellipsis;white-space:nowrap;font-size:11px;overflow:hidden}.track-row small{color:var(--text-muted)}.track-label-cell{align-items:center;gap:6px;display:flex;overflow:hidden}.track-label-cell>span:not(.group-chip){text-overflow:ellipsis;white-space:nowrap;flex:auto;min-width:0;font-size:11px;overflow:hidden}.track-graph-toggle{border-radius:var(--radius-sm);width:16px;height:16px;color:var(--text-muted);cursor:pointer;background:0 0;border:none;flex:none;justify-content:center;align-items:center;padding:0;font-size:9px;line-height:1;display:inline-flex}.track-graph-toggle:hover{color:var(--accent-hover);background:color-mix(in oklch, var(--bg-elevated) 90%, var(--accent) 10%)}.track-graph-toggle[aria-expanded=true]{color:var(--accent-hover)}.key-lane{width:100%;height:26px;position:relative}.key-diamond{background:var(--text-muted);cursor:grab;border:none;border-radius:50%;width:11px;height:11px;margin:-5.5px 0 0 -5.5px;padding:0;position:absolute;top:50%}.key-diamond-drag-out{opacity:.35;cursor:no-drop}.animate-center{flex-direction:column;height:100%;min-height:0;display:flex}.animate-center .canvas-stage{flex:1;min-height:0;overflow:hidden}.dopesheet-dock{border-top:1px solid var(--border);background:var(--bg-panel);flex-direction:column;flex:0 0 250px;max-height:38%;padding:0;display:flex}.dopesheet-dock-header{flex:none;justify-content:flex-end;align-items:center;gap:8px;padding:6px 12px 0;display:flex}.selected-easing-field{color:var(--text-muted);align-items:center;gap:6px;font-size:11px;display:inline-flex}.dopesheet-dock .dopesheet-list{flex:1;align-content:start;min-height:0;overflow-y:auto}.dock-toggle{font:inherit;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--bg-elevated);color:var(--text);cursor:pointer;padding:3px 12px;font-size:11px}.dock-toggle:hover{background:color-mix(in oklch, var(--bg-elevated) 90%, var(--accent) 10%)}.dock-toggle[aria-pressed=true]{border-color:var(--accent);background:color-mix(in oklch, var(--bg-elevated) 74%, var(--accent) 26%);color:var(--accent-hover)}.ruler-row{z-index:3;background:var(--bg-elevated);border-bottom:1px solid var(--border);height:28px;position:sticky;top:0}.ruler-label{min-width:0;color:var(--text-muted);align-items:center;gap:6px;display:flex;overflow:hidden}.ruler-lane{cursor:col-resize;background:0 0}.ruler-tick{color:var(--text-faint);font-variant-numeric:tabular-nums;border-left:1px solid var(--border);pointer-events:none;height:20px;padding-left:3px;font-size:10px;position:absolute;top:3px;transform:translate(1px)}.playhead{background:var(--warning);pointer-events:none;z-index:2;width:2px;margin-left:-1px;position:absolute;top:0;bottom:0}.ruler-lane .playhead:after{content:"";background:var(--warning);border-radius:3px;width:12px;height:12px;position:absolute;top:0;left:-5px}.duration-field{color:var(--text-muted);align-items:center;gap:6px;margin-left:12px;display:inline-flex}.duration-field input{width:64px}.selected-key{background:var(--accent);box-shadow:0 0 0 2px var(--accent-hover)}.dopesheet-select-box{z-index:5;pointer-events:none;border:1px solid var(--accent);border-radius:var(--radius-sm);background:color-mix(in oklch, var(--accent) 18%, transparent);position:fixed}.graph-editor{border:none;border-bottom:1px solid var(--bg-elevated);background:var(--bg-app);border-radius:0;flex-direction:column;height:112px;padding:4px 0;display:flex;overflow:hidden}.graph-header{flex:none;justify-content:space-between;align-items:center;gap:8px;margin-bottom:4px;padding:0 8px;display:flex}.graph-track-label{min-width:0;color:var(--text-muted);text-overflow:ellipsis;white-space:nowrap;flex:auto;font-size:12px;font-weight:600;overflow:hidden}.graph-easing-select{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-panel);height:22px;color:var(--text);flex:none;font-size:11px}.graph-row{grid-template-columns:var(--timeline-label-col) 1fr;flex:1;grid-template-rows:minmax(0,1fr);gap:8px;min-height:0;padding:0 8px;display:grid}.graph-value-col{flex-direction:column;justify-content:space-between;align-items:flex-end;height:100%;padding:2px 4px 14px 0;display:flex;overflow:hidden}.graph-value-col .graph-axis-label{text-overflow:ellipsis;max-width:100%;overflow:hidden}.graph-plot-col{min-width:0;height:100%;position:relative}.graph-svg{width:100%;height:100%;display:block;overflow:hidden}.graph-line{fill:none;stroke:var(--accent);stroke-width:2px;stroke-linejoin:round;stroke-linecap:round;vector-effect:non-scaling-stroke}.graph-plot-border{fill:none;stroke:var(--border);stroke-width:.5px;vector-effect:non-scaling-stroke}.graph-grid-line{stroke:color-mix(in oklch, var(--border) 70%, var(--bg-app) 30%);stroke-width:.5px;stroke-dasharray:1 2;vector-effect:non-scaling-stroke}.graph-zero-line{stroke:color-mix(in oklch, var(--text-faint) 60%, var(--bg-app) 40%);stroke-width:.5px;stroke-dasharray:2 2;vector-effect:non-scaling-stroke}.graph-axis-label{color:var(--text-muted);white-space:nowrap;font-size:10px;font-weight:600}.graph-current-frame{stroke:var(--accent-hover);stroke-width:1px;vector-effect:non-scaling-stroke}.graph-handle-line{stroke:var(--text-faint);stroke-width:.5px;stroke-dasharray:1.5 1.5;vector-effect:non-scaling-stroke}.graph-handle{border:1px solid var(--accent);background:var(--bg-panel);cursor:grab;z-index:2;border-radius:2px;width:8px;height:8px;padding:0;position:absolute;transform:translate(-50%,-50%)rotate(45deg)}.graph-handle:hover{background:var(--accent)}.graph-key-point{border:2px solid var(--accent-text);background:var(--accent);cursor:grab;z-index:3;border-radius:50%;width:10px;height:10px;padding:0;position:absolute;transform:translate(-50%,-50%)}.graph-key-point-selected{background:var(--accent-hover);box-shadow:0 0 0 2px var(--accent)}.graph-key-point:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.graph-frame-label{pointer-events:none;position:absolute;bottom:2px}.graph-frame-label-start{left:0}.graph-frame-label-mid{left:50%;transform:translate(-50%)}.graph-frame-label-end{right:0}.ik-list,.binding-list{gap:4px;margin-bottom:8px;display:grid}.ik-row{grid-template-columns:1fr 48px 56px 72px;align-items:center;gap:6px;display:grid}.binding-list label{color:var(--text-muted);grid-template-columns:minmax(0,1fr) 96px;align-items:center;gap:6px;margin-bottom:0;font-size:11px;display:grid}.binding-list label>span{white-space:nowrap;text-overflow:ellipsis;min-width:0;overflow:hidden}.binding-list select,.ik-row input{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-app);height:24px;color:var(--text)}.panel .binding-list label select{min-width:0;height:24px;padding:0 4px;font-size:11px}.autokey-badge{z-index:4;background:color-mix(in oklch, var(--bg-app) 85%, transparent);border:1px solid var(--border);border-radius:var(--radius-pill);font-family:var(--font-display);letter-spacing:.08em;text-transform:uppercase;color:var(--warning);pointer-events:none;padding:3px 8px;font-size:10px;line-height:1.4;position:absolute;top:10px;left:10px}.onion-indicator{border:1px solid var(--border);background:var(--bg-panel);color:var(--text-muted);border-radius:6px;padding:4px 8px;position:absolute;top:12px;left:12px}.stale-badge{border:1px solid var(--warning);border-radius:var(--radius-sm);background:color-mix(in oklch, var(--bg-panel) 88%, var(--warning) 12%);min-height:26px;color:var(--warning);place-items:center;margin-bottom:8px;padding:4px 8px;font-size:10px;font-weight:600;display:grid}.state-flag{font-family:var(--font-display);letter-spacing:.08em;text-transform:uppercase;color:var(--warning);white-space:nowrap;flex:none;font-size:10px}.spring-panel{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-panel);gap:6px;margin-bottom:8px;padding:8px;display:grid}.spring-panel .bone-field{color:var(--text-muted);gap:2px;font-size:11px;display:grid}.spring-panel .bone-field input{width:100%;min-width:0;height:24px;padding:0 6px}.empty-state,.field-note{color:var(--text-muted);font-size:13px;line-height:1.55}.canvas-frame{border:1px solid var(--border-strong);box-shadow:var(--shadow-soft);position:relative}.pixel-overlay-canvas{pointer-events:none;position:absolute;top:0;left:0}.draw-context-overlay,.draw-bone-marker-layer{pointer-events:none;position:absolute;inset:0}.draw-bone-marker{pointer-events:none;cursor:default}.dialog-backdrop{z-index:20;background:#00000073;place-items:center;display:grid;position:fixed;inset:0}.dialog{border-radius:var(--radius);border:1px solid var(--border-strong);background:var(--bg-panel);width:320px;box-shadow:var(--shadow-raised);gap:10px;padding:24px;display:grid}.dialog label:not(.toggle-row){gap:4px;display:grid}.dialog h2{font-family:var(--font-body);letter-spacing:0;font-size:22px;font-weight:700;line-height:1}.dialog input:not([type=checkbox]):not([type=radio]):not([type=range]),.dialog select{height:28px;padding:0 8px}.layer-mapping-dialog{width:min(560px,92vw)}.layer-mapping-list{gap:4px;max-height:50vh;display:grid;overflow-y:auto}.dialog label.layer-mapping-row{grid-template-columns:minmax(0,1fr) minmax(0,200px);align-items:center;gap:8px;font-size:11px;display:grid}.layer-mapping-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.batch-needs-review{border-left:2px solid #ffb85c;padding-left:6px}.review-badge{border-radius:var(--radius-sm);color:#ffb85c;border:1px solid #ffb85c;margin-left:6px;padding:1px 4px;font-size:10px}.dialog label.layer-mapping-row.batch-row{grid-template-columns:28px minmax(0,1fr) minmax(0,200px)}.batch-row-thumb{border:1px solid var(--border);border-radius:var(--radius-sm);place-items:center;width:28px;height:28px;display:grid;overflow:hidden}.batch-row-thumb-canvas{max-width:100%;max-height:100%;image-rendering:pixelated}.dialog-actions{justify-content:flex-end;gap:8px;display:flex}.dialog-actions button{border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--bg-elevated);height:28px;color:var(--text);cursor:pointer;padding:0 12px}.dialog-actions button:hover{background:color-mix(in oklch, var(--bg-elevated) 90%, var(--accent) 10%)}.dialog-actions button:disabled{opacity:.45;box-shadow:none;cursor:default}.field-note,.error-text{color:var(--text-muted);font-size:13px}.error-text{color:#ff8a8a}.progress-track{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-elevated);height:10px;overflow:hidden}.progress-track span{background:repeating-linear-gradient(90deg, var(--accent) 0 8px, transparent 8px 10px);height:100%;display:block}.toast{border:1px solid var(--border-strong);background:var(--bg-elevated);border-radius:var(--radius);box-shadow:var(--shadow-raised);z-index:30;align-items:center;gap:8px;padding:18px 20px;display:flex;position:fixed;bottom:16px;right:16px}.toast-action{border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--bg);height:24px;color:var(--text);cursor:pointer;padding:0 8px}.toast-close{border-radius:var(--radius-sm);width:20px;height:20px;color:var(--text-muted);cursor:pointer;background:0 0;border:1px solid #0000;place-items:center;display:grid}.tip-layer{z-index:40;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--bg-elevated);max-width:240px;color:var(--text);box-shadow:var(--shadow-soft);white-space:normal;word-break:keep-all;overflow-wrap:break-word;pointer-events:none;transition:opacity var(--transition);padding:6px 8px;font-size:12px;line-height:1.4;position:fixed}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes panel-in-left{0%{opacity:0;transform:translate(-10px)}to{opacity:1;transform:none}}@keyframes panel-in-right{0%{opacity:0;transform:translate(10px)}to{opacity:1;transform:none}}@keyframes pop-in{0%{opacity:0;transform:scale(.97)}to{opacity:1;transform:scale(1)}}@keyframes toast-in{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}@keyframes progress-stripes{0%{background-position:0 0}to{background-position:20px 0}}.tool-strip,.tool-rail,.left-panel{animation:panel-in-left var(--duration-base) var(--ease-out)}.right-panel{animation:panel-in-right var(--duration-base) var(--ease-out)}.viewport>*{animation:fade-in var(--duration-slow) var(--ease-out)}.panel-collapse-toggle{transition:left var(--duration-base) var(--ease-out), right var(--duration-base) var(--ease-out), background var(--duration-fast), color var(--duration-fast)}.export-button:active,.wide-button:active,.transport-button:active,.tool-list button:active,.category-list button:active,.clip-list button:active,.segmented-row button:active,.palette-edit-row button:active,.dialog-actions button:active,.dock-toggle:active,.tool-strip button:active,.tool-strip-toggle:active,.tool-rail button:active,.layer-row>button:not(.layer-name-button):active{transition-duration:80ms}.export-button:active,.wide-button:active,.transport-button:active,.tool-list button:active,.category-list button:active,.clip-list button:active,.segmented-row button:active,.palette-edit-row button:active,.dialog-actions button:active,.dock-toggle:active,.tool-strip button:active,.tool-strip-toggle:active,.tool-rail button:active{background:color-mix(in oklch, var(--bg-elevated) 62%, var(--accent) 38%)}.tool-strip button,.tool-strip-toggle{transition:color var(--duration-fast), background var(--duration-fast)}.palette-grid button{transition:box-shadow var(--duration-fast)}.palette-grid button:hover{z-index:1;box-shadow:0 0 0 2px var(--accent-hover);position:relative}.layer-row,.bone-row,.clip-row,.variant-row,.cycle-row,.attachment-card,.ik-row,.stale-badge{animation:fade-in var(--duration-base) var(--ease-out)}.layer-row,.bone-row{transition:border-color var(--duration-fast), background var(--duration-fast)}.layer-row>button:not(.layer-name-button){transition:color var(--duration-fast), background var(--duration-fast), transform var(--duration-fast) var(--ease-out)}.layer-row>button:not(.layer-name-button):active{transform:scale(.93)}.bone-shape,.bone-link{transition:fill var(--duration-fast), stroke var(--duration-fast)}.key-diamond,.graph-key-point{transition:box-shadow var(--duration-fast), background var(--duration-fast)}.key-diamond:hover,.graph-key-point:hover{background:var(--accent-hover);box-shadow:0 0 0 2px var(--accent-hover)}.key-diamond-dragging{z-index:3;cursor:grabbing;box-shadow:0 0 0 2px var(--accent-hover)}.dialog-backdrop{animation:fade-in var(--duration-fast) var(--ease-out)}.dialog{animation:pop-in var(--duration-base) var(--ease-pop)}.toast{animation:toast-in var(--duration-base) var(--ease-pop)}.toast-close,.toast-action{transition:color var(--duration-fast), background var(--duration-fast)}.progress-track span{animation:.9s linear infinite progress-stripes}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}}
