:root{--bg:#14110f;--panel:#1d1916;--line:#3a322b;--ink:#e8ddd0;--dim:#8a7c6c;--amber:#ff9f43;--acc:#ff9f43;--glow:#ff9f438c;--surface-1:#15110e;--surface-2:#2a211a;--surface-3:#241b14;--surface-4:#171310;--surface-chart:#0d0a08;--surface-chip:#211a14;--surface-recess:#141019;--surface-input:#1b1510;--on-amber:#1a1206;--bg-soft:#241d18}:root[data-theme=light]{--bg:#f5efe4;--panel:#fff;--line:#d4c8b9;--ink:#2a221a;--dim:#7d6f5e;--amber:#d97706;--acc:#d97706;--glow:#d9770673;--surface-1:#f0e8da;--surface-2:#e6dcc7;--surface-3:#ddd0b6;--surface-4:#ede4d3;--on-amber:#fff;--bg-soft:#fff;--surface-chart:#fbf5e7;--surface-chip:#fff4dd;--surface-recess:#f0e8d6;--surface-input:#fbf5e7}*{box-sizing:border-box;margin:0;padding:0}body{background:var(--bg);background-image:radial-gradient(circle at 50% -10%, var(--bg-soft) 0%, var(--bg) 60%);color:var(--ink);min-height:100vh;padding:calc(var(--top-h,64px) + 16px) 16px calc(var(--bot-h,80px) + 20px);justify-content:center;align-items:flex-start;font-family:DM Mono,monospace;display:flex}.machine{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}.app{flex-direction:column;align-items:stretch;gap:18px;width:100%;max-width:980px;display:flex}.machine{width:100%;box-shadow:none;background:0 0;border:none;flex-direction:column;gap:16px;padding:0;display:flex}.machine>header{order:1}.machine>.controls{order:2}.machine>.arrange{order:3}.machine>.patbox{order:4}.machine>footer{order:5}.machine>.botctl{order:6}.secbox{order:0;padding:18px}.patcar{display:flex}@media (min-width:1100px){body{overflow:hidden}.app,.topbar .bar-inner{max-width:none}.patcar{flex-direction:row;align-items:flex-start;gap:0}.patcar>.patbox{flex-grow:var(--g0,1.4);contain:layout;flex-shrink:1;flex-basis:0;order:0;min-width:0}.patcar>.secbox{flex-grow:var(--g1,1.1);contain:layout;flex-shrink:1;flex-basis:0;order:0;min-width:0}.patcar>.botctl{flex-grow:var(--g2,.9);contain:layout;flex-shrink:1;flex-basis:0;order:0;min-width:0}.colsplit{cursor:col-resize;touch-action:none;flex:0 0 16px;justify-content:center;align-self:stretch;align-items:center;display:flex}.colsplit:before{content:"";background:var(--line);border-radius:3px;width:3px;height:46px;transition:background .12s}.colsplit:hover:before,.colsplit.drag:before{background:var(--amber)}.patcar>.patbox,.patcar>.secbox,.patcar>.botctl{max-height:calc(100dvh - var(--top-h,64px) - var(--secrow-h,0px) - var(--bot-h,64px) - 60px);scrollbar-width:thin;scrollbar-color:#5a4d40 transparent;min-height:0;overflow:hidden auto}.patcar>.patbox::-webkit-scrollbar{width:8px}.patcar>.secbox::-webkit-scrollbar{width:8px}.patcar>.botctl::-webkit-scrollbar{width:8px}.patcar>.patbox::-webkit-scrollbar-track{background:0 0}.patcar>.secbox::-webkit-scrollbar-track{background:0 0}.patcar>.botctl::-webkit-scrollbar-track{background:0 0}.patcar>.patbox::-webkit-scrollbar-thumb{background:#3a322b;border-radius:4px}.patcar>.secbox::-webkit-scrollbar-thumb{background:#3a322b;border-radius:4px}.patcar>.botctl::-webkit-scrollbar-thumb{background:#3a322b;border-radius:4px}.patcar>.patbox::-webkit-scrollbar-thumb:hover{background:#5a4d40}.patcar>.secbox::-webkit-scrollbar-thumb:hover{background:#5a4d40}.patcar>.botctl::-webkit-scrollbar-thumb:hover{background:#5a4d40}}@media (max-width:1099px){.patcar{scroll-snap-type:x mandatory;scroll-behavior:smooth;-webkit-overflow-scrolling:touch;scrollbar-width:none;flex-direction:row;order:4;align-items:flex-start;gap:12px;overflow-x:auto}.patcar::-webkit-scrollbar{display:none}.patcar>.patbox,.patcar>.secbox,.patcar>.botctl{scroll-snap-align:center;flex:0 0 100%;order:0;min-width:0}.patcar>.secbox[hidden]{display:none}.patcar>.patbox .phead-wrap{position:static}.colsplit{display:none}.patcar.dragging{scroll-snap-type:none;scroll-behavior:auto;cursor:grabbing}.patcar.dragging *{cursor:grabbing}}.secbox[hidden],.secbox .drawer-resize,.secbox .drawer-pin{display:none}.secbox .secpanel{flex-direction:column;display:flex}.secbox .modal-head{margin-bottom:0}.secbox .sechead-wrap{background:var(--panel);border-bottom:1px solid var(--line);border-radius:14px 14px 0 0;flex-direction:column;gap:10px;margin:-18px -18px 14px;padding:13px 18px;display:flex}.sectab{border-top:3px solid var(--line)}.reordering{opacity:.32}.drop-line{background:var(--amber);z-index:299;width:3px;box-shadow:0 0 9px var(--glow);pointer-events:none;border-radius:2px;display:none;position:fixed}.drag-ghost-el{pointer-events:none;z-index:300;opacity:.92;border-radius:10px;position:fixed;top:0;left:0;transform:rotate(1.5deg);box-shadow:0 10px 28px #0009}.secbox .drawer-scroll{padding:14px 2px 2px;overflow:visible}.botctl{flex-direction:column;gap:14px;padding:16px 18px;display:flex}.botctl-head .lbl{letter-spacing:1px;text-transform:uppercase;color:var(--amber);font-family:Big Shoulders Display,sans-serif;font-size:16px;font-weight:800}.botctl .songhead-wrap{background:var(--panel);border-bottom:1px solid var(--line);border-radius:14px 14px 0 0;flex-direction:column;gap:10px;margin:-16px -18px 0;padding:13px 18px;display:flex}.botctl-scale{border-top:1px dashed var(--line);flex-direction:column;gap:10px;padding-top:14px;display:flex}.cardots{display:none}@media (max-width:1099px){.cardots{left:50%;bottom:calc(var(--bot-h,64px) + 16px);z-index:45;align-items:center;gap:8px;display:flex;position:fixed;transform:translate(-50%)}.cardot{cursor:pointer;background:#f5ece14d;border:none;border-radius:50%;width:7px;height:7px;padding:0;transition:background .15s,transform .15s;box-shadow:0 1px 3px #0000008c}.cardot.on{background:var(--amber);transform:scale(1.3)}}.botctl-grid{flex-direction:column;gap:9px;display:flex}.botctl-space{border-top:1px dashed var(--line);flex-direction:column;gap:9px;padding-top:14px;display:flex}.botctl .fxrow{grid-template-columns:1fr auto;grid-template-areas:"lab lab""inp val";align-items:center;gap:3px 10px;display:grid}.botctl .fxrow .fl{grid-area:lab}.botctl .fxrow .fv{grid-area:val;justify-self:end}.botctl .fxrow input[type=range],.botctl .fxrow select{grid-area:inp;width:100%}.scrub{z-index:1;align-items:center;gap:10px;margin-top:9px;display:flex;position:relative}.scrub-t{color:var(--dim);min-width:36px;font-family:DM Mono,monospace;font-size:11px}.scrub-tot{text-align:right}.scrub-track{background:var(--surface-2);cursor:pointer;touch-action:none;border-radius:5px;flex:1;height:7px;position:relative}.scrub-track:after{content:"";position:absolute;inset:-7px 0}.scrub-fill{background:var(--amber);pointer-events:none;border-radius:5px;width:0;position:absolute;top:0;bottom:0;left:0}.box,.controls,.patbox{background:var(--panel);border:1px solid var(--line);border-radius:14px;box-shadow:0 18px 40px -26px #000000b3,inset 0 1px #ffffff0a}.patbox{padding:18px}header{justify-content:space-between;align-items:flex-end;gap:12px;margin-bottom:16px;display:flex}h1{letter-spacing:.5px;text-transform:uppercase;font-family:Big Shoulders Display,sans-serif;font-size:30px;font-weight:700;line-height:.85}h1 span{color:var(--amber)}.tag{color:var(--dim);text-align:right;letter-spacing:1px;font-size:11px}.controls{flex-wrap:wrap;align-items:flex-end;gap:13px;padding:18px;display:flex}.ctl{flex-direction:column;gap:5px;display:flex}.ctl label{letter-spacing:1.5px;text-transform:uppercase;color:var(--dim);font-size:10px}select{background:var(--surface-1);color:var(--ink);border:1px solid var(--line);cursor:pointer;border-radius:6px;padding:6px 8px;font-family:inherit;font-size:13px}select:focus{border-color:var(--amber);outline:none}input[type=range]{width:104px;accent-color:var(--amber);cursor:pointer}.bpm-val,.read{color:var(--amber)}button.play{background:var(--amber);color:var(--on-amber);letter-spacing:1px;text-transform:uppercase;cursor:pointer;border:none;border-radius:8px;align-self:flex-end;margin-left:auto;padding:9px 20px;font-family:Big Shoulders Display,sans-serif;font-size:18px;font-weight:700;transition:transform 50ms,box-shadow 50ms;box-shadow:0 4px #b06a1e}button.play:active{transform:translateY(3px);box-shadow:0 1px #b06a1e}button.play.on{background:#e8ddd0;box-shadow:0 4px #847868}button.play.small{align-self:center;margin-left:0;padding:6px 13px;font-size:13px;box-shadow:0 3px #b06a1e}button.play.small:active{box-shadow:0 1px #b06a1e}button.mini{background:var(--surface-1);color:var(--dim);border:1px solid var(--line);cursor:pointer;letter-spacing:.5px;border-radius:6px;padding:6px 10px;font-family:inherit;font-size:11px}button.mini:hover{color:var(--ink);border-color:#5a4d40}.phead-wrap{z-index:20;background:var(--panel);border-bottom:1px solid var(--line);border-radius:14px 14px 0 0;flex-direction:column;gap:10px;margin:-18px -18px 14px;padding:13px 18px;display:flex;position:static}.phead{align-items:center;gap:8px;display:flex}.phead .lbl{letter-spacing:1px;text-transform:uppercase;color:var(--ink);font-family:Big Shoulders Display,sans-serif;font-size:22px;font-weight:700}.phead .phead-right{align-items:center;gap:8px;margin-left:auto;display:flex}.ptabrow{scrollbar-width:thin;scrollbar-color:#5a4d40 transparent;flex-wrap:nowrap;align-items:center;gap:6px;padding:9px 0 2px;display:flex;overflow:auto hidden}.ptabrow .ptab,.ptabrow .addpat,.ptabrow .dup,.ptabrow .ptab-rename{flex:none}.ptab{letter-spacing:1px;background:var(--surface-1);color:var(--dim);border:1px solid var(--line);cursor:pointer;touch-action:pan-x;border-radius:6px;justify-content:center;align-items:center;min-width:36px;height:32px;padding:0 10px;font-family:Big Shoulders Display,sans-serif;font-size:15px;font-weight:700;transition:all 80ms;display:inline-flex;position:relative}.ptabrow:not(.secTabRow) .ptab:hover{cursor:text}.drag-ghost{z-index:300;pointer-events:none;color:var(--on-amber);background:var(--amber);border-radius:8px;padding:5px 13px;font-family:Big Shoulders Display,sans-serif;font-size:18px;font-weight:700;position:fixed;transform:translate(-50%,-150%);box-shadow:0 12px 26px -6px #000000bf}.clip .dropzone{z-index:5;border:2px solid var(--amber);background:#120e0af5;border-radius:10px;flex-direction:column;justify-content:center;align-items:center;gap:6px;padding:6px;display:flex;position:absolute;inset:0}.dz-lab{letter-spacing:1.5px;text-transform:uppercase;color:var(--amber);font-size:9px}.dz-row{flex-wrap:wrap;justify-content:center;align-items:center;display:flex}.dz-slot{color:var(--ink);background:var(--surface-2);border:1px solid var(--line);border-radius:6px;margin:2px;padding:5px 9px;font-family:Big Shoulders Display,sans-serif;font-size:17px;font-weight:700}.dz-caret{background:0 0;border-radius:2px;width:4px;height:28px;transition:all 60ms}.dz-caret.on{background:var(--amber);box-shadow:0 0 9px -1px var(--amber)}.ptab.active{background:var(--amber);color:var(--on-amber);border-color:var(--amber)}.tab-spk{display:none}.tab-spk svg{display:block}.ptab.playing .tab-spk{z-index:5;background:var(--bg);border:1px solid var(--amber);width:17px;height:17px;color:var(--amber);border-radius:50%;justify-content:center;align-items:center;animation:1.5s ease-in-out infinite spkpulse;display:flex;position:absolute;top:-7px;right:-7px;box-shadow:0 1px 4px #00000080}.ptab.playing .tab-spk svg{width:10px;height:10px}.ptab.sectab.playing .tab-spk{left:50%;right:auto;transform:translate(-50%)}.lenrow{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:12px;display:flex}.lenrow .lenrow-lbl{letter-spacing:1.5px;text-transform:uppercase;color:var(--dim);font-size:10px}.lenseg{border:1px solid var(--line);border-radius:8px;display:inline-flex;overflow:hidden}.lenseg button{background:var(--surface-1);border:none;border-right:1px solid var(--line);color:var(--dim);cursor:pointer;letter-spacing:.5px;padding:7px 13px;font-family:inherit;font-size:12px}.lenseg button:last-child{border-right:none}.lenseg button.on{background:var(--amber);color:var(--on-amber);font-weight:500}.lenrow .dup{margin-left:auto}.ptabrow .addpat{color:var(--amber);background:var(--surface-1);border:1px solid var(--line);cursor:pointer;border-radius:6px;width:32px;height:32px;font-size:16px;line-height:1}.ptabrow .addpat:hover{border-color:#5a4d40}.dup{color:var(--dim);border:1px dashed var(--line);cursor:pointer;white-space:nowrap;background:0 0;border-radius:6px;padding:6px 9px;font-size:11px}.dup:hover{color:var(--ink);border-color:#5a4d40}.phead .phead-right{align-items:center;gap:8px;display:flex}.cog{padding:0 7px;font-size:30px;line-height:1}.ptab-rename{letter-spacing:1px;background:var(--surface-1);color:var(--ink);border:1px solid var(--amber);border-radius:6px;outline:none;width:90px;height:32px;padding:0 8px;font-family:Big Shoulders Display,sans-serif;font-size:15px;font-weight:700}.section{margin-bottom:13px}.section.drums{--acc:#ff7a45}.section.bass{--acc:#6fd39a}.section.melody{--acc:#ffd05c}.shead{justify-content:space-between;align-items:center;margin-bottom:6px;display:flex}.shead-btns{align-items:center;gap:6px;display:flex}.lanecfg{color:var(--dim)}.section.lane-off .grid,.section.lane-off .bassmods{opacity:.38}.lanecfg:hover{color:var(--amber);border-color:var(--amber)}.shead .name{letter-spacing:2px;text-transform:uppercase;color:var(--acc);align-items:center;gap:8px;font-family:Big Shoulders Display,sans-serif;font-size:14px;font-weight:700;display:flex}.shead .badge{letter-spacing:1px;color:var(--bg);background:var(--amber);border-radius:4px;padding:2px 5px;font-family:DM Mono,monospace;font-size:9px;display:none}.section.filtered .badge{display:inline}.bw{color:var(--dim);align-items:center;gap:6px;font-size:10px;display:flex}.bw select{padding:3px 6px;font-size:11px}.txt{background:var(--surface-1);border:1px solid var(--line);color:var(--ink);border-radius:7px;outline:none;padding:7px 9px;font-family:inherit;font-size:13px;transition:border-color .1s}.txt:focus{border-color:var(--amber)}.txt::placeholder{color:#5a4d40}.laneclear{letter-spacing:1px;text-transform:uppercase;padding:3px 9px;font-size:10px}.bassctl,.melctl{flex-wrap:wrap;align-items:center;gap:14px;margin:-2px 0 9px;display:flex}.grid{scrollbar-width:thin;scrollbar-color:#5a4d40 transparent;gap:4px;display:grid;overflow:auto visible}.row{grid-template-columns:52px repeat(var(--steps,16), var(--cell,1fr));align-items:center;gap:4px;display:grid}.name-lbl{color:var(--dim);text-align:right;white-space:nowrap;z-index:3;background:var(--panel);padding-right:4px;font-size:11px;position:sticky;left:0;overflow:hidden}.name-lbl.drumname{padding:0}.drumname-b{background:var(--surface-input);border:1px solid var(--line);width:100%;color:var(--ink);letter-spacing:.2px;cursor:pointer;text-align:right;white-space:nowrap;text-overflow:ellipsis;border-radius:5px;padding:4px 5px;font-family:inherit;font-size:10px;transition:border-color .1s,color .1s;overflow:hidden}.drumname-b:hover{border-color:var(--amber);color:var(--amber)}.addrow{margin-top:6px;display:block}.drumadd{background:var(--surface-1);border:1px dashed var(--line);color:var(--amber);cursor:pointer;letter-spacing:.3px;border-radius:6px;padding:5px 11px;font-family:inherit;font-size:11px;transition:all 80ms}.drumadd:hover{border-color:var(--amber);background:var(--surface-3)}.cell{aspect-ratio:1;border:1px solid var(--line);background:var(--surface-4);cursor:pointer;border-radius:4px;transition:background 70ms,transform 50ms,border-radius .12s,border-color .12s}.cell.offbeat{border-top-right-radius:calc(4px + var(--swing,0) * 7px);border-bottom-right-radius:calc(4px + var(--swing,0) * 7px);border-right-color:color-mix(in srgb, var(--amber) calc(var(--swing,0) * 60%), var(--line))}.cell:hover{border-color:#5a4d40}.cell.beat{background:#2e231a}.cell.on{background:var(--acc);border-color:var(--acc);box-shadow:0 0 8px -1px var(--acc)}.cell.on.accent{box-shadow:0 0 12px 0 var(--acc);background:linear-gradient(#ffe2bd,#ffb978);border-color:#fff;position:relative}.cell.on.accent:after{content:"";border:1.5px solid #1e120880;border-radius:2px;position:absolute;inset:3px}.cell.playhead{outline-offset:-1px;outline:2px solid #ff9f4366}.cell.on.playhead{filter:brightness(1.3);transform:scale(1.05)}.bassmods{flex-direction:column;gap:4px;margin-top:7px;display:flex}#bassmods{scrollbar-width:thin;scrollbar-color:#5a4d40 transparent;overflow:auto visible}.modrow{grid-template-columns:52px repeat(var(--steps,16), var(--cell,1fr));align-items:center;gap:4px;display:grid}.modrow .name-lbl{letter-spacing:1px;text-transform:uppercase;font-size:9px}.modcell{border:1px solid var(--line);background:var(--surface-4);cursor:pointer;border-radius:3px;height:13px;transition:all 80ms}.modcell.beat{background:#221a14}.modcell.on.bassAcc{background:#ff5536;border-color:#ff5536;box-shadow:0 0 7px -2px #ff5536}.modcell.on.bassSld{background:#6fd39a;border-color:#6fd39a;box-shadow:0 0 7px -2px #6fd39a}.arrange{flex-direction:column;gap:13px;display:flex}.ahead{top:var(--top-h,64px);z-index:20;background:var(--panel);border-bottom:1px solid var(--line);border-radius:14px 14px 0 0;flex-direction:column;gap:10px;margin:-16px -18px 12px;padding:13px 18px 11px;display:flex;position:sticky}.atools{align-items:center;gap:10px;display:flex}.ahead .t{letter-spacing:1.5px;text-transform:uppercase;color:var(--dim);font-size:11px}.ahead .len{color:var(--dim);white-space:nowrap;margin-left:auto;font-size:11px}.ahead .len b{color:var(--amber);font-weight:500}.ahead .clips{margin-bottom:-2px}.clips{scrollbar-width:thin;scrollbar-color:#5a4d40 transparent;background:0 0;flex-wrap:nowrap;flex:auto;justify-content:safe center;align-items:stretch;gap:6px;min-width:0;padding:13px 0 8px;display:flex;overflow-x:auto}.clips::-webkit-scrollbar{height:8px}.clips::-webkit-scrollbar-thumb{background:#3a322b;border-radius:4px}.clips::-webkit-scrollbar-thumb:hover{background:#5a4d40}.secrow{top:var(--top-h,64px);z-index:30;background:var(--bg);align-items:center;gap:8px;width:100vw;padding:6px 16px;display:flex;position:fixed;left:0;right:0;box-shadow:0 8px 12px -8px #0006}.app{padding-top:var(--secrow-h,56px)}.curveadd{background:var(--surface-1);border:1px solid var(--line);width:28px;height:28px;color:var(--amber);cursor:pointer;border-radius:50%;justify-content:center;align-items:center;padding:0;font-size:18px;line-height:1;transition:all 80ms;display:flex}.curveadd:hover{border-color:var(--amber);background:var(--surface-3)}.curveadd:disabled{opacity:.35;cursor:default}.curvemenu{z-index:30;background:var(--panel);border:1px solid var(--line);border-radius:8px;flex-direction:column;min-width:150px;padding:4px;display:flex;position:absolute;top:calc(100% + 5px);left:50%;transform:translate(-50%);box-shadow:0 14px 40px -12px #000000b3}.curvemenu[hidden]{display:none}.curvemenu button{color:var(--ink);font:inherit;text-align:left;cursor:pointer;background:0 0;border:none;border-radius:6px;padding:7px 10px;font-size:13px}.curvemenu button:hover{background:var(--surface-3)}.addsec{background:var(--surface-1);border:1px solid var(--line);width:24px;height:24px;color:var(--amber);cursor:pointer;z-index:3;border-radius:50%;flex:none;justify-content:center;align-self:center;align-items:center;margin:0 -10px;padding:0;font-size:16px;line-height:1;transition:all 80ms;display:flex;position:relative}.addsec:hover{border-color:var(--amber);background:var(--surface-3)}.rolepick{z-index:55;background:var(--panel);border:1px solid var(--line);border-radius:10px;flex-direction:column;gap:2px;min-width:172px;padding:6px;display:flex;position:fixed;box-shadow:0 18px 44px -14px #000c}.rolepick[hidden]{display:none}.rolepick button{text-align:left;width:100%;color:var(--ink);cursor:pointer;background:0 0;border:none;border-radius:7px;align-items:center;gap:9px;padding:7px 9px;font-family:inherit;font-size:12px;display:flex}.rolepick button:hover{background:#1d1712}.rolepick .rsw{border-radius:3px;flex:none;width:11px;height:11px}.rolepick .rd{color:var(--dim);margin-left:auto;font-size:9px}.selwrap{vertical-align:middle;display:inline-flex;position:relative}select.enhanced{opacity:0;pointer-events:none;width:1px;height:1px;margin:0;padding:0;position:absolute}.seltrigger{color:var(--ink);background:var(--surface-1);border:1px solid var(--line);cursor:pointer;text-align:left;white-space:nowrap;border-radius:6px;min-height:26px;padding:4px 24px 4px 9px;font-family:inherit;font-size:11px;position:relative}.seltrigger:hover{border-color:#5a4d40}.seltrigger:after{content:"";border-left:4px solid #0000;border-right:4px solid #0000;border-top:5px solid var(--dim);position:absolute;top:calc(50% - 2px);right:9px}.selmenu{z-index:60;background:var(--panel);border:1px solid var(--line);border-radius:10px;flex-direction:column;gap:2px;min-width:130px;max-height:300px;padding:6px;display:flex;position:fixed;overflow:auto;box-shadow:0 18px 44px -14px #000c}.selmenu[hidden]{display:none}.selmenu button{text-align:left;width:100%;color:var(--ink);cursor:pointer;white-space:nowrap;background:0 0;border:none;border-radius:7px;align-items:center;gap:9px;padding:7px 9px;font-family:inherit;font-size:12px;display:flex}.selmenu button:hover{background:#1d1712}.selmenu button.sel{background:var(--surface-3);color:var(--amber)}.cfg .selwrap,.role-pick .selwrap{flex:1;display:flex}.cfg .seltrigger,.role-pick .seltrigger{flex:1}.cv-wrap{position:relative}.cv-wrap>.selwrap{z-index:6;flex:none;display:inline-flex;position:absolute;top:0;left:50%;transform:translate(-50%,-50%)}.cv-wrap .seltrigger{background:var(--surface-1);border-radius:5px;flex:none;min-height:0;padding:2px 17px 2px 8px;font-size:10px;box-shadow:0 1px 4px #00000080}.cv-wrap .seltrigger:after{right:6px}.toast{z-index:120;background:var(--panel);border:1px solid var(--line);color:var(--ink);pointer-events:none;opacity:0;border-radius:9px;padding:10px 16px;font-size:13px;transition:opacity .2s;position:fixed;bottom:96px;left:50%;transform:translate(-50%);box-shadow:0 14px 40px -12px #000000b3}.toast.show{opacity:1}.toast.err{color:#ff9277;border-color:#7a3326}.unsavedbar{color:#f0c987;background:#241b10;border:1px solid #6b4f1f;border-radius:8px;align-items:center;gap:12px;margin:0 0 12px;padding:8px 12px;font-size:12px;display:flex}.unsavedbar[hidden]{display:none}.unsavedbar .ub-txt{flex:1}.unsavedbar .ub-save{color:var(--on-amber);background:var(--amber);cursor:pointer;border:none;border-radius:6px;padding:5px 14px;font-family:inherit;font-size:12px;font-weight:600}.unsavedbar .ub-save:hover{filter:brightness(1.08)}.songbox{background:var(--panel);border:1px solid var(--line);border-radius:14px;margin-top:14px;padding:14px 16px 16px}.songbox-head{align-items:center;gap:12px;margin-bottom:10px;display:flex}.songbox-head .lbl{letter-spacing:2px;text-transform:uppercase;color:var(--dim);font-family:Big Shoulders Display,sans-serif;font-size:14px;font-weight:700}.songbox-head .mini{margin-left:auto}.songscroll{scrollbar-width:thin;scrollbar-color:#5a4d40 transparent;padding-bottom:6px;overflow:auto hidden}.songscroll::-webkit-scrollbar{height:8px}.songscroll::-webkit-scrollbar-thumb{background:#5a4d40;border-radius:4px}.songgrid{min-width:100%;display:inline-block;position:relative}.song-empty{color:var(--dim);padding:10px 2px;font-size:12px}.songlane,.stemlane{align-items:stretch;height:22px;margin-bottom:4px;display:flex}.stemlane{height:30px}.sl-label{z-index:3;background:var(--panel);letter-spacing:1px;text-transform:uppercase;width:72px;color:var(--dim);white-space:nowrap;text-overflow:ellipsis;flex:0 0 72px;align-items:center;padding-right:8px;font-size:10px;display:flex;position:sticky;left:0;overflow:hidden}.stemlane .sl-label{color:#c9b89c}.sl-track{height:100%;display:flex;position:relative}.sl-track .scell{background:var(--surface-recess);box-sizing:border-box;cursor:pointer;border-right:1px solid #1c1712;flex:none;width:9px;height:100%}.sl-track .scell.beat{background:#1b1622}.sl-track .scell.barstart{border-left:1px solid #3a322b}.sl-track .scell.on{background:var(--lc);box-shadow:inset 0 0 0 1px #00000040}.sl-track .scell:hover{filter:brightness(1.25)}.stem-track{background:var(--surface-recess);cursor:pointer;border:1px dashed #2c2620;border-radius:6px;height:100%;position:relative}.stem-track:hover{border-color:#5a4d40}.stem-clip{color:#fff;white-space:nowrap;cursor:grab;-webkit-user-select:none;user-select:none;touch-action:none;background:linear-gradient(#7d5cc4,#5e44a0);border:1px solid #9a7fd6;border-radius:5px;align-items:center;padding:0 7px;font-size:10px;line-height:1;display:flex;position:absolute;top:2px;bottom:2px;overflow:hidden;box-shadow:0 2px 8px -3px #000000b3}.stem-clip:active{cursor:grabbing}.song-ph{pointer-events:none;z-index:2;background:#ffffffd9;width:2px;position:absolute;top:0;bottom:0;box-shadow:0 0 7px #ffffff80}.drawer-body{flex-direction:column;gap:12px;display:flex}.drawer-row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.drawer-sample{color:var(--ink);background:var(--surface-recess);border:1px solid var(--line);border-radius:7px;padding:9px 11px;font-size:12px}.drawer-rec{color:#ff7a6b;font-size:11px}#drawerRecord.recording{color:#fff;background:#ff5536;border-color:#ff5536}.modal-overlay.drawer-overlay{-webkit-backdrop-filter:none;backdrop-filter:none;pointer-events:none;background:0 0;justify-content:flex-end;align-items:stretch;padding:0;transition:background .25s;display:flex;overflow:hidden}.modal-overlay.drawer-overlay.open{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);pointer-events:auto;background:#0806059e}.drawer-panel{height:100%;width:var(--drawer-w,470px);z-index:60;background:var(--panel);border-left:1px solid var(--line);flex-direction:column;max-width:100vw;transition:transform .28s;display:flex;position:absolute;top:0;bottom:0;right:0;transform:translate(100%);box-shadow:-14px 0 50px #0000008c}.modal-overlay.open .drawer-panel{transform:translate(0)}.drawer-panel .modal-head{border-bottom:1px solid var(--line);margin:0;padding:15px 18px}.drawer-scroll{scrollbar-width:thin;scrollbar-color:#5a4d40 transparent;flex:1;padding:15px 18px 24px;overflow-y:auto}.drawer-wave{border:1px solid var(--line);background:#0a0a0d;border-radius:8px;width:100%;height:88px;margin:12px 0 8px;display:block}.drawer-wave-interactive{cursor:crosshair;touch-action:none}.drawer-wave-empty{color:var(--dim);letter-spacing:.5px;justify-content:center;align-items:center;font-size:11px;display:flex}.sample-name-input{background:var(--surface-recess);border:1px solid var(--line);width:100%;color:var(--ink);font:inherit;letter-spacing:.3px;border-radius:6px;margin-top:6px;padding:8px 10px;font-size:14px}.sample-name-input:focus{border-color:var(--amber);outline:none}.sample-actions{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.record-btn{color:#ffcfc1;letter-spacing:.6px;text-transform:uppercase;cursor:pointer;background:#2a1612;border:1px solid #ff5536;border-radius:8px;align-items:center;gap:9px;padding:10px 18px;font-family:inherit;font-size:13px;font-weight:700;transition:all .1s;display:inline-flex;box-shadow:0 1px #6a2114}.record-btn:hover{color:#fff;background:#3a1c17}.record-btn:active{transform:translateY(1px);box-shadow:0 0 #6a2114}.record-btn[aria-pressed=true] .record-dot{animation:1.2s ease-out infinite recpulse}.record-btn-small{letter-spacing:.4px;padding:6px 12px;font-size:11px}.record-dot{background:#ff5536;border-radius:50%;width:11px;height:11px;display:inline-block}.record-btn-small .record-dot{width:9px;height:9px}@keyframes recpulse{0%{box-shadow:0 0 #ff553699}70%{box-shadow:0 0 0 8px #ff553600}to{box-shadow:0 0 #ff553600}}.drawer-wave-recording .rec-dot-pulse{animation:1.2s ease-out infinite recpulse}.drawer-wave-recording .rec-timer{letter-spacing:1.5px;font-family:Big Shoulders Display,sans-serif;font-size:18px;font-weight:700}.upload-btn{background:var(--surface-1);border:1px solid var(--line);color:var(--ink);letter-spacing:.4px;border-radius:7px;align-items:center;gap:6px;padding:8px 14px;font-size:12px;display:inline-flex}.upload-btn:hover{background:#1a1512;border-color:#5a4d40}.sample-remove{color:#ffb3a3;background:0 0;border-color:#3a2520;align-items:center;gap:4px;margin-left:auto;padding:6px 11px;display:inline-flex}.sample-remove:hover{color:#fff;background:#2a1612;border-color:#ff5536}.loop-check{color:var(--dim);cursor:pointer;-webkit-user-select:none;user-select:none;letter-spacing:.3px;align-items:center;gap:7px;font-size:11px;display:inline-flex}.loop-check input[type=checkbox]{accent-color:var(--amber);width:14px;height:14px}.loop-check:hover{color:var(--ink)}.crop-times{height:18px;color:var(--amber);letter-spacing:.4px;pointer-events:none;margin-top:-6px;margin-bottom:8px;font-family:DM Mono,monospace;font-size:10px;position:relative}.crop-time{white-space:nowrap;position:absolute;top:0;transform:translate(-50%)}.drawer-resize{cursor:ew-resize;z-index:4;touch-action:none;width:10px;position:absolute;top:0;bottom:0;left:-4px}.drawer-resize:after{content:"";background:#3a322b;border-radius:2px;width:3px;height:46px;transition:background .12s;position:absolute;top:50%;left:3px;transform:translateY(-50%)}.drawer-resize:hover:after,.drawer-resize.dragging:after{background:var(--amber)}.drawer-pin{border:1px solid var(--line);color:var(--dim);cursor:pointer;background:0 0;border-radius:6px;justify-content:center;align-items:center;width:30px;height:30px;margin-right:8px;padding:0;display:inline-flex}.drawer-pin svg{stroke:currentColor;width:18px;height:18px;display:block}.drawer-pin.on{border-color:var(--amber);color:var(--amber)}@media (max-width:899px){.drawer-pin{display:none}}.drawer-panel.drawer-inline{width:100%;max-width:none;height:auto;box-shadow:none;background:0 0;border:none;position:static;transform:none}.drawer-panel.drawer-inline .drawer-resize,.pinned-drawer-slot:empty{display:none}.modal-overlay.drawer-overlay.stacked{-webkit-backdrop-filter:none;backdrop-filter:none;pointer-events:none;background:0 0}.modal-overlay.drawer-overlay.stacked .drawer-panel{pointer-events:auto}body{transition:padding-right .28s}.topbar,.bottombar{transition:right .28s}body.drawer-resizing,body.drawer-resizing .topbar,body.drawer-resizing .bottombar,body.drawer-resizing .drawer-panel{transition:none}.fxrack{flex-direction:column;gap:6px;margin-top:4px;display:flex}.fxgroup-h{text-transform:uppercase;letter-spacing:.08em;color:#8a7c6c;align-items:center;gap:8px;margin:8px 2px 2px;font-size:10px;font-weight:700;display:flex}.fxgroup-h:after{content:"";background:linear-gradient(90deg,#3a322b,#0000);flex:1;height:1px}.fxgrid{grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:8px;display:grid}.fxgrid.dis{opacity:.35;pointer-events:none}.drumgrid{grid-template-columns:1fr;margin-bottom:8px}.drumgrid .fxrow{grid-template-columns:108px 1fr 46px;gap:10px;margin:5px 0;font-size:11px}.drumlib{flex-wrap:wrap;gap:6px;display:flex}.drumlib-b{background:var(--surface-1);border:1px solid var(--line);color:var(--dim);cursor:pointer;letter-spacing:.3px;border-radius:7px;padding:6px 10px;font-family:inherit;font-size:11px;transition:all 80ms}.drumlib-b:hover{color:var(--ink);border-color:#5a4d40}.drumlib-b.sel{border-color:var(--amber);color:var(--amber);background:#1d1712}.dtog{background:var(--surface-1);border:1px solid var(--line);color:var(--dim);text-transform:uppercase;letter-spacing:.05em;cursor:pointer;border-radius:5px;margin-left:8px;padding:2px 9px;font-size:10px;font-weight:700}.dtog.on{border-color:var(--amber);color:var(--amber);background:#1d1712}#drumControls .fxgroup-h{margin-top:18px}#drumControls .fxgroup-h:first-child{margin-top:2px}#drumPlay.playing{color:#fff;background:#ff5536;border-color:#ff5536}.fxcard{background:var(--surface-recess);border:1px solid var(--line);border-radius:8px;padding:8px 11px 10px;transition:opacity .12s,border-color .12s}.fxcard.off{opacity:.5;border-color:#1c1712}.fxcard.solo-on{border-color:var(--amber)}.fxcard.muted-by-solo{opacity:.28}.fxcard-h{cursor:pointer;text-transform:uppercase;letter-spacing:.04em;color:#c9b89c;-webkit-user-select:none;user-select:none;align-items:center;gap:8px;margin-bottom:7px;font-size:11px;font-weight:700;display:flex}.fxcard-h:hover{color:#e8ddd0}.fxcard-h .led{background:#333;border-radius:50%;flex-shrink:0;width:9px;height:9px;transition:all 80ms}.fxcard-h .led.on{background:var(--amber);box-shadow:0 0 7px var(--amber)}.fxcard-h .fx-solo{color:#8a7c6c;letter-spacing:.05em;cursor:pointer;background:#2a2520;border:none;border-radius:3px;margin-left:auto;padding:2px 6px;font-size:9px;font-weight:700;line-height:1}.fxcard-h .fx-solo.on{background:var(--amber);color:var(--on-amber)}.fxrow{color:var(--dim);grid-template-columns:54px 1fr 42px;align-items:center;gap:7px;margin:3px 0;font-size:10px;display:grid}.fxrow .fl{cursor:help;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.fxrow .fv{text-align:right;color:var(--ink);font-variant-numeric:tabular-nums;font-size:10px}.fxrow input[type=range]{width:100%}.fxrow select{color:#eee;background:#222;border:1px solid #333;border-radius:4px;width:100%;padding:3px;font-size:10px}.clip{background:var(--surface-1);border:1px solid var(--line);width:128px;color:var(--dim);cursor:pointer;border-radius:10px;flex-direction:column;flex:0 0 128px;align-items:center;gap:7px;padding:16px 12px 12px;transition:border-color .1s,background .1s,box-shadow .1s,color .1s;display:flex;position:relative}.clip:hover{background:#1a1512;border-color:#5a4d40}.clip .playicon{background:var(--bg);border:1px solid var(--amber);width:20px;height:20px;color:var(--amber);opacity:0;pointer-events:none;z-index:4;border-radius:50%;justify-content:center;align-items:center;transition:opacity .12s;display:flex;position:absolute;top:-9px;left:50%;transform:translate(-50%)}.clip .playicon svg{display:block}.clip.active .playicon{opacity:1;animation:1.6s ease-in-out infinite spkglow}.clip.active .playicon svg{animation:1.6s ease-in-out infinite spkpulse}.clip.active .playicon.bump{animation:.6s cubic-bezier(.25,.9,.3,1.15) spkjump}@keyframes spkpulse{0%,to{transform:scale(1)}50%{transform:scale(1.16)}}@keyframes spkglow{0%,to{box-shadow:0 0 #ff9f4300}50%{box-shadow:0 0 8px #ff9f438c}}@keyframes spkjump{0%{transform:translate(-50%)translateY(0)}30%{transform:translate(-50%)translateY(-9px)}55%{transform:translate(-50%)translateY(0)}74%{transform:translate(-50%)translateY(-3px)}to{transform:translate(-50%)translateY(0)}}.clip.sel{border-color:var(--ink)}.seccfg{background:var(--surface-1);border:1px solid var(--line);border-radius:10px;margin-top:12px;padding:14px 16px}.seccfg-head{justify-content:space-between;align-items:center;margin-bottom:4px;display:flex}.seccfg-head h3{letter-spacing:1px;text-transform:uppercase;color:var(--ink);font-family:Big Shoulders Display,sans-serif;font-size:16px;font-weight:700}.seccfg-sub{color:var(--dim);margin-bottom:14px;font-size:11px;line-height:1.5}.seccfg-sub b{color:var(--ink);font-weight:500}.clip .rolebar{border-radius:9px 9px 0 0;height:6px;position:absolute;top:0;left:0;right:0}.clip .sec-name{letter-spacing:.5px;text-transform:uppercase;text-align:center;font-family:Big Shoulders Display,sans-serif;font-size:17px;font-weight:700;line-height:1}.clip .sec-meta{color:var(--dim);letter-spacing:.5px;text-align:left;align-self:stretch;font-size:10px}.clip .sec-meta b{color:var(--ink);font-weight:500}.clip .sec-dots{align-self:stretch;align-items:center;gap:4px;margin-top:1px;display:flex}.clip .sec-bars{color:var(--dim);letter-spacing:.5px;margin-left:auto;font-size:10px}.clip .dot{text-align:center;background:var(--bg-soft);color:#5a4d40;border-radius:4px;width:15px;height:15px;font-size:9px;font-weight:500;line-height:15px}.clip .dot.on{color:#14110f}.clip .sweepmark{color:var(--amber);margin-left:2px;font-size:12px}.cardcurve{cursor:pointer;background:var(--surface-chart);border:1px solid var(--line);border-radius:6px;align-self:stretch;height:38px;margin:5px 0 7px;overflow:hidden}.cardcurve svg{width:100%;height:100%;display:block}.clip{gap:calc(7px - var(--cz,0) * 5px);padding-top:calc(16px - var(--cz,0) * 3px);padding-bottom:calc(12px - var(--cz,0) * 2px)}.clip .cardcurve{height:calc((1 - var(--cz,0)) * 38px);margin:calc((1 - var(--cz,0)) * 5px) 0 calc((1 - var(--cz,0)) * 7px);opacity:calc(1 - var(--cz,0))}.clip .sec-dots{height:calc((1 - var(--cz,0)) * 16px);margin-top:calc((1 - var(--cz,0)) * 1px);opacity:calc(1 - var(--cz,0));overflow:hidden}.clip .sec-bars{opacity:calc(1 - var(--cz,0))}.clip .rm{color:var(--dim);cursor:pointer;z-index:2;background:0 0;border:none;padding:0;font-size:14px;line-height:1;position:absolute;top:10px;right:7px}.clip .rm:hover{color:#ff5536}.clip .dupsec{color:var(--dim);cursor:pointer;z-index:2;background:0 0;border:none;padding:0;font-size:13px;line-height:1;position:absolute;top:10px;left:7px}.clip .dupsec:hover{color:var(--amber)}@keyframes addflash{0%{box-shadow:0 0 0 3px var(--amber)}to{box-shadow:0 0 #ff9f4300}}.clip.justadded{border-color:var(--amber);animation:1.1s ease-out addflash}.modal-overlay{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);z-index:50;background:#080605bd;justify-content:center;align-items:flex-start;padding:40px 16px;display:none;position:fixed;inset:0;overflow-y:auto}.modal-overlay.open{display:flex}.modal{background:var(--panel);border:1px solid var(--line);border-radius:14px;width:100%;max-width:680px;padding:22px;box-shadow:0 40px 80px -20px #000c}.modal-head{justify-content:space-between;align-items:center;margin-bottom:4px;display:flex}.modal-head h2{letter-spacing:1px;text-transform:uppercase;color:var(--ink);font-family:Big Shoulders Display,sans-serif;font-size:22px;font-weight:700}.modal-close{color:var(--dim);cursor:pointer;background:0 0;border:none;margin-left:10px;padding:0 2px;font-size:30px;line-height:1}.modal-close:hover{color:var(--amber)}.modal-sub{color:var(--dim);margin-bottom:16px;font-size:11px;line-height:1.5}.modal-sub b{color:var(--ink);font-weight:500}.tpl-cards{flex-direction:column;gap:10px;display:flex}.tpl-card{text-align:left;background:var(--surface-1);border:1px solid var(--line);cursor:pointer;color:var(--ink);border-radius:10px;grid-template-columns:150px 1fr;align-items:center;gap:14px;padding:12px;font-family:inherit;transition:all .1s;display:grid}.tpl-card:hover{border-color:var(--amber);box-shadow:0 0 12px -3px var(--glow);transform:translateY(-1px)}.tpl-card .shape{background:var(--surface-chart);border:1px solid var(--line);border-radius:7px;width:150px;height:58px;overflow:hidden}.tpl-card .shape svg{width:100%;height:100%;display:block}.tpl-card .nm{letter-spacing:.5px;text-transform:uppercase;color:var(--amber);margin-bottom:3px;font-family:Big Shoulders Display,sans-serif;font-size:16px;font-weight:700}.tpl-card .meta{letter-spacing:.5px;text-transform:uppercase;color:var(--dim);margin-bottom:5px;font-size:9px}.tpl-card .d{color:var(--dim);font-size:11px;line-height:1.45}.choice-card{text-align:left;background:var(--surface-1);border:1px solid var(--line);cursor:pointer;width:100%;color:var(--ink);border-radius:10px;padding:13px 15px;font-family:inherit;transition:all .1s;display:block}.choice-card:hover{border-color:var(--amber);box-shadow:0 0 12px -3px var(--glow);transform:translateY(-1px)}.choice-card .nm{letter-spacing:.5px;text-transform:uppercase;color:var(--amber);margin-bottom:3px;font-family:Big Shoulders Display,sans-serif;font-size:16px;font-weight:700}.choice-card .d{color:var(--dim);font-size:11px;line-height:1.45}.modal-actions{justify-content:flex-end;margin-top:16px;display:flex}.cfg{flex-direction:column;gap:14px;display:flex}.cfg-row{flex-direction:column;gap:6px;display:flex}.cfg-row.two{flex-direction:row;gap:12px}.cfg-row.two>div{flex-direction:column;flex:1;gap:6px;display:flex}.cfg-lbl{letter-spacing:1.5px;text-transform:uppercase;color:var(--dim);font-size:10px}.cfg-head{letter-spacing:.5px;color:var(--ink);margin-bottom:7px;font-family:Big Shoulders Display,sans-serif;font-size:15px;font-weight:700;display:block}.cfg select{color:var(--ink);border:1px solid var(--line);cursor:pointer;background:#100d0b;border-radius:6px;width:100%;padding:7px 8px;font-family:inherit;font-size:13px}.cfg input[type=range]{width:100%;accent-color:var(--amber)}.role-presets{flex-wrap:wrap;gap:6px;display:flex}.role-pick{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.role-pick select{flex:1;min-width:120px}.role-field{flex-direction:column;gap:7px;margin:14px 0;display:flex}.role-field>span{letter-spacing:1px;text-transform:uppercase;color:var(--dim);font-size:10px}.role-field input[type=text]{background:var(--surface-input);border:1px solid var(--line);color:var(--ink);border-radius:7px;padding:9px 11px;font-family:inherit;font-size:13px}.role-field input[type=text]:focus{border-color:var(--amber);box-shadow:0 0 0 2px var(--glow);outline:none}.role-radios{flex-direction:column;gap:4px;display:flex}.role-radio{cursor:pointer;background:var(--surface-1);border:1px solid var(--line);color:var(--dim);border-radius:6px;align-items:center;gap:8px;padding:8px 10px;font-size:13px;transition:all 80ms;display:flex}.role-radio:hover{color:var(--ink);border-color:#5a4d40}.role-radio.sel{border-color:var(--amber);color:var(--ink);background:var(--surface-3)}.role-radio input[type=radio]{accent-color:var(--amber);margin:0}.voice-play{width:32px;height:32px;color:var(--amber);border-color:var(--line);justify-content:center;align-items:center;padding:0;display:inline-flex}.voice-play:hover{border-color:var(--amber);background:var(--surface-3)}.voice-play svg{width:14px;height:14px}.voice-list{border:1px solid var(--line);background:var(--surface-input);scrollbar-width:thin;scrollbar-color:#5a4d40 transparent;border-radius:8px;flex-direction:column;gap:2px;max-height:340px;margin:0;padding:4px;list-style:none;display:flex;overflow-y:auto}.voice-list::-webkit-scrollbar{width:8px}.voice-list::-webkit-scrollbar-thumb{background:#3a322b;border-radius:4px}.voice-item{width:100%;color:var(--dim);text-align:left;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:6px;align-items:center;gap:8px;padding:6px 8px;font-family:inherit;font-size:12px;transition:all 80ms;display:flex}.voice-item:hover{color:var(--ink);background:var(--surface-3)}.voice-item.sel{color:var(--ink);border-color:var(--amber);background:var(--surface-3)}.voice-item-label{white-space:nowrap;text-overflow:ellipsis;flex:1;overflow:hidden}.voice-item-play{width:22px;height:22px;color:var(--amber);border:1px solid var(--line);background:var(--surface-1);cursor:pointer;border-radius:4px;flex:none;justify-content:center;align-items:center;transition:all 80ms;display:inline-flex}.voice-item-play:hover{border-color:var(--amber);background:var(--surface-3)}.voice-item-play svg{width:11px;height:11px;display:block}.role-swatches{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.role-sw{cursor:pointer;border:2px solid #0000;border-radius:50%;width:26px;height:26px;padding:0;box-shadow:inset 0 0 0 1px #00000059}.role-sw.sel{border-color:var(--ink);box-shadow:0 0 0 2px var(--glow)}.role-sw-custom{cursor:pointer;background:0 0;border:1px dashed #5a4d40;border-radius:50%;width:26px;height:26px;padding:0;overflow:hidden}.role-sw-custom input[type=color]{cursor:pointer;background:0 0;border:none;width:40px;height:40px;transform:translate(-7px,-7px)}.mini.primary{background:var(--amber);color:var(--on-amber);border-color:var(--amber)}.mini.primary:hover{filter:brightness(1.08);color:var(--on-amber)}.modal-actions{justify-content:flex-end;gap:8px;margin-top:16px;display:flex}.secstems-scroll{scrollbar-width:thin;scrollbar-color:#5a4d40 transparent;margin-top:0;padding:14px 0 4px;overflow:auto hidden}.secstems{min-width:100%;display:inline-block}.secstems .stem-rm{color:var(--dim);cursor:pointer;background:0 0;border:none;margin-left:4px;padding:0;font-size:13px;line-height:1}.secstems .stem-rm:hover{color:#ff6b4a}.patgrid .pchip .playicon{background:var(--bg);border:1px solid var(--amber);width:18px;height:18px;color:var(--amber);opacity:0;pointer-events:none;z-index:6;border-radius:50%;justify-content:center;align-items:center;transition:opacity .12s;display:flex;position:absolute;top:-10px;left:50%;transform:translate(-50%)}.patgrid .pchip .playicon svg{width:11px;height:11px;display:block}.patgrid .pchip.playing .playicon{opacity:1;animation:1.6s ease-in-out infinite spkglow}.patgrid .pchip.playing .playicon svg{animation:1.6s ease-in-out infinite spkpulse}.patlane{margin-bottom:7px}.patgrid{position:relative}.patgrid .pchip{box-sizing:border-box;border:1px solid var(--line);background:var(--surface-chip);color:var(--ink);cursor:grab;letter-spacing:.5px;border-radius:6px;justify-content:center;align-items:center;padding:0 4px;font-family:Big Shoulders Display,sans-serif;font-size:14px;font-weight:700;line-height:1;display:flex;position:absolute;top:0;bottom:0}.patgrid .pchip.edit:hover{border-color:var(--amber);color:var(--amber)}.patgrid .pchip.edit:active{cursor:grabbing}.patgrid .pchip.dragging{opacity:.4}.patgrid .pchip .pchip-nm{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.patgrid .pchip.repeat{cursor:default;background:var(--surface-recess);color:var(--dim);opacity:.55;border:1px dashed #2c2620;font-weight:400}.patgrid .paddpat{z-index:4;border:1px solid var(--line);background:var(--surface-1);width:16px;height:16px;color:var(--amber);cursor:pointer;opacity:.45;border-radius:50%;justify-content:center;align-items:center;padding:0;font-size:12px;line-height:1;transition:all 80ms;display:flex;position:absolute;top:50%;transform:translate(-50%,-50%)}.patgrid .paddpat:hover{opacity:1;border-color:var(--amber);background:var(--surface-3)}.patgrid .paddpat.caret-on{opacity:1;color:#0000;background:var(--amber);width:4px;height:128%;box-shadow:0 0 11px 0 var(--glow);border:none;border-radius:2px}.secstems .stem-clip{flex-direction:column;justify-content:center;gap:1px;line-height:1.1;display:flex}.stemlane.placeholder .stem-track{cursor:pointer}.stemlane.placeholder .stem-empty{color:#5a4d40;padding-left:8px;font-size:10px;font-style:italic;line-height:30px}.stemlane.placeholder .stem-track:hover{border-color:var(--amber)}.stemlane.placeholder .stem-track:hover .stem-empty{color:var(--amber)}.secstems .stem-clip .sc-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.secstems .stem-clip .sc-pos{opacity:.8;text-overflow:ellipsis;white-space:nowrap;font-size:8px;font-weight:400;overflow:hidden}.drawer-wave{cursor:text}.drawer-trim{color:var(--dim);flex:1;font-size:10px}.selmenu .selmenu-del{color:#ff6b4a;border-top:1px solid var(--line);align-items:center;gap:7px;margin-top:4px;display:flex}.selmenu .selmenu-del .trash{font-size:13px}.role-presets button{background:var(--surface-1);border:1px solid var(--line);color:var(--dim);cursor:pointer;letter-spacing:.5px;border-radius:7px;padding:7px 11px;font-family:inherit;font-size:12px}.role-presets button:hover{color:var(--ink);border-color:#5a4d40}.role-presets button.sel{background:#1d1712;border-color:currentColor}.lane-rows{flex-direction:column;gap:8px;display:flex}.lane-stack{flex-direction:column;gap:18px;display:flex}.section-lane-row,.song-lane-row{flex-direction:column;gap:6px;padding-left:14px;display:flex;position:relative}.section-lane-row:before,.song-lane-row:before{content:"";background:var(--lane-color,var(--line));border-radius:3px;width:5px;position:absolute;top:0;bottom:0;left:0}.section-lane-row.lane-off{opacity:.55}.section-lane-row .shead,.song-lane-row .shead{margin-bottom:4px}.section-lane-row .shead .name,.song-lane-row .shead .name{color:var(--lane-color,inherit)}.section-lane-row .cfg-row .cfg-lbl.cfg-head,.song-lane-row .cfg-row .cfg-lbl.cfg-head,.drawer-scroll .cfg-row .cfg-lbl.cfg-head{font-size:12px}.secpanel .cfg>.cfg-row>.cfg-lbl.cfg-head{font-size:18px}.cfg-head .cfg-head-sub{color:var(--dim);font-weight:400}.lane-row{align-items:stretch;gap:8px;display:flex}.lane-row .lane-tog{background:var(--surface-1);border:1px solid var(--line);color:var(--dim);cursor:pointer;letter-spacing:.5px;text-align:left;border-radius:8px;flex:1;justify-content:space-between;align-items:center;gap:10px;padding:10px 13px;font-family:inherit;display:flex}.lane-row .lane-tog .lt-name{font-size:13px}.lane-row .lane-tog .lt-state{text-transform:uppercase;letter-spacing:1.5px;opacity:.7;font-size:10px}.lane-row .lane-tog.on{color:#14110f;border-color:#0000;font-weight:500}.lane-row .lane-tog.on .lt-state{opacity:.85}.lane-row .lanecfg{color:var(--dim);justify-content:center;align-items:center;display:flex}.lane-row .lanecfg:hover{color:var(--amber);border-color:var(--amber)}.cog-sm{padding:2px 11px;font-size:24px;line-height:1}.curvebox{background:var(--surface-chart);border:1px solid var(--line);touch-action:none;border-radius:8px;width:100%;height:64px;position:relative;overflow:hidden}.reprow{justify-content:space-between;align-items:center;gap:10px;margin:0 0 9px;display:flex}.reprow select{max-width:140px}.curvebox svg{width:100%;height:100%;display:block}.curvebox .cl{letter-spacing:1px;text-transform:uppercase;color:var(--dim);font-size:8px;position:absolute;bottom:4px}.curvebox .cl.start{left:6px}.curvebox .cl.end{right:6px}.curvebox .cv-handle{background:var(--amber);border:2px solid var(--surface-chart);cursor:ns-resize;z-index:3;touch-action:none;border-radius:50%;width:16px;height:16px;position:absolute;transform:translate(-50%,-50%);box-shadow:0 1px 4px #0009}.curvebox .cv-start{left:8px}.curvebox .cv-end{left:calc(100% - 8px)}.curvebox .cv-handle.drag{box-shadow:0 0 8px -1px var(--amber);background:#fff}.curvebox .cv-mid{cursor:move}.curvebox .cv-ph{opacity:0;pointer-events:none;background:#ffffffb3;width:1.5px;margin-left:-.75px;transition:opacity .1s;position:absolute;top:0;bottom:0;left:0}.freqrow{justify-content:space-between;gap:4px;margin-top:5px;display:flex}.freqrow span{color:var(--amber);opacity:.85;font-family:DM Mono,monospace;font-size:10px}body.cv-dragging{touch-action:none}body.cv-dragging .secbox .drawer-scroll{overflow:hidden}.topbar{z-index:40;background:var(--surface-1);border-bottom:1px solid var(--line);position:fixed;top:0;left:0;right:0;box-shadow:0 10px 24px -14px #000000d9}.bar-inner{align-items:center;gap:16px;max-width:980px;margin:0 auto;padding:10px 16px;display:flex}.topbar .logo{letter-spacing:.5px;text-transform:uppercase;color:var(--ink);white-space:nowrap;margin:0;font-family:Big Shoulders Display,sans-serif;font-size:22px;font-weight:800;line-height:1}.topbar .logo span{color:var(--amber)}.topbar .logo .logo2{color:var(--line)}.topbar .scopes{flex-direction:row;flex:auto;gap:10px;min-width:0;display:flex;position:relative}.meter-tap{z-index:3;letter-spacing:1px;text-transform:uppercase;border:1px solid var(--line);color:var(--dim);cursor:pointer;background:#0d0a08b8;border-radius:4px;padding:2px 7px;font-size:9px;position:absolute;top:3px;right:3px}.meter-tap:hover{border-color:var(--amber);color:var(--amber)}.meter-tap.on{color:var(--amber);border-color:var(--amber)}.topbar .scope-lane canvas{height:48px}.theme-toggle{border:1px solid var(--line);color:var(--dim);cursor:pointer;background:0 0;border-radius:8px;justify-content:center;align-items:center;margin-left:auto;padding:5px 9px;transition:color .12s,border-color .12s,background .12s;display:flex}.theme-toggle:hover{color:var(--amber);border-color:var(--amber)}.topbar .hamburger{border:1px solid var(--line);color:var(--dim);cursor:pointer;background:0 0;border-radius:8px;flex-direction:column;justify-content:center;align-items:center;gap:4px;padding:7px 9px;transition:color .12s,border-color .12s,background .12s;display:inline-flex}.topbar .hamburger span{background:currentColor;border-radius:2px;width:16px;height:2px;display:block}.topbar .hamburger:hover{color:var(--amber);border-color:var(--amber)}.topbar .song-name{color:#fff;text-align:center;z-index:1;background:0 0;border:1px solid #0000;border-radius:7px;width:28ch;min-width:160px;max-width:320px;padding:5px 10px;font-family:inherit;font-size:14px;transition:border-color .12s,background .12s;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.topbar .song-name::placeholder{color:#ffffff73}.topbar .song-name:hover{border-color:var(--line)}.topbar .song-name:focus{border-color:var(--amber);box-shadow:0 0 0 2px var(--glow);background:#00000040;outline:none}.topbar .undo-redo{z-index:2;gap:6px;margin-left:auto;display:flex}.topbar .undo-redo .mini{width:32px;height:32px;color:var(--dim);background:0 0;justify-content:center;align-items:center;padding:0;display:inline-flex}.topbar .undo-redo .mini svg{width:16px;height:16px;display:block}.topbar .undo-redo .mini:hover:not(:disabled){color:var(--amber);border-color:var(--amber)}.topbar .undo-redo .mini:disabled{opacity:.32;cursor:not-allowed}.topmenu-wrap{z-index:2;flex:none;position:relative}.topmenu-btn{padding:0 11px;font-size:25px;line-height:1.3}.topmenu{background:var(--panel);border:1px solid var(--line);z-index:45;border-radius:10px;flex-direction:column;gap:2px;min-width:200px;padding:6px;display:flex;position:absolute;top:calc(100% + 8px);right:0;box-shadow:0 18px 44px -14px #000000bf}.topmenu[hidden]{display:none}.topmenu button{text-align:left;width:100%;color:var(--ink);cursor:pointer;white-space:nowrap;background:0 0;border:none;border-radius:7px;padding:8px 10px;font-family:inherit;font-size:12px;display:block}.topmenu button:hover{color:var(--amber);background:#1d1712}.bottombar{z-index:40;background:var(--surface-1);border-top:1px solid var(--line);position:fixed;bottom:0;left:0;right:0;box-shadow:0 -10px 24px -14px #000000d9}.bottombar .bar-inner{max-width:none;margin:0;padding:13px 16px 15px;display:block;position:relative;overflow:visible}.scope-bg{opacity:.5;pointer-events:none;z-index:0;width:100%;height:100%;display:block;position:absolute;inset:0}.np-row{z-index:1;justify-content:space-between;align-items:baseline;gap:88px;display:flex;position:relative}.np-row .np-side{align-items:baseline;gap:6px;min-width:0;display:flex}.np-row .np-r{text-align:right;justify-content:flex-end}.np-row .np-v{color:var(--ink);white-space:nowrap;text-overflow:ellipsis;font-family:DM Mono,monospace;font-size:11px;overflow:hidden}.bigplay{z-index:3;background:var(--amber);width:56px;height:56px;color:var(--on-amber);cursor:pointer;border:none;border-radius:50%;justify-content:center;align-items:center;padding:0;font-size:20px;line-height:1;transition:transform 80ms,background .12s;display:flex;position:absolute;top:-8px;left:50%;transform:translate(-50%);box-shadow:0 9px 22px -6px #000000b3}.bigplay:active{transform:translate(-50%)scale(.94)}.bigplay.on{background:#e8ddd0}.bigplay svg{display:block}.np-mode{letter-spacing:1px;text-transform:uppercase;color:var(--amber);font-family:Big Shoulders Display,sans-serif;font-size:14px;font-weight:700}.np-mode.idle{color:var(--dim)}.np-line{align-items:baseline;gap:6px;display:flex}.np-k{letter-spacing:1.5px;text-transform:uppercase;color:var(--dim);font-size:9px}.np-v{color:var(--ink);font-family:DM Mono,monospace;font-size:13px}.scope-lane{flex:1 1 0;min-width:0;position:relative}.scope-lane.drums{--acc:#ff7a45}.scope-lane.bass{--acc:#6fd39a}.scope-lane.melody{--acc:#ffd05c}.scope-lane canvas{background:var(--surface-chart);border:1px solid var(--line);border-radius:8px;width:100%;height:84px;display:block}.scope-lane .sl{letter-spacing:1.5px;text-transform:uppercase;color:var(--acc);opacity:.85;pointer-events:none;font-size:9px;position:absolute;top:4px;left:7px}.fblock{flex-direction:column;gap:11px;display:flex}.fblock .r2{flex-direction:column;gap:5px;display:flex}.fblock label{letter-spacing:1.5px;text-transform:uppercase;color:var(--dim);justify-content:space-between;align-items:center;font-size:10px;display:flex}.fblock .inline{gap:8px;display:flex}.fblock .inline .r2{flex:1}.auto-toggle{color:var(--ink);cursor:pointer;align-items:center;gap:7px;font-size:11px;display:flex}.auto-toggle input{accent-color:var(--amber);cursor:pointer}.sc-note{color:var(--dim);opacity:.75;font-size:10px;line-height:1.4}footer{color:var(--dim);text-align:center;letter-spacing:.5px;margin-top:12px;font-size:11px}footer b{color:var(--amber)}.tooltip{z-index:200;background:var(--surface-3);pointer-events:none;opacity:0;visibility:hidden;border:1px solid #3d3022;border-radius:10px;max-width:250px;padding:9px 12px;transition:opacity .13s,transform .13s;position:fixed;transform:translateY(3px);box-shadow:0 14px 34px -10px #000000d9}.tooltip.show{opacity:1;visibility:visible;transform:translateY(0)}.tooltip .tt-h{letter-spacing:1px;text-transform:uppercase;color:var(--amber);margin-bottom:3px;font-family:Big Shoulders Display,sans-serif;font-size:13px;font-weight:700;display:block}.tooltip .tt-b{color:var(--ink);font-family:DM Mono,monospace;font-size:11.5px;line-height:1.55;display:block}.tooltip:after{content:"";left:var(--ax,50%);border:6px solid #0000;border-top-color:var(--surface-3);margin-left:-6px;position:absolute;bottom:-11px}.tooltip.below:after{border-top-color:#0000;border-bottom-color:var(--surface-3);top:-11px;bottom:auto}[data-tip]{cursor:help}.ptab[data-tip],.cell[data-tip],button[data-tip],select[data-tip],input[data-tip]{cursor:pointer}.app{max-width:none!important}.topbar .bar-inner{max-width:none}@media (min-width:1100px){.patcar{scroll-snap-type:none;align-items:flex-start;gap:0;overflow-x:visible;flex-direction:row!important}.patcar>.patbox{flex-grow:var(--g0,1.4);flex-shrink:1;flex-basis:0;order:0;min-width:0}.patcar>.secbox{flex-grow:var(--g1,1.1);flex-shrink:1;flex-basis:0;order:0;min-width:0}.patcar>.botctl{flex-grow:var(--g2,.9);flex-shrink:1;flex-basis:0;order:0;min-width:0}.colsplit{cursor:col-resize;touch-action:none;flex:0 0 16px;justify-content:center;align-self:stretch;align-items:center;display:flex}.colsplit:before{content:"";background:var(--line);border-radius:3px;width:3px;height:46px;transition:background .12s}.colsplit:hover:before,.colsplit.drag:before{background:var(--amber)}.patcar>.patbox,.patcar>.secbox,.patcar>.botctl{max-height:calc(100dvh - var(--top-h,64px) - var(--secrow-h,0px) - var(--bot-h,64px) - 28px);scrollbar-width:thin;scrollbar-color:#5a4d40 transparent;min-height:0;overflow:hidden auto}}@media (max-width:1099px){.patcar{scroll-behavior:smooth;-webkit-overflow-scrolling:touch;scrollbar-width:none;align-items:flex-start;scroll-snap-type:x mandatory!important;flex-direction:row!important;gap:12px!important;overflow-x:auto!important}.patcar::-webkit-scrollbar{display:none}.patcar>.patbox,.patcar>.secbox,.patcar>.botctl{scroll-snap-align:center;min-width:0;flex:0 0 100%!important}.patcar>.secbox[hidden]{visibility:hidden;display:flex}.colsplit{display:none!important}}.clip.sel{border-color:var(--amber);box-shadow:0 0 0 1px var(--amber)}.clip.dropping{border-color:var(--amber);box-shadow:0 0 0 2px var(--glow)}.secbox .cfg .secstems-scroll{max-width:100%;overflow:auto hidden}.secbox .cfg .secstems-scroll::-webkit-scrollbar{height:8px}.secbox .cfg .secstems-scroll::-webkit-scrollbar-thumb{background:#5a4d40;border-radius:4px}.secbox .cfg-row{min-width:0}@media (min-width:1100px){body{overflow-x:hidden}.machine,.patcar{width:100%;max-width:100%}.patcar>.patbox,.patcar>.secbox,.patcar>.botctl{min-width:0!important;max-width:100%!important;overflow:hidden auto!important}.patcar>.patbox .grid,.patcar>.patbox #bassmods{max-width:100%;overflow-x:auto}.secpanel,.drawer-scroll,.cfg{min-width:0;max-width:100%}}@media (max-width:1099px){.patcar>.patbox,.patcar>.secbox,.patcar>.botctl{box-sizing:border-box!important;flex:0 0 100%!important;width:100%!important;max-width:100%!important}}.clip{cursor:pointer}.patbox,.secbox,.botctl,.secpanel,.drawer-scroll,.cfg,.cfg-row,.secstems-scroll{min-width:0;max-width:100%}@media (max-width:1099px){.patcar{box-sizing:border-box;margin-left:calc(50% - 50vw);padding-left:16px;padding-right:16px;width:100vw!important;max-width:100vw!important}.patcar>.patbox,.patcar>.secbox,.patcar>.botctl{box-sizing:border-box;scroll-snap-align:center;flex:0 0 calc(100vw - 32px)!important;width:calc(100vw - 32px)!important;max-width:calc(100vw - 32px)!important}}@media (min-width:1100px){.patcar{box-sizing:border-box;overflow:hidden;width:calc(100vw - 32px)!important;max-width:calc(100vw - 32px)!important}.patcar>.patbox,.patcar>.secbox,.patcar>.botctl{flex-shrink:1!important;flex-basis:0!important;min-width:0!important}}.cell.on.playhead{transform:none}.secstems .pchip .playicon{background:var(--bg);border:1px solid var(--amber);width:18px;height:18px;color:var(--amber);opacity:0;pointer-events:none;z-index:6;border-radius:50%;justify-content:center;align-items:center;transition:opacity .12s;display:flex;position:absolute;top:-10px;left:50%;transform:translate(-50%)}.secstems .pchip .playicon svg{width:11px;height:11px;display:block}.secstems .pchip.playing .playicon{opacity:1;animation:1.6s ease-in-out infinite spkglow}.secstems .pchip.playing .playicon svg{animation:1.6s ease-in-out infinite spkpulse}.secstems .paddpat{opacity:.7}.secstems .paddpat:hover{opacity:1}.curvebox .cv-ph{display:block}.clip .cardcurve{position:relative}.cell{transform:translateX(calc(var(--shift,0) * 100%));transition:transform 80ms,box-shadow 80ms;position:relative}.cell.shifted{z-index:5}.cell.shifted:before,.cell.shift-active:before{content:"";border:1px dashed var(--amber);opacity:.55;pointer-events:none;transform:translateX(calc(var(--shift,0) * -100%));border-radius:4px;position:absolute;inset:0}.cell.shift-active{transform:translateX(calc(var(--shift,0) * 100%)) scale(1.5);z-index:12;transition:transform .12s;box-shadow:0 6px 18px -8px #000000a6}.cell.shift-neighbor{z-index:11;transition:transform .12s;transform:scale(1.5)}.cell-shift-label{transform-origin:bottom;background:var(--panel);color:var(--amber);border:1px solid var(--amber);pointer-events:none;white-space:nowrap;border-radius:5px;margin-bottom:6px;padding:2px 7px;font-family:DM Mono,monospace;font-size:11px;font-weight:500;position:absolute;bottom:100%;left:50%;transform:translate(-50%)scale(.666667);box-shadow:0 4px 12px -4px #0009}body.cell-shift-dragging .grid,body.cell-shift-dragging #bassmods{overflow:visible!important}.scale-root-row{grid-template-columns:1fr auto;align-items:stretch;gap:4px;display:grid}.scale-root-row .selwrap:first-child,.scale-root-row .selwrap:first-child .seltrigger{width:100%}.scale-root-row .selwrap:last-child .seltrigger{min-width:56px}.sec-name-input{background:var(--surface-1);border:1px solid var(--amber);color:var(--ink);font:inherit;letter-spacing:.5px;text-transform:uppercase;text-align:center;border-radius:5px;outline:none;width:100%;padding:2px 6px;font-family:Big Shoulders Display,sans-serif;font-size:17px;font-weight:700}.sectab-input{background:var(--surface-1);color:var(--ink);border-color:var(--amber);text-align:center;outline:none;width:110px}.secrow{min-width:0;max-width:100%}.secrow .clips{min-width:0}.drawer-panel .modal-head .drawer-pin{color:var(--dim);cursor:pointer;background:0 0;border:none;margin:0 8px 0 0;padding:2px 6px;font-size:14px}.drawer-panel .modal-head .drawer-pin.on,.drawer-panel .modal-head .drawer-pin:hover{color:var(--amber)}.drawer-panel .modal-head{padding:20px 24px!important}.drawer-panel .drawer-scroll{padding:20px 24px 32px!important}.curve-add-divider{justify-content:center;align-items:center;height:28px;margin:30px 0 18px;display:flex;position:relative}.curve-add-divider:before{content:"";border-top:1px dashed var(--line);position:absolute;top:50%;left:0;right:0}.curve-add-divider .curveadd{z-index:1;position:relative}.sectab{padding-right:10px}.ptab.sectab.active{background:var(--surface-1);color:var(--ink);border-color:var(--line);border-bottom:3px solid var(--amber);height:36px;box-shadow:0 0 0 1px var(--amber) inset;padding-bottom:0}.sectab .sectab-lbl{display:inline-block}.sectab .sectab-color{cursor:pointer;vertical-align:middle;border:1px solid #ffffff2e;border-radius:50%;width:14px;height:14px;margin-left:8px;display:inline-block;box-shadow:inset 0 0 0 1px #0006}.sectab .sectab-color:hover{transform:scale(1.12)}.sectab-color-menu{padding:8px}.sectab-color-menu .role-swatches{grid-template-columns:repeat(5,22px);gap:6px;display:grid}.sectab-color-menu .role-sw{border:1px solid var(--line);cursor:pointer;border-radius:50%;width:22px;height:22px;padding:0;transition:transform 80ms}.sectab-color-menu .role-sw:hover{border-color:var(--ink);transform:scale(1.12)}.sectab-color-menu .role-sw.sel{box-shadow:0 0 0 2px var(--amber)}.np-modes-arc{z-index:2;pointer-events:none;width:200px;height:60px;position:absolute;top:-30px;left:50%;overflow:visible;transform:translate(-50%)}.np-modes-arc text{letter-spacing:1.5px;text-transform:uppercase;fill:var(--dim);cursor:pointer;pointer-events:auto;font-family:Big Shoulders Display,sans-serif;font-size:10px;font-weight:700;transition:fill .12s,filter .12s}.np-modes-arc text:hover{fill:var(--ink)}.np-modes-arc text.cur{fill:var(--amber)}.np-modes-arc text.on{fill:var(--amber);filter:drop-shadow(0 0 4px var(--amber))}.piano-grid{gap:0}.piano-grid .row{grid-template-columns:52px repeat(var(--steps,16), var(--cell,1fr));align-items:stretch;gap:2px;height:14px}.piano-grid .piano-row.black .cell{background:#110d0a}.piano-grid .piano-row.white .cell{background:#1a1612}.piano-grid .piano-row.white.boundary .cell{box-shadow:inset 0 1px #2a221a}.piano-grid .piano-row .name-lbl{z-index:3;border-right:1px solid var(--surface-1);cursor:pointer;background:var(--panel);justify-content:flex-end;align-items:center;height:14px;padding:0;display:flex;position:sticky;left:0;overflow:visible}.piano-grid .piano-row .name-lbl:hover{filter:brightness(1.08)}.piano-grid .piano-row.white .name-lbl{background-color:#d8cdbf;background-image:linear-gradient(#efe5d7 0%,#d8cdbf 65%,#b8ad9d 100%);box-shadow:inset 0 -1px #00000038}.piano-grid .piano-row.white.boundary .name-lbl{box-shadow:inset 0 1px #6a5d4f,inset 0 -1px #00000038}.piano-grid .piano-row.black .name-lbl{background-color:#0a0805;background-image:linear-gradient(90deg,#1a120a 0%,#14100a 50%,#0a0805 62%,#d8cdbf 62%,#c4b9a8 100%);box-shadow:inset 0 1px #ffffff0f,inset 0 -1px #00000080}.piano-grid .piano-row.scale-on .name-lbl:before{content:"";background:var(--amber);width:4px;height:4px;box-shadow:0 0 4px -1px var(--amber);z-index:1;border-radius:50%;position:absolute;top:50%;left:3px;transform:translateY(-50%)}.piano-grid .piano-key-label{letter-spacing:.5px;color:#4a3a25;white-space:nowrap;padding-right:4px;font-size:8px}.piano-grid .cell{aspect-ratio:auto;border-width:1px;border-radius:2px;height:12px}.piano-grid .cell.on{box-shadow:0 0 4px -1px var(--acc)}.mini.laneview.on{color:var(--amber);border-color:var(--amber)}html,body{overflow-x:hidden}.pinned-drawer-slot:empty{display:none!important}@media (max-width:1099px){.patcar{scroll-snap-type:x mandatory!important;scrollbar-width:none!important;flex-direction:row!important;gap:0!important;width:100vw!important;max-width:100vw!important;margin-left:calc(50% - 50vw)!important;padding:0!important;overflow:auto visible!important}.patcar::-webkit-scrollbar{display:none!important}.patcar>.patbox,.patcar>.secbox,.patcar>.botctl,.patcar>.pinned-drawer-slot:not(:empty){box-sizing:border-box!important;scroll-snap-align:start!important;scroll-snap-stop:always!important;flex:0 0 100vw!important;order:0!important;width:100vw!important;min-width:0!important;max-width:100vw!important;margin-left:0!important;margin-right:0!important;padding-left:16px!important;padding-right:16px!important}.patcar>.pinned-drawer-slot:not(:empty){display:block!important}.patcar>.colsplit,.patcar>.secbox[hidden]{display:none!important}}.patcar>.pinned-drawer-slot:not(:empty){background:var(--panel);border:1px solid var(--line);border-radius:14px;box-shadow:0 18px 40px -26px #000000b3,inset 0 1px #ffffff0a}@media (min-width:1100px){.patcar>.pinned-drawer-slot:not(:empty){flex-grow:var(--g3,1);contain:layout;min-width:0;max-height:calc(100dvh - var(--top-h,64px) - var(--secrow-h,0px) - var(--bot-h,64px) - 60px);scrollbar-width:thin;scrollbar-color:#5a4d40 transparent;flex-shrink:1;flex-basis:0;order:0;overflow:hidden auto}}.landing{background:var(--bg);background-image:radial-gradient(circle at 50% -10%, var(--bg-soft) 0%, var(--bg) 60%);place-items:center;padding:24px;display:grid;position:fixed;inset:0}.landing-card{background:var(--panel);border:1px solid var(--line);border-radius:14px;width:100%;max-width:380px;padding:32px;box-shadow:0 18px 40px -26px #000000b3,inset 0 1px #ffffff0a}.landing-card h1{letter-spacing:1px;text-transform:uppercase;color:var(--amber);margin-bottom:6px;font-family:Big Shoulders Display,sans-serif;font-size:36px;font-weight:800}.landing-sub{color:var(--dim);margin-bottom:22px;font-size:13px}.landing-form{flex-direction:column;gap:8px;display:flex}.landing-label{text-transform:uppercase;letter-spacing:1px;color:var(--dim);font-size:11px}.landing-input{background:var(--surface-input);color:var(--ink);border:1px solid var(--line);border-radius:8px;outline:none;padding:11px 12px;font-family:inherit;font-size:14px;transition:border-color .12s,box-shadow .12s}.landing-input:focus{border-color:var(--amber);box-shadow:0 0 0 3px var(--glow)}.landing-btn{background:var(--amber);color:var(--on-amber);letter-spacing:1px;text-transform:uppercase;cursor:pointer;border:none;border-radius:8px;margin-top:6px;padding:12px 14px;font-family:Big Shoulders Display,sans-serif;font-size:16px;font-weight:700;transition:transform 80ms,box-shadow .12s}.landing-btn:hover:not(:disabled){box-shadow:0 6px 18px -8px var(--glow)}.landing-btn:active:not(:disabled){transform:translateY(1px)}.landing-btn:disabled{opacity:.5;cursor:not-allowed}.landing-error{color:#ff6b6b;margin-top:6px;font-size:13px}.landing-sent{color:var(--ink);flex-direction:column;gap:10px;font-size:14px;display:flex}.landing-sent strong{color:var(--amber)}.landing-hint{color:var(--dim);font-size:12px}.landing-link{color:var(--amber);text-transform:uppercase;letter-spacing:1px;cursor:pointer;background:0 0;border:none;align-self:flex-start;padding:4px 0;font-family:inherit;font-size:12px}.landing-link:hover{text-decoration:underline}.auth-loading{color:var(--dim);text-transform:uppercase;letter-spacing:1px;place-items:center;font-size:13px;display:grid;position:fixed;inset:0}.sidebar-scrim{opacity:0;pointer-events:none;z-index:48;background:#0000008c;transition:opacity .18s;position:fixed;inset:0}.sidebar-scrim.open{opacity:1;pointer-events:auto}.sidebar{background:var(--surface-1);border-right:1px solid var(--line);z-index:49;flex-direction:column;width:280px;max-width:90vw;padding:14px 10px 12px;transition:transform .22s;display:flex;position:fixed;top:0;bottom:0;left:0;transform:translate(-100%);box-shadow:18px 0 36px -18px #000000b3}.sidebar.open{transform:translate(0)}.sidebar-logo{margin:4px 12px 14px;line-height:0}.sidebar-logo img{width:100%;height:auto;display:block}.sidebar-nav,.sidebar-foot{flex-direction:column;gap:2px;display:flex}.sidebar-foot{border-top:1px solid var(--line);margin-top:auto;padding-top:10px}.sidebar-item{color:var(--ink);letter-spacing:.5px;text-transform:uppercase;cursor:pointer;text-align:left;background:0 0;border:none;border-radius:8px;align-items:center;gap:10px;width:100%;padding:10px 12px;font-family:Big Shoulders Display,sans-serif;font-size:15px;font-weight:700;text-decoration:none;transition:background .12s,color .12s;display:flex}.sidebar-item:hover,.sidebar-item.active{background:var(--surface-2,#1d1712);color:var(--amber)}.sidebar-item svg{flex:none}.secstems-rows{display:block}.stemlane .sl-label .sl-name{text-overflow:ellipsis;white-space:nowrap;text-transform:none;letter-spacing:0;color:var(--ink);flex:auto;font-size:11px;overflow:hidden}.stemlane .sl-label .stem-rm{color:var(--dim);cursor:pointer;background:0 0;border:none;flex:none;margin-left:6px;padding:0 4px;font-size:14px;line-height:1}.stemlane .sl-label .stem-rm:hover{color:#ff6b4a}.stemlane.stem-add-row{margin-top:2px}.stemlane.stem-add-row .sl-label{background:0 0}.stem-add{color:var(--dim);font:inherit;text-transform:uppercase;letter-spacing:1px;border:1px dashed var(--line);cursor:pointer;background:0 0;border-radius:6px;flex:none;justify-content:flex-start;align-items:center;height:100%;padding:6px 12px;font-size:11px;display:flex}.stem-add:hover{border-color:var(--amber);color:var(--amber)}.library-page h1{letter-spacing:.5px;color:var(--ink);margin:0 0 8px;font-family:Big Shoulders Display,sans-serif;font-size:32px;font-weight:700}.library-page .dim{color:var(--dim);font-size:13px}.filter-divider{align-items:center;gap:0;margin:18px 0 4px;display:flex}.filter-divider .dot-line{border-top:1px dashed var(--line);flex:1;height:0}.filter-divider .filter-add{border:1px solid var(--amber);width:32px;height:32px;color:var(--amber);cursor:pointer;box-shadow:0 0 10px 0 var(--glow,#ff9f4359);background:#15110e;border-radius:50%;justify-content:center;align-items:center;margin:0 10px;padding:0;font-size:20px;line-height:1;transition:all .12s;display:flex}.filter-divider .filter-add:hover{box-shadow:0 0 16px 2px var(--glow,#ff9f438c);background:#241b14}.filter-add-menu{min-width:160px}.lane-add-divider{margin:22px 0 6px}.add-row{border:1px solid var(--amber);width:fit-content;color:var(--amber);letter-spacing:1.4px;text-transform:uppercase;cursor:pointer;box-shadow:0 0 8px 0 var(--glow,#ff9f4340);background:#15110e;border-radius:8px;align-items:center;gap:7px;margin:14px auto 4px;padding:5px 11px;font-family:inherit;font-size:10px;transition:all .12s;display:flex}.add-row:hover{box-shadow:0 0 14px 2px var(--glow,#ff9f4373);background:#241b14}.add-row .plus{font-size:15px;font-weight:600;line-height:1}.add-curve{border:1px dashed var(--line);width:100%;height:64px;color:var(--dim);cursor:pointer;background:0 0;border-radius:8px;flex-direction:column;justify-content:center;align-items:center;gap:4px;margin:14px 0 4px;padding:0;font-family:inherit;transition:all .12s;display:flex}.add-curve:hover{border-color:var(--amber);color:var(--amber);box-shadow:0 0 12px 0 var(--glow,#ff9f4340)}.add-curve .add-curve-title{letter-spacing:1.4px;text-transform:uppercase;align-items:center;gap:7px;font-size:10px;font-weight:600;display:flex}.add-curve .add-curve-sub{letter-spacing:.2px;text-transform:none;opacity:.75;font-size:10.5px;font-weight:400}.add-curve .plus{font-size:16px;font-weight:600;line-height:1}.curve-rm{cursor:pointer;color:var(--dim);background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;padding:4px;line-height:0;transition:all 80ms;display:inline-flex}.curve-rm:hover{color:#ff6b4a;background:#ff6b4a14}.curve-rm svg{display:block}.library-page{max-width:1100px;padding:calc(var(--top-h,56px) + 32px) 24px 48px;color:var(--ink);margin:0 auto}.library-grid{grid-template-columns:260px 1fr;align-items:start;gap:24px;display:grid}.library-list{border-right:1px solid var(--line);flex-direction:column;gap:6px;padding-right:12px;display:flex}.library-list-head{justify-content:space-between;align-items:center;padding:0 0 8px;display:flex}.library-list-head h2{margin:0;font-size:16px}.library-section-label{letter-spacing:1px;text-transform:uppercase;color:var(--dim);padding:8px 4px 2px;font-size:10px}.library-item{border:1px solid var(--line);color:var(--ink);cursor:pointer;font:inherit;text-align:left;background:0 0;border-radius:6px;flex-direction:column;align-items:flex-start;gap:2px;padding:8px 10px;transition:all 80ms;display:flex}.library-item:hover{border-color:var(--amber)}.library-item.sel{border-color:var(--amber);color:var(--amber);background:#241b14}.library-item .li-name{font-size:13px}.library-item .li-meta{color:var(--dim);font-size:10px}.library-detail{min-height:320px}.instrument-editor{flex-direction:column;gap:10px;display:flex}.instr-head{align-items:center;gap:10px;display:flex}.instr-name{border:1px solid var(--line);color:var(--ink);background:0 0;border-radius:6px;flex:1;padding:6px 10px;font-family:inherit;font-size:18px}.instr-name:focus{outline:1px solid var(--amber)}.adsr-row{grid-template-columns:1fr 1fr;gap:8px 16px;display:grid}.zone-row{background:var(--surface-recess,#141019);border:1px solid var(--line);border-radius:8px;margin-top:6px;padding:8px 10px}.zone-row-head{justify-content:space-between;align-items:center;padding-bottom:6px;display:flex}.zone-sample{color:var(--dim);text-overflow:ellipsis;white-space:nowrap;max-width:70%;font-size:12px;font-style:italic;overflow:hidden}.zone-row-grid{grid-template-columns:1fr 1fr;gap:4px 16px;display:grid}.lanes-panel{flex-direction:column;gap:6px;display:flex}.lane-cfg-row{background:var(--surface-recess,#141019);border-radius:6px;margin-bottom:2px;padding:8px 10px}.lane-cfg-row.new-lane-row{border:1px dashed var(--line);background:0 0}.lane-cfg-head{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.lane-cfg-actions{justify-content:flex-end;gap:8px;margin-top:8px;display:flex}.lane-name{border:1px solid var(--line);min-width:100px;color:var(--ink);background:0 0;border-radius:4px;flex:1;padding:4px 8px;font-family:inherit;font-size:13px}.lane-color-swatches{flex-wrap:wrap;gap:3px;display:flex}.voice-row{align-items:center;gap:8px;padding:4px 0;display:flex}.voice-row .fl{text-transform:uppercase;letter-spacing:1px;color:var(--dim);min-width:56px;font-size:11px}.vel-strip{grid-template-columns:52px repeat(var(--steps,16), var(--cell,1fr));align-items:stretch;gap:4px;height:36px;margin-top:4px;display:grid}.vel-strip-lbl{letter-spacing:1px;text-transform:uppercase;color:var(--dim);justify-content:flex-end;align-items:center;padding-right:4px;font-size:9px;display:flex}.vel-cell{background:var(--surface-recess,#141019);cursor:ns-resize;touch-action:none;border-radius:3px;align-items:flex-end;display:flex;position:relative}.vel-cell.beat{background:#1b1622}.vel-cell.offbeat{background:#18131e}.vel-cell:hover{filter:brightness(1.2)}.vel-cell .vel-bar{background:linear-gradient(to top, var(--amber) 0%, #ffd05c 100%);border-radius:2px 2px 0 0;width:100%;min-height:1px}.humanize-row{flex-wrap:wrap;align-items:center;gap:14px;padding:6px 0;display:flex}.humanize-row .cfg-lbl{letter-spacing:1px;text-transform:uppercase;color:var(--dim);font-size:10px}.meter-row,.tonal-row{flex-wrap:wrap;align-items:center;gap:10px;padding:6px 0;display:flex}.meter-row .cfg-lbl,.tonal-row .cfg-lbl{letter-spacing:1px;text-transform:uppercase;color:var(--dim);min-width:50px;font-size:10px}.modal.modal-wide{max-width:880px}.tpl-genre-section{margin-top:14px}.tpl-genre-h{letter-spacing:1px;text-transform:uppercase;color:var(--dim);margin:8px 0 6px;font-size:14px}.tpl-mini-arc{width:100%;height:22px;margin-top:8px}.tempo-map{flex-direction:column;gap:6px;display:flex}.tempo-map-svg{background:var(--surface-recess,#141019);border:1px solid var(--line);cursor:crosshair;border-radius:6px;width:100%;height:80px}.tempo-seg-list{flex-direction:column;gap:4px;max-height:120px;margin-top:4px;display:flex;overflow-y:auto}.tempo-seg-item{background:var(--surface-recess,#141019);border-radius:4px;align-items:center;gap:8px;padding:4px 8px;display:flex}.tempo-seg-item .ts-pos{color:var(--dim);min-width:80px;font-size:11px}.tempo-seg-item .ts-bpm{flex:1;font-size:12px}.stem-track-add{border:1px dashed var(--line);width:18px;height:18px;color:var(--dim);cursor:pointer;z-index:1;background:0 0;border-radius:50%;justify-content:center;align-items:center;padding:0;font-size:13px;line-height:1;transition:all 80ms;display:flex;position:absolute;top:50%;right:6px;transform:translateY(-50%)}.stem-track-add:hover{color:var(--amber);border-color:var(--amber);background:#ff9f4314}.stem-clip.empty{border:1px dashed var(--line);color:var(--dim);background:0 0}.songs-landing{max-width:1100px;margin:0 auto;padding:24px 28px}.songs-landing-head{justify-content:space-between;align-items:center;gap:12px;margin-bottom:18px;display:flex}.songs-landing-head h1{margin:0;font-family:Big Shoulders Display,sans-serif;font-size:28px;font-weight:700}.songs-landing button.primary.big{border-radius:8px;padding:10px 18px;font-size:13px}.songs-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px;display:grid}.song-card{background:var(--surface-chart);border:1px solid var(--line);cursor:pointer;color:inherit;border-radius:9px;flex-direction:column;gap:6px;padding:14px 16px;text-decoration:none;transition:border-color .12s,transform .12s,box-shadow .12s;display:flex}.song-card:hover{border-color:var(--amber);box-shadow:0 0 12px -3px var(--glow);transform:translateY(-1px)}.song-card-title{font-family:Big Shoulders Display,sans-serif;font-size:17px;font-weight:700;line-height:1.2}.song-card-meta{letter-spacing:.5px;text-transform:uppercase;color:var(--dim);font-size:10px}.song-card-foot{color:var(--dim);margin-top:auto;padding-top:6px;font-size:11px}.sync-status{letter-spacing:.6px;text-transform:uppercase;border:1px solid var(--line);color:var(--dim);white-space:nowrap;background:0 0;border-radius:4px;padding:4px 8px;font-size:10px}.sync-status-saved{color:var(--dim)}.sync-status-saving{color:var(--amber);border-color:var(--amber);background:#ff9f430f}.sync-status-offline{color:var(--dim);border-color:var(--line);background:#00000026}.sync-status-error{color:#ff6b6b;background:#ff6b6b14;border-color:#ff6b6b80}.topbar .logo-link{cursor:pointer;text-decoration:none}.topbar .logo-link:hover .logo2{color:var(--amber)}.song-card-wrap{position:relative}.song-card-delete{border:1px solid var(--line);background:var(--surface-chart);width:22px;height:22px;color:var(--dim);cursor:pointer;opacity:0;border-radius:50%;padding:0;font-size:13px;line-height:1;transition:opacity .12s,color .12s,border-color .12s,background .12s;position:absolute;top:8px;right:8px}.song-card-wrap:hover .song-card-delete,.song-card-delete:focus-visible{opacity:1}.song-card-delete:hover{color:#ff6b6b;background:#ff6b6b14;border-color:#ff6b6b99}.delete-confirm-actions{justify-content:flex-end;gap:10px;margin-top:14px;display:flex}.delete-confirm-actions button{border:1px solid var(--line);background:var(--surface-chart);color:inherit;cursor:pointer;border-radius:6px;padding:8px 16px;font-size:12px}.delete-confirm-actions button:disabled{opacity:.5;cursor:not-allowed}.delete-confirm-actions button.danger{color:#ffe6e6;background:#c0392b;border-color:#a8281b}.delete-confirm-actions button.danger:hover:not(:disabled){background:#d04434}
