:root{--bg: #08090b;--panel: #0e1013;--raised: #14171c;--sunken: #0a0c0f;--line: #20242b;--line-soft: #171a20;--text: #e8ecf2;--dim: #8b93a1;--faint: #59616f;--signal: #3fd9c0;--signal-dim: #1e6a60;--signal-wash: #10201f;--own: #ffca47;--danger: #ff7a7a;--mono: ui-monospace, "SF Mono", SFMono-Regular, Menlo, Consolas, monospace;--sans: -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;--panel-w: 336px;--top-h: 44px;--tabs-h: 38px;--row-h: 30px;color-scheme:dark}*{box-sizing:border-box}html,body{margin:0;height:100%;overscroll-behavior:none}body{background:var(--bg);color:var(--text);font:12px/1.45 var(--sans);overflow:hidden;-webkit-text-size-adjust:100%}#app{display:grid;grid-template-columns:minmax(0,1fr) var(--panel-w);grid-template-rows:var(--top-h) minmax(0,1fr);grid-template-areas:"top top" "stage panel";height:100%}#topbar{grid-area:top;display:flex;align-items:center;gap:10px;padding:0 10px 0 14px;border-bottom:1px solid var(--line);background:linear-gradient(180deg,#101317,#0b0d10)}#stage{grid-area:stage;display:grid;place-items:center;padding:20px;min-width:0;min-height:0;overflow:hidden;background-image:linear-gradient(rgba(255,255,255,.016) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.016) 1px,transparent 1px);background-size:32px 32px}#gpu-canvas{max-width:100%;max-height:100%;min-width:0;min-height:0;border-radius:2px;box-shadow:0 0 0 1px var(--line),0 24px 60px #0000008c;touch-action:none}#panel{grid-area:panel;display:flex;flex-direction:column;min-height:0;background:var(--panel);border-left:1px solid var(--line)}#topbar>button,#topbar>.row{flex:none}.brand{font:600 11px/1 var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--text);white-space:nowrap}.brand b{color:var(--signal);font-weight:600}.doc-size{font:10px/1 var(--mono);color:var(--faint);letter-spacing:.06em;white-space:nowrap}.spacer{flex:1;min-width:0}h1{font-size:12px;letter-spacing:.09em;text-transform:uppercase;margin:0}h2,.section-label{font:10px/1 var(--mono);color:var(--faint);text-transform:uppercase;letter-spacing:.13em;margin:0}.hint{color:var(--dim);font-size:11px;line-height:1.5;margin:0}.meta{color:var(--dim);font-size:11px}button{flex:1;background:var(--raised);color:var(--text);border:1px solid var(--line);border-radius:3px;padding:5px 8px;font:11px/1.3 var(--sans);cursor:pointer;min-height:26px}button:hover:not(:disabled){border-color:var(--signal-dim);color:#fff}button:active:not(:disabled){transform:translateY(.5px)}button:focus-visible{outline:1px solid var(--signal);outline-offset:1px}button.wide{width:100%;flex:none}button.icon{flex:none;width:26px;padding:0;color:var(--dim);line-height:1}button.icon:hover{color:var(--danger);border-color:var(--danger)}button.danger{color:var(--danger)}button.primary{background:var(--signal-wash);border-color:var(--signal-dim);color:var(--signal)}button.primary:hover:not(:disabled){background:#16302d;color:#7ff0dd}button:disabled{opacity:.4;cursor:default}.segmented{gap:0;border:1px solid var(--line);border-radius:3px;overflow:hidden;flex:none}button.seg{border:0;border-radius:0;background:transparent;color:var(--dim);padding:5px 9px;min-height:26px;white-space:nowrap;font:10px/1 var(--mono);letter-spacing:.08em;text-transform:uppercase}button.seg+button.seg{border-left:1px solid var(--line)}button.seg.on{background:var(--signal-wash);color:var(--signal);box-shadow:inset 0 -2px 0 var(--signal)}.tabs{display:flex;flex:none;height:var(--tabs-h);border-bottom:1px solid var(--line);background:var(--sunken)}button.tab{flex:1;display:flex;align-items:center;justify-content:center;gap:6px;border:0;border-radius:0;background:transparent;color:var(--faint);font:10px/1 var(--mono);letter-spacing:.14em;text-transform:uppercase;min-height:var(--tabs-h);border-bottom:2px solid transparent}button.tab+button.tab{border-left:1px solid var(--line-soft)}button.tab:hover:not(:disabled){color:var(--dim);background:#101317}button.tab.on{color:var(--signal);background:var(--panel);border-bottom-color:var(--signal)}button.tab:disabled{opacity:.45}.badge{font:9px/1 var(--mono);padding:2px 4px;border-radius:2px;background:#1b2027;color:var(--dim);min-width:15px}button.tab.on .badge{background:var(--signal-wash);color:var(--signal)}.badge.own{background:#2a2415;color:var(--own)}.tab-body{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:12px;display:flex;flex-direction:column;gap:12px;position:relative}.stack{display:flex;flex-direction:column;gap:8px}.row{display:flex;gap:6px;align-items:center}.foot{margin-top:auto;padding-top:4px}.section{display:flex;flex-direction:column;gap:8px}.section>.section-label{display:flex;align-items:center;gap:8px;padding-bottom:5px;border-bottom:1px solid var(--line-soft)}.section-label .count{margin-left:auto}.empty-state{display:flex;flex-direction:column;gap:6px;padding:26px 16px;text-align:center;color:var(--faint);border:1px dashed var(--line);border-radius:3px}.empty-state strong{color:var(--dim);font:10px/1.4 var(--mono);letter-spacing:.12em;text-transform:uppercase}.field{display:flex;flex-direction:column;gap:3px}.field-label{display:flex;align-items:baseline;gap:6px;font:10px/1 var(--mono);letter-spacing:.07em;color:var(--dim);text-transform:uppercase}.readout{margin-left:auto;color:var(--text);font-variant-numeric:tabular-nums;font-family:var(--mono);font-size:10px}.mixed{color:var(--own);font-size:9px;letter-spacing:.08em}.check{flex:1;display:flex;align-items:center;gap:7px;color:var(--dim);font:10px/1 var(--mono);letter-spacing:.07em;text-transform:uppercase;cursor:pointer;min-height:22px}.check:hover{color:var(--text)}input[type=checkbox]{accent-color:var(--signal);margin:0;width:13px;height:13px}input[type=range]{width:100%;height:18px;margin:0;background:transparent;-webkit-appearance:none;appearance:none}input[type=range]::-webkit-slider-runnable-track{height:3px;border-radius:1px;background:#1c2029;border:1px solid var(--line-soft)}input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:11px;height:13px;margin-top:-6px;border-radius:1px;background:var(--signal);border:0;cursor:ew-resize}input[type=range]::-moz-range-track{height:3px;border-radius:1px;background:#1c2029}input[type=range]::-moz-range-thumb{width:11px;height:13px;border-radius:1px;background:var(--signal);border:0;cursor:ew-resize}input[type=range]:focus-visible{outline:1px solid var(--signal);outline-offset:2px}select,input[type=number],input[type=color],textarea,input[type=file]{background:var(--sunken);color:var(--text);border:1px solid var(--line);border-radius:3px;padding:5px 6px;font:11px/1.3 var(--sans);width:100%;min-height:28px}input[type=number]{font-family:var(--mono);font-variant-numeric:tabular-nums}select:focus,input:focus,textarea:focus{outline:none;border-color:var(--signal-dim)}input[type=color]{height:26px;padding:2px;cursor:pointer}textarea{resize:vertical;font:12px/1.4 var(--sans)}.group{border:1px solid var(--line);border-radius:3px;overflow:hidden;background:var(--sunken)}.group.open{border-color:#2b3742}.group-head{display:flex;align-items:center;gap:6px;padding:0 6px;min-height:32px;cursor:pointer;background:var(--raised);user-select:none}.group-head:hover{background:#181c22}.group.open>.group-head{background:#16202a;border-bottom:1px solid var(--line)}.twisty{color:var(--faint);font-size:8px;width:8px;flex:none}.group-name{flex:1;min-width:0;font:11px/1.3 var(--sans);font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.count{color:var(--faint);font:10px/1 var(--mono);font-variant-numeric:tabular-nums;flex:none}.group-body{display:flex;flex-direction:column;gap:8px;padding:8px}.layers{list-style:none;margin:0;padding:0;border:1px solid var(--line-soft);border-radius:3px;overflow:hidden;background:#0b0d11}.layer{display:flex;align-items:center;gap:6px;padding:0 5px;min-height:var(--row-h);cursor:pointer;border-bottom:1px solid var(--line-soft)}.layer:last-child{border-bottom:0}.layer:hover{background:#12161b}.layer.selected{background:#16262a;box-shadow:inset 2px 0 0 var(--signal)}.layer.empty{color:var(--faint);font-style:italic;cursor:default;justify-content:center}.layer-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11px}.mods{color:var(--signal);font:9px/1 var(--mono);letter-spacing:.04em;flex:none}.warn{color:var(--own);font-size:11px;flex:none}.swatch{width:10px;height:10px;border-radius:2px;flex:none;box-shadow:inset 0 0 0 1px #ffffff2e}.ops{display:flex;flex:none;border:1px solid var(--line);border-radius:3px;overflow:hidden;background:#0b0d11}button.op{flex:none;width:24px;min-height:22px;height:22px;padding:0;border:0;border-radius:0;background:transparent;color:var(--faint);display:grid;place-items:center}button.op+button.op{border-left:1px solid var(--line-soft)}button.op:hover:not(:disabled){background:#1a1f26;color:var(--text)}button.op.on{background:var(--signal-wash);color:var(--signal)}.ico{display:block;line-height:0}.op-static{flex:none;color:var(--faint);line-height:0}button.fx-btn{flex:none;width:24px;min-height:22px;height:22px;padding:0;font:9px/1 var(--mono);letter-spacing:.04em;color:var(--faint);background:transparent}button.fx-btn:hover{color:var(--own);border-color:#5c4a1f}button.fx-btn.own{color:var(--own);border-color:#5c4a1f;background:#221d10}.fx-dot{flex:none;font:9px/1 var(--mono);color:var(--own)}.grip{flex:none;width:14px;color:#3a4049;font-size:10px;line-height:1;cursor:grab;text-align:center;touch-action:none;user-select:none}.grip:hover{color:var(--signal)}.dragging{opacity:.35}.drop-line{position:absolute;height:2px;background:var(--signal);border-radius:1px;pointer-events:none;z-index:5;box-shadow:0 0 6px #3fd9c099}.drop-into{outline:1px solid var(--signal);outline-offset:-1px}.fx-scope{display:flex;flex-direction:column;gap:6px;padding:8px;border:1px solid var(--line);border-radius:3px;background:var(--sunken)}.fx-effect{border:1px solid var(--line-soft);border-radius:3px;overflow:hidden}.fx-effect>.check{padding:6px 8px;background:var(--raised);margin:0}.fx-effect.on>.check{color:var(--text);background:#16202a;box-shadow:inset 2px 0 0 var(--signal)}.fx-controls{display:flex;flex-direction:column;gap:7px;padding:8px;border-top:1px solid var(--line-soft)}.literal{text-transform:none;color:var(--text)}@media(max-width:860px){#app{grid-template-columns:minmax(0,1fr);grid-template-rows:var(--top-h) minmax(160px,1fr) auto;grid-template-areas:"top" "stage" "panel"}#stage{padding:10px}#panel{border-left:0;border-top:1px solid var(--line);box-shadow:0 -12px 30px #00000080;max-height:47vh}#panel.collapsed .tab-body{display:none}.tabs{height:46px}button.tab{min-height:46px;font-size:10px}button{min-height:34px}button.op,button.fx-btn{height:28px;min-height:28px;width:30px}.layer{min-height:38px}.group-head{min-height:40px}.grip{width:20px;font-size:12px}input[type=range]{height:26px}input[type=range]::-webkit-slider-thumb{width:15px;height:19px;margin-top:-9px}.doc-size{display:none}}dialog.manual{width:min(620px,calc(100vw - 32px));max-height:min(760px,calc(100vh - 48px));padding:0;border:1px solid var(--line);border-radius:4px;background:var(--panel);color:var(--text);box-shadow:0 24px 70px #000000b3;overflow:hidden}dialog.manual::backdrop{background:#030406c2;backdrop-filter:blur(2px)}dialog.sheet{width:min(420px,calc(100vw - 32px))}dialog.sheet .manual-body{display:flex;flex-direction:column;gap:9px;padding-top:14px}dialog.sheet .manual-body>*{flex:0 0 auto}dialog.sheet .manual-body .row{display:flex;gap:8px;align-items:flex-end}dialog.sheet .manual-body .row.segmented{gap:0}dialog.manual>h1{padding:16px 22px 12px;border-bottom:1px solid var(--line);font:600 11px/1 var(--mono);letter-spacing:.16em;text-transform:uppercase}.manual-close{position:absolute;top:10px;right:12px;flex:none;width:26px;height:26px;padding:0;font-size:15px;line-height:1;border-radius:3px;color:var(--dim)}.manual-body{padding:6px 22px 22px;overflow-y:auto;max-height:calc(min(760px,100vh - 48px) - 52px);font-size:12.5px;line-height:1.6}.manual-body h2{margin:22px 0 6px;color:var(--signal);font-size:10px}.manual-body p{margin:0 0 8px;color:#c2c8d2}.manual-body strong{color:var(--text)}.manual-body em{color:var(--text);font-style:normal;font-weight:600}.manual-body a{color:var(--signal)}.manual-body code{background:var(--sunken);border:1px solid var(--line);border-radius:2px;padding:0 4px;font:11px/1 var(--mono)}.manual-body dl{display:grid;grid-template-columns:118px 1fr;gap:5px 14px;margin:0 0 10px}.manual-body dt{color:var(--text);font-weight:600;text-align:right}.manual-body dd{margin:0;color:#c2c8d2}.manual-body kbd{display:inline-block;min-width:18px;padding:1px 5px;border:1px solid var(--line);border-bottom-width:2px;border-radius:3px;background:var(--sunken);font:11px/1.4 var(--mono);text-align:center}.manual-body .kinds{color:var(--dim);background:var(--sunken);border:1px solid var(--line);border-radius:3px;padding:8px 10px;font-family:var(--mono);font-size:11px}.manual-body .gold,.manual-body .warn{color:var(--own)}@media(max-width:860px){.manual-body dl{grid-template-columns:1fr;gap:2px}.manual-body dt{text-align:left;margin-top:8px}}.fatal{max-width:480px;padding:22px;border:1px solid var(--line);border-radius:4px;background:var(--panel)}.fatal h2{color:var(--danger);font-size:13px}
