:root{--bg:#131518;--bg-panel:#1a1d21;--bg-raised:#22262b;--bg-sunken:#0e1013;--copper:#c0894a;--copper-bright:#e0b072;--copper-deep:#8a5f31;--copper-dim:#c0894a38;--copper-glow:#e0b07259;--hairline:#2b3038;--hairline-strong:#3a414b;--text:#ccd3dc;--text-dim:#9aa4b3;--text-faint:#626c78;--pointer:#eef2f6;--led-1:#b46ad0;--led-2:#5c8ff0;--led-3:#35c8d8;--led-4:#58c06a;--led-5:#e0a83a;--led-6:#d9705f;--ok:#58c06a;--warn:#e0a83a;--err:#d05a52;--font-ui:ui-sans-serif, system-ui, "Segoe UI", Roboto, sans-serif;--font-num:ui-monospace, "Cascadia Mono", "SF Mono", Consolas, monospace;--radius:4px}*,:before,:after{box-sizing:border-box}html,body{background:var(--bg);color:var(--text);font-family:var(--font-ui);margin:0;padding:0;font-size:16px;line-height:1.5}h1,h2,h3{margin:0;font-weight:600}a{color:var(--copper-bright)}.panel-legend{letter-spacing:.1em;text-transform:uppercase;color:var(--text-dim);font-size:.76rem;font-weight:600}.panel-readout{font-family:var(--font-num);font-variant-numeric:tabular-nums;color:var(--copper-bright);font-size:.84rem}.connection-bar.svelte-1rdxkdt{--ctl-h:1.7rem;--ctl-pad:.6rem;--ctl-font:.78rem;background:var(--bg-panel);border-bottom:1px solid var(--hairline);flex-wrap:wrap;align-items:center;gap:.5rem 1.1rem;padding:.45rem 1rem;display:flex}.conn-section.svelte-1rdxkdt{border-left:1px solid var(--hairline);align-items:center;gap:.4rem;padding-left:1.1rem;display:flex}.app-shell.stacked .connection-bar.svelte-1rdxkdt{gap:.55rem .9rem;padding:.5rem .7rem}.app-shell.stacked .conn-section.svelte-1rdxkdt{border-left:none;flex-wrap:wrap;padding-left:0}.app-shell.stacked select.svelte-1rdxkdt{max-width:46vw}.conn-title.svelte-1rdxkdt{letter-spacing:.19em;text-transform:uppercase;color:var(--text);white-space:nowrap;font-size:.92rem;font-weight:600}.module-badge.svelte-1rdxkdt{min-height:var(--ctl-h);letter-spacing:.06em;text-transform:uppercase;padding:0 var(--ctl-pad);border:1px solid var(--copper-deep);color:var(--copper-bright);white-space:nowrap;cursor:help;background:#c0894a24;border-radius:999px;align-items:center;font-family:inherit;font-size:.7rem;font-weight:700;line-height:1;display:inline-flex}.module-badge.svelte-1rdxkdt:not(.detected){border-color:var(--hairline-strong);background:var(--bg-raised);color:var(--text-faint)}.module-badge.swap.svelte-1rdxkdt{cursor:pointer;gap:.3rem}.module-badge.swap.svelte-1rdxkdt:hover,.module-badge.swap.svelte-1rdxkdt:focus-visible{border-color:var(--copper-deep);color:var(--copper-bright);background:#c0894a24}.swap-glyph.svelte-1rdxkdt{opacity:.7;font-size:.85em}.conn-label.svelte-1rdxkdt{letter-spacing:.1em;text-transform:uppercase;color:var(--text-dim);white-space:nowrap;font-size:.72rem;font-weight:600}.badge.svelte-1rdxkdt{min-height:var(--ctl-h);padding:0 var(--ctl-pad);font-size:var(--ctl-font);background:var(--bg-raised);color:var(--text-dim);border:1px solid #0000;border-radius:999px;align-items:center;line-height:1;display:inline-flex}.badge[title].svelte-1rdxkdt{cursor:help}.badge.probing.svelte-1rdxkdt{color:var(--led-3);background:#35c8d81f;border-color:#35c8d84d}@media (prefers-reduced-motion:no-preference){.badge.probing.svelte-1rdxkdt{animation:1.4s ease-in-out infinite svelte-1rdxkdt-badge-pulse}}@keyframes svelte-1rdxkdt-badge-pulse{50%{opacity:.55}}.badge.ok.svelte-1rdxkdt{color:var(--ok);background:#58c06a24;border-color:#58c06a52}.badge.error.svelte-1rdxkdt{color:var(--err);background:#d05a5226;border-color:#d05a5257}.badge.warn.svelte-1rdxkdt{color:var(--warn);background:#e0a83a24;border-color:#e0a83a52}select.svelte-1rdxkdt{height:var(--ctl-h);font-family:inherit;font-size:var(--ctl-font);background:var(--bg-sunken);color:var(--text);border:1px solid var(--hairline-strong);border-radius:var(--radius);cursor:pointer;max-width:200px;padding:0 .35rem}select.svelte-1rdxkdt:hover{border-color:var(--copper-deep)}button.svelte-1rdxkdt{min-height:var(--ctl-h);font-family:inherit;font-size:var(--ctl-font);white-space:nowrap;cursor:pointer;border-radius:var(--radius);background:var(--bg-raised);color:var(--text);border:1px solid var(--hairline-strong);justify-content:center;align-items:center;padding:0 .7rem;line-height:1;display:inline-flex}button.svelte-1rdxkdt:hover{border-color:var(--copper-deep);background:#c0894a29}.btn-accent.svelte-1rdxkdt{border-color:var(--copper-deep);color:var(--copper-bright)}.btn-accent.svelte-1rdxkdt:hover{background:#c0894a38}button.svelte-1rdxkdt:disabled,button.svelte-1rdxkdt:disabled:hover{opacity:.55;background:var(--bg-raised);border-color:var(--hairline-strong);cursor:default}.btn-disconnect.svelte-1rdxkdt{border-color:var(--hairline);color:var(--text-faint);background:0 0;padding:0 .4rem}.btn-disconnect.svelte-1rdxkdt:hover{color:var(--err);background:#d05a5226;border-color:#d05a5273}button.svelte-1rdxkdt:focus-visible,select.svelte-1rdxkdt:focus-visible{outline:2px solid var(--copper);outline-offset:2px}.logo-img.svelte-1rdxkdt{width:auto;height:1.9rem;display:block}.keyboard-wrap.svelte-xvva30{flex-flow:wrap;justify-content:center;align-items:center;gap:.5rem 1.75rem;width:100%;margin:0 auto;display:flex}.kbd-toolbar.svelte-xvva30{flex-direction:column;flex:none;align-items:flex-start;gap:.5rem;display:flex}.keyboard-wrap.svelte-xvva30>.keyboard:where(.svelte-xvva30){flex:420px;max-width:760px}.vel-presets.svelte-xvva30{gap:2px;display:flex}.vel-btn.svelte-xvva30{border:1px solid var(--hairline-strong);background:var(--bg-sunken);width:22px;height:22px;color:var(--text-faint);cursor:pointer;border-radius:4px;justify-content:center;align-items:center;padding:0;font-size:.68rem;font-weight:700;display:flex}.vel-btn.svelte-xvva30:hover{background:var(--bg-raised);color:var(--text)}.vel-btn.on.svelte-xvva30{color:var(--copper-bright);border-color:var(--copper-deep);background:#c0894a29}.vel-ctrl.svelte-xvva30{align-items:center;gap:.4rem;display:flex}.vel-ctrl.svelte-xvva30 input[type=range]:where(.svelte-xvva30){width:90px;accent-color:var(--copper)}.lbl.svelte-xvva30{color:var(--text-faint);font-size:.7rem}.val.svelte-xvva30{min-width:2rem;color:var(--text);font-variant-numeric:tabular-nums;font-size:.8rem}.oct-ctrl.svelte-xvva30{align-items:center;gap:.4rem;display:flex}.oct-btn.svelte-xvva30{background:var(--bg-sunken);color:var(--text);border:1px solid var(--hairline-strong);cursor:pointer;border-radius:4px;padding:.15rem .45rem;font-size:.7rem}.oct-btn.svelte-xvva30:hover{background:var(--bg-raised)}.oct-lbl.svelte-xvva30{color:var(--copper-bright);text-align:center;font-variant-numeric:tabular-nums;min-width:2.5rem;font-size:.9rem;font-weight:700}.misc-ctrl.svelte-xvva30{gap:.3rem;display:flex}button.svelte-xvva30{cursor:pointer;background:var(--bg-sunken);color:var(--text);border:1px solid var(--hairline-strong);border-radius:4px;padding:.2rem .5rem;font-size:.75rem}button.svelte-xvva30:hover{background:#c0894a29}.panic-btn.svelte-xvva30{color:var(--err);border-color:#d05a5280}.panic-btn.svelte-xvva30:hover{background:#d05a5226}.keyboard.svelte-xvva30{-webkit-user-select:none;user-select:none;background:var(--bg-sunken);border:1px solid var(--hairline);border-radius:6px;height:116px;display:flex;position:relative;overflow:visible}.key.svelte-xvva30{cursor:pointer;box-sizing:border-box;border-radius:0 0 5px 5px;transition:background 40ms;position:relative}.key.white.svelte-xvva30{z-index:1;background:linear-gradient(175deg,#a8a49c 0%,#cfcabf 100%);border:1px solid #6d6a63;border-top:none;flex-direction:column;justify-content:flex-end;align-items:center;gap:1px;height:100%;padding-bottom:5px;display:flex}.key.white.svelte-xvva30:hover:not(.active){background:#e4d2b6}.key.white.active.svelte-xvva30{background:var(--copper-bright)}.key.black.svelte-xvva30{border:1px solid var(--hairline-strong);z-index:2;background:linear-gradient(175deg,#2a2a2a 0%,#111 100%);border-top:none;border-radius:0 0 4px 4px;flex-direction:column;justify-content:flex-end;align-items:center;height:58%;padding-bottom:3px;display:flex;position:absolute;top:0}.key.black.svelte-xvva30:hover:not(.active){background:linear-gradient(175deg,#484848 0%,#222 100%)}.key.black.active.svelte-xvva30{background:linear-gradient(175deg, var(--copper) 0%, var(--copper-deep) 100%)}.kbd-hint.svelte-xvva30{color:#888;pointer-events:none;background:#ffffff73;border-radius:2px;padding:1px 2px;font-size:.55rem;font-weight:700;line-height:1}.key.active.svelte-xvva30 .kbd-hint:where(.svelte-xvva30){color:#fff;background:#00000040}.kbd-hint.bk.svelte-xvva30{color:#999;background:#ffffff1f;font-size:.5rem}.key.black.active.svelte-xvva30 .kbd-hint:where(.svelte-xvva30){color:#ddd}.note-lbl.svelte-xvva30{color:#888;pointer-events:none;font-size:.5rem;line-height:1}.key.active.svelte-xvva30 .note-lbl:where(.svelte-xvva30){color:#ffffffb3}.preset-manager.svelte-1aku0ta{border:1px solid var(--hairline);background:0 0;border-radius:8px;flex-direction:column;gap:.5rem;min-width:300px;padding:.75rem;display:flex}.pm-header.svelte-1aku0ta{justify-content:space-between;align-items:center;margin-bottom:.25rem;display:flex}.pm-header-actions.svelte-1aku0ta{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:.35rem;display:flex}.pm-title.svelte-1aku0ta{text-transform:uppercase;color:var(--text-dim);letter-spacing:.06em;font-size:.75rem;font-weight:600}.import-error.svelte-1aku0ta{color:var(--err);background:#d05a5226;border:1px solid #d05a5273;border-radius:4px;padding:.25rem .5rem;font-size:.7rem}.sync-note.svelte-1aku0ta{color:var(--ok);background:#58c06a1f;border:1px solid #58c06a59;border-radius:4px;padding:.2rem .5rem;font-size:.65rem;line-height:1.4}.btn-file.svelte-1aku0ta{border-color:var(--copper-deep);color:var(--copper-bright)}.btn-file.svelte-1aku0ta:hover:not(:disabled){background:#c0894a29}.slot-list.svelte-1aku0ta{flex-direction:column;gap:.25rem;display:flex}.preset-slot.svelte-1aku0ta{background:var(--bg-sunken);border:1px solid var(--hairline);border-radius:5px;justify-content:space-between;align-items:center;gap:.5rem;padding:.3rem .5rem;display:flex}.live-slot.svelte-1aku0ta{border-color:var(--copper-deep);background:#c0894a14}.slot-left.svelte-1aku0ta{flex:1;align-items:center;gap:.4rem;min-width:0;display:flex;overflow:hidden}.slot-num.svelte-1aku0ta{color:var(--text-faint);text-align:center;min-width:1rem;font-size:.75rem}.slot-name.svelte-1aku0ta{color:var(--text);white-space:nowrap;text-overflow:ellipsis;cursor:default;font-size:.8rem;overflow:hidden}.slot-date.svelte-1aku0ta{color:var(--text-faint);white-space:nowrap;margin-left:auto;font-size:.65rem}.name-input.svelte-1aku0ta{color:var(--text);border:1px solid var(--copper);background:#c0894a24;border-radius:3px;flex:1;min-width:0;padding:.1rem .3rem;font-size:.8rem}.slot-actions.svelte-1aku0ta{flex-shrink:0;gap:.25rem;display:flex}.btn-sm.svelte-1aku0ta{border:1px solid var(--hairline-strong);background:var(--bg-sunken);color:var(--text-dim);cursor:pointer;border-radius:3px;padding:.15rem .4rem;font-size:.7rem}.btn-sm.svelte-1aku0ta:hover:not(:disabled){background:#c0894a29}.btn-sm.svelte-1aku0ta:disabled{opacity:.35;cursor:not-allowed}.btn-load.svelte-1aku0ta{color:var(--ok);border-color:#58c06a73}.btn-load.svelte-1aku0ta:hover:not(:disabled){background:#58c06a29}.btn-danger-sm.svelte-1aku0ta{color:var(--err);border-color:#d05a5273}.btn-danger-sm.svelte-1aku0ta:hover:not(:disabled){background:#d05a5226}.btn-danger.svelte-1aku0ta{color:var(--err);cursor:pointer;background:#d05a521a;border:1px solid #d05a5273;border-radius:4px;padding:.2rem .6rem;font-size:.7rem}.btn-danger.svelte-1aku0ta:hover:not(:disabled){background:#d05a5233}.btn-danger.svelte-1aku0ta:disabled{opacity:.35;cursor:not-allowed}.btn-confirm.svelte-1aku0ta{animation:.6s ease-in-out infinite alternate svelte-1aku0ta-pulse-confirm;border-color:var(--copper)!important;color:var(--copper-bright)!important;background:#c0894a33!important}@keyframes svelte-1aku0ta-pulse-confirm{0%{opacity:.8}to{opacity:1}}.midi-drawer.svelte-1bdsis5{background:var(--bg-panel);border-top:1px solid var(--hairline)}.midi-tab.svelte-1bdsis5{background:var(--bg-raised);border:none;border-bottom:1px solid var(--hairline);width:100%;color:var(--text-dim);text-transform:uppercase;letter-spacing:.08em;cursor:pointer;text-align:left;align-items:center;gap:.5rem;padding:.35rem 1rem;font-size:.65rem;font-weight:600;display:flex}.midi-tab.svelte-1bdsis5:hover{color:var(--text);background:#c0894a1a}.midi-conn-dot.svelte-1bdsis5{background:var(--hairline-strong);border-radius:50%;flex-shrink:0;width:.55rem;height:.55rem;transition:background .3s;display:inline-block}.midi-conn-dot.connected.svelte-1bdsis5{background:var(--ok);box-shadow:0 0 5px var(--ok)}.midi-meters.svelte-1bdsis5{text-transform:none;letter-spacing:0;font-variant-numeric:tabular-nums;align-items:baseline;gap:.75rem;margin-left:auto;font-weight:400;display:flex}.midi-count.svelte-1bdsis5{color:var(--text-faint)}.midi-byte.svelte-1bdsis5{font-family:monospace}.midi-byte.tx.svelte-1bdsis5{color:var(--led-4)}.midi-byte.rx.svelte-1bdsis5{color:var(--led-3)}.midi-byte.idle.svelte-1bdsis5{color:var(--err)}.midi-toolbar.svelte-1bdsis5{background:var(--bg-panel);border-bottom:1px solid var(--hairline);color:var(--text-dim);flex-wrap:wrap;align-items:center;gap:.5rem .75rem;padding:.3rem .75rem;font-size:.72rem;display:flex}.midi-toolbar.svelte-1bdsis5 label:where(.svelte-1bdsis5){cursor:pointer;align-items:center;gap:.25rem;display:flex}.midi-group.svelte-1bdsis5{align-items:center;gap:.6rem;display:flex}.midi-sep.svelte-1bdsis5{background:var(--hairline);align-self:stretch;width:1px}.midi-hide.svelte-1bdsis5{background:var(--bg-sunken);border:1px solid var(--hairline-strong);width:11rem;color:var(--text);border-radius:4px;padding:.15rem .4rem;font-family:monospace;font-size:.72rem}.midi-spacer.svelte-1bdsis5{flex:1}.midi-btn.svelte-1bdsis5{background:var(--bg-sunken);color:var(--text-dim);border:1px solid var(--hairline-strong);cursor:pointer;border-radius:4px;padding:.15rem .6rem;font-size:.72rem}.midi-btn.svelte-1bdsis5:hover{background:#c0894a24}.midi-btn.active.svelte-1bdsis5{border-color:var(--copper);color:var(--copper-bright);background:#c0894a33}.midi-body.svelte-1bdsis5{background:var(--bg-sunken);height:min(180px,28vh);padding:.4rem .75rem;font-family:monospace;font-size:.72rem;overflow-y:auto}.midi-line.svelte-1bdsis5{white-space:pre;color:var(--led-3);gap:.6rem;line-height:1.45;display:flex}.midi-line.out.svelte-1bdsis5{color:var(--led-4)}.midi-time.svelte-1bdsis5{color:var(--text-faint);font-variant-numeric:tabular-nums}.midi-dir.svelte-1bdsis5{opacity:.8}.midi-kind.svelte-1bdsis5{min-width:5.5rem}.midi-chan.svelte-1bdsis5{color:var(--text-faint)}.midi-detail.svelte-1bdsis5{color:var(--text);white-space:pre-wrap}.midi-hex.svelte-1bdsis5{color:var(--copper-deep)}.midi-port.svelte-1bdsis5{color:var(--text-faint);margin-left:auto;padding-left:1rem}.midi-empty.svelte-1bdsis5{color:var(--text-faint);font-style:italic}svg.svelte-y6cszz{display:block;overflow:visible}path.svelte-y6cszz{fill:none;stroke:currentColor;stroke-width:1.6px;stroke-linecap:round;stroke-linejoin:round}.knob.svelte-mejzux{width:var(--knob-w,88px);flex-direction:column;align-items:center;gap:1px;display:flex}.knob.sm.svelte-mejzux{--knob-w:66px}.knob.lg.svelte-mejzux{--knob-w:118px}.dial-box.svelte-mejzux{height:var(--dial-box,88px);justify-content:center;align-items:center;width:100%;display:flex}.dial.svelte-mejzux{aspect-ratio:1;cursor:ns-resize;touch-action:none;border-radius:50%;outline:none;width:100%}.dial.svelte-mejzux:focus-visible{box-shadow:0 0 0 2px var(--copper-glow)}.dial.svelte-mejzux svg:where(.svelte-mejzux){width:100%;height:100%;display:block;overflow:visible}.tick.svelte-mejzux{stroke:var(--copper-deep);stroke-width:1.4px;opacity:.5;stroke-linecap:round}.arc-track.svelte-mejzux{fill:none;stroke:var(--copper-dim);stroke-width:3px;stroke-linecap:round}.arc-value.svelte-mejzux{fill:none;stroke:var(--copper-bright);stroke-width:3px;stroke-linecap:round}.dragging.svelte-mejzux .arc-value:where(.svelte-mejzux){filter:drop-shadow(0 0 3px var(--copper-glow))}.cap.svelte-mejzux{fill:var(--bg-sunken)}.cap-edge.svelte-mejzux{fill:none;stroke:var(--hairline-strong);stroke-width:1px}.dial.svelte-mejzux:hover .cap-edge:where(.svelte-mejzux){stroke:var(--copper-deep)}.pointer.svelte-mejzux{stroke:var(--pointer);stroke-width:3px;stroke-linecap:round}.head.svelte-mejzux{flex-direction:column;justify-content:flex-end;min-height:33px;margin-bottom:3px;display:flex}.legend.svelte-mejzux{text-align:center;font-size:.78rem;line-height:1.15}.sub.svelte-mejzux{letter-spacing:.06em;text-transform:uppercase;color:var(--text-faint);text-align:center;font-size:.65rem;line-height:1.1}.readout.svelte-mejzux{margin-top:2px}.hint.svelte-mejzux{letter-spacing:.04em;color:var(--led-4);text-align:center;font-size:.66rem;line-height:1.1}.icons.svelte-mejzux{height:var(--icon-row,0px);justify-content:center;align-items:center;gap:3px;display:flex}.icon.svelte-mejzux{color:var(--copper-deep);opacity:.5;transition:color .12s,opacity .12s}.icon.on.svelte-mejzux{color:var(--copper-bright);opacity:1}.knob.disabled.svelte-mejzux{opacity:.32;filter:grayscale(.6)}.knob.disabled.svelte-mejzux .dial:where(.svelte-mejzux){cursor:not-allowed}.knob.disabled.svelte-mejzux .dial:where(.svelte-mejzux):hover .cap-edge:where(.svelte-mejzux){stroke:var(--hairline-strong)}.panel-select.svelte-vxs7lb{flex-direction:column;min-width:0;display:flex}.legend.svelte-vxs7lb{align-items:flex-end;min-height:33px;margin-bottom:2px;line-height:1.15;display:flex}.segmented.svelte-vxs7lb{border:1px solid var(--hairline-strong);border-radius:var(--radius);background:var(--bg-sunken);width:fit-content;max-width:100%;display:flex;overflow:hidden}.seg.svelte-vxs7lb{font:inherit;letter-spacing:.05em;text-transform:uppercase;white-space:nowrap;border:0;border-right:1px solid var(--hairline);color:var(--text-faint);cursor:pointer;background:0 0;flex:auto;padding:6px 13px;font-size:.76rem;transition:color 90ms,background 90ms}.seg.svelte-vxs7lb:last-child{border-right:0}.seg.glyphed.svelte-vxs7lb{align-items:center;gap:3px;padding:5px 9px;font-size:.68rem;display:flex}.seg.svelte-vxs7lb:hover{color:var(--text)}.seg.active.svelte-vxs7lb{color:var(--copper-bright);background:#c0894a29}.rungs.svelte-vxs7lb{border:1px solid var(--hairline);background:var(--bg-sunken);border-radius:9px;flex-direction:column;gap:3px;width:fit-content;padding:7px 9px;display:flex}.rung.svelte-vxs7lb{cursor:pointer;font:inherit;text-align:left;background:0 0;border:0;align-items:center;gap:9px;padding:2px 3px;display:flex}.led.svelte-vxs7lb{background:var(--bg-raised);width:10px;height:10px;box-shadow:inset 0 0 0 1px var(--hairline-strong);border-radius:50%;flex:none;transition:background .11s,box-shadow .11s}.rung.active.svelte-vxs7lb .led:where(.svelte-vxs7lb){background:var(--led);box-shadow:0 0 7px var(--led), inset 0 0 0 1px #ffffff59}.rung-label.svelte-vxs7lb{letter-spacing:.06em;text-transform:uppercase;white-space:nowrap;color:var(--text-faint);font-size:.76rem;transition:color .11s}.rung.svelte-vxs7lb:hover .rung-label:where(.svelte-vxs7lb){color:var(--text-dim)}.rung.active.svelte-vxs7lb .rung-label:where(.svelte-vxs7lb){color:var(--text)}.dropdown.svelte-vxs7lb{font:inherit;border-radius:var(--radius);border:1px solid var(--hairline-strong);background:var(--bg-sunken);color:var(--text);cursor:pointer;max-width:100%;padding:6px 8px;font-size:.78rem}.dropdown.svelte-vxs7lb:focus-visible{border-color:var(--copper);box-shadow:0 0 0 2px var(--copper-glow);outline:none}.section.svelte-1bpa0rm{grid-column:span var(--span);border:1px solid var(--copper-dim);border-radius:8px;flex-direction:column;min-width:0;padding:18px 16px 14px;display:flex;position:relative}.section.stretch.svelte-1bpa0rm{align-self:stretch}.title.svelte-1bpa0rm{background:var(--bg);letter-spacing:.16em;text-transform:uppercase;color:var(--copper);white-space:nowrap;padding:0 7px;font-size:.7rem;font-weight:600;position:absolute;top:0;left:12px;transform:translateY(-50%)}.body.svelte-1bpa0rm{flex-wrap:wrap;place-content:center;align-items:flex-start;gap:4px 16px;min-width:0;height:100%;display:flex}.chain.svelte-1goafo7{background:var(--bg-sunken);border:1px solid var(--hairline);border-radius:6px;flex-wrap:wrap;justify-content:center;align-items:center;gap:.3rem;margin-bottom:.5rem;padding:.75rem .3rem;display:flex}.block.svelte-1goafo7{color:var(--block);border:1px solid var(--block);letter-spacing:.07em;text-transform:uppercase;background:color-mix(in srgb, var(--block) 12%, transparent);border-radius:4px;padding:.2rem .5rem;font-size:.63rem;font-weight:600;transition:color .2s,border-color .2s}.arrow.svelte-1goafo7{color:var(--copper-deep);flex-shrink:0;font-size:.75rem}.env-graph.svelte-1xnz720{--grid:#c0894a1a;--axis:var(--hairline);--sustain-ref:#9aa4b31f;--gate:var(--hairline-strong);--gate-dim:var(--hairline);--curve:var(--copper-bright);--curve-fill:#e0b07217;background:var(--bg-sunken);border:1px solid var(--hairline);border-radius:6px;padding:.3rem .5rem 0}svg.svelte-1xnz720{width:100%;height:auto;display:block;overflow:visible}.seg-label.svelte-1xnz720{fill:var(--text-faint);text-anchor:middle;letter-spacing:.06em;text-transform:uppercase;font-family:monospace;font-size:7.5px}.mode-label.svelte-1xnz720{fill:var(--copper-deep);letter-spacing:.08em;text-transform:uppercase;font-family:monospace;font-size:7px}.tick-label.svelte-1xnz720{fill:var(--text-faint);text-anchor:middle;font-family:monospace;font-size:6px}.total-label.svelte-1xnz720{fill:var(--text-dim);text-anchor:end;font-family:monospace;font-size:7px}.filter-response.svelte-m3ebu7{--grid:#c0894a1a;--axis:var(--hairline-strong);--cutoff:var(--hairline-strong);--curve:var(--copper-bright);--curve-fill:#e0b07217;background:var(--bg-sunken);border:1px solid var(--hairline);border-radius:6px;padding:.3rem .5rem 0}.filter-response.bypassed.svelte-m3ebu7{--curve:var(--text-faint);--curve-fill:transparent}svg.svelte-m3ebu7{width:100%;height:auto;display:block;overflow:visible}.cutoff-dot.svelte-m3ebu7{fill:var(--copper-bright);stroke:var(--bg-sunken);stroke-width:1px}.mode-label.svelte-m3ebu7{fill:var(--copper-deep);letter-spacing:.08em;text-transform:uppercase;font-family:monospace;font-size:7px}.note-label.svelte-m3ebu7{fill:var(--led-5);letter-spacing:.04em;text-transform:uppercase;font-family:monospace;font-size:6px}.tick-label.svelte-m3ebu7{fill:var(--text-faint);text-anchor:middle;font-family:monospace;font-size:6px}.db-label.svelte-m3ebu7{fill:var(--text-faint);font-family:monospace;font-size:6px}.total-label.svelte-m3ebu7{fill:var(--text-dim);text-anchor:end;font-family:monospace;font-size:7px}.scale-keys.svelte-1ib2n5r{flex-direction:column;align-items:center;gap:4px;display:flex}.keys.svelte-1ib2n5r{border:1px solid var(--hairline);background:var(--bg-sunken);border-radius:5px;align-items:flex-start;gap:2px;padding:5px 6px;display:flex}.key.svelte-1ib2n5r{background:var(--bg-raised);width:9px;height:26px;box-shadow:inset 0 0 0 1px var(--hairline-strong);border-radius:0 0 2px 2px;transition:background .12s,box-shadow .12s}.key.black.svelte-1ib2n5r{background:var(--bg-sunken);width:7px;height:16px}.key.on.svelte-1ib2n5r{background:var(--copper);box-shadow:0 0 5px var(--copper-glow), inset 0 0 0 1px #ffffff40}.key.black.on.svelte-1ib2n5r{background:var(--copper-deep)}.bypassed.svelte-1ib2n5r .key.on:where(.svelte-1ib2n5r){background:var(--hairline-strong);box-shadow:inset 0 0 0 1px var(--hairline-strong)}.caption.svelte-1ib2n5r{letter-spacing:.06em;text-transform:uppercase;color:var(--text-faint);font-size:.62rem}.count.svelte-1ib2n5r{color:var(--copper-deep)}.panel.svelte-1wevaiz{background-image:radial-gradient(120% 80% at 50% -10%,#c0894a0d,#0000 60%),repeating-linear-gradient(104deg,#0000 0 13px,#c0894a07 13px 14px);padding:26px 20px 20px;position:relative}.frame.svelte-1wevaiz{overflow:auto hidden}.stage-box.svelte-1wevaiz{margin:0 auto;position:relative}.stage.svelte-1wevaiz{transform-origin:0 0;position:absolute;top:0;left:0}.frame.stacked.svelte-1wevaiz{overflow:hidden visible}.frame.stacked.svelte-1wevaiz .stage:where(.svelte-1wevaiz){position:static}.frame.stacked.svelte-1wevaiz .grid:where(.svelte-1wevaiz){grid-template-columns:minmax(0,1fr);gap:18px 0;padding-inline:4px}.frame.stacked.svelte-1wevaiz .section{grid-column:1/-1}.grid.svelte-1wevaiz{grid-template-columns:repeat(12,minmax(0,1fr));align-items:start;gap:24px 18px;padding:5px;display:grid}.break.svelte-1wevaiz{flex-basis:100%;height:0;margin:0}.visual.svelte-1wevaiz{flex-basis:100%;min-width:0;max-width:450px;margin-bottom:2px}.visual.envelope.svelte-1wevaiz{flex-basis:auto;width:300px;max-width:none}.visual.filter.svelte-1wevaiz{flex-basis:auto;width:290px;max-width:none;margin:36px 0 0}.visual.scale.svelte-1wevaiz{justify-content:center;max-width:none;display:flex}.stack.svelte-1wevaiz{flex-direction:column;align-items:center;gap:10px;min-width:0;display:flex}.stack.svelte-1wevaiz .visual:where(.svelte-1wevaiz){flex-basis:auto;width:auto;max-width:none;margin:0}.dock-panel.svelte-oivq76{background:var(--bg-panel);border-radius:8px;flex-direction:column;min-height:0;margin-left:8px;display:flex}.bar.svelte-oivq76{border-bottom:1px solid var(--hairline);background:var(--bg-raised);border-radius:7px 7px 0 0;align-items:center;gap:8px;padding:6px 8px 6px 12px;display:flex}.title.svelte-oivq76{letter-spacing:.14em;text-transform:uppercase;color:var(--copper);white-space:nowrap;flex:1;font-size:.7rem;font-weight:600}.close.svelte-oivq76{font:inherit;border-radius:var(--radius);color:var(--text-faint);cursor:pointer;background:0 0;border:1px solid #0000;padding:3px 7px;font-size:.75rem;line-height:1}.close.svelte-oivq76:hover{color:var(--err);background:#d05a521f;border-color:#d05a5273}.body.svelte-oivq76{min-height:0;padding:12px 14px;overflow:auto}.pwa-bar.svelte-o2m37y{z-index:50;background:var(--bg-raised);border:1px solid var(--hairline-strong);max-width:min(46rem,100vw - 2rem);color:var(--text);border-radius:.5rem;align-items:center;gap:.6rem;padding:.55rem .85rem;font-size:.82rem;display:flex;position:fixed;bottom:1rem;left:50%;transform:translate(-50%);box-shadow:0 .5rem 1.5rem #00000073}.pwa-notice.svelte-o2m37y{flex-wrap:wrap;line-height:1.45}.pwa-notice.svelte-o2m37y strong:where(.svelte-o2m37y){color:var(--copper)}.pwa-tip.svelte-o2m37y{animation:.22s ease-out svelte-o2m37y-tip-in}@keyframes svelte-o2m37y-tip-in{0%{opacity:0;transform:translate(-50%,.75rem)}to{opacity:1;transform:translate(-50%)}}@media (prefers-reduced-motion:reduce){.pwa-tip.svelte-o2m37y{animation:none}}.pwa-tip.svelte-o2m37y strong:where(.svelte-o2m37y){color:var(--copper);font-weight:600}.tip-text.svelte-o2m37y{line-height:1.4}.tip-never.svelte-o2m37y{color:var(--text-faint);white-space:nowrap;cursor:pointer;flex:none;align-items:center;gap:.35rem;font-size:.76rem;display:flex}.tip-never.svelte-o2m37y input:where(.svelte-o2m37y){accent-color:var(--copper);cursor:pointer;margin:0}.tip-never.svelte-o2m37y:hover{color:var(--text)}.pwa-btn-close.svelte-o2m37y{color:var(--text-faint);background:0 0;border-color:#0000;padding:.15rem .45rem;font-size:1rem;line-height:1}.pwa-btn-close.svelte-o2m37y:hover{background:var(--bg-sunken);color:var(--text)}.pwa-btn.svelte-o2m37y{background:var(--bg-panel);border:1px solid var(--hairline-strong);color:var(--text);font:inherit;cursor:pointer;border-radius:.3rem;flex:none;padding:.3rem .7rem;text-decoration:none}.pwa-btn.svelte-o2m37y:hover{background:var(--bg-sunken)}.pwa-btn-accent.svelte-o2m37y{background:#c0894a29;border-color:#c0894a73}.pwa-btn-accent.svelte-o2m37y:hover{background:#c0894a42}.pwa-btn.svelte-o2m37y:focus-visible,.tip-never.svelte-o2m37y input:where(.svelte-o2m37y):focus-visible{outline:2px solid var(--copper);outline-offset:2px}@media (width<=30rem){.pwa-bar.svelte-o2m37y{flex-wrap:wrap}}.app-shell.svelte-1n46o8q{background:var(--bg);min-height:100vh;color:var(--text);font-family:var(--font-ui);flex-direction:column;padding-bottom:3.6rem;display:flex}.panel-bar.svelte-1n46o8q{border-bottom:1px solid var(--hairline);align-items:center;gap:10px;padding:6px 20px;display:flex}.bar-module.svelte-1n46o8q{letter-spacing:.14em;text-transform:uppercase;color:var(--copper);font-size:.7rem;font-weight:600}.bar-spacer.svelte-1n46o8q{flex:1}.bar-group.svelte-1n46o8q{gap:4px;display:flex}.bar-btn.svelte-1n46o8q{font:inherit;letter-spacing:.09em;text-transform:uppercase;border:1px solid var(--hairline-strong);border-radius:var(--radius);color:var(--text-faint);cursor:pointer;background:0 0;padding:3px 11px;font-size:.66rem;transition:color 90ms,border-color 90ms,background 90ms}.bar-btn.svelte-1n46o8q:hover{color:var(--text)}.bar-btn.on.svelte-1n46o8q{color:var(--copper-bright);border-color:var(--copper-deep);background:#c0894a1f}.panel-row.svelte-1n46o8q{align-items:stretch;min-width:0;display:flex}.panel-col.svelte-1n46o8q{flex:1;min-width:0}.dock-rail.svelte-1n46o8q{border-left:1px solid var(--hairline);flex-direction:column;flex:none;gap:12px;width:clamp(300px,24vw,400px);min-width:0;padding:0 12px 12px 0;display:flex}.app-shell.stacked.svelte-1n46o8q .panel-row:where(.svelte-1n46o8q){display:block}.app-shell.stacked.svelte-1n46o8q .dock-rail:where(.svelte-1n46o8q){left:0;right:0;bottom:var(--dock-h,0px);z-index:40;background:var(--bg);border-left:none;border-top:1px solid var(--hairline);width:auto;max-height:60vh;padding:10px 12px 14px;position:fixed;overflow-y:auto;box-shadow:0 -14px 30px #00000073}.app-shell.stacked.svelte-1n46o8q .settings-body:where(.svelte-1n46o8q){min-width:0}.settings-body.svelte-1n46o8q{flex-direction:column;gap:8px;min-width:230px;display:flex}.settings-group.svelte-1n46o8q{letter-spacing:.14em;text-transform:uppercase;color:var(--text-faint);margin:0;font-size:.6rem;font-weight:600}.dock-spacer.svelte-1n46o8q{flex:none;width:100%;transition:height .15s}.module-warning.svelte-1n46o8q{border-bottom:1px solid var(--copper-deep);color:var(--copper-bright);background:#e0a83a1f;padding:.5rem 1rem;font-size:.8rem}.module-warning.svelte-1n46o8q code:where(.svelte-1n46o8q){color:var(--warn);font-family:monospace}.drawer-dock.svelte-1n46o8q{z-index:100;flex-direction:column;display:flex;position:fixed;bottom:0;left:0;right:0}.midi-channel-row.svelte-1n46o8q{align-items:center;gap:.75rem;display:flex}.midi-channel-label.svelte-1n46o8q{color:var(--text-dim);white-space:nowrap;font-size:.75rem}.midi-channel-select.svelte-1n46o8q{background:var(--bg-raised);color:var(--text);border:1px solid var(--hairline-strong);cursor:pointer;border-radius:4px;padding:.2rem .4rem;font-size:.8rem}.midi-channel-select.svelte-1n46o8q:disabled{opacity:.4;cursor:not-allowed}.footer-label.svelte-1n46o8q{text-transform:uppercase;color:var(--text-dim);min-width:3rem;padding:.5rem;font-size:.75rem;font-weight:600}.kbd-drawer.svelte-1n46o8q{background:var(--bg-panel);border-top:1px solid var(--hairline)}.kbd-body.svelte-1n46o8q{padding:.6rem 1rem .75rem}.kbd-drawer.svelte-1n46o8q .kbd-tab:where(.svelte-1n46o8q){padding-left:2.05rem}.console-drawer.svelte-1n46o8q{background:var(--bg-panel);border-top:1px solid var(--hairline)}.kbd-tab.svelte-1n46o8q,.console-tab.svelte-1n46o8q{background:var(--bg-raised);border:none;border-bottom:1px solid var(--hairline);width:100%;color:var(--text-dim);text-transform:uppercase;letter-spacing:.08em;cursor:pointer;text-align:left;align-items:center;gap:.5rem;padding:.35rem 1rem;font-size:.65rem;font-weight:600;display:flex}.console-conn-dot.svelte-1n46o8q{background:var(--hairline-strong);border-radius:50%;flex-shrink:0;width:.55rem;height:.55rem;transition:background .3s;display:inline-block}.console-conn-dot.connected.svelte-1n46o8q{background:var(--ok);box-shadow:0 0 5px var(--ok)}.kbd-tab.svelte-1n46o8q:hover,.console-tab.svelte-1n46o8q:hover{color:var(--text-dim);background:#c0894a1a}.console-body.svelte-1n46o8q{height:min(180px,28vh);color:var(--led-4);background:var(--bg-sunken);padding:.4rem .75rem;font-family:monospace;font-size:.75rem;overflow-y:auto}.console-line.svelte-1n46o8q{white-space:pre-wrap;word-break:break-all;line-height:1.4}.console-empty.svelte-1n46o8q{color:var(--text-faint);font-style:italic}.console-input-row.svelte-1n46o8q{background:var(--bg-panel);border-top:1px solid var(--hairline);gap:.4rem;padding:.4rem .75rem;display:flex}.console-input.svelte-1n46o8q{background:var(--bg-sunken);border:1px solid var(--hairline-strong);color:var(--text);border-radius:4px;flex:1;padding:.25rem .5rem;font-family:monospace;font-size:.8rem}.console-input.svelte-1n46o8q:disabled{opacity:.4}.console-send.svelte-1n46o8q{background:var(--bg-sunken);color:var(--text-dim);border:1px solid var(--hairline-strong);cursor:pointer;border-radius:4px;padding:.25rem .75rem;font-size:.8rem}.console-send.svelte-1n46o8q:disabled{opacity:.4;cursor:default}.console-send.svelte-1n46o8q:not(:disabled):hover{background:#c0894a24}
