:root{--bg: #0f1115;--panel: #171a21;--line: #262b36;--ink: #e7eaf0;--dim: #8b93a5;--accent: #5b8cff;--accent-ink: #fff;color-scheme:dark}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:15px/1.5 system-ui,-apple-system,Segoe UI,Roboto,sans-serif;-webkit-text-size-adjust:100%}.bar{display:flex;align-items:center;gap:12px;padding:12px 18px;border-bottom:1px solid var(--line);position:sticky;top:0;background:var(--bg);z-index:5}.bar h1{font-size:16px;margin:0;font-weight:600;letter-spacing:.2px}.badge{margin-left:auto;font-size:12px;padding:3px 10px;border:1px solid var(--line);border-radius:999px;color:var(--dim);white-space:nowrap}.badge.gpu{color:#7ee2a8;border-color:#2c5340}.badge.cpu{color:#fc6;border-color:#5a4a24}main{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:18px;padding:18px;align-items:start}@media(max-width:860px){main{grid-template-columns:minmax(0,1fr);padding:12px;gap:12px}}.stage{position:relative;background:#0a0c10;border:1px solid var(--line);border-radius:14px;overflow:hidden;min-height:320px;display:grid;place-items:center;touch-action:pan-y}.stage canvas{display:block;max-width:100%;height:auto}.drop{position:absolute;inset:0;display:grid;place-content:center;text-align:center;padding:24px;gap:8px;border:2px dashed transparent;transition:border-color .15s,background .15s}.drop.over{border-color:var(--accent);background:#5b8cff14}.drop .big{font-size:17px;margin:0}.drop .dim{color:var(--dim);margin:0;max-width:42ch;font-size:13px}.wipe{position:absolute;inset:0;pointer-events:none}.wipe-line{position:absolute;top:0;bottom:0;width:2px;background:#fffc;box-shadow:0 0 0 1px #0006}.panel{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:16px;display:flex;flex-direction:column;gap:14px}fieldset{border:0;padding:0;margin:0;display:flex;flex-direction:column;gap:14px}fieldset[disabled]{opacity:.45}.field{display:flex;flex-direction:column;gap:6px}label{font-size:13px;color:var(--dim);display:flex;align-items:center;gap:8px}label b{color:var(--ink);font-variant-numeric:tabular-nums}.auto{font-size:11px;color:#7ee2a8}.row{display:flex;gap:8px;flex-wrap:wrap}.row.tight{gap:6px;align-items:center}.row .btn{flex:1}.btn{appearance:none;border:1px solid var(--line);background:#1e222c;color:var(--ink);padding:9px 12px;border-radius:9px;font:inherit;font-size:14px;cursor:pointer;transition:background .12s,border-color .12s}.btn:hover:not(:disabled){background:#262b37}.btn:disabled{opacity:.5;cursor:default}.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.btn.primary:hover{background:#4d7ef5}.btn.small{font-size:13px;padding:7px 10px;flex:0 0 auto}.btn.wide{width:100%}.btn.ghost{background:transparent;color:var(--dim)}.btn.rec{background:#b3392f;border-color:#b3392f;color:#fff}input[type=number]{background:#10131a;border:1px solid var(--line);color:var(--ink);border-radius:8px;padding:8px 10px;font:inherit;width:90px}input[type=range]{appearance:none;width:100%;height:22px;background:transparent;cursor:pointer}input[type=range]::-webkit-slider-runnable-track{height:5px;border-radius:3px;background:#2b3140}input[type=range]::-webkit-slider-thumb{appearance:none;width:18px;height:18px;border-radius:50%;background:var(--accent);margin-top:-6.5px;border:2px solid #0f1115}input[type=range]::-moz-range-track{height:5px;border-radius:3px;background:#2b3140}input[type=range]::-moz-range-thumb{width:16px;height:16px;border-radius:50%;background:var(--accent);border:2px solid #0f1115}.ladder{display:flex;gap:3px;height:4px}.ladder i{flex:1;border-radius:2px;background:#2b3140;transition:background .2s}.ladder i.done{background:#3d6b4f}.status{display:flex;flex-direction:column;gap:6px;font-size:13px;color:var(--dim)}.status.hidden{display:none}.progress{height:4px;border-radius:2px;background:#2b3140;overflow:hidden}.progress i{display:block;height:100%;width:0;background:var(--accent);transition:width .2s}.faces{display:flex;flex-direction:column;gap:6px}.chips{display:flex;gap:6px;flex-wrap:wrap}.chip{border:1px solid var(--line);background:#1e222c;color:var(--ink);border-radius:999px;padding:5px 12px;font-size:13px;cursor:pointer}.chip[aria-pressed=true]{border-color:var(--accent);background:#5b8cff26}.note{font-size:12px;line-height:1.5;color:var(--dim);border-top:1px solid var(--line);padding-top:12px;margin:0}
