:root{--bg:#232323;--panel:#2d2d2d;--panel2:#383838;--line:#1b1b1b;--text:#cfcfcf;--dim:#8a8a8a;--accent:#e0883a;--sel:#e0883a;--view:#cf4f4f}*{box-sizing:border-box}html,body{margin:0;height:100%;background:var(--bg);color:var(--text);overflow:hidden;font:12px/1.4 -apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif}#app{display:grid;grid-template-rows:36px 1fr;height:100%}.toolbar{display:flex;align-items:center;gap:10px;padding:0 12px;background:var(--panel);border-bottom:1px solid var(--line)}.logo{color:var(--accent);font-weight:700;letter-spacing:.5px}.ghlink{color:var(--dim);text-decoration:none;font-size:11px}.ghlink:hover{color:var(--accent)}.spacer{flex:1}.tbtn{background:var(--panel2);color:var(--text);border:1px solid var(--line);padding:5px 10px;border-radius:3px;cursor:pointer;font-size:12px}.tbtn:hover{border-color:var(--accent)}.tbtn.recording{background:#7a2424;border-color:#cf4f4f;color:#fff}.addwrap{position:relative}.addmenu{position:absolute;top:30px;left:0;z-index:50;min-width:150px;background:var(--panel2);border:1px solid var(--line);border-radius:4px;box-shadow:0 6px 20px #00000080;display:none;padding:4px}.addmenu.open{display:block}.addmenu-item{padding:6px 9px;border-radius:3px;cursor:pointer}.addmenu-item:hover{background:var(--accent);color:#1a1a1a}.recwrap{position:relative;display:inline-flex;gap:2px}.tbtn.caret{padding:5px 6px}.popover{position:absolute;top:32px;right:0;z-index:60;width:240px;display:none;background:var(--panel2);border:1px solid var(--line);border-radius:6px;padding:10px;box-shadow:0 8px 24px #0000008c}.popover.open{display:block}.popover .prow{display:flex;align-items:center;gap:8px;margin-bottom:8px}.popover .prow label{width:70px;color:var(--dim);flex:none}.popover select,.popover input[type=range]{flex:1;background:#2a2a2a;color:var(--text);border:1px solid var(--line);border-radius:4px;padding:3px 5px;accent-color:var(--accent)}.popover #rc-bv{width:54px;text-align:right;color:var(--accent);font-variant-numeric:tabular-nums}.popover .pnote{color:var(--dim);font-size:10px;line-height:1.4;margin-top:4px}main{display:grid;grid-template-columns:minmax(0,1fr) 290px;min-height:0;min-width:0}.left{display:grid;grid-template-rows:minmax(0,1.4fr) minmax(0,1fr);min-width:0;min-height:0}.viewer-pane{position:relative;background:#161616;min-height:0;min-width:0;overflow:hidden;display:flex;flex-direction:column;border-bottom:1px solid var(--line)}#viewer{flex:1;width:100%;height:100%;min-width:0;min-height:0;display:block;cursor:crosshair}.viewer-bar{height:26px;display:flex;align-items:center;gap:12px;padding:0 10px;background:var(--panel);border-top:1px solid var(--line);color:var(--dim)}.chan{display:flex;gap:2px}.chbtn{background:transparent;color:var(--dim);border:1px solid transparent;border-radius:3px;min-width:20px;height:18px;cursor:pointer;font-size:11px;padding:0 5px;white-space:nowrap}.chbtn:hover{border-color:#555}.chbtn.active{background:var(--panel2);color:#fff;border-color:#555}.chbtn.r.active{color:#e08}.chbtn.g.active{color:#7e6}.chbtn.b.active{color:#6ae}.chbtn.a.active{color:#ddd}.vbtn{background:var(--panel2);color:var(--text);border:1px solid var(--line);border-radius:3px;padding:2px 8px;cursor:pointer;font-size:11px}.vbtn:hover{border-color:var(--accent)}.vbtn.active{border-color:var(--accent);color:#fff;background:#3a3022}.vgroup{display:flex;gap:2px}.resedit{display:flex;align-items:center;gap:3px}.resedit input{width:46px;background:var(--panel2);color:var(--text);border:1px solid var(--line);border-radius:3px;padding:1px 4px;font-size:11px;font-variant-numeric:tabular-nums;-moz-appearance:textfield}.resedit input:focus{border-color:var(--accent);outline:none}.restimes{color:var(--dim)}.efflabel{color:var(--dim);font-variant-numeric:tabular-nums;margin-left:2px;min-width:64px}#fps{margin-left:auto;font-variant-numeric:tabular-nums}.dag-pane{position:relative;min-height:0;min-width:0;background:#1d1d1d;background-image:radial-gradient(#2a2a2a 1px,transparent 1px);background-size:22px 22px}.dag{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden}.dag-host{position:relative;width:100%;height:100%;touch-action:none;-webkit-user-select:none;user-select:none}.dag-world{position:absolute;top:0;left:0;transform-origin:0 0}.dag-wires{position:absolute;top:0;left:0;overflow:visible;pointer-events:none}.wire{fill:none;stroke:#8a8a8a;stroke-width:2.5}.wire.temp{stroke:var(--accent);stroke-width:3;stroke-dasharray:6 4;filter:drop-shadow(0 0 3px rgba(224,136,58,.6))}.out-label{position:absolute;bottom:-19px;transform:translate(-50%);font-size:8px;color:var(--dim);pointer-events:none;white-space:nowrap}.dag-node{position:absolute;background:var(--panel2);border:1px solid #666;border-left-width:4px;border-radius:4px;display:flex;align-items:center;justify-content:center;cursor:grab;-webkit-user-select:none;user-select:none;box-shadow:0 2px 6px #0006}.dag-node.selected{box-shadow:0 0 0 2px var(--sel)}.dag-node.viewed{outline:2px solid var(--view);outline-offset:1px}.dag-title{color:#e6e6e6;font-size:12px;pointer-events:none}.port{position:absolute;width:15px;height:15px;border-radius:50%;background:#9a9a9a;border:2px solid #1b1b1b;cursor:crosshair;box-shadow:0 0 0 6px #0000}.port.in{top:-9px;transform:translate(-50%)}.port.in.wired{background:var(--accent)}.port.out{left:50%;bottom:-9px;transform:translate(-50%);background:#cfcfcf}.port:hover{background:var(--accent);transform:translate(-50%) scale(1.25)}.dag-node.selected .port.out,.dag-node:hover .port.out{background:var(--accent)}.dag-menu{position:fixed;z-index:100;background:var(--panel2);border:1px solid var(--line);border-radius:4px;box-shadow:0 6px 20px #00000080;padding:4px;min-width:140px}.dag-menu-item{padding:5px 9px;border-radius:3px;cursor:pointer}.dag-menu-item:hover{background:var(--accent);color:#1a1a1a}.props{background:var(--panel);border-left:1px solid var(--line);overflow-y:auto}.phead{padding:9px 12px;background:var(--panel2);border-bottom:1px solid var(--line);font-weight:600;position:sticky;top:0}.phead small{color:var(--accent);font-weight:600}.phead em{color:var(--dim);font-style:normal;font-weight:400;float:right}.pgroup{padding:6px 12px 3px;color:var(--dim);font-size:10px;text-transform:uppercase;letter-spacing:.7px;border-bottom:1px solid #262626;margin-top:4px}.pempty{padding:14px 12px;color:var(--dim)}.knob{padding:6px 28px 6px 12px;border-bottom:1px solid #262626;position:relative}.knob label{display:block;color:var(--dim);margin-bottom:4px}.knob .val{float:right;margin-right:6px;color:var(--accent);font-variant-numeric:tabular-nums}.knob-reset{position:absolute;top:6px;right:8px;width:17px;height:17px;padding:0;border:1px solid var(--line);border-radius:3px;background:var(--panel2);color:var(--dim);cursor:pointer;font-size:11px;line-height:1;opacity:.85}.knob-reset:hover{color:var(--accent);border-color:var(--accent);opacity:1}.knob-reset.atdefault{opacity:.28}.knob-hint{color:var(--dim);font-size:10px;line-height:1.35;margin-top:4px;font-style:italic}.knob input[type=range]{width:100%;accent-color:var(--accent)}.knob select{width:100%;background:var(--panel2);color:var(--text);border:1px solid var(--line);padding:4px;border-radius:3px}.knob.check label{display:flex;align-items:center;gap:4px;cursor:pointer;color:var(--text)}.knob input[type=color]{width:100%;height:24px;background:var(--panel2);border:1px solid var(--line)}.vecrow{display:flex;gap:6px}.vecrow input{width:100%;background:var(--panel2);color:var(--text);border:1px solid var(--line);padding:3px 5px;border-radius:3px}.readbox{padding:10px 12px;border-bottom:1px solid #262626}.loadbtn{display:block;width:100%;text-align:center;background:var(--accent);color:#1a1a1a;font-weight:600;padding:7px;border:none;border-radius:4px;cursor:pointer}.loadbtn:hover{filter:brightness(1.08)}.clipinfo{color:var(--dim);font-size:11px;margin-top:8px;line-height:1.4}.transport-bar{height:30px;display:flex;align-items:center;gap:6px;padding:0 10px;background:var(--panel);border-top:1px solid var(--line);color:var(--dim)}.transport-bar input[type=number]{-moz-appearance:textfield}.transport-bar input::-webkit-outer-spin-button,.transport-bar input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.tp-btn{background:var(--panel2);color:var(--text);border:1px solid var(--line);border-radius:3px;width:26px;height:20px;cursor:pointer;font-size:12px;padding:0;line-height:1}.tp-btn:hover{border-color:var(--accent)}.tp-btn.playing{color:var(--accent);border-color:var(--accent)}.tp-frame{width:52px;background:var(--panel2);color:var(--text);border:1px solid var(--line);border-radius:3px;padding:1px 4px;text-align:center;font-variant-numeric:tabular-nums}.tp-scrub{flex:1;accent-color:var(--accent)}.tp-range{display:flex;align-items:center;gap:3px}.tp-first,.tp-last,.tp-fpsv{width:42px;background:var(--panel2);color:var(--text);border:1px solid var(--line);border-radius:3px;padding:1px 3px;text-align:center;font-variant-numeric:tabular-nums}.tp-dash,.tp-lab{color:var(--dim)}.tp-fps{display:flex;align-items:center;gap:2px}.fb-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000008c;z-index:200;display:grid;place-items:center}.fb-modal{width:540px;max-height:72vh;background:var(--panel);border:1px solid var(--line);border-radius:8px;box-shadow:0 14px 44px #0009;display:flex;flex-direction:column;overflow:hidden}.fb-head{display:flex;align-items:center;gap:8px;padding:9px 12px;background:var(--panel2);border-bottom:1px solid var(--line)}.fb-crumbs{display:flex;align-items:center;gap:3px;flex-wrap:wrap}.fb-crumb{color:var(--accent);cursor:pointer}.fb-crumb:hover{text-decoration:underline}.fb-sep{color:var(--dim)}.fb-x{background:none;border:none;color:var(--dim);cursor:pointer;font-size:14px}.fb-list{overflow-y:auto;padding:6px}.fb-row{display:flex;align-items:center;gap:9px;padding:7px 9px;border-radius:4px;cursor:pointer}.fb-row:hover{background:var(--panel2)}.fb-ic{width:18px;text-align:center}.fb-name{flex:1;color:var(--text)}.fb-meta{color:var(--dim);font-size:11px}.fb-empty{padding:24px;color:var(--dim);text-align:center}.error{position:absolute;top:0;right:0;bottom:0;left:0;display:none;place-content:center;padding:40px;background:#161616;color:#e06;white-space:pre-wrap;font-family:monospace;z-index:10}.props-toggle{display:none}@media(max-width:760px){main{grid-template-columns:1fr}.props{position:fixed;top:36px;right:0;bottom:0;width:min(86vw,330px);transform:translate(101%);transition:transform .22s ease;z-index:80;border-left:1px solid var(--line);box-shadow:-10px 0 28px #0000008c}.props.open{transform:translate(0)}.props-toggle{display:inline-block;margin-left:6px}.addwrap,#exportPng,.recwrap{display:none}.logo{font-size:13px}.tbtn{padding:7px 10px}.tp-btn{min-width:30px;height:26px;font-size:14px}.tp-frame,.tp-first,.tp-last,.tp-fpsv{height:24px}.chbtn{min-width:26px;height:24px}.vbtn{padding:5px 9px}.knob input[type=range],.tp-scrub{height:22px}}
