:root{--ref-coral:#e7775d;--ref-teal:#287d80;--ref-gold:#e8b65a;--ref-ivory:#fff7e8;--ref-ink:#202a2c;--ref-paper:#f3eddf;--ref-white:#fffcf5;--ref-stone:#68665e;--ref-sand:#cfc6b5;--ref-rust:#ad432e;--ref-deep-teal:#226669;--ref-ochre:#80560f;--ref-night:#171f21;--ref-slate:#344345;--ref-mist:#b4b8ad;--ref-seafoam:#79c7c1;--ref-lilac:#795c97;--ref-lilac-light:#c6abdf;--ref-blue:#486b96;--ref-blue-light:#9dbde6;--ref-rose:#96546a;--ref-rose-light:#e7a6b8;--ref-red:#b33135;--ref-red-light:#ff9992;--bg:var(--ref-paper);--panel:var(--ref-white);--ink:var(--ref-ink);--muted:var(--ref-stone);--line:var(--ref-sand);--accent:var(--ref-rust);--accent-ink:var(--ref-white);--secondary:var(--ref-deep-teal);--audio:var(--accent);--control:var(--secondary);--gate:var(--ref-ochre);--k1:var(--ref-rust);--k2:var(--ref-ochre);--k3:var(--ref-deep-teal);--k4:#7d7058;--k5:var(--ref-lilac);--k6:var(--ref-blue);--voice1:var(--k1);--voice2:var(--k2);--voice3:var(--k3);--voice4:var(--k4);--voice5:var(--k5);--voice6:var(--k6);--voice7:var(--ref-rose);--voice8:var(--ref-blue);--danger:var(--ref-red);--warning:var(--gate);--btn-yellow:color-mix(in oklab, var(--ref-ochre) 70%, var(--ref-stone));--piano-h:160px;--key-white:var(--ref-white);--key-black:var(--ref-ink);--key-edge:var(--ref-sand);--key-white-mapped:color-mix(in oklab, var(--ref-deep-teal) 12%, var(--ref-white));--key-black-mapped:var(--ref-slate);--key-white-letter:var(--ref-deep-teal);--key-black-letter:var(--ref-seafoam);--key-held:var(--accent);--key-held-ink:var(--accent-ink);--key-name:var(--ref-stone);--shadow:color-mix(in srgb, var(--ref-ink) 16%, transparent);--backdrop:color-mix(in srgb, var(--ref-night) 45%, transparent);--surface-tint:color-mix(in oklab, var(--secondary) 5%, var(--panel));--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:var(--ref-night);--panel:var(--ref-ink);--ink:var(--ref-ivory);--muted:var(--ref-mist);--line:var(--ref-slate);--accent:var(--ref-coral);--accent-ink:var(--ref-night);--secondary:var(--ref-seafoam);--gate:var(--ref-gold);--danger:var(--ref-red-light);--btn-yellow:color-mix(in oklab, var(--ref-gold) 62%, var(--ref-mist));--k1:var(--ref-coral);--k2:var(--ref-gold);--k3:var(--ref-seafoam);--k4:var(--ref-sand);--k5:var(--ref-lilac-light);--k6:var(--ref-blue-light);--voice1:var(--k1);--voice2:var(--k2);--voice3:var(--k3);--voice4:var(--k4);--voice5:var(--k5);--voice6:var(--k6);--voice7:var(--ref-rose-light);--voice8:var(--ref-blue-light);--key-white:color-mix(in oklab, var(--ref-ivory) 86%, var(--ref-night));--key-black:var(--ref-night);--key-edge:var(--ref-night);--key-white-mapped:color-mix(in oklab, var(--ref-seafoam) 30%, var(--key-white));--key-black-mapped:color-mix(in oklab, var(--ref-seafoam) 22%, var(--ref-night));--key-white-letter:var(--ref-deep-teal);--key-black-letter:var(--ref-seafoam);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}:root[data-theme=dark]{--bg:var(--ref-night);--panel:var(--ref-ink);--ink:var(--ref-ivory);--muted:var(--ref-mist);--line:var(--ref-slate);--accent:var(--ref-coral);--accent-ink:var(--ref-night);--secondary:var(--ref-seafoam);--gate:var(--ref-gold);--danger:var(--ref-red-light);--btn-yellow:color-mix(in oklab, var(--ref-gold) 62%, var(--ref-mist));--k1:var(--ref-coral);--k2:var(--ref-gold);--k3:var(--ref-seafoam);--k4:var(--ref-sand);--k5:var(--ref-lilac-light);--k6:var(--ref-blue-light);--voice1:var(--k1);--voice2:var(--k2);--voice3:var(--k3);--voice4:var(--k4);--voice5:var(--k5);--voice6:var(--k6);--voice7:var(--ref-rose-light);--voice8:var(--ref-blue-light);--key-white:color-mix(in oklab, var(--ref-ivory) 86%, var(--ref-night));--key-black:var(--ref-night);--key-edge:var(--ref-night);--key-white-mapped:color-mix(in oklab, var(--ref-seafoam) 30%, var(--key-white));--key-black-mapped:color-mix(in oklab, var(--ref-seafoam) 22%, var(--ref-night));--key-white-letter:var(--ref-deep-teal);--key-black-letter:var(--ref-seafoam);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}body{background:var(--bg);color:var(--ink);margin:0;font:14px/1.4 system-ui,sans-serif}html{touch-action:pan-x pan-y}@media (pointer:coarse){:is(input:not([type=range]),select,textarea){font-size:16px!important}}@supports not selector(::-webkit-scrollbar){*{scrollbar-width:thin;scrollbar-color:color-mix(in srgb, var(--ink) 14%, transparent) transparent}:hover{scrollbar-color:color-mix(in srgb, var(--ink) 28%, transparent) transparent}}::-webkit-scrollbar{background:0 0;width:6px;height:6px}::-webkit-scrollbar-thumb{background:color-mix(in srgb, var(--ink) 14%, transparent);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:color-mix(in srgb, var(--ink) 28%, transparent)}::-webkit-scrollbar-corner{background:0 0}.workspace{grid-template-rows:minmax(0,1fr) auto auto auto;grid-template-columns:208px auto minmax(0,1fr);height:100dvh;display:grid}.workspace>.sidebar{grid-area:1/1/3}.workspace>main{grid-area:1/2/auto/4}.workspace>.wheels{grid-area:2/2/4}.workspace>.dock-wrap{grid-area:2/3}.dock-wrap{z-index:2;min-width:0;position:relative}.dock-cables{z-index:3;overflow:visible}.dock-cables .cable{pointer-events:none}.sidebar{background:var(--panel);border-right:1px solid var(--line);flex-direction:column;gap:12px;min-height:0;padding:20px 14px 14px;display:flex;overflow-y:auto}.sidebar>*{flex-shrink:0}.sidebar>.brand{flex-direction:column;flex-shrink:1;align-items:center;gap:6px;min-width:0;min-height:124px;display:flex}.brand img{object-fit:contain;width:100%;min-width:0;height:auto}.brand>.logo{flex:0 auto;width:100%;min-height:48px}.logo{aspect-ratio:1;min-width:0;display:block;position:relative}.logo i{position:absolute;inset:0;-webkit-mask:none 50%/contain no-repeat;mask:none 50%/contain no-repeat}.logo .l-coral{background:var(--accent);-webkit-mask-image:url(../brand/layers/coral.png);mask-image:url(../brand/layers/coral.png)}.logo .l-gold{background:var(--btn-yellow);-webkit-mask-image:url(../brand/layers/gold.png);mask-image:url(../brand/layers/gold.png)}.logo .l-shade{background:color-mix(in oklab, var(--btn-yellow) 78%, #000);-webkit-mask-image:url(../brand/layers/shade.png);mask-image:url(../brand/layers/shade.png)}.logo .l-teal{background:var(--secondary);-webkit-mask-image:url(../brand/layers/teal.png);mask-image:url(../brand/layers/teal.png)}.logo .l-rim{background:var(--ref-sand);-webkit-mask-image:url(../brand/layers/rim.png);mask-image:url(../brand/layers/rim.png)}.logo .l-cream{background:var(--ref-ivory);-webkit-mask-image:url(../brand/layers/cream.png);mask-image:url(../brand/layers/cream.png)}.logo .l-ink{background:var(--ref-ink);-webkit-mask-image:url(../brand/layers/ink.png);mask-image:url(../brand/layers/ink.png)}svg.brand-mark .ink{fill:var(--ink)}svg.brand-mark .accent{fill:var(--secondary)}.brand h1{letter-spacing:-.045em;flex-shrink:0;width:100%;margin:0;font-size:17px;font-weight:750}#tabs{border-bottom:1px solid var(--line);gap:4px;display:flex}#tabs button{color:var(--muted);background:0 0;border:0;border-radius:0;flex:1;padding:10px 4px}#tabs button[aria-selected=true]{color:var(--secondary);box-shadow:inset 0 -2px var(--secondary)}.patch-controls{gap:8px;display:grid}.patch-controls[hidden]{display:none}.patch-controls>*{width:100%;min-width:0}.budget{flex:none;margin:0}.budget summary{cursor:pointer;font:var(--cap);letter-spacing:.06em;color:var(--muted);align-items:center;gap:10px;font-size:11px;list-style:none;display:flex}.budget summary::-webkit-details-marker{display:none}.budget-title{text-transform:uppercase;color:var(--muted)}.budget-row{color:var(--ink);grid-template-columns:auto 48px auto;align-items:center;gap:5px;display:grid}.budget-name{letter-spacing:.04em;font-weight:650}.budget-bar{background:var(--line);border-radius:2px;height:4px;overflow:hidden}.budget-bar>span{background:var(--secondary);height:100%;display:block}.budget-pct{white-space:nowrap;text-align:right;font-variant-numeric:tabular-nums;min-width:30px;color:var(--ink)}.budget-row.near .budget-bar>span{background:var(--accent)}.budget-row.over .budget-bar>span{background:var(--danger);width:100%!important}.budget-row.over .budget-pct,.budget-row.over .budget-name{color:var(--danger)}.budget[open] summary .budget-title{color:var(--secondary)}.budget-list{z-index:30;background:var(--panel);border:1px solid var(--muted);width:260px;max-height:calc(100dvh - 48px);box-shadow:0 4px 16px var(--shadow);border-radius:8px;gap:2px;padding:8px 12px;font-size:11.5px;display:grid;position:fixed;bottom:32px;overflow:auto}.budget-list>.budget-head:first-child{margin-top:0}.budget-head{letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin-top:4px;font-size:10.5px}.budget-item{grid-template-columns:minmax(0,1fr) 30px auto;align-items:center;gap:6px;display:grid}.budget-item>:first-child{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.budget-item>:last-child{white-space:nowrap;text-align:right;font-variant-numeric:tabular-nums;min-width:44px}.budget-mini{background:var(--line);border-radius:2px;height:4px;overflow:hidden}.budget-mini>span{background:var(--secondary);height:100%;display:block}.budget-item.near .budget-mini>span{background:var(--accent)}.budget-item.over{color:var(--danger);font-weight:650}.budget-item.over .budget-mini>span{background:var(--danger)}.budget-item.pick{cursor:pointer}.budget-item.pick:hover>:first-child{color:var(--ink);text-decoration:underline}.budget-list p{margin:4px 0 0;font-size:11px}.sidebar{position:relative}.side-collapse{z-index:1;border-radius:4px;place-items:center;width:24px;height:24px;line-height:1;display:grid;position:absolute;top:6px;right:6px;letter-spacing:0!important;min-height:0!important;color:var(--muted)!important;background:0 0!important;border:1px solid #0000!important;padding:0!important;font-size:15px!important}.side-collapse:hover{color:var(--ink)!important;border-color:var(--line)!important;filter:none!important}.side-collapse.theme-toggle{right:34px;font-size:14px!important}@media (min-width:701px){.workspace.side-collapsed>main{grid-column:1/4}.workspace.side-collapsed>.sidebar{border-top:1px solid var(--line);flex-direction:row;grid-row:2;justify-content:center;align-items:center;gap:8px;padding:6px 30px 6px 8px;overflow:hidden}.side-collapsed .sidebar>:not(.brand,.side-collapse,#tabs),.side-collapsed .sidebar>.theme-toggle{display:none}.side-collapsed .sidebar>.brand{gap:4px;min-height:0}.side-collapsed .sidebar #about-btn{width:auto;padding:0 5px;font-size:11px}.side-collapsed #tabs{border-bottom:0;flex:1;order:2}.side-collapsed #tabs button{padding:8px 2px}.side-collapsed .sidebar>.brand{cursor:pointer}.side-collapsed .brand h1{display:none}.side-collapsed .brand>.logo{flex:none;width:44px;height:44px;min-height:0}.side-collapsed .side-collapse{top:50%;transform:translateY(-50%)}}@media (max-width:700px){.side-collapse{display:none}}.sidebar-bottom{gap:12px;margin-top:auto;display:grid}#palette-btn{background:0 0;justify-content:space-between;align-items:center;gap:8px;font-size:12px;display:flex}kbd{color:var(--muted);font:10px system-ui,sans-serif}.mobile-bar,.sidebar-dismiss{display:none}a{color:var(--secondary);text-decoration:none}a:hover{color:var(--accent)}input[type=file]{min-width:0;max-width:100%}input[type=checkbox],progress{accent-color:var(--accent)}.spacer{flex:1}.muted{color:var(--muted)}button,.btn,select,input:not([type=range]){font:inherit;color:var(--ink);background:var(--panel);border:1px solid var(--line);cursor:pointer;border-radius:6px;padding:5px 10px}button:hover,.btn:hover{border-color:var(--secondary)}button.primary{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}button[aria-selected=true]{border-color:var(--accent);color:var(--accent)}button:disabled{opacity:.5;cursor:not-allowed}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}main{min-width:0;min-height:0;overflow:auto}.tab:not(#tab-patch){padding:24px}.tab[hidden]{display:none}#tab-presets,#tab-assemblies,#tab-flash{width:min(100%,640px);margin:0 auto}.toolbar{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:10px;display:flex}.canvas{touch-action:none;background:0 0;border:0;border-radius:0;position:relative;overflow:auto}.cables{pointer-events:none;width:100%;height:100%;position:absolute;inset:0;overflow:visible}.cable{fill:none;stroke-width:3px;opacity:.85;pointer-events:stroke;cursor:pointer}.cable.audio{stroke:var(--audio)}.cable.control{stroke:var(--control)}.cable.gate{stroke:var(--gate)}.cable.keys{stroke:var(--ink)}.cable.role-signal{stroke-width:3.6px}.cable.role-mod{stroke-width:2.3px}.cable.role-gate{stroke-width:5px}.cable.role-keys{stroke-width:7px;stroke-linecap:butt}.cable-core,.cable-wire{fill:none;pointer-events:none;stroke-linecap:butt}.cable-core{stroke:var(--panel);stroke-width:2px}.cable-core.role-keys{stroke-width:4.6px}.cable-wire{stroke:var(--ink);stroke-width:1.2px}.param.bar.bound{box-shadow:0 0 0 1.5px var(--knob);border-radius:5px}.param.bar.bound:after{content:attr(data-kn);z-index:6;background:var(--knob);width:16px;height:16px;color:var(--bg);pointer-events:none;border-radius:50%;place-items:center;font:700 10px/1 Barlow Condensed,system-ui,sans-serif;display:grid;position:absolute;top:1px;left:-9px}.param.bar.bound>span:first-child{padding-left:11px}.param.bar.focused{--bar-fill:color-mix(in srgb, var(--knob) 46%, transparent);background:color-mix(in srgb, var(--knob) 12%, var(--bar))}.param.bar.page-start{margin-top:14px}.param.bar.page-start:before{content:attr(data-page);z-index:6;border-top:1px dashed var(--muted);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);pointer-events:none;padding-top:1px;font:600 9px/1 Barlow Condensed,system-ui,sans-serif;position:absolute;top:-13px;left:0;right:0}svg.bind-cables{z-index:14;pointer-events:none;width:100vw;height:100dvh;position:fixed;inset:0;overflow:visible}svg.bind-cables .bind{fill:none;stroke:var(--knob);stroke-width:1.6px;stroke-dasharray:1.5 4;stroke-linecap:round;opacity:.9;--march:5.5px;--march-t:.28s}svg.bind-cables .bind.arm{stroke:var(--secondary);stroke-width:2px;stroke-dasharray:6 5;stroke-linecap:butt;--march:11px;--march-t:.55s}.cable.pending{stroke:var(--muted);stroke-dasharray:5 4;pointer-events:none;--march:9px;--march-t:.45s}svg.bind-cables .bind,.cable.pending,.cable.alias.fixed{animation:cable-march var(--march-t) linear infinite}@keyframes cable-march{to{stroke-dashoffset:calc(-1 * var(--march))}}@media (prefers-reduced-motion:reduce){svg.bind-cables .bind,.cable.pending,.cable.alias.fixed{animation:none}}.cable:hover{stroke-width:5px}.module{z-index:2;background:var(--panel);border:1px solid var(--muted);width:236px;box-shadow:0 2px 6px var(--shadow);-webkit-user-select:none;user-select:none;border-radius:8px;position:absolute}.mhead{border-bottom:1px solid var(--line);background:var(--surface-tint);cursor:grab;touch-action:none;border-radius:8px 8px 0 0;justify-content:space-between;align-items:center;padding:4px 8px;font-weight:600;display:flex}select.over{border-color:var(--danger);color:var(--danger)}.voices-row select{grid-column:1/-1;width:100%}.voices{color:var(--muted);font-size:11px;font-weight:400}.x{color:var(--muted);background:0 0;border:none;padding:0 6px;font-size:16px;line-height:1.2}.io{justify-content:space-between;padding:6px 0;display:flex}.ports{flex-direction:column;gap:4px;display:flex}.port{color:var(--ink);align-items:center;gap:6px;font-size:14px;display:flex}.port.out{justify-content:flex-end}.dot{background:var(--panel);cursor:crosshair;touch-action:none;border:2px solid;border-radius:50%;width:14px;height:14px}.in .dot{margin-left:-8px}.out .dot{margin-right:-8px}.dot.audio{color:var(--audio)}.dot.control{color:var(--control)}.dot.gate{color:var(--gate)}.dot.keys{color:var(--ink)}.dot:hover{background:currentColor}.params{border-top:1px solid var(--line);gap:0;padding:4px 10px 6px;display:grid}.param{grid-template-columns:minmax(0,1fr) auto auto;align-items:center;column-gap:8px;font-size:14px;display:grid}.param>span:not(.slider-jack){overflow-wrap:anywhere;min-width:0}.param>output{text-align:right;font-variant-numeric:tabular-nums lining-nums;white-space:nowrap}.param.choice{border-radius:7px;grid-template-columns:auto minmax(0,1fr) auto;row-gap:2px;margin:3px -6px;padding:3px 6px 4px}.param.choice.jacked{box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--line) 75%, transparent)}.param.choice>:first-child{grid-column:1}.param.choice>.picker-jack,.param.choice>span:nth-child(2){grid-column:2;justify-self:center}.param.choice>.parameter-routing{grid-column:3}.slider-port.picker-jack{width:14px;height:14px;box-shadow:none;cursor:crosshair;border-width:2px;position:relative;top:auto;left:auto;transform:none}.picker{border:1px solid var(--line);border-radius:6px;grid-column:1/-1;align-items:stretch;gap:0;display:flex;overflow:hidden}.toggle-line{cursor:pointer;grid-column:1/-1;justify-content:center;align-items:center;gap:8px;min-height:22px;display:flex}.param .toggle-line input{grid-column:auto;width:auto;margin:0}.cable.flash{stroke-width:6px;opacity:1;animation:.4s ease-in-out 4 alternate cable-flash}@keyframes cable-flash{to{opacity:.25}}@media (prefers-reduced-motion:reduce){.cable.flash{animation:none}}.port.unrouted>span:not(.dot){color:var(--danger);font-style:italic}.picker .pick{min-height:22px;color:var(--muted);background:0 0;border:0;border-radius:0;flex:none;padding:0 7px;font-size:10px;line-height:1}.picker .pick:hover{color:var(--secondary)}.picker .pick-value{text-align:center;min-width:0;color:var(--ink);border-inline:1px solid var(--line);background:color-mix(in srgb, var(--ink) 7%, var(--panel));white-space:nowrap;text-overflow:ellipsis;flex:1;justify-content:center;align-items:center;padding:1px 4px;display:flex;overflow:hidden}.param.automated .picker .pick-value{color:var(--secondary)}.picker.over .pick-value{color:var(--danger)}.dot.armed{box-shadow:0 0 0 3px color-mix(in srgb, currentColor 40%, transparent);background:currentColor}.panel{z-index:20;background:var(--panel);border:1px solid var(--muted);width:420px;max-width:calc(100% - 32px);max-height:50vh;box-shadow:0 2px 8px var(--shadow);border-radius:8px;padding:8px 10px;font-size:12px;position:fixed;bottom:16px;right:16px;overflow:auto}.panel h3{align-items:center;gap:8px;margin:0 0 4px;font-size:13px;display:flex}.panel h3 button{margin-left:auto;padding:0 6px}.panel ul{margin:0;padding-left:16px}.panel li.p{color:var(--ink)}.panel li.add{color:var(--gate)}.panel li.rm{color:var(--danger)}.panel li.o{color:var(--muted)}dialog.palette{border:1px solid var(--line);background:var(--panel);width:580px;max-width:calc(100% - 24px);max-height:calc(100dvh - 32px);color:var(--ink);box-shadow:0 12px 48px var(--backdrop);border-radius:12px;padding:0}dialog::backdrop{background:var(--backdrop)}.palette-search{align-items:center;gap:8px;padding:12px;display:flex}.palette-search input{cursor:text;background:0 0;border:0;width:100%;min-width:0;padding:10px 4px}.palette-search button{border:0;padding:2px 8px;font-size:22px}.palette-filters{border-bottom:1px solid var(--line);gap:6px;padding:0 12px 12px;display:flex}.palette-filters button{background:0 0;font-size:12px}.palette-filters button[aria-pressed=true]{background:var(--secondary);color:var(--panel);border-color:var(--secondary)}dialog.palette ul{max-height:min(55dvh,480px);margin:0;padding:6px;list-style:none;overflow:auto}dialog.palette li{cursor:pointer;border-radius:5px;align-items:center;gap:12px;padding:10px;font-size:13px;display:flex}dialog.palette li span.k{color:var(--muted);min-width:64px;font-size:10px}dialog.palette li .detail{color:var(--muted);text-align:right;margin-left:auto;font-size:11px}dialog.palette li.sel,dialog.palette li:hover{background:var(--surface-tint);box-shadow:inset 2px 0 var(--secondary)}.palette-hint{color:var(--muted);border-top:1px solid var(--line);justify-content:space-between;padding:10px 16px;font-size:11px;display:flex}dialog.browser{border:1px solid var(--muted);background:var(--panel);width:720px;max-width:calc(100% - 32px);height:70vh;max-height:calc(100% - 32px);color:var(--ink);box-shadow:0 4px 16px var(--backdrop);border-radius:8px;flex-direction:column;padding:0;display:flex;overflow:hidden}dialog.browser:not([open]){display:none}dialog.browser::backdrop{background:var(--backdrop)}dialog.browser .head{border-bottom:1px solid var(--line);gap:8px;padding:8px;display:flex}dialog.browser .head input{flex:1;padding:6px 8px;font-size:14px}dialog.browser .panes{flex:1;min-height:0;display:flex}dialog.browser .shelves{border-right:1px solid var(--line);flex-direction:column;gap:2px;min-width:150px;padding:8px;display:flex;overflow:auto}dialog.browser .shelves button{text-align:left;justify-content:space-between;gap:8px;display:flex}dialog.browser .shelves button.on{background:color-mix(in srgb, var(--accent) 22%, transparent)}dialog.browser .shelves .n{color:var(--muted);font-size:11px}dialog.browser .entries{flex:1;margin:0;padding:8px;list-style:none;overflow:auto}dialog.browser .entries li{cursor:pointer;border-radius:4px;padding:6px 8px;font-size:13px}dialog.browser .entries li.sel,dialog.browser .entries li:hover{background:color-mix(in srgb, var(--accent) 18%, transparent)}dialog.browser .entries li.none{cursor:default;background:0 0}dialog.browser .entries .name{align-items:baseline;gap:8px;display:flex}dialog.browser .entries .shelf{color:var(--muted);font-size:11px}dialog.browser .entries .ports{color:var(--accent);font-family:ui-monospace,monospace;font-size:11px}dialog.help{border:1px solid color-mix(in srgb, var(--muted) 45%, var(--panel));background:var(--panel);width:760px;max-width:calc(100% - 24px);max-height:calc(100dvh - 32px);color:var(--ink);box-shadow:0 12px 48px var(--backdrop);border-radius:8px;padding:0;font:500 13px/1.35 Barlow,system-ui,sans-serif}dialog.help[open]{flex-direction:column;display:flex}dialog.help::backdrop{background:var(--backdrop)}dialog.about{--about-h:min(780px, calc(100dvh - 32px));width:680px;height:var(--about-h);transform:translateZ(0)}dialog.about[open] .about-body{flex:1;min-height:0}.about-body{padding:12px 16px 16px;overflow:auto}dialog.about .floatingchat-container-wrap{transform:translateY(calc(97px - var(--about-h)));right:16px;left:auto!important}dialog.about .floatingchat-container{width:100%!important}dialog.about .floating-chat-kofi-popup-iframe{top:92px;right:16px;bottom:auto!important;left:auto!important}.about-main{min-width:0}.about-main p{margin:0 0 8px}.about-brand-row{align-items:center;gap:12px;margin-bottom:10px;display:flex}.about-brand-row .logo{flex:none;width:56px;height:56px}.about-brand-row .brand-mark{width:auto;height:30px;margin-bottom:4px;display:block}.about-brand-row p{margin:0;font-size:12px}.about-todo{border:1px dashed var(--accent);color:var(--accent);border-radius:5px;padding:6px 8px;font-size:12px}.ai-figs{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:4px 0 10px;display:grid}.ai-figs.two{grid-template-columns:repeat(2,minmax(0,1fr))}.ai-fig{background:var(--bar);border-radius:6px;align-content:start;gap:2px;padding:8px 10px;display:grid}.ai-label{font:var(--cap);letter-spacing:.1em;text-transform:uppercase;color:var(--muted);font-size:10px}.ai-value{color:var(--ink);font-variant-numeric:tabular-nums;font:600 24px/1.1 Barlow Condensed,Barlow Semi Condensed,system-ui,sans-serif}.ai-sub{color:var(--secondary);font-size:11.5px}.ai-models{margin:0 0 8px}.ai-bar{background:var(--line);border-radius:3px;height:6px;display:flex;overflow:hidden}.ai-models ul{flex-wrap:wrap;gap:4px 14px;margin:6px 0 0;padding:0;font-size:11.5px;list-style:none;display:flex}.ai-models li i{border-radius:2px;width:8px;height:8px;margin-right:5px;display:inline-block}.ai-models li b{font-variant-numeric:tabular-nums;color:var(--muted);margin-left:4px;font-weight:600}.ai-source{color:var(--muted);font-size:11px}.ai-source code{font-size:10.5px}.credit{padding:4px 0}.credit+.credit{border-top:1px dashed color-mix(in srgb, var(--line) 70%, transparent)}.credit-links{font-size:12px}.about-foot{font-size:11px;margin-top:6px!important}dialog.about .hsec h3{letter-spacing:.06em;color:var(--ink);margin-bottom:10px;font-size:22px}.about-kofi>a{position:absolute;top:52px;right:16px}.about-main p.about-sponsor{margin:0;font-size:12px;position:absolute;top:88px;right:16px}@media (max-width:600px){.about-main p.about-sponsor{margin:-2px 0 12px;position:static}}@media (max-width:760px){.ai-figs{grid-template-columns:minmax(0,1fr)}}.sidebar #about-btn{background:var(--panel);border:1px solid var(--line);width:100%;height:26px;min-height:0;color:var(--ink);border-radius:6px;flex:none;padding:0 8px}.sidebar #about-btn:hover{border-color:var(--secondary);filter:none}.help-btn{z-index:6;border:1px solid color-mix(in srgb, var(--muted) 45%, var(--panel));background:var(--panel);width:34px;height:34px;color:var(--muted);box-shadow:0 2px 8px var(--shadow);border-radius:50%;place-items:center;padding:0;font:600 17px/1 Barlow Condensed,Barlow Semi Condensed,system-ui,sans-serif;display:grid;position:absolute;bottom:18px;right:18px}.help-btn:hover{color:var(--ink);border-color:var(--secondary)}.help-btn[hidden]{display:none}dialog.help .shead{flex:none;height:34px;padding:0 6px 0 10px}dialog.help .shead form{margin:0}dialog.help .help-close{color:var(--muted);background:0 0;border:0;padding:2px 8px;font-size:20px;line-height:1}dialog.help .help-close:hover{color:var(--ink)}dialog.engine-start{width:980px}.engine-start-body{flex-direction:column;gap:12px;padding:14px 18px 18px;display:flex;overflow:auto}.engine-start-body h2{letter-spacing:.02em;margin:0;font:700 28px/1.05 Barlow Condensed,Barlow Semi Condensed,system-ui,sans-serif}.engine-start-body>p{max-width:62ch;margin:0;font-size:14px}.engine-grid{grid-template-columns:repeat(auto-fill,minmax(min(100%,200px),1fr));gap:10px;display:grid}.engine-tile{text-align:left;border:1px solid var(--line);background:var(--surface-tint);border-radius:8px;flex-direction:column;gap:6px;min-height:120px;padding:10px 12px;display:flex}.engine-tile:hover,.engine-tile:focus-visible{border-color:var(--gate);background:color-mix(in srgb, var(--gate) 10%, var(--panel))}.engine-tile-top{letter-spacing:.08em;color:var(--muted);justify-content:space-between;gap:8px;font:600 11px/1 Barlow Condensed,Barlow Semi Condensed,system-ui,sans-serif;display:flex}.engine-out{color:var(--gate)}.engine-name{text-transform:uppercase;letter-spacing:.04em;font:700 19px/1.1 Barlow Condensed,Barlow Semi Condensed,system-ui,sans-serif}.engine-line{color:var(--muted);-webkit-line-clamp:3;overflow-wrap:anywhere;-webkit-box-orient:vertical;font-size:12px;display:-webkit-box;overflow:hidden}.engine-start-links{border-top:1px solid var(--line);color:var(--muted);flex-wrap:wrap;justify-content:space-between;gap:6px 16px;padding-top:12px;font-size:14px;display:flex}.engine-start-links button.link{color:var(--secondary);font:inherit;background:0 0;border:0;padding:0;text-decoration:underline}.engine-start-links button.link:hover{color:var(--accent)}dialog.sync-ask{width:420px}.sync-ask-body{flex-direction:column;gap:10px;margin:0;padding:16px 18px 18px;display:flex}.sync-ask-body h2{letter-spacing:.04em;text-transform:uppercase;margin:0;font:700 22px/1.1 Barlow Condensed,Barlow Semi Condensed,system-ui,sans-serif}.sync-ask-body p{overflow-wrap:anywhere;margin:0;font-size:14px}.sync-ask-actions{flex-wrap:wrap;gap:8px;margin-top:4px;display:flex}.sync-ask-actions button{letter-spacing:.05em;text-transform:uppercase;min-height:40px;padding:6px 16px;font:700 13px/1.15 Barlow Semi Condensed,system-ui,sans-serif}@media (max-width:700px){.sync-ask-actions button{flex:1;min-height:44px}}dialog.share-sheet{width:800px}.share-body{flex-direction:column;gap:14px;padding:12px 18px 18px;display:flex;overflow:auto}.share-heading{letter-spacing:.04em;text-transform:uppercase;overflow-wrap:anywhere;margin:0;font:700 26px/1.05 Barlow Condensed,Barlow Semi Condensed,system-ui,sans-serif}.share-grid{grid-template-columns:340px minmax(0,1fr);align-items:start;gap:18px;display:grid}.share-figure{flex-direction:column;gap:6px;min-width:0;margin:0;display:flex}.share-card{aspect-ratio:4/3;border:1px solid var(--line);background:#171f21;border-radius:8px;width:100%;height:auto;display:block}.share-figure figcaption,.share-hint{color:var(--muted);margin:0;font-size:12px}.share-form{flex-direction:column;gap:10px;min-width:0;display:flex}.share-field{flex-direction:column;gap:4px;display:flex}.share-field>span{font:var(--cap);letter-spacing:.1em;text-transform:uppercase;color:var(--muted);font-size:11px}.share-field input,.share-field textarea{width:100%;min-height:36px;color:var(--ink);background:var(--bg);border:1px solid var(--line);border-radius:6px;padding:7px 10px;font:500 14px/1.35 Barlow,system-ui,sans-serif}.share-field textarea{resize:vertical;min-height:64px}.share-facts{flex-wrap:wrap;gap:6px;display:flex}.share-chip{background:var(--bar);overflow-wrap:anywhere;border-radius:99px;padding:3px 8px;font-size:12px}.share-chip.over{border:1px solid var(--accent);color:var(--accent);background:0 0}.share-check{align-items:center;gap:8px;min-height:32px;font-size:13px;display:flex}.share-check input{width:16px;height:16px;accent-color:var(--secondary);margin:0}.share-check:has(input:disabled){color:var(--muted)}.share-readout{color:var(--muted);margin:-4px 0 0;font-size:12px}.share-readout.over{color:var(--accent)}.share-actions{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;display:grid}.share-actions button{letter-spacing:.05em;text-transform:uppercase;min-height:44px;padding:6px 8px;font:700 13px/1.15 Barlow Semi Condensed,system-ui,sans-serif}.share-actions .share-post{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}.share-actions .share-copy{color:var(--secondary);border-color:var(--secondary);background:0 0}.share-msg{min-height:1.35em;margin:0;font-size:13px}.share-hint{border-top:1px solid var(--line);padding-top:10px}@media (max-width:700px){.share-grid{grid-template-columns:minmax(0,1fr)}.share-figure{max-width:340px}.share-actions{grid-template-columns:repeat(2,minmax(0,1fr))}}.help-body{columns:2 340px;column-gap:28px;padding:4px 16px 16px;overflow:auto}.hsec{break-inside:avoid;padding-top:12px}.hsec h3{border-bottom:1px solid var(--line);font:var(--cap);text-transform:uppercase;letter-spacing:.1em;color:var(--muted);margin:0 0 6px;padding-bottom:4px;font-size:11px}.hrow{grid-template-columns:minmax(0,1fr);gap:3px;padding:5px 0;display:grid}.hrow+.hrow{border-top:1px dashed color-mix(in srgb, var(--line) 70%, transparent)}.hkeys{font:var(--cap);text-transform:uppercase;letter-spacing:.06em;color:var(--secondary);font-size:11px}.hrow>span:last-child{color:color-mix(in srgb, var(--ink) 85%, var(--muted))}dialog.help kbd{background:var(--bar);border-bottom:1px solid var(--line);min-width:18px;font:var(--cap);text-align:center;letter-spacing:.04em;text-transform:none;color:var(--ink);border-radius:4px;margin:0 1px;padding:3px 5px 2px;font-size:11px;display:inline-block}details.arp{border-top:1px solid var(--line);margin:4px 8px 6px;padding-top:4px}details.arp summary{cursor:pointer;color:var(--ink);padding:5px 0;font-size:14px}details.arp .param select{grid-column:1/-1;width:100%}details.arp .hint{color:var(--muted);margin:2px 0 0;font-size:10px}.arp-rows{gap:5px;display:grid}.arp-rows>.param.bar{margin:0}.param input{width:100%;accent-color:var(--accent);grid-column:1/-1}.param output{color:var(--muted)}.param.automated output{color:var(--secondary)}.param.automated input{accent-color:var(--secondary)}.hint{margin-top:8px}.card{background:var(--panel);border:1px solid var(--line);border-radius:8px;margin-bottom:16px;padding:16px}.card h2{margin-top:0;font-size:15px}.warn{border-color:var(--warning);background:color-mix(in srgb, var(--warning) 10%, var(--panel))}.row{flex-wrap:wrap;align-items:center;gap:8px;margin:8px 0;display:flex}pre.log{background:var(--bg);border:1px solid var(--line);white-space:pre-wrap;border-radius:6px;max-height:240px;padding:8px;font:12px/1.4 ui-monospace,monospace;overflow:auto}progress{width:100%}.ctx{z-index:30;background:var(--panel);border:1px solid var(--muted);box-shadow:0 2px 8px var(--shadow);border-radius:8px;flex-direction:column;gap:2px;padding:4px;display:flex;position:absolute}.ctx button{text-align:left;background:0 0;border:none;padding:8px 14px;font-size:14px}.ctx button:hover{background:color-mix(in srgb, var(--accent) 18%, transparent)}@media (pointer:coarse){.dot{border-width:3px;width:22px;height:22px}.port{gap:8px;min-height:26px;font-size:13px}.mhead{padding:8px}.toolbar button,.toolbar select,.toolbar .btn{padding:8px 12px}.param input[type=range]{height:28px}.x,button.tog,button.pw{min-width:28px;min-height:28px}}@media (max-width:640px){.panel{width:calc(100% - 24px);bottom:80px;right:12px}dialog.browser{border-radius:0;width:100%;max-width:100%;height:100%;max-height:100%;margin:0}dialog.browser .panes{flex-direction:column}dialog.browser .shelves{border-right:0;border-bottom:1px solid var(--line);flex-flow:wrap;min-width:0}}.bank-cols{grid-template-columns:repeat(auto-fit,minmax(min(300px,100%),1fr));gap:16px;display:grid}.bank-cols .card{margin-bottom:0}.card h4{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;margin:12px 0 4px;font-size:12px}.bank-list{gap:2px;max-height:520px;display:grid;overflow:auto}.bank-row{border-radius:4px;align-items:center;gap:6px;padding:2px 4px;display:flex}.bank-row:hover{background:color-mix(in srgb, var(--accent) 8%, transparent)}.bank-row .grow,.bank-row>span:first-child:not(.slot){flex:1}.bank-row .slot{color:var(--muted);font-variant-numeric:tabular-nums;width:1.6em}.bank-row button{padding:0 8px;line-height:1.5}.module.selected,.frame.selected{outline:2px solid var(--accent);outline-offset:1px}.module.member{border-color:color-mix(in oklab, var(--secondary) 45%, var(--line))}.module.assembly{border-color:var(--accent)}.module.assembly .mhead{background:color-mix(in srgb, var(--accent) 12%, var(--panel));border-radius:8px 8px 0 0}.mhead .tools,.fhead .tools{align-items:center;gap:2px;display:flex}button.pw{border:1px solid var(--muted);color:var(--muted);cursor:pointer;background:0 0;border-radius:10px;padding:0 4px;font-size:12px;line-height:1.3}button.pw.on{color:var(--accent);border-color:var(--accent)}.module.off .mbody{color:var(--muted)}.frame.off{opacity:.7;border-style:dotted}.module.off .mhead{background:repeating-linear-gradient(135deg, transparent 0 6px, color-mix(in srgb, var(--muted) 18%, transparent) 6px 8px)}button.sm{padding:0 5px;font-size:11px;font-weight:400;line-height:1.4}button.tog{color:var(--accent);cursor:pointer;background:0 0;border:none;padding:0 2px;font-size:11px;line-height:1}.rename{cursor:text}.rename:hover{-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.module .empty{margin:0;padding:6px 8px 8px;font-size:12px}.poly-btn[aria-pressed=true]{color:var(--panel);background:var(--secondary);border-color:var(--secondary)}.frame{z-index:0;border:1px dashed var(--secondary);background:color-mix(in oklab, var(--secondary) 5%, transparent);pointer-events:none;border-radius:12px;position:absolute}.fhead{height:30px;color:var(--secondary);cursor:grab;touch-action:none;pointer-events:auto;-webkit-user-select:none;user-select:none;justify-content:space-between;align-items:center;padding:0 10px;font-weight:600;display:flex;position:absolute;top:0;left:0;right:0}.rubber{z-index:5;border:1px solid var(--accent);background:color-mix(in srgb, var(--accent) 10%, transparent);pointer-events:none;position:absolute}#tab-assemblies h3{color:var(--muted);margin:14px 0 6px;font-size:13px}.merged{color:var(--accent);white-space:nowrap;font-size:10px}select.merge{max-width:70px;padding:0 2px;font-size:10px}.module.assembly.member{border-color:color-mix(in oklab, var(--accent) 60%, var(--secondary))}.slider-jack{--jack-size:18px;grid-column:1/-1;height:22px;position:relative}.slider-jack:before{content:"";inset:calc(50% - 2px) calc(var(--jack-size) / 2) auto;background:var(--line);z-index:0;pointer-events:none;border-radius:2px;height:4px;position:absolute}.param .jack-range{z-index:2;appearance:none;cursor:ew-resize;touch-action:none;background:0 0;border:0;width:100%;height:22px;margin:0;padding:0;position:relative}.jack-range::-webkit-slider-runnable-track{background:0 0;border-radius:2px;height:4px}.jack-range::-moz-range-track{background:0 0;border-radius:2px;height:4px}.jack-range::-webkit-slider-thumb{appearance:none;width:var(--jack-size);height:var(--jack-size);margin-top:calc((4px - var(--jack-size)) / 2);background:0 0;border:0}.jack-range::-moz-range-thumb{width:var(--jack-size);height:var(--jack-size);background:0 0;border:0}.slider-base{z-index:1;pointer-events:none;background:color-mix(in srgb, var(--secondary) 55%, transparent);height:4px;top:calc(50% - 2px);left:calc(min(var(--position), var(--base)) * (100% - var(--jack-size)) + var(--jack-size) / 2);width:calc((max(var(--position), var(--base)) - min(var(--position), var(--base))) * (100% - var(--jack-size)));border-radius:2px;position:absolute}.slider-base:after{content:"";background:var(--secondary);width:3px;height:12px;top:calc(50% - 6px);left:calc((var(--base) - min(var(--position), var(--base))) / max(.000001, max(var(--position), var(--base)) - min(var(--position), var(--base))) * 100% - 1.5px);border-radius:2px;position:absolute}.slider-base[hidden]{display:none}.slider-knob{z-index:1;pointer-events:auto;width:3px;height:12px;top:calc(50% - 6px);left:calc(var(--at) * (100% - var(--jack-size)) + var(--jack-size) / 2 - 1.5px);background:currentColor;border-radius:2px;position:absolute}.slider-port{z-index:2;box-sizing:border-box;width:var(--jack-size);height:var(--jack-size);top:50%;left:calc(var(--position) * (100% - var(--jack-size)));pointer-events:auto;cursor:ew-resize;touch-action:none;box-shadow:inset 0 0 0 2px var(--panel);border-width:3px;position:absolute;transform:translateY(-50%)}.patching .slider-port{cursor:crosshair}.module .slider-port{z-index:4}.dot.connected{box-shadow:inset 0 0 0 3px var(--panel);background:currentColor}.dot.armed{box-shadow:0 0 0 3px color-mix(in srgb, currentColor 40%, transparent)}.ports .dot{z-index:2;position:relative}.cables{z-index:1}.internal-cables{z-index:5;pointer-events:none}.entry-cables{z-index:5;pointer-events:none;border-radius:8px;overflow:hidden}:is(.internal-cables,.entry-cables):not(.hits) .cable{pointer-events:none}:is(.internal-cables,.entry-cables).hits{z-index:3}.entry-cables .cable-hit,.cable.hover{stroke-width:6px}.cable.role-gate:hover,.cable.role-gate.hover,.cable.role-gate.flash{stroke-width:7px}.cable.role-keys:hover,.cable.role-keys.hover,.cable.role-keys.flash{stroke-width:9px}.ribbon-clamps rect{fill:var(--secondary);pointer-events:none}.module .sel-track,.tog-switch .tog-jack{z-index:4}.module .port>span:not(.dot),.module .param>input{z-index:2;position:relative}.module:has(.parameter-routing[open]){z-index:3}.module .mhead,.module .param>span:not(.slider-jack),.module .param>output,.module .parameter-routing,.module .tog,.module .voices-row,.module .morph-row{z-index:2;position:relative}.cable.alias{stroke-width:3px;opacity:.6;pointer-events:none}.cable.alias:hover,.cable.alias:focus,.cable.alias.hover{stroke-width:6px;opacity:1}.cable-hit{fill:none;stroke:#0000;stroke-width:4.5px;pointer-events:stroke;cursor:pointer}.cable.alias.fixed,.cable.alias.fixed:hover{stroke:var(--muted);opacity:.45;stroke-width:3px;stroke-dasharray:3 4;pointer-events:none;--march:7px;--march-t:.35s}.parameter-routing{z-index:2;justify-self:end;font-size:11px;position:relative}.parameter-routing[open]{z-index:5}.parameter-routing summary{cursor:pointer;border:1px solid var(--line);color:var(--muted);border-radius:4px;padding:0 5px;list-style:none}.parameter-routing summary::-webkit-details-marker{display:none}.parameter-routing summary:hover,.parameter-routing[open] summary{color:var(--secondary);border-color:var(--secondary)}.routing-controls{width:264px;max-width:calc(100vw - 24px);max-height:min(600px,100dvh - 24px);color:var(--ink);background:var(--panel);border:1px solid var(--line);box-shadow:0 3px 12px var(--shadow);cursor:default;border-radius:6px;margin:0;padding:10px;position:fixed;inset:auto;overflow-y:auto}.routing-controls p{color:var(--muted);margin:0 0 8px;line-height:1.4}.routing-controls label{flex-wrap:wrap;align-items:center;gap:5px;margin:4px 0;display:flex}.routing-controls input[type=checkbox]{width:auto;margin:0}.routing-controls input[type=range]{width:100%}.routing-controls h4{letter-spacing:.02em;color:var(--muted);margin:10px 0 4px;font-size:11px;font-weight:650}.routing-controls .routing-source{background:var(--surface-tint);border-radius:6px;margin:4px 0 8px;padding:6px 8px}.routing-head{justify-content:space-between;align-items:center;gap:8px;display:flex}.routing-head strong{overflow-wrap:anywhere;min-width:0;font-weight:600}.routing-controls output{margin-left:auto}.routing-controls fieldset{border:0;border-top:1px solid var(--line);gap:8px;margin:5px 0 0;padding:5px 0 0;display:flex}.routing-controls legend{color:var(--muted)}.routing-source+.routing-source{border-top:1px solid var(--line);margin-top:6px;padding-top:4px}@media (pointer:coarse){.slider-jack{--jack-size:26px;height:28px}.parameter-routing summary{padding:5px 8px}}.device-controls{border:1px solid var(--line);background:var(--panel);width:340px;max-width:calc(100vw - 24px);max-height:calc(100dvh - 24px);color:var(--ink);border-radius:12px;padding:20px;overflow:auto}.device-controls h2{margin:0 0 16px;font-size:20px}.menu-heading{color:var(--muted);margin:16px 0 8px;font-size:12px;font-weight:600;display:block}.device-controls>button{text-align:left;width:100%;margin:4px 0}.sync-line{flex-wrap:wrap;align-items:center;gap:8px;margin-top:10px;font-size:13px;display:flex}#dev-sync-sep{color:var(--muted)}.device-controls p{margin:4px 0 10px;font-size:12px}.device-controls form{text-align:right;margin-top:20px}#dev-status{overflow-wrap:anywhere;font-size:12px;display:block}#tab-patch{isolation:isolate;background:var(--surface-tint);height:100%;position:relative}.canvas{isolation:isolate;z-index:1;width:100%;min-width:0;height:100%;min-height:0}.deck{grid-area:3/1/auto/-1;grid-template-columns:subgrid;background:var(--panel);border-top:1px solid var(--line);-webkit-user-select:none;user-select:none;display:grid}.deck-row{grid-column:1/-1;grid-template-columns:subgrid;column-gap:0;height:92px;padding:6px 0 8px;display:grid}.deck-row>.deck-controls{grid-column:1;margin:0 8px}.deck-row>.piano{grid-column:3;margin:0 8px}.wheels{z-index:2;pointer-events:none;background:linear-gradient(transparent 8px, var(--line) 8px, var(--line) 9px, var(--panel) 9px);border-right:1px solid var(--line);gap:8px;margin-top:-8px;padding:8px 6px;display:flex;position:relative}.wheels:empty{display:none}.wheels>*{pointer-events:auto}.wheels .dock-wheel{min-height:0}.wheels .dock-wheel .deck-wheel{grid-template-rows:1fr auto;min-height:0}.wheels .dock-wheel .deck-wheel>span{display:block}.wheels .wheel{width:24px}.deck.folded .deck-row{height:auto}.dock{pointer-events:none;background:linear-gradient(transparent 8px, var(--line) 8px, var(--line) 9px, var(--panel) 9px);min-width:0;margin-top:-8px;padding-top:8px;display:flex;overflow:auto hidden}.dock>*{pointer-events:auto}@media (pointer:coarse){.dock,.wheels{pointer-events:auto}}.dock-main{align-items:stretch;padding:0 0 0 8px;display:flex}.dock-title{writing-mode:vertical-rl;color:var(--muted);align-self:center;padding-right:8px;font-size:12px;font-weight:650;transform:rotate(180deg)}.dock-main{flex:1}.dock-col{border-left:1px solid var(--line);flex-direction:column;flex:1 0 auto;align-items:center;gap:4px;padding:0 6px 6px;display:flex}.dock-jacks{margin-top:-8px}.dock-outputs .dock-body{align-self:stretch}.dock .piano-octave{flex:1;grid-template-rows:1fr auto;grid-template-columns:1fr 1fr;gap:3px 6px;width:auto}.dock .piano-octave>button:first-child{grid-area:1/1}.dock .piano-octave>button:last-child{grid-area:1/2}.dock .piano-octave>output{grid-area:2/1/3/3}.dock-body{flex-direction:column;flex:1;justify-content:center;gap:6px;display:flex}.dock-morph .dock-body{gap:4px;padding-top:8px}.dock-wheels .dock-body{flex-direction:row;justify-content:center;gap:8px}.dock-knobs .dock-body{justify-content:stretch}.dock-knobs .dock-focus{flex:1}.dock-knobs .deck-knobs{flex:1;gap:6px}.dock-wheel{flex-direction:column;align-items:center;gap:4px;display:flex}.dock-wheel .deck-wheel{flex:1;grid-template-rows:1fr}.dock-jacks{justify-content:center;gap:2px;display:flex}.dock-jacks .port{flex-direction:column-reverse;justify-content:flex-end;gap:1px;min-width:30px;padding:0 2px;font-size:10px}.dock-jacks .port .dot{margin:0}.dock-jacks .port>span:not(.dot){white-space:nowrap}.dock-body>.param{width:140px;margin:0;font-size:12px}.dock-drift .dock-body>.param{width:120px}.dock-body>.param select{grid-column:1/-1;width:100%;padding:2px 4px;font-size:12px}.deck-controls{flex:none;grid-template-rows:1fr 1fr;grid-template-columns:1fr 1fr;align-content:stretch;gap:6px;display:grid}.deck-controls #audio-btn{grid-column:1/-1}.deck-controls button{font:var(--cap);text-transform:uppercase;letter-spacing:.06em;padding:0 8px;font-size:11px}.deck-controls #audio-btn{background:var(--secondary);border-color:var(--secondary);color:var(--panel)}.deck-controls #audio-btn.on{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.deck-controls #keys-btn[aria-expanded=true]{color:var(--secondary);border-color:var(--secondary)}.deck-controls #midi-btn{background:var(--key-black);border-color:var(--key-black);color:var(--key-white)}.deck-controls #midi-btn[aria-pressed=true]{background:var(--key-white);border-color:var(--key-edge);color:var(--key-black)}.arp-line{align-items:stretch;gap:6px;display:flex}.deck.folded .piano{display:none}.deck-knobs{align-items:stretch;gap:6px;display:flex}.dock-buttons{--btn-cols:repeat(6, minmax(44px, auto)) 12px;position:relative}.dock-col.dock-buttons{grid-template-columns:var(--btn-cols);grid-template-rows:auto 1fr;align-items:stretch;column-gap:6px;display:grid}.dock-buttons>:not(svg),.dock-buttons .dock-buttons-grid{grid-column:1/-1}.dock-buttons>.dock-body,.dock-buttons .dock-buttons-grid,.dock-buttons .dock-button-jacks{grid-template-columns:subgrid;display:grid}.dock-buttons>.dock-body{align-self:stretch}.dock-buttons-grid,.dock-button-jacks{grid-template-columns:var(--btn-cols);column-gap:6px;display:grid}.dock-buttons-grid{z-index:1;grid-auto-rows:minmax(26px,auto);row-gap:14px;position:relative}.dock-button-jacks{z-index:1;align-self:stretch;justify-items:center;margin-top:-8px;position:relative}.dock-button-jacks .port{min-width:0;padding:0}.dock-button-jacks .port .dot{margin:0}svg.button-traces{pointer-events:none;width:100%;height:100%;position:absolute;inset:0;overflow:visible}svg.button-traces path{fill:none;stroke:var(--gate);stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;opacity:.85}.panel-btn{font:var(--cap);letter-spacing:.06em;text-transform:uppercase;border:1px solid var(--line);background:var(--panel);min-height:26px;color:var(--ink);cursor:pointer;white-space:nowrap;text-overflow:ellipsis;touch-action:pan-x;border-radius:6px;padding:0 6px;font-size:11px;position:relative;overflow:hidden}.panel-btn:hover{border-color:var(--secondary);filter:none}.panel-btn[aria-pressed=true]{background:var(--accent);color:var(--accent-ink,#fff);border-color:var(--accent)}.panel-btn:not(.device):not(.play){flex-direction:column;justify-content:center;align-items:center;gap:1px;min-height:36px;padding:3px 6px;display:flex}.pb-face{align-items:center;gap:4px;max-width:100%;display:flex}.pb-label{text-overflow:ellipsis;overflow:hidden}.pb-hw{letter-spacing:.1em;color:var(--muted);font-size:8.5px;line-height:1}.panel-btn.unassigned .pb-label{color:var(--muted)}.panel-btn.unassigned .pb-hw{text-transform:none;letter-spacing:.02em;color:color-mix(in oklab, var(--muted) 70%, var(--panel));font-size:9.5px}.panel-btn[aria-pressed=true] .pb-hw{color:inherit}.pb-mark{fill:none;stroke-width:1.5px;stroke-linecap:round;stroke-linejoin:round;flex:none;width:11px;height:11px}.pb-mark.bypass{stroke:var(--secondary)}.pb-mark.gate{stroke:var(--gate)}.pb-mark.page{stroke:var(--k6)}.panel-btn[aria-pressed=true] .pb-mark{stroke:currentColor}.pb-led{background:var(--panel);width:5px;height:5px;box-shadow:0 0 0 1px var(--line);border-radius:50%;position:absolute;top:4px;right:4px}.panel-btn.assigned .pb-led{background:color-mix(in srgb, var(--gate) 45%, transparent);box-shadow:none}.panel-btn[aria-pressed=true] .pb-led{background:var(--gate);box-shadow:0 0 5px var(--gate)}.pb-more{color:var(--muted);opacity:0;cursor:pointer;padding:0 2px;font-size:11px;line-height:1;position:absolute;bottom:1px;right:3px}.panel-btn:hover .pb-more,.panel-btn:focus-visible .pb-more{opacity:1}.button-editor{flex-direction:column;gap:10px;width:280px;display:flex}.button-editor .be-head{font:var(--cap);text-transform:uppercase;letter-spacing:.06em;justify-content:space-between;align-items:baseline;display:flex}.button-editor .be-head span{color:var(--muted);text-transform:none;letter-spacing:0;font-size:11px}.button-editor .be-field{flex-direction:column;align-items:stretch;gap:4px;margin:0;display:flex}.button-editor .be-label{font:var(--cap);letter-spacing:.1em;text-transform:uppercase;color:var(--muted);font-size:10px}.button-editor .be-seg{border:1px solid var(--line);border-radius:6px;display:flex;overflow:hidden}.button-editor .be-seg button{min-height:30px;color:var(--ink);font:var(--cap);letter-spacing:.06em;text-transform:uppercase;background:0 0;border:0;border-radius:0;flex:1;font-size:12px}.button-editor .be-seg button+button{border-left:1px solid var(--line)}.button-editor .be-seg button[aria-pressed=true]{background:var(--secondary);color:var(--panel)}.button-editor select,.button-editor input[type=text]{box-sizing:border-box;width:100%;min-height:30px;font-size:12px}.button-editor input[type=text]{text-transform:uppercase;letter-spacing:.06em}.button-editor .be-hint{margin:0;font-size:11px}.button-editor .be-pages{flex-direction:column;gap:4px;margin:0;padding:0;list-style:none;display:flex}.button-editor .be-pages li{background:var(--surface-tint);cursor:grab;border-radius:6px;grid-template-columns:14px 18px 1fr 22px;align-items:center;min-height:30px;padding:0 4px 0 8px;font-size:12px;display:grid}.button-editor .be-pages li.dragging{opacity:.5}.button-editor .be-pages li:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.button-editor .be-grip,.button-editor .be-n{color:var(--muted)}.button-editor .be-name{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.button-editor .be-del{color:var(--muted);background:0 0;border:0;min-height:0;padding:0;font-size:14px}.button-editor .be-del:hover{color:var(--danger)}.panel-btn.device,.panel-btn.device:hover{border-style:dashed;border-color:var(--line);color:color-mix(in oklab, var(--muted) 60%, var(--panel));cursor:default}.panel-btn.play:before{content:"▶︎ ";font-size:9px}.panel-btn.play[aria-pressed=true]{background:color-mix(in srgb, var(--secondary) 14%, var(--panel));border-color:var(--secondary);color:var(--secondary)}.deck-knob{color:var(--knob);flex-direction:column;align-self:stretch;align-items:center;gap:4px;font-size:10px;font-weight:650;display:flex}.knob-jack{box-sizing:border-box;border:3px solid var(--knob);background:radial-gradient(circle, var(--knob) 0 3px, var(--panel) 3.5px);pointer-events:none;border-radius:50%;flex:none;width:16px;height:16px;margin-top:-8px}.knob-stem{background:var(--knob);opacity:.5;flex:4px;width:2px;min-height:4px;margin:-4px 0}.deck-knob>.dial{flex:none}.deck-knob.off{opacity:.4;pointer-events:none}.dial{--v:.5;cursor:ns-resize;touch-action:pan-x;background:conic-gradient(from -135deg, var(--knob) calc(var(--v) * 270deg), var(--line) 0 270deg, transparent 0);border-radius:50%;place-items:center;width:44px;height:44px;display:grid;position:relative}.dial:after{content:"";background:var(--panel);box-shadow:0 1px 2px var(--shadow);border-radius:50%;position:absolute;inset:5px}.dial:before{content:"";z-index:1;background:var(--ink);transform-origin:1px 16px;width:2px;height:7px;transform:rotate(calc(-135deg + var(--v) * 270deg));border-radius:1px;position:absolute;top:6px;left:calc(50% - 1px)}.deck-knob>.dot{color:var(--knob);cursor:crosshair;margin:-8px 0 0}.dial-name{z-index:2;pointer-events:none;color:var(--knob);font-size:11px;font-weight:700;position:relative}.deck-wheels{align-items:stretch;gap:6px;padding:2px 0;display:flex}.deck-wheel{color:var(--muted);grid-template-rows:1fr auto;justify-items:center;gap:3px;font-size:9px;font-weight:650;display:grid}.wheel{--v:0;cursor:ns-resize;touch-action:pan-x;background:linear-gradient(var(--shadow), transparent 30%, transparent 70%, var(--shadow)), var(--bg);border:1px solid var(--line);border-radius:5px;width:20px;position:relative;overflow:hidden}.wheel:after{content:"";background:var(--secondary);height:6px;left:2px;right:2px;bottom:calc(var(--v) * (100% - 6px));border-radius:2px;position:absolute}.dock-wheel [role=slider]:focus-visible,.deck-knob [role=slider]:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.deck.folded .deck-controls{grid-template-rows:none;grid-template-columns:auto auto auto}.deck.folded .deck-controls #audio-btn{grid-column:auto}.piano{flex:1;gap:8px;min-width:0;display:flex}.piano-octave{flex:none;grid-template-rows:1fr auto 1fr;gap:2px;width:100px;display:grid}.piano-octave button{white-space:nowrap;justify-content:center;align-items:center;gap:6px;padding:0 6px;font-size:12px;display:flex}.piano-octave output{text-align:center;color:var(--muted);white-space:nowrap;font-variant-numeric:tabular-nums;font-size:11px}.piano-keys{touch-action:pan-x;flex:1;min-width:0;overflow:auto hidden;container-type:size}.piano-bed{--w:max(24px, calc(100cqw / var(--whites)));height:100%;width:calc(var(--whites) * var(--w));position:relative}.key{cursor:pointer;flex-direction:column;justify-content:flex-end;align-items:center;padding-bottom:4px;font-size:11px;line-height:1.1;display:flex;position:absolute;top:0}.key.white{left:calc(var(--at) * var(--w));width:var(--w);background:var(--key-white);border:1px solid var(--key-edge);height:100%;color:var(--key-white-letter);z-index:1;border-left-width:0;border-radius:0 0 4px 4px}.key.white:first-child{border-left-width:1px}.key.black{left:calc(var(--at) * var(--w) - var(--w) * .3);width:calc(var(--w) * .6);background:var(--key-black);height:60%;color:var(--key-black-letter);z-index:2;box-shadow:0 1px 2px var(--shadow);border-radius:0 0 3px 3px}.key.white.mapped{background:var(--key-white-mapped)}.key.black.mapped{background:var(--key-black-mapped)}.key.held{color:var(--key-held-ink);background:var(--key-held)!important}.key .letter{font-weight:700}.key .name{color:var(--key-name);order:-1;font-size:9px}.key.held .name{color:inherit}#diff.panel{bottom:calc(var(--piano-h) + 16px)}#canvas-space{min-width:100%;min-height:100%;position:relative}#patch-world{transform-origin:0 0;background-image:radial-gradient(var(--line) 1px, transparent 1px);background-size:20px 20px;position:absolute;top:0;left:0}#tab-library{max-width:1200px;margin:0 auto}@media (max-height:790px) and (min-width:701px){.sidebar{gap:8px}.patch-controls{gap:6px}.sidebar>.brand{min-height:112px}.brand>.logo{min-height:36px}}@media (max-height:660px) and (min-width:701px){.sidebar{padding-top:12px}.brand h1{font-size:14px}}@media (max-width:700px){.workspace{grid-template-columns:auto minmax(0,1fr);height:calc(100dvh - 44px)}.workspace>main{grid-column:1/-1}.workspace>.wheels{grid-area:2/1}.workspace>.dock-wrap{grid-column:2}.deck{flex-direction:column;display:flex}.deck-row{gap:6px;padding:6px 4px 8px 8px;display:flex}.deck-row>.deck-controls,.deck-row>.piano{margin:0}.deck-controls{width:112px}.deck-controls button{padding:0 4px;font-size:11px}.piano-octave{width:88px}.mobile-bar{border-bottom:1px solid var(--line);background:var(--panel);justify-content:space-between;align-items:center;gap:12px;height:44px;padding:4px 10px;display:flex}.mobile-bar button{background:0 0;border:0;font-size:12px}.sidebar{z-index:41;width:208px;display:none;position:fixed;top:44px;bottom:0;left:0}.sidebar.open{display:flex}.sidebar-dismiss:not([hidden]){z-index:40;background:var(--backdrop);border:0;border-radius:0;display:block;position:fixed;inset:44px 0 0}.tab:not(#tab-patch){padding:16px}dialog.palette li{gap:8px}dialog.palette li .detail{text-overflow:ellipsis;white-space:nowrap;max-width:72px;overflow:hidden}.palette-filters{gap:4px}.palette-filters button{flex:1;padding:6px}}.internal-cables{border-radius:inherit;overflow:hidden}.module .mbody{pointer-events:none;position:relative}.module .mbody :is(input,select,button,summary,label,.dot:not(.slider-port),.rename,.param>span:not(.slider-jack),output){pointer-events:auto}.module .mbody :is(input:not(.jack-range),select,button,summary){background-color:var(--panel)}.module:has(.parameter-routing[open]){isolation:isolate}.patch-preview{z-index:10000}.rubber{z-index:10001}.resize-handle{width:24px;height:24px;color:var(--secondary);cursor:nwse-resize;touch-action:none;pointer-events:auto;z-index:4;background:0 0;border:0;padding:0;position:absolute;bottom:0;right:0}@font-face{font-family:Alegreya SC;src:url(../fonts/AlegreyaSC-Bold.ttf)format("truetype");font-weight:700;font-display:swap}@font-face{font-family:Barlow;src:url(../fonts/Barlow-Medium.ttf)format("truetype");font-weight:500;font-display:swap}@font-face{font-family:Barlow Semi Condensed;src:url(../fonts/BarlowSemiCondensed-Bold.ttf)format("truetype");font-weight:700;font-display:swap}.module,.fhead{font-family:Barlow,system-ui,sans-serif;font-weight:500}.mhead{gap:6px;height:28px;min-height:28px;padding:0 8px 0 10px;position:relative}.mhead>span:not(.tools),.fhead>span:not(.tools){text-transform:uppercase;letter-spacing:.07em;font:600 15px/1 Barlow Condensed,Barlow Semi Condensed,system-ui,sans-serif}.mhead>span:not(.tools){white-space:nowrap;text-overflow:ellipsis;align-items:center;gap:7px;min-width:0;display:flex;overflow:hidden}.mhead .tools,.fhead .tools{flex-shrink:0}.fhead>span:not(.tools){text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.mhead .voices,.fhead .voices{white-space:nowrap;font:500 12px/1.2 Barlow,system-ui,sans-serif}.module :is(select,.routing-controls,.empty){font-family:Barlow,system-ui,sans-serif;font-size:14px;font-weight:500}.module .parameter-routing summary{padding:1px 5px;font-size:12px;line-height:1.2}.module .morph-row select{grid-column:1/-1;width:100%}.module button.sm,.fhead button.sm{font:500 12px/1.5 Barlow,system-ui,sans-serif}.module button.pw{font-size:14px}.module .x{font-size:20px}.brand .wordmark{width:100%;margin:0;line-height:1}.brand-mark{width:100%;height:auto;display:block;overflow:visible}#tour-btn{color:var(--secondary);text-align:left;background:0 0;border-color:#0000;padding-inline:0}.tutorial{z-index:11000;right:24px;bottom:calc(var(--piano-h) + 24px);background:var(--panel);border:1px solid var(--secondary);width:min(400px,100vw - 40px);max-height:calc(100dvh - 48px);box-shadow:0 8px 32px var(--shadow);border-radius:8px;flex-direction:column;font:500 13px/1.45 Barlow,system-ui,sans-serif;display:flex;position:fixed;overflow:hidden}.tutorial[hidden]{display:none}.tutorial-offer{z-index:11001;border-color:var(--secondary);width:min(400px,100vw - 32px);max-height:calc(100dvh - 32px);box-shadow:0 12px 48px var(--backdrop);font:500 13px/1.45 Barlow,system-ui,sans-serif;position:fixed;top:50%;left:50%;overflow:auto;transform:translate(-50%,-50%)}.tutorial-offer p{color:var(--muted);margin:0 0 4px}.tutorial-offer-check{color:var(--muted);cursor:pointer;align-items:center;gap:6px;margin-top:10px;font-size:12px;display:flex}.tutorial-offer .tutorial-offer-where{background:var(--surface-tint);color:var(--ink);border-radius:6px;padding:6px 10px;font-size:12px}.tutorial:not(.dragging){transition:left .25s,top .25s}.tutorial-head{flex:none;gap:6px;height:34px;padding:0 4px 0 2px}.tutorial-head h2.stitle{color:var(--ink);margin:0}.tutorial-head button{margin:0}.tutorial .tutorial-head .x,.tutorial-menu .shead .help-close{min-height:0;color:var(--muted);background:0 0;border:0;padding:2px 8px;font-size:20px;line-height:1}.tutorial .tutorial-head .x:hover{color:var(--ink)}.tutorial .tutorial-head .tutorial-follow{min-height:0;font:var(--cap);text-transform:uppercase;letter-spacing:.07em;border-radius:5px;padding:4px 7px 3px;font-size:11px}.tutorial .tutorial-head .tutorial-handle{cursor:grab;touch-action:none;min-height:0;color:var(--muted);letter-spacing:-2px;background:0 0;border-color:#0000;padding:2px 4px}.tutorial-body{min-height:0;padding:10px 12px 12px;overflow:auto}.tutorial-offer .tutorial-body{padding:12px}.tutorial :is(button,.btn),.tutorial-offer button,.tutorial-menu .tutorial-body button{min-height:28px;font:var(--cap);text-transform:uppercase;letter-spacing:.07em;border-radius:5px;padding:4px 9px;font-size:12px}.tutorial-handle:active{cursor:grabbing}.tour-count{font:var(--cap);letter-spacing:.08em;color:var(--secondary);text-transform:uppercase;font-size:11px;display:block}.tour-step{color:var(--muted);margin-top:2px;font-size:11.5px;display:block}.tutorial p{white-space:pre-line;color:var(--muted);margin:6px 0;line-height:1.5}.tutorial-prose{color:color-mix(in srgb, var(--ink) 85%, var(--muted));overflow-wrap:anywhere;margin:8px 0;line-height:1.5}.tutorial .tutorial-prose p{white-space:normal;color:inherit}.tutorial-prose>:first-child{margin-top:0}.tutorial-prose>:last-child{margin-bottom:0}.tutorial-prose :is(strong,em){color:var(--ink)}.tutorial .tutorial-prose :is(h3,h4,h5,h6){color:var(--ink);margin:16px 0 6px;font:700 16px/1.3 system-ui,sans-serif}.tutorial .tutorial-prose :is(h4,h5,h6){font-size:14px}.tutorial-prose :is(ul,ol){margin:8px 0;padding-left:24px}.tutorial-prose li{margin:4px 0}.tutorial-prose li::marker{color:var(--secondary)}.tutorial-prose blockquote{border-left:3px solid var(--secondary);background:var(--surface-tint);margin:12px 0;padding:4px 12px}.tutorial-prose code{color:var(--ink);background:var(--surface-tint);border-radius:3px;padding:1px 4px;font:.9em/1.5 ui-monospace,monospace}.tutorial-prose pre{white-space:pre;border:1px solid var(--line);background:var(--surface-tint);border-radius:6px;max-width:100%;padding:10px 12px;overflow-x:auto}.tutorial-prose pre code{background:0 0;padding:0}.tutorial-prose hr{border:0;border-top:1px solid var(--line);margin:16px 0}.tutorial-prose img{max-width:100%;height:auto;margin:10px 0;display:block}.tutorial-table{max-width:100%;margin:12px 0;overflow-x:auto}.tutorial-prose table{border-collapse:collapse;width:100%;font-size:.9em}.tutorial-prose :is(th,td){border:1px solid var(--line);text-align:left;padding:6px 8px}.tutorial-prose th{color:var(--ink);background:var(--surface-tint)}.tutorial-prose .footnote-ref{font-size:.8em;line-height:0}.tutorial-prose .footnote-ref a{padding:2px}.tutorial-prose .footnotes{font-size:.9em}.tutorial-prose .footnote-item{scroll-margin-block:12px}.tutorial-prose .footnote-backref{padding:2px 5px;text-decoration:none;display:inline-block}.tutorial-challenge{margin:12px 0}.tutorial-challenge>strong{color:var(--secondary);font-size:13px}@media (max-width:650px){.tutorial-prose{font-size:12px}}.tutorial-warn{background:color-mix(in srgb, var(--danger) 12%, transparent);color:var(--ink);border-radius:6px;padding:6px 10px;font-size:12px}.tutorial-why{margin:6px 0;font-size:13px}.tutorial-prose .req{cursor:pointer;border-radius:4px}.tutorial-prose .req-box{box-sizing:border-box;vertical-align:-.12em;border:1.5px solid var(--secondary);border-radius:3px;width:.95em;height:.95em;margin-right:.4em;display:inline-block;position:relative}.tutorial-prose .req.done .req-box:after{content:"";box-sizing:border-box;border:solid var(--secondary);border-width:0 .15em .15em 0;border-radius:0 0 .05em;width:.38em;height:1.1em;position:absolute;top:-.31em;left:.4em;transform:rotate(40deg)}.tutorial-prose .req.done .req-text{color:var(--muted)}.tutorial-prose p.req-line{text-indent:-1.35em;padding-left:1.35em}.tutorial-prose p.req-line+p.req-line{margin-top:-.5em}.tutorial-prose li>p.req-line{margin:0}.tutorial-todo{background:var(--surface-tint);border-radius:6px;margin:8px 0 2px;padding:6px 10px;font-size:12px}.tutorial-todo>span{color:var(--secondary);letter-spacing:.1em;text-transform:uppercase;font-size:10px;font-weight:700}.tutorial-todo ul{color:var(--ink);margin:4px 0 0;padding-left:18px;line-height:1.5}.tutorial-todo li::marker{color:var(--secondary)}.tutorial-why summary{cursor:pointer;color:var(--secondary);font-weight:600}.tour-actions{flex-wrap:wrap;gap:6px;margin-top:10px;display:flex}.tutorial-body>details{color:var(--muted);margin-top:8px;font-size:12px}.tutorial-body>details>summary{cursor:pointer}.tour-note{touch-action:none;-webkit-user-select:none;user-select:none;background:var(--surface-tint);width:100%}.tour-note:active{background:var(--secondary);color:var(--panel)}.tutorial-menu{width:520px;max-width:calc(100% - 24px)}.tutorial-menu .shead{flex:none;height:34px;padding:0 6px 0 10px}.tutorial-menu .shead form{margin:0}.tutorial-menu .tutorial-body{padding:10px 14px 14px}.tutorial-menu .tutorial-body>p{color:var(--muted);margin:0}.tutorial-rows{gap:2px;margin:12px 0;display:grid}.tutorial-row{border-radius:6px;align-items:center;gap:10px;padding:4px 6px;display:flex}.tutorial-row.current{background:var(--surface-tint)}.tutorial-row .n{text-align:center;width:22px;color:var(--muted);font-family:ui-monospace,monospace;font-size:12px}.tutorial-unpublished{letter-spacing:.08em;text-transform:uppercase;color:var(--warning);margin-left:6px;font-size:10px}.tutorial-row.done .n{color:var(--secondary);font-weight:700}.tutorial-row .grow{flex:1}.tutorial-row button{min-height:28px;padding:2px 10px;font-size:12px}@keyframes tour-ping{0%{box-shadow:var(--tour-base,0 0 0 0 transparent), 0 0 0 5px color-mix(in srgb, var(--secondary) 85%, transparent), 0 0 12px 6px color-mix(in srgb, var(--secondary) 60%, transparent)}70%,to{box-shadow:var(--tour-base,0 0 0 0 transparent), 0 0 0 30px color-mix(in srgb, var(--secondary) 0%, transparent), 0 0 40px 30px color-mix(in srgb, var(--secondary) 0%, transparent)}}@keyframes tour-glow{0%,to{outline-color:var(--secondary)}50%{outline-color:color-mix(in srgb, var(--secondary) 55%, var(--ink))}}.tour-focus,#audio-btn:not(.on){outline:3px solid var(--secondary);outline-offset:3px;border-radius:6px;animation:1.2s cubic-bezier(.15,.6,.35,1) infinite tour-ping,1.2s ease-in-out infinite tour-glow}.dot.tour-focus{outline-offset:2px;border-radius:50%}.dot.connected.tour-focus{--tour-base:inset 0 0 0 3px var(--panel)}@media (max-width:650px){.tutorial{border-radius:8px 8px 0 0;width:auto;max-height:55dvh;bottom:0;left:0;right:0}.tutorial p{font-size:12px}.tutorial:not(.dragging){transition:none}}@media (prefers-reduced-motion:reduce){.tutorial:not(.dragging){transition:none}.tour-focus,#audio-btn:not(.on){box-shadow:var(--tour-base,0 0 0 0 transparent), 0 0 0 6px color-mix(in srgb, var(--secondary) 45%, transparent);animation:none}}.tutorial-audition button[aria-pressed=true]{background:var(--secondary);color:var(--panel)}.tutorial input{min-width:0;max-width:100%}@font-face{font-family:Barlow Condensed;src:url(../fonts/BarlowCondensed-SemiBold.ttf)format("truetype");font-weight:600;font-display:swap}:root{--cap:600 10.5px/1 "Barlow Condensed", "Barlow Semi Condensed", system-ui, sans-serif;--bar:color-mix(in srgb, var(--ink) 7%, var(--panel));--bar-fill:color-mix(in srgb, var(--control) 24%, transparent);--tag-src:var(--audio);--tag-shp:var(--control);--tag-mod:var(--gate);--tag-fx:var(--ref-lilac);--tag-util:var(--ref-blue);--tag-asm:var(--accent)}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--tag-fx:var(--ref-lilac-light);--tag-util:var(--ref-blue-light)}}:root[data-theme=dark]{--tag-fx:var(--ref-lilac-light);--tag-util:var(--ref-blue-light)}.module{border-color:color-mix(in srgb, var(--muted) 45%, var(--panel))}.mtag{letter-spacing:.06em;color:var(--tag);background:color-mix(in srgb, var(--tag) 16%, transparent);border-radius:3px;flex:none;padding:2px 5px 1px;font:600 10px/1 Barlow Condensed,Barlow Semi Condensed,system-ui,sans-serif}.mtag.src{--tag:var(--tag-src)}.mtag.shp{--tag:var(--tag-shp)}.mtag.mod{--tag:var(--tag-mod)}.mtag.fx{--tag:var(--tag-fx)}.mtag.util{--tag:var(--tag-util)}.mtag.asm{--tag:var(--tag-asm);background:color-mix(in srgb, var(--tag) 22%, transparent)}.mtag.eng{--tag:var(--gate)}.mhead .voices{color:var(--accent);border:1px solid;border-radius:8px;padding:1px 5px;font:600 11px/1 Barlow Condensed,system-ui,sans-serif}.mhead{padding:0 4px 0 6px}.mhead>span:not(.tools),.fhead>span:not(.tools){contain:inline-size;flex:1}:is(.mhead,.fhead) .asm-title{align-items:center;gap:4px;min-width:0;display:flex}:is(.mhead,.fhead) .asm-name{text-overflow:ellipsis;white-space:nowrap;min-width:2.5em;overflow:hidden}:is(.mhead,.fhead) .asm-title>:not(.asm-name){flex:none}.module .mhead .tools,.fhead .tools{flex:none;align-items:center;gap:2px;display:flex}:is(.mhead,.fhead) :is(button.chev,button.more,button.pw,button.out){width:22px;height:22px;min-height:0;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:5px;place-items:center;padding:0;font-size:13px;line-height:1;display:grid}:is(.mhead,.fhead) button.more{color:var(--ink);letter-spacing:1px;font-size:15px}:is(.mhead,.fhead) button.out{color:var(--muted);font-size:14px}:is(.mhead,.fhead) button.chev{width:16px;font-size:11px}:is(.mhead,.fhead) button.pw.on{color:var(--accent)}:is(.mhead,.fhead) :is(button.chev,button.more,button.pw,button.out):hover{background:color-mix(in srgb, var(--ink) 10%, transparent);color:var(--ink)}:is(.mhead,.fhead) button.poly-btn{border:1px solid var(--line);height:16px;color:var(--muted);text-transform:uppercase;letter-spacing:.08em;background:0 0;border-radius:4px;padding:0 4px;font:600 9px/1 Barlow Condensed,system-ui,sans-serif}:is(.mhead,.fhead) button.poly-btn[aria-pressed=true]{color:var(--panel);background:var(--secondary);border-color:var(--secondary)}:is(.mhead,.fhead) button.vc-btn{border:1px solid var(--line);height:16px;color:var(--muted);text-transform:uppercase;letter-spacing:.04em;white-space:nowrap;background:0 0;border-radius:4px;flex:none;padding:0 4px;font:600 9px/1 Barlow Condensed,system-ui,sans-serif}:is(.mhead,.fhead) button.vc-btn:hover{color:var(--ink);border-color:var(--secondary)}:is(.mhead,.fhead) button.vc-btn.set{color:var(--gate)}:is(.mhead,.fhead) button.vc-btn.over{color:var(--danger);border-color:var(--danger)}.flaw-note{color:var(--muted);padding:6px 8px 0;font-size:12px}@media (pointer:coarse){:is(.mhead,.fhead) :is(button.chev,button.more,button.pw,button.out){width:30px;height:30px}:is(.mhead,.fhead) :is(button.poly-btn,button.vc-btn){height:24px}}.ctx{gap:0;min-width:190px}.ctx button{border-radius:5px;justify-content:space-between;gap:16px;padding:6px 12px;font-size:13px;display:flex}.ctx button.rule{border-top:1px solid var(--line);border-radius:0 0 5px 5px;margin-top:3px}.ctx button.danger{color:var(--danger)}.ctx kbd{color:var(--muted);font:12px/1 Barlow,system-ui,sans-serif}.ctx.ctx-fixed{z-index:70;position:fixed}.ctx button:focus-visible{outline-offset:-2px}.module{width:max-content;min-width:236px;max-width:300px}.module.assembly.poly{min-width:300px}.erows{grid-template-columns:auto minmax(120px,1fr) auto}.erow>.em,.module .mbody>:not(.erows,.mfoot){contain:inline-size}.erow>:is(.el,.er){max-width:100px}.erow .port>span:not(.dot){text-overflow:ellipsis;min-width:0;overflow:hidden}.erows{grid-template-columns:auto minmax(0,1fr) auto;column-gap:6px;padding:5px 8px;display:grid}.erow{grid-column:1/-1;grid-template-columns:subgrid;align-items:center;min-height:24px;display:grid}.erow>.el{min-width:0;margin-left:-8px;display:flex}.erow>.er{justify-content:flex-end;min-width:0;margin-right:-8px;display:flex}.erow>.em{min-width:0}.module .port{font:var(--cap);text-transform:uppercase;letter-spacing:.06em;color:var(--muted);white-space:nowrap;gap:4px;font-size:10px}.module .port>span:not(.dot){line-height:1.2}.module .port>.dot{z-index:2;position:relative}.module .port .rename{color:var(--ink)}.mfoot{justify-content:space-between;gap:6px;height:20px;padding:0 6px;display:flex}.mfoot>div{display:flex}.mfoot .port.bottom{flex-direction:column;justify-content:flex-start;align-items:center;gap:2px;min-width:34px;height:20px;position:relative}.mfoot .port.bottom>.dot{margin:0;position:absolute;bottom:-8px;left:calc(50% - 7px)}.mfoot .port.bottom>span:not(.dot){order:-1}.param.bar{background:var(--bar);height:18px;color:var(--ink);border-radius:5px;grid-template-rows:18px;grid-template-columns:minmax(0,1fr) auto;align-items:center;column-gap:4px;margin:0;padding:0;font:500 12px/1 Barlow,system-ui,sans-serif;display:grid;position:relative}.param.bar>span:first-child{text-overflow:ellipsis;white-space:nowrap;min-width:0;font:var(--cap);text-transform:uppercase;letter-spacing:.06em;pointer-events:none;grid-area:1/1;padding-left:6px;overflow:hidden}.param.bar>span:first-child.rename{pointer-events:auto;z-index:3;justify-self:start;max-width:100%;position:relative}.param.bar>output{color:var(--ink);pointer-events:none;grid-area:1/2;padding-right:6px;font-size:11.5px}.param.bar>output:empty{display:none}.param.bar .unit{color:var(--muted);margin-left:2px;font-size:9.5px}.param.bar.automated>output{color:var(--secondary)}.param.bar>.val-edit{z-index:7;box-sizing:border-box;border:1.5px solid var(--secondary);background:var(--panel);width:100%;height:100%;color:var(--ink);text-align:right;border-radius:5px;outline:none;margin:0;padding:0 6px;font:500 12px/1 Barlow,system-ui,sans-serif;position:absolute;inset:0}.param.bar>.val-edit.bad{border-color:var(--danger)}.param.bar.locked>:not(.slider-jack):not(.sel),.param.bar.locked .slider-jack:before,.param.bar.locked .slider-thumb,.param.bar.locked .sel-track,.param.bar.locked .sel-names{opacity:.35}.param.bar.locked .slider-port{opacity:.55}.param.bar.locked .jack-range,.param.bar.locked .sel-track{cursor:not-allowed}.param.bar.locked .sel-track{pointer-events:none}.param.bar>.slider-jack{--jack-size:14px;grid-area:1/1/2/3;height:18px}.param.bar>.slider-jack:before{background:var(--bar-fill);height:auto;width:calc(var(--position) * (100% - var(--jack-size)) + var(--jack-size) / 2);border-radius:5px 0 0 5px;inset:0 auto 0 0}.param.bar .jack-range{height:18px}.param.bar .slider-port{box-shadow:inset 0 0 0 2px var(--panel), 0 0 0 1.5px var(--bar);border-width:2.5px}.param.bar .slider-base{background:color-mix(in srgb, var(--secondary) 16%, transparent);border-radius:0;height:100%;top:0}.param.bar .slider-base:after{border-radius:1px;width:2px;height:100%;top:0}.param.bar .slider-knob{width:6px;height:4px;top:auto;bottom:-3px;left:calc(var(--at) * (100% - var(--jack-size)) + var(--jack-size) / 2 - 3px)}:is(.erows,.dock-body,.arp-rows):has(.parameter-routing) .param.bar{margin-right:14px}.param.bar>.parameter-routing{z-index:5;width:12px;height:18px;position:absolute;top:0;right:-14px}.param.bar>.parameter-routing summary{height:18px;color:var(--muted);background:0 0;border:0;border-radius:4px;justify-content:center;align-items:center;padding:0;font-size:13px;line-height:1;display:flex}.param.bar>.parameter-routing summary:hover,.param.bar>.parameter-routing[open] summary{color:var(--secondary);background:color-mix(in srgb, var(--secondary) 14%, transparent)}.param.bar.choice,.param.bar.toggle{box-shadow:none;grid-template-columns:minmax(0,1fr) auto;margin:0;padding:0}.param.bar.choice>:first-child,.param.bar.toggle>:first-child{grid-area:1/1}.param.bar>span:nth-child(2):empty{display:none}.param.bar>.picker{background:0 0;border:0;border-radius:0;grid-area:1/2;height:18px}.param.bar>.picker .pick{background:0 0;min-height:18px;padding:0 4px;font-size:8px}.param.bar>.picker .pick-value{font:var(--cap);text-transform:uppercase;letter-spacing:.05em;color:var(--secondary);background:0 0;border:0;padding:0 2px;font-size:10.5px}.param.bar>.toggle-line{grid-area:1/2;gap:6px;min-height:18px;padding-right:6px}.param.bar>.toggle-line>output{display:none}.param.bar>.toggle-line input{appearance:none;background:var(--line);cursor:pointer;border-radius:6px;width:24px;height:12px;margin:0;position:relative}.param.bar>.toggle-line input:before{content:"";background:var(--muted);border-radius:50%;width:8px;height:8px;transition:left .12s;position:absolute;top:2px;left:2px}.param.bar>.toggle-line input:checked{background:color-mix(in srgb, var(--secondary) 45%, var(--line))}.param.bar>.toggle-line input:checked:before{background:var(--secondary);left:14px}.tog-switch{align-items:center;display:inline-flex;position:relative}.param.bar>.toggle-line .tog-switch:has(.tog-jack) input{width:30px;height:10px}.param.bar>.toggle-line .tog-switch:has(.tog-jack) input:before{display:none}.tog-switch .tog-jack{width:14px;height:14px;box-shadow:0 0 0 1.5px var(--bar);cursor:pointer;border-width:2.5px;transition:left .12s;position:absolute;top:50%;left:-2px;transform:translateY(-50%)}.tog-switch input:checked+.tog-jack{left:18px}.patching .tog-switch .tog-jack{cursor:crosshair}.fhead>span:not(.tools){align-items:center;gap:7px;display:flex}.dock-title{font:var(--cap);text-transform:uppercase;letter-spacing:.1em;font-size:12px}.dock-jacks .port{font:var(--cap);text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-size:10px}.dock-body>.param.bar{width:160px}.dial-name{letter-spacing:.06em;font:600 11px/1 Barlow Condensed,system-ui,sans-serif}.deck-wheel{font:var(--cap);text-transform:uppercase;letter-spacing:.06em;font-size:9.5px}.dock .piano-octave button{font:var(--cap);text-transform:uppercase;letter-spacing:.06em;font-size:11px}.dock .piano-octave output{font:var(--cap);text-transform:uppercase;letter-spacing:.06em;font-size:10px}.slider-thumb.dot{z-index:4;box-sizing:border-box;width:var(--jack-size);height:var(--jack-size);top:50%;left:calc(var(--position) * (100% - var(--jack-size)));cursor:ew-resize;touch-action:none;color:var(--muted);box-shadow:inset 0 0 0 2px var(--panel), 0 0 0 1.5px var(--bar);border-width:2.5px;position:absolute;transform:translateY(-50%)}.module .mbody .slider-thumb,.dock .slider-thumb{pointer-events:auto}.erow .port select.merge{text-indent:-999px;width:20px;max-width:20px;padding:0;font-size:9px}:root{--shown:color-mix(in srgb, var(--accent) 60%, var(--ink))}.param.bar.shown>span:first-child,.module .port.shown>span:not(.dot){color:var(--shown)}.param.bar.shown:after{content:"";z-index:5;background:var(--accent);width:7px;height:7px;box-shadow:0 0 0 2px var(--panel);pointer-events:none;border-radius:50%;position:absolute;top:-3px;right:-3px}.module .port.shown>.dot{box-shadow:0 0 0 2px var(--panel), 0 0 0 3.5px var(--accent)}.module .port.shown>.dot.connected{box-shadow:inset 0 0 0 3px var(--panel), 0 0 0 2px var(--panel), 0 0 0 3.5px var(--accent)}.pickbox{box-sizing:border-box;border:1.5px solid var(--muted);text-align:center;width:12px;height:12px;color:var(--panel);pointer-events:none;border-radius:3px;flex:none;font:700 10px/9px system-ui,sans-serif}.pickbox.on{border-color:var(--accent);background:var(--accent)}.module .param.bar>.pickbox{z-index:5;grid-area:auto;position:absolute;top:3px;left:4px}.picking .param.bar{cursor:pointer;box-shadow:inset 0 0 0 1px var(--line)}.picking .param.bar:not(.shown){opacity:.75}.picking .param.bar.shown{box-shadow:inset 0 0 0 1.5px var(--accent)}.picking .param.bar.shown:after{content:none}.picking .param.bar>span:first-child{padding-left:21px}.picking .param.bar :is(.slider-port,.slider-thumb,.picker-jack){visibility:hidden}.picking .param.bar :is(input,button,summary){pointer-events:none}.picking .port{cursor:pointer}.fhead .pick-btn[aria-pressed=true]{color:var(--accent-ink);background:var(--accent);border-color:var(--accent)}.frame.picking{border-color:var(--accent)}.picking .mfoot,.picking .mfoot .port.bottom{height:34px}.mfoot .port.bottom>.pickbox{order:0}.module .mbody .port,.module .mbody .port>span{pointer-events:auto}:is(.mhead,.fhead) button.chev{width:24px;height:24px;color:var(--ink);margin-left:-4px}:is(.mhead,.fhead) button.chev svg{fill:currentColor;width:13px;height:13px;transition:transform .12s}:is(.mhead,.fhead) button.chev[aria-expanded=true] svg{transform:rotate(90deg)}.sidebar{font-family:Barlow,system-ui,sans-serif;font-weight:500}#tabs button,.sidebar button,.example-picker>span{font:var(--cap);text-transform:uppercase;letter-spacing:.07em;font-size:13px}#tabs button{font-size:14px}.spanel{border:1px solid color-mix(in srgb, var(--muted) 45%, var(--panel));background:var(--panel);box-shadow:0 2px 6px var(--shadow);border-radius:8px}.shead{border-bottom:1px solid var(--line);background:var(--surface-tint);border-radius:8px 8px 0 0;align-items:center;gap:7px;height:30px;padding:0 6px;display:flex}.shead .stitle,input#patch-name{text-transform:uppercase;letter-spacing:.07em;min-width:0;color:var(--ink);white-space:nowrap;text-overflow:ellipsis;flex:1;font:600 15px/1 Barlow Condensed,Barlow Semi Condensed,system-ui,sans-serif;overflow:hidden}.shead .stitle{color:var(--muted)}input#patch-name{cursor:text;background:0 0;border:1px solid #0000;border-radius:4px;height:24px;margin-left:-4px;padding:0 4px}input#patch-name:hover{border-color:var(--line)}input#patch-name:focus{border-color:var(--secondary);background:var(--bar);outline:none}#save-patch-btn,#share-patch-btn,#patch-menu-btn{width:22px;height:24px;color:var(--muted);background:0 0;border:1px solid #0000;border-radius:4px;flex:none;place-items:center;padding:0;display:grid}#share-patch-btn,#patch-menu-btn{margin-left:-4px}#save-patch-btn:hover,#share-patch-btn:hover,#patch-menu-btn:hover,#patch-menu-btn[aria-expanded=true]{color:var(--ink);border-color:var(--line)}#save-patch-btn.saved{color:var(--secondary)}.toast{z-index:60;left:50%;bottom:calc(var(--piano-h,0px) + 16px);border:1px solid var(--line);background:var(--panel);max-width:calc(100vw - 32px);color:var(--ink);border-radius:6px;align-items:center;gap:10px;padding:6px 6px 6px 14px;font-size:13px;display:flex;position:fixed;transform:translate(-50%);box-shadow:0 6px 20px #00000040}.toast span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.toast button{border:1px solid var(--secondary);min-height:26px;color:var(--secondary);font:var(--cap);text-transform:uppercase;letter-spacing:.07em;background:0 0;border-radius:4px;flex:none;padding:0 10px;font-size:12px}.toast button.toast-close{color:var(--muted);border-color:#0000;padding:0 6px}.sbody{gap:6px;padding:8px;display:grid}.sidebar button{white-space:nowrap;border-radius:5px;min-height:30px;padding:4px 8px}.sidebar button:not(.primary),.sidebar #tour-btn,.sidebar #palette-btn{background:var(--btn-yellow);border-color:var(--btn-yellow);color:var(--accent-ink)}.sidebar button:not(.primary):hover,.sidebar #tour-btn:hover,.sidebar #palette-btn:hover{border-color:var(--ink);color:var(--accent-ink);filter:brightness(1.08)}.sidebar #palette-btn kbd{color:inherit;opacity:.7}#add-assembly-btn,.sidebar #demo-btn{background:var(--secondary);border-color:var(--secondary);color:var(--panel)}.sidebar .view-row button{background:var(--panel);border:1px solid var(--line);color:var(--ink);letter-spacing:.06em;border-radius:6px;font-size:11px}.sidebar .view-row button:hover{border-color:var(--secondary);color:var(--ink);filter:none}.view-row,.add-row,.learn-row{grid-template-columns:1fr 1fr;gap:6px;display:grid}.side-bar>.slider-jack{--jack-size:18px}.side-bar>span:first-child{font:var(--cap);text-transform:uppercase;letter-spacing:.07em;font-size:10.5px}.side-bar .slider-port{background:var(--panel)}.patching-any .side-bar,.patching-any .side-bar .slider-port{cursor:crosshair}.example-picker{gap:4px;display:grid}.example-picker>span{color:var(--muted);font-size:11px}.example-picker select{border-color:var(--line);background:var(--bar);border-radius:5px;width:100%;min-height:28px;padding:2px 6px;font:500 13px/1.2 Barlow,system-ui,sans-serif}#palette-btn{font-size:12px}#palette-btn kbd{text-transform:none;letter-spacing:0;font:500 10px/1 Barlow,system-ui,sans-serif}.sidebar #tour-btn{text-align:center;padding-inline:8px}#tab-library{font-family:Barlow,system-ui,sans-serif;font-weight:500}#tab-library .card{border-color:color-mix(in srgb, var(--muted) 45%, var(--panel));box-shadow:0 2px 6px var(--shadow);padding:0 12px 12px}#tab-library .card>h2{border-bottom:1px solid var(--line);background:var(--surface-tint);text-transform:uppercase;letter-spacing:.07em;border-radius:8px 8px 0 0;align-items:center;gap:7px;height:32px;margin:0 -12px 10px;padding:0 10px;font:600 15px/1 Barlow Condensed,Barlow Semi Condensed,system-ui,sans-serif;display:flex}#tab-library .card>h2 .muted{text-transform:none;letter-spacing:0;margin-left:auto;font:500 12px/1 Barlow,system-ui,sans-serif}#tab-library .card>p{margin:0 0 10px;font-size:13px;line-height:1.45}#tab-library :is(h3,h4){font:var(--cap);text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin:14px 0 6px;font-size:12px}#tab-library .toolbar button,#tab-library .row .btn{min-height:28px;font:var(--cap);text-transform:uppercase;letter-spacing:.07em;background:var(--btn-yellow);border-color:var(--btn-yellow);color:var(--accent-ink);border-radius:5px;padding:4px 10px;font-size:13px}#tab-library .toolbar button.primary{background:var(--accent);border-color:var(--accent)}#tab-library .toolbar button:hover,#tab-library .row .btn:hover{border-color:var(--ink);filter:brightness(1.08)}#tab-library .toolbar input{background:var(--bar);border-color:var(--line);border-radius:5px;min-height:28px;font:500 13px/1.2 Barlow,system-ui,sans-serif}#tab-library progress{width:100%;height:6px;margin:2px 0 8px}#tab-library .bank-list{gap:3px}#tab-library .bank-row{background:var(--bar);border-radius:5px;min-height:26px;padding:0 4px 0 8px;font-size:13px}#tab-library .bank-row:hover{background:color-mix(in srgb, var(--secondary) 12%, var(--bar))}#tab-library .bank-row :is(b){text-transform:uppercase;letter-spacing:.06em;font:600 13.5px/1 Barlow Condensed,Barlow Semi Condensed,system-ui,sans-serif}#tab-library .bank-row .muted{font-size:12px}#tab-library .bank-row .slot{font:var(--cap);font-size:12px}#tab-library .bank-row button{min-height:20px;color:var(--muted);font:var(--cap);text-transform:uppercase;letter-spacing:.06em;background:0 0;border:0;border-radius:4px;padding:0 6px;font-size:12px}#tab-library .bank-row button:hover:not(:disabled){color:var(--secondary);background:color-mix(in srgb, var(--secondary) 14%, transparent)}#tab-library .bank-row button:disabled{opacity:.3}#tab-library .bank-row button.delete:hover:not(:disabled){color:var(--danger);background:color-mix(in srgb, var(--danger) 14%, transparent)}#tab-library .community-list{flex-direction:column;gap:6px;display:flex}#tab-library .community-row{background:var(--bar);border-radius:6px;grid-template-columns:96px minmax(0,1fr) auto;align-items:center;gap:12px;padding:6px;display:grid}#tab-library .community-thumb{background:var(--surface-tint);border:1px solid var(--line);border-radius:4px;width:96px;height:60px}#tab-library .community-thumb rect{fill:none;stroke:var(--muted);stroke-width:8px}#tab-library .community-thumb line{stroke:var(--secondary);stroke-width:10px;stroke-linecap:round}#tab-library .community-main{min-width:0;color:var(--muted);flex-direction:column;gap:3px;font-size:12px;display:flex}#tab-library .community-main>*{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}#tab-library .community-title{color:var(--ink);text-transform:uppercase;letter-spacing:.05em;font:600 15px/1.2 Barlow Condensed,Barlow Semi Condensed,system-ui,sans-serif}#tab-library .community-notes{color:var(--ink);font-size:13px}#tab-library .community-fit{color:var(--secondary)}#tab-library .community-fit.over{color:var(--danger)}#tab-library .community-tools{gap:6px;display:flex}#tab-library .community-tools>*{min-height:32px;font:var(--cap);text-transform:uppercase;letter-spacing:.07em;border-radius:5px;justify-content:center;align-items:center;font-size:13px;display:inline-flex}#tab-library .community-open{background:var(--btn-yellow);border-color:var(--btn-yellow);color:var(--accent-ink);padding:0 14px}#tab-library .community-src{border:1px solid var(--line);width:32px;color:var(--muted);box-sizing:border-box;text-decoration:none}#tab-library .community-src:hover{color:var(--accent);border-color:var(--ink)}#tab-library .community-empty{border:1px dashed color-mix(in srgb, var(--accent) 55%, var(--line));background:color-mix(in srgb, var(--accent) 6%, transparent);color:var(--muted);border-radius:6px;flex-direction:column;gap:4px;padding:14px 16px;font-size:13px;line-height:1.45;display:flex}#tab-library .community-empty b{color:var(--ink);text-transform:uppercase;letter-spacing:.06em;font:600 16px/1.2 Barlow Condensed,Barlow Semi Condensed,system-ui,sans-serif}#tab-library .community-foot{border-top:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:8px 14px;margin-top:10px;padding-top:10px;font-size:12px;display:flex}#tab-library .community-foot>.muted{flex:260px;line-height:1.45}#tab-library .community-more{letter-spacing:.04em;white-space:nowrap;font:600 14px/1.2 Barlow Condensed,Barlow Semi Condensed,system-ui,sans-serif}#tab-library .community-post{background:var(--accent);border-color:var(--accent);min-height:36px;color:var(--accent-ink);font:var(--cap);text-transform:uppercase;letter-spacing:.07em;border-radius:5px;padding:0 16px;font-size:13px}#tab-library .community-post:hover,#tab-library .community-open:hover{border-color:var(--ink);filter:brightness(1.08)}@media (max-width:560px){#tab-library .community-row{grid-template-columns:64px minmax(0,1fr)}#tab-library .community-thumb{width:64px;height:44px}#tab-library .community-tools{grid-column:1/-1}#tab-library .community-open{flex:1}#tab-library .community-post{flex:100%}}svg.slack-cable{z-index:15;pointer-events:none;width:100vw;height:100dvh;position:fixed;inset:0;overflow:visible}svg.slack-cable .cable{pointer-events:stroke;cursor:pointer}svg.slack-cable .cable.pending{pointer-events:none}.param.bar.sel{background:0 0;align-items:flex-start;gap:8px;height:34px;display:flex}.param.bar.sel>span:first-child{flex:none;max-width:40%;padding:2px 0 0 6px;line-height:12px}.param.bar.sel>.parameter-routing{top:-1px}.param.bar.sel.shown:after{top:6px}.sel-track{cursor:pointer;touch-action:none;outline:none;flex:1;min-width:0;height:34px;margin-right:7px;position:relative}.sel-track:focus-visible .sel-groove{box-shadow:0 0 0 1.5px var(--secondary)}.module .mbody .sel-track,.module .mbody .sel-track *{pointer-events:auto}.sel-groove{background:var(--line);border-radius:1px;height:2px;position:absolute;top:7px;left:7px;right:7px}.sel-notches,.sel-labels{pointer-events:none;position:absolute;inset:0}.sel-notch{background:var(--muted);border-radius:50%;width:4px;height:4px;position:absolute;top:6px;transform:translate(-50%)}.sel-base{box-sizing:border-box;border:2px solid var(--secondary);background:var(--panel);pointer-events:none;border-radius:50%;width:9px;height:9px;position:absolute;top:3.5px;transform:translate(-50%)}.sel-knob{pointer-events:none;background:currentColor;border-radius:1px;width:6px;height:3px;position:absolute;top:12px}.sel-opt,.sel-rider{white-space:nowrap;font:var(--cap);text-transform:uppercase;letter-spacing:.05em;color:var(--muted);font-size:9px;line-height:12px;position:absolute;bottom:2px}.sel-opt.live,.sel-rider{color:var(--secondary)}.sel-opt.base{color:var(--ink)}.sel-rider{pointer-events:none;transition:left .14s cubic-bezier(.3,1.4,.6,1);display:none}.sel-track.many .sel-labels{visibility:hidden}.sel-track.many .sel-rider{display:block}.sel-track .sel-jack{z-index:4;width:14px;height:14px;box-shadow:none;cursor:ew-resize;border-width:2.5px;transition:left .14s cubic-bezier(.3,1.4,.6,1);position:absolute;top:1px;transform:none}.patching .sel-track .sel-jack{cursor:crosshair}.sel-track .sel-jack.slider-thumb{color:var(--muted);pointer-events:none}.picking .sel-track{pointer-events:none}@media (pointer:coarse){.param.bar.sel,.sel-track{height:40px}}.flaw-panel{z-index:30;border:1px solid color-mix(in srgb, var(--muted) 45%, var(--panel));background:var(--panel);width:min(520px,100vw - 32px);max-height:calc(100vh - 32px);box-shadow:0 6px 20px var(--shadow);border-radius:8px;position:fixed;overflow:auto}.flaw-head{border-bottom:1px solid var(--line);background:var(--surface-tint);border-radius:8px 8px 0 0;align-items:center;gap:7px;height:30px;padding:0 6px;display:flex}.flaw-title{text-overflow:ellipsis;white-space:nowrap;text-transform:uppercase;letter-spacing:.07em;flex:1;min-width:0;font:600 15px/1 Barlow Condensed,Barlow Semi Condensed,system-ui,sans-serif;overflow:hidden}.flaw-x{width:24px;height:24px;min-height:0;color:var(--muted);cursor:pointer;background:0 0;border:0;padding:0;font-size:16px}.flaw-x:hover{color:var(--ink)}.flaw-grid{grid-template-columns:24px repeat(5,minmax(0,1fr));align-items:center;gap:4px 8px;padding:8px 10px 4px;display:grid}.flaw-col{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font:600 11px/1 Barlow Condensed,system-ui,sans-serif}.flaw-col small{text-transform:none;font-size:9px}.flaw-part{color:var(--muted);font:600 12px/1 Barlow Condensed,system-ui,sans-serif}.flaw-part:before{content:"";background:var(--swatch,transparent);vertical-align:0;border-radius:50%;width:7px;height:7px;margin-right:4px;display:inline-block}.flaw-cell{grid-template-columns:minmax(0,1fr) 26px;align-items:center;gap:3px;display:grid}.flaw-cell input{width:100%;min-width:0;accent-color:var(--secondary);margin:0}.flaw-cell output{font-variant-numeric:tabular-nums;text-align:right;font:500 11px/1 Barlow,system-ui,sans-serif}.flaw-cell.off output{color:var(--muted)}.flaw-tools{justify-content:flex-end;gap:6px;padding:4px 10px 10px;display:flex}.flaw-tools button{border:1px solid var(--line);height:26px;min-height:0;color:var(--ink);cursor:pointer;background:0 0;border-radius:5px;padding:0 10px}.flaw-tools button:hover{border-color:var(--secondary)}.module.assembly.cols{max-width:none;width:calc(var(--cols) * 320px - 20px)}.erows.multi{align-items:start;column-gap:14px}.ecol{grid-template-columns:subgrid;align-content:start;display:grid}.egrp,.eseg{grid-template-columns:subgrid;align-content:start;align-items:start;display:grid}.eseg{grid-column:1/-1}.erow.gstart{margin-top:5px}.erow.gstart>.em{position:relative}.erow.gstart>.em:before{content:"";border-top:1px dashed var(--line);position:absolute;top:-3px;left:0;right:0}.ehead{border-bottom:1px solid var(--line);height:18px;font:var(--cap);text-transform:uppercase;letter-spacing:.1em;color:var(--muted);white-space:nowrap;align-items:center;gap:4px;margin-top:4px;font-size:10px;display:flex;overflow:hidden}.ehead input{border:1px solid var(--line);background:var(--panel);min-width:0;height:16px;font:inherit;letter-spacing:inherit;text-transform:uppercase;color:var(--ink);border-radius:3px;flex:1;padding:0 4px}.ebreak{border:1px dashed var(--accent);height:16px;font:var(--cap);text-transform:uppercase;letter-spacing:.08em;color:var(--accent);border-radius:4px;justify-content:space-between;align-items:center;padding:0 0 0 6px;font-size:9px;display:flex}.module button.arr-x{width:16px;min-width:0;height:16px;color:inherit;background:0 0;border:0;padding:0;line-height:1}.module.arranging{border-color:var(--accent);border-style:solid}.arranging .param.bar :is(.slider-port,.slider-thumb,.picker-jack,.tog-jack){visibility:hidden}.arranging .param.bar :is(input,summary,.sel-track){pointer-events:none}.arranging .arr-item{cursor:grab;touch-action:none}.arranging .param.bar.arr-item{box-shadow:inset 0 0 0 1px var(--line)}.arr-item.arr-dragging,.arr-item.arr-held{opacity:.5;cursor:grabbing}.arr-before{box-shadow:0 -2px 0 var(--accent)!important}.arr-after{box-shadow:0 2px 0 var(--accent)!important}.port.bottom.arr-before{box-shadow:-2px 0 0 var(--accent)!important}.port.bottom.arr-after{box-shadow:2px 0 0 var(--accent)!important}.module .param.bar>.arr-tools{z-index:6;gap:2px;display:none;position:absolute;top:-11px;right:0}.arranging .param.bar:hover>.arr-tools{pointer-events:auto;display:flex}.arr-tools button.sm{background:var(--panel);height:15px;padding:0 5px;font-size:9px;line-height:1}.module .param.screen{margin:2px 0;display:block;position:relative}.scope-screen{background:var(--bar);border-radius:5px;height:64px;overflow:hidden}.scope-screen>canvas{width:100%;height:100%;display:block}.picking .param.screen{cursor:pointer}.picking .param.screen .scope-screen{box-shadow:inset 0 0 0 1px var(--line)}.picking .param.screen.shown .scope-screen{box-shadow:inset 0 0 0 1.5px var(--accent)}.module .param.screen>.pickbox{z-index:5;position:absolute;top:4px;left:4px}.param.screen.shown:not(.picking *):after{content:"";z-index:5;background:var(--accent);width:7px;height:7px;box-shadow:0 0 0 2px var(--panel);pointer-events:none;border-radius:50%;position:absolute;top:-3px;right:-3px}.module .param.screen>.arr-tools{z-index:6;gap:2px;display:none;position:absolute;top:-11px;right:0}.arranging .param.screen:hover>.arr-tools{pointer-events:auto;display:flex}.arranging .param.screen.arr-item .scope-screen{box-shadow:inset 0 0 0 1px var(--line)}.module .param.screen>.screen-name{z-index:3;font:var(--cap);text-transform:uppercase;letter-spacing:.08em;color:var(--muted);pointer-events:none;font-size:9px;position:absolute;top:3px;left:5px}.module .param.screen>.screen-name.rename{pointer-events:auto;cursor:pointer}.module.picking .param.screen>.screen-name,.picking .module .param.screen>.screen-name{left:21px}.steps-screen{background:var(--bar);border-radius:5px;padding:5px}.module .mbody>.param.screen.steps{margin:6px 10px 8px}.steps-head{flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:5px;display:flex}.steps-acts{gap:4px;margin-left:auto;display:flex}.steps-name{box-sizing:border-box;min-width:72px;height:20px;line-height:18px;font:var(--cap);letter-spacing:.08em;text-transform:uppercase;color:var(--ink);background:var(--panel);border:1px solid var(--line);border-radius:4px;flex:72px;padding:0 5px;font-size:11px}.steps-name::placeholder{color:var(--muted)}.steps-mute{font:var(--cap);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);border:1px solid var(--line);background:0 0;border-radius:4px;padding:2px 7px;font-size:10px}.steps-screen .steps-head .steps-mute.on{color:var(--accent-ink);background:var(--accent);border-color:var(--accent)}.steps-rec{font:var(--cap);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);border:1px solid var(--line);cursor:pointer;background:0 0;border-radius:4px;padding:2px 7px;font-size:10px}.steps-screen .steps-head .steps-rec.on{color:var(--accent-ink);background:var(--accent);border-color:var(--accent)}.steps-arm,.steps-roll{font:var(--cap);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);border:1px solid var(--line);cursor:pointer;background:0 0;border-radius:4px;padding:2px 7px;font-size:10px}.steps-screen .steps-head .steps-arm.on{color:var(--panel);background:var(--secondary);border-color:var(--secondary)}.steps-screen.armed{box-shadow:inset 0 0 0 2px var(--secondary)}.module.armed:not(.selected){outline:2px solid var(--secondary);outline-offset:1px}.step.cursor:before{content:"";z-index:2;box-shadow:inset 0 0 0 2px var(--accent);pointer-events:none;border-radius:2px;position:absolute;inset:0}.steps-lanes{display:flex}.steps-screen .steps-lanes button{font:var(--cap);letter-spacing:.06em;text-transform:uppercase;color:var(--muted);border:1px solid var(--line);cursor:pointer;background:0 0;border-left-width:0;padding:2px 5px;font-size:10px}.steps-screen .steps-lanes button:first-child{border-left-width:1px;border-radius:3px 0 0 3px}.steps-screen .steps-lanes button:last-child{border-radius:0 3px 3px 0}.steps-screen .steps-lanes button.on{color:var(--panel);background:var(--secondary);border-color:var(--secondary)}.steps-rows{gap:3px;display:grid}.steps-readout{min-height:12px;font:var(--cap);letter-spacing:.06em;color:var(--muted);text-transform:uppercase;margin-top:3px;font-size:10px}.steps-readout:empty{display:none}.step>b{z-index:1;font:var(--cap);text-align:center;color:var(--muted);pointer-events:none;font-size:9px;line-height:10px;position:absolute;top:1px;left:0;right:0}.steps-screen[data-lane=note] .step,.steps-screen[data-lane=vel] .step{height:34px}.steps-screen[data-lane=vel] .step>i{background:color-mix(in srgb, var(--ink) 55%, var(--bar))}.steps-screen[data-lane=vel] .step.on>i{background:var(--ink)}.steps-screen[data-lane=vel] .step.acc>i{background:var(--accent)}.steps-screen[data-lane=note] .step>i{height:3px;bottom:calc(2px + var(--note,0) * (100% - 17px));background:color-mix(in srgb, var(--ink) 45%, var(--bar))}.steps-screen[data-lane=note] .step.on>i{background:var(--ink)}.steps-screen[data-lane=note] .step.acc>i{background:var(--accent)}.steps-screen[data-lane=note] .step.on>b{color:var(--ink)}.steps-row{grid-template-columns:repeat(16,1fr);gap:2px;display:grid}.step{background:color-mix(in srgb, var(--ink) 16%, var(--bar));height:18px;box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--ink) 30%, var(--bar));cursor:pointer;touch-action:none;border-radius:2px;position:relative;overflow:hidden}.step.beat{background:color-mix(in srgb, var(--ink) 26%, var(--bar));box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--ink) 45%, var(--bar))}.step>i{height:calc(var(--chance,0) * (100% - 4px));background:var(--ink);pointer-events:none;border-radius:1px;position:absolute;bottom:2px;left:2px;right:2px}.step.acc>i{background:var(--accent)}.step.tie>i{background:var(--ink);border-radius:0 1px 1px 0;height:6px;bottom:calc(50% - 3px);left:0}.steps-screen[data-lane=note] .step.tie>i,.steps-screen[data-lane=vel] .step.tie>i{opacity:.35}.step.play:after{content:"";box-shadow:inset 0 0 0 2px var(--gate), 0 0 0 1px var(--gate);pointer-events:none;border-radius:2px;position:absolute;inset:0}.step.play{z-index:1;overflow:visible}.step.past{opacity:.25;cursor:default}.steps-screen.muted .step>i{opacity:.35}.module .mbody .param.screen{pointer-events:auto}.module .param.screen>.scope-tools{z-index:6;background:color-mix(in srgb, var(--panel) 88%, black);border:1px solid var(--line);pointer-events:auto;border-radius:6px;align-items:center;gap:2px;padding:2px;display:none;position:absolute;top:5px;right:5px}.module .param.screen:hover>.scope-tools{display:flex}:is(.picking,.arranging) .param.screen>.scope-tools,:is(.picking,.arranging) .param.screen:hover>.scope-tools{display:none}.module .param.screen:hover:not(:is(.picking,.arranging) *) .scope-screen:not(.env-screen)>canvas{opacity:.55}.scope-tools button.sm{min-width:18px;height:18px;color:var(--muted);font:var(--cap);letter-spacing:.06em;text-transform:uppercase;background:0 0;border:0;border-radius:4px;padding:0 5px;font-size:10px}.scope-tools button.sm[aria-pressed=true]{background:var(--line);color:var(--ink)}.scope-tools .scope-time{color:var(--ink);white-space:nowrap;padding:0 4px;font:500 11px/1 Barlow,system-ui,sans-serif}.scope-tools .scope-rule{background:var(--line);width:1px;height:12px;margin:0 2px}.module .param.screen>.screen-name.right{left:auto;right:6px}.module .param.screen:hover>.screen-name.right{opacity:0}.dock-focus{flex-direction:column;align-items:center;gap:4px;min-width:0;display:flex}.focus-pickers{gap:6px;max-width:100%;display:flex}.focus-pick{min-width:0;max-width:150px}.dock-knobs .focus-pick{max-width:100px}.focus-pick .pick-value{text-overflow:ellipsis;white-space:nowrap;letter-spacing:.05em;text-transform:uppercase;min-width:0;font:600 11px/1 Barlow Condensed,system-ui,sans-serif;overflow:hidden}.dial-caption{text-overflow:ellipsis;white-space:nowrap;letter-spacing:.04em;text-transform:uppercase;max-width:64px;color:var(--ink);font:600 10px/1.1 Barlow Condensed,system-ui,sans-serif;overflow:hidden}.deck-knob.off .dial-caption{color:var(--muted)}.view-switch{z-index:7;border:1px solid var(--line);background:var(--panel);box-shadow:0 2px 8px var(--shadow);border-radius:8px;gap:2px;padding:2px;display:flex;position:absolute;top:10px;left:50%;transform:translate(-50%)}.view-switch button{min-width:64px;height:26px;color:var(--muted);font:var(--cap);text-transform:uppercase;letter-spacing:.08em;background:0 0;border:0;border-radius:6px;padding:0 12px;font-size:12px}.view-switch button[aria-selected=true]{background:var(--ink);color:var(--panel)}.view-switch button:not([aria-selected=true]):hover{color:var(--ink)}.fm1-connect{z-index:7;border:1px solid var(--accent);background:var(--accent);height:32px;color:var(--accent-ink);box-shadow:0 2px 8px var(--shadow);font:var(--cap);text-transform:uppercase;letter-spacing:.08em;white-space:nowrap;border-radius:8px;align-items:center;gap:6px;padding:0 12px;font-size:12px;display:flex;position:absolute;top:10px;right:12px}.fm1-connect:hover{filter:brightness(1.06);border-color:var(--accent)}.fm1-connect .sl-dot{border:1px solid;border-radius:50%;width:7px;height:7px}.fm1-connect.connected{border-color:var(--line);background:var(--panel);color:var(--ink)}.fm1-connect.connected:hover{filter:none;border-color:var(--secondary)}.fm1-connect.on .sl-dot{background:var(--secondary);border-color:var(--secondary)}.fm1-connect.idle .sl-dot{border:2px solid var(--secondary)}.fm1-connect.over .sl-dot{background:var(--danger);border-color:var(--danger)}@media (max-width:700px){.fm1-connect{letter-spacing:.06em;gap:5px;height:30px;padding:0 8px;font-size:11px;right:8px}}#fm1-view{z-index:5;background:var(--bg);box-sizing:border-box;flex-direction:column;justify-content:center;align-items:center;gap:10px;padding:52px 16px 16px;display:flex;position:absolute;inset:0;overflow:auto}#fm1-view[hidden],.workspace.fm1-mode>:is(.wheels,.dock-wrap,.deck){display:none}.fm1-body{--ink:var(--ref-ink);--muted:var(--ref-stone);--line:var(--ref-sand);--panel:var(--ref-white);--accent:var(--ref-coral);--accent-ink:var(--ref-night);--secondary:var(--ref-deep-teal);--danger:var(--ref-rust);--gate:var(--ref-gold);--btn-yellow:var(--ref-gold);--k1:var(--ref-coral);--k2:var(--ref-gold);--k3:var(--ref-seafoam);--k4:var(--ref-sand);--key-white:var(--ref-ivory);--key-black:var(--ref-night);--key-edge:var(--ref-night);--key-held:var(--ref-gold);--key-held-ink:var(--ref-night);--f-body:var(--ref-coral);--f-edge:var(--ref-rust);--f-face:var(--ref-ivory);--f-tray:var(--ref-paper);--f-cap:#fff;--f-cap-ink:var(--ref-ink);--f-drop:color-mix(in srgb, var(--ref-night) 22%, transparent);--f-silk:var(--ref-ink);--f-dial:#fff;--f-dial-rim:var(--ref-sand);--f-glow:var(--ref-gold);aspect-ratio:1280/678;background:var(--f-body);width:min(100%,188.791dvh - 226.549px,1280px);box-shadow:0 6px 24px var(--shadow), inset 0 0 0 .25cqw var(--f-edge);color:var(--ink);border-radius:2.4cqw;flex:none;position:relative;container-type:inline-size}.fm1-body>*{box-sizing:border-box;position:absolute}.fm1-face{background:var(--f-face);border-radius:1.6cqw}.fm1-band{background:var(--ref-gold);border-radius:.3cqw}.fm1-logo-wrap{pointer-events:none;opacity:.45}.fm1-logo{width:100%;height:100%}.fm1-wordmark{pointer-events:none;justify-content:center;display:flex}.fm1-wordmark .brand-mark{width:auto;height:100%}.fm1-tray{background:var(--f-tray);box-shadow:inset 0 0 0 .12cqw var(--line);border-radius:1.2cqw}.fm1-keybed{background:var(--secondary);box-shadow:none;border-radius:2cqw}.fm1-transport{box-shadow:inset 0 0 0 .16cqw var(--secondary);border-radius:.8cqw}.fm1-bezel{background:var(--ref-night);box-shadow:0 0 0 .32cqw var(--ref-gold);border-radius:1.7cqw}.fm1-lcd{image-rendering:pixelated;background:var(--ref-night);display:block;position:absolute}.fm1-note{text-align:center;background:color-mix(in srgb, var(--ref-night) 88%, transparent);color:var(--ref-ivory);place-items:center;margin:0;padding:6%;font:500 1.2cqw/1.4 Barlow,system-ui,sans-serif;display:grid;position:absolute;inset:3.5%}.fm1-note[hidden]{display:none}.fm1-silk{color:var(--f-silk);text-transform:uppercase;letter-spacing:.1em;pointer-events:none;white-space:nowrap;justify-content:center;align-items:center;font:600 1.25cqw/1 Barlow Condensed,system-ui,sans-serif;display:flex}.fm1-dial{--turn:0deg;cursor:ns-resize;touch-action:none;outline-offset:.3cqw;background:radial-gradient(circle at 50% 50%, var(--f-dial) 0 70%, var(--f-dial-rim) 71% 100%);box-shadow:.15cqw .3cqw 0 var(--f-drop);border-radius:50%}.fm1-dial:is(.k1,.k2,.k3,.k4){--f-dial-rim:color-mix(in oklab, var(--knob) 70%, var(--ref-night));--f-tick:var(--accent-ink);background:radial-gradient(circle at 50% 50%, var(--knob) 0 70%, var(--f-dial-rim) 71% 100%)}.fm1-dial.k1{--knob:var(--k1)}.fm1-dial.k2{--knob:var(--k2)}.fm1-dial.k3{--knob:var(--k3)}.fm1-dial.k4{--knob:var(--k4)}.fm1-dial:after{content:"";background:var(--f-tick,var(--ink));transform-origin:50% 112%;width:.28cqw;height:34%;transform:rotate(var(--turn));border-radius:.14cqw;position:absolute;top:12%;left:calc(50% - .14cqw)}.fm1-dial:focus-visible{outline:2px solid var(--accent)}.fm1-btn{background:var(--f-cap);color:var(--f-cap-ink);box-shadow:.08cqw .24cqw 0 var(--f-drop), inset 0 0 0 .08cqw var(--line);text-transform:uppercase;letter-spacing:.04em;touch-action:none;border:0;border-radius:.7cqw;padding:0;font:600 1.15cqw/1 Barlow Condensed,system-ui,sans-serif}.fm1-btn:hover{color:var(--ink)}.fm1-btn.down,.fm1-btn.latched{box-shadow:inset 0 0 0 .08cqw var(--line);transform:translateY(.16cqw)}.fm1-btn.latched{outline:.16cqw solid var(--accent);outline-offset:.1cqw}.fm1-btn.dim{background:color-mix(in oklab, var(--f-glow) 22%, var(--f-cap));color:var(--ink)}.fm1-btn.lit{background:var(--accent);color:var(--accent-ink)}.fm1-btn.play.lit{background:var(--danger);color:var(--ref-ivory)}.fm1-btn.breath{color:var(--accent-ink);animation:1.6s ease-in-out infinite fm1-breath}.fm1-btn.play.breath{--breath:var(--ref-seafoam)}@keyframes fm1-breath{0%,to{background:color-mix(in oklab, var(--breath,var(--f-glow)) 35%, var(--f-cap))}50%{background:var(--breath,var(--f-glow))}}.fm1-key{background:var(--key-white);box-shadow:.08cqw .3cqw 0 var(--f-drop), inset 0 0 0 .08cqw var(--key-edge);touch-action:none;border:0;border-radius:99cqw;padding:0}.fm1-key.black{background:var(--key-black)}.fm1-key:after{content:"";background:color-mix(in oklab, var(--key-white) 70%, var(--key-black));border-radius:.2cqw;width:.4cqw;height:66%;position:absolute;top:17%;left:calc(50% - .2cqw)}.fm1-key.black:after{background:color-mix(in oklab, var(--key-black) 60%, var(--key-white))}.fm1-key.lit{background:var(--accent)}.fm1-key.mid{background:color-mix(in oklab, var(--accent) 50%, var(--key-white))}.fm1-key.black.mid{background:color-mix(in oklab, var(--accent) 50%, var(--key-black))}.fm1-key.dim{background:color-mix(in oklab, var(--f-glow) 30%, var(--key-white))}.fm1-key.black.dim{background:color-mix(in oklab, var(--f-glow) 40%, var(--key-black))}.fm1-key:is(.lit,.mid):after{background:var(--accent-ink)}.fm1-key.down{box-shadow:inset 0 0 0 .08cqw var(--key-edge);background:var(--key-held);transform:translateY(.24cqw)}.fm1-key.down:after{background:var(--key-held-ink)}.fm1-hint{text-align:center;color:var(--muted);margin:0;font:400 12px/1.4 Barlow,system-ui,sans-serif}.fm1-follow{text-align:center;letter-spacing:.04em;color:var(--secondary);margin:0;font:600 12px/1.4 Barlow Condensed,system-ui,sans-serif}.fm1-view .unreported{opacity:.35;filter:grayscale()}.statusline{background:var(--panel);border-top:1px solid var(--line);white-space:nowrap;grid-area:4/1/auto/-1;align-items:center;gap:12px;height:24px;padding:0 12px;font-size:12px;display:flex;overflow:hidden}.statusline .sl-tag{font:var(--cap);letter-spacing:.06em;text-transform:uppercase;color:var(--secondary);flex:none;font-size:11.5px}.statusline .sl-tag:empty{display:none}.statusline .sl-text{text-overflow:ellipsis;min-width:0;color:var(--ink);flex:1;overflow:hidden}.statusline .sl-text.idle{color:var(--muted)}.statusline .sl-status{text-overflow:ellipsis;min-width:0;color:var(--muted);flex:0 auto;overflow:hidden}.statusline .sl-status:empty{display:none}.statusline .sl-chip{height:20px;color:var(--accent);font:var(--cap);letter-spacing:.06em;text-transform:uppercase;background:0 0;border:1px solid #0000;border-radius:4px;flex:none;align-items:center;gap:6px;padding:0 6px;font-size:11.5px;display:flex}.statusline .sl-chip:hover{border-color:var(--line);color:var(--ink)}.statusline .sl-dot{border:1px solid var(--muted);border-radius:50%;width:7px;height:7px}.statusline .sl-chip.on .sl-dot{background:var(--secondary);border-color:var(--secondary)}.statusline .sl-chip.idle .sl-dot{border:2px solid var(--secondary)}.statusline .sl-chip.over .sl-dot{background:var(--danger);border-color:var(--danger)}@media (max-width:700px){.statusline .sl-chip-text{display:none}.statusline .sl-chip{height:24px;padding:0 8px}}.statusline:has(.budget.over) .sl-tag{color:var(--danger)}.statusline .budget{border-left:1px solid var(--line);padding-left:12px}.cable-glow{z-index:4;pointer-events:none}.cable-glow .glow{fill:none;stroke:var(--audio)}.cable-glow .glow.control{stroke:var(--control)}.cable-glow .glow.gate{stroke:var(--gate)}.cable-glow .glow.keys{stroke:var(--ink)}.cable-glow .halo{stroke-width:12px;opacity:.45;filter:blur(4px)}.cable-glow .core{stroke:var(--ink);stroke-width:1.5px;opacity:.55}.cable-glow .ring{stroke-width:1.5px;opacity:.85}.panel-btn.arp-free{border-style:dashed;border-color:var(--secondary);background:0 0}.panel-btn.arp-free .pb-label{color:var(--secondary)}.panel-btn.arp-free:hover{background:color-mix(in srgb, var(--secondary) 14%, transparent);border-style:solid}.arp-menu{background:var(--panel);width:280px;color:var(--ink);border:1px solid var(--muted);box-shadow:0 6px 20px var(--shadow);border-radius:8px;flex-direction:column;gap:2px;margin:0;padding:8px;display:flex;position:fixed;inset:auto}.arp-menu-head{font:var(--cap);letter-spacing:.1em;color:var(--muted);padding:2px 8px 4px;font-size:11px}.arp-menu button{color:var(--ink);text-align:left;background:0 0;border:0;border-radius:5px;flex-direction:column;align-items:flex-start;gap:1px;padding:5px 8px;font-size:13px;display:flex}.arp-menu button small{color:var(--muted);font-size:11px}.arp-menu button:not(:disabled):is(:hover,:focus-visible){background:color-mix(in srgb, var(--secondary) 16%, transparent);outline:none}.arp-menu button:disabled{color:var(--muted);opacity:.6;cursor:default}.fm1-body>.fm1-alert{z-index:20;border-radius:inherit;background:color-mix(in srgb, var(--ref-night) 62%, transparent);place-items:center;display:grid;inset:0}.fm1-alert[hidden]{display:none}.fm1-alert-card{--tone:var(--ref-gold);background:var(--ref-ink);width:min(400px,80%);color:var(--ref-ivory);border:1px solid var(--tone);box-shadow:0 8px 28px color-mix(in srgb, var(--ref-night) 60%, transparent);border-radius:10px;flex-direction:column;gap:8px;padding:14px 16px;font:500 14px/1.4 Barlow,system-ui,sans-serif;display:flex}.fm1-alert.error .fm1-alert-card{--tone:var(--ref-red-light)}.fm1-alert-head{justify-content:space-between;align-items:center;gap:8px;display:flex}.fm1-alert-head strong{letter-spacing:.04em;color:var(--tone);font:700 17px/1.2 Barlow Condensed,system-ui,sans-serif}.fm1-alert-card p{color:var(--ref-mist);margin:0}.fm1-alert-card button{border:1px solid var(--ref-slate);min-height:32px;color:var(--ref-ivory);letter-spacing:.06em;text-transform:uppercase;cursor:pointer;background:0 0;border-radius:6px;padding:0 12px;font:600 12px Barlow Condensed,system-ui,sans-serif}.fm1-alert-row{gap:8px;margin-top:4px;display:flex}.fm1-alert-row>button{flex:1}.fm1-alert-card .fm1-alert-go{background:var(--ref-seafoam);border-color:var(--ref-seafoam);color:var(--ref-ink)}.fm1-alert-card .fm1-alert-close{width:30px;color:var(--ref-mist);padding:0;font-size:18px}.fm1-chip{border:1px solid var(--gate);background:var(--panel);min-height:26px;color:var(--gate);letter-spacing:.04em;text-transform:uppercase;cursor:pointer;border-radius:13px;flex:none;align-items:center;gap:6px;padding:0 12px;font:600 12px Barlow Condensed,system-ui,sans-serif;display:flex}.fm1-chip:before{content:"⚠︎"}.fm1-chip.error{border-color:var(--danger);color:var(--danger)}.fm1-chip[hidden]{display:none}.roll{--roll-step:color-mix(in srgb, var(--ink) 7%, transparent);--roll-beat:color-mix(in srgb, var(--ink) 14%, transparent);--roll-bar:color-mix(in srgb, var(--ink) 30%, transparent);--roll-black:color-mix(in srgb, var(--ink) 6%, transparent);z-index:8;background:var(--panel);border-top:2px solid var(--line);height:45%;min-height:200px;box-shadow:0 -10px 24px var(--shadow);-webkit-user-select:none;user-select:none;outline:none;flex-direction:column;display:flex;position:absolute;bottom:0;left:0;right:0}.roll.armed{border-top-color:var(--secondary)}.roll-head{border-bottom:1px solid var(--line);height:38px;font:var(--cap);letter-spacing:.06em;text-transform:uppercase;color:var(--ink);white-space:nowrap;flex:none;align-items:center;gap:10px;padding:0 12px;font-size:12px;display:flex}.roll-grip{background:var(--line);cursor:ns-resize;border-radius:2px;flex:none;width:40px;height:4px;margin-right:4px}.roll-name{font-size:15px}.roll-plays{color:var(--muted);text-transform:none;letter-spacing:.02em;text-overflow:ellipsis;min-width:0;overflow:hidden}.roll-head button{height:26px;font:inherit;color:var(--muted);border:1px solid var(--line);cursor:pointer;background:0 0;border-radius:4px;padding:0 10px}.roll-head .roll-arm.on,.roll-head .roll-tool.on{color:var(--panel);background:var(--secondary);border-color:var(--secondary)}.roll-head .roll-rec.on{color:var(--accent-ink);background:var(--accent);border-color:var(--accent)}.roll-len{color:var(--muted)}.roll-help{border:1px solid var(--line);width:22px;height:22px;color:var(--muted);cursor:help;border-radius:50%;flex:none;place-items:center;display:grid}#tab-patch.roll-open .canvas{height:calc(100% - var(--roll-h,45%))}.roll-ruler-row{border-bottom:1px solid var(--line);flex:none;height:20px;display:flex}.roll-corner{border-right:1px solid var(--line);flex:none;width:56px}.roll.drums .roll-corner{width:120px}.roll-ruler{cursor:ew-resize;flex:1;position:relative;overflow:hidden}.roll-ruler span{position:absolute;top:0;bottom:0}.roll-bar-no,.roll-beat-no{border-left:1px solid var(--roll-bar);font:var(--cap);color:var(--ink);pointer-events:none;padding:3px 0 0 3px;font-size:10px}.roll-beat-no{border-left-color:var(--roll-beat);color:var(--muted);font-size:9px}.roll-len-fill{background:color-mix(in srgb, var(--secondary) 14%, transparent);pointer-events:none;left:0}.roll-len-mark{background:var(--secondary);pointer-events:none;width:3px;margin-left:-1px}.roll-marker{border-left:1px dashed var(--accent);pointer-events:none;opacity:.7;width:0;position:absolute;top:0;bottom:0}.roll.drawing .roll-grid{cursor:cell}.roll-info{color:var(--muted);text-transform:none;letter-spacing:.02em;text-overflow:ellipsis;margin-left:auto;overflow:hidden}.roll-head .roll-close{width:28px;padding:0;font-size:16px}.roll-body{flex:1;min-height:0;display:flex}.roll-keys{border-right:1px solid var(--line);cursor:pointer;flex:none;width:56px;position:relative;overflow:hidden}.roll-key{box-sizing:border-box;border-bottom:1px solid var(--key-edge);background:var(--key-white);height:12px;font:var(--cap);text-align:right;color:var(--key-name);padding-right:4px;font-size:9px;line-height:11px;display:block;position:absolute;left:0;right:0}.roll-key.black{background:var(--key-black);right:18px}.roll-key.held{background:var(--key-held);color:var(--key-held-ink)}.roll-key.hover:not(.drum):after{content:attr(data-name);z-index:3;background:var(--ink);color:var(--panel);font:var(--cap);pointer-events:none;white-space:nowrap;border-radius:3px;padding:0 4px;font-size:10px;line-height:13px;position:absolute;top:50%;right:2px;transform:translateY(-50%)}.roll-key.hover:not(.held){filter:brightness(.93)}.roll.listed .roll-key:not(.drum){line-height:var(--rh,12px);right:0}.roll.drums .roll-keys,.roll.drums .roll-vel-name{width:120px}.roll-key.drum{text-align:left;background:var(--panel);color:var(--ink);border-bottom-color:var(--line);align-items:center;gap:6px;padding:0 8px;display:flex}.roll-key.drum b{letter-spacing:.06em;flex:1;font-size:12px}.roll-key.drum span{color:var(--muted)}.roll-grid{cursor:cell;flex:1;position:relative;overflow:hidden}.roll-row{pointer-events:none;height:12px;position:absolute;left:0;right:0}.roll-row.black{background:var(--roll-black)}.roll-row.octave{border-bottom:1px solid var(--roll-beat);box-sizing:border-box}.roll-notes{pointer-events:none;position:absolute;inset:0}.roll-note{box-sizing:border-box;background:color-mix(in srgb, var(--secondary) calc(45% + var(--vel,1) * 55%), var(--panel));border:1px solid var(--secondary);border-radius:3px;height:10px;position:absolute}.roll-note.sel{background:var(--accent);border-color:var(--ink)}.roll-note.past{opacity:.4}.roll-past{background:color-mix(in srgb, var(--panel) 55%, transparent);pointer-events:none;position:absolute;top:0;bottom:0;right:0}.roll-playhead{background:color-mix(in srgb, var(--ink) 10%, transparent);border-left:2px solid var(--ink);box-sizing:border-box;pointer-events:none;position:absolute;top:0;bottom:0}.roll-band{border:1px dashed var(--ink);background:color-mix(in srgb, var(--secondary) 12%, transparent);pointer-events:none;position:absolute}.roll-vel{border-top:1px solid var(--line);flex:none;height:54px;display:flex}.roll-vel-name{border-right:1px solid var(--line);width:56px;font:var(--cap);letter-spacing:.06em;text-transform:uppercase;color:var(--muted);flex:none;justify-content:center;align-items:center;font-size:10px;display:flex}.roll-vel-lane{cursor:ns-resize;flex:1;margin:4px 0;position:relative}.roll-vbar{background:var(--secondary);border-radius:2px;width:4px;position:absolute;bottom:0}.roll-vbar.sel{background:var(--accent)}.steps-screen .steps-head .steps-roll.on{color:var(--panel);background:var(--secondary);border-color:var(--secondary)}.share-submit{color:var(--accent);font:inherit;cursor:pointer;background:0 0;border:0;padding:0;text-decoration:underline}.share-submit:disabled{color:var(--muted);cursor:default;text-decoration:none}
