:root{--bg: #141412;--surface: #1d1c19;--overlay: rgba(18, 17, 15, .92);--line: #35322b;--line-hi: #4a4538;--text: #e8e4da;--dim: #8f8a7d;--accent: #edb655;--accent-hi: #ffd97a;--value: #9fd0ff;--alert: #e6371e;--font: "Cascadia Mono", Consolas, "JetBrains Mono", ui-monospace, monospace}*{border-radius:0!important}*{margin:0;padding:0;box-sizing:border-box}body{background:var(--bg);font-family:var(--font);overflow:hidden;-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none;user-select:none;-webkit-user-select:none;overscroll-behavior:none}body.transparent{background:transparent}#app{position:relative;height:100vh;height:100dvh}#topbar{position:absolute;top:8px;right:12px;z-index:25}#stage{position:relative;height:100%;overflow:hidden}#panel-wrap{height:100%;display:flex;align-items:center;justify-content:center;padding:8px}#panel-wrap svg{width:100%;height:100%;touch-action:none}@media(max-width:820px)and (max-aspect-ratio:232 / 361){#panel-wrap{align-items:flex-start}#panel-wrap svg{height:auto;max-height:100%}}#overlay{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}#panel [id^=pad-]{transition:fill 90ms linear}#panel [id^=pad-].active{fill:var(--accent-hi);filter:drop-shadow(0 0 5px rgba(255,214,120,.95))}#panel #pad-p10 path,#panel #pad-p11 path{transition:fill 90ms linear}#panel #pad-p10.active path.st3,#panel #pad-p11.active path.st3{fill:var(--accent-hi)}#panel [id^=pad-].midi-flash{fill:var(--value);filter:drop-shadow(0 0 5px rgba(120,180,255,.95))}#panel .rec-dot{fill:none;stroke:#ffffff8c;stroke-width:.7;pointer-events:none;transition:fill .12s linear,opacity .12s linear}#panel .rec-dot.hidden{display:none}#panel .rec-dot.filled{fill:var(--accent-hi)}#panel .rec-dot.muted{fill:var(--accent-hi);opacity:.35}#panel .rec-dot.armed{stroke:#e6371e;animation:rec-dot-pulse 1s ease-in-out infinite}@keyframes rec-dot-pulse{0%,to{fill:#e6371e00}50%{fill:#e6371ed9}}#panel [id^=fader-]{transition:y 60ms linear}#panel .sw-opt{opacity:.4;transition:opacity .1s linear,fill .1s linear}#panel #sw1[data-pos="0"] .sw-opt-0,#panel #sw1[data-pos="1"] .sw-opt-1,#panel #sw1[data-pos="2"] .sw-opt-2,#panel #sw2[data-pos="0"] .sw-opt-0,#panel #sw2[data-pos="1"] .sw-opt-1,#panel #sw2[data-pos="2"] .sw-opt-2{opacity:1;fill:var(--accent-hi)}.action-line i{color:var(--text);opacity:.55;font-style:italic;margin-left:6px}.oled-mini{position:absolute;overflow:hidden;background:#000;border:1px solid #38332c;box-shadow:inset 0 0 4px #000c}.oled-mini canvas{display:block;width:100%;height:100%;image-rendering:pixelated;filter:drop-shadow(0 0 1.2px rgba(255,178,56,.55))}.oled-mini.squeezed canvas{image-rendering:auto}.oled-wide{position:absolute;display:flex;flex-direction:column;overflow:hidden;padding:.25em .5em .3em;background:#060605;border:1px solid #38332c;font-family:Sofia Sans Extra Condensed,Arial Narrow,Roboto Condensed,sans-serif;letter-spacing:.02em;color:#e8e2d4;text-shadow:0 0 2px rgba(255,220,150,.4)}.oled-wide.hidden{display:none}.oled-status{flex:none;font-size:.75em;line-height:1.4;white-space:nowrap;overflow:hidden;color:var(--accent);opacity:.9;border-bottom:1px solid rgba(233,160,37,.3);padding-bottom:.15em}.oled-status b{color:var(--accent-hi)}.oled-status i{color:var(--alert);font-style:normal}.oled-lines{flex:1 1 auto;min-height:0;display:flex;flex-direction:column;justify-content:flex-end;overflow:hidden}.oled-line{display:flex;align-items:baseline;gap:.5em;line-height:1.3;white-space:nowrap}.oled-line .t{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis}.oled-line .v{flex:none;color:var(--value)}.oled-line b{color:var(--accent);margin-right:.35em}.oled-line i{opacity:.55;font-style:italic}.oled-line.idle{opacity:.35}.oled-line:nth-last-child(2){opacity:.6}.oled-line:nth-last-child(3){opacity:.35}.info-panel{position:absolute;display:flex;flex-direction:column;width:30ch;font-size:14px;pointer-events:auto;-webkit-user-select:none;user-select:none;padding:.5em;background:#12110f8c}.info-scroll{display:flex;flex-direction:column;gap:.4em;min-height:0;overflow-y:auto;scrollbar-width:thin;scrollbar-color:var(--accent) transparent}.info-scroll::-webkit-scrollbar{width:8px}.info-scroll::-webkit-scrollbar-track{background:transparent}.info-scroll::-webkit-scrollbar-thumb{background-color:var(--accent);border-radius:4px;border:2px solid transparent;background-clip:content-box}.info-panel:hover{outline:1px dashed var(--accent)}.info-handle{display:flex;align-items:center;justify-content:space-between;gap:.5em;margin:-.5em -.5em .4em;padding:.3em .5em;background:var(--overlay);border-bottom:1px solid var(--line);cursor:grab;touch-action:none}.info-panel.dragging .info-handle{cursor:grabbing}.info-drag-icon{color:var(--accent);font-size:11px;letter-spacing:.08em;text-transform:uppercase;opacity:.8}.info-controls{display:flex;gap:2px}.info-controls button,.settings-bar button{background:transparent;border:1px solid var(--accent);color:var(--accent);font:inherit;font-size:10px;line-height:1;padding:3px 5px;cursor:pointer}.settings-bar{position:absolute;top:8px;left:12px;z-index:25;display:flex;align-items:center;gap:6px}.settings-bar .settings-gear{background:var(--surface);font-size:13px;padding:5px 7px}.settings-bar .settings-gear:hover{background:var(--line)}.settings-body{display:none}.settings-bar.open .settings-body{display:flex;align-items:center;gap:8px;background:var(--overlay);border:1px solid var(--line);padding:3px 6px}.settings-groups{display:flex;align-items:center;gap:10px}.settings-group{display:flex;align-items:center;gap:2px}.settings-cap{color:var(--dim);font-size:9px;letter-spacing:.08em;text-transform:uppercase;margin-right:3px}.panel-handle{position:absolute;align-items:center;pointer-events:auto;background:var(--overlay);border:1px solid var(--line);padding:2px 4px}.panel-grip{color:var(--accent);font-size:13px;letter-spacing:.1em;padding:0 5px 0 2px;cursor:grab;touch-action:none}.info-grip{position:absolute;right:-7px;bottom:-7px;width:18px;height:18px;display:flex;align-items:center;justify-content:center;background:var(--overlay);border:1px solid var(--accent);color:var(--accent);font-size:11px;line-height:1;cursor:nwse-resize;touch-action:none;opacity:0;transition:opacity .12s linear}.info-panel:hover .info-grip{opacity:1}.action-log{display:flex;flex-direction:column;gap:.15em;padding:0 .3em;min-height:4.8em}.model-section{background:var(--overlay);border:1px solid var(--line);padding:.35em .85em}.model-head{font-size:.9em;cursor:pointer;-webkit-user-select:none;user-select:none;color:var(--text)}.model-head b{color:var(--accent)}.model-row{display:flex;justify-content:space-between;flex-wrap:wrap;gap:0 1em;font-size:.8em;line-height:1.35;color:var(--text)}.model-row b{color:var(--accent)}.model-row .v{color:var(--value);font-variant-numeric:tabular-nums}.model-row.dead{opacity:.5}.model-row.rec b{color:var(--alert)}.model-row i{opacity:.55}.model-row[data-ctl]:hover{background:#ffffff0f}.ctl-hl,#panel .live-hl{filter:drop-shadow(0 0 4px var(--accent)) drop-shadow(0 0 10px var(--accent))}.static-labels{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.static-label{position:absolute;transform:translate(-50%);font-family:Sofia Sans Extra Condensed,Arial Narrow,Roboto Condensed,sans-serif;font-weight:500;line-height:1.05;text-align:center;white-space:pre-line;color:#ece5d8;letter-spacing:.02em;text-shadow:0 0 3px rgba(0,0,0,.95),0 0 7px rgba(0,0,0,.75)}.static-label.pad{transform:translate(-50%,-50%);opacity:.9}.static-label.in-knob{transform:translate(-50%,-50%);font-weight:600;letter-spacing:.04em;text-shadow:0 0 3px rgba(0,0,0,1),0 0 6px rgba(0,0,0,1)}.static-label.dead{opacity:.4}.kit-grid{display:grid;grid-template-columns:auto minmax(6ch,1fr) repeat(4,auto) auto;column-gap:.7em;row-gap:.1em;font-size:.8em;line-height:1.35;color:var(--text)}.kit-grid b{color:var(--accent)}.kit-grid .n{text-align:right;color:var(--value);font-variant-numeric:tabular-nums}.kit-grid .head{color:var(--text);opacity:.45}.kit-grid .eng{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.kit-grid .rec,.kit-grid .rec b{color:var(--alert)}.action-line{font-size:.85em;line-height:1.25;color:var(--text)}.action-line b{color:var(--accent)}.action-line span{color:var(--value)}.action-line:nth-child(2){opacity:.72}.action-line:nth-child(3){opacity:.5}.action-line:nth-child(4){opacity:.32}.status-chip{background:var(--overlay);border:1px solid var(--line);color:var(--text);font-size:1em;padding:.45em .85em}.status-chip b{color:var(--accent)}.status-chip i{color:var(--alert);font-style:normal}.toolbar{position:relative}.menu-toggle{background:var(--surface);border:1px solid var(--accent);color:var(--accent);font-family:inherit;font-size:16px;line-height:1;padding:7px 11px;cursor:pointer}.menu-toggle:hover{background:var(--line)}.menu{position:absolute;top:calc(100% + 6px);right:0;display:none;flex-direction:column;gap:4px;min-width:210px;background:var(--overlay);border:1px solid var(--line);padding:8px;z-index:30}.menu.open{display:flex}.menu-item{background:var(--surface);border:1px solid var(--line-hi);color:var(--text);font-family:inherit;font-weight:600;font-size:13px;text-align:left;padding:8px 10px;cursor:pointer}.menu-item:hover{background:var(--line);border-color:var(--accent)}.menu-item:disabled{opacity:.45;cursor:not-allowed}.menu-item:disabled:hover{background:var(--surface);border-color:var(--line-hi)}.menu-section{display:flex;flex-direction:column;gap:4px}.menu-section+.menu-section{margin-top:8px;padding-top:8px;border-top:1px solid var(--line)}.menu-caption{color:var(--dim);font-size:10px;letter-spacing:.12em;text-transform:uppercase}.menu-link{display:flex;align-items:baseline;justify-content:space-between;gap:12px;color:var(--text);font-size:12px;text-decoration:none;padding:4px 2px}.menu-link:hover{color:var(--accent-hi)}.menu-link:hover span:first-child{text-decoration:underline}.menu-arrow{color:var(--dim)}.menu-link:hover .menu-arrow{color:var(--accent-hi)}.menu-status{color:var(--dim);font-size:12px;padding:2px 2px 0}.cc-drawer{position:fixed;top:0;right:0;height:100%;width:min(330px,88vw);display:flex;flex-direction:column;background:var(--overlay);border-left:1px solid var(--line);transform:translate(100%);transition:transform .2s ease;z-index:20}.cc-drawer.open{transform:translate(0)}.cc-header{flex:none;display:flex;align-items:center;justify-content:space-between;padding:10px 12px 10px 16px;border-bottom:1px solid var(--line);color:var(--accent);font-size:13px;font-weight:600}.cc-close{background:none;border:none;color:var(--dim);font-family:inherit;font-size:20px;line-height:1;padding:0 4px;cursor:pointer}.cc-close:hover{color:var(--text)}.cc-list{flex:1 1 auto;min-height:0;overflow-y:auto;padding:14px 16px;scrollbar-width:thin;scrollbar-color:var(--accent) transparent}.cc-list::-webkit-scrollbar{width:8px}.cc-list::-webkit-scrollbar-track{background:transparent}.cc-list::-webkit-scrollbar-thumb{background-color:var(--accent);border-radius:4px;border:2px solid transparent;background-clip:content-box}.cc-title{color:var(--accent);font-size:13px;font-weight:600;margin-bottom:10px}.cc-row{display:grid;grid-template-columns:2.4em 1fr auto;align-items:center;gap:2px 6px;margin-bottom:8px;font-size:12px;color:var(--text)}.cc-row .cc-num{color:var(--value)}.cc-row .cc-val{text-align:right;color:var(--dim)}.cc-row input[type=range]{grid-column:1 / -1;width:100%;accent-color:var(--accent);height:18px;cursor:pointer}.piano-section{flex:none;border-top:1px solid var(--line);padding:10px 12px 14px}.piano-bar{display:flex;align-items:center;gap:6px;color:var(--text);font-size:12px;margin-bottom:8px}.piano-bar button{background:var(--surface);border:1px solid var(--line-hi);color:var(--text);font-family:inherit;width:22px;height:22px;cursor:pointer}.piano{position:relative;height:96px;-webkit-user-select:none;user-select:none;touch-action:none}.piano-key{position:absolute;top:0;box-sizing:border-box;cursor:pointer}.piano-key.white{height:100%;background:#e8e6e1;border:1px solid var(--bg);color:#555;font-size:8px;display:flex;align-items:flex-end;justify-content:center;padding-bottom:2px}.piano-key.black{height:58%;background:var(--bg);border:1px solid #000;z-index:2}.piano-key.white.down{background:var(--accent-hi)}.piano-key.black.down{background:var(--accent)}
