:root{--bg:#14181d;--panel:#1b2128;--panel2:#232b34;--line:#2f3a46;--text:#e6ebf0;--dim:#8b98a6;--notes:var(--accent);--trigger:#ef5b5b;--number:#4cc3f0;--sound:#78d68b;--accent:#78d68b;--c-str:#9fe0a8;--c-num:var(--accent);--c-prop:#8fc5ff;--c-fn:#e6ebf0;--c-dim:#6f7c8a;--c-punct:#8b98a6;--c-label:#ef8fb0;--mono:ui-monospace, "SF Mono", Menlo, Consolas, monospace;--ui:-apple-system, BlinkMacSystemFont, "Segoe UI", Inter, sans-serif}*{box-sizing:border-box}html,body{background:var(--bg);height:100%;color:var(--text);font:13px/1.4 var(--ui);margin:0;overflow:hidden}#app{flex-direction:column;height:100%;display:flex}button{font:inherit;color:inherit}.sp{flex:1}.topbar{background:var(--panel);border-bottom:1px solid var(--line);flex:none;align-items:center;gap:8px;height:48px;padding:8px 12px;display:flex}.brand{letter-spacing:.02em;margin-right:8px;font-size:15px}.brand b{color:var(--accent)}.btn{background:var(--panel2);border:1px solid var(--line);cursor:pointer;border-radius:7px;padding:5px 11px}.btn:hover:not(:disabled){background:#2a343f;border-color:#4a5a6a}.btn:disabled{opacity:.4;cursor:default}.btn.sm{padding:2px 8px;font-size:12px}.btn.primary{background:#2c6b3c;border-color:#3f8a52;min-width:92px;font-weight:600}.btn.primary.on{background:#7a2f2f;border-color:#a04444}.status{color:var(--dim);white-space:nowrap;text-overflow:ellipsis;max-width:360px;font-size:12px;overflow:hidden}.status.error,.status.warn{color:#ff9b8f}.status.playing{color:var(--accent)}.main{flex:1;grid-template-columns:172px 1fr minmax(380px,34%);min-height:0;display:grid}.palette{background:var(--panel);border-right:1px solid var(--line);-webkit-user-select:none;user-select:none;padding:8px 8px 24px;overflow-y:auto}.pal-title{margin:4px 4px 8px;font-weight:600}.pal-h{color:var(--dim);text-transform:uppercase;letter-spacing:.08em;margin:12px 4px 4px;font-size:11px}.pal-item{background:var(--panel2);border:1px solid var(--line);cursor:grab;touch-action:none;border-radius:7px;align-items:center;gap:8px;margin:2px 0;padding:6px 8px;display:flex}.pal-item:hover{border-color:#4a5a6a}.pal-item.disabled{opacity:.35;cursor:not-allowed}.pal-dot{background:#6b7886;border-radius:50%;width:10px;height:10px;box-shadow:inset 0 0 0 2px #0000004d}[data-type=notes]{--t:var(--notes)}[data-type=trigger]{--t:var(--trigger)}[data-type=number]{--t:var(--number)}[data-type=sound]{--t:var(--sound)}.pal-dot[data-type]{background:var(--t,#6b7886)}.pal-ghost{z-index:99;pointer-events:none;background:var(--panel2);border:1px solid var(--accent);border-radius:7px;padding:6px 10px;position:fixed;top:0;left:0;box-shadow:0 8px 20px #000a}.board{background-color:#171c22;background-image:radial-gradient(circle,#2d3743 1.4px,#0000 1.6px);background-size:var(--grid,24px) var(--grid,24px);touch-action:none;cursor:grab;position:relative;overflow:hidden}.board.panning{cursor:grabbing}.world{transform-origin:0 0;position:absolute;top:0;left:0}.cables{pointer-events:none;z-index:1;position:absolute;top:0;left:0;overflow:visible}.node{z-index:2}.board-hint{color:var(--dim);pointer-events:none;text-align:center;place-items:center;padding:40px;display:grid;position:absolute;inset:0}.zoom{background:var(--panel);border:1px solid var(--line);z-index:5;border-radius:8px;align-items:center;gap:4px;padding:3px;display:flex;position:absolute;bottom:10px;right:10px}.zoom button{cursor:pointer;background:0 0;border:0;border-radius:5px;padding:3px 9px}.zoom button:hover{background:var(--panel2)}.zoom-val{text-align:center;min-width:42px;color:var(--dim);font-size:12px}.cable{fill:none;stroke:var(--t,#888);stroke-width:6px;stroke-linecap:round;filter:drop-shadow(0 3px 2px #0000008c);opacity:.95}.wire[data-type=notes]{--t:var(--notes)}.wire[data-type=trigger]{--t:var(--trigger)}.wire[data-type=number]{--t:var(--number)}.wire[data-type=sound]{--t:var(--sound)}.cable-hit{fill:none;stroke:#0000;stroke-width:16px;pointer-events:stroke;cursor:pointer}.wire:hover .cable,.wire.selwire .cable{stroke-width:8px;filter:drop-shadow(0 0 6px var(--t))}.wire.lifted{opacity:.25}.cable.ghost{stroke:var(--t,#fff);stroke-dasharray:2 10;stroke-width:5px;opacity:.9}.ghost[data-type=notes]{--t:var(--notes)}.ghost[data-type=trigger]{--t:var(--trigger)}.ghost[data-type=number]{--t:var(--number)}.ghost[data-type=sound]{--t:var(--sound)}.pulse{fill:#fff;stroke:var(--t);stroke-width:3px;filter:drop-shadow(0 0 5px var(--t))}.pulse[data-type=notes]{--t:var(--notes)}.pulse[data-type=trigger]{--t:var(--trigger)}.pulse[data-type=number]{--t:var(--number)}.pulse[data-type=sound]{--t:var(--sound)}.node{-webkit-user-select:none;user-select:none;--cat:#6b7886;background:linear-gradient(#262f39,#1d242c);border:1px solid #3a4756;border-radius:10px;min-width:214px;max-width:420px;position:absolute;top:0;left:0;box-shadow:0 8px 18px #00000073,inset 0 1px #ffffff0f}.node.cat-sequencer{--cat:var(--accent)}.node.cat-source{--cat:#78d68b}.node.cat-transform{--cat:#b48cf2}.node.cat-combine{--cat:#8fa0b3}.node.cat-effect{--cat:#ef8f5b}.node.cat-number{--cat:#4cc3f0}.node.cat-output{--cat:#e6ebf0}.node.selected{border-color:var(--cat);box-shadow:0 0 0 1px var(--cat), 0 8px 18px #00000073}.node.hl{box-shadow:0 0 0 2px #fff4, 0 0 18px var(--cat)}.node.live{box-shadow:0 0 0 2px var(--cat), 0 0 22px var(--cat)}.node.dragging{opacity:.92}.n-head{border-bottom:1px solid #101419;border-top:3px solid var(--cat);cursor:grab;background:#ffffff08;border-radius:9px 9px 0 0;align-items:center;gap:4px;padding:7px 8px 7px 10px;display:flex}.n-title{letter-spacing:.02em;flex:1;font-size:12.5px;font-weight:600}.n-btn{color:var(--dim);cursor:pointer;background:0 0;border:0;padding:0 5px;font-size:14px;line-height:1}.n-btn:hover{color:var(--text)}.n-del:hover{color:#ff8f8f}.n-body{flex-direction:column;gap:7px;padding:8px 10px 10px 12px;display:flex}.node.collapsed{min-width:160px}.blurb{color:var(--dim);max-width:250px;font-size:11px;line-height:1.35}.ports{justify-content:space-between;align-items:flex-start;padding:8px 0 0;display:flex}.rail{z-index:3;flex-direction:column;gap:6px;display:flex}.rail-in{margin-left:-9px}.rail-out{align-items:flex-end;margin-right:-9px}.rail-row{align-items:center;gap:4px;display:flex}.rail-label{color:var(--dim);font-size:10px}.jack{border:3px solid var(--t,#5b6775);cursor:crosshair;background:#0c0f13;border-radius:50%;flex:none;width:18px;height:18px;box-shadow:inset 0 2px 3px #000,0 0 0 1px #0006}.jack.plugged{background:var(--t,#5b6775);box-shadow:0 0 6px var(--t)}.jack.param{--t:var(--number);border-width:2px;width:11px;height:11px;position:absolute;top:-3px;right:2px}.jack.param:not(.plugged){opacity:.75}.jack:hover{transform:scale(1.15)}.wiring .jack.ok{box-shadow:0 0 0 3px #fff3, 0 0 10px var(--t,#fff);animation:1s infinite pulse-ring}.wiring .jack.no{opacity:.25;cursor:not-allowed}.wiring .jack.hot{background:var(--t,#fff);transform:scale(1.35)}@keyframes pulse-ring{50%{box-shadow:0 0 0 5px #fff1, 0 0 14px var(--t,#fff)}}.jack:not([data-type]){--t:#6b7886}.controls{flex-wrap:wrap;gap:4px 6px;display:flex}.kcell{border-radius:8px;flex-direction:column;align-items:center;width:56px;padding:3px 0 2px;display:flex;position:relative}.kcell.hl{outline:1px solid var(--cat);background:#ffffff18}.kcell.is-default .knob-svg{opacity:.55}.kcell.is-default .k-label{color:#6c7886}.kcell.inactive{opacity:.35}.kcell.wired .k-val{color:var(--number)}.knob{cursor:ns-resize;touch-action:none;border-radius:50%;outline:none;width:48px;height:48px}.knob:focus-visible{outline:2px solid #fff6}.knob.off{cursor:default;opacity:.4}.k-track{fill:none;stroke:#0e1216;stroke-width:4px;stroke-linecap:round}.k-fill{fill:none;stroke:var(--cat);stroke-width:4px;stroke-linecap:round}.k-cap{fill:#39444f;stroke:#11161b;stroke-width:1.5px}.knob:hover .k-cap,.knob.turning .k-cap{fill:#44515e}.k-ind{stroke:#fff;stroke-width:2.5px;stroke-linecap:round}.k-val{font:11px var(--mono);color:var(--text);margin-top:-2px}.k-label{font:10.5px var(--mono);color:var(--c-prop)}.field{color:var(--dim);align-items:center;gap:8px;font-size:11px;display:flex}.field>span{flex:none;width:42px}.sel,.txt{min-width:0;color:var(--text);font:12px var(--mono);background:#11161b;border:1px solid #364250;border-radius:6px;flex:1;padding:3px 6px}.txt.num{max-width:86px}.sel:focus,.txt:focus{outline:1px solid var(--cat)}.field:hover{color:var(--text)}.seq{flex-direction:column;gap:4px;display:flex}.seq-grid{grid-template-columns:var(--lab,26px) repeat(var(--steps), 20px);align-items:center;gap:2px;display:grid}.key-label{color:var(--dim);text-align:right;padding-right:3px;font-size:9px}.key-label.black{color:#5d6a78}.cell{cursor:pointer;background:#11161b;border:0;border-radius:3px;height:14px;padding:0;position:relative}.cell.black{background:#0c1014}.cell.beat{box-shadow:inset 2px 0 #2d3947}.cell:hover{background:#26313c}.cell.on{background:var(--cat);box-shadow:0 0 6px #0008,inset 0 -3px #0004}.cell.tied{background:color-mix(in srgb, var(--cat) 45%, #11161b)}.cell.now{background:#fff;box-shadow:0 0 10px #fff}.seq-extra{flex-direction:column;gap:3px;display:flex}.row-line{align-items:flex-end;gap:0;display:flex}.row-label{width:calc(var(--lab,26px) + 2px);color:var(--dim);text-align:right;flex:none;padding-right:5px;font-size:9px}.vel-row,.len-row{grid-template-columns:repeat(var(--steps), 20px);gap:2px;display:grid}.vel{cursor:ns-resize;touch-action:none;background:#11161b;border-radius:3px;height:30px;position:relative}.vel i{background:color-mix(in srgb, var(--cat) 70%, #0000);border-radius:3px;display:block;position:absolute;bottom:0;left:0;right:0}.vel.rest i{background:#36414d}.len{color:#cfd8e1;height:16px;font:10px var(--mono);cursor:pointer;background:#11161b;border:0;border-radius:3px;padding:0}.len.rest{color:#4b5764}.len.covered{color:#3a4551}.len.now{background:#fff3}.len:hover{background:#26313c}.codecol{background:var(--panel);border-left:1px solid var(--line);flex-direction:column;min-width:0;min-height:0;display:flex}.code-head{border-bottom:1px solid var(--line);align-items:center;gap:8px;padding:8px 10px;display:flex}.toggle{color:var(--dim);cursor:pointer;align-items:center;gap:4px;font-size:12px;display:flex}.code-host{background:#12171c;flex:1;min-height:0;overflow:auto}.code-host .cm-editor{background:0 0;min-height:100%}.code-host .cm-editor.cm-focused{outline:none}.cm-scroller{font:13px/1.65 var(--mono)!important}.cm-content{caret-color:#0000;padding:10px 0!important}.cm-line{padding:0 12px!important}.cm-note{color:#7c8b9a;font:italic 11.5px var(--ui);cursor:default;background:#ffffff0a;border-radius:4px;margin-left:14px;padding:1px 6px}.cm-note:hover{color:#cfd8e1;background:#ffffff14}.cm-hover-node{background:#78d68b45;border-radius:3px;outline:1px solid #78d68b80}.cm-hover-key{background:var(--accent)66;outline:1px solid var(--accent);border-radius:3px}.cm-play{background:#ffffff42;border-radius:3px;box-shadow:0 0 8px #fff8;color:#fff!important}.learn-banner{background:#1d3326;border-top:1px solid #2f5a3f;margin:0;padding:10px 12px;font-size:12.5px}.learn-banner .learned{color:var(--accent);font-weight:600}.learn-banner .rebuild{color:var(--dim);margin-top:3px;font-size:11.5px}.issues{color:#e6b86a;padding:0 12px;font-size:12px}.issues:not(:empty){border-top:1px solid var(--line);padding:8px 12px}.issue{cursor:default}.ro-note{color:var(--dim);border-top:1px solid var(--line);padding:6px 12px 8px;font-size:11px}.pop{z-index:60;background:var(--panel);border:1px solid #44525f;border-radius:10px;min-width:260px;max-width:360px;max-height:72vh;padding:6px;position:fixed;overflow:auto;box-shadow:0 14px 34px #000b}.menu{flex-direction:column;gap:2px;display:flex}.menu.wide{width:330px}.menu-h{color:var(--dim);text-transform:uppercase;letter-spacing:.08em;padding:8px 8px 3px;font-size:11px}.menu-item{text-align:left;cursor:pointer;background:0 0;border:0;border-radius:6px;padding:7px 10px}.menu-item:hover{background:var(--panel2)}.menu-row{align-items:center;gap:6px;padding:3px 4px;display:flex}.menu-row .grow{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.menu-row small{color:var(--dim)}.menu-empty{color:var(--dim);padding:4px 8px;font-size:12px}.toasts{z-index:80;pointer-events:none;flex-direction:column;align-items:center;gap:6px;display:flex;position:fixed;bottom:18px;left:50%;transform:translate(-50%)}.toast{pointer-events:auto;background:#2a3440;border:1px solid #4a5a6a;border-radius:9px;align-items:center;gap:10px;max-width:560px;padding:7px 12px;display:flex;box-shadow:0 8px 22px #000a}.cell.now:not(.on){background:#ffffff30}.drums{flex-direction:column;gap:3px;display:flex}.trk{align-items:center;gap:4px;display:flex}.trk-name{flex:none;width:52px;padding:2px 5px;font-size:11px}.trk-name.muted{opacity:.4;text-decoration:line-through}.trk-cells{grid-template-columns:repeat(var(--steps), 18px);gap:2px;display:grid}.trk-cells .cell{height:20px}.trk-btn{color:var(--dim);cursor:pointer;background:0 0;border:1px solid #364250;border-radius:4px;padding:0 5px;font-size:11px;line-height:18px}.trk-btn:hover{color:var(--text)}.trk-btn.active{color:#fff;background:#7a2f2f}.trk-add{align-self:flex-start;margin-top:2px}.cell.hid{color:var(--cat);background:#2a2f1f;font-size:9px;line-height:14px}.seq-main{align-items:stretch;gap:6px;display:flex}.oct-col{color:var(--dim);flex-direction:column;align-items:center;gap:2px;font-size:9px;display:flex}.oct{writing-mode:vertical-lr;width:16px;accent-color:var(--cat);cursor:ns-resize;direction:rtl;flex:1;margin:0}.oct-label{font:9px var(--mono);color:var(--dim)}[data-type=key]{--t:var(--key)}:root{--key:#e879c9}.wire[data-type=key],.ghost[data-type=key],.pulse[data-type=key]{--t:var(--key)}.key-label{white-space:nowrap}.slot{gap:2px;min-width:0;display:flex}.slot .cell{min-width:0;font:600 8px var(--mono);color:#1a1405;flex:1;padding:0;line-height:14px}.trk-cells .slot .cell{line-height:20px}.xbtn{color:#6c7886}.xbtn.active{color:#f2d78a;background:#2b2a1c}.xbtn.covered{opacity:.4}.trk-foot{align-items:center;gap:8px;margin-top:2px;display:flex}.hintline{color:#6c7886;font-size:10px}.node.cat-view{--cat:#7aa2ff}.viewcanvas{background:#0b0f13;border:1px solid #27313b;border-radius:6px;width:240px;height:102px;display:block}.cell{justify-content:center;align-items:stretch;display:flex}.cell i{background:#1a1405;border-radius:1px;flex:1;max-width:4px;margin:2px 1px}.trk-div{gap:2px;margin-bottom:3px;margin-left:56px;display:grid}.trk-div .len{color:#6c7886;justify-content:center;align-items:center;height:18px;display:flex}.trk-div .len.active{color:#f2d78a;background:#2b2a1c}.xbtn{justify-content:center;align-items:center;display:flex}.xbtn .xicon{width:100%;max-width:24px;height:12px}.trk.selected .trk-name{border-color:var(--cat)}.trk.selected{box-shadow:-4px 0 0 -1px var(--cat)}.xpick{z-index:90;background:var(--panel);border:1px solid #44525f;border-radius:10px;gap:4px;padding:6px;display:flex;position:fixed;box-shadow:0 14px 34px #000b}.xpick-btn{background:var(--panel2);border:1px solid var(--line);cursor:pointer;color:#cfd8e1;border-radius:7px;flex-direction:column;align-items:center;gap:2px;width:40px;padding:5px 2px;display:flex}.xpick-btn:hover{border-color:var(--accent);color:#fff}.xpick-btn.cur{border-color:var(--accent);background:#2b2a1c}.xpick-btn .xicon{width:28px;height:16px}.xpick-btn span{font:10px var(--mono);color:var(--dim)}.ta-pop{z-index:95;background:var(--panel);border:1px solid #44525f;border-radius:8px;max-height:220px;padding:3px;position:fixed;overflow-y:auto;box-shadow:0 12px 30px #000b}.ta-item{font:12px var(--mono);cursor:pointer;color:var(--text);border-radius:5px;padding:3px 9px}.ta-item:hover,.ta-item.cur{color:#fff;background:#2a4a35}.trk-name.bad{color:#ff9b8f;border-color:#d65c5c}.ta-item{align-items:baseline;gap:10px;display:flex}.ta-name{min-width:34px;font-weight:600}.ta-desc{color:var(--dim);font:11px var(--ui);white-space:nowrap}.ta-item.cur .ta-desc,.ta-item:hover .ta-desc{color:#cfe8d8}.rep-line{align-items:center;margin-bottom:3px}.inst-btn{min-width:0;color:var(--text);font:12px var(--mono);cursor:pointer;text-align:left;background:#11161b;border:1px solid #364250;border-radius:6px;flex:1;align-items:baseline;gap:6px;padding:3px 8px;display:flex}.inst-btn:hover{border-color:var(--cat)}.inst-btn.bad{border-color:#d65c5c}.ib-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.ib-id{color:var(--dim);white-space:nowrap;margin-left:auto;font-size:10px}.ip-pop{z-index:95;background:var(--panel);border:1px solid #44525f;border-radius:10px;flex-direction:column;gap:6px;width:370px;padding:8px;display:flex;position:fixed;box-shadow:0 14px 34px #000b}.ip-search{width:100%}.ip-chips{flex-wrap:wrap;gap:4px;display:flex}.ip-chip{background:var(--panel2);border:1px solid var(--line);cursor:pointer;color:var(--dim);border-radius:12px;padding:1px 9px;font-size:11px}.ip-chip:hover{color:var(--text)}.ip-chip.on{color:#fff;background:#2a4a35;border-color:#3f8a52}.ip-list{max-height:260px;overflow-y:auto}.ip-item{cursor:pointer;border-radius:6px;align-items:baseline;gap:8px;padding:4px 8px;display:flex}.ip-item:hover,.ip-item.cur{background:#2a4a35}.ip-item.sel .ip-name{color:var(--accent)}.ip-name{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-size:12.5px;overflow:hidden}.ip-id{font:10px var(--mono);color:var(--dim)}.ip-kind{border:1px solid var(--line);color:var(--dim);white-space:nowrap;border-radius:8px;padding:0 6px;font-size:10px}.ip-kind.k-soundfont{color:#8fc5ff;border-color:#2d4a6a}.ip-kind.k-sample{color:var(--accent);border-color:#6a5320}.ip-kind.k-synth{color:#78d68b;border-color:#2f5a3f}.browse-btn{background:var(--panel2);color:var(--dim);cursor:pointer;border:1px solid #364250;border-radius:6px;flex:none;width:24px;padding:0;font-size:12px}.browse-btn:hover{color:var(--text);border-color:var(--cat)}.ip-star{color:#5b6775;cursor:pointer;background:0 0;border:0;padding:0 2px;font-size:14px;line-height:1}.ip-star:hover,.ip-star.on{color:var(--accent)}.ip-foot{color:var(--dim);padding:2px 4px 0;font-size:11px}.ta-name{white-space:nowrap}.mm{cursor:ns-resize;touch-action:none;border:1px solid #27313b;border-radius:4px;outline:none;width:26px;display:block}.mm:focus-visible{border-color:var(--cat)}.field.driven .sel{border-color:var(--key);color:#fff;opacity:1;cursor:default;-webkit-text-fill-color:#fff;background:#2a1d27}.field.driven .txt{opacity:.6;border-style:dashed;border-color:var(--trigger)}.field.driven:has(.sel)>span{color:var(--key);white-space:nowrap;width:auto;min-width:42px}.field.driven:has(.sel)>span:after{content:" ← Key";font-size:9px}.field.driven:not(:has(.sel))>span{color:var(--trigger)}.xbtn.active,.trk-div .len.active{color:#fff3c4;box-shadow:inset 0 0 0 1.5px var(--accent);background:#5a4a14}.mm{width:44px}.node{width:max-content}:is(.node:has(.seq),.node:has(.drums)){max-width:none}.node[data-type=drums] .n-body{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:end;gap:6px 12px;display:grid}.node[data-type=drums] .drums{grid-column:1/-1}.node[data-type=drums] .field{grid-column:1/-1;min-width:0}.node[data-type=drums] .controls{grid-column:1/-1}.node[data-type=drums] .blurb{grid-column:1/-1;width:0;min-width:100%;max-width:none}.node[data-type=drums] .kcell{width:48px}.hintline{white-space:nowrap}.btn.on{color:#cfe8d8;border-color:#3f8a52}.code-hidden .main{grid-template-columns:172px 1fr 0}.code-hidden .codecol{display:none}.trk-foot{grid-template-columns:auto minmax(0,1fr);align-items:center;gap:8px;display:grid}.hintline{white-space:normal;width:0;min-width:100%;line-height:1.2;display:block}.n-body>.controls{width:0;min-width:100%}.node[data-type=synth],.node[data-type=sample]{min-width:310px}.node[data-type=output]{min-width:250px}.field .sel,.field .txt,.field .inst-btn{flex:1 1 0;width:0;min-width:0}.field .txt.num{flex:none;width:86px;max-width:86px}.chords{flex-direction:column;gap:4px;display:flex}.chord-row{gap:4px;display:grid}.cstep{height:48px;color:var(--text);cursor:pointer;background:#1b2128;border:1px solid #3a4756;border-radius:8px;flex-direction:column;justify-content:center;align-items:center;gap:1px;padding:0 2px;display:flex;box-shadow:inset 0 -3px #0005}.cstep:hover{border-color:var(--cat)}.cstep b{font:600 13px var(--mono);white-space:nowrap}.cstep small{font:10px var(--mono);color:var(--dim)}.cstep.rest{color:#4b5764}.cstep.tied{opacity:.45}.cstep.now{background:var(--accent);color:#1a1405;box-shadow:0 0 12px var(--accent);border-color:#fff}.cstep.now small{color:#4a3a10}.cpick{z-index:95;background:var(--panel);border:1px solid #44525f;border-radius:10px;flex-direction:column;gap:6px;width:310px;padding:10px;display:flex;position:fixed;box-shadow:0 14px 34px #000b}.cp-h{color:var(--dim);text-transform:uppercase;letter-spacing:.06em;margin-top:2px;font-size:11px}.cp-row{flex-wrap:wrap;gap:4px;display:flex}.cp-foot{justify-content:space-between;margin-top:4px}.cp-chip{background:var(--panel2);border:1px solid var(--line);cursor:pointer;color:var(--text);border-radius:12px;padding:2px 10px;font-size:12px}.cp-chip:hover{border-color:var(--accent)}.cp-chip.on{border-color:var(--accent);color:#fff3c4;background:#5a4a14}.cp-btn{background:var(--panel2);border:1px solid var(--line);cursor:pointer;min-width:52px;color:var(--text);border-radius:8px;flex-direction:column;align-items:center;gap:1px;padding:5px 4px;display:flex}.cp-btn b{font:600 13px var(--mono)}.cp-btn small{font:10px var(--mono);color:var(--dim)}.cp-btn:hover{border-color:var(--accent)}.cp-btn.on{border-color:var(--accent);background:#5a4a14}.ph-row{align-items:center;gap:2px;height:8px;display:grid}.ph-line{align-items:center;height:8px;margin-bottom:3px}.ph-dot{background:#2f3a46;border-radius:50%;justify-self:center;width:4px;height:4px;transition:background 80ms,transform 80ms;display:block}.ph-dot.on{background:var(--cat);box-shadow:0 0 6px var(--cat);transform:scale(1.6)}.drums>.ph-row{margin-bottom:2px;margin-left:56px}.chords>.ph-row{margin-bottom:2px}.wave-row{gap:4px;margin-bottom:4px;display:flex}.wave-btn{color:#7c8b9a;cursor:pointer;background:#11161b;border:1px solid #364250;border-radius:6px;flex:1;justify-content:center;align-items:center;height:26px;padding:0;display:flex}.wave-btn:hover{color:var(--text);border-color:#4a5a6a}.wave-btn.on{color:var(--cat);border-color:var(--cat);background:#172620}.n-head{position:relative}.hj-l,.hj-r{z-index:3;position:absolute;top:calc(50% - 9px)}.hj-l{left:-9px}.hj-r{right:-9px}.n-head{padding-left:14px;padding-right:14px}.n-mute{align-items:center;padding:0 4px;display:flex}.n-mute.on{color:#ff9b8f}.node.muted{opacity:.55}.node.muted .n-title{-webkit-text-decoration:line-through #ff9b8f;text-decoration:line-through #ff9b8f}.menu-item.danger{color:#ff9b8f}.k-label{text-transform:uppercase;letter-spacing:.05em;font-size:9px}.bpm{color:var(--dim);align-items:center;gap:4px;font-size:11px;display:flex}.bpm-input{width:54px;color:var(--text);font:600 14px var(--mono);text-align:right;background:#11161b;border:1px solid #364250;border-radius:6px;padding:4px 6px}.bpm-input:disabled{opacity:.4}.palette-hidden .main{grid-template-columns:44px 1fr minmax(380px,34%)}.palette-hidden.code-hidden .main{grid-template-columns:44px 1fr}.palette-hidden .palette{padding:8px 4px;overflow:hidden}.palette-hidden .palette .pal-sec,.palette-hidden .pal-title,.palette-hidden .pal-collapse{display:none}.palette-hidden .pal-head{justify-content:center}.add-menu{width:380px}.add-search{width:100%;margin-bottom:4px}.add-list{max-height:340px;overflow-y:auto}.add-item{cursor:pointer;border-radius:6px;grid-template-columns:1fr auto;gap:0 8px;padding:5px 8px;display:grid}.add-item:hover,.add-item.cur{background:#2a4a35}.add-t{font-size:13px;font-weight:600}.add-c{color:var(--dim);align-self:center;font-size:10px}.add-b{color:var(--dim);white-space:nowrap;text-overflow:ellipsis;grid-column:1/-1;font-size:11px;overflow:hidden}.pal-head{align-items:center;gap:6px;margin:2px 2px 8px;display:flex}.pal-head .pal-title{flex:1;margin:0;font-weight:600}.pal-burger,.pal-collapse{background:var(--panel2);border:1px solid var(--line);color:var(--text);cursor:pointer;border-radius:7px;width:30px;height:28px;padding:0;font-size:15px;line-height:1}.pal-burger:hover,.pal-collapse:hover{background:#2a343f;border-color:#4a5a6a}.topbar{gap:12px}.transport{background:var(--panel2);border:1px solid var(--line);border-radius:12px;align-items:center;gap:10px;margin:0 auto;padding:4px 12px 4px 4px;display:flex}.play-btn{color:#1a1208;cursor:pointer;background:#f3c9a0;border:0;border-radius:9px;justify-content:center;align-items:center;width:38px;height:34px;display:flex}.play-btn:hover{background:#ffd9b8}.play-btn.on{background:#e9967a}.transport .status{min-width:56px;max-width:120px}.beats-sel{color:var(--text);font:600 13px var(--mono);background:#11161b;border:1px solid #364250;border-radius:6px;padding:3px 2px}.toolbar{align-items:center;gap:4px;display:flex}.icon-btn{justify-content:center;align-items:center;width:34px;height:32px;padding:0;display:inline-flex}.set-row{justify-content:space-between;align-items:center;gap:10px;padding:4px 6px;display:flex}.set-l{font-size:12.5px}.seg{border:1px solid var(--line);border-radius:8px;display:flex;overflow:hidden}.seg-btn{background:var(--panel2);cursor:pointer;color:var(--dim);border:0;padding:4px 10px;font-size:12px}.seg-btn.on{color:#f3c9a0;background:#3a3326}.fold{border-top:1px solid #11161b;margin-top:2px}.fold-head{width:100%;color:var(--dim);font:11px var(--mono);cursor:pointer;text-align:left;background:0 0;border:0;justify-content:space-between;align-items:center;padding:7px 0 5px;display:flex}.fold-head:hover{color:var(--text)}.fold-chev{transition:transform .15s}.fold.open .fold-chev{transform:rotate(180deg)}.fold-body{flex-direction:column;gap:7px;padding:2px 0 6px;display:none}.fold.open .fold-body{display:flex}.node[data-type=drums] .fold{grid-column:1/-1}.cstep{height:54px}.cshape{color:var(--dim)}.cstep:hover .cshape{color:var(--text)}.cstep.now .cshape{color:#4a3a10}.cpre-btn{background:var(--panel2);border:1px solid var(--line);color:var(--dim);cursor:pointer;border-radius:12px;align-self:flex-start;margin-bottom:2px;padding:2px 10px;font-size:11px}.cpre-btn:hover{color:var(--text);border-color:#f3c9a0}.kbd{border-radius:3px;margin:2px 0;display:block}.preset-grid{grid-template-columns:repeat(3,1fr);gap:6px;display:grid}.preset-card{background:var(--panel2);border:1px solid var(--line);cursor:pointer;color:#f3c9a0;border-radius:9px;flex-direction:column;align-items:center;gap:2px;padding:6px 4px;display:flex}.preset-card b{color:var(--text);font-size:12px}.preset-card small{color:var(--dim);font:10px var(--mono)}.preset-card:hover{border-color:#f3c9a0}:root{--accent:#f3c9a0}#app.colourful{--accent:#f2b134}#app:not(.colourful) .node{--cat:var(--accent)}#app:not(.colourful) .pal-item .pal-dot{background:#6b7886}#app:not(.colourful) .pal-item .pal-dot[data-type]{background:var(--t,#6b7886)}.cable{stroke-width:4.5px;filter:drop-shadow(0 2px 1.5px #00000073)}.wire:hover .cable,.wire.selwire .cable{stroke-width:6.5px}.marquee{border:1px dashed var(--accent);z-index:6;pointer-events:none;background:#f3c9a01a;position:absolute}.minimap{z-index:5;cursor:pointer;border:1px solid #3a4756;border-radius:8px;width:190px;height:120px;position:absolute;bottom:10px;left:10px}.n-resize{cursor:ew-resize;opacity:0;z-index:4;background:linear-gradient(135deg,#0000 55%,#6b7886 55% 62%,#0000 62% 72%,#6b7886 72% 79%,#0000 79%);border-bottom-right-radius:10px;width:16px;height:16px;position:absolute;bottom:0;right:0}.node:hover .n-resize,.node.selected .n-resize{opacity:.85}.wlabel{opacity:0;pointer-events:none;transition:opacity .12s}.wlabel rect{fill:#11161b;stroke:var(--t,#6b7886);stroke-width:1px}.wlabel text{fill:var(--t,#cfd8e1);font:600 9px var(--mono)}.wire:hover .wlabel,.wire.selwire .wlabel,.labels-always .wlabel{opacity:1}.gframe{z-index:0;background:#ffffff06;border:1px dashed #4a5a6a;border-radius:14px;position:absolute}.g-head{cursor:grab;align-items:center;gap:8px;height:32px;padding:0 10px;display:flex;position:absolute;top:0;left:0;right:0}.g-name{color:var(--text);font:600 12.5px var(--ui);background:0 0;border:0;border-radius:4px;width:140px;padding:2px 4px}.g-name:focus{outline:1px solid var(--accent);background:#11161b}.g-count{color:var(--dim);flex:1;font-size:11px}.g-btn{color:var(--dim);cursor:pointer;background:0 0;border:0;padding:0 4px;font-size:14px}.g-btn:hover{color:var(--text)}.gframe.collapsed{border:1px solid #4a5a6a;border-top:3px solid var(--accent);background:linear-gradient(#262f39,#1d242c);box-shadow:0 8px 18px #00000073}.gframe.collapsed .g-head{height:100%}.gframe.live{box-shadow:0 0 0 2px var(--accent), 0 0 22px var(--accent)}.node.gh{display:none}.selbar{z-index:6;background:var(--panel);border:1px solid #44525f;border-radius:10px;align-items:center;gap:8px;padding:5px 10px;font-size:12px;display:none;position:absolute;top:10px;left:50%;transform:translate(-50%);box-shadow:0 8px 24px #0009}.about a{color:var(--accent)}
