@font-face{font-family:Barlow;font-style:normal;font-display:swap;font-weight:400;src:url(./barlow-vietnamese-400-normal-Dpl4UHAZ.woff2) format("woff2"),url(./barlow-vietnamese-400-normal-BFeobeCK.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Barlow;font-style:normal;font-display:swap;font-weight:400;src:url(./barlow-latin-ext-400-normal-HxX4XjxC.woff2) format("woff2"),url(./barlow-latin-ext-400-normal-CvBsJvxq.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Barlow;font-style:normal;font-display:swap;font-weight:400;src:url(./barlow-latin-400-normal-qiz4-Cze.woff2) format("woff2"),url(./barlow-latin-400-normal-fsAxiSwU.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Barlow;font-style:normal;font-display:swap;font-weight:600;src:url(./barlow-vietnamese-600-normal-DcjprdFV.woff2) format("woff2"),url(./barlow-vietnamese-600-normal-CA_GiK2e.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Barlow;font-style:normal;font-display:swap;font-weight:600;src:url(./barlow-latin-ext-600-normal-B8NK_A3D.woff2) format("woff2"),url(./barlow-latin-ext-600-normal-DMVRjfRT.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Barlow;font-style:normal;font-display:swap;font-weight:600;src:url(./barlow-latin-600-normal-DILqtrty.woff2) format("woff2"),url(./barlow-latin-600-normal-CNwfPWQD.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Barlow Condensed;font-style:normal;font-display:swap;font-weight:500;src:url(./barlow-condensed-vietnamese-500-normal-DjeaNLFD.woff2) format("woff2"),url(./barlow-condensed-vietnamese-500-normal-CsrJDWc5.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Barlow Condensed;font-style:normal;font-display:swap;font-weight:500;src:url(./barlow-condensed-latin-ext-500-normal-yA5ONLQ9.woff2) format("woff2"),url(./barlow-condensed-latin-ext-500-normal-B1RE8WP7.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Barlow Condensed;font-style:normal;font-display:swap;font-weight:500;src:url(./barlow-condensed-latin-500-normal-BgYH2mbd.woff2) format("woff2"),url(./barlow-condensed-latin-500-normal-HIEiP5Ov.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Barlow Condensed;font-style:normal;font-display:swap;font-weight:600;src:url(./barlow-condensed-vietnamese-600-normal-A5AYRdjN.woff2) format("woff2"),url(./barlow-condensed-vietnamese-600-normal-CNlPk46_.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Barlow Condensed;font-style:normal;font-display:swap;font-weight:600;src:url(./barlow-condensed-latin-ext-600-normal-18ESti3H.woff2) format("woff2"),url(./barlow-condensed-latin-ext-600-normal-Clv9cIcR.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Barlow Condensed;font-style:normal;font-display:swap;font-weight:600;src:url(./barlow-condensed-latin-600-normal-DepVgxBB.woff2) format("woff2"),url(./barlow-condensed-latin-600-normal-BFJEwTuo.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--ui-bg: var(--bg);--ui-bar: var(--bar);--ui-ink: var(--ink);--ui-ink-dim: var(--ink-dim);--ui-control: var(--control);--ui-control-edge: var(--control-edge);--ui-signature: var(--dx-signature);--ui-focus: #e9edf1;--ui-ok: #49d36b;--ui-warn: #e0a030;--ui-bad: #ff4a3d;--ui-backdrop: #0009;--ui-radius: 4px;--ui-radius-dialog: 8px;--ui-bar-ctl: 30px;--ui-pad: 4px 10px;--ui-text: 14px;--ui-font: "Barlow", system-ui, sans-serif;--ui-font-narrow: "Barlow Condensed", "Arial Narrow", sans-serif}:focus-visible{outline:2px solid var(--ui-focus);outline-offset:2px}dialog::backdrop{background:var(--ui-backdrop)}:root{color-scheme:dark;--bg: #0e0907;--bar: #090504;--panel: #2a1f19;--panel-metal: repeating-linear-gradient(90deg, #ffffff03 0 1px, transparent 1px 3px), linear-gradient(165deg, #33261f, #221813 70%);--panel-edge: #110b08;--screen: #05080e;--screen-lit: radial-gradient(ellipse 90% 120% at 50% 35%, #0f1d33 0%, #070c16 55%, #03050a 100%);--screen-ink: #eef3ff;--screen-glow: #7fb0ff66;--ink: #e8dfd6;--ink-dim: #a69384;--accent: #eef3ff;--dx-signature: #c9a07a;--focus: var(--ui-focus);--ok: var(--ui-ok);--warn: var(--ui-warn);--bad: var(--ui-bad);--control: #1a120e;--control-edge: #46362d;--font: "Barlow", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-narrow: "Barlow Condensed", "Barlow", sans-serif;--label-h: 14px;--body-top: 19px;--toggle-top: 30px}*{box-sizing:border-box}html,body{margin:0;background:var(--bg);color:var(--ink);font:14px/1.35 var(--font)}button,select{font:inherit;color:var(--ink);background:var(--control);border:1px solid var(--control-edge);border-radius:var(--ui-radius);padding:var(--ui-pad);cursor:pointer}button:hover:not(:disabled){border-color:#8a6f5c}button:disabled,select:disabled{opacity:.45;cursor:default}button.primary{background:#2f5d86;border-color:#3f7fb4}select{max-width:14em}.bar{position:sticky;top:0;z-index:10;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:0 20px;min-height:52px;padding:0 16px;background:var(--bar);border-bottom:1px solid #000}.brand{font:600 18px var(--ui-font-narrow);letter-spacing:.03em;color:var(--ui-signature);white-space:nowrap}.bar__end{justify-self:end;display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:6px 16px;min-width:0;padding:10px 0}.bar__group{display:flex;align-items:center;gap:6px}.bar__end>.popup-anchor>button,.bar__group>button,.bar__pair>button{height:var(--ui-bar-ctl)}.bar__pair{display:flex}.bar__pair button:first-child{border-radius:var(--ui-radius) 0 0 var(--ui-radius)}.bar__pair button:last-child{border-radius:0 var(--ui-radius) var(--ui-radius) 0;margin-left:-1px}.ports{display:inline-flex;flex-wrap:wrap;gap:8px 16px;min-width:0}.ports label{display:inline-flex;align-items:center;gap:5px;min-width:0}.ports select{min-width:0}.voice-title{display:flex;align-items:center;gap:10px;min-width:0}.voice-title__where select{height:var(--ui-bar-ctl);font:600 14px var(--font-narrow);font-variant-numeric:tabular-nums}.voice-title__where select{width:4.6em;white-space:nowrap;overflow:hidden;text-overflow:clip}.voice-title__name{padding:3px 10px;background:var(--screen-lit);color:var(--screen-ink);border-radius:3px;font:500 17px var(--font-narrow);letter-spacing:.06em;white-space:pre;min-width:7.5em;text-shadow:0 0 6px var(--screen-glow)}.edited{font:600 12px var(--font-narrow);letter-spacing:.03em;color:var(--accent);border:1px solid #eef3ff66;border-radius:3px;padding:0 5px}.edited--hidden{visibility:hidden}.voice-title__init{height:var(--ui-bar-ctl)}button.icon{display:inline-grid;place-items:center;width:32px;height:var(--ui-bar-ctl);padding:0}.icon__svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}.icon__svg--spin{animation:spin 1s linear infinite}@media(prefers-reduced-motion:reduce){.icon__svg--spin{animation:none}}.status{display:inline-flex;align-items:center;justify-content:center;gap:7px;position:relative;min-width:8.5em}.status.primary .dot--offline{background:#cfe0ef}.dot{width:9px;height:9px;border-radius:50%;display:inline-block;background:var(--ink-dim)}.dot--connected{background:var(--ok);box-shadow:0 0 6px var(--ok)}.dot--demo{background:none;box-shadow:inset 0 0 0 1.5px var(--ui-ink-dim)}.dot--connecting{background:var(--warn)}.dot--lost,.dot--notfound{background:var(--bad)}main{padding:14px 16px 40px}.stage>.hint{margin:0 0 12px}.hint{max-width:80ch;color:#f0d79a}.hint__action{margin-left:10px}.welcome{max-width:70ch;display:grid;gap:14px;justify-items:start;padding:8px 0}.welcome p{margin:0}.welcome__demo{display:flex;align-items:center;gap:10px}.dim{color:var(--ink-dim)}.note{margin:6px 0 0;font-size:12px;color:var(--ink-dim)}.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.popup-anchor{position:relative;display:inline-flex;gap:6px}.popup{position:absolute;top:calc(100% + 6px);right:0;z-index:20;display:flex;flex-direction:column;gap:10px;min-width:320px;max-width:380px;padding:12px;background:#1a120e;border:1px solid #46362d;border-radius:6px;box-shadow:0 8px 24px #0008}.popup p{margin:0;font-size:13px}.popup__title{margin:0;font:600 16px/1.2 var(--font-narrow);color:var(--ink)}.popup__row{display:flex;gap:6px;align-items:center}.popup .ports{flex-direction:column;align-items:stretch}.popup .ports label{justify-content:space-between;font-size:13px}.popup .ports select{max-width:16em}.popup__check{display:flex;gap:8px;align-items:flex-start;font-size:13px}.popup__check small{display:block;font-size:12px}.panel{display:grid;grid-template-columns:300px minmax(0,1fr);grid-template-areas:"side ops";gap:12px;align-items:start}.panel__side{grid-area:side}.panel__ops{grid-area:ops}.panel__side{display:grid;gap:12px}.panel__ops{display:grid;grid-template-columns:repeat(4,minmax(230px,1fr));gap:10px}@media(max-width:1500px){.panel{grid-template-columns:minmax(0,1fr);grid-template-areas:"side" "ops"}.panel__side{grid-template-columns:repeat(3,minmax(0,1fr));align-items:start}.fx-box{grid-column:span 2}}@media(max-width:900px){.panel__side{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:560px){.panel__side{grid-template-columns:minmax(0,1fr)}.fx-box{grid-column:auto}}.fx-chain{display:flex;align-items:center;gap:6px}.fx-chain__end{font:600 12px var(--font-narrow);letter-spacing:.06em;color:var(--ink-dim)}.fx-chain__arrow{flex:none;width:14px;height:2px;background:var(--control-edge);position:relative}.fx-chain__arrow:after{content:"";position:absolute;right:-1px;top:-3px;border:4px solid transparent;border-left:5px solid var(--control-edge);border-right:0}.pedal{flex:1;min-width:0;display:grid;gap:4px;padding:6px;background:#1a120ecc;border:1px solid var(--control-edge);border-radius:6px}.pedal--thru .pedal__knobs{opacity:.4}.pedal__screen{display:flex;align-items:center;background:var(--screen-lit);border-radius:3px;text-shadow:0 0 6px var(--screen-glow)}.pedal__screen button{border:0;background:none;color:var(--screen-ink);padding:2px 8px;font-size:16px;line-height:1}.pedal__screen select{flex:1;min-width:0;-moz-appearance:none;appearance:none;-webkit-appearance:none;border:0;background:none;color:var(--screen-ink);font:500 15px var(--font-narrow);letter-spacing:.04em;text-align:center;text-align-last:center;padding:3px 0;cursor:pointer}.pedal__screen select option{color:var(--ink);background:var(--control)}.pedal__knobs{display:flex;justify-content:space-around}@media(min-width:1501px){.panel__ops>.fx-box{grid-column:1 / -1;justify-self:start;width:max-content;max-width:100%}.panel__ops>.fx-box .fx-chain{gap:10px}.panel__ops>.fx-box .fx-chain__arrow{width:22px}.panel__ops>.fx-box .pedal{flex:none;width:280px;box-sizing:border-box;padding:8px 10px}}@media(max-width:560px){.fx-chain{flex-wrap:wrap}.fx-chain__end,.fx-chain__arrow{display:none}.pedal{flex-basis:calc(50% - 3px)}}@media(max-width:1040px){.panel__ops{grid-template-columns:repeat(2,minmax(230px,1fr))}}.op .eg{max-width:360px;margin-inline:auto}@media(max-width:620px){.panel__ops{grid-template-columns:minmax(0,1fr)}}.group-box{min-width:0;background:var(--panel-metal);border:1px solid var(--panel-edge);border-radius:6px;padding:8px 10px 10px}.group-box h2{display:flex;align-items:center;justify-content:space-between;margin:0 0 6px;font:600 13px var(--font-narrow);text-transform:uppercase;letter-spacing:.08em;color:var(--ink-dim)}.group-box__action{padding:1px 8px;font:500 12px var(--font);text-transform:none;letter-spacing:0}.group-box__controls{display:flex;flex-wrap:wrap;gap:6px 4px;align-items:flex-start;justify-content:space-between}.group-box__controls+.group-box__controls{margin-top:6px}.group-box__controls--eg{justify-content:space-between}.group-box__controls--eg+.group-box__controls--eg{margin-top:0}.group-box__sub{padding:6px 8px 8px;border:1px solid var(--panel-edge);border-radius:5px;background:#ffffff05}.group-box__sub+.group-box__sub{margin-top:8px}.group-box__sub h3,.op__section h3{margin:0 0 4px;font:600 12px var(--font-narrow);text-transform:uppercase;letter-spacing:.08em;color:var(--ink-dim)}.name-field{display:flex;flex-direction:column;gap:2px;margin-bottom:8px}.name-field .control__label{text-align:left}.name-field input{width:11em;font:500 17px var(--font-narrow);letter-spacing:.06em;color:var(--screen-ink);background:var(--screen-lit);text-shadow:0 0 6px var(--screen-glow);border:1px solid var(--control-edge);border-radius:3px;padding:3px 8px}.op{min-width:0;background:var(--panel-metal);border:1px solid var(--panel-edge);border-radius:6px;padding:8px 10px 10px;display:flex;flex-direction:column;gap:6px}.op--focus{border-color:#8a6f5c;box-shadow:inset 0 0 0 1px #8a6f5c}.op--off>:not(.op__head){opacity:.45}.op__head{display:flex;align-items:center;gap:8px}.op__head h2{margin:0;font:600 18px var(--font-narrow);letter-spacing:.04em;color:var(--ink)}.op__role{flex:1;font:500 13px var(--font-narrow);color:var(--ink-dim)}.op__head .switch--toggle{padding-top:0}.op__freq{padding:4px 10px;background:var(--screen-lit);color:var(--screen-ink);border-radius:3px;font:500 22px var(--font-narrow);letter-spacing:.04em;font-variant-numeric:tabular-nums;text-align:right;text-shadow:0 0 7px var(--screen-glow)}.op__freq-row{display:flex;align-items:center;gap:8px}.op__freq-row .op__freq{flex:1;min-width:0}.op__freq-row .control,.op__freq-row .switch{padding:0}.op__section{border-top:1px solid var(--panel-edge);padding-top:6px}.control{display:flex;flex-direction:column;align-items:center;gap:2px;padding:3px 2px;border-radius:4px;user-select:none;-webkit-user-select:none;transition:background .4s}.control--touched{background:#eef3ff26;transition:none}.control__label{height:var(--label-h);font:500 12px/var(--label-h) var(--font-narrow);color:var(--ink-dim);text-align:center;white-space:nowrap}.control__value{font:13px var(--font);font-variant-numeric:tabular-nums;background:none;border:0;padding:1px 4px;min-width:3.6em;cursor:text;color:var(--ink)}.control__value:hover:not(:disabled){background:var(--control)}.control__input{width:4.2em;font:13px var(--font);text-align:center;color:var(--ink);background:var(--control);border:1px solid var(--focus);border-radius:3px;padding:0 2px}.knob{width:64px}.knob--small{width:46px}.knob__dial{position:relative;width:48px;height:48px;margin-bottom:3px}.knob--small .knob__dial{width:34px;height:34px}.knob__dial .control__value,.knob__dial .control__input{position:absolute;left:50%;bottom:-4px;transform:translate(-50%);min-width:0;padding:0 3px;font-size:12px;line-height:14px;white-space:nowrap;border-radius:3px}.knob__dial .control__value{background:#1d1511cc}.knob__dial .control__value:before{content:"";position:absolute;top:-3px;right:-4px;bottom:-6px;left:-4px}.knob__dial .control__input{width:4.2em;z-index:2}.knob__svg{width:48px;height:48px;cursor:ns-resize;touch-action:none;overflow:visible}.knob--small .knob__svg{width:34px;height:34px}.knob--small .knob__dial .control__value{font-size:11px;line-height:12px;bottom:-5px}.knob__svg[aria-disabled]{cursor:default;opacity:.5}.knob__svg:focus-visible{outline:none}.knob__svg:focus-visible .knob__cap{stroke:var(--focus);stroke-width:2}.knob__track{fill:none;stroke:var(--control);stroke-width:3.5;stroke-linecap:round}.knob__fill{fill:none;stroke:var(--accent);stroke-width:3.5;stroke-linecap:round}.knob__was{stroke:var(--ink-dim);stroke-width:1.5}.knob__cap{fill:#3b2d25;stroke:#0c0806;stroke-width:1}.knob__pointer{stroke:#f4f5f6;stroke-width:2.5;stroke-linecap:round}.knob__end{fill:none;stroke:var(--ink-dim);stroke-width:.8;stroke-linejoin:round}.knob__end--on{stroke:var(--accent)}.switch{align-items:flex-start;max-width:100%}.switch .control__label{text-align:left}.switch__steps{display:flex;flex-wrap:wrap}.switch__step{padding:3px 7px;min-width:26px;border-radius:0;font-size:12px;margin-left:-1px;white-space:nowrap}.switch__step:first-child{border-radius:4px 0 0 4px;margin-left:0}.switch__step:last-child{border-radius:0 4px 4px 0}.switch__step.on{background:var(--screen-ink);border-color:var(--screen-ink);color:#111;position:relative}.switch--toggle{padding-top:var(--toggle-top)}.switch__toggle{display:flex;align-items:center;gap:6px;padding:4px 8px 4px 6px;font-size:12px;white-space:nowrap}.led{flex:none;width:8px;height:8px;border-radius:50%;background:#4a3a33;box-shadow:inset 0 0 0 1px #0006}.on>.led{background:#ff5a3c;box-shadow:0 0 6px #ff5a3caa}.algo{display:block;max-width:100%;height:auto;margin:0 auto}.algo-box .algo-stage{display:flex;justify-content:center;padding:4px;background:var(--screen-lit);border-radius:4px}.algo,.eg{filter:drop-shadow(0 0 2px var(--screen-glow))}.algo__line{fill:none;stroke:var(--screen-ink);stroke-width:1.5}.algo__op rect,.algo__op circle{fill:var(--screen);stroke:var(--screen-ink);stroke-width:1.5}.algo__op text{fill:var(--screen-ink);font:600 12px var(--font-narrow);text-anchor:middle;pointer-events:none}.algo__op[role=button]{cursor:pointer}.algo__op--focus rect,.algo__op--focus circle{fill:var(--screen-ink)}.algo__op--focus>text{fill:#111}.algo__op--off{opacity:.35}.algo__fb path{fill:none;stroke:var(--screen-ink);stroke-width:1;opacity:.7}.algo__fb text{font-size:9px;text-anchor:start}.algo__number{fill:var(--ink-dim);font:600 13px var(--font-narrow);text-anchor:end}.algo--small{background:none}.algo--small .algo__op rect,.algo--small .algo__op circle{stroke-width:3}.algo--small .algo__line{stroke-width:3}.algo-picker{display:grid;grid-template-columns:repeat(4,1fr);gap:4px}.algo-picker__item{display:flex;flex-direction:column;align-items:center;gap:1px;padding:4px 2px 2px;background:var(--screen-lit);color:var(--screen-ink);font:600 12px var(--font-narrow)}.algo-picker__item.on{border-color:var(--screen-ink);box-shadow:inset 0 0 0 1px var(--screen-ink)}.algo-box.control--touched{background:#3b2c24}.eg{display:block;width:100%;height:auto;margin:2px 0 4px;background:var(--screen-lit);border-radius:4px;touch-action:none}.eg__line{fill:none;stroke:var(--screen-ink);stroke-width:1.6;stroke-linejoin:round}.eg__ghost{fill:none;stroke:var(--screen-ink);stroke-width:1;opacity:.15}.eg__keyoff,.eg__zero{stroke:var(--ink-dim);stroke-width:.7;stroke-dasharray:2 3}.eg__handle{fill:var(--screen);stroke:var(--screen-ink);stroke-width:1.4;cursor:move}.eg__handle:hover{fill:var(--screen-ink)}.ksc{display:block;width:100%;max-width:360px;height:auto;margin:2px auto 4px;background:var(--screen-lit);border-radius:4px;filter:drop-shadow(0 0 2px var(--screen-glow))}.ksc__line{fill:none;stroke:var(--screen-ink);stroke-width:1.6;stroke-linejoin:round}.ksc__outline{fill:none;stroke:var(--screen-ink);stroke-width:1;stroke-dasharray:1.5 2.5;opacity:.3}.ksc__zero{stroke:var(--ink-dim);stroke-width:.6;opacity:.6}.ksc__break{stroke:var(--ink-dim);stroke-width:.7;stroke-dasharray:2 3}.ksc-controls{align-items:flex-start}.ksc-controls .switch{padding-top:3px}.keys{display:flex;gap:10px;margin-top:16px;background:var(--panel-metal);border:1px solid var(--panel-edge);border-radius:6px;padding:8px 10px 10px;user-select:none;-webkit-user-select:none}.keys__main{flex:1;min-width:0;display:flex;flex-direction:column;gap:6px}.keys__bar{display:flex;gap:8px;align-items:center;flex-wrap:wrap;font-size:13px}.keys__bar button{padding:0 10px}.keys--folded{padding:6px 10px}.keys__fold span{display:inline-block;width:1em}.keys__vel{color:var(--accent);font-variant-numeric:tabular-nums}.keys__bed{position:relative;height:120px;touch-action:none}.key{position:absolute;top:0;padding:0;border-radius:0 0 4px 4px;touch-action:none}.key--white{height:100%;background:#e9ebed;border:1px solid #9aa1a8;z-index:1}.key--black{height:62%;background:#1b1d20;border:1px solid #000;z-index:2}.key--white:hover:not(:disabled){border-color:#9aa1a8;background:#f5f6f7}.key--black:hover:not(:disabled){border-color:#000;background:#2a2d31}.key--down.key--white,.key--down.key--white:hover:not(:disabled){background:#b9b2a2}.key--down.key--black,.key--down.key--black:hover:not(:disabled){background:#6f6a60}.key__name{position:absolute;bottom:4px;left:0;right:0;text-align:center;font-size:10px;color:#555}.modwheel{display:flex;flex-direction:column;align-items:center;gap:4px;justify-content:flex-end;user-select:none;-webkit-user-select:none}.modwheel__track{position:relative;width:26px;height:120px;background:var(--control);border:1px solid var(--control-edge);border-radius:4px;overflow:hidden;touch-action:none;cursor:ns-resize}.modwheel__fill{position:absolute;left:0;right:0;bottom:0;background:var(--accent);opacity:.5}.modwheel__label{font:500 12px var(--font-narrow);color:var(--ink-dim);white-space:nowrap;font-variant-numeric:tabular-nums;width:4em;text-align:center}@media(max-width:760px){.bar{position:static;grid-template-columns:minmax(0,1fr);padding:0 12px}.bar__end{justify-self:stretch;justify-content:flex-start}.status{min-width:0}main{padding:12px 12px 32px}.keys__hint{display:none}.keys__bed,.modwheel__track{height:96px}.popup{right:auto;left:0;min-width:0;width:calc(100vw - 32px)}.voice-title{flex-wrap:wrap;row-gap:6px}}.about-dialog{position:relative;max-width:640px;max-height:calc(100vh - 48px);padding:20px 24px;background:var(--panel);color:var(--ink);border:1px solid var(--control-edge);border-radius:var(--ui-radius-dialog);line-height:1.45}.about-dialog h2{margin:0 0 4px;font:600 20px var(--font-narrow);color:var(--ui-signature)}.about-dialog h3{margin:18px 0 6px;font:600 15px var(--font-narrow);text-transform:uppercase;letter-spacing:.06em;color:var(--ink-dim)}.about-dialog ul{margin:0;padding-left:1.2rem;display:grid;gap:4px}.about-dialog p{margin:6px 0}.about-dialog a{color:var(--ink)}.about-dialog details{margin-top:12px}.about-dialog summary{cursor:pointer}.about-dialog__text{white-space:pre-wrap;font-size:12px;color:var(--ink-dim)}.about-dialog__close{position:absolute;top:10px;right:10px}.about-dialog__close button{padding:0 9px;font-size:18px}.popup__where{display:flex;flex-direction:column;gap:4px;font-size:13px;color:var(--ink-dim)}.popup__where select{max-width:none}.popup__steps{margin:0;padding-left:1.3rem;display:grid;gap:4px;font-size:13px}.ok-text{color:var(--ok);font-size:13px}.warn-text{color:var(--warn);font-size:13px}button.danger{border-color:var(--bad);color:#ffb3ac}.library{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:12px;margin-top:16px;align-items:start}@media(max-width:1040px){.library{grid-template-columns:minmax(0,1fr)}}.library__notice{grid-column:1 / -1;margin:0;font-size:13px;color:var(--ink-dim)}.library__actions{display:flex;flex-wrap:wrap;gap:6px;align-items:center;justify-content:flex-end;text-transform:none;letter-spacing:0;font:400 13px var(--font)}.library__actions button{padding:2px 9px;font-size:13px}.library__count{margin-left:6px;margin-right:auto;font-weight:500}.library .group-box h2{gap:10px;flex-wrap:wrap}.memory{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}@media(max-width:760px){.memory{grid-template-columns:repeat(2,minmax(0,1fr))}}.memory__bank{display:flex;flex-direction:column;gap:3px}.memory__label{font:600 12px var(--font-narrow);text-transform:uppercase;letter-spacing:.08em;color:var(--ink-dim)}.memory__slot{display:flex;gap:8px;align-items:baseline;padding:3px 8px;text-align:left;background:var(--screen-lit);border-color:#00000080}.memory__slot.on{border-color:var(--screen-ink);box-shadow:inset 0 0 0 1px var(--screen-ink)}.memory__num{flex:none;font:600 12px var(--font-narrow);color:var(--ink-dim);font-variant-numeric:tabular-nums}.memory__name{white-space:pre;overflow:hidden;text-overflow:ellipsis;font:500 14px var(--font-narrow);letter-spacing:.05em;color:var(--screen-ink);text-shadow:0 0 5px var(--screen-glow)}.library__search{width:100%;margin-bottom:6px;font:inherit;color:var(--ink);background:var(--control);border:1px solid var(--control-edge);border-radius:var(--ui-radius);padding:4px 8px}.voices{list-style:none;margin:0;padding:0;display:grid;gap:3px;max-height:420px;overflow:auto}.voice-row{display:flex;align-items:center;gap:8px}.voice-row__play{flex:none;width:9.5em;padding:3px 8px;text-align:left;background:var(--screen-lit);border-color:#00000080}.voice-row__name{white-space:pre;font:500 14px var(--font-narrow);letter-spacing:.05em;color:var(--screen-ink);text-shadow:0 0 5px var(--screen-glow)}.voice-row__rename{width:9.5em;font:500 14px var(--font-narrow);color:var(--screen-ink);background:var(--screen);border:1px solid var(--focus);border-radius:3px;padding:2px 6px}.voice-row__source{flex:1;min-width:0;font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.voice-row__problem{color:var(--warn);font-weight:600;cursor:help}.voice-row__tools{display:flex;gap:4px}.voice-row__tools button{padding:1px 7px;font-size:12px}.settings-dialog{width:min(620px,calc(100vw - 32px))}.settings-row{display:flex;flex-wrap:wrap;gap:8px 18px;align-items:flex-start}.settings-field{display:flex;flex-direction:column;gap:4px;padding:3px 2px}.settings-field .control__label{text-align:left}.settings-dialog .note{margin-top:6px}.error-page{display:block;margin:40px auto}.op__eg-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.link-toggle{display:inline-flex;align-items:center;gap:5px;padding:1px 7px;font:500 11px var(--font);text-transform:none;letter-spacing:0;color:var(--ink-dim)}.link-toggle.on{color:var(--ink)}.hidden{visibility:hidden}.main--styling{padding-bottom:calc(var(--keys-h, 0px) + 24px)}.main--styling .keys{position:fixed;left:0;right:0;bottom:0;z-index:30;margin:0;border-radius:0;box-shadow:0 -6px 18px #0007}.style-scrim{position:fixed;left:0;right:0;top:0;bottom:var(--keys-h, 0px);z-index:24;background:#060302c2}.style-sheet{--plate: #4a372b;position:fixed;z-index:25;left:0;right:0;top:12px;bottom:calc(var(--keys-h, 0px) + 12px);margin:auto;width:min(560px,calc(100vw - 24px));height:fit-content;max-height:calc(100% - var(--keys-h, 0px) - 24px);display:flex;flex-direction:column;overflow:hidden;border-radius:10px;background:repeating-linear-gradient(90deg,#ffffff05 0 1px,transparent 1px 3px),linear-gradient(170deg,var(--plate),#33261f 80%);border:2px solid var(--dx-signature);box-shadow:0 24px 60px #000d,0 0 0 1px #000}.style-sheet__head{display:flex;align-items:center;gap:12px;padding:7px 8px 7px 16px;border-bottom:1px solid #6b5444;background:#2b2019}.style-sheet__head h2{margin:0;font:600 16px var(--font-narrow);letter-spacing:.03em;color:var(--ink)}.style-sheet__voice{padding:2px 10px;border-radius:3px;background:var(--screen-lit);color:var(--screen-ink);font:500 15px var(--font-narrow);letter-spacing:.05em;text-shadow:0 0 6px var(--screen-glow);white-space:pre}.style-sheet__head>span:last-of-type{flex:1}.style-sheet__close{width:30px;height:30px;padding:0;display:grid;place-items:center;border-color:transparent;background:none;color:var(--ink-dim);font-size:20px;line-height:1}.style-sheet__close:hover{color:var(--ink)}.style-sheet__body{flex:1;overflow:auto;display:grid;gap:14px;align-content:start;padding:14px 16px}.style-sheet__foot{display:grid;gap:8px;padding:10px 16px 12px;border-top:1px solid #6b5444;background:#2b2019}.style-sheet__actions{display:flex;align-items:center;gap:8px;margin-top:2px}.style-sheet__actions>span{flex:1}.slider:has(.slider__value){grid-template-columns:6.5em 4.5em 1fr 4.5em 3em}.chips{display:grid;gap:4px}.chips--5{grid-template-columns:repeat(5,minmax(0,1fr))}.chips--6{grid-template-columns:repeat(6,minmax(0,1fr))}.chips--4{grid-template-columns:repeat(4,minmax(0,1fr))}.chips--3{grid-template-columns:repeat(3,minmax(0,1fr))}.chip{position:relative;padding:4px 2px;border-radius:6px;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.chip.on{background:var(--screen-ink);border-color:var(--screen-ink);color:#111}.chip.implied{border-color:var(--screen-ink);border-style:dashed}.slider{display:grid;grid-template-columns:6.5em 4.5em 1fr 4.5em;align-items:center;gap:8px;font-size:13px}.slider__label{color:var(--ink-dim)}.slider__end{font-size:12px;white-space:nowrap}.slider__end:nth-of-type(2){text-align:right}.slider__value{font-variant-numeric:tabular-nums;min-width:3em;text-align:right}.slider input{width:100%;min-width:0;accent-color:var(--screen-ink)}.style-wheel{display:grid;justify-items:center;gap:2px}.style-wheel .wheel{width:min(330px,100%)}.slider--dimmed input{opacity:.45}.chips--8{grid-template-columns:repeat(4,minmax(0,1fr))}.chips--drawn .chip{display:grid;justify-items:center;gap:1px;padding:3px 2px 2px;font-size:12px}.eg-icon{width:100%;max-width:64px;height:20px;overflow:visible}.eg-icon path{fill:none;stroke:var(--ink-dim);stroke-width:1.6;stroke-linejoin:round;stroke-linecap:round}.eg-icon__release{stroke:#ffffff2e;stroke-width:1;stroke-dasharray:2 2}.eg-icon--sign path{stroke-dasharray:3 3;opacity:.7}.chip.on .eg-icon path{stroke:#111}.chip.on .eg-icon__release{stroke:#0005}.chip:hover:not(.on) .eg-icon path{stroke:var(--ink)}.style-controls{display:grid;gap:14px;align-content:start}.style-wheel__said{margin:0;min-height:2.9em;max-width:34em;font-size:14px;line-height:1.45;text-align:center;text-wrap:balance;color:var(--ink-dim)}.style-wheel__said b{font-weight:600}.style-wheel__actions{display:flex;flex-wrap:wrap;justify-content:center;gap:8px}.weights{position:relative;width:min(254px,77%);height:24px;margin:-4px 0 4px;border-radius:6px;background:#ffffff10}.weights--empty{visibility:hidden}.weights__part{position:absolute;top:0;bottom:0;display:flex;align-items:center;justify-content:center;gap:5px;padding:0 6px;overflow:hidden;white-space:nowrap;font-size:12px;line-height:1;color:#1a120e;background:var(--colour);border:1px solid var(--panel-edge);cursor:default;transition:left .12s,width .12s}.weights__part:first-child{border-radius:6px 0 0 6px}.weights__part:nth-last-child(1 of.weights__part){border-radius:0 6px 6px 0}.weights__part:only-of-type{border-radius:6px}.weights__part.selected{box-shadow:inset 0 0 0 2px #fff}.weights__part--instrument{background:color-mix(in srgb,var(--colour) 55%,var(--panel));color:var(--ink)}.weights__name{min-width:0;overflow:hidden;text-overflow:ellipsis;font-weight:600}.weights__share{flex:none;font-variant-numeric:tabular-nums;opacity:.8}.weights__edge{position:absolute;top:-4px;bottom:-4px;width:14px;margin-left:-7px;z-index:1;cursor:ew-resize;touch-action:none;outline:none}.weights__edge:after{content:"";position:absolute;left:5px;top:2px;bottom:2px;width:4px;border-radius:2px;background:#fff;border:1px solid var(--panel-edge);opacity:0;transition:opacity .12s}.weights__edge:hover:after,.weights__edge:active:after{opacity:1}.weights__edge:focus-visible:after{opacity:1;box-shadow:0 0 0 2px var(--focus)}.weights:has(.weights__edge:active) .weights__part{transition:none}.style-wheel__off{margin-left:6px;width:22px;height:22px;padding:0;border-radius:50%;line-height:1;vertical-align:1px;color:var(--ink-dim)}.style-wheel__off:hover{color:var(--ink)}.start-from{position:absolute;top:0;right:0;bottom:0;left:0;z-index:3;overflow:auto;display:grid;gap:10px;align-content:start;padding:0 16px 16px;background:linear-gradient(170deg,var(--plate),#33261f 80%)}.start-from__head{position:sticky;top:0;z-index:1;display:flex;align-items:center;gap:12px;margin:0 -16px;padding:7px 8px 7px 16px;border-bottom:1px solid #6b5444;background:#2b2019}.start-from__head h3{margin:0;font:600 16px var(--font-narrow);letter-spacing:.03em;color:var(--ink);white-space:nowrap}.start-from__head .dim{font-size:13px}.start-from__head .style-sheet__close{margin-left:auto}.start-from__group{display:grid;grid-template-columns:6.5em minmax(0,1fr);align-items:start;gap:8px;font-size:13px}.start-from__group .style-row__label{padding-top:5px}.chips--wrap{grid-template-columns:repeat(auto-fill,minmax(88px,1fr))}.style-wheel__actions button{display:inline-flex;align-items:center;gap:6px}.style-wheel__actions .icon__svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.3}.style-rows{display:grid;gap:6px}.style-row{display:grid;grid-template-columns:6.5em minmax(0,1fr);align-items:center;gap:8px;font-size:13px}.style-row__label{color:var(--ink-dim)}.style-fold{border-top:1px solid #6b544480;padding-top:10px}.style-fold summary{display:flex;align-items:baseline;gap:10px;cursor:pointer;font-size:13px;list-style:none}.style-fold summary::-webkit-details-marker{display:none}.style-fold summary:before{content:"";flex:none;width:0;height:0;border:4.5px solid transparent;border-left:6px solid var(--ink-dim);border-right:0;transform:translateY(-1px);transition:transform .15s}.style-fold[open] summary:before{transform:translateY(1px) rotate(90deg)}.style-fold__title{font-weight:600;color:var(--ink)}.style-fold__said{color:var(--ink-dim);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.style-fold[open] summary{margin-bottom:8px}.style-check{display:inline-flex;gap:6px;align-items:center;font-size:13px;color:var(--ink-dim);margin-left:calc(6.5em + 8px)}@media(min-width:1000px){.style-sheet{width:min(920px,calc(100vw - 24px))}.style-sheet__body{grid-template-columns:minmax(300px,370px) minmax(0,1fr);column-gap:26px}.style-wheel{align-self:start}.style-wheel .wheel{width:min(370px,100%)}}.wheel{position:relative;width:100%;aspect-ratio:1;touch-action:none;-webkit-user-select:none;user-select:none}.wheel-field{position:absolute;top:11.54%;right:11.54%;bottom:11.54%;left:11.54%;border-radius:50%;box-shadow:0 0 80px -18px var(--glow),0 0 0 1px #ffffff10;transition:box-shadow .6s;overflow:hidden}.wheel-shade{position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(circle,#0e0907f5,#0e0907e0 20%,#0e09078c 45%,#0e09072e 80%,#0e090700)}.wheel-glow{position:absolute;top:0;right:0;bottom:0;left:0;mix-blend-mode:screen;filter:blur(4px)}.wheel-tip{position:absolute;z-index:2;transform:translate(14px,14px);pointer-events:none;white-space:nowrap;font-size:13px;padding:3px 8px;border-radius:6px;background:#0e0907e6;color:var(--ink)}.wheel-svg{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;overflow:visible}.wheel-hit{fill:transparent;cursor:crosshair}.wheel-svg.dragging:not(.turning),.wheel-svg.dragging:not(.turning) *{cursor:grabbing}.wheel-tick{stroke:#0e09078c;stroke-width:.006;pointer-events:none}.wheel-label{font:500 .092px var(--font-narrow);letter-spacing:.006px;dominant-baseline:middle;pointer-events:none}.pin{cursor:grab;outline:none;transition:opacity .15s}.pin-dot{stroke:var(--bg);stroke-width:.014}.pin-ring{fill:#0e090759;stroke:#ffffff2e;stroke-width:.012}.pin-share{fill:none;stroke:#ffffffd9;stroke-width:.014;stroke-linecap:round}.pin.selected .pin-ring,.pin:focus-visible .pin-ring{stroke:#ffffff8c}.pin.selected .pin-dot,.pin:focus-visible .pin-dot{stroke:#fff}.pin.removing{opacity:.3}.pin-dial,.wheel-svg.turning,.wheel-svg.turning *{cursor:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M18.5 8.5A7 7 0 1 0 19 13M19.5 3.5v5h-5' stroke='%230e0907' stroke-width='4'/%3E%3Cpath d='M18.5 8.5A7 7 0 1 0 19 13M19.5 3.5v5h-5' stroke='white' stroke-width='2'/%3E%3C/g%3E%3C/svg%3E") 12 12,grab}.pin-dial{fill:none;stroke:transparent;stroke-width:.05;pointer-events:stroke}.pin-knob{fill:#fff;opacity:0;transition:opacity .15s;pointer-events:none}.pin:hover .pin-knob,.pin.selected .pin-knob,.pin:focus-visible .pin-knob{opacity:.9}.wheel-centre{cursor:pointer;outline:none}.wheel-centre circle{fill:var(--screen);stroke:var(--dx-signature);stroke-width:.01;transition:fill .15s}.wheel-centre:hover circle,.wheel-centre:focus-visible circle{fill:#0f1d33}.wheel-name{font:600 .074px var(--font-narrow);fill:var(--screen-ink);text-anchor:middle;dominant-baseline:middle}.wheel-hint{font:400 .042px var(--font);fill:var(--ink-dim);text-anchor:middle}button.link{background:none;border:none;padding:0 4px;color:var(--ink-dim);text-decoration:underline;text-underline-offset:2px}@media(max-width:760px){.chips--6{grid-template-columns:repeat(3,minmax(0,1fr))}.style-row,.start-from__group{grid-template-columns:minmax(0,1fr);gap:3px}.start-from__head .dim{display:none}.style-check{margin-left:0}.chips--4{grid-template-columns:repeat(2,minmax(0,1fr))}.slider{grid-template-columns:5.5em 1fr}.slider__end{display:none}.slider:has(.slider__value){grid-template-columns:5.5em 1fr 3em}.style-sheet{top:0;bottom:var(--keys-h, 0px);width:100vw;height:auto;max-height:none;border-radius:0;border-width:0 0 2px}}.dx7-import__hint{margin:0;font-size:13px}.dx7-import__list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:2px 14px}.dx7-import__voice{display:grid;grid-template-columns:auto minmax(0,1fr) 5.5em;align-items:center;gap:4px;border-radius:6px;padding:0 4px}.dx7-import__voice.on{background:#ffffff12}.dx7-import__voice button{display:flex;gap:8px;align-items:baseline;min-width:0;padding:3px 6px;border-color:transparent;background:none;text-align:left}.dx7-import__voice button:hover:not(:disabled){background:#ffffff10}.dx7-import__voice.on button{color:var(--screen-ink)}.dx7-import__num{width:1.6em;text-align:right;font-size:12px;color:var(--ink-dim);font-variant-numeric:tabular-nums}.dx7-import__name{font:500 15px var(--font-narrow);letter-spacing:.04em;white-space:pre;overflow:hidden;text-overflow:ellipsis}.dx7-import__state{font-size:12px;text-align:right}.dx7-import__state.error{color:#e88}.spinner{justify-self:end;width:13px;height:13px;border-radius:50%;border:2px solid #ffffff1c}.spinner.on{border-top-color:var(--screen-ink);animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.spinner.on{animation:none;border-color:var(--screen-ink);opacity:.6}}@media(min-width:1000px){.dx7-import .style-sheet__body{grid-template-columns:minmax(0,1fr)}.dx7-import__list{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:760px){.dx7-import__list{grid-template-columns:minmax(0,1fr)}}
