:root{--shell: #1b1a1d;--shell-sunk: #131214;--shell-raised: #26242a;--shell-hover: #302d35;--edge: #35323a;--edge-soft: #2a272e;--ember: #ff9e2c;--ember-deep: #c2621a;--ember-wash: rgba(255, 158, 44, .14);--ink: #e7e3e0;--ink-dim: #948d8a;--ink-faint: #6a6469;--axis-x: #c94050;--axis-y: #7ba832;--axis-z: #4074c9;--ui: system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--mono: ui-monospace, "SF Mono", "JetBrains Mono", "Cascadia Mono", Menlo, monospace;--row: 22px;--radius: 3px}*{box-sizing:border-box}html,body{margin:0;height:100%;overflow:hidden;background:var(--shell-sunk);color:var(--ink);font-family:var(--ui);font-size:12px;line-height:1.45;-webkit-font-smoothing:antialiased}#app{display:grid;grid-template-rows:34px 2px auto auto 1fr auto 24px;height:100vh;height:100dvh;overflow:hidden}#app>*{min-width:0}#app>.header{grid-row:1}#app>.heat-bar{grid-row:2}#app>.recovery-bar{grid-row:3}#app>.update-bar{grid-row:4}#app>.workspace{grid-row:5}#app>.timeline{grid-row:6}#app>.status-bar{grid-row:7}.mono{font-family:var(--mono);font-variant-numeric:tabular-nums}.dim{color:var(--ink-dim)}.small{font-size:11px}button{font:inherit;color:inherit;background:none;border:none;cursor:pointer}button:disabled{opacity:.35;cursor:default}:focus-visible{outline:1px solid var(--ember);outline-offset:-1px}.icon{display:inline-flex;width:14px;height:14px;flex:0 0 auto}.icon svg{width:100%;height:100%}.header{display:flex;align-items:stretch;gap:4px;background:var(--shell);border-bottom:1px solid var(--edge);padding-left:10px;user-select:none}.wordmark{display:flex;align-items:center;font-weight:700;font-size:13px;letter-spacing:.22em;padding-right:12px;margin-right:4px;border-right:1px solid var(--edge)}.wordmark-accent{color:var(--ember)}.menu-bar{display:flex;align-items:stretch;min-width:0;overflow:hidden}.menu{position:relative;display:flex}.menu-label{padding:0 10px;color:var(--ink-dim);letter-spacing:.01em}.menu-label:hover,.menu.open .menu-label{color:var(--ink);background:var(--shell-raised)}.menu-items{display:none;position:absolute;top:100%;left:0;z-index:40;min-width:234px;padding:4px;background:var(--shell-raised);border:1px solid var(--edge);box-shadow:0 18px 34px #0000008c}.menu.open .menu-items{display:block}.menu-item{display:flex;justify-content:space-between;align-items:center;gap:20px;width:100%;padding:4px 8px;text-align:left;border-radius:var(--radius)}.menu-item:hover:not(.disabled){background:var(--ember-wash);color:var(--ember)}.menu-item.disabled{color:var(--ink-faint)}.menu-item kbd,.shortcut-row kbd{font-family:var(--mono);font-size:10px;color:var(--ink-faint);background:var(--shell-sunk);border:1px solid var(--edge);border-radius:2px;padding:0 4px;white-space:nowrap}.menu-sep{height:1px;margin:4px 6px;background:var(--edge)}.menu-empty{padding:6px 8px;color:var(--ink-faint)}.header-right{display:flex;align-items:center;gap:8px;margin-left:auto;padding-right:10px;flex:0 0 auto}.mode-switch{display:flex;align-items:stretch;height:22px;border:1px solid var(--edge);border-radius:var(--radius);background:var(--shell-raised);overflow:hidden;letter-spacing:.02em}.mode-opt{padding:0 10px;color:var(--ink-dim);background:transparent;border-right:1px solid var(--edge);font-size:11px}.mode-opt:last-child{border-right:none}.mode-opt:hover{color:var(--ink);background:var(--shell-hover)}.mode-opt.active{color:var(--ember);background:var(--ember-wash);box-shadow:inset 0 -2px 0 var(--ember)}.mode-opt.unavailable{color:var(--ink-faint, var(--ink-dim));opacity:.45}.mode-opt.unavailable:hover{opacity:.7;background:transparent}.mode-switch.edit,.mode-switch.sculpt{border-color:var(--ember-deep)}.seg-group{display:flex;border:1px solid var(--edge);border-radius:var(--radius);overflow:hidden}.seg{display:grid;place-items:center;width:26px;height:22px;color:var(--ink-dim);background:var(--shell-raised);border-right:1px solid var(--edge)}.seg:last-child{border-right:none}.seg:hover{color:var(--ink);background:var(--shell-hover)}.seg.active{color:var(--ember);background:var(--ember-wash)}.heat-bar{background:var(--edge-soft);position:relative;overflow:hidden}.heat-bar.live{background:linear-gradient(90deg,var(--ember-deep),var(--ember),var(--ember-deep));background-size:220% 100%;animation:heat-sweep 1.1s linear infinite;box-shadow:0 0 10px #ff9e2c8c}@keyframes heat-sweep{0%{background-position:0% 0}to{background-position:220% 0}}@media (prefers-reduced-motion: reduce){.heat-bar.live{animation:none;background:var(--ember)}}.workspace{display:grid;grid-template-columns:46px 1fr 306px;min-height:0}.toolbar{display:flex;flex-direction:column;gap:2px;padding:4px;background:var(--shell);border-right:1px solid var(--edge)}.tool-btn{position:relative;display:grid;place-items:center;height:34px;color:var(--ink-dim);background:var(--shell-raised);border:1px solid transparent;border-radius:var(--radius)}.tool-btn:hover{color:var(--ember);border-color:var(--ember-deep);background:var(--ember-wash)}.tool-key{position:absolute;right:2px;bottom:0;font-family:var(--mono);font-size:8px;color:var(--ink-faint)}.viewport{position:relative;min-width:0;min-height:0;background:#0f0e10}.viewport-canvas{display:block;width:100%;height:100%;outline:none}.knife-line{display:none;position:absolute;inset:0;width:100%;height:100%;pointer-events:none;overflow:visible}.knife-line polyline{fill:none;stroke:var(--ember);stroke-width:1.5;stroke-dasharray:5 3}.knife-line circle{fill:var(--ember);stroke:var(--shell-sunk);stroke-width:1}.box-select{display:none;position:absolute;border:1px dashed var(--ember);background:var(--ember-wash);pointer-events:none}.viewport-hint{position:absolute;left:50%;top:78px;transform:translate(-50%) translateY(-6px);padding:3px 10px;font-family:var(--mono);font-size:11px;color:var(--ember);background:#131214eb;border:1px solid var(--ember-deep);border-radius:var(--radius);opacity:0;transition:opacity .12s ease,transform .12s ease;pointer-events:none;white-space:nowrap}.viewport-hint.visible{opacity:1;transform:translate(-50%) translateY(0)}.sidebar{display:flex;flex-direction:column;min-height:0;background:var(--shell);border-left:1px solid var(--edge)}.panel{display:flex;flex-direction:column;min-height:0}.outliner{flex:0 0 34%;border-bottom:1px solid var(--edge)}.properties{flex:1 1 auto}.panel-title{display:flex;justify-content:space-between;align-items:center;height:24px;padding:0 10px;font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-faint);background:var(--shell-sunk);border-bottom:1px solid var(--edge)}.panel-count{font-family:var(--mono)}.outliner-list,.prop-body{overflow:auto;flex:1 1 auto}.outliner-row{display:flex;align-items:center;gap:6px;height:var(--row);padding-right:6px;cursor:default;border-left:2px solid transparent}.outliner-row:hover{background:var(--shell-raised)}.outliner-row.selected{background:var(--ember-wash)}.outliner-row.active{border-left-color:var(--ember);color:var(--ember)}.outliner-row.editing .outliner-name:after{content:" · editing";color:var(--ember);font-size:10px}.outliner-name{flex:1 1 auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.type-icon{color:var(--ink-faint)}.outliner-badge{font-family:var(--mono);font-size:9px;padding:0 4px;border-radius:6px;color:var(--ink-dim);background:var(--shell-raised);border:1px solid var(--edge)}.rename-input{flex:1 1 auto;min-width:0;height:18px;font:inherit;color:var(--ink);background:var(--shell-sunk);border:1px solid var(--ember-deep);border-radius:2px;padding:0 4px}.icon-btn{display:grid;place-items:center;width:20px;height:18px;color:var(--ink-dim);border-radius:2px}.icon-btn:hover{color:var(--ink);background:var(--shell-hover)}.icon-btn.off{color:var(--ink-faint);opacity:.6}.icon-btn.danger:hover{color:var(--axis-x)}.icon-btn.small{width:18px;height:16px}.tab-bar{display:flex;flex-wrap:wrap;min-width:0;flex:0 0 auto;background:var(--shell-sunk);border-bottom:1px solid var(--edge)}.tab{display:flex;align-items:center;gap:5px;padding:5px 8px;color:var(--ink-faint);border-bottom:2px solid transparent;font-size:11px}.tab:hover{color:var(--ink-dim)}.tab.active{color:var(--ember);border-bottom-color:var(--ember)}.prop-section{padding:8px 10px;border-bottom:1px solid var(--edge-soft)}.prop-heading{margin:0 0 6px;font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-faint);font-weight:600}.prop-row,.prop-vector{display:grid;grid-template-columns:84px 1fr;align-items:center;gap:8px;margin-bottom:4px}.prop-vector{align-items:start}.prop-label{color:var(--ink-dim);overflow:hidden;text-overflow:ellipsis}.nf-group{display:grid;gap:2px}.nf{display:flex;align-items:center;height:20px;background:var(--shell-sunk);border:1px solid var(--edge);border-radius:var(--radius);cursor:ew-resize;overflow:hidden}.nf:hover{border-color:var(--ink-faint)}.nf.scrubbing{border-color:var(--ember)}.nf-label{padding:0 5px;font-family:var(--mono);font-size:10px;color:var(--ink-faint)}.nf-x .nf-label{color:var(--axis-x)}.nf-y .nf-label{color:var(--axis-y)}.nf-z .nf-label{color:var(--axis-z)}.nf-input{flex:1 1 auto;min-width:0;height:100%;padding:0 6px 0 0;text-align:right;font-family:var(--mono);font-size:11px;color:var(--ink);background:none;border:none;cursor:inherit;pointer-events:none}.nf-input.editing{pointer-events:auto;cursor:text;background:var(--shell);text-align:left;padding-left:4px}.nf-input:focus{outline:none}.text-input{height:20px;padding:0 6px;font:inherit;color:var(--ink);background:var(--shell-sunk);border:1px solid var(--edge);border-radius:var(--radius);min-width:0}.sel{height:20px;padding:0 4px;font:inherit;color:var(--ink);background:var(--shell-sunk);border:1px solid var(--edge);border-radius:var(--radius);width:100%}.color-input{width:100%;height:20px;padding:0;background:var(--shell-sunk);border:1px solid var(--edge);border-radius:var(--radius);cursor:pointer}.cb-row{display:flex;align-items:center;gap:6px;height:20px;color:var(--ink-dim);cursor:pointer}.cb-row:hover{color:var(--ink)}.cb{accent-color:var(--ember);width:12px;height:12px}.btn-row{display:flex;gap:4px;margin-top:6px;flex-wrap:wrap}.btn{flex:1 1 auto;height:22px;padding:0 8px;color:var(--ink);background:var(--shell-raised);border:1px solid var(--edge);border-radius:var(--radius);white-space:nowrap}.btn:hover:not(:disabled){border-color:var(--ember-deep);color:var(--ember)}.btn.toggle.on{color:var(--ember);border-color:var(--ember-deep);background:var(--ember-wash)}.stat-grid{display:grid;grid-template-columns:1fr auto;gap:2px 12px;color:var(--ink-dim)}.stat-grid b{font-family:var(--mono);font-weight:500;color:var(--ink)}.mod-card{margin:8px 10px;border:1px solid var(--edge);border-radius:var(--radius);background:var(--shell-raised)}.mod-card.disabled{opacity:.55}.mod-header{display:flex;align-items:center;gap:6px;padding:4px 6px;background:var(--shell-sunk);border-bottom:1px solid var(--edge)}.mod-name{flex:1 1 auto;font-weight:600}.mod-body{padding:6px}.slot-list{border:1px solid var(--edge);border-radius:var(--radius);background:var(--shell-sunk);max-height:96px;overflow:auto}.slot{display:flex;align-items:center;gap:6px;height:var(--row);padding:0 6px}.slot.active{background:var(--ember-wash)}.swatch{width:12px;height:12px;border:1px solid var(--edge);border-radius:2px}.empty-state{padding:16px 12px;color:var(--ink-dim)}.empty-state p{margin:0 0 4px}.status-bar{display:flex;align-items:center;gap:16px;padding:0 10px;background:var(--shell);border-top:1px solid var(--edge);font-size:11px;user-select:none}.status-left{display:flex;gap:12px}.status-centre{flex:1 1 auto;text-align:center;color:var(--ink-faint)}.status-right{min-width:0;color:var(--ink-dim);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.stat{display:inline-flex;gap:4px}.stat-label{color:var(--ink-faint)}.stat-value{color:var(--ink)}.modal-readout{color:var(--ember)}.modal-hint{color:var(--ink-faint)}.overlay-panel{position:absolute;inset:24px;z-index:30;display:flex;flex-direction:column;background:#131214f7;border:1px solid var(--edge);box-shadow:0 24px 60px #0009;overflow:hidden}.overlay-panel.hidden{display:none}.overlay-head{display:flex;justify-content:space-between;align-items:center;padding:8px 12px;border-bottom:1px solid var(--edge)}.overlay-head h2{margin:0;font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-dim)}.shortcut-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:14px 24px;padding:14px;overflow:auto}.shortcut-group h3{margin:0 0 6px;font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--ember)}.shortcut-row{display:grid;grid-template-columns:108px 1fr auto;gap:8px;align-items:center;padding:1px 0;color:var(--ink-dim)}.shortcut-row em{font-style:normal;font-size:10px;color:var(--ink-faint)}.fatal{max-width:520px;margin:18vh auto;padding:24px;border:1px solid var(--edge);background:var(--shell)}.fatal h1{margin:0 0 8px;font-size:16px;color:var(--ember)}@media (max-width: 1180px){.workspace{grid-template-columns:42px 1fr 262px}.tab>span:not(.icon){display:none}.tab{flex:1 1 auto;justify-content:center}.prop-row,.prop-vector{grid-template-columns:72px 1fr}}@media (max-width: 820px){.workspace{grid-template-columns:42px 1fr}.sidebar,.wordmark{display:none}}.create-panel{display:flex;flex-direction:column}.drop-zone{display:grid;place-items:center;gap:6px;margin:12px;padding:26px 16px;text-align:center;color:var(--ink-dim);border:1px dashed var(--edge);border-radius:var(--radius);background:var(--shell-sunk);cursor:pointer}.drop-zone:hover{border-color:var(--ember-deep);color:var(--ink)}.drop-mark{width:34px;height:34px;color:var(--ember)}.drop-mark svg{width:100%;height:100%}.drop-title{margin:0;font-weight:600;color:var(--ink)}.drop-zone p{margin:0}.hidden-input{display:none}.ref-head{display:flex;align-items:center;gap:6px;margin-bottom:6px}.ref-name{flex:1 1 auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:600}.ref-preview{display:block;width:100%;height:auto;border:1px solid var(--edge);border-radius:var(--radius);background:var(--shell-sunk);image-rendering:auto}.scrub-row{display:grid;grid-template-columns:44px 1fr auto;align-items:center;gap:6px;margin-top:6px}.slider{width:100%;accent-color:var(--ember)}.mode-group{display:grid;grid-template-columns:repeat(3,1fr);gap:2px;border:1px solid var(--edge);border-radius:var(--radius);overflow:hidden;background:var(--edge)}.mode-btn{padding:5px 4px;color:var(--ink-dim);background:var(--shell-raised)}.mode-btn:hover{color:var(--ink);background:var(--shell-hover)}.mode-btn.active{color:var(--ember);background:var(--ember-wash)}.create-stats{margin:8px 0 0;font-family:var(--mono)}.drop-veil{position:absolute;inset:0;z-index:25;display:grid;place-items:center;pointer-events:none;opacity:0;background:#131214b8;border:2px dashed var(--ember);transition:opacity .12s ease}.drop-veil.visible{opacity:1}.drop-veil p{margin:0;padding:8px 16px;font-size:13px;color:var(--ember);background:var(--shell);border:1px solid var(--ember-deep);border-radius:var(--radius)}.ai-section .prop-heading{display:flex;justify-content:space-between;align-items:center;gap:8px}.ai-status{font-family:var(--mono);font-size:10px;letter-spacing:0;text-transform:none;padding:0 6px;border-radius:8px;border:1px solid var(--edge);color:var(--ink-faint);background:var(--shell-sunk);max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ai-status.ok{color:var(--axis-y);border-color:color-mix(in srgb,var(--axis-y) 45%,var(--edge))}.ai-status.bad{color:var(--axis-x);border-color:color-mix(in srgb,var(--axis-x) 45%,var(--edge))}.ai-status.busy{color:var(--ember);border-color:var(--ember-deep)}.btn.primary{color:var(--ember);border-color:var(--ember-deep);background:var(--ember-wash)}.build-bar{position:absolute;top:10px;left:50%;transform:translate(-50%);z-index:20;width:min(640px,calc(100% - 32px));padding:6px;background:#1b1a1deb;border:1px solid var(--edge);border-radius:var(--radius);box-shadow:0 10px 28px #00000073;backdrop-filter:blur(8px)}.build-row{display:flex;align-items:center;gap:6px}.build-mark{font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-faint);padding-left:4px}.build-input{flex:1 1 auto;min-width:0;height:26px;padding:0 8px;font:inherit;font-size:12px;color:var(--ink);background:var(--shell-sunk);border:1px solid var(--edge);border-radius:var(--radius)}.build-input:focus{outline:none;border-color:var(--ember-deep)}.build-go{flex:0 0 auto;height:26px}.build-chip{flex:0 0 auto;max-width:130px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;height:26px;padding:0 8px;font-family:var(--mono);font-size:10px;color:var(--ink-faint);background:var(--shell-sunk);border:1px solid var(--edge);border-radius:var(--radius)}.build-chip.ok{color:var(--axis-y);border-color:color-mix(in srgb,var(--axis-y) 45%,var(--edge))}.build-chip.bad{color:var(--axis-x);border-color:color-mix(in srgb,var(--axis-x) 45%,var(--edge))}.build-chip.busy{color:var(--ember);border-color:var(--ember-deep)}.build-note{padding:4px 6px 2px;font-size:11px;color:var(--ink-faint)}.build-settings{margin-top:4px;padding:8px 6px 6px;border-top:1px solid var(--edge);max-height:46vh;overflow:auto}.build-settings.hidden{display:none}.build-settings p{margin:0 0 6px}.build-code{margin-top:4px;padding-top:6px;border-top:1px solid var(--edge)}.build-code.hidden{display:none}.code-area{width:100%;min-height:160px;max-height:40vh;resize:vertical;padding:8px;font-family:var(--mono);font-size:11px;line-height:1.5;tab-size:2;color:var(--ink);background:var(--shell-sunk);border:1px solid var(--edge);border-radius:var(--radius)}.code-area:focus{outline:none;border-color:var(--ember-deep)}.code-log{margin:4px 0 0;max-height:90px;overflow:auto;font-family:var(--mono);font-size:10px;white-space:pre-wrap;color:var(--ember)}.palette{position:absolute;inset:0;z-index:35;display:grid;justify-items:center;align-content:start;padding-top:12vh;background:#0f0e108c}.palette.hidden{display:none}.palette-box{width:min(560px,calc(100% - 48px));background:var(--shell-raised);border:1px solid var(--edge);border-radius:var(--radius);box-shadow:0 26px 60px #0009;overflow:hidden}.palette-input{width:100%;height:38px;padding:0 12px;font:inherit;font-size:13px;color:var(--ink);background:var(--shell-sunk);border:none;border-bottom:1px solid var(--edge)}.palette-input:focus{outline:none}.palette-list{max-height:46vh;overflow:auto}.palette-row{display:grid;grid-template-columns:66px 1fr auto auto;gap:10px;align-items:center;width:100%;padding:5px 12px;text-align:left}.palette-row.active{background:var(--ember-wash)}.palette-row.disabled{opacity:.45}.palette-cat{font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-faint)}.palette-row.active .palette-label{color:var(--ember)}.palette-mode{font-style:normal;font-size:10px;color:var(--ink-faint)}.palette-empty{padding:14px 12px;color:var(--ink-faint)}.is-desktop .header{-webkit-app-region:drag}.is-desktop .header button,.is-desktop .header .menu,.is-desktop .header .seg-group,.is-desktop .header .mode-switch{-webkit-app-region:no-drag}.is-mac .header{padding-left:86px}.timeline{display:flex;align-items:center;gap:10px;height:30px;padding:0 10px;background:var(--shell);border-top:1px solid var(--edge)}.tl-controls,.tl-ranges{display:flex;align-items:center;gap:4px;flex:none}.tl-btn{display:grid;place-items:center;width:24px;height:20px;color:var(--ink-dim);border-radius:var(--radius)}.tl-btn:hover{color:var(--ink);background:var(--shell-hover)}.tl-btn.active{color:var(--ember);background:var(--ember-wash)}.tl-frame{min-width:42px;padding-left:6px;font-family:var(--mono);font-size:11px;color:var(--ember)}.tl-track{position:relative;flex:1;height:18px;background:var(--shell-sunk);border:1px solid var(--edge-soft);border-radius:var(--radius);cursor:ew-resize;overflow:hidden}.tl-marks{position:absolute;inset:0}.tl-key{position:absolute;top:50%;width:7px;height:7px;margin-left:-4px;background:var(--ink-dim);transform:translateY(-50%) rotate(45deg)}.tl-key.current{background:var(--ember)}.tl-playhead{position:absolute;top:0;bottom:0;width:2px;margin-left:-1px;background:var(--ember);box-shadow:0 0 6px var(--ember);pointer-events:none}.tl-range{display:flex;align-items:center;gap:4px;font-size:10px;color:var(--ink-faint);text-transform:uppercase;letter-spacing:.05em}.tl-num{width:52px;height:18px;padding:0 4px;color:var(--ink);background:var(--shell-sunk);border:1px solid var(--edge);border-radius:var(--radius);font-family:var(--mono);font-size:11px}.render-window{position:absolute;top:24px;left:50%;transform:translate(-50%);z-index:40;display:flex;flex-direction:column;gap:8px;max-width:min(90%,1100px);padding:10px 12px 12px;background:#141316f7;border:1px solid var(--edge);border-radius:6px;box-shadow:0 18px 50px #0000008c}.render-window.hidden,.uv-editor.hidden,.sculpt-panel.hidden,.recovery-bar.hidden,.update-bar.hidden{display:none}.render-settings{display:flex;gap:10px;flex-wrap:wrap}.render-stage{display:grid;place-items:center;max-height:60vh;overflow:auto;background:repeating-conic-gradient(#1a191c 0% 25%,#201f23 0% 50%) 50% / 16px 16px;border:1px solid var(--edge-soft)}.render-canvas{display:block;max-width:100%;height:auto;image-rendering:auto}.render-bar{height:3px;background:var(--edge-soft);border-radius:2px;overflow:hidden}.render-bar-fill{height:100%;width:0;background:linear-gradient(90deg,var(--ember-deep),var(--ember));transition:width .2s linear}.render-foot{display:flex;align-items:center;justify-content:space-between;gap:12px}.render-status{font-family:var(--mono);font-size:11px;color:var(--ink-dim)}.render-actions{display:flex;gap:6px}.uv-editor{position:absolute;top:24px;right:12px;z-index:35;display:flex;flex-direction:column;gap:8px;padding:10px;background:#141316f7;border:1px solid var(--edge);border-radius:6px;box-shadow:0 14px 36px #00000080}.graph-editor{position:absolute;bottom:12px;left:50%;transform:translate(-50%);z-index:34;display:flex;flex-direction:column;gap:8px;padding:10px;background:#141316f7;border:1px solid var(--edge);border-radius:6px;box-shadow:0 14px 36px #00000080}.graph-editor.hidden{display:none}.graph-body{display:flex;gap:8px}.graph-channels{display:flex;flex-direction:column;gap:2px;width:96px;max-height:260px;overflow:auto}.graph-group{margin-top:4px;font-size:10px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-faint)}.graph-chan{text-align:left;padding:1px 6px;font-family:var(--mono);font-size:11px;color:var(--ink-dim);background:var(--shell-raised);border-left:3px solid var(--edge);border-radius:2px}.graph-chan:hover{color:var(--ink)}.graph-chan.off{opacity:.4}.graph-canvas{border:1px solid var(--edge-soft);border-radius:var(--radius);cursor:crosshair}.uv-canvas{border:1px solid var(--edge-soft);border-radius:var(--radius)}.uv-info{font-family:var(--mono);font-size:10px;color:var(--ink-dim)}.uv-actions{display:flex;gap:6px}.sculpt-panel{position:absolute;top:24px;left:12px;z-index:30;width:196px;display:flex;flex-direction:column;gap:8px;padding:10px;background:#141316f2;border:1px solid var(--edge);border-radius:6px;box-shadow:0 12px 30px #00000073}.sp-title{margin:0;font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-faint)}.sp-brushes{display:grid;grid-template-columns:repeat(2,1fr);gap:4px}.sp-brush{height:22px;color:var(--ink-dim);background:var(--shell-raised);border:1px solid var(--edge);border-radius:var(--radius);font-size:11px}.sp-brush:hover{color:var(--ink);background:var(--shell-hover)}.sp-brush.active{color:var(--ember);border-color:var(--ember-deep);background:var(--ember-wash)}.sp-row{display:flex;flex-direction:column;gap:3px}.sp-head{display:flex;justify-content:space-between;font-size:10px;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-faint)}.sp-value{font-family:var(--mono);color:var(--ink-dim);text-transform:none}.sp-slider{width:100%;height:14px;accent-color:var(--ember)}.sp-sym{display:flex;align-items:center;gap:4px}.sp-sym .sp-head{flex:1}.sp-axis{width:22px;height:20px;color:var(--ink-dim);background:var(--shell-raised);border:1px solid var(--edge);border-radius:var(--radius);font-family:var(--mono);font-size:11px}.sp-axis.wide{width:auto;flex:1 1 auto;padding:0 6px;font-family:var(--ui)}.sp-topology{display:grid;grid-template-columns:repeat(2,1fr);gap:4px}.sp-axis.active{color:var(--ember);border-color:var(--ember-deep);background:var(--ember-wash)}.sp-hint,.sp-warn{margin:0;font-size:10px;line-height:1.4;color:var(--ink-faint)}.sp-warn{color:var(--ember)}.recovery-bar{display:flex;align-items:center;gap:10px;padding:7px 14px;font-size:12px;color:var(--ink);background:var(--ember-wash);border-bottom:1px solid var(--ember-deep)}.recovery-bar>span:first-child{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.recovery-bar .btn{flex:0 0 auto;padding:0 14px}.recovery-bar .input{flex:0 0 auto;width:auto;max-width:220px}.tex-preview{display:block;width:100%;max-height:120px;object-fit:contain;background:var(--shell-sunk);border:1px solid var(--edge-soft);border-radius:var(--radius)}.tl-range.exposure{gap:6px}.tl-range.exposure .sp-slider{width:90px}.tl-range.exposure .sp-value{min-width:46px;text-align:right}.diff-panel{position:absolute;top:24px;right:12px;z-index:36;width:340px;max-height:calc(100vh - 140px);display:flex;flex-direction:column;gap:8px;padding:10px;background:#141316f7;border:1px solid var(--edge);border-radius:6px;box-shadow:0 14px 36px #00000080}.diff-panel.hidden{display:none}.diff-sources{display:grid;grid-template-columns:1fr 1fr;gap:6px}.diff-sources .diff-select{grid-column:1 / -1}.diff-select{min-width:0;background:var(--sunken);color:var(--text);border:1px solid var(--edge);border-radius:4px;padding:4px 6px;font:inherit;font-size:11px}.diff-headline{font-size:11px;line-height:1.5}.diff-body{overflow-y:auto;display:flex;flex-direction:column;gap:2px;min-height:40px}.diff-row{display:flex;align-items:center;flex-wrap:wrap;gap:6px;padding:4px 6px;border-radius:4px;font-size:11px;cursor:pointer;border-left:3px solid transparent}.diff-row:hover{background:#ffffff0d}.diff-row.diff-added{border-left-color:#3ec75c}.diff-row.diff-removed{border-left-color:#ee453e}.diff-row.diff-changed{border-left-color:#fbae26}.diff-status{width:12px;color:var(--dim);font-weight:700}.diff-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.diff-count{font-variant-numeric:tabular-nums;font-weight:600}.diff-added-text{color:#3ec75c}.diff-removed-text{color:#ee453e}.diff-moved-text{color:#fbae26}.diff-notes{flex-basis:100%;padding-left:18px}.diff-legend{display:flex;align-items:center;gap:5px;font-size:10px;color:var(--dim);flex-wrap:wrap}.diff-swatch{width:9px;height:9px;border-radius:2px;display:inline-block}.diff-swatch.diff-added{background:#3ec75c}.diff-swatch.diff-moved{background:#fbae26}.diff-swatch.diff-removed{background:#ee453e}.setup-guide{position:absolute;left:28px;bottom:28px;z-index:40;width:380px;display:flex;flex-direction:column;gap:10px;padding:14px 16px 12px;background:#141316fa;border:1px solid var(--edge);border-radius:8px;box-shadow:0 18px 48px #0009}.setup-guide.hidden{display:none}.setup-guide .overlay-head h2{font-size:14px}.setup-body{margin:0;font-size:12px;line-height:1.6;color:var(--text)}.setup-action{display:flex}.setup-try{width:100%}.setup-foot{display:flex;align-items:center;gap:8px}.setup-dots{display:flex;gap:5px;flex:1}.setup-dot{width:7px;height:7px;border-radius:50%;background:var(--edge);cursor:pointer}.setup-dot-on{background:var(--ember)}.setup-again{display:flex;align-items:center;gap:6px;font-size:11px;color:var(--dim);cursor:pointer}.setup-again input{cursor:pointer}.create-verdict{margin:6px 0 4px;padding:6px 8px;font-size:11px;line-height:1.4;border-radius:var(--radius);border-left:2px solid var(--edge);background:var(--shell-sunk);color:var(--ink-dim)}.create-verdict.good{border-left-color:#4f9d5d;color:var(--ink)}.create-verdict.bad{border-left-color:var(--ember-deep);color:var(--ink);background:var(--ember-wash)}.brush-controls{display:flex;flex-direction:column;gap:6px;margin-top:8px;padding-top:8px;border-top:1px solid var(--edge-soft)}.brush-modes{width:100%}.brush-modes .seg{flex:1 1 0;min-width:0}.ref-preview{touch-action:none}.diff-caveat{margin:6px 0 0;padding:6px 8px;border-left:2px solid var(--ember);background:var(--ember-wash);color:var(--ink-dim);font-size:11px;line-height:1.45}.diff-uncertain{flex:0 0 auto;width:14px;height:14px;border-radius:50%;background:var(--ember-wash);color:var(--ember);font-size:10px;font-weight:700;text-align:center;line-height:14px;cursor:help}.build-target{padding:2px 10px 4px;line-height:1.4}.build-revise[disabled]{opacity:.45;cursor:default}.revision-panel{position:absolute;top:104px;right:12px;z-index:36;display:flex;flex-direction:column;width:min(380px,calc(100% - 24px));max-height:calc(100% - 120px);border:1px solid var(--edge);border-radius:var(--radius);background:#141316f7;box-shadow:0 14px 36px #00000080}.revision-panel.hidden{display:none}.revision-headline{padding:8px 12px;border-bottom:1px solid var(--edge);font-size:12px;line-height:1.5}.revision-body{flex:1 1 auto;overflow-y:auto;padding:8px 12px}.revision-actions{padding:10px 12px;border-top:1px solid var(--edge)}.revision-note{margin:0 0 8px;padding:6px 8px;border-left:2px solid var(--ember);background:var(--ember-wash);color:var(--ink-dim);font-size:11px;line-height:1.45}.revision-conflict{margin:6px 0;padding:8px;border:1px solid rgba(192,57,43,.5);border-radius:6px;background:#c0392b14}.revision-conflict p{margin:4px 0 8px;line-height:1.45}.revision-conflict-head{display:flex;gap:8px;align-items:baseline;justify-content:space-between}.revision-kind{padding:1px 6px;border-radius:999px;background:#c0392b40;color:#f0b8b2;font-size:10px;text-transform:uppercase;letter-spacing:.04em}.revision-row{display:flex;gap:8px;align-items:baseline;padding:2px 0;font-size:11px}.revision-name{flex:1 1 auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.revision-action{flex:0 0 58px;font-size:10px;text-transform:uppercase;letter-spacing:.04em}.revision-added .revision-action{color:#5fbf6a}.revision-removed .revision-action{color:#d9544d}.revision-updated .revision-action{color:var(--ember)}.revision-row .dim,.revision-row span:last-child{flex:0 0 auto;color:var(--ink-faint)}.revision-actions .btn.disabled,.revision-actions .btn.primary.disabled{opacity:.5;cursor:not-allowed}.revision-conflict .btn-row{flex-wrap:wrap}.revision-conflict .btn{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.unsaved-dialog{position:fixed;inset:0;z-index:90;display:flex;align-items:center;justify-content:center;background:#0000008c}.unsaved-card{width:min(420px,calc(100% - 32px));background:var(--shell-raised);border:1px solid var(--edge);border-radius:var(--radius);box-shadow:0 18px 48px #00000080}.unsaved-body{margin:0;padding:12px 16px 4px;color:var(--ink-dim);line-height:1.5}.unsaved-actions{padding:12px 16px 16px;justify-content:flex-end}.sidebar-toggle,.sidebar-scrim{display:none}@media (max-width: 820px){.sidebar{display:flex;position:absolute;top:0;right:0;bottom:0;z-index:44;width:min(300px,86vw);transform:translate(100%);transition:transform .14s ease;border-left:1px solid var(--edge);background:var(--shell);box-shadow:-12px 0 32px #00000073}.sidebar.open{transform:none}.sidebar-scrim{display:block;position:absolute;inset:0;z-index:43;background:#00000059;opacity:0;pointer-events:none;transition:opacity .14s ease}.sidebar-scrim.open{opacity:1;pointer-events:auto}.sidebar-toggle{display:block;position:absolute;right:10px;bottom:10px;z-index:45;padding:8px 14px;border:1px solid var(--edge);border-radius:var(--radius);background:var(--shell-raised);color:var(--ink);font:inherit;cursor:pointer;box-shadow:0 6px 18px #0006}.sidebar-toggle:hover{background:var(--shell-hover);border-color:var(--ember)}}.constraint{display:flex;flex-direction:column;gap:6px;padding:8px;border:1px solid var(--edge);border-radius:var(--radius);background:var(--shell-sunk)}.constraint+.constraint{margin-top:8px}.constraint-head{display:flex;align-items:center;gap:8px}.constraint-name{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px;color:var(--ember)}
