:root{color-scheme:dark;--bg-app: #141518;--bg-panel: #1c1d21;--bg-panel-2: #212227;--bg-field: #26272d;--bg-hover: #2e2f36;--bg-active: #383a42;--bg-overlay: rgba(10, 11, 13, .6);--bg-track: #18191c;--bg-track-alt: #1b1c20;--border: #2f3036;--border-strong: #41434b;--border-focus: var(--accent);--text: #e4e5e9;--text-2: #a3a5ae;--text-3: #6c6e78;--text-on-accent: #ffffff;--accent: #3d8bff;--accent-hover: #5a9cff;--accent-soft: rgba(61, 139, 255, .16);--accent-line: rgba(61, 139, 255, .55);--ok: #46b06a;--warn: #d8a034;--warn-soft: rgba(216, 160, 52, .14);--danger: #e0574f;--danger-soft: rgba(224, 87, 79, .14);--rec: #e0574f;--blk-clip: #3e6f6a;--blk-move: #4d7046;--blk-transform: #5f5487;--blk-face: #7f5370;--blk-lookAt: #7a6c3e;--blk-action: #82593d;--blk-ragdoll: #844545;--blk-dialogue: #6a5288;--blk-audio: #4f5a78;--blk-text: #eef0f4;--shot-bg: #2c2e35;--set-bg: #2a2c33;--loop-region: rgba(61, 139, 255, .1);--font-ui: Inter, system-ui, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-mono: ui-monospace, "Cascadia Mono", "SF Mono", Consolas, monospace;--fs-xs: 11px;--fs-sm: 12px;--fs-md: 13px;--fs-lg: 15px;--fw-medium: 500;--fw-bold: 600;--sp-1: 2px;--sp-2: 4px;--sp-3: 6px;--sp-4: 8px;--sp-5: 12px;--sp-6: 16px;--sp-7: 24px;--r-sm: 3px;--r-md: 5px;--r-lg: 8px;--r-pill: 999px;--ctl-h: 26px;--ctl-h-sm: 22px;--appbar-h: 44px;--tab-h: 32px;--lane-h: 26px;--lane-head-w: 112px;--shadow-pop: 0 10px 28px rgba(0, 0, 0, .5), 0 0 0 1px rgba(0, 0, 0, .35);--shadow-sm: 0 1px 2px rgba(0, 0, 0, .35);--focus-ring: 0 0 0 2px var(--accent-line);--dur: .12s}body{-webkit-user-select:none;user-select:none}input,textarea,select,[contenteditable],[contenteditable] *,.selectable,.selectable *{-webkit-user-select:text;user-select:text}*{box-sizing:border-box}html,body{margin:0;height:100%;overflow:hidden;background:var(--bg-app);color:var(--text);font:var(--fs-sm) / 1.35 var(--font-ui);-webkit-font-smoothing:antialiased}#view{position:fixed;inset:0;width:100vw;height:100vh;display:block;cursor:grab;touch-action:none}#view:active{cursor:grabbing}#ui{position:fixed;inset:0;pointer-events:none;font:var(--fs-sm) / 1.35 var(--font-ui);color:var(--text)}#ui>*{pointer-events:auto}#ui button,#ui input,#ui select,#ui textarea{font:inherit;color:inherit}.ui-icon{display:block;flex:none}.ui-label{white-space:nowrap}#ui *{scrollbar-width:thin;scrollbar-color:var(--border-strong) transparent}#ui ::-webkit-scrollbar{width:10px;height:10px}#ui ::-webkit-scrollbar-thumb{background:var(--border-strong);border:3px solid transparent;border-radius:8px;background-clip:padding-box}#ui ::-webkit-scrollbar-track,#ui ::-webkit-scrollbar-corner{background:transparent}.app-bar{position:absolute;top:0;left:0;right:0;height:var(--appbar-h);background:var(--bg-panel);border-bottom:1px solid var(--border);pointer-events:none!important;z-index:10}.app-brand{position:absolute;left:var(--sp-5);top:0;height:var(--appbar-h);display:flex;align-items:center;gap:var(--sp-5);pointer-events:auto;z-index:12}.app-logo{font-size:var(--fs-md);font-weight:var(--fw-bold);letter-spacing:.2px;color:var(--text);white-space:nowrap}.app-logo b{color:var(--accent);font-weight:var(--fw-bold)}.seg{display:inline-flex;align-items:center;padding:2px;gap:2px;background:var(--bg-app);border:1px solid var(--border);border-radius:var(--r-md);flex:none}.seg>button,.seg>.an-btn,.seg>.opt{height:calc(var(--ctl-h) - 4px);min-height:0;padding:0 var(--sp-4);border:none!important;border-radius:var(--r-sm);background:transparent;color:var(--text-2);box-shadow:none;font-weight:var(--fw-medium);cursor:pointer;white-space:nowrap;display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-2);transition:background var(--dur),color var(--dur)}.seg>button:hover{color:var(--text);background:var(--bg-hover)}.seg>button.active,.seg>button.on,.seg>button[aria-selected=true]{background:var(--bg-active);color:var(--text)}.btn,.an-btn,.tl-btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-2);height:var(--ctl-h);padding:0 var(--sp-4);background:var(--bg-field);border:1px solid var(--border);border-radius:var(--r-md);color:var(--text);font-size:var(--fs-sm);font-weight:var(--fw-medium);line-height:1;white-space:nowrap;cursor:pointer;transition:background var(--dur),border-color var(--dur),color var(--dur)}.btn:hover:not(:disabled),.an-btn:hover:not(:disabled),.tl-btn:hover:not(:disabled){background:var(--bg-hover);border-color:var(--border-strong)}.btn:active:not(:disabled),.an-btn:active:not(:disabled),.tl-btn:active:not(:disabled){background:var(--bg-active)}.btn.on,.an-btn.on,.tl-btn.on{background:var(--accent-soft);border-color:var(--accent-line);color:var(--text)}.btn.accent,.an-btn.accent,.tl-btn.accent{background:var(--accent);border-color:var(--accent);color:var(--text-on-accent)}.btn.accent:hover:not(:disabled),.an-btn.accent:hover:not(:disabled),.tl-btn.accent:hover:not(:disabled){background:var(--accent-hover);border-color:var(--accent-hover)}.an-btn.danger,.btn.danger{color:var(--danger)}.an-btn.danger:hover:not(:disabled){background:var(--danger-soft);border-color:var(--danger)}.btn:disabled,.an-btn:disabled,.tl-btn:disabled{opacity:.4;cursor:default}.icon-btn{width:var(--ctl-h);padding:0!important}.ghost{background:transparent;border-color:transparent}.px-input,.an-select,.an-num,.an-text,.an-textarea{height:var(--ctl-h);padding:0 var(--sp-3);background:var(--bg-field);border:1px solid var(--border);border-radius:var(--r-md);color:var(--text);font-size:var(--fs-sm);min-width:0;outline:none;transition:border-color var(--dur),box-shadow var(--dur)}.px-input::placeholder,.an-textarea::placeholder{color:var(--text-3)}.px-input:hover,.an-select:hover,.an-num:hover,.an-text:hover,.an-textarea:hover{border-color:var(--border-strong)}.px-input:focus,.an-select:focus,.an-num:focus,.an-text:focus,.an-textarea:focus{border-color:var(--accent);box-shadow:var(--focus-ring)}.an-select{padding-right:var(--sp-2);cursor:pointer}.an-select option{background:var(--bg-panel);color:var(--text)}.an-textarea{height:auto;padding:var(--sp-3);font-family:var(--font-ui);resize:vertical;line-height:1.45}input[type=checkbox]{accent-color:var(--accent);width:14px;height:14px;margin:0}.px-range{-webkit-appearance:none;appearance:none;width:100%;height:18px;background:transparent;cursor:pointer;margin:0}.px-range::-webkit-slider-runnable-track{height:4px;background:var(--bg-active);border-radius:2px}.px-range::-moz-range-track{height:4px;background:var(--bg-active);border-radius:2px}.px-range::-webkit-slider-thumb{-webkit-appearance:none;width:12px;height:12px;margin-top:-4px;background:var(--text);border:none;border-radius:50%;box-shadow:var(--shadow-sm)}.px-range::-moz-range-thumb{width:12px;height:12px;background:var(--text);border:none;border-radius:50%}.px-range:hover::-webkit-slider-thumb{background:var(--accent-hover)}.px-range:focus-visible::-webkit-slider-thumb{box-shadow:var(--focus-ring)}#ui button:focus-visible,#ui [tabindex]:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.ui-frame{background:var(--bg-panel);border:1px solid var(--border);border-radius:var(--r-lg);color:var(--text)}.toast{position:absolute;left:50%;top:calc(var(--appbar-h) + var(--sp-5));transform:translate(-50%,-8px);padding:var(--sp-3) var(--sp-5);background:var(--bg-active);border:1px solid var(--border-strong);border-radius:var(--r-md);box-shadow:var(--shadow-pop);color:var(--text);font-size:var(--fs-sm);font-weight:var(--fw-medium);opacity:0;transition:opacity .15s,transform .15s;pointer-events:none!important;z-index:60;max-width:min(640px,calc(100vw - 32px))}.toast.show{opacity:1;transform:translate(-50%)}.debug-panel{position:absolute;bottom:var(--sp-5);left:var(--sp-5);width:360px;max-height:calc(100vh - 190px);z-index:5;display:flex;flex-direction:column;color:var(--text);background:var(--bg-panel);border:1px solid var(--border);border-radius:var(--r-lg);font-size:var(--fs-xs);overflow:hidden}.debug-panel.collapsed{width:auto}.debug-panel.collapsed .debug-body{display:none}.debug-head{display:flex;align-items:center;gap:var(--sp-4);padding:var(--sp-2) var(--sp-2) var(--sp-2) var(--sp-4);background:var(--bg-panel-2);font-family:var(--font-ui)!important}.debug-head b{flex:1;font-weight:var(--fw-medium);color:var(--text-2);white-space:nowrap}.debug-head .tri{font-family:var(--font-mono);color:var(--text-3);white-space:nowrap}.debug-head .tri.over{color:var(--danger)}.debug-toggle{width:22px;padding:0}.debug-body{overflow-y:auto;padding:var(--sp-3) var(--sp-4) var(--sp-5)}.section{margin:var(--sp-4) 0 var(--sp-2);color:var(--text-2);font-weight:var(--fw-bold)}.atlas-view{width:100%;aspect-ratio:1;display:block;image-rendering:pixelated;cursor:crosshair;border:1px solid var(--border)}.row{display:flex;gap:var(--sp-4);align-items:flex-start}.face-preview{width:128px;height:128px;flex:none;image-rendering:pixelated;border:1px solid var(--border)}.sliders{flex:1;display:flex;flex-direction:column;gap:var(--sp-3);min-width:0}.slider{display:flex;flex-direction:column}.slider input{width:100%}.slabel{color:var(--text-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.btns{display:flex;flex-wrap:wrap;gap:var(--sp-1)}.debug-panel button,.debug-panel select{height:var(--ctl-h-sm);color:var(--text);background:var(--bg-field);border:1px solid var(--border);border-radius:var(--r-sm);padding:0 var(--sp-3);cursor:pointer}.debug-panel button:hover{background:var(--bg-hover)}.debug-panel button.accent{background:var(--accent);border-color:var(--accent);color:var(--text-on-accent)}.debug-panel button.swatch{width:22px;height:22px;padding:0}.chk{display:inline-flex;align-items:center;gap:var(--sp-1);margin-right:var(--sp-3)}.lib-overlay{position:absolute;inset:0;display:none;align-items:center;justify-content:center;background:var(--bg-overlay);z-index:40}.lib-overlay.open{display:flex}.lib-panel{width:min(780px,calc(100vw - 32px));max-height:calc(100vh - 64px);display:flex;flex-direction:column;gap:var(--sp-4);padding:var(--sp-5) var(--sp-6) var(--sp-6);box-shadow:var(--shadow-pop)}.lib-head{display:flex;align-items:center;justify-content:space-between}.lib-title{font-size:var(--fs-lg);font-weight:var(--fw-bold)}.lib-status{font-size:var(--fs-sm);color:var(--text-2)}.lib-status.modified{color:var(--warn)}.lib-toolbar,.lib-name-row{display:flex;flex-wrap:wrap;gap:var(--sp-3);align-items:center}.lib-search{flex:1 1 160px}.lib-name-row{display:none;padding:var(--sp-4);background:var(--bg-panel-2);border:1px solid var(--border);border-radius:var(--r-md)}.lib-name-row.show{display:flex}.lib-name-label{color:var(--text-2);font-weight:var(--fw-medium)}.lib-name-row .px-input{flex:1 1 160px}.lib-messages:empty{display:none}.lib-messages{padding:var(--sp-4);background:var(--bg-panel-2);border:1px solid var(--border);border-radius:var(--r-md);max-height:140px;overflow-y:auto;font-size:var(--fs-sm);line-height:1.45}.lib-msg.ok{color:var(--ok)}.lib-msg.err{color:var(--danger)}.lib-msg.skip{color:var(--warn)}.lib-msg.sub{color:var(--text-2);padding-left:var(--sp-5)}.lib-msg-close{margin-top:var(--sp-3)}.lib-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:var(--sp-4);overflow-y:auto;min-height:120px;padding:var(--sp-1)}.lib-empty{grid-column:1 / -1;display:grid;place-items:center;padding:var(--sp-7) 0;color:var(--text-3)}.lib-card{background:var(--bg-field);border:1px solid var(--border);border-radius:var(--r-lg);padding:var(--sp-3);display:flex;flex-direction:column;gap:var(--sp-2)}.lib-card.editing{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.lib-pic{aspect-ratio:3 / 4;padding:0;border:none;border-radius:var(--r-md);background:var(--bg-app);overflow:hidden;cursor:pointer}.lib-pic img{width:100%;height:100%;display:block;image-rendering:pixelated}.lib-pic:hover{box-shadow:0 0 0 2px var(--accent)}.lib-card-name{font-weight:var(--fw-medium);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.lib-card-meta{font-size:var(--fs-xs);color:var(--text-3)}.lib-card-actions{display:flex;flex-wrap:wrap;gap:var(--sp-1)}.lib-card-actions .opt.mini{flex:1 1 40%}.opt.danger{background:var(--danger);border-color:var(--danger);color:#fff}.lib-card-warn{font-size:var(--fs-xs);color:var(--danger)}@media(max-width:520px){.lib-grid{grid-template-columns:repeat(auto-fill,minmax(118px,1fr))}}.lib-panel.from-stage .lib-status,.lib-panel.from-stage .lib-save{display:none}.lib-card-actions .opt.danger,.lib-card-actions .opt.danger:hover:not(:disabled){background:var(--danger);border-color:var(--danger);color:#fff}.lib-toolbar .lib-save{max-width:240px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.px-icon{display:block;image-rendering:pixelated}.topbar{position:absolute;top:0;left:236px;right:var(--sp-5);height:var(--appbar-h);display:flex;justify-content:space-between;align-items:center;gap:var(--sp-5);z-index:11;pointer-events:none!important}.bar-group{display:flex;align-items:center;gap:var(--sp-4);pointer-events:auto;min-width:0}.btn-group{display:flex;align-items:center;gap:var(--sp-1)}.bar-divider{width:1px;height:18px;background:var(--border-strong);flex:none}.with-icon{display:inline-flex;align-items:center;gap:var(--sp-3)}.with-icon .ui-icon{color:var(--text-2)}.btn.accent .with-icon .ui-icon{color:inherit}.pill{display:inline-flex;align-items:center;height:var(--ctl-h);padding:0 var(--sp-3);color:var(--text-3);font:var(--fs-xs) var(--font-mono);white-space:nowrap;cursor:default}.pill.over{color:var(--danger)}.logo{display:none}.lib-link{display:inline-flex;align-items:center;gap:var(--sp-3);min-width:0;max-width:260px;height:var(--ctl-h);padding:0 var(--sp-4);border-radius:var(--r-pill);color:var(--text-2);font-size:var(--fs-sm);cursor:pointer;white-space:nowrap}.lib-link:hover{background:var(--bg-hover);color:var(--text)}.lib-link-text{overflow:hidden;text-overflow:ellipsis}.lib-link-dot{flex:none;width:7px;height:7px;border-radius:50%;background:var(--ok)}.lib-link.modified .lib-link-dot,.lib-link.unsaved .lib-link-dot{background:var(--warn)}.lib-link-mod{flex:none;color:var(--warn)}.file-toggle .ui-icon:last-child{margin-left:var(--sp-1);color:var(--text-3)}.cr-menu{position:fixed;display:none;flex-direction:column;min-width:210px;padding:var(--sp-2);z-index:45;background:var(--bg-panel-2);border:1px solid var(--border-strong);border-radius:var(--r-md);box-shadow:var(--shadow-pop)}.cr-menu.show{display:flex}.cr-menuitem{display:flex;justify-content:space-between;gap:var(--sp-6);text-align:left;border:none;background:none;padding:var(--sp-2) var(--sp-4);min-height:28px;align-items:center;cursor:pointer;color:var(--text);border-radius:var(--r-sm);font-size:var(--fs-sm)}.cr-menuitem:hover{background:var(--accent);color:var(--text-on-accent)}.cr-menuhint{color:var(--text-3);font-size:var(--fs-xs)}.cr-menuitem:hover .cr-menuhint{color:inherit;opacity:.8}.cr-menusep{height:1px;margin:var(--sp-2) var(--sp-2);background:var(--border)}.cr-scrim{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:var(--bg-overlay);z-index:40}.cr-dialog{width:min(420px,calc(100vw - 32px));padding:var(--sp-6);display:flex;flex-direction:column;gap:var(--sp-4);box-shadow:var(--shadow-pop)}.cr-dialog-title{font-size:var(--fs-lg);font-weight:var(--fw-bold)}.cr-dialog-sub{color:var(--text-2);font-size:var(--fs-sm);margin-top:calc(-1 * var(--sp-3))}.cr-checks{display:flex;flex-direction:column;gap:var(--sp-2)}.cr-check{display:flex;align-items:flex-start;gap:var(--sp-4);padding:var(--sp-3) var(--sp-4);border:1px solid var(--border);border-radius:var(--r-md);background:var(--bg-field);cursor:pointer}.cr-check:hover{border-color:var(--border-strong)}.cr-check input{margin:2px 0 0;accent-color:var(--accent)}.cr-check-text{display:flex;flex-direction:column;gap:1px}.cr-check-hint{color:var(--text-3);font-size:var(--fs-xs)}.cr-check.zip{background:none;border-color:transparent;padding-top:0;padding-bottom:0}.cr-check.off{opacity:.45;cursor:default}.cr-dialog-btns{display:flex;justify-content:flex-end;gap:var(--sp-3);padding-top:var(--sp-5);border-top:1px solid var(--border)}.cr-dialog-btns .btn{min-width:80px;justify-content:center}.panel-head{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-4);padding:var(--sp-4) var(--sp-4) var(--sp-3) var(--sp-5)}.panel-title{font-size:var(--fs-md);font-weight:var(--fw-bold);color:var(--text)}.color-panel{position:absolute;left:var(--sp-5);top:calc(var(--appbar-h) + var(--sp-5));width:176px;background:var(--bg-panel);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow-sm)}.panel-head .card-sub{margin:0;max-width:96px;text-align:right}.color-panel.closed{display:none}.slot-chips{display:flex;flex-wrap:wrap;gap:var(--sp-2);margin-bottom:var(--sp-4)}.slot-chips.empty{display:none}.slot-chip{display:inline-flex;align-items:center;gap:var(--sp-2);height:var(--ctl-h-sm);padding:0 var(--sp-3) 0 var(--sp-2);border:1px solid var(--border);border-radius:var(--r-pill);background:var(--bg-field);color:var(--text-2);font-size:var(--fs-xs);cursor:pointer}.slot-chip:hover:not(:disabled){border-color:var(--border-strong);color:var(--text)}.slot-chip.active{border-color:var(--accent);background:var(--accent-soft);color:var(--text)}.slot-chip:disabled{opacity:.4;cursor:default}.chip-dot{--c: transparent;width:12px;height:12px;border-radius:50%;background:var(--c);border:1px solid rgba(255,255,255,.18)}.slot-chip:disabled .chip-dot{border-style:dashed}.card{padding:0 var(--sp-5) var(--sp-5)}.card-sub{min-height:16px;font-size:var(--fs-xs);color:var(--text-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.swatches{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--sp-2)}.swatches.disabled{opacity:.3;pointer-events:none}.swatch{--c: #fff;height:26px;border-radius:var(--r-md);border:1px solid rgba(255,255,255,.08);background:var(--c);padding:0;cursor:pointer;transition:transform var(--dur),box-shadow var(--dur)}.swatch:hover{transform:translateY(-1px);box-shadow:0 0 0 1px var(--border-strong)}.swatch.active{box-shadow:0 0 0 2px var(--bg-panel),0 0 0 4px var(--accent)}.default-swatch{position:relative}.default-swatch:after{content:"D";position:absolute;right:2px;bottom:1px;font:600 8px/1 var(--font-ui);color:#fff;text-shadow:0 0 2px #000,0 0 1px #000}.custom-swatch{--c: transparent;position:relative;display:grid;place-items:center;overflow:hidden;background:conic-gradient(from 90deg,#e0574f,#e4c766,#46b06a,#5aa3a6,#3d8bff,#6d5590,#d98ea8,#e0574f);color:#fff}.custom-swatch.active{background:var(--c)}.custom-swatch .ui-icon{filter:drop-shadow(0 0 1px #000);pointer-events:none}.custom-swatch input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer;border:none;padding:0}.cr-side{position:absolute;right:var(--sp-5);top:calc(var(--appbar-h) + var(--sp-5));bottom:var(--sp-5);width:min(380px,calc(100vw - 260px));display:flex;flex-direction:column;background:var(--bg-panel);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow-sm);overflow:hidden}.cr-side.closed{bottom:auto}.cat-bar{display:flex;flex:none;padding:var(--sp-2);gap:var(--sp-1);background:var(--bg-panel-2);border-bottom:1px solid var(--border)}.cr-side.closed .cat-bar{border-bottom:none}.cat-btn{flex:1 1 0;min-width:0;height:46px;padding:0;border:none;border-radius:var(--r-md);background:transparent;color:var(--text-2);cursor:pointer;transition:background var(--dur),color var(--dur)}.cat-inner{display:flex;flex-direction:column;align-items:center;gap:3px}.cat-label{font-size:var(--fs-xs);max-width:100%;overflow:hidden;text-overflow:ellipsis}.cat-btn:hover{background:var(--bg-hover);color:var(--text)}.cat-btn.active{background:var(--accent-soft);color:var(--text);box-shadow:inset 0 -2px 0 var(--accent)}.cat-btn.active .ui-icon{color:var(--accent)}.cat-btn.active.dim{background:transparent;box-shadow:none}.picker{flex:1;min-height:0;overflow-y:auto;padding:0 var(--sp-5) var(--sp-5)}.picker.closed{display:none}.picker-title{display:flex;align-items:center;justify-content:space-between;padding:var(--sp-4) 0 var(--sp-3)}.picker-collapse{color:var(--text-3)}.row-note{margin:calc(-1 * var(--sp-2)) 0 var(--sp-4);font-size:var(--fs-xs);color:var(--text-3)}.part-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(78px,1fr));gap:var(--sp-3);padding-bottom:var(--sp-4)}.part-card{display:flex;flex-direction:column;align-items:center;gap:var(--sp-2);padding:var(--sp-2) var(--sp-2) var(--sp-3);background:var(--bg-field);border:1px solid var(--border);border-radius:var(--r-md);color:var(--text-2);font-size:var(--fs-xs);cursor:pointer;min-width:0;transition:background var(--dur),border-color var(--dur)}.part-card:hover{background:var(--bg-hover);border-color:var(--border-strong);color:var(--text)}.part-card.active{background:var(--accent-soft);border-color:var(--accent);color:var(--text)}.part-pic,.part-card.none .none-mark{width:100%;aspect-ratio:1;border-radius:var(--r-sm);background:#2b2c33;overflow:hidden}.part-card.none .none-mark{width:100%;height:auto;border:none;display:grid;place-items:center;background:#2b2c33 linear-gradient(135deg,transparent calc(50% - 1px),var(--text-3) calc(50% - 1px) calc(50% + 1px),transparent calc(50% + 1px))}.part-pic img{display:block;width:100%;height:100%;image-rendering:pixelated;animation:part-in .2s ease-out}@keyframes part-in{0%{opacity:0}}.part-name{max-width:100%;overflow:hidden;text-overflow:ellipsis}.picker-row{padding:var(--sp-4) 0;border-top:1px solid var(--border)}.picker-title+.picker-row,.picker-title+.sub-tabs{border-top:none}.row-label{margin-bottom:var(--sp-3);font-size:var(--fs-xs);font-weight:var(--fw-medium);color:var(--text-2)}.opts{display:flex;flex-wrap:wrap;gap:var(--sp-2)}.sub-tabs{display:flex;margin-bottom:var(--sp-4)}.sub-tabs>button{flex:1}.opt{display:inline-flex;align-items:center;justify-content:center;min-height:var(--ctl-h);padding:var(--sp-2) var(--sp-4);background:var(--bg-field);border:1px solid var(--border);border-radius:var(--r-md);color:var(--text);font-size:var(--fs-sm);cursor:pointer;transition:background var(--dur),border-color var(--dur)}.opt:hover:not(:disabled){background:var(--bg-hover);border-color:var(--border-strong)}.opt.active{background:var(--accent-soft);border-color:var(--accent)}.opt:disabled{opacity:.4;cursor:default}.opts:not(.picker-row .opts) .opt{flex:1 1 auto}.opt.thumb{padding:3px;background:var(--bg-field)}.opt.thumb .px-icon{background:#e7d3c1;border-radius:var(--r-sm)}.opt.thumb.active{background:var(--accent-soft)}.opt.none{width:40px;height:40px}.none-mark{width:18px;height:18px;border:1.5px solid var(--text-3);border-radius:50%;background:linear-gradient(135deg,transparent calc(50% - 1px),var(--text-3) calc(50% - 1px) calc(50% + 1px),transparent calc(50% + 1px))}.face-thumb{display:flex!important;flex-direction:column;gap:3px;padding:4px!important;font-size:var(--fs-xs);color:var(--text-2)}.face-thumb.active{color:var(--text)}.tone{--c: #fff;width:26px;height:26px;border-radius:50%;border:1px solid rgba(255,255,255,.1);background:var(--c);padding:0;cursor:pointer}.tone:hover{box-shadow:0 0 0 1px var(--border-strong)}.tone.active{box-shadow:0 0 0 2px var(--bg-panel),0 0 0 4px var(--accent)}.slider-row{display:grid;grid-template-columns:110px 1fr;align-items:center;gap:var(--sp-4);padding:var(--sp-3) 0}.slider-row .row-label{margin:0}.slider-row+.slider-row{border-top:none}.talk-row{display:flex;gap:var(--sp-2)}.talk-row .px-input{flex:1}.opt.mini{flex:1;min-height:var(--ctl-h-sm);padding:0 var(--sp-2);font-size:var(--fs-xs)}.anim-bar{position:absolute;left:var(--sp-5);bottom:52px;display:flex;align-items:center;gap:var(--sp-4);padding:var(--sp-2) var(--sp-2) var(--sp-2) var(--sp-5);background:var(--bg-panel);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow-sm)}.anim-label{font-size:var(--fs-xs);font-weight:var(--fw-medium);color:var(--text-2)}.hint{position:absolute;left:50%;bottom:var(--sp-5);transform:translate(-50%);padding:var(--sp-2) var(--sp-4);border-radius:var(--r-pill);background:#141518b3;color:var(--text-2);font-size:var(--fs-xs);white-space:nowrap;pointer-events:none!important}body.ui-hidden #ui>*:not(.toast){display:none!important}@media(pointer:coarse){.opt{min-height:40px;min-width:40px}.swatch{height:34px}.px-range{height:32px}}@media(max-width:1100px){.topbar .with-icon .ui-label{display:none}}@media(max-width:820px),(max-height:620px){.app-logo{display:none}.topbar{left:180px;right:var(--sp-3);gap:var(--sp-3)}.bar-group{gap:var(--sp-2)}.bar-divider,.view-group,.hint,.tris{display:none!important}.lib-link{max-width:120px;padding:0 var(--sp-2)}.lib-link-mod{display:none}.color-panel{left:var(--sp-3);top:calc(var(--appbar-h) + var(--sp-3));width:132px}.swatches{grid-template-columns:repeat(3,1fr)}.cr-side{right:var(--sp-3);top:calc(var(--appbar-h) + var(--sp-3));bottom:var(--sp-3);width:min(330px,52vw)}.cat-label{display:none}.cat-btn{height:36px}.anim-bar{left:var(--sp-3);bottom:var(--sp-3)}.anim-label{display:none}.slider-row{grid-template-columns:90px 1fr}.debug-panel{display:none}.part-grid{grid-template-columns:repeat(auto-fill,minmax(64px,1fr))}}@media(max-width:520px){.lib-link-text{display:none}.lib-link{padding:0 var(--sp-2)}.color-panel{right:var(--sp-3);width:auto}.swatches{grid-template-columns:repeat(auto-fill,minmax(30px,1fr))}.cr-side{top:auto;left:var(--sp-3);width:auto;max-height:45vh}.anim-bar{bottom:calc(45vh + 16px)}}.debug-panel.off{display:none!important}.app-help{position:absolute;top:calc((var(--appbar-h) - 26px) / 2);right:var(--sp-4);z-index:13;pointer-events:auto;width:26px;height:26px;flex:none;border-radius:50%;border:1px solid var(--border-strong);background:var(--bg-panel-2);color:var(--text-2);font-weight:var(--fw-bold);font-size:var(--fs-sm);cursor:pointer}.app-help:hover{color:var(--text);border-color:var(--accent-line)}.mode-tab.loading{opacity:.7;cursor:progress}.mode-tab.loading:after{content:"…";margin-left:2px}.kbd-help{position:fixed;inset:0;z-index:90;display:none;align-items:center;justify-content:center;padding:16px;background:var(--bg-overlay);pointer-events:auto}.kbd-help.show{display:flex}.kbd-card{width:min(860px,100%);max-height:calc(100vh - 32px);overflow-y:auto;padding:var(--sp-6);background:var(--bg-panel-2);border:1px solid var(--border-strong);border-radius:var(--r-lg);box-shadow:var(--shadow-pop);color:var(--text)}.kbd-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--sp-5)}.kbd-title{font-size:var(--fs-lg);font-weight:var(--fw-bold)}.kbd-cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:var(--sp-5) var(--sp-7)}.kbd-sectitle{margin-bottom:var(--sp-2);color:var(--text-3);font-size:var(--fs-xs);font-weight:var(--fw-bold);text-transform:uppercase;letter-spacing:.5px}.kbd-row{display:grid;grid-template-columns:150px 1fr;gap:var(--sp-3);padding:3px 0;font-size:var(--fs-sm);line-height:1.35}.kbd-keys{color:var(--text-3)}.kbd-what{color:var(--text-2)}.kbd-help kbd{display:inline-block;min-width:18px;padding:0 5px;border:1px solid var(--border-strong);border-bottom-width:2px;border-radius:var(--r-sm);background:var(--bg-field);color:var(--text);font-family:var(--font-mono);font-size:var(--fs-xs);text-align:center}#ui .topbar,#ui .stage-bar{right:calc(var(--sp-4) + 34px)}
