@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(./ibm-plex-mono-latin-400-normal-DMJ8VG8y.woff2)format("woff2"),url(./ibm-plex-mono-latin-400-normal-CvHOgSBP.woff)format("woff")}@font-face{font-family:IBM Plex Mono;font-style:italic;font-display:swap;font-weight:400;src:url(./ibm-plex-mono-latin-400-italic-BqAiT5Ww.woff2)format("woff2"),url(./ibm-plex-mono-latin-400-italic-66oory27.woff)format("woff")}*{box-sizing:border-box;margin:0;padding:0}:root{--sidebar-width:150px;--right-panel-width:340px;--toolbar-height:56px;--font-ui:"IBM Plex Mono", monospace;--font-code:"IBM Plex Mono", "codicon", monospace;--font-size-sm:12px;--font-size-base:12px;--font-size-lg:14px;--font-size-xl:14px;--bg-primary:#000;--bg-sidebar:#000;--bg-toolbar:#000;--bg-dialog:#0d0d13;--bg-hover:#313244;--bg-active:#2a2b3ddd;--bg-preview-card:#8280b744;--text-primary:#d6d9e3;--text-secondary:#d6d9e3;--text-muted:#6c7086;--accent:#008eff;--accent-soft:#89b4fa14;--border:#2a2b3ddd;--dirty:#f9e2af;--warning:#f9e2af;--danger:#ff595f;--success:#a6e3a1;--chip-text:#000;--shadow-color:#0006;--backdrop-color:#00000080;--pk-white:#e8e8e8;--pk-white-hover:#d0d0d0;--pk-black:#333;--pk-black-hover:#555;--pk-label-white:#555;--pk-label-black:#ccc;--editor-bg:#000;--editor-fg:#9ba3bf;--editor-line-number:#6c7086;--editor-line-number-active:#9ba3bf;--editor-selection:#45475a;--editor-line-highlight:#8280b744;--editor-token-comment:#d6d9e3;--editor-token-meta:#c586c0;--editor-token-keyword:#56bad6;--editor-token-platform-keyword:#56bad6;--editor-token-string:#b5cea8;--editor-token-string-meta:#9ba3bf;--editor-token-style-string-meta:italic;--editor-token-attribute:#dcdcaa;--editor-token-type:#4ec9b0;--editor-token-track:#4ec9b0;--editor-token-number:#b5cea8;--editor-token-note-pitch:#9cdcfe;--editor-token-note-rest:#9cdcfe;--editor-token-style-platform-keyword:italic;--editor-token-style-type:italic;--editor-token-style-operator:italic;--editor-token-style-note-pitch:italic;--editor-token-style-note-rest:italic;--editor-token-variable:#9cdcfe;--editor-token-operator:#d4d4d4;--editor-token-delimiter:#d4d4d4;--fm-carrier:#b5cea8;--editor-codelens:#9ba3bf;--editor-inlay-hint-fg:#9ba3bf;--editor-inlay-hint-bg:#45475a52;--playback-highlight-bg:#ffc83273;--playback-highlight-border:#ffc83299;--playback-highlight-glow:#ffc83280;--playback-highlight-text:#fff;--playback-highlight-text-glow:#ffc832e6;--playback-highlight-text-outline:#ffffff80;--piano-roll-panel-bg:#000;--piano-roll-grid-bg:#000;--piano-roll-grid-line:#ffffff0f;--piano-roll-grid-line-beat:#ffffff1f;--piano-roll-grid-line-measure:#ffffff38;--piano-roll-pitch-line-c:#ffffff26;--piano-roll-pitch-line:#ffffff0a;--piano-roll-key-label-text:#8a9bd866;--piano-roll-white-key-overlay:#2a2b3d66;--piano-roll-black-key-overlay:transparent;--piano-roll-note-border:#0000004d;--piano-roll-edit-cursor:#008eff;--piano-roll-edit-cursor-glow:#008eff66;--piano-roll-cursor:#ffc832e6;--piano-roll-cursor-glow:#ffc83299;--piano-roll-loop-bg:#648cff14;--piano-roll-loop-border:#648cff4d;--piano-roll-empty-text:#666;--fm-slider-color:#2a2b3ddd;--track-fm1:#ff341a;--track-fm2:#ff941a;--track-fm3:#f2f240;--track-fm4:#54dd3c;--track-fm5:#479eeb;--track-fm6:#7552e0;--track-psg1:#e467bb;--track-psg2:#e052b1;--track-psg3:#dd3ca7;--track-noise:#a6a6a6;--track-pcm2:#643cdd;--track-pcm3:#4b22c3;--track-fm3a:#c6d70f;--track-fm3b:#a1bf0d;--track-fm3c:#6e8f0a;--track-fm3d:#f2f240}[data-theme=light]{--bg-primary:#eff1f5;--bg-sidebar:#e6e9ef;--bg-toolbar:#dce0e8;--bg-dialog:#e6e9ef;--bg-hover:#ccd0da;--bg-active:#bcc0cccc;--bg-preview-card:#eff1f5;--text-primary:#000;--text-secondary:#000;--text-muted:#9ca0b0;--accent:#115bf1;--accent-soft:#1e66f514;--border:#ccd0dacc;--dirty:#df8e1d;--warning:#df8e1d;--danger:#d20f39;--success:#1e8a06;--chip-text:#eff1f5;--shadow-color:#0000001f;--backdrop-color:#0000004d;--pk-white:#fff;--pk-white-hover:#eee;--pk-black:#444551;--pk-black-hover:#444;--pk-label-white:#666;--pk-label-black:#bbb;--editor-bg:#eff1f5;--editor-fg:#444551;--editor-line-number:#9ca0b0;--editor-line-number-active:#444551;--editor-selection:#acb0be;--editor-line-highlight:#e6e9efcc;--editor-token-comment:#31313e;--editor-token-meta:#7f29f0;--editor-token-keyword:#115bf1;--editor-token-platform-keyword:#115bf1;--editor-token-string:#1e8a06;--editor-token-string-meta:#444551;--editor-token-style-string-meta:italic;--editor-token-attribute:#db6926;--editor-token-type:#179299;--editor-token-track:#179299;--editor-token-number:#1e8a06;--editor-token-note-pitch:#0586e9;--editor-token-note-rest:#0586e9;--editor-token-style-platform-keyword:italic;--editor-token-style-type:italic;--editor-token-style-operator:italic;--editor-token-style-note-pitch:italic;--editor-token-style-note-rest:italic;--editor-token-variable:#0586e9;--editor-token-operator:#444551;--editor-token-delimiter:#444551;--editor-codelens:#444551;--editor-inlay-hint-fg:#7c7f93;--editor-inlay-hint-bg:#acb0be52;--playback-highlight-bg:#df8e1d4d;--playback-highlight-border:#df8e1d99;--playback-highlight-glow:#df8e1d66;--playback-highlight-text:#1e1e2e;--playback-highlight-text-glow:#df8e1dcc;--playback-highlight-text-outline:#ffffff80;--piano-roll-panel-bg:#eff1f5;--piano-roll-grid-bg:#e6e9ef;--piano-roll-grid-line:#4c4f690f;--piano-roll-grid-line-beat:#4c4f691f;--piano-roll-grid-line-measure:#4c4f6938;--piano-roll-pitch-line-c:#4c4f6924;--piano-roll-pitch-line:#4c4f690a;--piano-roll-key-label-text:#44455166;--piano-roll-white-key-overlay:transparent;--piano-roll-black-key-overlay:#ccd0da66;--piano-roll-note-border:#ffffff80;--piano-roll-cursor:#df8e1de6;--piano-roll-cursor-glow:#df8e1d99;--piano-roll-loop-bg:#1e66f514;--piano-roll-loop-border:#1e66f54d;--piano-roll-empty-text:#9ca0b0;--fm-carrier:#40a02b;--fm-slider-color:#ccd0dadd;--track-fm1:#cf2c17;--track-fm2:#c2720a;--track-fm3:olive;--track-fm4:#228a0f;--track-fm5:#155dd1;--track-fm6:#6e30e8;--track-psg1:#c08;--track-psg2:#e60099;--track-psg3:#f0a;--track-noise:#404040;--track-pcm2:#7e47eb;--track-pcm3:#8e5eed;--track-fm3a:#8c9900;--track-fm3b:#95b300;--track-fm3c:#9c0;--track-fm3d:olive}[data-theme=pro]{--bg-primary:#000;--bg-sidebar:#000;--bg-toolbar:#000;--bg-dialog:#111;--bg-hover:#1a1a1a;--bg-active:#fff2;--bg-preview-card:#fff2;--text-primary:#fff;--text-secondary:#fff;--text-muted:#999;--accent:#999;--accent-soft:#ffffff0d;--border:#222;--dirty:#dfb21d;--warning:#dfb21d;--danger:#ff6161;--success:#bbb;--chip-text:#000;--shadow-color:#0009;--backdrop-color:#0009;--pk-white:#fff;--pk-white-hover:#eee;--pk-black:#333;--pk-black-hover:#555;--pk-label-white:#555;--pk-label-black:#999;--editor-bg:#000;--editor-fg:#fff;--editor-line-number:#fff4;--editor-line-number-active:#fff9;--editor-selection:#fff3;--editor-line-highlight:#fff2;--editor-token-comment:#fff9;--editor-token-meta:#fff;--editor-token-keyword:#fff;--editor-token-platform-keyword:#fff;--editor-token-string:#fff;--editor-token-string-meta:#fff;--editor-token-style-string-meta:italic;--editor-token-attribute:#fff;--editor-token-type:#fff;--editor-token-track:#fff;--editor-token-number:#fff;--editor-token-note-pitch:#fff;--editor-token-note-rest:#fff;--editor-token-style-platform-keyword:italic;--editor-token-style-type:italic;--editor-token-style-operator:italic;--editor-token-style-note-pitch:italic;--editor-token-style-note-rest:italic;--editor-token-variable:#fff;--editor-token-operator:#fff;--editor-token-delimiter:#fff;--fm-carrier:#fff;--editor-codelens:#fff6;--editor-inlay-hint-fg:#fff6;--editor-inlay-hint-bg:#ffffff0d;--playback-highlight-bg:#ffffff4d;--playback-highlight-border:#fffc;--playback-highlight-glow:#ffffff4d;--playback-highlight-text:#fff;--playback-highlight-text-glow:#fffc;--playback-highlight-text-outline:#ffffff80;--piano-roll-panel-bg:#000;--piano-roll-grid-bg:#000;--piano-roll-grid-line:#ffffff0d;--piano-roll-grid-line-beat:#ffffff1a;--piano-roll-grid-line-measure:#ffffff2e;--piano-roll-pitch-line-c:#ffffff1f;--piano-roll-pitch-line:#ffffff08;--piano-roll-key-label-text:#fff4;--piano-roll-white-key-overlay:#1116;--piano-roll-black-key-overlay:transparent;--piano-roll-note-border:#0006;--piano-roll-edit-cursor:#888;--piano-roll-edit-cursor-glow:#8886;--piano-roll-cursor:#ffffffb3;--piano-roll-cursor-glow:#fff6;--piano-roll-loop-bg:#ffffff0a;--piano-roll-loop-border:#ffffff26;--piano-roll-empty-text:#444;--fm-slider-color:#222d;--track-fm1:#fff;--track-fm2:#eee;--track-fm3:#ddd;--track-fm4:#ccc;--track-fm5:#bbb;--track-fm6:#aaa;--track-psg1:#999;--track-psg2:#888;--track-psg3:#777;--track-noise:#666;--track-pcm2:#8b8b8b;--track-pcm3:#6d6d6d;--track-fm3a:#c3c3c3;--track-fm3b:#a8a8a8;--track-fm3c:#8d8d8d;--track-fm3d:#737373}html,body{background:var(--bg-primary);height:100%;color:var(--text-primary);font-family:var(--font-ui);font-weight:400;font-size:var(--font-size-base);overflow:hidden}button,input,select,textarea{font:inherit}.monaco-editor .mml-track-chip{background:var(--mml-track-chip-bg);color:var(--chip-text)!important}.app-init-error{color:var(--text-secondary);text-align:center;padding:2em}.app-init-error button{color:var(--accent);border:1px solid var(--accent);cursor:pointer;background:0 0;border-radius:4px;padding:4px 12px}.monaco-editor .mml-track-chip-0{--mml-track-chip-bg:var(--track-fm1)}.monaco-editor .mml-track-chip-1{--mml-track-chip-bg:var(--track-fm2)}.monaco-editor .mml-track-chip-2{--mml-track-chip-bg:var(--track-fm3)}.monaco-editor .mml-track-chip-3{--mml-track-chip-bg:var(--track-fm4)}.monaco-editor .mml-track-chip-4{--mml-track-chip-bg:var(--track-fm5)}.monaco-editor .mml-track-chip-5{--mml-track-chip-bg:var(--track-fm6)}.monaco-editor .mml-track-chip-6{--mml-track-chip-bg:var(--track-psg1)}.monaco-editor .mml-track-chip-7{--mml-track-chip-bg:var(--track-psg2)}.monaco-editor .mml-track-chip-8{--mml-track-chip-bg:var(--track-psg3)}.monaco-editor .mml-track-chip-9{--mml-track-chip-bg:var(--track-noise)}.monaco-editor .mml-track-chip-10{--mml-track-chip-bg:var(--track-pcm2)}.monaco-editor .mml-track-chip-11{--mml-track-chip-bg:var(--track-pcm3)}.monaco-editor .mml-track-chip-12{--mml-track-chip-bg:var(--track-fm3a)}.monaco-editor .mml-track-chip-13{--mml-track-chip-bg:var(--track-fm3b)}.monaco-editor .mml-track-chip-14{--mml-track-chip-bg:var(--track-fm3c)}.monaco-editor .mml-track-chip-15{--mml-track-chip-bg:var(--track-fm3d)}.monaco-overflow-root{z-index:30;pointer-events:none;background:0 0;position:fixed;top:0;bottom:0;left:0;right:0}.monaco-overflow-root .monaco-hover,.monaco-overflow-root .suggest-widget,.monaco-overflow-root .parameter-hints-widget,.monaco-overflow-root .monaco-editor-overlaymessage,.monaco-overflow-root .inlineSuggestionsHints{pointer-events:auto}.monaco-editor .codelens-decoration,.monaco-editor .codelens-decoration>a{cursor:pointer;font-style:italic}.monaco-editor .mml-track-chip{font-style:normal}.monaco-editor .monaco-hover,.monaco-overflow-root .monaco-hover,.monaco-editor .monaco-hover .hover-contents,.monaco-overflow-root .monaco-hover .hover-contents,.monaco-editor .monaco-hover .hover-row,.monaco-overflow-root .monaco-hover .hover-row,.monaco-editor .monaco-hover .hover-row-contents,.monaco-overflow-root .monaco-hover .hover-row-contents,.monaco-editor .monaco-hover code,.monaco-overflow-root .monaco-hover code,.monaco-editor .monaco-hover .rendered-markdown,.monaco-overflow-root .monaco-hover .rendered-markdown{font-family:var(--font-code);font-size:var(--font-size-base);line-height:1.6}#app{grid-template-columns:var(--sidebar-width) 4px 1fr 4px var(--right-panel-width);grid-template-rows:var(--toolbar-height) 1fr auto auto;height:100%;display:grid}#app.sidebar-hidden{grid-template-columns:0px 0px 1fr 4px var(--right-panel-width)}#app.right-panel-hidden{grid-template-columns:var(--sidebar-width) 4px 1fr 0px 0px}#app.sidebar-hidden.right-panel-hidden{grid-template-columns:0 0 1fr 0 0}#app.sidebar-hidden .sidebar{border-right:none;overflow:hidden}#app.sidebar-hidden .resize-handle-v:not(.right-resize-handle){display:none}.resize-handle-v{cursor:col-resize;background:var(--border);touch-action:none;grid-row:2/-1;position:relative}.resize-handle-v:after{content:"";position:absolute;top:0;bottom:0;left:-8px;right:-8px}.resize-handle-v:not(.right-resize-handle){grid-column:2}.resize-handle-v:hover{background:var(--accent)}.right-resize-handle{grid-column:4}#app.right-panel-hidden .right-resize-handle,#app.right-panel-hidden .right-panel{display:none}.right-panel{background:var(--bg-sidebar);border-left:1px solid var(--border);flex-direction:column;grid-area:2/5/-1;display:flex;overflow:hidden}.right-panel-content{flex:1;min-height:0;overflow:hidden auto}#app.piano-roll-hidden .resize-handle-h,#app.piano-roll-hidden .piano-roll-container{display:none}.editor-container{grid-column:3;position:relative;overflow:hidden}.editor-container.has-bg-image:before{content:"";background-image:var(--bg-url);background-size:var(--bg-size,cover);background-position:var(--bg-position,center);opacity:var(--bg-opacity,1);pointer-events:none;background-repeat:no-repeat;animation:.22s ease-out editor-bg-fadein;position:absolute;top:0;bottom:0;left:0;right:0}.editor-container>canvas.editor-bg-gif{pointer-events:none;width:100%;height:100%;animation:.22s ease-out editor-bg-fadein;position:absolute;top:0;bottom:0;left:0;right:0}@keyframes editor-bg-fadein{0%{opacity:0}to{opacity:var(--bg-opacity,1)}}@media (prefers-reduced-motion:reduce){.editor-container.has-bg-image:before{animation:none}}.editor-container.has-bg-image .monaco-editor,.editor-container.has-bg-image .monaco-editor .overflow-guard,.editor-container.has-bg-image .monaco-editor-background,.editor-container.has-bg-image .margin{background:0 0!important}#app.external-drag .editor-container:after{content:"Drop to insert";background:var(--accent-soft);border:2px dashed var(--accent);font-size:var(--font-size-xl);color:var(--accent);z-index:10;pointer-events:none;justify-content:center;align-items:center;display:flex;position:absolute;top:0;bottom:0;left:0;right:0}#app.external-drag .file-tree{outline:2px dashed var(--accent);outline-offset:-2px}input{accent-color:var(--accent)}legend{font-style:italic}.sidebar{background:var(--bg-sidebar);border-right:1px solid var(--border);-webkit-user-select:none;user-select:none;flex-direction:column;grid-row:2/-1;display:flex;overflow:hidden auto}.sidebar-header{font-size:var(--font-size-sm);letter-spacing:.5px;color:var(--text-muted);background:var(--bg-sidebar);justify-content:space-between;align-items:center;padding:8px 8px 8px 12px;display:flex;position:sticky;top:0;left:0}.sidebar-header-buttons{gap:2px;display:flex}.sidebar-icon-btn{color:var(--text-primary);cursor:pointer;background:0 0;border:none;border-radius:3px;align-items:center;padding:4px 10px;display:flex}.sidebar-icon-btn:hover{color:var(--text-primary);background:var(--bg-hover)}.sidebar-icon-btn svg,.sidebar-icon-btn .codicon{display:block}.file-tree{flex:auto;min-height:0;list-style:none}.sidebar.drag-over-root .file-tree{background:var(--accent-soft);outline:2px dashed var(--accent);outline-offset:-2px}.file-tree li{cursor:pointer}.file-tree-item{white-space:nowrap;text-overflow:ellipsis;align-items:center;gap:4px;padding:6px 12px;display:flex;overflow:hidden}.file-tree-item:hover{background:var(--bg-hover)}.file-tree-item.active{background:var(--bg-active);color:var(--accent)}.file-tree-item.active-ancestor{color:var(--accent)}.file-tree-item.dirty .file-name:after{content:" •";color:var(--dirty)}.file-tree-item.has-errors .file-name:after{content:" ●";color:var(--danger);font-size:var(--font-size-sm)}.file-tree-item.drag-over{background:var(--bg-hover);outline:1px dashed var(--accent)}.file-tree-item .icon{text-align:center;width:16px;font-size:var(--font-size-base);flex-shrink:0}.file-tree-item .icon.codicon{font-size:var(--font-size-lg);line-height:1}.file-tree-item .file-name{text-overflow:ellipsis;flex:auto;min-width:0;overflow:hidden}.file-tree-item .file-notice{text-overflow:ellipsis;min-width:0;max-width:min(60%,32ch);font-size:var(--font-size-sm);white-space:nowrap;border-radius:999px;flex:0 auto;margin-left:6px;padding:1px 6px;line-height:1.2;overflow:hidden}.file-tree-item .file-notice-count{flex:none;max-width:none;overflow:visible}.file-tree-item .file-notice-warning{background:color-mix(in srgb, var(--warning) 25%, transparent);color:var(--warning);border:1px solid color-mix(in srgb, var(--warning) 30%, transparent);font-style:italic}.file-tree-item .file-notice-error{background:color-mix(in srgb, var(--danger) 25%, transparent);color:var(--danger);border:1px solid color-mix(in srgb, var(--danger) 30%, transparent);font-style:italic}.file-tree .children{padding-left:12px;list-style:none}.inline-rename{background:var(--bg-primary);color:var(--text-primary);border:1px solid var(--accent);font-size:var(--font-size-base);outline:none;width:100%;padding:1px 4px;font-family:inherit}.monaco-editor .mml-playback-highlight{background:var(--playback-highlight-bg);border:1px solid var(--playback-highlight-border);box-sizing:border-box;box-shadow:0 0 8px var(--playback-highlight-glow);border-radius:2px}.monaco-editor .mml-playback-highlight-text{text-shadow:0 0 8px var(--playback-highlight-text-glow), 0 0 2px var(--playback-highlight-text-outline);color:var(--playback-highlight-text)!important}:root{--mml-note-anim-duration:.28s}@keyframes mml-note-spring-anim{0%{transform:translateY(0)}25%{transform:translateY(1px)}65%{transform:translateY(-1px)}to{transform:translateY(0)}}@keyframes mml-note-flash-anim{0%{background-color:var(--playback-highlight-bg);color:var(--playback-highlight-text);text-shadow:0 0 6px var(--playback-highlight-text-glow)}65%,to{color:inherit;text-shadow:none;background-color:#0000}}.monaco-editor .mml-note-pulse{transform-origin:top;animation:mml-note-spring-anim var(--mml-note-anim-duration) ease-out, mml-note-flash-anim var(--mml-note-anim-duration) ease-out;border-radius:2px;display:inline-block}.monaco-editor .mml-note-spring{transform-origin:top;animation:mml-note-spring-anim var(--mml-note-anim-duration) ease-out;display:inline-block}@media (prefers-reduced-motion:reduce){.monaco-editor .mml-note-pulse{animation:mml-note-flash-anim var(--mml-note-anim-duration) ease-out}.monaco-editor .mml-note-spring{animation:none}}.resize-handle-h{cursor:row-resize;background:var(--border);touch-action:none;grid-column:3;height:4px;position:relative}.resize-handle-h:after{content:"";position:absolute;top:-8px;bottom:-8px;left:0;right:0}.resize-handle-h:hover{background:var(--accent)}.piano-roll-container{background:var(--piano-roll-panel-bg);flex-direction:column;grid-column:3;height:200px;display:flex;position:relative;overflow:hidden}.piano-roll-legend{background:var(--bg-toolbar);border-bottom:1px solid var(--border);-webkit-user-select:none;user-select:none;flex-wrap:wrap;flex-shrink:0;gap:2px 6px;padding:3px 8px;display:flex}.piano-roll-ch-btn{cursor:pointer;color:var(--text-muted);opacity:.4;font-size:var(--font-size-sm);background:0 0;border:none;border-radius:3px;align-items:center;gap:4px;padding:0 2px;line-height:18px;display:inline-flex}.piano-roll-ch-btn.active{opacity:1;color:var(--text-secondary)}.piano-roll-ch-btn:hover{opacity:.7}.piano-roll-ch-btn.active:hover{opacity:.85}.piano-roll-ch-btn .ch-letter{background:var(--text-muted);width:16px;color:var(--bg-toolbar);font-size:var(--font-size-sm);flex-shrink:0;justify-content:center;align-items:center;font-style:normal;font-weight:400;display:inline-flex}.piano-roll-ch-btn.active .ch-letter{background:var(--ch-color)}.piano-roll-ch-btn.playing .ch-letter{filter:brightness(1.3);box-shadow:0 0 4px var(--ch-color)}.piano-roll-ch-btn.attack .ch-letter{filter:brightness(2.5);box-shadow:0 0 10px var(--ch-color);transition:none}.piano-roll-ch-btn.playing:not(.attack) .ch-letter{transition:filter 70ms ease-out,box-shadow 70ms ease-out}.piano-roll-ch-btn .ch-desc{font-size:var(--font-size-sm);color:var(--text-muted);font-style:italic}.piano-roll-ch-btn.active .ch-desc{color:var(--text-secondary)}.piano-roll-viewport{flex:1;min-height:0;transition:opacity .15s ease-out;position:relative;overflow:auto}.piano-roll-sizer{position:relative}.piano-roll-grid{z-index:0;pointer-events:none;position:sticky;top:0;left:0}.piano-roll-notes{z-index:1;pointer-events:none;width:100%;height:100%;position:absolute;top:0;left:0;transform:translateZ(0)}.piano-roll-note{z-index:1;box-sizing:border-box;transform-origin:top;pointer-events:auto;cursor:pointer;border-radius:9999px;position:absolute}.piano-roll-note.playing{filter:brightness(1.8);z-index:2;animation:mml-note-spring-anim var(--mml-note-anim-duration) ease-out;box-shadow:0 0 4px}.piano-roll-note.attack{filter:brightness(2.6);z-index:3;transition:none;box-shadow:0 0 12px}.piano-roll-note.playing:not(.attack){transition:filter .12s ease-out,box-shadow .12s ease-out}@media (prefers-reduced-motion:reduce){.piano-roll-note.playing{animation:none}}.piano-roll-cursor{background:var(--piano-roll-cursor);width:2px;box-shadow:0 0 6px var(--piano-roll-cursor-glow);z-index:3;pointer-events:none;position:absolute;top:0}.piano-roll-edit-cursor{border-left:1px dashed var(--piano-roll-edit-cursor);width:1px;box-shadow:0 0 4px var(--piano-roll-edit-cursor-glow);z-index:2;pointer-events:none;opacity:.95;position:absolute;top:0}.piano-roll-loop-marker{pointer-events:none;z-index:1;position:absolute}.piano-roll-loop-marker.loop-start{border-left:1.5px solid}.piano-roll-loop-marker.loop-end{border-left:1.5px dashed}.piano-roll-loop-label{white-space:nowrap;opacity:.8;padding:1px 3px;font:10px/12px sans-serif;display:block;position:absolute;top:-14px}.piano-roll-loop-marker.loop-end .piano-roll-loop-label{transform:translate(-100%)}.piano-roll-follow-btn{z-index:4;background:var(--bg-toolbar);width:24px;height:24px;color:var(--piano-roll-cursor);cursor:pointer;opacity:.8;border:none;border-radius:4px;justify-content:center;align-items:center;display:flex;position:absolute;top:33px;right:8px;box-shadow:0 1px 4px #0006}.piano-roll-follow-btn:hover{opacity:1;background:var(--accent)}.piano-roll-empty{color:var(--piano-roll-empty-text);pointer-events:none;justify-content:center;align-items:center;font:13px sans-serif;display:flex;position:absolute;top:0;bottom:0;left:0;right:0}.fm-editor-container{flex-direction:column;gap:12px;min-width:0;padding:16px 0;display:flex}.fm-editor-empty{height:100%;color:var(--text-muted);font-size:var(--font-size-base);justify-content:center;align-items:center;padding:0 12px;display:flex}.fm-editor-container.is-read-only input[type=range],.fm-editor-container.is-read-only input[type=checkbox]{cursor:default}.fm-editor-container.is-read-only input[type=range]{opacity:.8}.fm-editor-container.is-read-only input[type=range]::-webkit-slider-thumb{background:var(--text-muted);cursor:default}.fm-editor-container.is-read-only .fm-editor-am-toggle,.fm-editor-container.is-read-only .fm-editor-check-row{cursor:default}.fm-editor-algorithm{flex-direction:column;gap:6px;margin-bottom:16px;display:flex}.fm-editor-algorithm>div{margin:0 12px}.fm-editor-algorithm-row{align-items:center;gap:6px;display:flex}.fm-editor-algorithm-row label{color:var(--text-muted);font-size:var(--font-size-sm);min-width:28px}.fm-editor-algorithm-row input[type=range]{-webkit-appearance:none;appearance:none;background:var(--border);cursor:pointer;border-radius:2px;outline:none;flex:1;min-width:0;height:16px}.fm-editor-algorithm-row input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;background:var(--text-secondary);cursor:pointer;width:16px;height:16px}.fm-editor-algorithm-row input[type=range]::-webkit-slider-thumb:hover{background:var(--accent)}.fm-editor-algorithm-row .fm-editor-value{color:var(--text-primary);font-size:var(--font-size-sm);font-family:var(--font-code);text-align:right;min-width:16px}.fm-editor-alg-diagram{justify-content:center;align-items:center;height:56px;display:flex}.fm-editor-alg-diagram svg{width:100%;max-width:220px;height:56px}.fm-editor-operators{gap:8px;min-width:0;margin-top:3px;display:grid}.fm-editor-operator>div{margin:0 12px}.fm-editor-operators.cols-1{grid-template-columns:1fr}.fm-editor-operators.cols-2{grid-template-columns:1fr 1fr}.fm-editor-operator{border-top:1px solid var(--border);flex-direction:column;gap:6px;min-width:0;padding:6px 0;display:flex;overflow:hidden}.fm-editor-op-header{align-items:center;gap:6px;display:flex}.fm-editor-op-label{font-size:var(--font-size-sm);color:var(--text-muted);flex:1;font-style:normal;font-weight:400}.fm-editor-am-toggle{font-size:var(--font-size-sm);color:var(--text-muted);cursor:pointer;align-items:center;gap:4px;display:flex}.fm-editor-am-toggle input[type=checkbox]{margin:0}.fm-editor-fb-spacer{display:none}.fm-editor-operators.cols-2 .fm-editor-fb-spacer{height:16px;display:block}.fm-editor-envelope{align-items:stretch;gap:4px;min-width:0;display:flex;position:relative;overflow:hidden}.fm-editor-envelope-canvas{border:1px solid var(--border);background:var(--bg-primary);flex:1 1 0;min-width:0;max-width:100%;height:86px;margin:13px 0 17px}.fm-editor-operator.carrier .fm-editor-envelope-canvas{border-color:var(--fm-carrier)}.fm-editor-op-tag{font-size:var(--font-size-sm);pointer-events:none;z-index:1;font-weight:400;position:absolute;top:-2px;right:0}.fm-editor-op-tag.tag-carrier{color:var(--fm-carrier)}.fm-editor-op-tag.tag-mod{color:var(--text-muted);opacity:.6}.fm-editor-vsliders{flex-shrink:0;gap:5px;display:flex}.fm-editor-vslider-col{flex-direction:column;align-items:center;gap:1px;width:18px;display:flex}.fm-editor-vslider-col label{font-size:var(--font-size-sm);color:var(--text-muted);line-height:1}.fm-editor-vslider-col .fm-editor-vslider-value{font-size:var(--font-size-sm);color:var(--text-primary);font-family:var(--font-code);line-height:1}.fm-editor-vslider{writing-mode:vertical-lr;-webkit-appearance:none;appearance:none;background:var(--fm-slider-color);cursor:pointer;outline:none;width:100%;height:86px}.fm-editor-vslider::-webkit-slider-thumb{-webkit-appearance:none;background:var(--text-secondary);cursor:pointer;width:18px;height:6px}.fm-editor-vslider-col.tl{width:28px}.fm-editor-vslider-col.tl .fm-editor-vslider::-webkit-slider-thumb{width:28px}.fm-editor-vslider::-webkit-slider-thumb:hover{background:var(--accent)}.fm-editor-params{flex-direction:column;gap:3px;display:flex}.fm-editor-param-row{align-items:center;gap:6px;display:flex}.fm-editor-param-row label{color:var(--text-muted);font-size:var(--font-size-sm);min-width:22px}.fm-editor-param-row input[type=range]{-webkit-appearance:none;appearance:none;background:var(--fm-slider-color);cursor:pointer;outline:none;flex:1;min-width:0;height:16px}.fm-editor-param-row input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;background:var(--text-secondary);cursor:pointer;width:16px;height:16px}.fm-editor-param-row input[type=range]::-webkit-slider-thumb:hover{background:var(--accent)}.fm-editor-param-row .fm-editor-value{color:var(--text-primary);font-size:var(--font-size-sm);font-family:var(--font-code);text-align:right;min-width:24px}.fm-editor-check-row{font-size:var(--font-size-sm);color:var(--text-secondary);align-items:center;gap:6px;display:flex}.fm-editor-check-row input[type=checkbox]{margin:0}.fm-editor-ssg{flex-direction:column;gap:3px;display:flex}.fm-editor-ssg-canvas{border:1px solid var(--border);background:var(--bg-primary);width:100%;height:40px}.psg-editor-container{flex-direction:column;gap:10px;min-width:0;padding:16px 0;display:flex}.psg-editor-empty{height:100%;color:var(--text-muted);font-size:var(--font-size-base);justify-content:center;align-items:center;display:flex}.psg-editor-header{margin:0 12px}.psg-editor-label{font-size:var(--font-size-sm);color:var(--text-muted);font-style:normal;font-weight:400;font-family:var(--font-code)}.psg-editor-canvas{background:var(--bg-primary);box-sizing:border-box;width:100%;height:200px;display:block}.psg-editor-nodes{flex-direction:column;gap:0;display:flex}.psg-node-row{border-top:1px solid var(--border);align-items:center;gap:8px;padding:4px 12px;display:flex}.psg-node-index{font-size:var(--font-size-sm);color:var(--text-muted);font-family:var(--font-code);text-align:right;flex-shrink:0;min-width:18px}.psg-node-value{font-size:var(--font-size-sm);font-family:var(--font-code);color:var(--text-primary);flex:1;min-width:0}.psg-node-len{font-size:var(--font-size-sm);font-family:var(--font-code);color:var(--text-muted);text-align:right;flex-shrink:0}.psg-separator-row{border-top:1px solid var(--border);align-items:center;gap:6px;padding:3px 12px;display:flex}.psg-separator-row:before,.psg-separator-row:after{content:"";flex:1;height:1px}.psg-separator-sustain{background:color-mix(in srgb, var(--warning) 8%, transparent)}.psg-separator-sustain:before,.psg-separator-sustain:after{background:var(--warning);opacity:.4}.psg-separator-loop{background:color-mix(in srgb, var(--accent) 6%, transparent)}.psg-separator-loop:before,.psg-separator-loop:after{background:var(--accent);opacity:.4}.psg-separator-label{font-size:var(--font-size-sm);font-family:var(--font-code);flex-shrink:0}.psg-separator-sustain .psg-separator-label{color:var(--warning)}.psg-separator-loop .psg-separator-label{color:var(--accent)}.preview-keyboard{background:var(--bg-sidebar);border-top:1px solid var(--border);-webkit-user-select:none;user-select:none;touch-action:none;flex-shrink:0}.preview-keyboard :focus{outline:none}.pk-toolbar{align-items:center;gap:4px;padding:2px 4px;display:flex}.pk-octave-input,.pk-layout-select{background:var(--bg-primary);color:var(--text-primary);border:1px solid var(--border);cursor:pointer;border-radius:3px;padding:1px 2px;font-size:11px}.pk-toolbar-label{color:var(--text-secondary);margin-left:4px;font-size:10px}.pk-op-toggles{gap:1px;margin-right:4px;display:flex}.pk-op-toggle{font-size:10px;font-family:var(--font-code);border:1px solid var(--border);min-width:18px;color:var(--text-muted);cursor:pointer;opacity:.5;text-align:center;background:0 0;border-radius:2px;padding:2px 0;line-height:1}.pk-op-toggle.active{color:var(--text-primary);background:var(--bg-hover);opacity:1}.pk-psg-mode{align-items:center;display:flex}.pk-psg-mode-select{background:var(--bg-primary);color:var(--text-primary);border:1px solid var(--border);cursor:pointer;border-radius:3px;padding:1px 2px;font-size:10px}.pk-keys-wrap{outline:none;height:60px;padding:0 4px 4px;position:relative}.pk-white-keys{height:100%;display:flex;position:relative}.pk-key.pk-white{background:var(--pk-white);cursor:pointer;z-index:1;border:.5px solid var(--border);border-radius:0 0 3px 3px;flex:1;position:relative}.pk-key.pk-white:hover{background:var(--pk-white-hover)}.pk-key.pk-white.active{background:var(--accent)}.pk-black-keys{pointer-events:none;z-index:2;height:55%;display:flex;position:absolute;top:0;left:0;right:0}.pk-key.pk-black{background:var(--pk-black);cursor:pointer;pointer-events:auto;border-radius:0 0 2px 2px;width:8.57143%;height:100%;position:absolute}.pk-key.pk-black:hover{background:var(--pk-black-hover)}.pk-key.pk-black.active{background:var(--accent)}.pk-key.pk-black[data-note=C\#]{left:10%}.pk-key.pk-black[data-note=D\#]{left:24.2857%}.pk-key.pk-black[data-note=F\#]{left:52.8571%}.pk-key.pk-black[data-note=G\#]{left:67.1429%}.pk-key.pk-black[data-note=A\#]{left:81.4286%}.pk-label{pointer-events:none;font-size:9px;font-style:normal;font-weight:400;line-height:1;display:none;position:absolute;bottom:2px;left:50%;transform:translate(-50%)}.pk-key.pk-white .pk-label{color:var(--pk-label-white)}.pk-key.pk-black .pk-label{color:var(--pk-label-black);top:50%;bottom:auto;transform:translate(-50%,-50%)}.preview-keyboard.focused .pk-label{display:block}.license-editor-container{font-size:var(--font-size-base);flex-direction:column;gap:12px;height:100%;padding:12px;display:flex;overflow-y:auto}.license-editor-fieldset{border:1px solid var(--border);border-radius:4px;margin:0;padding:8px 12px 12px}.license-editor-fieldset legend{font-size:var(--font-size-sm);color:var(--text-muted);letter-spacing:.3px;padding:0 4px}.license-editor-radio,.license-editor-checkbox{cursor:pointer;color:var(--text-secondary);font-size:var(--font-size-base);-webkit-user-select:none;user-select:none;align-items:center;gap:6px;padding:3px 0;display:flex}.license-editor-radio:hover,.license-editor-checkbox:hover{color:var(--text-primary)}.license-editor-radio input,.license-editor-checkbox input{accent-color:var(--accent);margin:0}.license-editor-cc-options{flex-direction:column;gap:1px;margin-left:20px;display:flex}.license-editor-other-input{width:calc(100% - 20px);margin-top:4px;margin-left:20px}.license-editor-text-row{align-items:center;gap:8px;padding:3px 0;display:flex}.license-editor-text-label{min-width:80px;font-size:var(--font-size-sm);color:var(--text-muted);flex:none}.license-editor-text-input{min-width:0;font-size:var(--font-size-base);font-family:var(--font-code);background:var(--bg-input,var(--bg-primary));color:var(--text-primary);border:1px solid var(--border);border-radius:3px;outline:none;flex:1;padding:3px 6px}.license-editor-text-input:focus{border-color:var(--accent)}.license-editor-preview{font-family:var(--font-code);font-size:var(--font-size-sm);color:var(--text-primary);background:var(--bg-preview-card);white-space:pre-wrap;word-break:break-all;border-radius:3px;margin-top:6px;padding:6px 8px}.license-editor-cc-link{font-size:var(--font-size-xs);color:var(--accent);opacity:.8;margin-top:2px;text-decoration:none;display:block}.license-editor-cc-link:hover{opacity:1;text-decoration:underline}.license-editor-write-btn{font-size:var(--font-size-base);background:var(--accent);color:var(--bg-primary);cursor:pointer;border:none;border-radius:4px;align-self:flex-end;padding:4px 16px}.license-editor-write-btn:hover{opacity:.9}.help-panel{height:100%;min-height:0;font-size:var(--font-size-base);flex-direction:column-reverse;display:flex}.help-panel.layout-row{flex-direction:row}.help-panel-list{border-top:1px solid var(--border);flex:2.5;min-height:0;padding:0 0 24px;overflow-y:auto}.layout-row .help-panel-list{border-top:none;border-right:1px solid var(--border);flex:none}.help-panel-section{z-index:1;font-size:var(--font-size-sm);color:var(--text-muted);letter-spacing:.3px;-webkit-user-select:none;user-select:none;background:var(--bg-sidebar);padding:12px;font-style:italic;font-weight:400;position:sticky;top:0}.help-panel-section:not(:first-child){border-top:1px solid var(--border);margin-top:6px}.help-panel-item{cursor:pointer;color:var(--text-secondary);white-space:nowrap;text-overflow:ellipsis;font-family:var(--font-code);font-size:var(--font-size-sm);padding:3px 12px;line-height:1.6;overflow:hidden}.help-panel-item:hover{background:var(--bg-hover);color:var(--text-primary)}.help-panel-item.active{background:var(--bg-active);color:var(--text-primary)}.help-panel-detail{flex:1;min-height:0;padding:12px;overflow-y:auto}.layout-row .help-panel-detail{flex:1}.help-panel-detail-label{font-family:var(--font-code);font-size:var(--font-size-lg);color:var(--text-primary);margin-bottom:8px;font-style:italic;font-weight:400}.help-panel-detail-doc{color:var(--text-secondary);font-family:var(--font-code);font-size:var(--font-size-base);white-space:pre-line;line-height:1.8}.help-panel-detail-empty{color:var(--text-muted);font-size:var(--font-size-sm)}.help-panel-detail-tutorials{flex-direction:column;gap:4px;margin-top:16px;display:flex}.help-panel-tutorial-card{font-family:var(--font-code);font-size:var(--font-size-sm);color:var(--text-primary);background:var(--bg-preview-card);white-space:pre-wrap;word-break:break-all;border-radius:3px;padding:6px 8px}.help-panel-tutorial-label{display:block}.help-panel-tutorial-link{font-size:var(--font-size-xs);color:var(--accent);cursor:pointer;opacity:.8;margin-top:2px;text-decoration:none;display:block}.help-panel-tutorial-link:hover{opacity:1;text-decoration:underline}.audio-player-container{background:var(--bg-primary);z-index:1;flex-direction:column;justify-content:center;align-items:center;gap:12px;display:flex;position:absolute;top:0;bottom:0;left:0;right:0}.audio-player-icon{color:var(--text-muted);font-size:48px}.audio-player-icon .codicon{font-size:48px}.audio-player-label{font-size:var(--font-size-lg);color:var(--text-secondary)}.audio-player-controls{gap:8px;display:flex}.audio-player-controls button{background:var(--bg-hover);border:1px solid var(--border);color:var(--text-primary);cursor:pointer;font-size:var(--font-size-base);border-radius:4px;align-items:center;gap:6px;padding:8px 20px;display:inline-flex}.audio-player-controls button:hover{background:var(--bg-active)}.audio-player-info{font-size:var(--font-size-base);color:var(--text-muted);font-family:var(--font-code)}.wav-settings-container{background:var(--bg-primary);z-index:1;flex-direction:column;justify-content:center;align-items:center;gap:12px;padding:20px;display:flex;position:absolute;top:0;bottom:0;left:0;right:0;overflow-y:auto}.wav-settings-icon{color:var(--text-muted);font-size:48px}.wav-settings-icon .codicon{font-size:48px}.wav-settings-label{font-size:var(--font-size-lg);color:var(--text-secondary)}.wav-settings-section{align-items:baseline;gap:12px;display:flex}.wav-settings-section-label{font-size:var(--font-size-base);color:var(--text-muted);text-align:right;min-width:70px}.wav-settings-radio-group{gap:16px;display:flex}.wav-settings-radio{font-size:var(--font-size-base);color:var(--text-primary);cursor:pointer;align-items:center;gap:4px;display:flex}.wav-settings-rate-group{flex-direction:column;gap:4px;display:flex}.wav-settings-rate-option{font-size:var(--font-size-base);color:var(--text-primary);cursor:pointer;align-items:center;gap:8px;display:flex}.wav-settings-rate-text{min-width:72px}.wav-settings-rate-driver{font-size:var(--font-size-sm);color:var(--text-muted)}.wav-settings-custom-rate{background:var(--bg-hover);border:1px solid var(--border);width:64px;color:var(--text-primary);font-size:var(--font-size-base);font-family:var(--font-code);border-radius:3px;padding:2px 6px}.wav-settings-custom-rate::-webkit-inner-spin-button{-webkit-appearance:none}.wav-settings-range-hint{font-size:var(--font-size-sm);color:var(--danger);padding-left:24px}.wav-settings-preview-block{flex-direction:column;align-items:center;gap:2px;display:flex}.wav-settings-preview-btn{background:var(--bg-hover);border:1px solid var(--border);color:var(--text-primary);cursor:pointer;font-size:var(--font-size-base);border-radius:4px;justify-content:center;align-items:center;gap:6px;min-width:180px;padding:8px 20px;display:inline-flex}.wav-settings-preview-btn:hover:not(:disabled){background:var(--bg-active)}.wav-settings-preview-btn:disabled{opacity:.4;cursor:default}.wav-settings-preview-info{font-size:var(--font-size-sm);color:var(--text-muted);font-family:var(--font-code)}.wav-settings-preview-block.disabled{opacity:.4}.image-viewer-container{z-index:1;background-color:var(--bg-primary);justify-content:center;align-items:center;display:flex;position:absolute;top:0;bottom:0;left:0;right:0}.image-viewer-bg{background-position:50%;background-repeat:no-repeat;background-size:cover;position:absolute;top:0;bottom:0;left:0;right:0}.image-viewer-bg[data-fit=cover]{background-size:cover}.image-viewer-bg[data-fit=contain]{background-size:contain}.image-viewer-bg[data-fit=fill]{background-size:100% 100%}.image-viewer-bg[data-fit=none]{background-size:auto}.image-viewer-controls{background:var(--bg-dialog);border:1px solid var(--border);box-shadow:0 8px 24px var(--shadow-color);color:var(--text-primary);pointer-events:auto;-webkit-user-select:none;user-select:none;border-radius:8px;flex-direction:column;gap:10px;padding:16px 20px;display:flex;position:relative}.image-viewer-section{justify-content:center;align-items:center;gap:10px;display:flex}.image-viewer-section-label{font-size:var(--font-size-base);color:var(--text-muted);text-align:right}.image-viewer-radio-group{gap:12px;display:flex}.image-viewer-radio{font-size:var(--font-size-base);color:var(--text-primary);cursor:pointer;align-items:center;gap:4px;display:flex}.image-viewer-radio input[type=radio]{margin:0}.image-viewer-position-row{justify-content:center;align-items:center;gap:12px;display:flex}.image-viewer-select-group{align-items:center;gap:6px;display:flex}.image-viewer-select-group label{font-size:var(--font-size-base);color:var(--text-muted)}.image-viewer-select-group select{background:var(--bg-primary);border:1px solid var(--border);color:var(--text-primary);font-size:var(--font-size-base);border-radius:4px;padding:2px 6px;font-family:inherit}.image-viewer-select-group select:focus{border-color:var(--accent);outline:none}.image-viewer-select-group select:disabled{opacity:.4;cursor:default}.image-viewer-select-group.disabled label{opacity:.4}.image-viewer-opacity-slider{cursor:pointer;height:4px;accent-color:var(--accent);flex:1}.image-viewer-opacity-value{font-size:var(--font-size-sm);color:var(--text-muted);font-family:var(--font-code);text-align:right;min-width:32px}.image-viewer-size-info{font-size:var(--font-size-sm);color:var(--text-muted);font-family:var(--font-code);text-align:center}
