:root{color-scheme:dark;--bg-0:#0a0a0b;--bg-1:#111114;--bg-2:#18181c;--bg-3:#1f1f25;--bg-4:#26262e;--border:#2a2a34;--border-hi:#3a3a48;--text-0:#e8e8f0;--text-1:#c2c2d6;--text-2:#a6a6c0;--accent:#e8c840;--accent-dim:#8c7a28;--green:#40c878;--green-dim:#1a5430;--red:#e84040;--red-dim:#5c1a1a;--blue:#4080e8;--mono:"IBM Plex Mono", "Courier New", monospace;--sans:"IBM Plex Sans", system-ui, sans-serif;--status-h:32px;--signal-h:60px;--state-h:64px;--ctrl-w:320px}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body{overscroll-behavior:none;background:var(--bg-0);width:100%;height:100%;color:var(--text-0);font-family:var(--sans);-webkit-font-smoothing:antialiased;color-scheme:dark;font-size:13px;line-height:1.4;overflow:hidden}select{color-scheme:dark;background-color:var(--bg-1,#111114)!important;color:var(--text-0,#e8e8f0)!important}select:hover{background-color:var(--bg-4,#26262e)!important}option,optgroup{background-color:var(--bg-1,#111114)!important;color:var(--text-0,#e8e8f0)!important}button{color:inherit;font:inherit;cursor:pointer;background:0 0;border:none;padding:0}#status-bar{min-height:var(--status-h);background:var(--bg-2);border-bottom:1px solid var(--border);z-index:100;font-family:var(--mono);user-select:none;flex-wrap:wrap;align-items:center;gap:4px 16px;padding:0 12px;font-size:12px;display:flex;position:fixed;top:0;left:0;right:0}#status-name{color:var(--accent);letter-spacing:.08em;font-weight:500}#status-fps{color:var(--text-1);min-width:52px}#status-bank{color:var(--text-0)}#status-state{color:var(--text-1)}.indicator{letter-spacing:.1em;background:var(--bg-4);color:var(--text-2);border:1px solid var(--border);border-radius:3px;padding:2px 6px;font-size:10px;font-weight:500;transition:color .1s,background .1s}.indicator.active{color:var(--green);background:var(--green-dim);border-color:var(--green)}.indicator.learning{color:var(--accent);border-color:var(--accent);animation:.5s ease-in-out infinite alternate learn-pulse}@keyframes learn-pulse{0%{background:0 0}to{background:color-mix(in srgb, var(--accent-dim) 60%, transparent)}}.status-right{gap:8px;margin-left:auto;display:flex}.status-right button{font-family:var(--mono);color:var(--text-1);border:1px solid var(--border);background:var(--bg-3);border-radius:3px;padding:2px 8px;font-size:13px;transition:color .1s,border-color .1s}.status-right button:hover{color:var(--text-0);border-color:var(--border-hi)}#btn-record.recording{color:var(--red);border-color:var(--red);background:var(--red-dim)}#btn-keylock.active{color:var(--accent);border-color:var(--accent-dim)}.res-btn{padding:2px 6px!important;font-size:11px!important}.res-btn.active{color:var(--accent)!important;border-color:var(--accent-dim)!important}#btn-second-screen.active{color:var(--green)!important;border-color:var(--green)!important}.status-sep{background:var(--border);flex-shrink:0;align-self:center;width:1px;height:16px}#app{top:var(--status-h);left:0;right:0;bottom:calc(var(--signal-h) + var(--state-h) + env(safe-area-inset-bottom,0px));gap:0;display:flex;position:absolute}#output-panel{border-right:1px solid var(--border);background:#000;flex:1;justify-content:center;align-items:center;display:flex;position:relative;overflow:hidden}#output-canvas{touch-action:none;width:100%;height:100%;display:block}#warp-grid-overlay{pointer-events:none;z-index:5;width:100%;height:100%;position:absolute;top:0;left:0}#feedback-overlay{pointer-events:none;font-family:var(--mono);color:var(--accent);font-size:12px;position:absolute;inset:0}#app,#control-panel,#feedback-overlay,#debug-overlay{user-select:none;-webkit-user-drag:none}#app input,#app textarea,#control-panel input,#control-panel textarea{user-select:text}.feedback-item{cursor:move;pointer-events:all;white-space:nowrap;text-shadow:0 0 8px #000c,0 1px 3px #000000e6;user-select:none;background:#0000004d;border-radius:2px;padding:1px 4px;line-height:1;position:absolute}#video-spy{border:1px solid var(--border);background:var(--bg-2);font-family:var(--mono);color:var(--text-2);text-align:center;cursor:pointer;user-select:none;border-radius:2px;padding:2px;font-size:10px;position:absolute;bottom:8px;right:8px;box-shadow:0 2px 8px #00000080}#video-spy:hover{border-color:var(--border-hi)}#video-spy canvas{display:block}#control-panel{width:var(--ctrl-w);background:var(--bg-2);flex-direction:column;flex-shrink:0;display:flex;overflow:hidden}#tab-bar{border-bottom:1px solid var(--border);flex-shrink:0;gap:0;display:flex;overflow-x:auto}.tab{font-family:var(--mono);letter-spacing:.05em;color:var(--text-2);white-space:nowrap;border-bottom:2px solid #0000;flex-shrink:0;padding:7px 10px;font-size:11px;font-weight:500;transition:color .1s,border-color .1s}.tab.tab-sep{border-left:1px solid var(--border);margin-left:4px}.tab:hover{color:var(--text-1)}.tab.active{color:var(--accent);border-bottom-color:var(--accent)}.tab-content{flex:1;display:none;overflow:hidden auto}.tab-content.active{display:block}.tab-content::-webkit-scrollbar{width:4px}.tab-content::-webkit-scrollbar-track{background:var(--bg-2)}.tab-content::-webkit-scrollbar-thumb{background:var(--border-hi);border-radius:2px}.panel-group{border-bottom:1px solid var(--border-hi,var(--border))}.group-header{font-family:var(--mono);letter-spacing:.18em;color:var(--accent);text-transform:uppercase;background:var(--bg-2);border-top:1px solid var(--border-hi,var(--border));user-select:none;z-index:2;padding:10px 10px 5px;font-size:9px;font-weight:500;position:sticky;top:0}.panel-group>.panel-section>.section-header{padding-left:16px}.panel-subsection{border-left:1px solid var(--border);margin-left:12px;padding-left:10px}.subsection-header{font-family:var(--mono);letter-spacing:.12em;color:var(--text-1,var(--text));text-transform:uppercase;border-top:1px solid var(--border);user-select:none;cursor:pointer;margin-top:2px;padding:9px 8px 3px;font-size:9px;font-weight:600}.subsection-header:hover{color:var(--accent,var(--text-1))}.subsection-header.collapsed:after{content:" ▸";opacity:.7}.subsection-header:not(.collapsed):after{content:" ▾";opacity:.7}.panel-subsection.collapsed>:not(.subsection-header),.subsection-hidden{display:none!important}.panel-subsection:first-of-type>.subsection-header{border-top:none;margin-top:0;padding-top:5px}#tab-workspace-slot{flex-shrink:0;align-items:center;display:inline-flex}#tab-workspace-slot:not(:empty){border-left:1px solid var(--border);margin-left:4px}.tab.tab-workspace{color:var(--accent);align-items:center;gap:6px;display:inline-flex}.tab.tab-workspace .ws-close{color:var(--text-2);cursor:pointer;background:0 0;border:none;padding:2px 3px;font-size:9px;line-height:1}.tab.tab-workspace .ws-close:hover{color:var(--text-1)}.imw-sel-group{font-family:var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--accent);pointer-events:none;user-select:none;padding:7px 10px 3px;font-size:9px}.imw-sel-group:not(:first-child){border-top:1px solid var(--border);margin-top:3px}button.ws-open{width:calc(100% - 20px);font-family:var(--mono);letter-spacing:.06em;color:var(--text-2);background:var(--bg-3,var(--bg-2));border:1px solid var(--border);cursor:pointer;border-radius:3px;margin:6px 10px 8px;padding:6px 8px;font-size:10px;display:block}button.ws-open:hover{color:var(--accent);border-color:var(--border-hi,var(--border))}.panel-section{border-bottom:1px solid var(--border)}.section-header{font-family:var(--mono);letter-spacing:.1em;color:var(--text-2);background:var(--bg-1);text-transform:uppercase;user-select:none;cursor:pointer;z-index:1;padding:6px 10px 5px;font-size:10px;font-weight:500;position:sticky;top:0}.section-header:hover{color:var(--text-1)}#current-bank-name{color:var(--accent);font-weight:400}.section-header.collapsed{color:var(--text-2);opacity:.6}.param-row.param-locked{opacity:.55}.param-row.param-locked:after{content:"🔒";margin-left:3px;font-size:9px}.section-header.collapsed:after{content:" ▸"}.section-header:not(.collapsed):after{content:" ▾"}.panel-section.collapsed>:not(.section-header){display:none!important}.section-header-btns{opacity:0;gap:4px;transition:opacity .1s;display:flex;position:absolute;top:50%;right:8px;transform:translateY(-50%)}.section-header:hover .section-header-btns{opacity:1}.section-header-btns button{border:1px solid var(--border);color:var(--text-2);cursor:pointer;background:0 0;border-radius:2px;padding:0 4px;font-size:10px;line-height:14px}.section-header-btns button:hover{color:var(--accent);border-color:var(--accent-dim)}.cp-sub-header{font-family:var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--text-2);border-top:1px solid var(--border);opacity:.75;margin-top:2px;padding:6px 10px 2px;font-size:9px}.detached-panel{z-index:900;background:var(--bg-2);border:1px solid var(--border-hi);resize:both;border-radius:4px;min-width:280px;min-height:80px;position:fixed;overflow:auto;box-shadow:0 4px 24px #0009}.detached-panel-title{background:var(--bg-4);border-bottom:1px solid var(--border);cursor:move;user-select:none;font-family:var(--mono);color:var(--text-1);text-transform:uppercase;letter-spacing:.08em;justify-content:space-between;align-items:center;padding:4px 8px;font-size:11px;display:flex}.detached-panel-title button{color:var(--text-2);cursor:pointer;background:0 0;border:none;padding:0 2px;font-size:13px;line-height:1}.detached-panel-title button:hover{color:var(--text-0)}.detached-panel-body{max-height:85vh;overflow-y:auto}.source-select{grid-column:2/4;align-self:stretch;min-width:0}.source-select .imw-sel-trigger{box-sizing:border-box;height:100%}.blend-select{min-width:100px}.param-row{border-bottom:1px solid var(--bg-1);cursor:default;touch-action:manipulation;grid-template-columns:1fr 52px 36px 36px 58px;align-items:center;gap:4px;min-height:28px;padding:0 10px;transition:background 50ms;display:grid}.param-row:hover{background:var(--bg-4)}.param-row.active{background:color-mix(in srgb, var(--accent-dim) 40%, var(--bg-3))}.param-label{color:var(--text-1);white-space:nowrap;text-overflow:ellipsis;user-select:none;font-size:12px;overflow:hidden}.param-row.active .param-label{color:var(--accent)}.param-ctrl{font-family:var(--mono);color:var(--text-2);text-align:center;white-space:nowrap;user-select:none;font-size:10px}.param-ctrl.assigned{color:var(--blue)}.param-ctrl.lfo{color:var(--green)}.param-ctrl.midi{color:#c878e8}.param-ctrl.mouse{color:#e88040}.param-ctrl.sound{color:#40c8e8}.param-ctrl.stroke{color:#e8c840}.param-value{font-family:var(--mono);color:var(--text-0);text-align:right;user-select:none;font-size:12px;font-weight:500}.param-range{font-family:var(--mono);color:var(--text-2);text-align:right;white-space:nowrap;cursor:pointer;user-select:none;border-bottom:1px dashed #0000;font-size:10px;overflow:hidden}.param-range:hover{color:var(--text-1);border-bottom-color:var(--border)}.param-range.overridden{color:var(--accent)}.param-row.toggle-row .param-value,.param-row.select-row .param-value,.param-row.trigger-row .param-value{grid-column:3/-1}.param-row.toggle-row,.param-row.trigger-row{cursor:pointer}.param-row.toggle-row .param-value{text-align:right}.toggle-dot{background:var(--bg-4);border:1px solid var(--border-hi);border-radius:50%;width:8px;height:8px;transition:background .1s,border-color .1s;display:inline-block}.toggle-dot.on{background:var(--green);border-color:var(--green)}.param-row.has-slider{grid-template-rows:28px 4px;height:auto;padding-bottom:4px}.param-slider{-webkit-appearance:none;background:var(--bg-4);cursor:pointer;border-radius:2px;outline:none;grid-column:1/-1;width:100%;height:3px;margin:0}.param-slider::-webkit-slider-thumb{-webkit-appearance:none;background:var(--accent);cursor:pointer;border-radius:50%;width:10px;height:10px}.param-slider::-moz-range-thumb{background:var(--accent);cursor:pointer;border:none;border-radius:50%;width:10px;height:10px}.param-select{width:100%}select.param-select{background:var(--bg-3);border:1px solid var(--border);color:var(--text-0);font-family:var(--mono);cursor:pointer;color-scheme:dark;border-radius:2px;outline:none;padding:2px 4px;font-size:11px}select.param-select:focus{border-color:var(--accent)}select.param-select option,select.param-select optgroup{background:var(--bg-1);color:var(--text-1)}div.param-select .imw-sel-trigger{box-sizing:border-box;width:100%}.imw-sel{user-select:none;flex-direction:column;min-width:72px;display:inline-flex;position:relative}.imw-sel-trigger{background:var(--bg-3);border:1px solid var(--border);cursor:pointer;font:11px/1.5 var(--mono);color:var(--text-1);white-space:nowrap;border-radius:2px;justify-content:space-between;align-items:center;gap:4px;padding:3px 6px 3px 7px;transition:border-color .1s,color .1s;display:flex}.imw-sel-trigger:hover{border-color:var(--border-hi);color:var(--text-0)}.imw-sel-chev{color:var(--accent);flex-shrink:0;font-size:9px}.imw-sel-menu{z-index:9999;background:var(--bg-2);border:1px solid var(--border-hi);border-radius:3px;min-width:100%;position:absolute;top:calc(100% + 2px);left:0;overflow:hidden;box-shadow:0 6px 16px #0009}.imw-sel-item{font:11px/1.5 var(--mono);color:var(--text-1);cursor:pointer;white-space:nowrap;padding:5px 12px 5px 10px;transition:background 80ms}.imw-sel-item:hover{background:var(--bg-3);color:var(--text-0)}.imw-sel-item.sel{color:var(--accent)}.param-btn-group{flex-wrap:wrap;gap:2px;width:100%;display:flex}.param-opt-btn{background:var(--bg-3);border:1px solid var(--border);color:var(--text-2);font-family:var(--mono);cursor:pointer;white-space:nowrap;text-align:center;border-radius:2px;flex:auto;min-width:0;padding:2px 3px;font-size:9px;line-height:1.4}.param-opt-btn:hover{background:var(--bg-4);color:var(--text-0);border-color:var(--border-hi)}.param-opt-btn.active{background:var(--accent-dim);border-color:var(--accent);color:var(--accent)}#buffer-canvas{border:1px solid var(--border);image-rendering:pixelated;background:#000;max-width:100%;margin:8px auto;display:block}#geometry-controls{flex-wrap:wrap;gap:4px;padding:8px 10px;display:flex}.geo-btn{font-family:var(--mono);background:var(--bg-3);border:1px solid var(--border);color:var(--text-1);cursor:pointer;border-radius:3px;padding:4px 8px;font-size:11px;transition:all .1s}.geo-btn:hover{color:var(--text-0);border-color:var(--border-hi)}.geo-btn.active{color:var(--accent);border-color:var(--accent-dim);background:color-mix(in srgb, var(--accent-dim) 40%, var(--bg-3))}#model-import{flex-direction:column;gap:6px;padding:8px 10px;display:flex}.import-btn{font-family:var(--mono);background:var(--bg-3);border:1px solid var(--border);color:var(--text-1);cursor:pointer;text-align:left;border-radius:3px;padding:5px 10px;font-size:11px;transition:all .1s}.import-btn:hover{color:var(--text-0);border-color:var(--border-hi)}.import-btn.active{color:var(--accent);border-color:var(--accent);background:#e8c84014}.cap-btn.pinned{color:#60a0e0;background:#60a0e014;border-color:#60a0e0}.slot-picker{z-index:2000;background:var(--bg-3);border:1px solid var(--border-hi);border-radius:5px;min-width:140px;padding:6px;position:fixed;box-shadow:0 4px 16px #0009}.slot-picker.hidden{display:none}.slot-picker-auto{width:100%;font-family:var(--mono);background:var(--bg-4);border:1px solid var(--border);color:var(--text-1);cursor:pointer;text-align:left;border-radius:3px;margin-bottom:6px;padding:4px 8px;font-size:11px;display:block}.slot-picker-auto:hover{border-color:var(--border-hi);color:var(--text-0)}.slot-picker-auto.active{color:var(--accent);border-color:var(--accent)}.slot-picker-grid{grid-template-columns:repeat(4,1fr);gap:3px;display:grid}.slot-picker-slot{font-family:var(--mono);background:var(--bg-4);border:1px solid var(--border);color:var(--text-2);cursor:pointer;text-align:center;border-radius:2px;padding:5px 2px;font-size:10px}.slot-picker-slot:hover{color:var(--text-0);border-color:var(--border-hi)}.slot-picker-slot.filled{color:var(--text-1);border-color:#404060}.slot-picker-slot.active{color:#60a0e0;background:#60a0e01f;border-color:#60a0e0}.import-note{color:var(--text-2);font-size:11px;font-family:var(--mono)}body.dnd-active:after{content:"Drop file to load";border:2px dashed var(--accent-dim);font-family:var(--mono);color:var(--accent);pointer-events:none;z-index:9000;background:#e8c8400f;border-radius:6px;justify-content:center;align-items:center;font-size:18px;display:flex;position:fixed;inset:0}#warp-editor-container{flex-direction:column;gap:6px;padding:8px 10px 10px;display:flex}.warp-canvas{aspect-ratio:288/200;border:1px solid var(--border);cursor:crosshair;background:#0d0d14;border-radius:3px;width:100%;display:block}.warp-canvas:hover{border-color:var(--border-hi)}.warp-controls{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.warp-ctrl-label{font-family:var(--mono);color:var(--text-2);white-space:nowrap;font-size:10px}.warp-slider{min-width:60px;height:3px;accent-color:var(--accent);flex:1}.warp-presets{flex-wrap:wrap;gap:4px;display:flex}.warp-preset-btn{font-family:var(--mono);background:var(--bg-3);border:1px solid var(--border);color:var(--text-2);cursor:pointer;border-radius:3px;padding:3px 7px;font-size:10px;transition:all .1s}.warp-preset-btn:hover{color:var(--text-0);border-color:var(--border-hi)}.warp-slots{flex-wrap:wrap;align-items:center;gap:4px;display:flex}.warp-slot-btn{font-family:var(--mono);background:var(--bg-3);border:1px solid var(--border);color:var(--text-1);cursor:pointer;border-radius:3px;padding:3px 8px;font-size:10px;transition:all .1s}.warp-slot-btn:hover{color:var(--accent);border-color:var(--accent-dim)}.table-list-row{cursor:pointer;font-family:var(--mono);color:var(--text-1);border-radius:3px;align-items:center;padding:3px 8px;font-size:11px;display:flex}.table-list-row:hover{background:var(--bg-4)}.table-list-row.active{background:var(--bg-4);color:var(--accent)}#table-editor{cursor:default;border:1px solid var(--border);border-radius:3px;width:calc(100% - 20px);margin:0 10px 8px;display:block}#table-preset-strip{flex-wrap:wrap;gap:3px;padding:4px 10px 6px;display:flex}.table-preset-btn{font-size:9px;font-family:var(--mono);background:var(--bg-3);border:1px solid var(--border);color:var(--text-2);cursor:pointer;border-radius:2px;padding:2px 6px;line-height:1.4}.table-preset-btn:hover:not(:disabled){border-color:var(--border-hi);color:var(--text-1)}.table-preset-btn:disabled{opacity:.35;cursor:default}#btn-add-movie{font-family:var(--mono);background:var(--bg-3);border:1px solid var(--border);color:var(--text-1);cursor:pointer;border-radius:3px;margin:8px 10px;padding:5px 10px;font-size:11px;transition:all .1s;display:block}#btn-add-movie:hover{color:var(--text-0);border-color:var(--border-hi)}.clip-empty{font-family:var(--mono);color:var(--text-2);text-align:center;padding:12px 10px;font-size:10px}.clip-item{border-bottom:1px solid var(--bg-1);cursor:pointer;align-items:center;gap:8px;padding:5px 8px;transition:background 50ms;display:flex}.clip-item:hover{background:var(--bg-4)}.clip-item.active{background:var(--bg-3)}.clip-thumb{background:var(--bg-0);border:1px solid var(--border);width:80px;height:45px;color:var(--text-2);border-radius:2px;flex-shrink:0;justify-content:center;align-items:center;font-size:16px;display:flex;position:relative;overflow:hidden}.clip-thumb img{object-fit:cover;width:100%;height:100%;display:block}.clip-item.active .clip-thumb{border-color:var(--accent-dim)}.clip-thumb-playing{color:var(--accent);background:#0a0a0b73;justify-content:center;align-items:center;font-size:18px;display:flex;position:absolute;inset:0}.clip-info{flex-direction:column;flex:1;gap:3px;min-width:0;display:flex}.clip-name{font-family:var(--mono);color:var(--text-1);white-space:nowrap;text-overflow:ellipsis;font-size:11px;overflow:hidden}.clip-item.active .clip-name{color:var(--accent)}.clip-meta{font-family:var(--mono);color:var(--text-2);align-items:center;gap:5px;font-size:10px;display:flex}.clip-key{background:var(--bg-4);border:1px solid var(--border);font-size:9px;font-family:var(--mono);color:var(--text-2);border-radius:2px;padding:0 3px}.clip-remove{color:var(--text-2);opacity:0;border-radius:2px;margin-left:auto;padding:1px 4px;font-size:10px;transition:opacity .1s,color .1s}.clip-item:hover .clip-remove{opacity:1}.clip-remove:hover{color:var(--red)!important}#ctrl-map-panel{z-index:900;background:var(--bg2);border:1px solid var(--border);border-radius:4px;flex-direction:column;min-width:260px;max-width:340px;max-height:420px;font-size:11px;display:flex;position:fixed;box-shadow:0 4px 20px #0009}.cm-titlebar{background:var(--bg3);border-bottom:1px solid var(--border);letter-spacing:.06em;text-transform:uppercase;color:var(--fg2);align-items:center;gap:4px;padding:5px 8px;font-size:11px;font-weight:600;display:flex}.cm-titlebar span{flex:1}.cm-titlebar button{border:1px solid var(--border);color:var(--fg2);cursor:pointer;background:0 0;border-radius:2px;padding:1px 5px;font-size:10px}.cm-titlebar button:hover{background:var(--accent);color:#fff}.cm-list{flex:1;padding:4px 0;overflow-y:auto}.cm-empty{color:var(--fg3);text-align:center;padding:12px;font-style:italic}.cm-group{border-bottom:1px solid var(--border);padding:2px 0}.cm-group:last-child{border-bottom:none}.cm-row{cursor:default;align-items:center;gap:6px;padding:3px 8px;display:flex}.cm-row:hover{background:var(--bg3)}.cm-pid{color:var(--fg1);flex:1;font-family:monospace;font-size:10px}.cm-type{color:var(--accent);min-width:52px}.cm-detail{color:var(--fg3);min-width:44px;font-size:10px}.cm-remove{color:var(--fg3);cursor:pointer;opacity:.5;background:0 0;border:none;padding:0 2px;font-size:10px}.cm-remove:hover{color:#f55;opacity:1}#signal-path{bottom:calc(var(--state-h) + env(safe-area-inset-bottom,0px));height:var(--signal-h);background:var(--bg-1);border-top:1px solid var(--border);z-index:80;align-items:flex-start;padding:4px 12px;display:flex;position:fixed;left:0;right:0;overflow:hidden}body.sp-floating #signal-path-docked-space{height:0}#signal-path.sp-float-panel{border:1px solid var(--border);z-index:300;border-radius:4px;flex-direction:column;align-items:stretch;width:auto;min-width:400px;max-width:90vw;height:auto;min-height:28px;padding:0;position:fixed;bottom:auto;left:auto;right:auto;overflow:visible;box-shadow:0 4px 20px #0009}#signal-path.sp-float-panel .sp-float-titlebar{background:var(--bg-3);border-bottom:1px solid var(--border);cursor:move;user-select:none;font-family:var(--mono);color:var(--text-2);text-transform:uppercase;letter-spacing:.08em;justify-content:space-between;align-items:center;padding:3px 8px;font-size:10px;display:flex}#signal-path.sp-float-panel .sp-float-titlebar button{color:var(--text-2);padding:0 4px;font-size:11px;line-height:1}#signal-path.sp-float-panel .sp-float-body{padding:6px 12px 8px;overflow:auto hidden}#signal-path.sp-float-panel #signal-path-display{padding:0}#signal-path-display{font-family:var(--mono);color:var(--text-1);white-space:nowrap;flex-direction:column;align-items:flex-start;gap:0;font-size:11px;display:flex}.sp-node{border:1px solid var(--border);background:var(--bg-3);color:var(--text-1);border-radius:3px;padding:3px 8px;transition:all .1s}.sp-node.active{color:var(--accent);border-color:var(--accent-dim)}.sp-node.source{color:var(--text-0);background:var(--bg-4)}.sp-arrow{color:var(--text-2);font-size:10px}.sp-merge{color:var(--text-2)}.sp-node.draggable{cursor:grab}.sp-node.draggable:active{cursor:grabbing}.sp-node.drag-over{outline:1px solid var(--accent);background:var(--accent-dim)}.seq-card{border-bottom:1px solid var(--border);padding:6px 10px 8px}.seq-card:last-child{border-bottom:none}.seq-card-hdr{justify-content:space-between;align-items:center;margin-bottom:5px;display:flex}.seq-card-label{font-family:var(--mono);color:var(--text-2);text-transform:uppercase;letter-spacing:.06em;font-size:11px}.seq-rec-btn{font-family:var(--mono);border:1px solid var(--border);background:var(--bg-4);color:var(--text-2);cursor:pointer;border-radius:3px;padding:2px 7px;font-size:10px;transition:color .1s,border-color .1s,background .1s}.seq-rec-btn.active{color:var(--red);border-color:var(--red);background:var(--red-dim)}.seq-rec-btn:hover{color:var(--text-0);border-color:var(--border-hi)}.seq-row-label{font-family:var(--mono);color:var(--text-2);margin-bottom:3px;font-size:10px}.seq-src-row{flex-wrap:wrap;gap:3px;margin-bottom:4px;display:flex}.seq-src-btn{font-family:var(--mono);border:1px solid var(--border);background:var(--bg-4);color:var(--text-1);cursor:pointer;border-radius:3px;padding:2px 7px;font-size:10px;transition:color .1s,border-color .1s}.seq-src-btn:hover{color:var(--text-0);border-color:var(--border-hi)}.seq-src-btn.active{color:var(--accent);border-color:var(--accent-dim)}.seq-mem-hint{font-family:var(--mono);color:var(--text-2);text-align:right;padding:2px 0 0;font-size:10px}.sp-seq-row{border-top:1px solid var(--bg-4);opacity:.85;align-items:center;gap:3px;margin-top:3px;padding-top:3px;display:flex}.sp-seq-source{font-family:var(--mono);background:var(--bg-4);border:1px solid var(--border);color:var(--text-1);cursor:pointer;border-radius:3px;outline:none;height:20px;padding:2px 4px;font-size:10px}.sp-seq-source:focus{border-color:var(--accent-dim)}.sp-seq-source:hover{color:var(--text-0);border-color:var(--border-hi)}#state-bar{height:var(--state-h);background:var(--bg-2);border-top:1px solid var(--border);z-index:100;align-items:center;gap:6px;padding:0 6px;display:flex;position:fixed;bottom:0;left:0;right:0}#state-grid{flex:1;grid-template-rows:repeat(2,26px);grid-template-columns:repeat(16,1fr);gap:2px;min-width:0;display:grid}.state-tile{background:var(--bg-4);border:1px solid var(--border);cursor:pointer;color:#ffffff4d;background-position:50%;background-size:cover;border-radius:2px;justify-content:flex-start;align-items:flex-end;min-width:0;padding:1px 2px;font-size:9px;transition:border-color .1s;display:flex;position:relative;overflow:hidden}.state-tile:hover{border-color:var(--border-hi)}.state-tile--empty{cursor:default}.state-tile--empty:hover{border-color:var(--border)}.state-tile--stored{border-color:var(--border-hi)}.state-tile--active{border:2px solid var(--accent)!important}.state-tile--morphing{box-shadow:0 0 5px #4a9eff66;border:2px solid #4a9eff!important}.state-tile--neutral{width:36px;color:var(--accent-dim);background:var(--bg-3);border-radius:3px;flex-shrink:0;justify-content:center;align-self:stretch;align-items:center;padding:0;font-size:16px}.state-tile--neutral:hover{color:var(--accent);border-color:var(--accent-dim)}.state-tile-num{color:#ffffff59;pointer-events:none;user-select:none;font-size:8px;line-height:1}@keyframes state-tile-flash{0%{border-color:var(--accent);box-shadow:0 0 6px var(--accent)}to{border-color:var(--border-hi);box-shadow:none}}.state-tile--flash{animation:.4s ease-out forwards state-tile-flash}#morph-ctrl{background:var(--bg-3);border:1px solid var(--border);cursor:ns-resize;user-select:none;border-radius:3px;flex-direction:column;flex-shrink:0;justify-content:center;align-items:center;gap:1px;min-width:44px;padding:2px 8px;display:flex}#morph-ctrl:hover{border-color:var(--border-hi)}#morph-ctrl.morph-active{border-color:var(--accent)}.morph-label{color:var(--text-2);letter-spacing:.05em;font-size:8px;line-height:1}#morph-speed-val{color:var(--text-1);font-variant-numeric:tabular-nums;font-size:11px;line-height:1}#morph-ctrl.morph-active #morph-speed-val{color:var(--accent)}#bank-nav{flex-shrink:0;align-self:stretch;align-items:center;display:flex;position:relative}#btn-save-project{background:var(--bg-3);border:1px solid var(--border);color:var(--text-2);cursor:pointer;border-radius:3px;height:100%;padding:4px 7px;font-size:12px;line-height:1}#btn-save-project:hover{border-color:var(--accent);color:var(--accent)}#btn-save-project:active{background:var(--bg-4)}#bank-name-btn{background:var(--bg-3);border:1px solid var(--border);color:var(--text-1);cursor:pointer;white-space:nowrap;border-radius:3px;height:100%;padding:4px 10px;font-size:11px}#bank-name-btn:hover{border-color:var(--border-hi)}#bank-dropdown{background:var(--bg-2);border:1px solid var(--border-hi);z-index:300;border-radius:4px;min-width:150px;padding:4px 0;position:absolute;bottom:calc(100% + 4px);right:0;box-shadow:0 4px 16px #00000080}#bank-dropdown.hidden{display:none}.bank-dropdown-item{width:100%;color:var(--text-1);cursor:pointer;text-align:left;background:0 0;border:none;padding:6px 14px;font-size:11px;display:block}.bank-dropdown-item:hover{background:var(--bg-4)}.bank-dropdown-item.active{color:var(--accent)}.bank-dropdown-item.new-bank{color:var(--text-2)}.bank-dropdown-divider{background:var(--border);height:1px;margin:4px 0}#state-tile-menu{background:var(--bg-2);border:1px solid var(--border-hi);z-index:400;border-radius:4px;min-width:140px;padding:4px 0;position:fixed;box-shadow:0 4px 16px #00000080}#state-tile-menu.hidden{display:none}.state-tile-menu-item{width:100%;color:var(--text-1);cursor:pointer;text-align:left;background:0 0;border:none;padding:6px 14px;font-size:11px;display:block}.state-tile-menu-item:hover{background:var(--bg-4)}.state-tile-menu-item.danger{color:#e06060}.memory-empty{color:var(--text-2);padding:8px;font-size:11px;font-style:italic}.memory-state-row{border-bottom:1px solid var(--bg-3);align-items:center;gap:6px;padding:4px 8px;transition:background .1s;display:flex}.memory-state-row:hover{background:var(--bg-3)}.memory-state-row.active{background:var(--bg-3);border-left:2px solid var(--accent)}.memory-state-thumb{background:var(--bg-4);border:1px solid var(--border);cursor:pointer;background-position:50%;background-size:cover;border-radius:2px;flex-shrink:0;width:44px;min-width:44px;height:30px}.memory-state-thumb:hover{border-color:var(--border-hi)}.memory-state-num{color:var(--text-2);text-align:right;flex-shrink:0;width:18px;font-size:10px}.memory-state-name{color:var(--text-1);cursor:pointer;white-space:nowrap;text-overflow:ellipsis;flex:1;font-size:11px;overflow:hidden}.memory-state-name:hover{color:var(--accent)}.memory-state-name-input{background:var(--bg-4);border:1px solid var(--accent-dim);color:var(--text-1);border-radius:2px;outline:none;flex:1;padding:1px 4px;font-size:11px}.memory-state-btn{background:var(--bg-3);border:1px solid var(--border);color:var(--text-2);cursor:pointer;border-radius:2px;flex-shrink:0;padding:2px 6px;font-size:11px}.memory-state-btn:hover{color:var(--text-1);border-color:var(--border-hi)}.memory-state-btn--danger:hover{color:#e06060;border-color:#e06060}.btn-danger{color:#c05050!important;border-color:#6a3030!important}.btn-danger:hover{color:#e06060!important;background:#2a1a1a!important;border-color:#e06060!important}#bank-list{border-bottom:1px solid var(--bg-3);padding:4px 0}.bank-list-item{width:100%;color:var(--text-1);text-align:left;background:0 0;border:none;border-left:2px solid #0000;align-items:center;gap:6px;padding:5px 12px;font-size:11px;transition:background .1s;display:flex}.bank-list-item:hover{background:var(--bg-3)}.bank-list-item.active{color:var(--accent);border-left-color:var(--accent);background:var(--bg-3)}.bank-list-name{cursor:pointer;white-space:nowrap;text-overflow:ellipsis;flex:1;overflow:hidden}.bank-list-name:hover{color:var(--accent)}.bank-list-name-input{background:var(--bg-4);border:1px solid var(--accent-dim);color:var(--text-1);border-radius:2px;outline:none;flex:1;padding:1px 4px;font-size:11px}.bank-list-switch{background:var(--bg-3);border:1px solid var(--border);color:var(--text-2);cursor:pointer;border-radius:2px;flex-shrink:0;padding:2px 6px;font-size:11px}.bank-list-switch:hover{color:var(--text-1);border-color:var(--border-hi)}.context-menu{background:var(--bg-3);border:1px solid var(--border-hi);z-index:2100;min-width:180px;font-family:var(--mono);-webkit-overflow-scrolling:touch;overscroll-behavior:contain;border-radius:4px;max-height:min(65vh,560px);font-size:12px;position:fixed;overflow:hidden auto;box-shadow:0 8px 24px #0009}.context-menu.hidden{display:none}.menu-header{color:var(--accent);border-bottom:1px solid var(--border);background:var(--bg-2);padding:6px 10px;font-size:11px;font-weight:500}.menu-section{letter-spacing:.08em;text-transform:uppercase;color:var(--text-2);margin-top:2px;padding:4px 10px 2px;font-size:10px}.menu-item{text-align:left;width:100%;color:var(--text-1);font-family:var(--mono);padding:5px 10px;font-size:12px;transition:all 50ms;display:block}.menu-item:hover{background:var(--bg-4);color:var(--text-0)}.menu-item.active{color:var(--accent)}#param-search{background:var(--bg-2);border:1px solid var(--accent-dim);z-index:2000;border-radius:6px;flex-direction:column;width:560px;max-width:92vw;max-height:calc(100vh - 80px);display:flex;position:fixed;top:60px;left:50%;overflow:hidden;transform:translate(-50%);box-shadow:0 8px 32px #0009}#param-search-filters{background:var(--bg-3);border-bottom:1px solid var(--border);flex-wrap:wrap;gap:4px;padding:6px 10px;display:flex}.psearch-chip{background:var(--bg-4);border:1px solid var(--border);color:var(--text-2);font-family:var(--mono);cursor:pointer;border-radius:4px;padding:3px 8px;font-size:11px;transition:all 50ms}.psearch-chip:hover{color:var(--text-1);border-color:var(--accent-dim)}.psearch-chip.active{background:color-mix(in srgb, var(--accent-dim) 40%, var(--bg-3));border-color:var(--accent-dim);color:var(--accent)}#param-search-input{background:var(--bg-3);border:none;border-bottom:1px solid var(--border);width:100%;color:var(--text-0);font-family:var(--mono);box-sizing:border-box;outline:none;padding:10px 14px;font-size:13px;display:block}#param-search-results{flex:1;min-height:0;max-height:60vh;overflow-y:auto}.psearch-empty{font-family:var(--sans);color:var(--text-2);text-align:center;padding:14px 12px;font-size:12px;line-height:1.5}.psearch-item.param-row{border-bottom:1px solid var(--bg-4);height:auto;min-height:28px;padding:4px 8px;font-size:12px}.psearch-item.param-row:hover,.psearch-item.param-row.selected{background:var(--bg-4)}.psearch-locate{color:var(--text-2);cursor:pointer;background:0 0;border:none;padding:0 0 0 4px;font-size:13px;line-height:1}.psearch-locate:hover{color:var(--accent)}#kb-help{z-index:3000;background:#000000b3;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}#kb-help.hidden{display:none}#kb-help-box{background:var(--bg-2);border:1px solid var(--accent-dim);border-radius:8px;min-width:460px;max-width:90vw;padding:20px 24px;box-shadow:0 12px 48px #000c}#kb-help-title{font-family:var(--mono);color:var(--accent);text-transform:uppercase;letter-spacing:.12em;text-align:center;margin-bottom:16px;font-size:13px;font-weight:500}#kb-help-cols{gap:24px;display:flex}.kb-col{flex:1}.kb-section{font-family:var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--text-2);margin:10px 0 5px;font-size:9px}.kb-section:first-child{margin-top:0}.kb-row{font-family:var(--mono);color:var(--text-1);align-items:center;gap:8px;margin:3px 0;font-size:12px;display:flex}.kb-row kbd{background:var(--bg-4);border:1px solid var(--border);font-family:var(--mono);color:var(--text-0);text-align:center;border-radius:3px;min-width:28px;padding:1px 6px;font-size:11px;display:inline-block}.layer-col-head{pointer-events:none;min-height:0;padding-top:2px;padding-bottom:0}.layer-col-head .layer-col{font-family:var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--text-2);opacity:.65;font-size:9px}.layer-col-head .layer-col-source{grid-column:2/4}.layer-col-head .layer-col-blend{grid-column:4}#help-menu{z-index:3200;background:var(--bg-2);border:1px solid var(--accent-dim);border-radius:6px;min-width:210px;padding:4px;position:fixed;box-shadow:0 8px 32px #000c}#help-menu.hidden{display:none}.help-menu-item{width:100%;color:var(--text-1);font-family:var(--mono);text-align:left;cursor:pointer;background:0 0;border:none;border-radius:4px;justify-content:space-between;align-items:center;gap:16px;padding:6px 10px;font-size:12px;display:flex}.help-menu-item:hover{background:var(--bg-4);color:var(--accent)}.help-menu-accel{color:var(--text-2);font-variant-numeric:tabular-nums;font-size:11px}.help-menu-sep{background:var(--bg-4);height:1px;margin:4px 6px}#about-modal{z-index:3300;background:#000000b3;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}#about-modal.hidden{display:none}#about-box{background:var(--bg-2);border:1px solid var(--accent-dim);border-radius:8px;width:420px;max-width:90vw;box-shadow:0 12px 48px #000c}#about-titlebar{border-bottom:1px solid var(--bg-4);font-family:var(--mono);color:var(--accent);text-transform:uppercase;letter-spacing:.12em;justify-content:space-between;align-items:center;padding:12px 16px;font-size:13px;font-weight:500;display:flex}#about-close{color:var(--text-2);cursor:pointer;background:0 0;border:none;padding:2px 4px;font-size:16px;line-height:1}#about-close:hover{color:var(--accent)}#about-content{color:var(--text-1);padding:20px 24px 24px;font-size:13px;line-height:1.6}#about-content p{color:var(--text-2);margin:12px 0 0}#about-name{font-family:var(--mono);letter-spacing:.15em;text-transform:uppercase;color:var(--text-1);font-size:20px}#about-links{margin-top:18px}#docs-viewer{z-index:3100;background:#000000b3;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}#docs-viewer.hidden{display:none}#docs-viewer-box{background:var(--bg-2);border:1px solid var(--accent-dim);border-radius:8px;flex-direction:column;width:720px;max-width:90vw;height:80vh;display:flex;box-shadow:0 12px 48px #000c}#docs-viewer-titlebar{border-bottom:1px solid var(--bg-4);justify-content:space-between;align-items:center;padding:12px 16px;display:flex}#docs-viewer-title{font-family:var(--mono);color:var(--accent);text-transform:uppercase;letter-spacing:.12em;font-size:13px;font-weight:500}#docs-viewer-close{color:var(--text-2);cursor:pointer;background:0 0;border:none;padding:2px 4px;font-size:16px;line-height:1}#docs-viewer-close:hover{color:var(--accent)}.docs-viewer-content{color:var(--text-1);padding:16px 24px;font-size:13px;line-height:1.6;overflow-y:auto}.docs-viewer-content h1,.docs-viewer-content h2,.docs-viewer-content h3{color:var(--accent);margin:18px 0 8px}.docs-viewer-content h1:first-child,.docs-viewer-content h2:first-child,.docs-viewer-content h3:first-child{margin-top:0}.docs-viewer-content p,.docs-viewer-content li{color:var(--text-1)}.docs-viewer-content a{color:var(--accent)}.docs-viewer-content code{font-family:var(--mono);background:var(--bg-3);border-radius:3px;padding:1px 4px;font-size:12px}.docs-viewer-content pre{font-family:var(--mono);background:var(--bg-3);border-radius:4px;padding:10px 12px;overflow-x:auto}.docs-viewer-content pre code{background:0 0;padding:0}.docs-viewer-content table{border-collapse:collapse;margin:8px 0}.docs-viewer-content th,.docs-viewer-content td{border:1px solid var(--border);text-align:left;padding:4px 8px}.docs-viewer-content blockquote{border-left:2px solid var(--accent-dim);color:var(--text-2);margin:8px 0;padding:2px 12px}#guide-panel{left:12px;bottom:calc(var(--signal-h) + 12px);z-index:3000;background:var(--bg-2);border:1px solid var(--accent-dim);border-radius:8px;flex-direction:column;width:340px;max-width:calc(100vw - 24px);max-height:60vh;display:flex;position:fixed;box-shadow:0 12px 48px #000c}#guide-panel.hidden{display:none}#guide-titlebar{border-bottom:1px solid var(--bg-4);align-items:center;gap:8px;padding:10px 12px;display:flex}#guide-title{font-family:var(--mono);color:var(--accent);text-transform:uppercase;letter-spacing:.1em;flex:1;font-size:12px}#guide-count{font-family:var(--mono);color:var(--text-2);font-size:10px}#guide-close{color:var(--text-2);cursor:pointer;background:0 0;border:none;padding:2px 4px;font-size:14px;line-height:1}#guide-close:hover{color:var(--accent)}#guide-tracks{gap:4px;padding:8px 12px 0;display:flex}.guide-track{font-family:var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--text-2);background:var(--bg-3);border:1px solid var(--border);cursor:pointer;border-radius:3px;flex:1;padding:4px 0;font-size:10px}.guide-track:hover{color:var(--text-0)}.guide-track.active{color:var(--accent);border-color:var(--accent-dim);background:var(--bg-4)}#guide-body{color:var(--text-1);padding:10px 14px;font-size:12px;line-height:1.55;overflow-y:auto}#guide-body p{margin:0 0 8px}#guide-body ul{margin:0 0 8px;padding-left:18px}#guide-body li{margin-bottom:4px}#guide-body strong{color:var(--text-0)}#guide-body code{font-family:var(--mono);background:var(--bg-3);color:var(--accent);border-radius:3px;padding:1px 4px;font-size:11px}#guide-points{flex-wrap:wrap;gap:4px;padding:0 12px 10px;display:flex}#guide-points.hidden{display:none}.guide-point{font-family:var(--mono);color:var(--text-1);background:var(--bg-3);border:1px solid var(--border-hi);cursor:pointer;border-radius:3px;padding:3px 7px;font-size:10px}.guide-point:hover{color:var(--accent);border-color:var(--accent-dim)}.guide-point.missing{color:var(--red);border-color:var(--red-dim);text-decoration:line-through}#guide-nav{border-top:1px solid var(--bg-4);gap:6px;padding:8px 12px;display:flex}#guide-nav button{font-family:var(--mono);color:var(--text-1);background:var(--bg-3);border:1px solid var(--border-hi);cursor:pointer;border-radius:4px;flex:1;padding:5px 0;font-size:11px}#guide-nav button:hover:not(:disabled){color:var(--accent);border-color:var(--accent-dim)}#guide-nav button:disabled{opacity:.35;cursor:default}.guide-flash{animation:2.6s ease-out guide-flash}@keyframes guide-flash{0%,to{box-shadow:none;background:0 0;outline:2px solid #0000}8%,42%,76%{outline:2px solid var(--blue);background:#4080e84d;box-shadow:0 0 10px #4080e88c}25%,59%{box-shadow:none;background:#4080e814;outline:2px solid #4080e859}}#glsl-editor{color:#c8c8d8;border:1px solid var(--border);box-sizing:border-box;tab-size:2;caret-color:var(--accent);resize:vertical;background:#07070e;border-top:none;padding:6px 8px;font-family:Courier New,monospace;font-size:11px;line-height:1.5}#glsl-editor:focus{border-color:var(--accent);outline:none}#glsl-error{color:#e84040;white-space:pre-wrap;word-break:break-all;background:#e8404012;border-left:2px solid #e84040;padding:4px 8px;font-family:monospace;font-size:10px}#onboarding{z-index:4000;background:#000000d1;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}#onboarding.hidden{display:none}#onboarding-box{background:var(--bg-2);border:1px solid var(--accent-dim);text-align:center;border-radius:8px;width:90vw;max-width:460px;padding:28px 32px;box-shadow:0 16px 64px #000000e6}#onboarding-title{font-family:var(--mono);color:var(--accent);letter-spacing:.15em;text-transform:uppercase;margin-bottom:4px;font-size:22px;font-weight:600}.splash-version{color:var(--text-2);letter-spacing:.08em;font-variant-numeric:tabular-nums;margin-top:4px;font-size:11px}#onboarding-sub{color:var(--text-2);letter-spacing:.08em;margin-bottom:24px;font-size:11px}#onboarding-gestures{text-align:left;flex-direction:column;gap:14px;margin-bottom:24px;display:flex}.ob-gesture{align-items:flex-start;gap:14px;display:flex}.ob-icon{font-family:var(--mono);color:var(--accent);text-align:center;min-width:36px;padding-top:2px;font-size:13px}.ob-desc{color:var(--text-1);font-size:12px;line-height:1.55}.ob-desc strong{color:var(--text-0)}#onboarding-dismiss{font-family:var(--mono);color:var(--bg-1);background:var(--accent);cursor:pointer;letter-spacing:.1em;text-transform:uppercase;border:none;border-radius:4px;padding:7px 32px;font-size:12px}#onboarding-dismiss:hover{background:var(--text-0)}#onboarding-actions{justify-content:center;gap:8px;display:flex}#onboarding-guide{font-family:var(--mono);color:var(--text-1);border:1px solid var(--border-hi);cursor:pointer;letter-spacing:.1em;text-transform:uppercase;background:0 0;border-radius:4px;padding:7px 20px;font-size:12px}#onboarding-guide:hover{color:var(--accent);border-color:var(--accent-dim)}#onboarding-support{font-family:var(--mono);color:var(--text-1);border:1px solid var(--border-hi);cursor:pointer;letter-spacing:.1em;text-transform:uppercase;background:0 0;border-radius:4px;align-items:center;padding:7px 16px;font-size:12px;text-decoration:none;display:inline-flex}#onboarding-support:hover{color:var(--accent);border-color:var(--accent-dim)}#projmap-overlay{pointer-events:none;z-index:6;position:absolute;inset:0}.corner-handle{border:2px solid var(--accent);cursor:crosshair;pointer-events:all;touch-action:none;background:#00000080;border-radius:50%;width:18px;height:18px;margin:-9px 0 0 -9px;transition:border-color .1s,transform .1s;position:absolute;box-shadow:0 0 6px #000000b3}.corner-handle:hover{border-color:#fff;transform:scale(1.3)}.corner-handle:active{background:#ffffff26;border-color:#fff;transform:scale(1.2)}#btn-projmap.active{color:var(--accent)!important;border-color:var(--accent-dim)!important}.clip-error-toast{color:#fcc;z-index:9999;pointer-events:none;text-align:center;background:#7a1a1a;border:1px solid #c03030;border-radius:4px;max-width:380px;padding:7px 14px;font-size:11px;animation:.15s toast-in;position:fixed;bottom:48px;left:50%;transform:translate(-50%)}@keyframes toast-in{0%{opacity:0;transform:translate(-50%)translateY(6px)}to{opacity:1;transform:translate(-50%)translateY(0)}}.ctx-menu{background:var(--bg-2);border:1px solid var(--border);user-select:none;border-radius:4px;min-width:170px;padding:4px 0;box-shadow:0 4px 16px #00000080}.ctx-item{color:var(--text-1);cursor:pointer;padding:6px 14px;font-size:11px}.ctx-item:hover{background:var(--bg-4)}.ctx-item.ctx-danger{color:#e05050}.ctx-item.ctx-danger:hover{background:#c8282826}.hidden{display:none!important}body.ghost-mode #output-canvas{visibility:hidden}body.ghost-mode #ghost-label{display:flex}#ghost-label{font-family:var(--mono);color:var(--text-2);pointer-events:none;letter-spacing:.06em;background:#0a0a0b8c;flex-direction:column;justify-content:center;align-items:center;gap:6px;font-size:11px;display:none;position:absolute;inset:0}#ghost-label span{opacity:.5;font-size:22px}#btn-ghost-mode.active{color:var(--green)!important;border-color:var(--green)!important}body.fullscreen-output #app{right:0}body.fullscreen-output #control-panel{display:none}body.fullscreen-output #signal-path{display:none!important}body.fullscreen-output #state-bar,body.fullscreen-output #mobile-state-bar{display:none}body.statebar-hidden{--state-h:0px}body.signalpath-hidden{--signal-h:0px}body.signalpath-hidden #signal-path:not(.sp-float-panel),body.statebar-hidden #state-bar,body.statebar-hidden #mobile-state-bar{display:none!important}body.fullscreen-output #status-bar{display:none}body.fullscreen-output #app{top:0;bottom:0}*{scrollbar-width:thin;scrollbar-color:var(--border-hi) var(--bg-2)}@keyframes lfo-pulse{0%,to{opacity:.6}50%{opacity:1}}.param-ctrl.lfo{animation:2s ease-in-out infinite lfo-pulse}.ai-settings-panel{top:var(--status-h);background:var(--bg-2);border:1px solid var(--border-hi);z-index:500;width:280px;font-family:var(--mono);border-radius:4px;padding:10px 12px 12px;font-size:11px;position:fixed;right:8px;box-shadow:0 8px 24px #000000b3}.ai-settings-panel.hidden{display:none}.ai-settings-hdr{letter-spacing:.09em;text-transform:uppercase;color:var(--accent);border-bottom:1px solid var(--border);margin-bottom:8px;padding-bottom:6px;font-size:10px}.ai-key-status{color:var(--text-2);min-height:16px;margin-bottom:6px;font-size:11px}.ai-key-status.ok{color:var(--green)}.ai-key-status.error{color:var(--red)}.ai-key-input{background:var(--bg-3);border:1px solid var(--border);width:100%;color:var(--text-0);font-family:var(--mono);box-sizing:border-box;border-radius:3px;outline:none;margin-bottom:4px;padding:5px 8px;font-size:11px}.ai-key-input:focus{border-color:var(--accent-dim)}.ai-settings-note{color:var(--text-2);border-top:1px solid var(--border);margin-top:8px;padding-top:8px;font-size:10px;line-height:1.5}#ai-preset-ui{border-bottom:1px solid var(--border);background:var(--bg-3);padding:8px 10px}.ai-section-hdr{font-family:var(--mono);letter-spacing:.09em;text-transform:uppercase;color:var(--accent);margin-bottom:6px;font-size:10px}.ai-text-input{background:var(--bg-2);border:1px solid var(--border);width:100%;color:var(--text-0);font-family:var(--mono);resize:vertical;box-sizing:border-box;border-radius:3px;outline:none;min-height:44px;margin-bottom:5px;padding:5px 8px;font-size:11px;line-height:1.4}.ai-text-input:focus{border-color:var(--accent-dim)}.ai-text-input::placeholder{color:var(--text-2)}.ai-result{font-family:var(--mono);color:var(--text-1);background:var(--bg-2);border:1px solid var(--border);white-space:pre-wrap;word-break:break-word;border-radius:3px;margin-top:5px;padding:6px 8px;font-size:11px;line-height:1.5}.ai-result.hidden{display:none}.ai-result.error{color:var(--red);border-color:var(--red-dim)}#ai-narrator-overlay{max-width:80%;color:var(--accent);font-family:var(--mono);pointer-events:none;white-space:nowrap;text-overflow:ellipsis;z-index:50;letter-spacing:.04em;border:1px solid var(--accent-dim);text-shadow:0 1px 4px #000c;background:#0000008c;border-radius:3px;padding:5px 12px;font-size:12px;position:absolute;bottom:12px;left:50%;overflow:hidden;transform:translate(-50%)}#ai-narrator-overlay.hidden{display:none}@keyframes coach-fade{0%{opacity:1;transform:translateY(0)}70%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-6px)}}.ai-coach-notif{background:var(--bg-3);border:1px solid var(--accent-dim);color:var(--accent);font-family:var(--mono);pointer-events:none;white-space:normal;text-align:center;z-index:600;letter-spacing:.04em;border-radius:4px;max-width:min(90vw,640px);padding:7px 16px;font-size:12px;transition:opacity .6s;position:fixed;top:40%;left:50%;transform:translate(-50%,-50%);box-shadow:0 4px 16px #00000080}#btn-ai-narrator.active{color:var(--accent)!important;border-color:var(--accent-dim)!important}#btn-ai-coach.active{color:var(--green)!important;border-color:var(--green-dim)!important}#btn-ai-settings.active{color:var(--accent)!important}.ai-prov-row{align-items:center;gap:6px;margin:5px 0;display:flex}.ai-prov-label{color:var(--text-2);flex-shrink:0;min-width:52px;font-size:10px}.ai-prov-note{color:var(--text-2);opacity:.7;font-size:10px}.ai-prov-select{background:var(--bg-3);border:1px solid var(--border);color:var(--text-1);font-family:var(--mono);border-radius:3px;flex:1;min-width:0;padding:2px 4px;font-size:10px}.ai-prov-select:focus{border-color:var(--accent-dim);outline:none}.ai-prov-link{color:var(--accent-dim);padding:2px 0 4px;font-size:10px;text-decoration:none;transition:color .15s;display:block}.ai-prov-link:hover{color:var(--accent);text-decoration:underline}#capture-panel{top:var(--status-h);z-index:1200;background:var(--bg-2);border:1px solid var(--border);min-width:230px;color:var(--text-1);border-radius:4px;flex-direction:column;gap:6px;padding:8px 10px;font-size:11px;display:flex;position:fixed;right:4px}#capture-panel.hidden{display:none}.cap-row{align-items:center;gap:6px;display:flex}#capture-panel input[type=number]{background:var(--bg-4);border:1px solid var(--border);width:52px;color:var(--text-1);border-radius:3px;padding:2px 4px;font-size:11px}#capture-panel button{background:var(--bg-4);border:1px solid var(--border);color:var(--text-1);cursor:pointer;border-radius:3px;padding:3px 8px;font-size:11px}#capture-panel button:hover{background:var(--bg-3);color:var(--accent)}#cap-frame-label{font-variant-numeric:tabular-nums;color:var(--accent);flex:1}#cap-close{color:var(--text-2);align-self:flex-end;font-size:10px}#panel-overlay{z-index:199;background:#00000073;display:none;position:fixed;inset:0}#panel-overlay:not(.hidden){display:block}@media (width>=2560px){:root{--ctrl-w:380px}body{font-size:14px}.param-row{height:32px}}@media (width<=1200px){:root{--ctrl-w:280px}}@media (width<=900px),(width<=1366px) and (hover:none) and (pointer:coarse){:root{--ctrl-w:300px}#app{flex-direction:column}#output-panel{flex:1;width:100%}#control-panel{top:var(--status-h,36px);z-index:200;transition:transform .2s;position:fixed;bottom:0;right:0;transform:translate(100%);box-shadow:-4px 0 24px #0009}#control-panel.panel-open{transform:translate(0)}#btn-panel-toggle{color:var(--text-1);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;height:100%;padding:0 10px;font-size:16px;display:flex!important}#btn-panel-toggle:hover{color:var(--accent)}}@media (width<=600px){:root{--ctrl-w:100vw}#control-panel{width:100vw}}@media (pointer:coarse){.param-row{grid-template-columns:1fr 48px 44px 44px 56px;gap:4px;height:auto;min-height:44px}.param-row.has-slider{grid-template-rows:44px 22px}.param-ctrl,.param-range,.param-value{align-self:stretch;align-items:center;display:inline-flex}.param-ctrl{justify-content:center;padding:0 4px}.param-range,.param-value{justify-content:flex-end}.param-slider{background:0 0;height:22px}.param-slider::-webkit-slider-runnable-track{background:var(--bg-4);border-radius:3px;height:6px}.param-slider::-webkit-slider-thumb{width:20px;height:20px;margin-top:-7px}.param-slider::-moz-range-track{background:var(--bg-4);border-radius:3px;height:6px}.param-slider::-moz-range-thumb{width:20px;height:20px}.param-opt-btn{border-radius:3px;min-height:36px;padding:6px 8px;font-size:11px}.param-btn-group{gap:4px;padding:4px 0}.tab{padding:10px 12px}.import-btn{padding:8px 12px}}.tab-content,.detached-panel-body{-webkit-overflow-scrolling:touch;overscroll-behavior:contain}#vkbd-panel{bottom:calc(var(--state-h) + 8px + env(safe-area-inset-bottom,0px));z-index:5000;border:1px solid var(--border-hi);-webkit-backdrop-filter:blur(14px);user-select:none;touch-action:none;cursor:move;background:#12121aed;border-radius:8px;padding:6px 8px;position:fixed;left:50%;transform:translate(-50%)}#vkbd-panel.hidden{display:none}.vkbd-handle{color:var(--text-1);text-align:center;cursor:move;padding:0 0 4px;font-size:10px}.vkbd-row{justify-content:center;gap:2px;margin-bottom:2px;display:flex}.vkbd-key{background:var(--bg-3);border:1px solid var(--border);color:var(--text-0);min-width:40px;height:44px;font-size:13px;font-family:var(--mono);cursor:pointer;touch-action:none;border-radius:4px;justify-content:center;align-items:center;padding:0 5px;transition:background 80ms;display:flex}.vkbd-key:active,.vkbd-key.pressed{background:var(--accent-dim);color:var(--accent);border-color:var(--accent-dim)}.vkbd-key-wide{min-width:64px}.vkbd-key-xl{min-width:120px}.movie-lib-filter{align-items:center;gap:6px;padding:4px 8px;display:flex}.movie-lib-search{min-width:0;font-size:10px;font-family:var(--mono);background:var(--bg-4);border:1px solid var(--border);color:var(--text-1);border-radius:2px;outline:none;flex:1;padding:2px 6px}.movie-lib-search:focus{border-color:var(--accent-dim)}.movie-lib-count{font-size:9px;font-family:var(--mono);color:var(--text-2);flex:none}.movie-lib-list{max-height:240px;overflow-y:auto}.detached-panel .movie-lib-list{max-height:none;overflow-y:visible}.movie-lib-item{border-bottom:1px solid var(--bg-1);align-items:center;gap:8px;padding:4px 8px;display:flex}.movie-lib-item:hover{background:var(--bg-4)}.movie-lib-item[draggable=true]{cursor:grab}.movie-lib-item.dragging{opacity:.45;cursor:grabbing}.panel-section.deck-drop-target{outline:1px dashed var(--accent);outline-offset:-2px;background:var(--bg-3)}.movie-lib-thumb{background:var(--bg-0) center/cover no-repeat;border:1px solid var(--border);width:56px;height:32px;color:var(--text-2);border-radius:2px;flex-shrink:0;justify-content:center;align-items:center;font-size:11px;display:flex}.movie-lib-info{flex:1;min-width:0}.movie-lib-name{color:var(--text-1);white-space:nowrap;text-overflow:ellipsis;font-size:10px;overflow:hidden}.movie-lib-meta{font-size:9px;font-family:var(--mono);color:var(--text-2)}.movie-lib-actions{flex:none;gap:3px;display:flex}.movie-lib-load{background:var(--bg-3);border:1px solid var(--border);color:var(--text-2);font-size:10px;font-family:var(--mono);cursor:pointer;border-radius:2px;padding:2px 5px}.movie-lib-load:hover:not(:disabled){color:var(--accent);border-color:var(--accent-dim)}.movie-lib-load:disabled{opacity:.6;cursor:default}.movie-lib-del{color:var(--text-2);font-size:10px;font-family:var(--mono);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:2px;padding:2px 4px}.movie-lib-del:hover{color:var(--red,#e05a5a);border-color:var(--red,#e05a5a)}.clip-lib-header{flex-wrap:wrap;align-items:center;gap:6px;padding:4px 8px;display:flex}.clip-lib-title{font-family:var(--mono);color:var(--text-2);text-transform:uppercase;letter-spacing:.06em;flex:none;font-size:11px}.clip-rec-btn{font-family:var(--mono);border:1px solid var(--border);background:var(--bg-4);color:var(--text-2);cursor:pointer;border-radius:3px;padding:2px 7px;font-size:10px;transition:color .1s,border-color .1s,background .1s}.clip-rec-btn.recording{color:var(--red);border-color:var(--red);background:var(--red-dim);animation:.6s infinite clip-record-pulse}.clip-rec-btn:hover{color:var(--text-0);border-color:var(--border-hi)}@keyframes clip-record-pulse{0%,to{opacity:1}50%{opacity:.4}}.clip-lib-bank-row{gap:3px;padding:2px 8px 4px;display:flex}.clip-bank-btn{font-family:var(--mono);border:1px solid var(--border);background:var(--bg-4);color:var(--text-1);cursor:pointer;border-radius:3px;padding:2px 6px;font-size:10px;transition:color .1s,border-color .1s}.clip-bank-btn:hover{color:var(--text-0);border-color:var(--border-hi)}.clip-bank-btn.active{color:var(--accent);border-color:var(--accent-dim)}.clip-slot-grid{grid-template-columns:repeat(8,1fr);gap:3px;padding:4px 8px 6px;display:grid}.clip-slot{width:28px;height:28px;font-family:var(--mono);border:1px solid var(--bg-4);background:var(--bg-3);color:var(--text-2);cursor:pointer;user-select:none;touch-action:none;background-position:50%;background-size:cover;border-radius:3px;justify-content:center;align-items:center;font-size:9px;transition:border-color .1s,box-shadow .1s;display:flex}.clip-slot:hover{border-color:var(--border-hi);color:var(--text-0)}.clip-slot.filled{border-color:var(--accent-dim);color:var(--accent)}.clip-slot.active{border-color:var(--accent);box-shadow:0 0 4px var(--accent);color:var(--accent)}.clip-slot.recording{border-color:var(--red);animation:.6s infinite clip-record-pulse}.clip-lib-status{font-family:var(--mono);color:var(--text-2);min-height:14px;padding:0 8px 6px;font-size:10px}.cp-tab-row{border-bottom:1px solid var(--border);gap:3px;padding:6px 10px 4px;display:flex}.cp-tab{font-family:var(--mono);letter-spacing:.08em;background:var(--bg-3);border:1px solid var(--border);color:var(--text-1);cursor:pointer;border-radius:2px;padding:3px 12px;font-size:10px;font-weight:600;transition:color .1s,border-color .1s,background .1s}.cp-tab:hover{color:var(--text-0);border-color:var(--border-hi)}.cp-tab.cp-tab-active{color:var(--accent);border-color:var(--accent-dim);background:#e8c84012}.cp-panel{padding:6px 10px 4px}.cp-sv{cursor:crosshair;border:1px solid var(--border);box-sizing:border-box;border-radius:3px;width:100%;height:130px;display:block}.cp-hue{cursor:ew-resize;border:1px solid var(--border);box-sizing:border-box;border-radius:2px;width:100%;height:14px;margin-top:5px;display:block}.cp-inputs{gap:4px;margin-top:5px;display:flex}.cp-input-group{flex-direction:column;flex:1;align-items:center;gap:2px;min-width:0;display:flex}.cp-input-group label{font-family:var(--mono);color:var(--text-2);letter-spacing:.06em;user-select:none;font-size:9px}.cp-input-group input{box-sizing:border-box;width:100%;font-family:var(--mono);background:var(--bg-3);border:1px solid var(--border);color:var(--text-0);text-align:center;-moz-appearance:textfield;border-radius:2px;padding:2px 3px;font-size:11px}.cp-input-group input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.cp-input-group input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.cp-input-group input:focus{border-color:var(--accent-dim);color:var(--text-0);outline:none}.cp-param-rows{border-top:1px solid var(--border);margin-top:4px;padding-top:2px}.cp-preset-area{border-top:1px solid var(--border);padding:6px 10px 8px}.cp-preset-header{font-family:var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--text-2);margin-bottom:5px;font-size:9px}.cp-preset-save-row{gap:4px;margin-bottom:6px;display:flex}.cp-preset-name-inp{min-width:0;font-family:var(--mono);background:var(--bg-3);border:1px solid var(--border);color:var(--text-0);border-radius:2px;flex:1;padding:3px 6px;font-size:11px}.cp-preset-name-inp::placeholder{color:var(--text-2)}.cp-preset-name-inp:focus{border-color:var(--accent-dim);outline:none}.cp-preset-save-btn{font-family:var(--mono);background:var(--bg-3);border:1px solid var(--border);color:var(--text-1);cursor:pointer;border-radius:2px;flex-shrink:0;padding:3px 9px;font-size:10px;transition:color .1s,border-color .1s}.cp-preset-save-btn:hover{color:var(--accent);border-color:var(--accent-dim)}.cp-preset-list{flex-wrap:wrap;gap:4px;min-height:20px;display:flex}.cp-preset-chip{font-family:var(--mono);background:var(--bg-3);border:1px solid var(--border);color:var(--text-1);cursor:pointer;border-radius:2px;padding:3px 8px;font-size:10px;transition:color .1s,border-color .1s,background .1s}.cp-preset-chip:hover{color:var(--text-0);border-color:var(--border-hi)}.cp-preset-chip.active{color:var(--accent);border-color:var(--accent-dim);background:#e8c84012}.cp-preset-empty{font-family:var(--mono);color:var(--text-2);font-size:10px;font-style:italic}.atv-preset-area{padding:6px 10px 8px}.atv-preset-header{font-family:var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--text-2);margin-bottom:5px;font-size:9px}.atv-preset-row{flex-wrap:wrap;gap:4px;margin-bottom:6px;display:flex}.atv-preset-sep{background:var(--border);height:1px;margin:6px 0 8px}.atv-preset-save-row{gap:4px;margin-bottom:6px;display:flex}.atv-preset-name-inp{min-width:0;font-family:var(--mono);background:var(--bg-3);border:1px solid var(--border);color:var(--text-0);border-radius:2px;flex:1;padding:3px 6px;font-size:11px}.atv-preset-name-inp::placeholder{color:var(--text-2)}.atv-preset-name-inp:focus{border-color:var(--accent-dim);outline:none}.atv-preset-save-btn{font-family:var(--mono);background:var(--bg-3);border:1px solid var(--border);color:var(--text-1);cursor:pointer;border-radius:2px;flex-shrink:0;padding:3px 9px;font-size:10px;transition:color .1s,border-color .1s}.atv-preset-save-btn:hover{color:var(--accent);border-color:var(--accent-dim)}.atv-preset-list{flex-wrap:wrap;gap:4px;min-height:20px;display:flex}.atv-preset-chip{font-family:var(--mono);background:var(--bg-3);border:1px solid var(--border);color:var(--text-1);cursor:pointer;border-radius:2px;padding:3px 8px;font-size:10px;transition:color .1s,border-color .1s,background .1s}.atv-preset-chip:hover{color:var(--text-0);border-color:var(--border-hi)}.atv-preset-chip.active{color:var(--accent);border-color:var(--accent-dim);background:#e8c84012}.atv-preset-empty{font-family:var(--mono);color:var(--text-2);font-size:10px;font-style:italic}.tt-nav{flex-wrap:wrap;gap:4px;margin-bottom:6px;display:flex}.tt-nav-btn{font-family:var(--mono);background:var(--bg-3);border:1px solid var(--border);color:var(--text-1);cursor:pointer;border-radius:2px;padding:3px 8px;font-size:10px;transition:color .1s,border-color .1s,background .1s}.tt-nav-btn:hover{color:var(--text-0);border-color:var(--border-hi)}.tt-nav-btn.active{color:var(--accent);border-color:var(--accent-dim);background:#e8c84012}.tt-subpage{align-items:center;gap:4px;margin-bottom:6px;display:flex}.tt-subpage.idle{opacity:.35;pointer-events:none}.tt-subpage-btn{font-family:var(--mono);background:var(--bg-3);border:1px solid var(--border);color:var(--text-1);cursor:pointer;border-radius:2px;padding:3px 6px;font-size:10px;transition:color .1s,border-color .1s}.tt-subpage-btn:hover{color:var(--accent);border-color:var(--accent-dim)}.tt-subpage-btn:disabled{opacity:.35;cursor:default}.tt-subpage-label{font-family:var(--mono);color:var(--text-1);text-align:center;min-width:32px;font-size:10px}.tt-rss-row{gap:4px;margin-top:4px;display:flex}.tt-rss-url{min-width:0;font-family:var(--mono);background:var(--bg-3);border:1px solid var(--border);color:var(--text-0);border-radius:2px;flex:1;padding:3px 6px;font-size:10px}.tt-rss-url::placeholder{color:var(--text-2)}.tt-rss-url:focus{border-color:var(--accent-dim);outline:none}.tt-connect-btn{font-family:var(--mono);background:var(--bg-3);border:1px solid var(--border);color:var(--text-1);cursor:pointer;border-radius:2px;flex-shrink:0;padding:3px 9px;font-size:10px;transition:color .1s,border-color .1s}.tt-connect-btn:hover{color:var(--accent);border-color:var(--accent-dim)}.tt-rss-preset-row{margin-bottom:4px}.tt-rss-preset{width:100%;font-family:var(--mono);background:var(--bg-3);border:1px solid var(--border);color:var(--text-1);cursor:pointer;border-radius:2px;padding:3px 6px;font-size:10px}.tt-rss-preset:focus{border-color:var(--accent-dim);outline:none}#pad-crosshair-container{pointer-events:none;z-index:40;opacity:.25;transition:opacity .3s;position:absolute;inset:0}#pad-crosshair-container.active{opacity:1;transition:opacity 50ms}#pad-crosshair-container.hidden{display:none}.pad-xhair-h,.pad-xhair-v{background:var(--accent);position:absolute;box-shadow:0 0 4px #000000b3}.pad-xhair-h{height:1px;margin-top:-.5px;left:0;right:0}.pad-xhair-v{width:1px;margin-left:-.5px;top:0;bottom:0}@media (hover:hover) and (pointer:fine){#pad-crosshair-container{display:none}}#touch-mode-osd{z-index:6000;border:1px solid var(--accent);color:var(--accent);font-family:var(--mono);letter-spacing:2px;opacity:0;pointer-events:none;user-select:none;background:#0a0a10d1;border-radius:8px;padding:14px 28px;font-size:22px;transition:opacity .35s;position:fixed;top:40%;left:50%;transform:translate(-50%,-50%)}#touch-mode-osd.show{opacity:1;transition:opacity 80ms}#mobile-state-bar,#mobile-state-modal,#btn-camera-flip{display:none}@media (width<=900px),(width<=1366px) and (hover:none) and (pointer:coarse){#state-bar{display:none}#btn-camera-flip{justify-content:center;align-items:center;min-width:40px;font-size:16px;display:inline-flex}#mobile-state-bar,#mobile-state-bar *,#mobile-state-modal,#mobile-state-modal *{-webkit-touch-callout:none;user-select:none;-webkit-user-drag:none}#mobile-state-bar{height:calc(var(--state-h) + env(safe-area-inset-bottom,0px));padding-bottom:env(safe-area-inset-bottom,0px);z-index:100;background:var(--bg-2);border-top:1px solid var(--border);align-items:stretch;display:flex;position:fixed;bottom:0;left:0;right:0}#mobile-state-save,#mobile-state-clear,#mobile-state-more{background:var(--bg-3);width:56px;color:var(--text-1);cursor:pointer;border:none;flex-shrink:0;font-size:22px}#mobile-state-clear{border-right:1px solid var(--border)}#mobile-state-save{border-right:1px solid var(--border);color:var(--accent)}#mobile-state-more{border-left:1px solid var(--border)}#mobile-state-save:active,#mobile-state-clear:active,#mobile-state-more:active{background:var(--bg-4)}#mobile-state-strip{-webkit-overflow-scrolling:touch;flex:1;align-items:center;gap:6px;min-width:0;padding:6px 8px;display:flex;overflow-x:auto}.msb-tile{width:82px;height:calc(var(--state-h) - 14px);border:1px solid var(--border);background-color:var(--bg-4);cursor:pointer;background-position:50%;background-size:cover;border-radius:3px;flex-shrink:0;padding:0;position:relative}.msb-tile--active{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.msb-menu{z-index:2000;background:var(--bg-2);border:1px solid var(--border-hi);-webkit-touch-callout:none;user-select:none;border-radius:6px;flex-direction:column;min-width:150px;display:flex;position:fixed;overflow:hidden;box-shadow:0 6px 24px #0009}.msb-menu button{border:none;border-bottom:1px solid var(--border);color:var(--text-1);font-family:var(--mono);text-align:left;cursor:pointer;background:0 0;padding:12px 16px;font-size:14px}.msb-menu button:last-child{border-bottom:none}.msb-menu button:active{background:var(--bg-4)}.msb-menu-danger{color:#e04040!important}.msb-tile--clearing{opacity:.35;transition:transform .16s,opacity .16s;transform:scale(.82);border-color:#e04040!important;box-shadow:0 0 0 1px #e04040!important}.msb-tile-num{font-family:var(--mono);color:var(--text-1);text-shadow:0 1px 2px #000000e6;font-size:10px;position:absolute;top:2px;left:4px}#mobile-state-modal{z-index:300;backdrop-filter:blur(6px);background:#0a0a10eb;flex-direction:column;padding:12px;display:flex;position:fixed;inset:0}#mobile-state-modal.hidden{display:none}.msp-head{flex-shrink:0;align-items:center;padding:4px 4px 12px;display:flex}.msp-bank-name{font-family:var(--mono);color:var(--accent);margin-right:auto;font-size:15px}.msp-close{background:var(--bg-3);border:1px solid var(--border);color:var(--text-1);cursor:pointer;border-radius:4px;padding:8px 14px;font-size:16px}.msp-action{background:var(--bg-3);border:1px solid var(--border);color:var(--accent);font-family:var(--mono);cursor:pointer;border-radius:4px;margin-left:8px;padding:8px 14px;font-size:14px}.msp-action:active{background:var(--bg-4)}.msp-grid{-webkit-overflow-scrolling:touch;flex:1;grid-template-columns:repeat(4,1fr);align-content:start;gap:8px;display:grid;overflow-y:auto}.msp-pad{aspect-ratio:16/10;border:1px solid var(--border);background-color:var(--bg-3);min-height:72px;color:var(--text-1);cursor:pointer;background-position:50%;background-size:cover;border-radius:4px;position:relative;overflow:hidden}.msp-pad--empty{opacity:.35;cursor:default}.msp-pad--active{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.msp-pad-num{font-family:var(--mono);color:var(--text-2);text-shadow:0 1px 2px #000c;font-size:11px;position:absolute;top:4px;left:6px}.msp-pad-name{font-family:var(--mono);text-overflow:ellipsis;white-space:nowrap;text-align:left;background:#0000008c;padding:3px 6px;font-size:11px;position:absolute;bottom:0;left:0;right:0;overflow:hidden}}#glsl-ai-modal{z-index:3100;background:#000000b3;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}#glsl-ai-modal.hidden{display:none}#glsl-ai-box{background:var(--bg-2);border:1px solid var(--accent-dim);border-radius:8px;flex-direction:column;gap:10px;width:520px;max-width:92vw;padding:14px;display:flex;box-shadow:0 12px 48px #000c}#glsl-ai-title{color:var(--accent);text-transform:uppercase;letter-spacing:.12em;font-size:13px}#glsl-ai-prompt{resize:vertical;background:var(--bg-1);width:100%;height:110px;color:var(--text-1);border:1px solid var(--bg-4);box-sizing:border-box;padding:8px;font-size:16px}#glsl-ai-prompt.hidden{display:none}#glsl-ai-status{text-align:center;color:var(--text-2);padding:24px 8px;font-size:12px}#glsl-ai-status.hidden{display:none}#glsl-ai-status.busy{color:var(--accent);animation:1.1s ease-in-out infinite glslAiPulse}#glsl-ai-status.error{color:#e84040;text-align:left;white-space:pre-wrap;max-height:160px;font-family:monospace;font-size:10px;overflow:auto}#glsl-ai-actions{justify-content:flex-end;gap:8px;display:flex}#glsl-ai-actions button{min-width:96px;min-height:40px;font-size:13px}@keyframes glslAiPulse{0%,to{opacity:.35}50%{opacity:1}}#drawloop-strip{flex-direction:column;gap:2px;width:100%;margin-top:4px;display:flex}.drawloop-row{align-items:center;gap:4px;display:flex}.drawloop-label{color:var(--text-2);flex:none;width:18px;font-size:10px}.drawloop-rec.recording{color:#d04040;animation:1s ease-in-out infinite drawloopRecPulse;border-color:#d04040!important}@keyframes drawloopRecPulse{50%{opacity:.4}}#drawloop-popup{z-index:5000;border:1px solid var(--border);pointer-events:none;background:#0a0a10d9;border-radius:8px;flex-direction:column;gap:2px;padding:8px;display:none;position:fixed;bottom:12px;left:12px}#drawloop-popup.show{pointer-events:all;display:flex}.drawloop-popup-label{color:var(--text-2);letter-spacing:1px;margin-bottom:2px;font-size:10px}
