:root{--bg: #0b0b0f;--panel: rgba(20, 20, 27, .85);--panel-2: #1c1c26;--line: #26262f;--text: #e9e9ee;--muted: #8a8a98;--accent: #7c5cff;--accent-2: #b18cff;--pink: #ff4d8b;--cyan: #4ad6ff;--radius: 12px;--inv-w: 320px;--prop-w: 320px}*{box-sizing:border-box}.gen-loader-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:9999;background:radial-gradient(circle at 70% 0%,rgba(124,92,255,.22),transparent 55%),radial-gradient(circle at 10% 100%,rgba(74,214,255,.16),transparent 60%),#08080d;overflow:hidden}.gen-loader-canvas{position:absolute;top:0;right:0;bottom:0;left:0;width:100vw;height:100vh;display:block}.gen-loader-scene{position:absolute;left:50%;top:clamp(40px,8vh,110px);transform:translate(-50%);width:min(720px,92vw);height:auto;pointer-events:none;filter:drop-shadow(0 20px 40px rgba(0,0,0,.6))}.gl-reel{transform-box:fill-box;transform-origin:center}.gl-reel-1{animation:gl-reel-spin 1.6s linear infinite}.gl-reel-2{animation:gl-reel-spin 1.6s linear infinite reverse}.gen-loader-overlay[data-stage=inference] .gl-reel-1,.gen-loader-overlay[data-stage=inference] .gl-reel-2{animation-duration:.7s}@keyframes gl-reel-spin{to{transform:rotate(360deg)}}.gl-clapper-arm{transform-box:fill-box;transform-origin:0 16px;animation:gl-clap 2.6s cubic-bezier(.4,1.8,.5,.9) infinite}@keyframes gl-clap{0%,38%{transform:rotate(-28deg)}44%{transform:rotate(2deg)}48%{transform:rotate(-3deg)}52%{transform:rotate(0)}85%{transform:rotate(0)}to{transform:rotate(-28deg)}}.gl-rec{transform-box:fill-box;transform-origin:center;animation:gl-rec-pulse 1s ease-in-out infinite alternate}@keyframes gl-rec-pulse{0%{opacity:.35;transform:scale(.85)}to{opacity:1;transform:scale(1.15);filter:drop-shadow(0 0 6px #ff4a5b)}}.gl-lens-glint{transform-box:fill-box;transform-origin:center;animation:gl-glint 3.4s ease-in-out infinite}@keyframes gl-glint{0%,to{transform:translate(0);opacity:.85}25%{transform:translate(2px,1px);opacity:.55}50%{transform:translate(-1px,2px);opacity:.9}75%{transform:translate(1px,-1px);opacity:.7}}.gl-spot-l{animation:gl-spot-breath-l 4s ease-in-out infinite}.gl-spot-r{animation:gl-spot-breath-r 4.6s ease-in-out infinite}@keyframes gl-spot-breath-l{0%,to{opacity:.85}50%{opacity:1}}@keyframes gl-spot-breath-r{0%,to{opacity:.75}50%{opacity:1}}.gl-fixture circle{animation:gl-bulb 1.8s ease-in-out infinite alternate}@keyframes gl-bulb{0%{opacity:.75;r:2.6}to{opacity:1;r:3.4}}.gl-cam-body{animation:gl-cam-bob 2.2s ease-in-out infinite}.gl-shadow{animation:gl-shadow-bob 2.2s ease-in-out infinite}@keyframes gl-cam-bob{0%,to{transform:translateY(0)}50%{transform:translateY(-1.5px)}}@keyframes gl-shadow-bob{0%,to{transform:scaleX(1);opacity:.45}50%{transform:scaleX(.95);opacity:.55}}.gl-chair{animation:gl-chair-rock 4.2s ease-in-out infinite;transform-origin:24px 86px}@keyframes gl-chair-rock{0%,to{transform:rotate(0)}50%{transform:rotate(-1.2deg)}}.gl-strip-perfs{animation:gl-strip-scroll 6s linear infinite}@keyframes gl-strip-scroll{0%{transform:translate(0)}to{transform:translate(-600px)}}.gen-loader--failed .gen-loader-scene{filter:grayscale(.7) brightness(.6) drop-shadow(0 20px 40px #000)}.gen-loader--failed .gl-reel-1,.gen-loader--failed .gl-reel-2,.gen-loader--failed .gl-clapper-arm,.gen-loader--failed .gl-strip-perfs,.gen-loader--failed .gl-rec{animation-play-state:paused}.gen-loader--darkroom{background:radial-gradient(circle at 78% 0%,rgba(255,180,216,.18),transparent 55%),radial-gradient(circle at 12% 100%,rgba(124,246,196,.12),transparent 60%),radial-gradient(circle at 50% 60%,rgba(255,217,134,.1),transparent 65%),#0e0a14}.gi-painting{transform-box:fill-box;transform-origin:left center;animation:gi-painting-reveal 4.2s ease-in-out infinite}@keyframes gi-painting-reveal{0%{transform:scaleX(0);opacity:0}25%{transform:scaleX(.6);opacity:.7}60%{transform:scaleX(1);opacity:1}85%{transform:scaleX(1);opacity:1}to{transform:scaleX(0);opacity:0}}.gen-loader-overlay[data-stage=inference] .gi-painting{animation-duration:2.4s}.gi-stroke{stroke-dasharray:320;stroke-dashoffset:320;animation:gi-stroke-draw 4.2s ease-in-out infinite}.gi-stroke-b{animation-delay:.6s}@keyframes gi-stroke-draw{0%,10%{stroke-dashoffset:320}55%{stroke-dashoffset:0}85%{stroke-dashoffset:0}to{stroke-dashoffset:320}}.gi-brush{transform-box:fill-box;transform-origin:center;animation:gi-brush-sweep 4.2s ease-in-out infinite}@keyframes gi-brush-sweep{0%{transform:translate(190px,160px) rotate(-6deg)}25%{transform:translate(270px,120px) rotate(-2deg)}50%{transform:translate(360px,165px) rotate(4deg)}75%{transform:translate(420px,140px) rotate(-1deg)}to{transform:translate(190px,160px) rotate(-6deg)}}.gen-loader-overlay[data-stage=inference] .gi-brush{animation-duration:2.4s}.gi-flash{transform-box:fill-box;transform-origin:center;animation:gi-flash-pulse 3.6s ease-in-out infinite;mix-blend-mode:screen}@keyframes gi-flash-pulse{0%,60%,to{opacity:0;transform:scale(.5)}68%{opacity:.85;transform:scale(1)}78%{opacity:0;transform:scale(1.25)}}.gi-well{animation:gi-well-cycle 6s linear infinite;transform-origin:center}.gi-well-2{animation-delay:-1s}.gi-well-3{animation-delay:-2s}.gi-well-4{animation-delay:-3s}.gi-well-5{animation-delay:-4s}.gi-well-6{animation-delay:-5s}@keyframes gi-well-cycle{0%,to{filter:hue-rotate(0deg) brightness(1);transform:scale(1)}50%{filter:hue-rotate(180deg) brightness(1.2);transform:scale(1.08)}}.gi-pencil{transform-box:fill-box;transform-origin:center bottom;animation:gi-pencil-bob 3s ease-in-out infinite}.gi-pencil-2{animation-delay:.4s}.gi-pencil-3{animation-delay:.8s}.gi-pencil-4{animation-delay:1.2s}@keyframes gi-pencil-bob{0%,to{transform:translateY(0)}50%{transform:translateY(-4px)}}.gi-drip{transform-box:fill-box;transform-origin:center;animation:gi-drip-fall 2.4s ease-in infinite}.gi-drip-2{animation-delay:.5s}.gi-drip-3{animation-delay:1s}.gi-drip-4{animation-delay:1.6s}@keyframes gi-drip-fall{0%{transform:translateY(0) scale(1);opacity:0}20%{opacity:1}80%{transform:translateY(64px) scale(.6);opacity:.5}to{transform:translateY(78px) scale(0);opacity:0}}.gi-easel{animation:gi-easel-wobble 5.2s ease-in-out infinite;transform-origin:300px 320px}@keyframes gi-easel-wobble{0%,to{transform:rotate(0)}50%{transform:rotate(-.6deg)}}.gen-loader--failed.gen-loader--darkroom .gen-loader-scene{filter:grayscale(.7) brightness(.55) drop-shadow(0 20px 40px #000)}.gen-loader--failed .gi-painting,.gen-loader--failed .gi-stroke,.gen-loader--failed .gi-brush,.gen-loader--failed .gi-flash,.gen-loader--failed .gi-well,.gen-loader--failed .gi-pencil,.gen-loader--failed .gi-drip,.gen-loader--failed .gi-easel{animation-play-state:paused}.gen-loader-vignette{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;background:radial-gradient(ellipse at center,transparent 40%,rgba(0,0,0,.55) 100%)}.gen-loader-content{position:relative;z-index:2;width:min(640px,92vw);margin:0 auto;padding-top:clamp(340px,54vh,520px);text-align:center;pointer-events:none}.gen-loader-badge{display:inline-block;padding:4px 12px;border:1px solid rgba(124,92,255,.45);background:#7c5cff1f;color:#c4b5fd;border-radius:9999px;font-size:11px;letter-spacing:1px;text-transform:uppercase;margin-bottom:18px}.gen-loader-title{font-size:30px;font-weight:600;margin:0 0 14px;letter-spacing:-.5px;background:linear-gradient(135deg,#fff,#c4b5fd 60%,#7c5cff);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}.gen-loader-stage{color:#4ad6ff;font-size:14px;margin-bottom:18px;text-shadow:0 0 12px rgba(74,214,255,.5);letter-spacing:.5px}.gen-loader-stage.failed{color:#ff6b8a;text-shadow:0 0 12px rgba(255,107,138,.45)}.gen-loader-bar{position:relative;width:320px;height:4px;margin:0 auto 24px;background:#ffffff0f;border-radius:9999px;overflow:hidden}.gen-loader-bar>span{position:absolute;top:0;left:0;bottom:0;width:0%;background:linear-gradient(90deg,#7c5cff,#4ad6ff);box-shadow:0 0 16px #7c5cff99;transition:width .8s cubic-bezier(.4,0,.2,1)}.gen-loader-eta{color:#ffffffb3;font-size:12.5px;line-height:1.6;margin-bottom:16px;font-variant-numeric:tabular-nums}.gen-loader-eta b{color:#c4b5fd;font-weight:600}.gen-loader-eta.overtime,.gen-loader-eta.overtime b{color:#ffb24a}.gen-loader-prompt{color:#ffffff8c;font-size:13px;line-height:1.6;max-width:560px;margin:0 auto 10px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.gen-loader-hint{color:#ffffff52;font-size:11px;margin-top:14px}.gen-loader-error{pointer-events:auto;-webkit-user-select:text;user-select:text;text-align:left;font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace;font-size:11.5px;line-height:1.55;color:#ffb4b4;background:#280c128c;border:1px solid rgba(255,107,138,.35);border-radius:8px;padding:10px 14px;margin:12px auto 0;max-width:min(720px,92vw);max-height:38vh;overflow:auto;white-space:pre-wrap;word-break:break-word;box-shadow:0 0 0 3px #ff6b8a14,inset 0 0 24px #ff4b5b0d}html,body{margin:0;padding:0;width:100%;height:100%;overflow:hidden;background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Microsoft YaHei,sans-serif}#viewer{position:fixed;top:0;right:0;bottom:0;left:0;width:100vw;height:100vh;background:radial-gradient(circle at 30% 30%,#1f1f2c,#0a0a10 70%)}#viewer canvas{display:block;width:100%;height:100%}.axis-gizmo-hit{position:absolute;top:12px;right:calc(var(--inv-w) + 12px);width:104px;height:104px;z-index:30;cursor:grab;border-radius:50%;transition:right .25s ease}.inventory.collapsed~#viewer .axis-gizmo-hit,body.inv-collapsed .axis-gizmo-hit{right:12px}.axis-gizmo-hit:active{cursor:grabbing}.hud{position:absolute;top:128px;right:calc(var(--inv-w) + 16px);display:flex;flex-direction:column;gap:6px;z-index:10;transition:right .25s ease}.status{left:calc(var(--prop-w) + 16px);transition:left .25s ease}body.prop-collapsed .status{left:16px}.inventory.collapsed~#viewer .hud,body.inv-collapsed .hud{right:16px}.hud button{width:38px;height:38px;background:var(--panel);border:1px solid var(--line);color:var(--text);border-radius:8px;cursor:pointer;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);font-size:14px}.hud button:hover,.hud button.active{border-color:var(--accent);color:var(--accent-2)}.status{position:absolute;left:16px;bottom:16px;font-size:12px;color:var(--muted);background:var(--panel);padding:4px 10px;border-radius:6px;pointer-events:none;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);z-index:10}.status:empty{display:none}.motion-hud{position:absolute;top:18px;left:50%;transform:translate(-50%);z-index:30;pointer-events:none;display:flex;align-items:center;gap:8px;font-size:13px;font-weight:600;color:#fff;background:linear-gradient(135deg,#7c5cfff2,#4ad6ffe6);padding:8px 16px;border-radius:999px;box-shadow:0 6px 24px #7c5cff66;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.motion-hud[hidden]{display:none}.motion-hud kbd{background:#00000047;border-radius:4px;padding:1px 6px;font-size:11px;font-family:ui-monospace,Menlo,monospace}.motion-hud-dot{width:9px;height:9px;border-radius:50%;background:#fff;box-shadow:0 0 #ffffffb3;animation:motionHudPulse 1.2s ease-out infinite}@keyframes motionHudPulse{0%{box-shadow:0 0 #ffffffb3}70%{box-shadow:0 0 0 8px #fff0}to{box-shadow:0 0 #fff0}}.drop-overlay{display:none}#viewer.drag-over{box-shadow:inset 0 0 0 2px var(--accent)}.drag-ghost{position:fixed;left:0;top:0;pointer-events:none;z-index:1000;display:flex;align-items:center;gap:10px;background:#14141bf2;border:1px solid var(--accent);border-radius:10px;padding:8px 12px;box-shadow:0 8px 32px #7c5cff59;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);will-change:transform}.drag-ghost .g-thumb{width:32px;height:32px;border-radius:6px;background:linear-gradient(135deg,#2a2a36,#14141b);border:1px solid var(--line);display:flex;align-items:center;justify-content:center;font-size:16px}.drag-ghost .g-thumb.mesh{color:var(--accent-2)}.drag-ghost .g-thumb.splat{color:var(--cyan)}.drag-ghost .g-name{font-size:12px;font-weight:500;max-width:180px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.drag-ghost .g-fmt{font-size:10px;color:var(--muted);letter-spacing:.5px}.error{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;color:#ff6b8a;font-family:monospace;padding:32px;text-align:center;z-index:20}.btn{border:1px solid transparent;background:transparent;color:var(--text);padding:7px 12px;border-radius:8px;font-size:13px;cursor:pointer;transition:all .15s;text-align:center;display:inline-flex;align-items:center;justify-content:center}.btn.ghost{color:var(--muted)}.btn.ghost:hover{color:var(--text);background:var(--panel-2)}.btn.outline{border-color:var(--line)}.btn.outline:hover{border-color:var(--accent);color:var(--accent-2)}.btn.primary{background:linear-gradient(135deg,var(--accent),var(--pink));color:#fff;font-weight:500}.btn.primary:hover{filter:brightness(1.1)}.btn:disabled{opacity:.5;cursor:not-allowed;filter:grayscale(.4)}.btn[hidden],[hidden]{display:none!important}:root{--font-scale: 1}body,button,input,select,textarea,label,a,p,span,div,li,td,th{font-size:calc(13px * var(--font-scale))}.menu-btn,.btn{font-size:calc(13px * var(--font-scale))!important}h1{font-size:calc(30px * var(--font-scale))!important}h2{font-size:calc(20px * var(--font-scale))!important}h3{font-size:calc(14px * var(--font-scale))!important}.hint,.muted,.small,.preview{font-size:calc(11.5px * var(--font-scale))!important}.brand-name{font-size:calc(14px * var(--font-scale))!important}.gen-loader-title{font-size:calc(30px * var(--font-scale))!important}.gen-loader-stage,.gen-loader-eta,.gen-loader-prompt,.gen-loader-hint{font-size:calc(13px * var(--font-scale))!important}.prop-section h3{font-size:calc(14px * var(--font-scale))!important}.cut-time{font-size:calc(13px * var(--font-scale))!important}.cut-seg-range,.cut-seg-dur,.test-output{font-size:calc(12px * var(--font-scale))!important}.gen-loader-error{font-size:calc(11.5px * var(--font-scale))!important}.font-scale-popover{position:fixed;z-index:10000;min-width:260px;background:#14141efa;border:1px solid var(--line);border-radius:10px;padding:14px;box-shadow:0 20px 50px #0009}.font-scale-title{font-weight:600;margin-bottom:8px;color:var(--text)}.font-scale-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-bottom:10px}.font-scale-grid button{padding:8px 4px;border:1px solid var(--line);background:#ffffff08;border-radius:6px;color:var(--text);cursor:pointer;font-family:inherit;line-height:1.3;text-align:center}.font-scale-grid button:hover{background:#7c5cff1f;border-color:#7c5cff73}.font-scale-grid button.active{background:#7c5cff38;border-color:#7c5cff99;color:#c4b5fd}.font-scale-grid .fs-pct{color:var(--muted);font-size:.85em}.font-scale-fine{border-top:1px solid var(--line);padding-top:10px;margin-bottom:8px}.font-scale-fine label{display:flex;align-items:center;gap:8px;font-size:calc(12px * var(--font-scale))}.font-scale-fine input[type=range]{flex:1}.font-scale-fine .fs-cur{font-variant-numeric:tabular-nums;min-width:50px;text-align:right;color:#c4b5fd}.font-scale-hint{margin:0;color:var(--muted)}.font-scale-btn .fs-cur{font-size:.85em;color:var(--muted);margin-left:4px;font-variant-numeric:tabular-nums}.magnifier-lens{position:fixed;z-index:99999;border-radius:18px;border:3px solid #7c5cff;box-shadow:0 0 0 1px #00000040,0 0 24px #7c5cff59,0 14px 32px #000000a6,inset 0 0 0 1px #ffffff14;overflow:hidden;pointer-events:none;isolation:isolate;background:var(--bg, #08080d)}.magnifier-inner{position:absolute;top:0;left:0;width:100vw;height:100vh;transform-origin:0 0;will-change:transform}.magnifier-inner [data-magnifier-btn],.magnifier-inner [data-font-scale-btn]{visibility:hidden!important;pointer-events:none!important}.magnifier-inner .magnifier-lens,.magnifier-inner .magnifier-popover,.magnifier-inner .gen-loader-overlay{display:none!important}html.magnifier-on,html.magnifier-on body{cursor:crosshair}.magnifier-btn.active{background:#7c5cff38!important;color:#c4b5fd!important}.magnifier-btn .mag-on{margin-left:6px;color:#c4b5fd;font-size:.85em}.magnifier-popover{position:fixed;z-index:100000;min-width:280px;background:#14141efa;border:1px solid var(--line);border-radius:10px;padding:14px;box-shadow:0 20px 50px #0009;color:var(--text)}.magnifier-title{font-weight:600;margin-bottom:10px}.magnifier-toggle{display:flex;align-items:center;gap:8px;margin-bottom:12px;font-size:calc(13px * var(--font-scale))}.magnifier-row{margin-bottom:10px}.magnifier-row label{display:flex;align-items:center;gap:8px;font-size:calc(12px * var(--font-scale))}.magnifier-row input[type=range]{flex:1}.magnifier-row span{min-width:56px;text-align:right;font-variant-numeric:tabular-nums;color:#c4b5fd}.magnifier-presets{display:flex;gap:6px;flex-wrap:wrap;margin:-4px 0 12px}.magnifier-presets button{padding:4px 10px;background:#ffffff08;color:var(--text);border:1px solid var(--line);border-radius:6px;cursor:pointer;font-family:inherit}.magnifier-presets button:hover{border-color:#7c5cff8c}.magnifier-presets button.active{background:#7c5cff38;border-color:#7c5cff99;color:#c4b5fd}.magnifier-actions{margin-bottom:8px}.magnifier-hint{margin:0;color:var(--muted);font-size:calc(11px * var(--font-scale));line-height:1.5}.project-title{margin-left:12px;padding:4px 10px;background:#ffffff0a;border:1px solid var(--line);border-radius:6px;color:var(--text);font-family:inherit;font-size:calc(13px * var(--font-scale));cursor:pointer;display:inline-flex;align-items:center;max-width:36ch}.project-title:hover{background:#7c5cff24;border-color:#7c5cff73}.proj-title-name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:30ch}.proj-title-dirty{color:#ffb24a;font-weight:700;margin-left:2px;animation:project-dirty-pulse 2s ease-in-out infinite}@keyframes project-dirty-pulse{0%,to{opacity:1}50%{opacity:.45}}.scene-tree{list-style:none;margin:6px 0 0;padding:0;background:#00000040;border:1px solid var(--line);border-radius:6px;max-height:50vh;overflow-y:auto;font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace;font-size:calc(11.5px * var(--font-scale))}.scene-tree-empty{padding:12px;text-align:center;font-size:calc(11px * var(--font-scale))}.scene-tree-row{display:flex;align-items:center;gap:6px;padding:5px 8px;cursor:pointer;border-bottom:1px solid rgba(255,255,255,.04)}.scene-tree-row:hover{background:#7c5cff1a}.scene-tree-row.active{background:#4ad6ff2e;box-shadow:inset 2px 0 #4ad6ff}.scene-tree-row.hidden-node .scene-tree-name,.scene-tree-row.hidden-node .scene-tree-kind{opacity:.4;text-decoration:line-through}.scene-tree-icon{width:14px;color:#c4b5fd;text-align:center}.scene-tree-name{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.scene-tree-kind{font-size:10px;color:var(--muted);padding:1px 6px;border:1px solid var(--line);border-radius:3px}.asset-tree-toolbar{display:flex;gap:6px;margin:4px 0 6px}.asset-tree-toolbar .btn{padding:4px 10px;font-size:12px}.asset-tree{list-style:none;margin:0;padding:0;background:#00000040;border:1px solid var(--line);border-radius:6px;max-height:32vh;overflow-y:auto;font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace;font-size:calc(11.5px * var(--font-scale))}.asset-tree-row{display:flex;align-items:center;gap:6px;padding:3px 6px;cursor:pointer;border-bottom:1px solid rgba(255,255,255,.04)}.asset-tree-row:hover{background:#7c5cff1a}.asset-tree-row.active{background:#4ad6ff2e;box-shadow:inset 2px 0 #4ad6ff}.asset-tree-row.hidden-node .asset-tree-name,.asset-tree-row.hidden-node .asset-tree-type{opacity:.4;text-decoration:line-through}.asset-tree-icon{width:12px;color:#c4b5fd;text-align:center}.asset-tree-name{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.asset-tree-type{font-size:10px;color:var(--muted)}.skel-actions{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0}.skel-actions .btn{padding:5px 10px;font-size:12px}.pose-preset-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-top:8px}.pose-cat{grid-column:1 / -1;font-size:11px;font-weight:700;color:var(--muted);letter-spacing:.04em;margin:6px 0 1px}.pose-btn{position:relative;display:flex;flex-direction:column;align-items:center;gap:3px;padding:8px 4px;border-radius:9px;background:var(--panel-2, #1c1c26);border:1px solid var(--line, #26262f);color:var(--text, #e9e9ee);cursor:pointer;transition:border-color .12s,background .12s,transform .08s}.pose-btn:hover{border-color:var(--accent, #7c5cff);background:#20202b}.pose-btn:active{transform:scale(.96)}.pose-emoji{font-size:20px;line-height:1}.pose-label{font-size:10.5px;text-align:center;line-height:1.15;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pose-custom{border-color:#c4b5fd59}.pose-del{position:absolute;top:2px;right:4px;font-size:12px;color:var(--muted);line-height:1;opacity:0;transition:opacity .12s}.pose-btn:hover .pose-del{opacity:1}.pose-del:hover{color:#ff4d6b}.skel-bone-current{font-size:11.5px;color:#c4b5fd;background:#7c5cff14;border:1px solid rgba(124,92,255,.3);border-radius:6px;padding:6px 10px;margin-bottom:6px}.skel-bone-list{width:100%;background:#00000059;border:1px solid var(--line);border-radius:6px;color:var(--text);font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace;font-size:11.5px;padding:4px 6px}.inventory{position:fixed;top:0;right:0;bottom:0;width:var(--inv-w);background:#0e0e1473;border-left:1px solid var(--line);backdrop-filter:blur(28px) saturate(1.6);-webkit-backdrop-filter:blur(28px) saturate(1.6);display:flex;flex-direction:column;z-index:30;transition:transform .25s ease}.inventory.collapsed{transform:translate(var(--inv-w))}.inventory-toggle{position:absolute;top:50%;left:-22px;transform:translateY(-50%);width:22px;height:56px;background:var(--panel);border:1px solid var(--line);border-right:none;border-radius:8px 0 0 8px;color:var(--muted);cursor:pointer;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.inventory-toggle:before{content:"›";font-size:16px;font-weight:600}.inventory:not(.collapsed) .inventory-toggle:before{content:"‹"}.inventory-toggle:hover{color:var(--text)}.inventory-head{padding:14px 14px 10px;border-bottom:1px solid var(--line)}.inventory-head h2{margin:0;font-size:15px;font-weight:600}.inventory-hint{margin:2px 0 10px;font-size:11px;color:var(--muted)}.inventory-actions{display:flex;gap:8px;padding:10px 14px}.inventory-actions .btn{flex:1;cursor:pointer}.inventory-tabs{display:flex;gap:4px;margin-top:10px;padding:3px;background:#ffffff0a;border:1px solid var(--line);border-radius:9999px}.inv-tab{flex:1;background:transparent;border:none;color:var(--muted);padding:6px 8px;border-radius:9999px;font-size:11px;font-family:inherit;cursor:pointer;transition:all .12s}.inv-tab:hover{color:var(--text)}.inv-tab.active{background:#7c5cff38;color:var(--accent-2);box-shadow:0 0 0 1px #7c5cff59}.inv-item.kind-video{cursor:pointer}.inv-item.kind-video:after{content:"▶";margin-left:auto;color:var(--accent-2);font-size:12px;opacity:.7}.inventory-list{list-style:none;padding:8px;margin:0;flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:6px}.inventory-list::-webkit-scrollbar{width:6px}.inventory-list::-webkit-scrollbar-thumb{background:var(--line);border-radius:3px}.inv-item{display:flex;align-items:center;gap:10px;padding:10px;background:var(--panel-2);border:1px solid var(--line);border-radius:10px;cursor:grab;-webkit-user-select:none;user-select:none;transition:border-color .15s,transform .1s}.inv-item:hover{border-color:var(--accent)}.inv-item:active{cursor:grabbing;transform:scale(.98)}.inv-item.dragging{opacity:.5}.inv-item.pending{cursor:wait}.inv-item.pending:after{content:"";margin-left:auto;width:14px;height:14px;border:2px solid var(--line);border-top-color:var(--accent-2);border-radius:50%;animation:spin .8s linear infinite}.inv-item.failed{border-color:#ff4d6b}@keyframes spin{to{transform:rotate(360deg)}}.inv-thumb{position:relative;width:48px;height:48px;border-radius:8px;background:linear-gradient(135deg,#2a2a36,#14141b);border:1px solid var(--line);display:flex;align-items:center;justify-content:center;font-size:18px;flex-shrink:0;overflow:hidden}.inv-thumb img{width:100%;height:100%;object-fit:cover;display:block}.inv-thumb .inv-thumb-fallback{display:block}.inv-item.inv-pending{cursor:default;border-color:#7c5cff8c;background:#7c5cff14}.inv-item.inv-pending:hover{border-color:#7c5cffbf;transform:none}.inv-pending .invp-spin{width:24px;height:24px;border-radius:50%;border:3px solid rgba(124,92,255,.25);border-top-color:#b18cff;animation:invpSpin .8s linear infinite}@keyframes invpSpin{to{transform:rotate(360deg)}}.inv-pending .inv-meta{flex:1;min-width:0}.inv-pending .inv-name{color:#d9ccff}.invp-bar{height:5px;border-radius:4px;margin:4px 0 3px;background:#7c5cff2e;overflow:hidden}.invp-bar>i{display:block;height:100%;width:0;background:linear-gradient(90deg,#7c5cff,#4ad6ff);transition:width .8s linear}.invp-eta{color:#b9a6ff!important;font-weight:600}.invp-elapsed{color:var(--muted)!important}.gen-progress{margin:10px 0 4px}.gen-progress[hidden]{display:none}.gen-progress-title{font-size:12px;font-weight:600;color:#cdbcff;margin-bottom:8px;line-height:1.5}#gen-progress-list{display:flex;flex-direction:column;gap:8px;max-height:240px;overflow-y:auto}.genp-box{padding:10px 12px;border-radius:10px;border:1px solid rgba(124,92,255,.45);background:linear-gradient(135deg,#7c5cff21,#4ad6ff12)}.genp-box-head{display:flex;align-items:center;gap:8px;font-size:13px}.genp-type{flex-shrink:0;font-weight:700;color:#eafaff;font-size:11px;padding:2px 8px;border-radius:10px;background:#4ad6ff33}.genp-prompt{flex:1;min-width:0;color:#d9d2f2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.gen-spinner{width:15px;height:15px;border-radius:50%;border:2.5px solid rgba(124,92,255,.3);border-top-color:#b18cff;animation:invpSpin .8s linear infinite;flex-shrink:0}.gen-progress-bar{height:6px;border-radius:5px;margin:8px 0 6px;background:#7c5cff2e;overflow:hidden}.gen-progress-bar>i{display:block;height:100%;width:0;background:linear-gradient(90deg,#7c5cff,#4ad6ff);transition:width .8s linear}.gen-progress-times{display:flex;justify-content:space-between;font-size:11px;font-weight:600;color:#c8bcff}.inv-group-hd{list-style:none;padding:11px 12px 4px;font-size:11px;font-weight:700;color:var(--text);letter-spacing:.04em;display:flex;align-items:center;gap:6px;position:sticky;top:0;z-index:3;background:var(--panel-2, #1c1c26)}.inv-group-hd+.inv-item,.inv-folder-hd+.inv-item{margin-top:2px}.inv-folder-hd{list-style:none;padding:6px 12px 3px 20px;font-size:11px;color:var(--muted);display:flex;align-items:center;gap:5px}.inv-group-n{margin-left:auto;font-size:10px;font-weight:500;color:var(--muted);background:#ffffff0f;border-radius:10px;padding:1px 7px}.inv-new-badge{position:absolute;top:2px;left:2px;z-index:2;background:#ff4757;color:#fff;font-size:8px;font-weight:800;letter-spacing:.5px;padding:1px 4px;border-radius:4px;line-height:1.25;animation:invNewPulse 1.4s ease-in-out infinite;pointer-events:none}@keyframes invNewPulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.6;transform:scale(1.1)}}.inv-thumb.mesh{color:var(--accent-2)}.inv-thumb.splat{color:var(--cyan)}.inv-meta{flex:1;min-width:0}.inv-name-row{display:flex;align-items:center;gap:4px;min-width:0}.inv-name{font-size:13px;font-weight:500;flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.inv-edit-btn{background:none;border:none;padding:2px 4px;color:var(--muted);cursor:pointer;font-size:11px;border-radius:4px;opacity:0;transition:opacity .12s,color .12s}.inv-item:hover .inv-edit-btn{opacity:1}.inv-edit-btn:hover{color:var(--accent-2);background:#7c5cff14}.inv-name-input{flex:1;min-width:0;background:var(--bg);border:1px solid var(--accent);color:var(--text);border-radius:4px;padding:2px 6px;font-size:13px;font-family:inherit;outline:none}.inv-vfs{display:inline-block;margin-top:3px;font-family:ui-monospace,Menlo,monospace;font-size:9.5px;letter-spacing:.5px;color:#c4b5fdb3;background:#7c5cff14;border:1px solid rgba(124,92,255,.2);border-radius:4px;padding:1px 5px}.inv-sub{font-size:11px;color:var(--muted);margin-top:2px}.inv-sub .badge{display:inline-block;padding:1px 6px;border-radius:4px;margin-right:4px;font-size:10px;letter-spacing:.5px;background:#7c5cff26;color:var(--accent-2)}.inv-sub .badge.splat{background:#4ad6ff26;color:var(--cyan)}.inv-sub .badge.gen{background:#ff4d8b26;color:var(--pink)}.inventory-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(84px,1fr));gap:14px 8px;align-content:start;align-items:start;min-width:0;min-height:0;overflow-y:auto}.inventory-list .inv-group-hd,.inventory-list .inv-folder-hd{grid-column:1 / -1}.inv-item{display:block;position:relative;padding:0;aspect-ratio:1 / 1;min-height:78px;border-radius:10px;overflow:hidden;background:transparent;border:1px solid var(--line)}.inv-item:hover{border-color:var(--accent);transform:none}.inv-item:active{transform:scale(.97)}.inv-thumb{width:100%;height:100%;border:none;border-radius:10px;background:transparent;font-size:26px}.inv-thumb img{object-fit:contain}.inv-meta{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;justify-content:flex-end;gap:3px;padding:7px 8px;margin:0;background:linear-gradient(to top,#0a0a0ef0,#0a0a0ebd 48%,#0a0a0e00);opacity:0;pointer-events:none;transition:opacity .13s}.inv-item:hover .inv-meta,.inv-item:focus-within .inv-meta{opacity:1;pointer-events:auto}.inv-meta .inv-name{white-space:normal;font-size:12px;line-height:1.25;max-height:3.2em;overflow:hidden}.inv-item .inv-edit-btn{opacity:1}.inv-item.inv-pending .inv-thumb{align-items:flex-start;padding-top:13px}.inv-item.inv-pending .invp-spin{width:22px;height:22px}.inv-item.inv-pending .inv-meta{opacity:1;pointer-events:none;justify-content:flex-end;gap:2px;padding:6px 6px 7px;background:linear-gradient(to top,#0a0a0ef5 42%,#0a0a0eb8 72%,#0a0a0e00)}.inv-item.inv-pending .inv-name{font-size:10px;line-height:1.2;max-height:2.4em;white-space:normal;overflow:hidden;color:#d9ccff}.inv-item.inv-pending .invp-eta{font-size:10px;margin:0}.inv-item.inv-pending .invp-elapsed{font-size:9px;margin:0}.inv-item.inv-pending .invp-bar{margin:2px 0}.inv-upload-tile{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;border:1.5px dashed rgba(255,255,255,.22);background:#ffffff05;color:var(--muted, #8a8a98);cursor:pointer;transition:border-color .14s,color .14s,background .14s}.inv-upload-tile:hover{border-color:var(--accent, #7c5cff);color:var(--accent-2, #c4b5fd);background:#7c5cff12}.inv-upload-plus{font-size:28px;line-height:1;font-weight:300}.inv-upload-label{font-size:11px;letter-spacing:.02em}.inv-empty-hint{grid-column:1 / -1;color:var(--muted);font-size:12px;line-height:1.5;padding:12px 4px;text-align:center}.inv-group-hd,.inv-folder-hd{cursor:pointer;-webkit-user-select:none;user-select:none}.inv-group-hd:hover,.inv-folder-hd:hover{color:var(--accent-2, #c4b5fd)}.inv-caret{display:inline-block;width:.9em;text-align:center;font-size:10px;color:var(--muted);margin-right:3px}.inv-copy-btn{background:none;border:none;padding:2px 4px;color:var(--muted);cursor:pointer;font-size:13px;border-radius:4px;opacity:1;transition:color .12s,background .12s}.inv-copy-btn:hover{color:var(--accent-2, #c4b5fd);background:#7c5cff1f}.inv-copy-btn:disabled{opacity:.5;cursor:wait}.eu-spin{width:16px;height:16px;flex:none;border:2px solid rgba(255,255,255,.25);border-top-color:var(--accent-2, #7c5cff);border-radius:50%;animation:spin .8s linear infinite}.inv-item.just-added{animation:invJustAdded 1s ease-in-out 6;position:relative;z-index:2}@keyframes invJustAdded{0%,to{box-shadow:0 0 #7c5cff00;border-color:var(--line);background:transparent}45%{box-shadow:0 0 0 5px #7c5cffa6,0 0 22px 5px #7c5cff8c;border-color:var(--accent-2, #b18cff);background:#7c5cff2e}}#asset-arrow{position:fixed;z-index:10000;display:none;align-items:center;gap:4px;transform:translate(-100%,-50%);pointer-events:none}#asset-arrow.show{display:flex}#asset-arrow .aa-bubble{background:linear-gradient(135deg,#7c5cff,#4ad6ff);color:#fff;padding:8px 13px;border-radius:12px;font-size:13px;font-weight:600;line-height:1.35;max-width:260px;white-space:normal;box-shadow:0 8px 24px #7c5cff80}#asset-arrow .aa-point{color:#b18cff;font-size:26px;font-weight:900;text-shadow:0 0 8px rgba(124,92,255,.85);animation:aaBob .8s ease-in-out infinite}@keyframes aaBob{0%,to{transform:translate(0)}50%{transform:translate(7px)}}.modal{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000008c;display:flex;align-items:center;justify-content:center;z-index:100;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.modal[hidden]{display:none!important}.modal-card{width:min(440px,92vw);background:#14141b;border:1px solid var(--line);border-radius:14px;padding:18px 20px;display:flex;flex-direction:column;gap:12px}.modal-card header{display:flex;align-items:center;justify-content:space-between;margin-bottom:4px}.modal-card h3{margin:0;font-size:15px;font-weight:600}.modal-close{background:transparent;border:none;color:var(--muted);font-size:24px;cursor:pointer;line-height:1}.modal-close:hover{color:var(--text)}.modal-card label{display:flex;flex-direction:column;gap:6px;font-size:12px;color:var(--muted)}.modal-card select,.modal-card textarea{background:var(--bg);border:1px solid var(--line);color:var(--text);padding:8px 10px;border-radius:8px;font-family:inherit;font-size:13px;resize:vertical}.modal-card select:focus,.modal-card textarea:focus{outline:none;border-color:var(--accent)}.modal-card footer{display:flex;gap:8px;justify-content:flex-end;margin-top:4px}.modal-hint{margin:0;font-size:11px;color:var(--muted);line-height:1.5;border-top:1px solid var(--line);padding-top:10px}.modal-hint code{background:var(--panel-2);padding:1px 5px;border-radius:4px;font-size:11px}.modal-hint.error{color:#ff8080}.gen-modal-card{min-width:360px}.gen-refs{display:flex;flex-direction:column;gap:8px}.gen-refs-head{display:flex;align-items:center;justify-content:space-between;font-size:12px;color:var(--muted)}.gen-refs-head .btn.small{padding:3px 9px;font-size:11px}.gen-ref-strip{display:flex;flex-wrap:wrap;gap:8px}.gen-ref-thumb{position:relative;width:56px;height:56px;border-radius:8px;overflow:hidden;border:1px solid var(--line);background:var(--panel-2)}.gen-ref-thumb img{width:100%;height:100%;object-fit:cover;display:block}.gen-ref-del{position:absolute;top:2px;right:2px;width:16px;height:16px;line-height:14px;text-align:center;border:none;border-radius:50%;cursor:pointer;background:#0009;color:#fff;font-size:12px}.gen-multiview{display:flex;flex-direction:column;gap:8px}.gen-mv-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.gen-mv-slot{display:flex;flex-direction:column;gap:5px;cursor:pointer}.gen-mv-cap{display:flex;align-items:baseline;gap:4px;font-size:11px;color:var(--text)}.gen-mv-en{font-size:9px;color:var(--muted);text-transform:uppercase}.gen-mv-req{margin-left:auto;font-size:9px;color:#ffb24a;border:1px solid rgba(255,178,74,.4);border-radius:4px;padding:0 4px}.gen-mv-thumb{position:relative;aspect-ratio:1/1;border-radius:8px;overflow:hidden;border:1px dashed var(--line);background:var(--panel-2);display:flex;align-items:center;justify-content:center}.gen-mv-slot.filled .gen-mv-thumb{border-style:solid;border-color:var(--accent)}.gen-mv-thumb img{width:100%;height:100%;object-fit:cover;display:block}.gen-mv-plus{font-size:22px;color:var(--muted);line-height:1}.gen-mv-del{position:absolute;top:2px;right:2px;width:16px;height:16px;line-height:14px;text-align:center;border:none;border-radius:50%;cursor:pointer;background:#0009;color:#fff;font-size:12px}body.editor-mode .hud{right:376px}.editor-panel{position:fixed;top:0;right:0;bottom:0;width:360px;background:var(--panel);border-left:1px solid var(--line);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);display:flex;flex-direction:column;gap:12px;padding:16px;overflow-y:auto;z-index:30}.editor-panel header{display:flex;align-items:center;gap:10px;padding-bottom:10px;border-bottom:1px solid var(--line)}.editor-panel header h2{margin:0;font-size:15px;font-weight:600}.back-link{font-size:12px;color:var(--muted)}.back-link:hover{color:var(--accent-2)}.editor-panel label{display:flex;flex-direction:column;gap:4px;font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.5px}.editor-panel input,.editor-panel textarea{background:var(--bg);border:1px solid var(--line);color:var(--text);padding:8px 10px;border-radius:8px;font-family:inherit;font-size:13px;text-transform:none;letter-spacing:0;resize:vertical}.editor-panel input:focus,.editor-panel textarea:focus{outline:none;border-color:var(--accent)}.editor-panel input[readonly],.editor-panel textarea[readonly]{color:var(--muted);cursor:text}.ed-meta{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.ed-meta>div{background:var(--panel-2);border:1px solid var(--line);border-radius:8px;padding:8px 10px;display:flex;flex-direction:column;gap:2px}.ed-meta b{font-size:13px;font-weight:500}.ed-meta .muted{font-size:10px}.ed-actions{display:flex;gap:8px}.ed-actions .btn{flex:1}.ed-hint{margin:8px 0 0;font-size:11px;color:var(--muted);line-height:1.5}.properties{position:fixed;top:40px;left:0;bottom:0;width:var(--prop-w);background:#0e0e1473;border-right:1px solid var(--line);backdrop-filter:blur(28px) saturate(1.6);-webkit-backdrop-filter:blur(28px) saturate(1.6);display:flex;flex-direction:column;z-index:30;transition:transform .25s ease;overflow:visible}.properties-scroll{flex:1;min-height:0;overflow-y:auto;overflow-x:hidden}.properties-scroll::-webkit-scrollbar{width:6px}.properties-scroll::-webkit-scrollbar-thumb{background:var(--line);border-radius:3px}.properties.collapsed{transform:translate(calc(var(--prop-w) * -1))}.properties-toggle{position:absolute;top:50%;right:-22px;transform:translateY(-50%);width:22px;height:56px;background:var(--panel);border:1px solid var(--line);border-left:none;border-radius:0 8px 8px 0;color:var(--muted);cursor:pointer;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.properties-toggle:before{content:"‹";font-size:16px;font-weight:600}.properties.collapsed .properties-toggle:before{content:"›"}.properties-toggle:hover{color:var(--text)}.prop-head{padding:14px 14px 10px;border-bottom:1px solid var(--line)}.prop-head h2{margin:0;font-size:15px;font-weight:600}.prop-hint{margin:2px 0 0;font-size:11px;color:var(--muted)}.prop-empty{flex:1;display:flex;align-items:center;justify-content:center;font-size:12px;color:var(--muted);text-align:center;padding:24px}.prop-empty[hidden]{display:none}.prop-content{flex:1;overflow-y:auto}.prop-content::-webkit-scrollbar,.lights-list::-webkit-scrollbar{width:6px}.prop-content::-webkit-scrollbar-thumb,.lights-list::-webkit-scrollbar-thumb{background:var(--line);border-radius:3px}.prop-section{padding:12px 14px;border-bottom:1px solid var(--line);display:flex;flex-direction:column;gap:8px}.prop-tabs{display:flex;gap:2px;padding:8px 10px 0;position:sticky;top:0;z-index:5;background:var(--panel, #14141c);border-bottom:1px solid var(--line)}.prop-tab{flex:1;background:transparent;border:none;color:var(--muted);font-size:12px;font-family:inherit;cursor:pointer;padding:8px 4px;border-radius:8px 8px 0 0;white-space:nowrap;border-bottom:2px solid transparent;transition:color .12s,border-color .12s}.prop-tab:hover{color:var(--text)}.prop-tab.active{color:var(--accent-2);border-bottom-color:var(--accent);font-weight:600}.prop-tabpane{display:none}.prop-tabpane.active{display:block}.prop-tabpane .prop-section:first-child{border-top:none}.btn-row{display:flex;gap:6px}.btn-row .btn{flex:1}.prop-hr{border:none;border-top:1px solid var(--line);margin:4px 0}.prop-asset-foot{padding:12px 14px;border-top:1px solid var(--line)}.prop-asset-foot .btn{width:100%}.prop-section h3{margin:0;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:1px;color:var(--muted);cursor:pointer;-webkit-user-select:none;user-select:none;display:flex;align-items:center;gap:6px;padding:2px 0;transition:color .15s}.prop-section h3:hover{color:var(--text)}.prop-section h3:after{content:"▾";font-size:9px;margin-left:auto;opacity:.5;transition:transform .2s}.prop-section.collapsed h3:after{transform:rotate(-90deg);opacity:1}.prop-section.collapsed>*:not(h3){display:none!important}.prop-section label{display:flex;flex-direction:column;gap:4px;font-size:11px;color:var(--muted)}.prop-section label.cb{flex-direction:row;align-items:center;gap:8px}.prop-advanced{margin-top:10px;border-top:1px solid var(--line);padding-top:8px}.prop-advanced>summary{cursor:pointer;list-style:none;font-size:11px;color:var(--muted);padding:3px 0;-webkit-user-select:none;user-select:none}.prop-advanced>summary::-webkit-details-marker{display:none}.prop-advanced>summary:before{content:"▸ ";display:inline-block;transition:transform .15s ease}.prop-advanced[open]>summary:before{content:"▾ "}.prop-advanced>summary:hover{color:var(--text)}.prop-advanced>*:not(summary){margin-top:8px}.prop-section input[type=number],.prop-section input[type=text],.prop-section select{background:var(--bg);border:1px solid var(--line);color:var(--text);padding:6px 8px;border-radius:6px;font-family:inherit;font-size:12px;width:100%}.prop-section input[type=color]{width:100%;height:28px;background:var(--bg);border:1px solid var(--line);border-radius:6px;cursor:pointer}.prop-section input[type=range]{width:100%;accent-color:var(--accent)}.prop-section input:focus{outline:none;border-color:var(--accent)}.mode-row{display:flex;gap:4px}.mode-btn{flex:1;background:var(--panel-2);border:1px solid var(--line);color:var(--muted);padding:6px;font-size:11px;border-radius:6px;cursor:pointer}.mode-btn.active{color:var(--accent-2);border-color:var(--accent);background:#7c5cff1a}.mode-btn:hover{color:var(--text)}.vec3{display:grid;grid-template-columns:repeat(3,1fr);gap:4px}.scale-row{display:grid;grid-template-columns:1fr 70px;gap:6px;align-items:center}.mat-empty{color:var(--muted);font-size:12px;padding:4px 0}.mat-fields{display:flex;flex-direction:column;gap:8px}.obj-name{font-size:13px;font-weight:500;background:var(--panel-2);border:1px solid var(--line);border-radius:6px;padding:6px 10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.btn.danger{color:#ff6b8a}.btn.danger:hover{border-color:#ff6b8a;color:#ff8aaa}.prop-lights{background:var(--panel);border-top:1px solid var(--line);border-bottom:none;max-height:40vh;overflow:hidden;display:flex;flex-direction:column}.prop-lights header{display:grid;grid-template-columns:1fr auto auto;gap:6px;align-items:center;padding-bottom:6px}.prop-lights header h3{margin-right:auto}.prop-lights header select{width:auto}.prop-lights header .btn{padding:5px 10px;font-size:11px}.lights-list{list-style:none;padding:0;margin:0;overflow-y:auto;display:flex;flex-direction:column;gap:6px;flex:1}.light-item{background:var(--panel-2);border:1px solid var(--line);border-radius:8px;padding:8px 10px;display:flex;flex-direction:column;gap:6px;font-size:12px;transition:border-color .15s,box-shadow .15s}.light-item.selected{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent),0 4px 16px #7c5cff33}.light-item .light-head{display:flex;align-items:center;gap:6px}.light-item .light-type{font-size:10px;padding:1px 6px;border-radius:4px;background:#7c5cff26;color:var(--accent-2);text-transform:uppercase;letter-spacing:.5px}.light-item .light-label{flex:1;font-weight:500}.light-item .del{background:none;border:none;color:var(--muted);cursor:pointer;font-size:14px}.light-item .del:hover{color:#ff6b8a}.light-item .light-row{display:grid;grid-template-columns:28px 1fr 60px;gap:6px;align-items:center}.light-item .light-row label{color:var(--muted);font-size:10px}.light-item input[type=color]{height:22px;padding:0;border-radius:4px}.light-item input[type=number],.light-item input[type=range]{padding:4px 6px;font-size:11px;height:24px}.light-pos{display:grid;grid-template-columns:repeat(3,1fr);gap:4px}.env-val{font-variant-numeric:tabular-nums;color:var(--text);text-align:right;font-size:10px}.prop-env header{display:flex;align-items:center;justify-content:space-between;padding-bottom:4px}.prop-env header h3{margin:0}.prop-env header .btn{padding:2px 8px;font-size:14px;line-height:1}.env-upload-label{display:inline-flex;align-items:center;justify-content:center;background:var(--panel-2);border:1px dashed var(--line);color:var(--muted);padding:8px 10px;border-radius:8px;font-size:12px;cursor:pointer;transition:all .15s;text-transform:none;letter-spacing:0}.env-upload-label:hover{border-color:var(--accent);color:var(--accent-2)}.cam-hint{position:absolute;top:56px;left:50%;transform:translate(-50%);z-index:12;background:#14141bd1;backdrop-filter:blur(14px) saturate(1.4);-webkit-backdrop-filter:blur(14px) saturate(1.4);border:1px solid rgba(124,92,255,.35);border-radius:10px;padding:10px 36px 10px 14px;display:flex;flex-direction:column;gap:6px;box-shadow:0 12px 28px #00000059,0 0 24px #7c5cff26;animation:cam-hint-in .25s ease-out}.cam-hint[hidden]{display:none}@keyframes cam-hint-in{0%{opacity:0;transform:translate(-50%,-8px)}to{opacity:1;transform:translate(-50%)}}.cam-hint-row{display:flex;align-items:center;gap:10px;font-size:12px}.cam-hint-label{color:var(--muted)}.kbd-cluster{display:inline-flex;gap:3px}.cam-hint kbd{display:inline-block;min-width:20px;padding:2px 6px;font-family:ui-monospace,Menlo,monospace;font-size:11px;font-weight:600;text-align:center;background:linear-gradient(180deg,#2a2a36,#1a1a22);color:var(--accent-2);border:1px solid rgba(124,92,255,.4);border-bottom-width:2px;border-radius:5px;box-shadow:0 1px #ffffff0a inset}.cam-hint-close{position:absolute;top:4px;right:6px;background:none;border:none;color:#ffffff59;font-size:16px;cursor:pointer;padding:2px 6px;border-radius:4px}.cam-hint-close:hover{color:var(--text);background:#ffffff0f}.film-dock{position:absolute;left:50%;bottom:22px;transform:translate(-50%);width:min(720px,86vw);z-index:14;background:#14141b8c;backdrop-filter:blur(22px) saturate(1.6);-webkit-backdrop-filter:blur(22px) saturate(1.6);border:1px solid rgba(124,92,255,.25);border-radius:16px;padding:12px 14px;display:flex;flex-direction:column;gap:8px;box-shadow:0 20px 50px #00000080,0 0 30px #7c5cff1f;transition:width .35s cubic-bezier(.4,0,.2,1),height .35s cubic-bezier(.4,0,.2,1),padding .25s ease,border-radius .25s ease,background .25s ease,border-color .25s ease}.film-dock-title{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:11px;letter-spacing:1.5px;text-transform:uppercase;color:var(--accent-2);cursor:pointer;padding:4px;border-radius:6px;-webkit-user-select:none;user-select:none;transition:background .12s,color .12s}.film-dock-title:hover{background:#7c5cff1f;color:#fff}.film-dock-title>span:first-child{opacity:.9}.film-dock-collapse-hint{font-size:11px;letter-spacing:1px;color:var(--muted);background:#ffffff0f;padding:3px 10px;border-radius:9999px;border:1px solid var(--line);transition:all .12s}.film-dock-title:hover .film-dock-collapse-hint{color:var(--accent-2);border-color:#7c5cff80;background:#7c5cff26}.film-dock-content{display:flex;flex-direction:column;gap:8px}.film-dock-pill{display:none;position:relative;width:56px;height:56px;border-radius:50%;border:1.5px solid rgba(124,92,255,.55);background:#0f0f16d1;cursor:pointer;align-items:center;justify-content:center;padding:0;font-size:24px;box-shadow:0 8px 22px #0000008c,0 0 24px #7c5cff40;transition:transform .15s,border-color .15s,box-shadow .25s}.film-dock-pill:hover{transform:scale(1.08);border-color:var(--accent);box-shadow:0 10px 26px #0009,0 0 32px #7c5cff73}.film-dock-cam{line-height:1;filter:drop-shadow(0 0 4px rgba(124,92,255,.5))}.film-dock-led{position:absolute;top:8px;right:8px;width:8px;height:8px;border-radius:50%;background:#ff4d6b;animation:film-dock-breathe 1.6s ease-in-out infinite}@keyframes film-dock-breathe{0%,to{opacity:.35;transform:scale(.85);box-shadow:0 0 #ff4d6b00}50%{opacity:1;transform:scale(1.15);box-shadow:0 0 12px 4px #ff4d6b8c}}.film-dock.collapsed{width:56px;padding:0;border-radius:50%;background:transparent;border-color:transparent;box-shadow:none;backdrop-filter:none;-webkit-backdrop-filter:none}.film-dock.collapsed .film-dock-content{display:none}.film-dock.collapsed .film-dock-pill{display:inline-flex}.film-dock.recording .film-dock-pill{border-color:#ff4d6b;box-shadow:0 0 #ff4d6b99,0 10px 26px #0000008c;animation:film-dock-rec-ring 1.1s ease-in-out infinite}.film-dock.recording .film-dock-led{animation-duration:.7s;background:#ff2d4d}@keyframes film-dock-rec-ring{0%,to{box-shadow:0 0 #ff4d6b8c,0 10px 26px #0000008c}50%{box-shadow:0 0 0 10px #ff4d6b00,0 10px 26px #0000008c}}.film-prompt{width:100%;background:#ffffff08;border:1px solid rgba(255,255,255,.08);color:var(--text);font-family:inherit;font-size:13px;line-height:1.55;border-radius:10px;padding:10px 12px;outline:none;resize:vertical;min-height:44px;max-height:180px}.film-prompt::placeholder{color:#b4b4c873}.film-prompt:focus{border-color:var(--accent)}.film-slots{display:flex;gap:8px}.film-slot{position:relative;width:54px;height:54px;background:transparent;border:1px dashed rgba(255,255,255,.2);border-radius:10px;overflow:hidden;transition:border-color .12s,background .12s,transform .12s}.film-slot.film-slot-multi{width:auto;min-width:54px;flex:1}.film-slot:hover{transform:translateY(-1px)}.film-slot.drag-over{border-style:solid;transform:translateY(-1px)}.tone-video{background:#4ad6ff1f;border-color:#4ad6ff73}.tone-video.drag-over{border-color:#4ad6ff;background:#4ad6ff40}.tone-image{background:#7c5cff1f;border-color:#7c5cff73}.tone-image.drag-over{border-color:#7c5cff;background:#7c5cff40}.tone-audio{background:#ffb24a1f;border-color:#ffb24a73}.tone-audio.drag-over{border-color:#ffb24a;background:#ffb24a40}.film-slot-empty{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:18px}.film-slot-icon{line-height:1;opacity:.9}.film-slot-plus{position:absolute;bottom:2px;right:4px;font-size:12px;line-height:1;font-weight:600;color:#ffffffa6}.tone-video .film-slot-plus{color:#4ad6ff}.tone-image .film-slot-plus{color:#c4b5fd}.tone-audio .film-slot-plus{color:#ffb24a}.film-slot-filled{position:absolute;top:0;right:0;bottom:0;left:0}.film-slot-thumb{width:100%;height:100%;object-fit:cover;background:#000;display:block}.film-slot[data-slot=audio] .film-slot-filled audio.film-slot-thumb{position:absolute;left:4px;right:4px;top:50%;height:26px;width:auto;transform:translateY(-50%);background:transparent}.film-slot-clear{position:absolute;top:2px;right:2px;background:#000000a6;border:none;color:#fff;cursor:pointer;width:18px;height:18px;border-radius:50%;font-size:12px;line-height:1;display:inline-flex;align-items:center;justify-content:center;opacity:0;transition:opacity .12s}.film-slot:hover .film-slot-clear{opacity:1}.film-slot-clear:hover{color:#ff6b8a;background:#000000e6}.film-slot-multi .film-slot-thumbs{display:flex;flex-wrap:wrap;gap:4px;padding:4px;align-items:center;min-height:54px}.film-slot-mini{position:relative;width:44px;height:44px;border-radius:6px;overflow:hidden;background:#000;border:1px solid rgba(255,255,255,.08);flex-shrink:0}.film-slot-mini img{width:100%;height:100%;object-fit:cover;display:block}.film-slot-mini-del{position:absolute;top:2px;right:2px;background:#000000a6;border:none;color:#fff;width:16px;height:16px;border-radius:50%;font-size:10px;line-height:1;cursor:pointer;opacity:0;transition:opacity .12s}.film-slot-mini:hover .film-slot-mini-del{opacity:1}.film-slot-mini.film-slot-add{display:inline-flex;align-items:center;justify-content:center;background:#7c5cff1a;border:1px dashed rgba(124,92,255,.4);color:#c4b5fd;font-size:18px;cursor:pointer;transition:all .12s}.film-slot-mini.film-slot-add:hover{background:#7c5cff33;border-color:var(--accent);color:#fff}.film-slot[data-slot=audio] .film-slot-filled audio.film-slot-thumb{width:auto;height:32px;flex:1;min-width:0;background:transparent}.film-param-section{margin-top:4px;background:#ffffff08;border-radius:8px}.film-param-section>summary{cursor:pointer;font-size:11px;color:var(--muted);padding:5px 10px;list-style:none;-webkit-user-select:none;user-select:none}.film-param-section>summary:before{content:"▸ ";display:inline-block;transition:transform .15s}.film-param-section[open]>summary:before{transform:rotate(90deg)}.film-param-section[open]>summary{color:var(--accent-2)}.film-param-section .film-param-row{padding:4px 10px 8px}.film-params:empty{display:none}.film-param-row{display:flex;flex-wrap:wrap;gap:8px 12px;padding:2px}.film-param{display:flex;flex-direction:column;gap:3px;font-size:11px;color:var(--muted)}.fp-label{letter-spacing:.3px;display:inline-flex;gap:4px}.fp-unit{color:#c4b5fd99}.film-param select,.film-param input[type=number],.film-param input[type=text]{background:#0000004d;border:1px solid rgba(255,255,255,.1);color:var(--text);border-radius:6px;padding:4px 8px;font-family:inherit;font-size:12px;outline:none;min-width:90px}.film-param select:focus,.film-param input:focus{border-color:var(--accent)}.fp-switch{position:relative;width:36px;height:20px;cursor:pointer}.fp-switch input{position:absolute;opacity:0;top:0;right:0;bottom:0;left:0;cursor:pointer}.fp-switch-track{position:absolute;top:0;right:0;bottom:0;left:0;background:#ffffff1f;border-radius:9999px;transition:background .15s}.fp-switch-thumb{position:absolute;top:2px;left:2px;width:16px;height:16px;background:#fff;border-radius:50%;transition:transform .15s,background .15s}.fp-switch input:checked+.fp-switch-track{background:#7c5cff8c}.fp-switch input:checked+.fp-switch-track .fp-switch-thumb{transform:translate(16px);background:#fff}.film-param-advanced{margin-top:4px;background:#ffffff08;border-radius:8px}.film-param-advanced>summary{cursor:pointer;font-size:11px;color:var(--muted);padding:4px 8px;list-style:none;-webkit-user-select:none;user-select:none}.film-param-advanced>summary:before{content:"▸ ";display:inline-block;transition:transform .15s}.film-param-advanced[open]>summary:before{transform:rotate(90deg)}.film-param-advanced[open]>summary{color:var(--accent-2)}.film-param-advanced .film-param-row{padding:4px 8px 8px}.film-dock-row{display:flex;align-items:center;gap:8px}.film-dock-row-compact{flex-wrap:wrap;gap:6px}.film-dock-row-compact .film-slots{gap:6px;flex:0 0 auto}.film-dock-row-compact .film-slot{width:44px;height:44px}.film-dock-row-compact .film-slot.film-slot-multi{min-width:44px;max-width:200px}.film-dock-row-compact .film-model{height:32px;font-size:12px}.film-params-floating{display:flex;gap:6px;flex-wrap:wrap}.film-params-floating .film-param-section{margin:0;position:relative}.film-params-floating .film-param-section>summary{padding:4px 10px;background:#ffffff0a;border:1px solid var(--line);border-radius:9999px;font-size:11px}.film-params-floating .film-param-section[open]>summary{background:#7c5cff2e;border-color:#7c5cff80;color:#fff}.film-params-floating .film-param-section[open]>.film-param-row{position:absolute;bottom:calc(100% + 6px);left:0;min-width:320px;max-width:520px;background:#14141bf5;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border:1px solid rgba(124,92,255,.35);border-radius:10px;padding:10px;z-index:2;box-shadow:0 18px 40px #0000008c}.film-slot.drag-target{border-style:solid;transform:scale(1.06);box-shadow:0 0 0 2px #7c5cff80}.film-model{background:#00000059;border:1px solid var(--line);color:var(--text);border-radius:8px;padding:6px 10px;font-size:12px;height:32px;min-width:160px;font-family:inherit;outline:none}.film-model:focus{border-color:var(--accent)}.film-dock-row .btn{height:32px;padding:0 14px;font-size:12px;border-radius:9999px}.film-dock-row .btn.recording{background:#ff4d6b40;border-color:#ff4d6b;color:#fff;animation:vfilm-pulse 1s infinite}@keyframes vfilm-pulse{0%,to{box-shadow:0 0 #ff4d6b80}50%{box-shadow:0 0 0 8px #ff4d6b00}}#vfilm-modal.modal-back{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000a6;display:flex;align-items:center;justify-content:center;z-index:200;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}#vfilm-modal.modal-back[hidden]{display:none}#vfilm-modal .modal{background:#14141bf5;border:1px solid var(--line);border-radius:16px;padding:22px 24px;width:min(900px,94vw);display:flex;flex-direction:column;gap:14px;box-shadow:0 30px 80px #000000a6}#vfilm-modal .modal-head{display:flex;gap:12px;align-items:center;border-bottom:1px solid var(--line);padding-bottom:10px}#vfilm-modal .modal-head h3{margin:0;font-size:16px;flex:1}.vfilm-body{display:grid;grid-template-columns:1.4fr 1fr;gap:18px}@media (max-width: 760px){.vfilm-body{grid-template-columns:1fr}}.vfilm-video{width:100%;background:#000;border-radius:12px;aspect-ratio:16 / 9;box-shadow:0 12px 32px #00000080}.vfilm-meta{display:flex;flex-direction:column;gap:6px}.vfilm-meta .kv-row{display:flex;align-items:center;gap:10px;font-size:12px;padding:4px 0;border-bottom:1px dashed var(--line)}.vfilm-meta .kv-row>span:first-child{width:60px;color:var(--muted);font-size:10px;text-transform:uppercase;letter-spacing:.5px}.vfilm-meta .kv-row input{flex:1;background:var(--panel-2);border:1px solid var(--line);color:var(--text);border-radius:6px;padding:5px 8px;font-family:inherit;font-size:12px;outline:none}.vfilm-meta .kv-row input:focus{border-color:var(--accent)}.vfilm-meta .kv-row code{font-family:ui-monospace,Menlo,monospace;font-size:11px;color:#c4b5fd}#vfilm-modal .modal-actions{display:flex;gap:8px;align-items:center;border-top:1px solid var(--line);padding-top:10px}#vfilm-modal .row-btn{padding:7px 14px;border-radius:8px;border:1px solid var(--line);background:var(--panel-2);color:var(--text);cursor:pointer;font-size:12px;font-family:inherit}#vfilm-modal .row-btn:hover{border-color:var(--accent);color:var(--accent-2)}#vfilm-modal .row-btn.danger:hover{color:#ff6b8a;border-color:#ff6b8a}.env-progress{margin:6px 0 4px;display:flex;flex-direction:column;gap:4px}.env-progress[hidden]{display:none}.env-progress-row{display:flex;justify-content:space-between;align-items:baseline;font-size:11px;color:var(--muted);font-variant-numeric:tabular-nums}.env-progress-pct{color:var(--accent-2);font-weight:600}.env-progress-bar{position:relative;height:4px;border-radius:9999px;background:#ffffff0f;overflow:hidden}.env-progress-bar>span{position:absolute;top:0;left:0;bottom:0;width:0%;background:linear-gradient(90deg,#7c5cff,#4ad6ff);box-shadow:0 0 8px #7c5cff80;transition:width .25s ease}.env-progress.indeterminate>.env-progress-bar>span{background:linear-gradient(90deg,transparent 0%,#7c5cff 30%,#4ad6ff 70%,transparent 100%);background-size:50% 100%;background-repeat:no-repeat;animation:env-shimmer 1.2s linear infinite}@keyframes env-shimmer{0%{background-position:-50% 0}to{background-position:150% 0}}.popup-section-title{font-size:10px;text-transform:uppercase;letter-spacing:1px;color:var(--muted);margin-top:6px;padding-bottom:4px;border-bottom:1px solid var(--line)}.ground-presets{display:grid;grid-template-columns:repeat(4,1fr);gap:4px}.ground-presets .preset-btn{aspect-ratio:1;background:var(--panel-2);border:1px solid var(--line);border-radius:6px;color:var(--text);cursor:pointer;font-size:18px;display:flex;align-items:center;justify-content:center;transition:all .15s;padding:0}.ground-presets .preset-btn:hover{border-color:var(--accent)}.ground-presets .preset-btn.active{border-color:var(--accent);background:#7c5cff26;box-shadow:0 0 0 1px var(--accent)}.cam-mode-row{display:flex;gap:4px}.cam-fps-hint{margin:0;font-size:10px;color:var(--muted);background:var(--panel-2);border:1px solid var(--line);border-radius:6px;padding:6px 8px;line-height:1.5}.cam-traj-head{display:flex;align-items:center;gap:6px;border-top:1px solid var(--line);padding-top:8px}.cam-traj-head h4{margin:0;flex:1;font-size:11px;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:1px}.cam-traj-head .btn{padding:3px 8px;font-size:11px}.waypoint-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:4px;max-height:180px;overflow-y:auto}.waypoint-list:empty:before{content:"暂无关键点 — 调整相机后点 ＋ 记录";display:block;padding:8px;font-size:11px;color:var(--muted);text-align:center}.wp-item{display:grid;grid-template-columns:22px 1fr auto auto;gap:6px;align-items:center;background:var(--panel-2);border:1px solid var(--line);border-radius:6px;padding:5px 8px;font-size:11px}.wp-item .wp-idx{color:var(--muted);font-variant-numeric:tabular-nums}.wp-item .wp-pos{color:var(--text);font-family:ui-monospace,Menlo,monospace;font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.wp-item button{background:none;border:none;color:var(--muted);cursor:pointer;padding:2px 4px;font-size:12px}.wp-item button:hover{color:var(--text)}.wp-item .wp-del:hover{color:#ff6b8a}.wp-item.selected{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent),0 4px 12px #7c5cff33}.wp-item{cursor:pointer;transition:border-color .15s,box-shadow .15s}.cam-traj-actions{display:flex;gap:6px;align-items:center;margin-top:4px}.cam-traj-actions .btn{flex:1}.cam-traj-actions label.cb{font-size:11px;flex:0 0 auto}.mp-list{display:flex;flex-direction:column;gap:10px;margin-top:10px}.mp-card{background:var(--panel-2);border:1px solid var(--line);border-radius:10px;padding:10px 12px;display:flex;flex-direction:column;gap:8px}.mp-card.planting{border-color:#ffb24a;box-shadow:0 0 0 1px #ffb24a4d}.mp-card.disabled{opacity:.55}.mp-card.disabled .mp-card-head input.mp-name,.mp-card.disabled .mp-card-actions,.mp-card.disabled .mp-card-row,.mp-card.disabled .mp-kp-list{opacity:.85}.mp-enable-wrap{position:relative;display:inline-block;width:14px;height:14px;flex-shrink:0;cursor:pointer}.mp-enable-wrap input{position:absolute;opacity:0;top:0;right:0;bottom:0;left:0;cursor:pointer}.mp-enable-dot{position:absolute;top:0;right:0;bottom:0;left:0;border:1.5px solid var(--line);border-radius:50%;transition:all .15s}.mp-enable-wrap:hover .mp-enable-dot{border-color:var(--accent-2)}.mp-enable-wrap input:checked+.mp-enable-dot{background:radial-gradient(circle,#10b981 35%,transparent 38%);border-color:#10b981;box-shadow:0 0 6px #10b98166}.mp-card-head{display:flex;gap:6px;align-items:center}.mp-card-head input[type=text]{flex:1;background:var(--bg);border:1px solid var(--line);color:var(--text);border-radius:6px;padding:5px 8px;font-size:12px;font-family:inherit;outline:none}.mp-card-head input[type=text]:focus{border-color:var(--accent)}.mp-card-row{display:grid;grid-template-columns:auto 1fr;gap:6px;align-items:center;font-size:11px;color:var(--muted)}.mp-card-row select,.mp-card-row input[type=number]{background:var(--bg);border:1px solid var(--line);color:var(--text);border-radius:6px;padding:4px 6px;font-size:11px;outline:none;font-family:inherit}.mp-card-actions{display:flex;gap:6px;align-items:center;flex-wrap:wrap}.mp-card-actions .btn{flex:1;font-size:11px;padding:5px 8px}.mp-card-actions label.cb{font-size:11px;color:var(--muted);flex:0 0 auto}.mp-plant-btn{background:#ffb24a1f;border-color:#ffb24a59;color:#ffb24a}.mp-plant-btn.active{background:#ffb24a40;border-color:#ffb24a;color:#fff;box-shadow:0 0 12px #ffb24a66}.mp-kp-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:3px;max-height:120px;overflow-y:auto}.mp-kp-list:empty:before{content:"还没有关键点 — 点 [+ 埋点] 后在场景中点击物体表面";display:block;padding:8px;font-size:11px;color:var(--muted);text-align:center;font-style:italic}.mp-kp-item{display:grid;grid-template-columns:24px 1fr auto;align-items:center;gap:6px;padding:3px 8px;background:var(--bg);border:1px solid var(--line);border-radius:6px;font-size:11px}.mp-kp-item .idx{color:var(--muted);font-variant-numeric:tabular-nums}.mp-kp-item .pos{color:var(--text);font-family:ui-monospace,Menlo,monospace;font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mp-kp-item .del{background:none;border:none;color:var(--muted);cursor:pointer;font-size:14px;padding:0 4px}.mp-kp-item .del:hover{color:#ff6b8a}.mp-kp-item{cursor:pointer;transition:border-color .12s,box-shadow .12s}.mp-kp-item:hover{border-color:#ffb24a66}.mp-kp-item.selected{border-color:#ffb24a;box-shadow:0 0 0 1px #ffb24a4d;background:#ffb24a0f}.mp-del-btn{background:none;border:none;color:var(--muted);cursor:pointer;padding:4px 8px}.mp-del-btn:hover{color:#ff6b8a}.cam-record-row{display:grid;grid-template-columns:1fr auto auto;gap:6px;align-items:center;margin-top:4px}.cam-record-row select{background:var(--bg);border:1px solid var(--line);color:var(--text);padding:4px 6px;border-radius:6px;font-size:11px;height:28px}#cam-record.recording{background:linear-gradient(135deg,#ff4d6b,#ff8a4d);border-color:#ff4d6b;color:#fff;animation:rec-pulse 1.4s ease-in-out infinite}@keyframes rec-pulse{0%,to{box-shadow:0 0 #ff4d6b80}50%{box-shadow:0 0 0 10px #ff4d6b00}}.menubar{position:fixed;top:0;left:0;right:auto;width:max-content;max-width:calc(100% - 16px);height:40px;z-index:50;display:flex;align-items:center;gap:2px;background:#0e0e14eb;border:1px solid var(--line);border-top:none;border-left:none;border-radius:0 0 10px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);padding:0 8px;font-size:13px}.menubar .brand{display:flex;align-items:center;gap:8px;padding:0 12px 0 4px;margin-right:8px;border-right:1px solid var(--line);height:24px}.menubar .brand .logo{color:var(--accent);font-size:16px}.menubar .brand .brand-name{font-weight:600;font-size:13px}.menu-btn.brand-btn{display:flex;align-items:center;gap:5px;padding:0 9px}.menu-btn.brand-btn .logo{color:var(--accent);font-size:16px}.menu-btn.brand-btn .caret{font-size:10px;color:var(--muted)}.project-title .proj-title-suffix{color:var(--muted);font-weight:500}.menu-btn{background:transparent;border:1px solid transparent;color:var(--text);padding:5px 12px;border-radius:6px;cursor:pointer;font-size:13px;height:28px;display:inline-flex;align-items:center;gap:4px}.menu-btn:hover{background:#7c5cff1f}.menu-btn.active,.menu-toggle.active{background:#7c5cff33;color:var(--accent-2)}.menu-btn .caret{font-size:9px;opacity:.6}.menu-btn:disabled{opacity:.32;cursor:default;pointer-events:none}.menu-btn.menu-save{border-color:#7c5cff47;background:#7c5cff14}.menu-btn.menu-save:hover{background:#7c5cff33}.menu-kbd{font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace;font-size:10px;line-height:1;color:var(--muted);border:1px solid rgba(255,255,255,.16);border-radius:4px;background:#00000040;white-space:nowrap;overflow:hidden;max-width:0;opacity:0;padding:2px 0;margin-left:0;border-width:0;transition:max-width .18s ease,opacity .18s ease,padding .18s ease,margin .18s ease}.menu-btn.menu-save:hover .menu-kbd{max-width:64px;opacity:1;padding:2px 5px;margin-left:4px;border-width:1px}.dd-check{display:flex;align-items:center;gap:8px}.dd-check input{accent-color:var(--accent)}.mouse-hint{position:fixed;z-index:9000;pointer-events:none;display:flex;align-items:center;gap:12px;padding:10px 12px;background:#12121857;border:1px solid rgba(255,255,255,.16);border-radius:12px;backdrop-filter:blur(9px);-webkit-backdrop-filter:blur(9px);box-shadow:0 8px 30px #00000052;color:#f0f0f8f2;font-size:11.5px;line-height:1.3;text-shadow:0 1px 2px rgba(0,0,0,.5);opacity:0;transform:scale(.92) translateY(4px);transition:opacity .16s ease,transform .16s ease}.mouse-hint.visible{opacity:1;transform:scale(1) translateY(0)}.mh-mouse{position:relative;flex:none;width:44px;height:68px;border:1.5px solid rgba(255,255,255,.55);border-radius:22px/30px;background:#ffffff0d}.mh-part{position:absolute;transition:background .12s ease,box-shadow .12s ease}.mh-left,.mh-right{top:0;height:42%;width:50%}.mh-left{left:0;border-top-left-radius:21px}.mh-right{right:0;border-top-right-radius:21px}.mh-divider{position:absolute;top:2px;left:50%;width:1.5px;height:40%;transform:translate(-50%);background:#fff6}.mh-wheel{top:12px;left:50%;transform:translate(-50%);width:6px;height:15px;border-radius:3px;background:#ffffff80}.mh-part.active{background:#7c5cff99;box-shadow:0 0 12px #7c5cff8c}.mh-wheel.active{background:#c4b5fd;box-shadow:0 0 10px #c4b5fdcc}.mh-labels{display:flex;flex-direction:column;gap:3px}.mh-row{display:flex;align-items:center;gap:7px;padding:2px 4px;border-radius:6px;opacity:.55;transition:opacity .13s ease,background .13s ease}.mh-row.active{opacity:1;background:#7c5cff38}.mh-key{min-width:30px;font-weight:600;color:#c4b5fd}.mh-desc{color:#f0f0f8e0;white-space:nowrap}.mh-close{position:absolute;top:-8px;right:-8px;width:20px;height:20px;padding:0;display:flex;align-items:center;justify-content:center;border:1px solid rgba(255,255,255,.28);border-radius:50%;background:#1c1c24f2;color:#f0f0f8e6;font-size:14px;line-height:1;cursor:pointer;pointer-events:auto;opacity:0;transform:scale(.6);transition:opacity .1s ease,transform .1s ease,background .12s ease}.mouse-hint.hovering .mh-close{opacity:1;transform:scale(1)}.mh-close:hover{background:#ff4d6b;border-color:#ff4d6b;color:#fff}.sel-actions{position:absolute;z-index:30;transform:translate(-50%);display:flex;gap:3px;padding:3px;background:#1212188c;border:1px solid rgba(255,255,255,.14);border-radius:10px;backdrop-filter:blur(9px);-webkit-backdrop-filter:blur(9px);box-shadow:0 6px 22px #0006;opacity:0;pointer-events:none;transition:opacity .18s ease}.sel-actions.visible{opacity:1;pointer-events:auto}.sa-btn{display:flex;flex-direction:column;align-items:center;gap:1px;width:42px;padding:5px 0 4px;background:transparent;border:1px solid transparent;border-radius:7px;color:#f0f0f8e6;cursor:pointer;transition:background .12s ease,color .12s ease,border-color .12s ease}.sa-btn:hover{background:#7c5cff29}.sa-btn.active{background:#7c5cff47;border-color:#7c5cff8c;color:#d9ccff}.sa-btn svg{display:block}.sa-key{font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace;font-size:9.5px;line-height:1;color:var(--muted);padding:1px 4px;border:1px solid rgba(255,255,255,.16);border-radius:3px}.sa-btn.active .sa-key{color:#d9ccff;border-color:#7c5cff80}.viewer-loading-label{position:absolute;z-index:20;transform:translate(-50%,-150%);display:flex;align-items:center;gap:8px;padding:6px 13px;background:#12121a8c;border:1px solid rgba(124,92,255,.38);border-radius:20px;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);box-shadow:0 4px 18px #00000059,0 0 0 3px #7c5cff14;color:#eeeef8eb;font-size:12.5px;font-weight:500;letter-spacing:.3px;white-space:nowrap;pointer-events:none;animation:vll-fade .2s ease-out}@keyframes vll-fade{0%{opacity:0}to{opacity:1}}.vll-spinner{width:14px;height:14px;flex:none;border-radius:50%;border:2px solid rgba(124,92,255,.25);border-top-color:#a78bfa;animation:vll-spin .7s linear infinite}@keyframes vll-spin{to{transform:rotate(360deg)}}.vll-text{text-shadow:0 1px 2px rgba(0,0,0,.5)}.vll-dots{animation:vll-blink 1.2s steps(4,end) infinite}@keyframes vll-blink{0%,20%{opacity:.25}55%{opacity:1}to{opacity:.25}}#vfilm-render-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:10000;display:flex;align-items:center;justify-content:center;background:#080a109e;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}#vfilm-render-overlay .vro-card{display:flex;flex-direction:column;align-items:center;gap:14px;padding:30px 40px;background:#141620eb;border:1px solid rgba(124,92,255,.35);border-radius:16px;box-shadow:0 16px 60px #00000080;text-align:center;max-width:80vw}#vfilm-render-overlay .vro-spinner{width:44px;height:44px;border-radius:50%;border:3px solid rgba(124,92,255,.25);border-top-color:var(--accent-2, #7c5cff);animation:vro-spin .9s linear infinite}@keyframes vro-spin{to{transform:rotate(360deg)}}#vfilm-render-overlay .vro-title{font-size:16px;font-weight:600;color:#fff}#vfilm-render-overlay .vro-stage{font-size:13px;color:var(--accent-2, #b9a6ff);min-height:18px}#vfilm-render-overlay .vro-hint{font-size:12px;color:#dcdceb99}#vfilm-render-overlay .vro-bg{margin-top:4px;font-size:12px;cursor:pointer;background:#7c5cff2e;color:#d8ccff;border:1px solid rgba(124,92,255,.45);border-radius:14px;padding:5px 14px}#vfilm-render-overlay .vro-bg:hover{background:#7c5cff4d}#vfilm-progress{position:fixed;left:50%;bottom:92px;transform:translate(-50%);z-index:9998;display:flex;align-items:center;gap:10px;padding:8px 16px;border-radius:22px;background:#141620eb;border:1px solid rgba(255,90,90,.45);box-shadow:0 6px 24px #0006;font-size:12px;color:#fff}#vfilm-progress .vfp-label{white-space:nowrap}#vfilm-progress .vfp-track{width:220px;height:6px;border-radius:3px;background:#ffffff24;overflow:hidden}#vfilm-progress .vfp-fill{display:block;height:100%;width:0%;background:linear-gradient(90deg,#ff5a5a,#ff9a5a);transition:width .12s linear}#vfilm-progress .vfp-pct{white-space:nowrap;opacity:.85;min-width:34px;text-align:right}.dropdown-host{position:relative}.dropdown{position:absolute;top:100%;left:0;margin-top:6px;min-width:240px;background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:6px;box-shadow:0 12px 32px #00000080;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);z-index:60;display:flex;flex-direction:column;gap:2px}.dropdown[hidden]{display:none}.dd-row{display:flex;align-items:center;gap:6px;padding:4px 8px}.dd-lbl{font-size:11px;color:var(--muted);min-width:36px}.dd-row select,.dd-row input[type=text]{flex:1;background:var(--bg);border:1px solid var(--line);color:var(--text);padding:5px 8px;border-radius:6px;font-size:12px;height:28px}.dd-row select:focus,.dd-row input[type=text]:focus{outline:none;border-color:var(--accent)}.dd-divider{border:none;border-top:1px solid var(--line);margin:4px 0}.dd-item{display:block;width:100%;text-align:left;background:transparent;border:none;color:var(--text);padding:7px 12px;border-radius:6px;font-size:13px;cursor:pointer;font-family:inherit}.dd-item:hover{background:#7c5cff26}.dd-acc{display:flex;align-items:center;gap:6px;padding:4px 12px 6px}.dd-acc-label{color:var(--muted);font-size:12px;margin-right:2px}.dd-acc .menu-btn{padding:3px 8px;height:26px;border:1px solid rgba(255,255,255,.1);border-radius:7px}.dd-item:disabled{opacity:.38;cursor:default}.dd-item:disabled:hover{background:transparent}.dd-kbd{float:right;color:var(--muted);font-size:11px;letter-spacing:.3px}.dd-item.danger{color:#ff8aaa}.dd-item.danger:hover{background:#ff4d6b1f}.dd-upload{cursor:pointer}.popup{position:fixed;background:#14141bed;border:1px solid var(--line);border-radius:12px;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);z-index:35;box-shadow:0 12px 40px #00000073;max-height:calc(100vh - 80px);overflow:hidden;display:flex;flex-direction:column}.popup[hidden]{display:none}.popup-head{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;border-bottom:1px solid var(--line);cursor:move;-webkit-user-select:none;user-select:none;touch-action:none}.popup-head:hover{background:#7c5cff0f}.popup.dragging{border-color:var(--accent);box-shadow:0 18px 48px #7c5cff59}.popup-head h3{margin:0;font-size:13px;font-weight:600}.popup-close{background:transparent;border:none;color:var(--muted);font-size:18px;cursor:pointer;line-height:1;padding:0 4px}.popup-close:hover{color:var(--text)}.popup-body{padding:12px;overflow-y:auto;display:flex;flex-direction:column;gap:10px;font-size:12px}.popup-body label{display:flex;flex-direction:column;gap:4px;font-size:11px;color:var(--muted)}.popup-body label.cb{flex-direction:row;align-items:center;gap:6px}.popup-body select,.popup-body input[type=text],.popup-body input[type=number]{background:var(--bg);border:1px solid var(--line);color:var(--text);padding:6px 8px;border-radius:6px;font-size:12px;font-family:inherit}.popup-body input[type=range]{width:100%;accent-color:var(--accent)}.popup-body input:focus,.popup-body select:focus{outline:none;border-color:var(--accent)}.popup-row{display:flex;gap:6px;align-items:center}.popup-row select{flex:1}.popup-hint{margin:0;font-size:10px;color:var(--muted);line-height:1.5}.gen-loader--typewriter{background:radial-gradient(circle at 78% 0%,rgba(255,217,134,.12),transparent 55%),radial-gradient(circle at 12% 100%,rgba(124,92,255,.1),transparent 60%),#0c0a14}.gt-lamp-pool{animation:gt-pool-breath 4.2s ease-in-out infinite}@keyframes gt-pool-breath{0%,to{opacity:.85}50%{opacity:1}}.gt-bulb{animation:gt-bulb-flicker 3.4s ease-in-out infinite}@keyframes gt-bulb-flicker{0%,to{opacity:.95;r:6}47%{opacity:1;r:6.6}49%{opacity:.55;r:5.6}51%{opacity:.98;r:6.4}}.gt-line{animation:gt-type 14s linear infinite;transform-origin:left center}.gt-line-1{animation-delay:0s}.gt-line-2{animation-delay:1.7s}.gt-line-3{animation-delay:3.4s}.gt-line-4{animation-delay:5.1s}.gt-line-5{animation-delay:6.8s}.gt-line-6{animation-delay:8.5s}.gt-line-7{animation-delay:10.2s}.gt-line-8{animation-delay:11.9s}@keyframes gt-type{0%{width:0;opacity:0}4%{opacity:1}18%{width:165px;opacity:1}92%,to{width:165px;opacity:1}}.gen-loader-overlay[data-stage=inference] .gt-line,.gen-loader-overlay[data-stage=script_drafting] .gt-line,.gen-loader-overlay[data-stage=scenes_drafting] .gt-line{animation-duration:8s}.gt-caret{animation:gt-caret-blink .9s steps(2,end) infinite}@keyframes gt-caret-blink{0%,to{opacity:1}50%{opacity:0}}.gt-typebar{transform-box:fill-box;transform-origin:300px 200px;animation:gt-key-strike .42s ease-out infinite}@keyframes gt-key-strike{0%,to{transform:rotate(0);opacity:.85}30%{transform:rotate(-14deg);opacity:1}60%{transform:rotate(2deg);opacity:.9}}.gen-loader-overlay[data-stage=inference] .gt-typebar,.gen-loader-overlay[data-stage=script_drafting] .gt-typebar{animation-duration:.24s}.gt-spool{transform-box:fill-box;transform-origin:center;animation:gl-reel-spin 2.4s linear infinite}.gt-spool-r{animation-direction:reverse}.gt-bell{animation:gt-bell-ring 3.6s ease-in-out infinite}@keyframes gt-bell-ring{0%,88%,to{opacity:.4;transform:scale(1)}90%{opacity:1;transform:scale(1.4)}94%{opacity:.7;transform:scale(1.1)}}.gt-page{transform-box:fill-box;transform-origin:300px 246px;animation:gt-page-feed 4s ease-in-out infinite}@keyframes gt-page-feed{0%,to{transform:translateY(0)}50%{transform:translateY(-3px)}}.gt-steam{animation:gt-steam-rise 2.2s ease-in-out infinite}.gt-steam-2{animation-delay:.4s}@keyframes gt-steam-rise{0%{transform:translateY(0) scale(1);opacity:0}25%{opacity:.7}75%{opacity:.55}to{transform:translateY(-14px) scale(1.15);opacity:0}}.gt-stack-4{animation:gt-stack-settle 5s ease-in-out infinite}@keyframes gt-stack-settle{0%,to{transform:translateY(0) rotate(0)}50%{transform:translateY(-1px) rotate(-1.2deg)}}.gen-loader--failed.gen-loader--typewriter .gen-loader-scene{filter:grayscale(.7) brightness(.55) drop-shadow(0 20px 40px #000)}.gen-loader--failed .gt-line,.gen-loader--failed .gt-caret,.gen-loader--failed .gt-typebar,.gen-loader--failed .gt-spool,.gen-loader--failed .gt-bell,.gen-loader--failed .gt-page,.gen-loader--failed .gt-steam,.gen-loader--failed .gt-bulb,.gen-loader--failed .gt-lamp-pool{animation-play-state:paused}.cam-console{position:absolute;left:50%;transform:translate(-50%);bottom:14px;width:min(74%,900px);z-index:30}.cam-console-tab{display:none;margin:0 auto;padding:0;width:48px;height:48px;border-radius:50%;align-items:center;justify-content:center;font-size:23px;color:#fff;cursor:pointer;background:#12121a99;backdrop-filter:blur(20px) saturate(1.4);-webkit-backdrop-filter:blur(20px) saturate(1.4);border:1px solid rgba(255,255,255,.14);box-shadow:0 8px 26px #00000073}.cam-console-tab:hover{background:#282838b3}.cam-console.collapsed .cam-console-tab{display:flex}.cam-console.collapsed .cam-console-body{display:none}.cam-console-body{padding:10px 14px 12px;border-radius:14px;background:#12121a99;backdrop-filter:blur(22px) saturate(1.5);-webkit-backdrop-filter:blur(22px) saturate(1.5);border:1px solid rgba(255,255,255,.14);box-shadow:0 12px 34px #00000080}.cc-row{display:flex;align-items:center;gap:10px;margin-bottom:9px}.cc-btn{width:30px;height:30px;border-radius:8px;cursor:pointer;flex:none;display:flex;align-items:center;justify-content:center;font-size:13px;color:#fff;background:#ffffff1a;border:1px solid rgba(255,255,255,.16)}.cc-btn:hover{background:#ffffff38}.cc-time{font-size:12px;color:#cfcfe0;font-variant-numeric:tabular-nums;min-width:100px}.cc-loop{font-size:11px;color:#cfcfe0;display:flex;align-items:center;gap:4px;cursor:pointer}.cc-hint{font-size:10px;color:#9a9ab0}.cc-collapse{width:26px;height:26px;font-size:12px}.cc-timeline{padding:16px 2px 2px}.cc-track{position:relative;height:14px;border-radius:7px;cursor:pointer;background:#ffffff1f}.cc-progress{position:absolute;left:0;top:0;bottom:0;width:0;border-radius:7px;background:linear-gradient(90deg,#7c5cff,#b18cff);pointer-events:none}.cc-playhead{position:absolute;top:50%;left:0;transform:translate(-50%,-50%);width:16px;height:16px;border-radius:50%;background:#fff;border:3px solid #7c5cff;cursor:grab;box-shadow:0 2px 8px #00000080}.cc-playhead:active{cursor:grabbing}.cc-wp-markers{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;overflow:visible}.cc-wp-mark{position:absolute;top:50%;transform:translate(-50%,-50%);width:2px;height:20px;border-radius:1px;background:#ffd166;box-shadow:0 0 0 1px #00000059;transition:height .1s,width .1s,background .1s,box-shadow .1s}.cc-wp-mark.mp{background:#86d957;height:7px;box-shadow:none}.cc-wp-num{position:absolute;bottom:100%;left:50%;transform:translate(-50%);margin-bottom:1px;font-size:9px;font-style:normal;font-weight:700;line-height:1;color:#ffd166;text-shadow:0 0 2px rgba(0,0,0,.85);pointer-events:none;white-space:nowrap}.cc-wp-mark.snap{background:#4ad6ff;width:3px;height:26px;box-shadow:0 0 8px 2px #4ad6ffbf}.cc-tracks{margin-top:9px;display:flex;flex-direction:column;gap:3px;max-height:124px;overflow-y:auto}.cc-track-row{display:flex;align-items:center;gap:8px;padding:3px 6px;border-radius:7px;cursor:pointer}.cc-track-row:hover{background:#ffffff0f}.cc-track-row.active{background:#7c5cff38}.cc-track-name{font-size:11px;color:#cfcfe0;min-width:120px;max-width:170px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cc-track-bar{flex:1;height:8px;border-radius:4px;background:#ffffff14;position:relative;overflow:hidden}.cc-track-span{position:absolute;top:0;bottom:0;border-radius:4px;background:#b18cffa6}.cc-track-row.active .cc-track-span{background:#b18cff}.prop-subsection{padding:8px 0 0;margin-top:4px;border-bottom:none;border-top:1px dashed var(--line)}.prop-subsection>h3{font-size:12px;font-weight:600;opacity:.8}
