:root{color-scheme:dark}html,body,#root{margin:0;padding:0;width:100%;height:100%;overflow:hidden;background:#050409;font-family:SF Mono,ui-monospace,Menlo,Consolas,monospace;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}.pf-root{position:fixed;top:0;right:0;bottom:0;left:0;overflow:hidden}.pf-canvas{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;display:block}.pf-patch{position:absolute;top:0;right:0;bottom:0;left:0;transition:opacity .35s}.pf-patch.hidden{opacity:0;pointer-events:none}.pf-view{position:absolute;top:0;right:0;bottom:0;left:0;overflow:auto;touch-action:pan-x pan-y;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.28) transparent}.pf-view::-webkit-scrollbar{width:9px;height:9px}.pf-view::-webkit-scrollbar-track{background:transparent}.pf-view::-webkit-scrollbar-thumb{background:#ffffff38;border:2px solid transparent;background-clip:padding-box;border-radius:5px}.pf-view::-webkit-scrollbar-thumb:hover{background-color:#fff6}.pf-view::-webkit-scrollbar-corner{background:transparent}.pf-ws{position:relative;touch-action:pan-x pan-y;background-image:radial-gradient(rgba(255,255,255,.055) 1px,transparent 1px);background-size:28px 28px}.pf-cables{position:absolute;top:0;left:0;pointer-events:none;z-index:5}.node{position:absolute;z-index:4;background:#0e0c18d6;border:1px solid hsla(var(--h),85%,62%,.55);box-shadow:0 3px 12px #0000008c;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);touch-action:none}.node.vid{border-color:#ffffffeb}.node.aud{border-color:#000;box-shadow:0 0 0 1px #ffffff12,0 3px 12px #0000008c;border-radius:10px}.node.aud .node-head{border-radius:10px 10px 0 0}.node.off{opacity:.55}.node.off .node-ports,.node.off .node-knobs,.node.off .steps,.node.off .filebar{filter:saturate(.25) brightness(.75)}.node-byp{width:22px;height:22px;flex:none;border:1px solid hsla(var(--h),70%,65%,.5);background:hsla(var(--h),70%,55%,.2);color:hsl(var(--h),90%,75%);font-size:11px;line-height:1;padding:0;cursor:pointer;touch-action:manipulation}.node-byp.off{border-color:#ff6e6eb3;background:#ff5a5a26;color:#ff8484}.node-head{display:flex;align-items:center;gap:6px;height:30px;padding:0 6px 0 10px;border-bottom:1px solid hsla(var(--h),85%,62%,.25);background:linear-gradient(hsla(var(--h),80%,55%,.22),hsla(var(--h),80%,45%,.08));cursor:grab;touch-action:none}.node-title{font-size:12px;font-weight:700;letter-spacing:.06em;color:hsl(var(--h),90%,78%)}.node-cat{font-size:8px;letter-spacing:.12em;color:hsla(var(--h),60%,80%,.55);border:1px solid hsla(var(--h),60%,70%,.3);padding:1px 3px}.node-x{margin-left:auto;width:24px;height:24px;border:0;background:transparent;color:#ffffff73;font-size:15px;line-height:1;cursor:pointer}.node-x:active{background:#ff505040;color:#fff}.node-ports{position:relative}.port{position:absolute;display:flex;align-items:center;gap:5px;height:24px;font-size:10px;color:#ffffffbf;cursor:crosshair;touch-action:none;padding:0 4px;z-index:6}.port.in{left:-10px}.port.out{right:-10px;flex-direction:row}.port .dot{width:14px;height:14px;border-radius:50%;border:2px solid rgba(0,0,0,.55);box-shadow:0 0 8px #ffffff40;flex:none}.port:before{content:"";position:absolute;top:-8px;right:-8px;bottom:-8px;left:-8px}.node-foot{display:flex;justify-content:flex-end;padding:0 8px 5px}.peek-btn{font-family:inherit;font-size:8px;letter-spacing:.12em;line-height:1;padding:3px 6px;border:1px solid hsla(var(--h),60%,70%,.3);background:transparent;color:hsla(var(--h),60%,80%,.55);cursor:pointer;touch-action:manipulation}.peek-btn.on{border-color:hsla(var(--h),70%,65%,.55);background:hsla(var(--h),70%,55%,.2);color:hsl(var(--h),90%,75%)}.node-peek{display:block;box-sizing:border-box;width:calc(100% - 16px);margin:0 8px 5px;background:#000;border:1px solid rgba(255,255,255,.15)}.node-peek.thumb{transform:scaleY(-1)}.node-peek.scope{height:44px}.node-knobs{display:flex;flex-wrap:wrap;gap:2px 6px;padding:6px 8px 9px;align-items:flex-end}.knob{width:48px;text-align:center;cursor:ns-resize;touch-action:none;position:relative;transition:transform .12s}.pf-ws.patching .node:not(.locked) .knob .knob-dial{box-shadow:0 0 0 2px #ffd16659,0 0 10px #ffd16640}.pf-ws.patching .node:not(.locked) .knob[data-hot]{transform:scale(1.1)}.pf-ws.patching .node:not(.locked) .knob[data-hot] .knob-dial{border-color:#ffd166e6;box-shadow:0 0 0 3px #ffd166d9,0 0 16px #ffd166b3}.knob.modded .knob-dial{border-color:#ffd166b3;box-shadow:0 0 10px #ffd16640}.knob-modring{position:absolute;left:2px;top:-3px;width:44px;height:44px;border-radius:50%;pointer-events:none;box-shadow:inset 0 0 0 3px #ffd1664d;-webkit-mask:radial-gradient(circle,transparent 18.5px,#000 19.5px);mask:radial-gradient(circle,transparent 18.5px,#000 19.5px)}.knob-modpt{position:absolute;top:0;right:0;bottom:0;left:0;transform:rotate(-135deg)}.knob-amt{position:absolute;left:5px;top:0;width:38px;height:38px;line-height:38px;text-align:center;font-size:8px;color:#ffd166;text-shadow:0 0 4px #000,0 0 4px #000;pointer-events:none}.knob-modpt:before{content:"";position:absolute;left:50%;top:-2px;width:7px;height:7px;margin-left:-3.5px;border-radius:50%;background:#ffd166;box-shadow:0 0 6px #ffd166e6}.knob-dial{width:38px;height:38px;margin:0 auto;border-radius:50%;background:radial-gradient(circle at 34% 30%,#ffffff29,#ffffff05 60%),#191627;border:1px solid rgba(255,255,255,.18);position:relative;transition:box-shadow .12s,border-color .12s}.knob-notch{position:absolute;left:50%;top:3px;width:3px;height:12px;margin-left:-1.5px;background:hsl(var(--h),95%,70%);box-shadow:0 0 6px hsla(var(--h),95%,70%,.8)}.knob-label{font-size:9px;margin-top:3px;color:#fff9;letter-spacing:.04em}.knob-val{font-size:8px;color:hsla(var(--h),80%,75%,.85)}.tgl{height:26px;min-width:40px;margin-bottom:12px;border:1px solid hsla(var(--h),70%,65%,.5);background:hsla(var(--h),70%,50%,.15);color:hsl(var(--h),85%,75%);font-family:inherit;font-size:10px;cursor:pointer;touch-action:manipulation}.steps{display:flex;gap:3px;height:56px;margin:4px 10px 2px;padding:3px;background:#00000059;touch-action:none;cursor:pointer}.step{flex:1;position:relative;background:#ffffff0f;overflow:hidden}.step-fill{position:absolute;left:0;right:0;bottom:0;background:linear-gradient(hsl(var(--h),90%,72%),hsl(var(--h),90%,55%));min-height:2px}.filebar{position:relative;display:flex;gap:5px;margin:4px 10px 2px}.fbtn{flex:1;height:28px;border:1px dashed hsla(var(--h),70%,65%,.55);background:hsla(var(--h),70%,50%,.12);color:hsl(var(--h),85%,78%);font-family:inherit;font-size:10px;cursor:pointer;overflow:hidden;white-space:nowrap;touch-action:manipulation}.fbtn.play{flex:0 0 34px;border-style:solid;font-size:12px}.fbtn.err{border-color:#ff7a7ab3;color:#ff9d9d}.srcmenu{position:absolute;z-index:20;top:30px;left:0;min-width:100%;width:max-content;max-width:240px;display:flex;flex-direction:column;background:#0c0a16f5;border:1px solid hsla(var(--h),70%,65%,.5);box-shadow:0 6px 18px #0009;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}.srcmenu button{height:26px;padding:0 8px;border:0;border-bottom:1px solid rgba(255,255,255,.08);background:none;color:hsl(var(--h),80%,80%);font-family:inherit;font-size:10px;text-align:left;cursor:pointer;white-space:nowrap;touch-action:manipulation}.srcmenu button:last-child{border-bottom:0}.srcmenu button:active{background:hsla(var(--h),70%,50%,.25)}.srcmenu button.keys{color:#ffffff73}.linkrow{position:absolute;z-index:20;top:30px;left:0;right:0;display:flex;gap:4px;padding:4px;background:#0c0a16f5;border:1px solid hsla(var(--h),70%,65%,.5);box-shadow:0 6px 18px #0009}.linkrow input{flex:1;min-width:0;height:24px;padding:0 6px;border:1px solid rgba(255,255,255,.2);background:#00000073;color:#eee;font-family:inherit;font-size:10px;outline:none}.linkrow input:focus{border-color:hsla(var(--h),80%,70%,.8)}.linkrow button{flex:none;height:24px;padding:0 8px;border:1px solid hsla(var(--h),70%,65%,.55);background:hsla(var(--h),70%,50%,.15);color:hsl(var(--h),85%,80%);font-family:inherit;font-size:10px;cursor:pointer;touch-action:manipulation}.pf-dream{position:absolute;top:0;right:0;bottom:0;left:0;z-index:8;touch-action:none;cursor:grab}.pf-dream:active{cursor:grabbing}.pf-dream-hint{position:absolute;bottom:46px;left:50%;transform:translate(-50%);font-size:10px;color:#ffffff8c;background:#08070e80;padding:5px 12px;white-space:nowrap;pointer-events:none;text-shadow:0 1px 4px #000}.pf-dream-btns{position:absolute;bottom:12px;right:14px;display:flex;gap:8px}.pf-dream-btn{height:34px;padding:0 14px;border:1px solid rgba(190,160,255,.6);background:#140c22bf;color:#cdb6ff;font-family:inherit;font-size:12px;cursor:pointer;touch-action:manipulation}.pf-dream-btn:active{background:#bea0ff40}.pf-dream-btn.wake{border-color:#ffa0a099;color:#ffb6b6}.pf-bar{position:absolute;top:0;left:0;right:0;z-index:20;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:6px;padding:10px 14px;pointer-events:none}.pf-brand{display:flex;align-items:baseline;gap:8px;text-shadow:0 2px 8px rgba(0,0,0,.8)}.pf-name{font-size:15px;font-weight:700;letter-spacing:.12em;color:#eae6ff}.pf-sub{font-size:10px;color:#ffffff80;letter-spacing:.06em}.pf-actions{display:flex;gap:8px;pointer-events:auto}.btn{height:36px;padding:0 14px;border:1px solid rgba(255,255,255,.25);background:#0c0a16b3;color:#ddd;font-family:inherit;font-size:12px;cursor:pointer;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}.btn:active{background:#ffffff26}.btn.nav{padding:0 10px;font-size:16px;line-height:1}.btn.power{border-color:#5ee1ff80;color:#5ee1ff}.btn.power.on{background:#5ee1ff33;box-shadow:0 0 14px #5ee1ff59}.pf-notice{position:absolute;bottom:40px;left:50%;transform:translate(-50%);z-index:45;max-width:min(92vw,600px);padding:8px 14px;font-size:11px;line-height:1.45;color:#fff;background:#28081cf0;border:1px solid rgba(255,94,168,.65);box-shadow:0 4px 18px #00000080;cursor:pointer}.pf-hint{position:absolute;bottom:10px;left:50%;transform:translate(-50%);z-index:20;font-size:10px;color:#ffffff73;background:#08070e8c;padding:5px 12px;pointer-events:none;white-space:nowrap;text-shadow:0 1px 4px #000}.pf-menu{position:absolute;bottom:34px;left:50%;transform:translate(-50%);z-index:30;width:min(94vw,620px);background:#0c0a16eb;border:1px solid rgba(255,255,255,.15);padding:12px 14px 34px;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}.pf-search{width:100%;height:34px;margin-bottom:4px;padding:0 12px;border:1px solid rgba(255,255,255,.2);background:#0006;color:#eee;font-family:inherit;font-size:12px;outline:none}.pf-search::placeholder{color:#ffffff59}.pf-search:focus{border-color:#8cffdc99}.pf-menu-cat{font-size:10px;letter-spacing:.1em;color:#ffffff80;margin:6px 0}.pf-menu-chips{display:flex;flex-wrap:wrap;gap:7px}.pf-menu-sub{display:flex;align-items:flex-start;gap:10px;margin:2px 0 9px}.pf-menu-subcat{flex:none;width:82px;padding-top:10px;font-size:9px;letter-spacing:.08em;color:#ffffff61;line-height:1.3}.gdot{display:inline-block;width:7px;height:7px;margin-right:5px;border-radius:50%;background:hsl(var(--h),85%,62%);box-shadow:0 0 6px hsla(var(--h),90%,62%,.7)}.help-row{font-size:11px;line-height:1.55;color:#ffffffb8;margin:0 0 9px}.help-row b{display:inline-block;min-width:58px;margin-right:6px;color:#fff;font-weight:700}.help-row i{font-style:normal;color:#8cffdce6}.help-row kbd{display:inline-block;min-width:15px;padding:1px 5px;border:1px solid rgba(255,255,255,.28);border-radius:3px;background:#ffffff12;color:#fff;font:inherit;font-size:10px;text-align:center}.chip{height:34px;padding:0 14px;border:1px solid hsla(var(--h),75%,65%,.5);background:hsla(var(--h),75%,50%,.14);color:hsl(var(--h),85%,76%);font-family:inherit;font-size:12px;cursor:pointer}.chip:active{background:hsla(var(--h),75%,55%,.35)}.chip.preset{border-style:dashed;font-weight:700}.pf-keys{max-height:72vh;overflow-y:auto;-webkit-overflow-scrolling:touch}.keys-note{font-size:10px;line-height:1.6;color:#ffffff80;margin:0 0 8px}.keys-note b{color:#aaffe4e6;font-weight:400;word-break:break-all}.keys-row{display:block;margin:0 0 10px}.keys-label{display:block;margin-bottom:4px;font-size:10px;letter-spacing:.06em;color:#fff9}.keys-row input{width:100%;height:30px;padding:0 10px;border:1px solid rgba(255,255,255,.2);background:#0006;color:#eee;font-family:inherit;font-size:11px;outline:none}.keys-row input:focus{border-color:#8cffdc99}.keys-hint{display:block;margin-top:3px;font-size:9px;line-height:1.5;color:#ffffff59}.keys-actions{display:flex;gap:8px;margin-top:4px}.keys-actions .fbtn{--h: 165;flex:0 0 90px;height:30px}.pf-assets{--h: 165;max-height:72vh;overflow-y:auto;-webkit-overflow-scrolling:touch}.asset-add{margin-bottom:10px}.pf-assets .linkrow.lib{position:static;margin:0 0 10px;box-shadow:none;border-color:#8cffdc66}.asset-row{display:flex;align-items:center;gap:8px;padding:6px 2px;border-top:1px solid rgba(255,255,255,.08);font-size:11px}.asset-row.pending{color:#8cffdccc;border-top:0}.asset-kind{flex:none;width:18px;text-align:center;color:#fff9}.asset-kind.audio{color:#ffd166}.asset-kind.video{color:#ff9d6e}.asset-kind.image{color:#9fd0ff}.asset-name{flex:1 1 auto;min-width:60px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#ffffffd9}.asset-meta{flex:none;font-size:9px;color:#ffffff61;white-space:nowrap}.asset-use{flex:none;display:flex;flex-wrap:wrap;justify-content:flex-end;gap:5px;max-width:46%}.asset-hint{font-size:9px;color:#ffffff4d;white-space:nowrap}.pchip.mini{height:22px;padding:0 8px;font-size:10px}.srcmenu button.lib{color:#aaffe4e6}.srcmenu button.lib.on{background:hsla(var(--h),70%,50%,.25)}.srcmenu button.src.sep{border-top:1px solid rgba(255,255,255,.18)}.pf-presets{bottom:34px;-webkit-overflow-scrolling:touch}.pchip{flex:none;height:30px;padding:0 12px;border:1px dashed rgba(140,255,220,.4);background:#0a091299;color:#aaffe4e6;font-family:inherit;font-size:11px;cursor:pointer;white-space:nowrap;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);touch-action:manipulation}.pchip:active{background:#8cffdc33}.pchip.on{border-style:solid;border-color:#8cffdccc;background:#8cffdc24;color:#b8ffe6;box-shadow:0 0 10px #8cffdc33}.pchip.user{border-color:#ffc87880;color:#ffd8a0f2}.pchip.user.on{border-color:#ffc878d9;background:#ffc87824;box-shadow:0 0 10px #ffc87833}.save-row{display:flex;align-items:center;gap:6px;width:100%}.save-row .save-name{flex:1;width:auto;height:30px;margin:0}.pchip-x.sure{color:#ff7a7a;font-weight:700}.pchip-x{display:inline-block;margin-left:7px;padding:0 3px;color:#ffffff73;font-size:13px;line-height:1}.pchip-x:active{color:#ff7a7a}.pchip.action{border-style:solid;border-color:#ffffff59;color:#ffffffd9;background:#ffffff0f;font-weight:700}.pf-mixdock{position:absolute;bottom:34px;left:50%;transform:translate(-50%);z-index:40;display:flex;flex-direction:column;align-items:center}.pf-mixtab{display:flex;align-items:center;gap:6px;height:22px;padding:0 14px;border:1px solid rgba(255,255,255,.16);background:#0a0912ed;color:#ffffff8c;font-family:inherit;font-size:9px;letter-spacing:.14em;text-transform:uppercase;cursor:pointer;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}.pf-mixtab:hover{color:#ffffffe6}.pf-mixdock.open .pf-mixtab{border-bottom:none;color:#eae6ff}.mixtab-caret{font-style:normal;font-size:8px;color:#8cffdcd9}.pf-mixpanel{width:min(96vw,560px);background:#0a0912ed;border:1px solid rgba(255,255,255,.16);padding:10px 12px 12px;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}.mix-head{display:flex;align-items:center;gap:8px;margin-bottom:8px}.mix-title{font-size:11px;font-weight:700;letter-spacing:.12em;color:#eae6ff;margin-right:auto}.mix-xf{transform:scale(.85);margin:-6px -2px}.mbtn{height:30px;padding:0 12px;border:1px solid rgba(255,255,255,.25);background:#ffffff0d;color:#ccc;font-family:inherit;font-size:11px;cursor:pointer;touch-action:manipulation}.mbtn.on{border-color:#5ee1ffb3;color:#5ee1ff;background:#5ee1ff24;box-shadow:0 0 10px #5ee1ff40}.mix-strips{display:flex;gap:10px;justify-content:space-between}.strip{flex:1;display:flex;flex-direction:column;align-items:center;gap:4px;padding:8px 4px 6px;border:1px solid rgba(255,255,255,.1);background:#ffffff08}.strip.live{border-color:#ff5ea8b3;box-shadow:0 0 12px #ff5ea840}.cutbtn{width:44px;height:34px;border:1px solid rgba(255,255,255,.3);background:#ffffff0f;color:#ddd;font-family:inherit;font-size:14px;font-weight:700;cursor:pointer;touch-action:manipulation}.cutbtn.on{border-color:#ff5ea8;color:#ff5ea8;background:#ff5ea82e}.vfader{width:30px;height:74px;background:#00000073;border:1px solid rgba(255,255,255,.15);position:relative;overflow:hidden;cursor:ns-resize;touch-action:none}.vfader-fill{position:absolute;left:0;right:0;bottom:0;background:linear-gradient(#5ee1ff,#2b7f96);min-height:2px}.vfader-val{position:absolute;left:0;right:0;top:3px;text-align:center;font-size:8px;color:#ffffffd9;text-shadow:0 1px 2px #000;pointer-events:none}.strip-label{font-size:8px;letter-spacing:.04em;color:#ffffff80;white-space:nowrap}.pf-menu{max-height:70vh;overflow-y:auto}.pf-coop .coop-row{display:flex;align-items:center;gap:8px}.pf-coop .coop-key{flex:1;margin-bottom:0;text-transform:uppercase}.coop-keylabel{letter-spacing:.08em;font-weight:700}.coop-status{font-size:11px;color:#8cffdcd9;white-space:nowrap}.coop-err{font-size:11px;color:#ff8a8a;margin-bottom:6px}.node.locked{opacity:.6}.node.locked .node-knobs,.node.locked .steps,.node.locked .filebar{pointer-events:none}.node.locked .node-head{cursor:default}.node-cat.lockcat{cursor:help}.knob.dis,.vfader.dis{opacity:.45;pointer-events:none}.tgl:disabled,.chip:disabled,.mbtn:disabled,.cutbtn:disabled,.fbtn:disabled,.node-x:disabled,.node-byp:disabled{opacity:.35;cursor:not-allowed}.node-glsl{margin:6px 8px 0}.node-glsl textarea{width:100%;height:116px;box-sizing:border-box;resize:vertical;padding:6px 7px;border:1px solid rgba(255,255,255,.14);border-radius:3px;background:#06060cb8;color:#e2ecffeb;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:10px;line-height:1.45;-moz-tab-size:2;tab-size:2;white-space:pre;overflow:auto}.node-glsl textarea:focus{outline:none;border-color:#78dcb48c}.node-glsl textarea:disabled{opacity:.55}.node-glsl-err{margin:4px 0 0;padding:4px 6px;border-left:2px solid rgba(255,120,120,.85);background:#ff50501a;color:#ffbebef2;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:9px;line-height:1.4;white-space:pre-wrap;max-height:54px;overflow:auto}
