:root{--tile: #edeae3;--on-tile: #0a0a0a;--tint: var(--tile);--accent: var(--tile);--bg: color-mix(in srgb, var(--tint) 6%, #0a0a0a);--panel: color-mix(in srgb, var(--tint) 8%, #111110);--card: color-mix(in srgb, var(--tint) 10%, #171716);--card-hover: color-mix(in srgb, var(--tint) 13%, #1c1c1a);--raised: color-mix(in srgb, var(--tint) 12%, #1c1c1a);--well: color-mix(in srgb, var(--tint) 5%, #0d0d0c);--stage: radial-gradient(ellipse at 50% 45%, color-mix(in srgb, var(--tint) 10%, transparent), transparent 75%);--text: #f3f1ec;--knob-label: #dcd9d2;--muted: #b4b1ab;--faint: #a09d96;--line: rgb(255 255 255 / .07);--line-strong: rgb(255 255 255 / .12);--hover: rgb(255 255 255 / .05);--knob-face: var(--raised);--knob-track: rgb(255 255 255 / .1);--sans: -apple-system, BlinkMacSystemFont, "Hiragino Kaku Gothic ProN", "Yu Gothic", sans-serif;--display: "Avenir Next", -apple-system, sans-serif;--mono: ui-monospace, "SF Mono", SFMono-Regular, Menlo, Consolas, monospace;--radius-s: 4px;--radius-m: 5px;--radius-l: 7px;--ease: cubic-bezier(.2, .8, .2, 1);color-scheme:dark;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition:none!important;animation:none!important}}.audio-knob{--knob-size: 52px;display:grid;grid-template-columns:var(--knob-size) minmax(0,1fr);align-items:center;gap:12px;min-width:0;position:relative}.audio-knob-dial{width:var(--knob-size);height:var(--knob-size);position:relative;border-radius:50%;user-select:none;-webkit-user-select:none;touch-action:none}.audio-knob-face{position:absolute;inset:3px;border-radius:50%;background:conic-gradient(from 225deg,var(--accent, #b8dce9) var(--knob-angle),var(--knob-track, #d4eee41c) 0deg,var(--knob-track, #d4eee41c) 270deg,transparent 270deg);pointer-events:none}.audio-knob-face:before{content:"";position:absolute;inset:3px;border-radius:50%;background:var(--knob-face, #252e2a);box-shadow:inset 0 1px 4px #0008,0 2px 4px #0003}.audio-knob-face>span{position:absolute;inset:8px;transform:rotate(var(--knob-rotation))}.audio-knob-face>span:before{content:"";display:block;width:2px;height:8px;border-radius:1px;margin:0 auto;background:var(--accent, #b8dce9)}.audio-knob .audio-knob-dial input[type=range]{position:absolute;inset:0;width:100%;height:100%;padding:0;margin:0;opacity:0;cursor:ns-resize;touch-action:none}.audio-knob-dial:has(input:focus-visible){outline:2px solid var(--accent, #b8dce9);outline-offset:2px}.audio-knob-dial:hover .audio-knob-face:before{box-shadow:inset 0 1px 4px #0008,0 0 0 1px #ffffff1c}.audio-knob-details{min-width:0}.audio-knob-details>label{display:block;color:var(--knob-label, #c4cec7);font-size:11px;line-height:1.5;overflow-wrap:anywhere}.audio-knob-value{display:flex;align-items:center;gap:3px;color:var(--muted, #a6aaa7);font:10px var(--mono, monospace)}.audio-knob .audio-knob-value .number-input{width:54px;padding-left:0;text-align:left}.audio-knob-hint{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.audio-knob-compact{--knob-size: 44px;gap:9px}:root{--rec: #e0574a;--board: #ebe7dc;--board-2: #e2ddd0;--board-ink: #2b2a26;--board-soft: #6d6a61;--board-control: #8a5a3c;--board-focus: #b07a2a;--pin: #f1efe8;--pin-green: #3f9b5f;--pin-red: #d24c3c;--pin-invert: #2b2a27;--pin-gold: #c99a2e;--board-send: #3f6fa8;--signal: #f0a64a;--mod: #8fd0f0;--pin-glow: #f7c84c;--led-off: rgb(255 255 255 / .14);--key-white: var(--text);--key-white-shade: #e2ddcf;--key-black: #2b2b2e;--key-black-shade: #141416;--key-label: #6f6b60;font:12px/1.5 var(--sans);color:var(--text);background:var(--bg)}*{box-sizing:border-box}body{margin:0;min-width:320px;background:var(--stage),var(--bg)}button,input,select{font:inherit;color:inherit}button{cursor:pointer;transition:background .15s,border-color .15s,color .15s}button:disabled{cursor:default;opacity:.45}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}h1,h2,p{margin:0}kbd{font:10px var(--mono);padding:0 4px;border:1px solid var(--line-strong);border-radius:var(--radius-s)}.icon{display:inline-grid;place-items:center;width:30px;height:30px;padding:0;border:1px solid var(--line-strong);border-radius:var(--radius-s);background:transparent;color:var(--muted)}.icon:hover:not(:disabled){color:var(--text);background:var(--hover)}.text-button{border:0;background:none;color:var(--muted);padding:6px 8px;border-radius:var(--radius-s);font-size:12px}.text-button:hover{color:var(--text);background:var(--hover)}.field-label{font:10px var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--faint)}.hint{color:var(--faint);font-size:11px}.toggle{display:inline-flex;align-items:center;gap:7px;padding:5px 10px;border:1px solid var(--line-strong);border-radius:var(--radius-m);background:transparent;color:var(--muted);font-size:11px;white-space:nowrap}.toggle i{width:7px;height:7px;border-radius:50%;background:var(--led-off);transition:background .15s,box-shadow .15s}.toggle[aria-pressed=true]{color:var(--text);border-color:color-mix(in srgb,var(--accent) 45%,transparent)}.toggle[aria-pressed=true] i{background:var(--accent);box-shadow:0 0 8px var(--accent)}.segmented{display:inline-flex;padding:2px;border:1px solid var(--line-strong);border-radius:var(--radius-m);background:var(--well)}.segmented button{border:0;background:transparent;color:var(--muted);padding:4px 10px;border-radius:var(--radius-s);font-size:11px;display:inline-flex;align-items:center;gap:5px;white-space:nowrap}.segmented button[aria-checked=true]{background:var(--text);color:var(--bg)}.segmented .rec-dot{color:var(--rec);fill:var(--rec)}.topbar{display:flex;align-items:center;gap:18px;padding:10px 20px;border-bottom:1px solid var(--line-strong);background:color-mix(in srgb,var(--bg) 80%,transparent);backdrop-filter:blur(10px);flex-wrap:wrap}.wordmark{font:500 21px/1 var(--display);letter-spacing:-.5px;white-space:nowrap}.wordmark span,.start-title span{color:var(--accent)}.presets{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.preset-select select{min-width:210px;height:30px;padding:0 10px;border:1px solid var(--line-strong);border-radius:var(--radius-s);background:var(--well)}.preset-select select :is(option,optgroup){color:var(--text);background-color:var(--raised)}.edited{font:10px var(--mono);color:var(--accent);letter-spacing:.08em;text-transform:uppercase}.save-form{display:flex;gap:4px;align-items:center}.save-form input{height:30px;width:180px;padding:0 9px;border:1px solid var(--accent);border-radius:var(--radius-s);background:var(--well)}.top-right{margin-left:auto;display:flex;align-items:center;gap:12px}.midi-status{font:10px var(--mono);color:var(--faint);max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.midi-status.ready{color:var(--muted)}.record{display:inline-flex;align-items:center;gap:7px;height:30px;padding:0 12px;border-radius:var(--radius-m);border:1px solid var(--line-strong);background:transparent;font-size:12px;font-variant-numeric:tabular-nums}.record svg{color:var(--rec);fill:var(--rec)}.record.on{background:var(--rec);border-color:var(--rec);color:#fff}.record.on svg{color:#fff;fill:#fff}.scope{width:190px}.scope .effect-scope{margin:0;padding:0;border:0}.scope .effect-section-label{display:flex;justify-content:space-between;font:9px var(--mono);color:var(--faint);letter-spacing:.08em;text-transform:uppercase}.scope canvas{display:block;width:100%;height:26px;margin:3px 0}.scope .effect-meter{height:3px;background:var(--hover);border-radius:2px;overflow:hidden}.scope .effect-meter i{display:block;height:100%;background:var(--accent);transition:width 70ms linear}.scope .effect-meter-labels{display:none}.notice{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:10px 20px 0;padding:9px 12px;border:1px solid color-mix(in srgb,var(--rec) 33%,transparent);background:color-mix(in srgb,var(--rec) 8%,transparent);border-radius:var(--radius-s);font-size:12px}.tabs{display:none}.deck{display:grid;grid-template-columns:minmax(600px,680px) minmax(0,1fr);gap:14px;padding:14px 20px 0;align-items:start}.side{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;align-items:start}.side>div:empty{display:none}.panel{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius-l)}.panel.operators,.panel.modules{margin:14px 20px 0}.module-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;padding:12px;align-items:start}.param-select select{height:26px;padding:0 6px;border:1px solid var(--line-strong);border-radius:var(--radius-s);background:var(--well);font-size:11px;max-width:100%}.param-select select :is(option,optgroup){color:var(--text);background-color:var(--raised)}.module{background:var(--card);border:1px solid var(--line);border-radius:var(--radius-m);padding:11px 12px 12px;min-width:0}.module header,.stick-module header{display:flex;align-items:center;gap:8px}.module header i,.stick-module header i,.routing header i{width:9px;height:9px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 18%,transparent)}.module h2,.stick-module h2,.routing h2,.rack-head h2{font:600 10px var(--mono);letter-spacing:.12em;text-transform:uppercase}.knobs{display:grid;grid-template-columns:repeat(auto-fill,minmax(54px,1fr));gap:14px 4px;margin-top:12px}.module .audio-knob,.stick-module .audio-knob{grid-template-columns:1fr;justify-items:center;text-align:center;gap:5px;--knob-size: 42px}.module .audio-knob-details,.stick-module .audio-knob-details{display:flex;flex-direction:column;align-items:center;min-width:0;max-width:100%}.module .audio-knob-details>label,.stick-module .audio-knob-details>label{font-size:10.5px;line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.module .audio-knob-value,.stick-module .audio-knob-value{justify-content:center}.module .audio-knob .audio-knob-value .number-input,.stick-module .audio-knob .audio-knob-value .number-input{width:42px;text-align:right;font-size:9.5px}.module .audio-knob-value,.stick-module .audio-knob-value{font-size:9px;max-width:100%}.rack-head{display:flex;align-items:center;gap:14px;padding:12px 14px 0}.rack-head .hint{flex:1}.rack-index .audio-knob{display:flex;align-items:center;gap:8px;--knob-size: 34px}.rack-index .audio-knob-details>label{font-size:10.5px}.op-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;padding:12px}.module.op{outline:none}.module.op:focus{border-color:var(--accent)}.module.op header i{background:color-mix(in srgb,var(--accent) calc(25% + var(--lvl, 0) * 75%),#333);box-shadow:0 0 calc(var(--lvl, 0) * 12px) var(--accent);transition:box-shadow 90ms linear}.module.op.unused{opacity:.62}.module.op.carrier{border-color:color-mix(in srgb,var(--signal) 30%,var(--line))}.roles{display:inline-flex;gap:3px}.roles b{font:600 8.5px var(--mono);letter-spacing:.06em;padding:1px 5px;border-radius:3px;background:var(--hover);color:var(--muted)}.roles em{font:9px var(--mono);color:var(--faint);font-style:normal}.module.op.carrier .roles b:first-child{background:color-mix(in srgb,var(--signal) 22%,transparent);color:var(--text)}.ratio{margin-left:auto;font:11px var(--mono);color:var(--text)}.op-wave{display:flex;align-items:center;gap:8px;margin-top:10px}.op-wave .param-select select{width:92px}.op-wave .toggle{margin-left:auto;padding:4px 8px}.wave{width:60px;height:24px;flex:none;border-radius:var(--radius-s);background:var(--well)}.wave .axis{stroke:var(--line-strong);stroke-width:1;fill:none}.wave .trace{stroke:var(--accent);stroke-width:1.4;fill:none;stroke-linejoin:round}.op-knobs{grid-template-columns:repeat(6,minmax(0,1fr));gap:10px 2px;margin-top:10px}.module-env_a .knobs,.module-env_b .knobs{grid-template-columns:repeat(5,minmax(0,1fr));gap:14px 2px}.module-env_a .audio-knob,.module-env_b .audio-knob,.module.op .audio-knob{--knob-size: 36px}.audio-knob .audio-knob-value .number-input,.number-input{width:58px;padding:1px 2px;border:1px solid transparent;border-radius:var(--radius-s);background:transparent;font:10px var(--mono);color:var(--muted);appearance:textfield}.number-input:hover,.number-input:focus{border-color:var(--line-strong);color:var(--text)}.number-input::-webkit-inner-spin-button{-webkit-appearance:none}.module-switches,.voice-rows{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-top:12px}.attack{display:inline-flex;align-items:center;gap:5px;padding:5px 12px;border-radius:var(--radius-m);border:1px solid color-mix(in srgb,var(--accent) 55%,transparent);background:color-mix(in srgb,var(--accent) 14%,transparent);color:var(--text);font-size:11px;font-weight:600}.attack:active:not(:disabled){background:var(--accent);color:var(--on-tile)}.shape{display:block;width:100%;height:50px;margin-top:10px;border-radius:var(--radius-s);background:var(--well)}.shape .axis{stroke:var(--line-strong);stroke-width:1;fill:none}.shape .axis.faint{stroke:var(--line);stroke-dasharray:2 3}.shape .trace{stroke:var(--accent);stroke-width:1.6;fill:none;stroke-linejoin:round}.shape .repeat{stroke:var(--accent);stroke-width:1.2;fill:none;stroke-dasharray:2 2}.patchbay{padding:14px;display:grid;gap:14px}.board-wrap{position:relative}.board{background:linear-gradient(180deg,var(--board),var(--board-2));color:var(--board-ink);border-radius:var(--radius-l);padding:8px 10px 10px;box-shadow:inset 0 1px #ffffffb0,inset 0 -2px #0000001a,0 8px 24px #0007;user-select:none;-webkit-user-select:none}.board-top{display:flex;align-items:center;gap:12px;margin-bottom:10px}.plane-switch{display:inline-flex;padding:3px;border-radius:999px;background:var(--well);box-shadow:inset 0 2px 5px #000a}.plane-switch button{display:inline-flex;align-items:center;gap:6px;min-width:76px;justify-content:center;height:28px;padding:0 14px;border:0;border-radius:999px;background:transparent;color:var(--muted);font:600 11px var(--mono);letter-spacing:.1em}.plane-switch button small{font:9px var(--mono);color:var(--faint)}.plane-switch button[aria-checked=true]{background:linear-gradient(#f4f2ec,#cfcac0);color:#1b1a17;box-shadow:0 2px 5px #0009}.plane-switch button[aria-checked=true] small{color:#5d5a52}.plane-note{font-size:11px;color:var(--faint)}.board-row{display:grid;grid-template-columns:64px repeat(var(--cols),minmax(0,1fr));align-items:center;border-radius:5px}.board-row.lit{background:#0000000c}.board-head{align-items:end;padding-bottom:4px}.corner{display:flex;flex-direction:column;font:8px var(--mono);color:var(--board-soft);letter-spacing:.06em;line-height:1.3}.col-head{font:700 8px/1.15 var(--mono);letter-spacing:.02em;text-align:center;color:var(--board-soft);padding:2px 0;border-radius:4px;overflow:hidden}.col-head.control{color:var(--board-control)}.col-head.send{color:var(--board-send)}.col-head.audio{color:var(--board-ink)}.col-head.lit{background:#0000000f;color:var(--board-ink)}.row-head{display:flex;align-items:center;gap:6px;font:700 9px var(--mono);letter-spacing:.04em;color:var(--board-soft);white-space:nowrap;overflow:hidden}.row-head i{flex:none;width:7px;height:7px;border-radius:50%;background:var(--row-color);box-shadow:0 0 0 1px #0003}.row-head.used{color:var(--board-ink)}.cell{position:relative;display:grid;place-items:center;height:30px}.cell.control{background:color-mix(in srgb,var(--board-control) 4%,transparent)}.cell.send{background:color-mix(in srgb,var(--board-send) 5%,transparent)}.cell.audio{background:#00000006}.cell.lit{background:#0000000b}.board-row.lit .cell.lit{background:#00000016}.hole{position:relative;width:20px;height:20px;padding:0;border:0;border-radius:50%;background:radial-gradient(circle at 50% 45%,#1b1a17 0 34%,#5d5a52 36% 44%,#c9c4b6 47% 58%,transparent 60%);touch-action:manipulation}.hole:hover{background:radial-gradient(circle at 50% 45%,#1b1a17 0 34%,#5d5a52 36% 44%,#a8a292 47% 62%,transparent 64%)}.hole:focus-visible{outline:2px solid var(--board-focus);outline-offset:1px}.hole i{position:absolute;inset:calc(4px - var(--amount) * 3px);border-radius:50%;background:radial-gradient(circle at 38% 32%,#fff,#f1efe8 45%,#c9c5b8);box-shadow:0 2px 3px #0005,0 0 0 1px #0000002b,0 0 calc(var(--lvl, 0) * 14px) calc(var(--lvl, 0) * 2px) var(--pin-glow);transition:box-shadow 90ms linear}.hole.green i{background:radial-gradient(circle at 38% 32%,#9be3b0,#3f9b5f 50%,#2c6e43)}.hole.red i{background:radial-gradient(circle at 38% 32%,#ffb3a6,#d24c3c 50%,#97291d)}.hole.diagonal{box-shadow:0 0 0 1.5px color-mix(in srgb,var(--pin-gold) 55%,transparent)}.hole.gold i{background:radial-gradient(circle at 38% 32%,#ffe6a3,#c99a2e 50%,#8a6514)}.hole.invert i{background:radial-gradient(circle at 38% 32%,#6c6a64,#2b2a27 55%,#151412);box-shadow:0 2px 3px #0005,0 0 0 1.5px var(--pin),0 0 calc(var(--lvl, 0) * 14px) calc(var(--lvl, 0) * 2px) var(--pin-glow)}.board-help{margin-top:10px;font-size:11px;color:var(--faint)}.legend{display:flex;flex-wrap:wrap;gap:14px;margin:6px 0 0;padding:0;list-style:none;font-size:11px;color:var(--muted)}.legend li{display:inline-flex;align-items:center;gap:6px}.pin-dot{display:inline-block;width:11px;height:11px;border-radius:50%;background:var(--pin);box-shadow:0 0 0 1px #0004}.pin-dot.green{background:var(--pin-green)}.pin-dot.red{background:var(--pin-red)}.pin-dot.gold{background:var(--pin-gold)}.pin-dot.invert{background:var(--pin-invert);box-shadow:0 0 0 1.5px var(--pin)}.pin-editor{position:absolute;z-index:20;top:28px;left:50%;transform:translate(-50%);width:250px;padding:10px 12px 12px;background:var(--raised);color:var(--text);border:1px solid var(--line-strong);border-radius:var(--radius-l);box-shadow:0 16px 48px #0006}.cell:nth-child(n+10) .pin-editor{left:auto;right:-8px;transform:none}.pin-editor header{display:flex;align-items:center;gap:8px;font:11px var(--mono);margin-bottom:8px}.pin-editor header output{margin-left:auto;color:var(--accent)}.pin-note{font-size:11px;color:var(--muted);margin-bottom:6px}.pin-editor .icon{width:24px;height:24px}.pin-presets{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-top:10px}.pin-presets button{display:inline-flex;align-items:center;gap:6px;padding:6px 8px;border:1px solid var(--line-strong);border-radius:var(--radius-s);background:transparent;font-size:11px;color:var(--muted)}.pin-presets button:hover{color:var(--text)}.audio-range-label{display:flex;align-items:center;justify-content:space-between;gap:6px}.audio-range-label>label{font-size:11px;color:var(--muted)}.audio-range-label>span{display:flex;align-items:center;gap:2px;font:10px var(--mono);color:var(--muted)}.audio-range input[type=range]{width:100%;accent-color:var(--accent);margin:4px 0 0}.routing{background:var(--card);border:1px solid var(--line);border-radius:var(--radius-m);padding:11px 12px 12px;--accent: var(--tile)}.routing header{display:flex;align-items:center;gap:8px}.routing header .param-select{margin-left:auto}.routing-svg{display:block;width:100%;max-height:280px;margin-top:10px}.routing-svg .edge{fill:none;stroke:var(--mod);stroke-width:1.3}.routing-svg .edge.loop{stroke-dasharray:3 3}.routing-svg .edge.feedback{stroke:var(--pin-gold)}.routing-svg .bus line{stroke:var(--signal);stroke-width:1.4}.routing-svg .bus text{font:9px var(--mono);fill:var(--signal)}.routing-svg .node{cursor:pointer}.routing-svg .node rect{fill:var(--card);stroke:var(--mod);stroke-width:1.3}.routing-svg .node.carrier rect{stroke:var(--signal)}.routing-svg .node.module rect{stroke-dasharray:2 2}.routing-svg .node text{font:600 11px var(--mono);fill:var(--text);text-anchor:middle;pointer-events:none}.routing-svg .node:hover rect{fill:var(--card-hover)}.routing-svg .send{fill:var(--board-send);stroke:var(--card)}.routing-empty{margin-top:12px;font-size:11px;color:var(--faint)}.routing-key{display:flex;flex-wrap:wrap;align-items:center;gap:4px 10px;margin-top:6px;font-size:10px;color:var(--faint)}.routing-key .swatch{display:inline-block;width:14px;height:0;border-top:1.5px solid var(--mod);margin-right:-4px}.routing-key .swatch.carrier{border-color:var(--signal)}.routing-key .swatch.dashed{border-top-style:dashed}.routing-key .dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--board-send);margin-right:-4px}.stick-module{--accent: var(--text);background:var(--card);border:1px solid var(--line);border-radius:var(--radius-m);padding:11px 12px 12px}.stick-module header output{margin-left:auto;font:10px var(--mono);color:var(--muted)}.stick-body{display:grid;grid-template-columns:170px minmax(0,1fr);gap:16px;margin-top:12px;align-items:center}.stick-field{position:relative;aspect-ratio:1;border-radius:50%;background:radial-gradient(circle at 50% 50%,var(--well) 0 48%,color-mix(in srgb,var(--raised) 80%,#000) 60%,var(--raised) 70%,var(--bg) 71%);box-shadow:inset 0 3px 10px #000c,0 1px 0 var(--line);touch-action:none;cursor:grab}.stick-field:active{cursor:grabbing}.stick-cross{position:absolute;inset:14%;background:linear-gradient(var(--line-strong),var(--line-strong)) center / 1px 100% no-repeat,linear-gradient(var(--line-strong),var(--line-strong)) center / 100% 1px no-repeat;border-radius:50%}.stick-field:after{content:"";position:absolute;left:50%;top:50%;width:22px;height:22px;margin:-11px 0 0 -11px;border-radius:50%;background:var(--bg);box-shadow:0 0 0 2px var(--line-strong)}.stick-head{position:absolute;z-index:1;width:30px;height:30px;margin:-15px 0 0 -15px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#fff,#d9d8d3 30%,#8d8c86 70%,#4a4945);box-shadow:0 6px 12px #000b,0 0 0 1px #0008;pointer-events:none}.stick-side{display:grid;gap:12px;justify-items:start}.lower{display:grid;gap:14px;padding:14px 20px 20px}.keys{display:grid;grid-template-columns:auto auto minmax(0,1fr);gap:14px;align-items:stretch;padding:12px;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius-l)}.performance{display:flex;gap:8px}.wheel{position:relative;width:30px;height:118px;border-radius:var(--radius-s);background:var(--well);box-shadow:inset 0 2px 6px #000a;touch-action:none;overflow:hidden}.wheel-fill{position:absolute;left:4px;right:4px;background:color-mix(in srgb,var(--accent) 40%,transparent);border-radius:4px}.wheel-grip{position:absolute;left:3px;right:3px;height:6px;border-radius:3px;background:var(--knob-label)}.wheel small{position:absolute;bottom:4px;left:0;right:0;text-align:center;font:8px var(--mono);color:var(--faint);pointer-events:none}.octave{display:grid;grid-template-columns:auto auto auto;align-content:center;align-items:center;gap:6px}.octave output{font:12px var(--mono);min-width:28px;text-align:center}.octave .hint{grid-column:1 / -1;font-size:10px;line-height:1.5;text-align:center}.keyboard{position:relative;height:118px;touch-action:none;user-select:none;-webkit-user-select:none}.key{position:absolute;top:0;border-radius:0 0 5px 5px}.key.white{height:100%;background:linear-gradient(var(--key-white),var(--key-white-shade));border:1px solid #0000004d}.key.black{z-index:1;height:62%;background:linear-gradient(var(--key-black),var(--key-black-shade));border:1px solid #000;box-shadow:0 2px 3px #0008}.key.white.down,.key.white.sounding{background:linear-gradient(color-mix(in srgb,var(--accent) 40%,var(--key-white)),color-mix(in srgb,var(--accent) 70%,var(--key-white)))}.key.black.down,.key.black.sounding{background:linear-gradient(color-mix(in srgb,var(--accent) 50%,var(--key-black)),color-mix(in srgb,var(--accent) 30%,var(--key-black-shade)))}.c-label{position:absolute;bottom:5px;left:0;right:0;text-align:center;font:9px var(--mono);color:var(--key-label);pointer-events:none}.keyboard.idle{opacity:.6}.sequencer{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius-l);padding:12px 14px 14px}.seq-bar{display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px}.seq-bar h2{font:600 10px var(--mono);letter-spacing:.12em;text-transform:uppercase;margin-right:4px}.seq-play{display:inline-flex;align-items:center;gap:7px;height:30px;padding:0 14px;border-radius:var(--radius-m);border:1px solid var(--tile);background:var(--tile);color:var(--on-tile);font-weight:600;font-size:12px}.seq-play.on{background:transparent;color:var(--accent)}.field{display:inline-flex;align-items:center;gap:7px}.field .number-input{width:52px;height:28px;font-size:12px;color:var(--text);border-color:var(--line-strong);background:var(--well);text-align:center}.field.swing{width:140px}.patterns{display:inline-flex;gap:3px}.patterns button{width:26px;height:26px;border-radius:var(--radius-s);border:1px solid var(--line-strong);background:transparent;font:11px var(--mono);color:var(--muted)}.patterns button.empty{color:var(--faint);border-style:dashed}.patterns button[aria-checked=true]{background:var(--text);color:var(--bg);border-style:solid}.seq-pages{display:flex;gap:4px;margin-top:12px;flex-wrap:wrap}.seq-pages button{padding:3px 9px;border-radius:var(--radius-s);border:1px solid var(--line-strong);background:transparent;font:10px var(--mono);color:var(--muted)}.seq-pages button[aria-selected=true]{background:color-mix(in srgb,var(--text) 8%,transparent);color:var(--text)}.seq-grid{display:grid;grid-template-columns:repeat(var(--steps),minmax(0,1fr));gap:4px;margin-top:10px}.seq-step{position:relative;height:58px;padding:5px 5px 8px;text-align:left;border:1px solid var(--line);border-radius:var(--radius-s);background:var(--well);overflow:hidden;display:flex;flex-direction:column;gap:3px}.seq-step.beat{border-left-color:#ffffff30}.seq-step small{font:9px var(--mono);color:var(--faint)}.seq-step .notes{font:10px/1.25 var(--mono);color:var(--muted);overflow:hidden}.seq-step.has{background:color-mix(in srgb,var(--accent) 12%,var(--well))}.seq-step.has .notes{color:var(--text)}.seq-step .gate{position:absolute;left:0;bottom:0;height:3px;background:color-mix(in srgb,var(--accent) 60%,transparent)}.seq-step:not(.has) .gate{opacity:.25}.seq-step .tie{position:absolute;right:4px;top:2px;color:var(--accent);font-size:12px}.seq-step .motion{position:absolute;right:5px;bottom:7px;width:5px;height:5px;border-radius:50%;background:var(--text)}.seq-step.selected{border-color:var(--text)}.seq-step.cursor{box-shadow:inset 0 0 0 2px var(--rec)}.seq-step.now{box-shadow:inset 0 0 0 2px var(--accent)}.step-editor{display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px;margin-top:12px;padding-top:12px;border-top:1px solid var(--line)}.step-editor strong{font:11px var(--mono)}.step-notes{display:inline-flex;gap:5px;flex-wrap:wrap}.step-notes em{color:var(--faint);font-style:normal;font-size:11px}.chip{padding:3px 8px;border-radius:var(--radius-s);border:1px solid var(--line-strong);background:var(--hover);font:11px var(--mono)}.gate-field{width:150px}.step-editor .hint{flex-basis:100%}.start-overlay{position:fixed;inset:0;z-index:50;display:grid;place-items:center;padding:20px;background:color-mix(in srgb,var(--bg) 80%,transparent);backdrop-filter:blur(6px)}.start-card{width:min(420px,100%);padding:26px 26px 20px;border-radius:var(--radius-l);background:var(--panel);border:1px solid var(--line-strong);text-align:center;box-shadow:0 16px 48px #0006}.start-title{font:500 28px/1.1 var(--display);letter-spacing:-.6px}.start-text{margin-top:10px;color:var(--muted);font-size:12px;line-height:1.7}.start-button{margin-top:18px;height:42px;padding:0 26px;border:1px solid var(--tile);border-radius:var(--radius-m);background:var(--tile);color:var(--on-tile);font-weight:600;font-size:12px}.start-button:hover:not(:disabled){background:color-mix(in srgb,var(--tile) 85%,white)}.start-note{min-height:18px;margin-top:12px;color:var(--rec);font-size:12px}.licenses{width:min(720px,calc(100vw - 32px));max-height:80vh;padding:0;border:1px solid var(--line-strong);border-radius:var(--radius-l);background:var(--panel);color:var(--text)}.licenses::backdrop{background:#0a0a0a99}.licenses header{display:flex;justify-content:space-between;align-items:center;padding:14px 16px;border-bottom:1px solid var(--line)}.licenses h2{font:500 16px var(--display);letter-spacing:-.2px}.licenses-body{padding:12px 16px 16px;overflow:auto;max-height:calc(80vh - 60px);font-size:12px;color:var(--muted)}.licenses-body details{border-top:1px solid var(--line);padding:8px 0}.licenses-body summary{cursor:pointer;color:var(--text)}.licenses-body pre{white-space:pre-wrap;font:10px/1.5 var(--mono);color:var(--muted)}@media(max-width:1360px){.module-grid{grid-template-columns:repeat(auto-fill,minmax(210px,1fr))}}@media(max-width:1280px){.deck{grid-template-columns:repeat(6,minmax(0,1fr))}.patchbay{grid-column:span 4}.side{display:contents}.side>div{grid-column:span 2}.op-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:980px){.topbar .scope{display:none}.deck{grid-template-columns:repeat(2,minmax(0,1fr))}.patchbay{grid-column:1 / -1}.side>div{grid-column:auto}}@media(max-width:760px){.topbar{gap:10px;padding:10px 14px}.presets{order:3;width:100%}.preset-select{flex:1}.preset-select select{width:100%;min-width:0}.top-right{margin-left:auto;gap:8px}.midi-status{display:none}.tabs{position:sticky;top:0;z-index:10;display:grid;grid-template-columns:repeat(5,1fr);gap:4px;padding:8px 14px;background:color-mix(in srgb,var(--bg) 94%,transparent);border-bottom:1px solid var(--line)}.tabs button{height:34px;border:1px solid var(--line-strong);border-radius:var(--radius-m);background:transparent;color:var(--muted);font-size:11px;padding:0}.tabs button[aria-pressed=true]{background:var(--text);color:var(--bg)}.app:not([data-tab=play]) [data-section=play],.app:not([data-tab=pins]) [data-section=pins],.app:not([data-tab=operators]) [data-section=operators],.app:not([data-tab=modules]) [data-section=modules],.app:not([data-tab=sequencer]) [data-section=sequencer]{display:none}.app:is([data-tab=operators],[data-tab=sequencer]) .deck{display:none}.app:is([data-tab=pins],[data-tab=operators],[data-tab=modules]) .lower{display:none}.deck{padding:12px 12px 0}.deck{grid-template-columns:minmax(0,1fr)}.module-env_a .knobs,.module-env_b .knobs{grid-template-columns:repeat(auto-fill,minmax(72px,1fr))}.panel.operators,.panel.modules{margin:12px 12px 0}.lower{padding:12px}.patchbay{padding:10px}.board-top{flex-wrap:wrap}.board-wrap{overflow-x:auto}.board{min-width:560px}.module-grid,.op-grid{grid-template-columns:minmax(0,1fr);padding:10px}.rack-head{flex-wrap:wrap}.knobs{grid-template-columns:repeat(auto-fill,minmax(72px,1fr))}.op-knobs{grid-template-columns:repeat(3,minmax(0,1fr))}.stick-body{grid-template-columns:minmax(0,1fr);justify-items:center}.stick-field{width:min(260px,70vw)}.stick-side{grid-template-columns:1fr 1fr;width:100%}.keys{grid-template-columns:auto minmax(0,1fr)}.octave{grid-column:1 / -1;grid-row:1;grid-template-columns:auto auto auto 1fr}.octave .hint{display:none}.keyboard,.wheel{height:150px}.seq-grid{grid-template-columns:repeat(8,minmax(0,1fr))}.field.swing,.gate-field{width:100%}}@media(prefers-reduced-motion:reduce){.hole i,.toggle i,.scope .effect-meter i{transition:none}}:root{--tile: #b78cff;--on-tile: #0a0a0a;--scope-trace-from: #b78cff;--scope-trace-to: #e2d4ff}
