:root{--bg:#09090b;--panel:#101014;--line:#2d2a33;--text:#f0ede7;--muted:#8d8992;--acid:#d5ff3f;--hot:#ff544f;--blue:#65d9ff;font-family:Inter,ui-sans-serif,system-ui,-apple-system,sans-serif;color:var(--text);background:var(--bg)}*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden}body{background:radial-gradient(circle at 70% 20%,#1a1720 0,transparent 38%),var(--bg)}button,.load{font:700 11px/1 ui-monospace,SFMono-Regular,monospace;text-transform:uppercase;letter-spacing:.08em;color:var(--text);background:#17171c;border:1px solid var(--line);border-radius:0;min-height:44px;padding:0 16px;cursor:pointer}button:hover,.load:hover,button:focus-visible,.load:focus-within{border-color:var(--acid);color:var(--acid);outline:none}.primary{background:var(--acid);color:#090a08;border-color:var(--acid)}.primary:hover,.primary:focus-visible{color:#090a08;background:#edff9e}main{height:100dvh;display:grid;grid-template-rows:74px minmax(0,1fr)}header{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);padding:0 22px}.brand{display:flex;gap:14px;align-items:center}.mark{display:grid;place-items:center;width:46px;height:46px;border:1px solid var(--acid);color:var(--acid);font:700 9px ui-monospace,monospace;transform:rotate(-4deg)}h1{font:800 clamp(20px,2.2vw,34px)/.85 Arial Narrow,Impact,sans-serif;letter-spacing:-.03em;margin:0}header p{margin:7px 0 0;color:var(--muted);font:10px ui-monospace,monospace;text-transform:uppercase;letter-spacing:.13em}.transport{display:flex;gap:8px}.workspace{min-height:0;display:grid;grid-template-columns:minmax(0,1fr) 390px}.stage-wrap{min-width:0;min-height:0;display:grid;grid-template-rows:55px minmax(0,1fr) 34px;padding:0 20px 12px}.stage-head{display:flex;align-items:center;justify-content:space-between;font:10px ui-monospace,monospace;letter-spacing:.12em;color:var(--muted)}.stage-head strong{display:block;color:var(--acid);font-size:10px;margin-top:5px}.load{display:flex;align-items:center}.load input{position:absolute;opacity:0;width:1px}.stage-wrap svg{display:block;width:100%;height:100%;min-height:0;touch-action:none}.rings circle,.rings line{fill:none;stroke:#39343e;stroke-width:1}.rings circle:nth-child(2){stroke-dasharray:4 8}.rings line{opacity:.5}.stage-wrap text{fill:#6e6874;font:700 15px ui-monospace,monospace}.stage-wrap .listener{fill:var(--acid);font-size:24px}.stage-wrap polyline{fill:none;stroke:var(--hot);stroke-width:5;stroke-linecap:round;stroke-linejoin:round;filter:url(#glow)}.node{fill:#101014;stroke:var(--acid);stroke-width:4;cursor:grab}.node:active{cursor:grabbing}.node-index{fill:var(--text)!important;font-size:11px!important;pointer-events:none}.legend{display:flex;justify-content:space-between;text-transform:uppercase;color:#68636d;font:9px ui-monospace,monospace;letter-spacing:.12em}aside{min-height:0;overflow:auto;border-left:1px solid var(--line);background:rgba(12,12,15,.86)}.recipes{padding:18px;border-bottom:1px solid var(--line)}.section-label,summary{font:700 10px ui-monospace,monospace;letter-spacing:.13em;text-transform:uppercase}.section-label{color:var(--muted);margin-bottom:10px}.preset-row{display:grid;grid-template-columns:repeat(3,1fr);gap:5px}.preset-row button{padding:0 5px;font-size:9px}details{border-bottom:1px solid var(--line)}summary{height:48px;display:flex;align-items:center;justify-content:space-between;padding:0 18px;cursor:pointer;list-style:none}summary::-webkit-details-marker{display:none}summary:after{content:'+';color:var(--acid);margin-left:auto;padding-left:12px}details[open] summary:after{content:'−'}summary span{color:#77717d;font-weight:400}.controls{padding:2px 18px 18px;display:grid;gap:17px}.controls label{display:grid;grid-template-columns:1fr auto;gap:7px;color:#c8c3cb;font:11px ui-monospace,monospace;text-transform:uppercase}.controls output{color:var(--acid);font-variant-numeric:tabular-nums}.controls input{grid-column:1/-1;width:100%;accent-color:var(--acid);min-height:24px}.state-row{display:grid;grid-template-columns:1fr 1fr 1fr;gap:5px;padding:0 18px 18px}.state-row button{padding:0 5px;font-size:9px}aside footer{display:flex;justify-content:space-between;padding:18px;color:#625e66;font:9px ui-monospace,monospace;text-transform:uppercase}#toast{position:fixed;left:50%;bottom:18px;transform:translateX(-50%);background:var(--acid);color:#090a08;padding:10px 16px;font:700 10px ui-monospace,monospace;text-transform:uppercase;opacity:0;pointer-events:none;transition:opacity .15s}#toast.show{opacity:1}@media(max-width:760px){html,body{overflow:auto}main{height:auto;min-height:100dvh;display:block}header{position:sticky;top:0;z-index:5;background:#09090bf2;height:112px;display:grid;padding:10px 12px}.brand{justify-content:space-between}.brand .mark{order:2;width:40px;height:40px}.transport{display:grid;grid-template-columns:1fr 1fr 1fr}.transport button{padding:0 5px;font-size:9px}.workspace{display:block}.stage-wrap{height:500px;padding:0 8px 10px;grid-template-rows:54px minmax(0,1fr) 28px}.stage-head{padding:0 5px}.stage-wrap svg{width:100%;height:auto;max-height:410px}.legend{font-size:8px;padding:0 5px}aside{border-left:0;border-top:1px solid var(--line);overflow:visible}.recipes{padding:14px 12px}.preset-row button{font-size:8px}summary{padding:0 14px}.controls{padding-inline:14px}.state-row{padding-inline:14px}button,.load{min-height:44px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important}}