html,body{background:#0e0f12}:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#07111b;--bg-2:#0a1724;--panel:#0e1a26;--panel-2:#15243a;--line:#1f3654;--text:#e6f1ff;--muted:#7a90ad;--accent:#00bfff;--accent-warm:#ff7357;--accent-mint:#11fa8f;--ok:#11fa8f;--warn:#ff7357;--err:#ff6b6b;--font-brand:"Righteous", "Outfit", system-ui, sans-serif;--font-ui:"Outfit", system-ui, -apple-system, sans-serif;--font-mono:"JetBrains Mono", ui-monospace, monospace}*{box-sizing:border-box}html,body,#root{min-height:100%;margin:0}html{background:var(--bg)}body{background:radial-gradient(ellipse at 12% -10%, #00bfff14, transparent 55%), radial-gradient(ellipse at 90% 110%, #11fa8f0f, transparent 50%), radial-gradient(ellipse at 50% 50%, #ff73570a, transparent 70%), var(--bg);color:var(--text);font:14px/1.5 var(--font-ui);letter-spacing:.01em}body:before{content:"";pointer-events:none;z-index:0;opacity:.6;background-image:linear-gradient(#00bfff06 1px,#0000 1px),linear-gradient(90deg,#00bfff06 1px,#0000 1px);background-size:56px 56px;position:fixed;inset:0;-webkit-mask-image:radial-gradient(#000c,#0000 80%);mask-image:radial-gradient(#000c,#0000 80%)}.app{z-index:1;grid-template-rows:auto 1fr auto;gap:14px;min-height:100vh;padding:18px 22px;display:grid;position:relative}header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:18px;display:flex}.brand{-webkit-user-select:none;user-select:none;align-items:baseline;gap:14px;display:flex}.brand-logo{font-family:var(--font-brand);letter-spacing:.02em;white-space:nowrap;filter:drop-shadow(0 0 14px #00bfff40);font-size:26px;font-weight:400;line-height:1}.brand-logo .b-open{color:var(--accent-warm);margin-right:4px}.brand-logo .b-name{color:var(--accent);text-shadow:0 0 22px #00bfff8c}.brand-logo .b-close{color:var(--accent-mint);margin-left:4px}.brand-sub{font-family:var(--font-ui);letter-spacing:.22em;text-transform:uppercase;color:var(--muted);border-left:1px solid var(--line);padding-left:14px;font-size:10px;font-weight:600;line-height:1.2}.brand-sub strong{color:var(--text);font-weight:600}.brand-sub .dot{background:var(--accent-mint);vertical-align:middle;width:5px;height:5px;box-shadow:0 0 8px var(--accent-mint);border-radius:999px;margin:0 6px;display:inline-block}@media (width<=720px){.brand-sub{display:none}}.header-right{align-items:center;gap:14px;display:flex}.live-toggle{color:var(--muted);-webkit-user-select:none;user-select:none;cursor:pointer;align-items:center;gap:6px;font-size:12px;display:flex}.live-toggle input{accent-color:var(--accent)}.badge{background:var(--panel);border:1px solid var(--line);color:var(--muted);text-transform:uppercase;letter-spacing:.08em;border-radius:999px;padding:4px 10px;font-size:11px}.badge.playing{color:var(--ok);border-color:var(--ok)}.badge.loading{color:var(--warn);border-color:var(--warn)}.layout{grid-template-columns:220px 1fr;gap:14px;min-height:0;display:grid}.palette{background:var(--panel);border:1px solid var(--line);border-radius:12px;flex-direction:column;gap:14px;padding:14px;display:flex;overflow-y:auto}.palette-group h3{letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin:0 0 8px;font-size:10px;font-weight:600}.palette-group{border-top:1px solid var(--line);padding-top:10px}.palette-group:first-of-type{border-top:none;padding-top:0}.palette-group>summary{cursor:pointer;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);-webkit-user-select:none;user-select:none;align-items:center;gap:6px;padding:4px 0 8px;font-size:10px;font-weight:600;list-style:none;transition:color .15s;display:flex}.palette-group>summary:hover{color:var(--accent)}.palette-group>summary::-webkit-details-marker{display:none}.palette-group>summary:before{content:"▸";color:var(--muted);width:8px;font-size:9px;transition:transform .15s}.palette-group[open]>summary:before{transform:rotate(90deg)}.palette-chips{flex-wrap:wrap;gap:6px;display:flex}.chip{background:var(--panel-2);border:1px solid var(--line);color:var(--text);cursor:grab;-webkit-user-select:none;user-select:none;border-radius:6px;padding:5px 10px;font:12px ui-monospace,SFMono-Regular,Menlo,monospace;transition:border-color 80ms,transform 80ms}.chip:hover{border-color:var(--accent)}.chip:active{cursor:grabbing;transform:translateY(1px)}main{flex-direction:column;gap:12px;min-width:0;display:flex}.strudel-editor{border:1px solid var(--line);background:#04090f;border-radius:12px;flex:0 auto;min-height:280px;max-height:55vh;display:flex;overflow:hidden;box-shadow:inset 0 1px #0006,inset 0 0 0 1px #00bfff0a}.strudel-editor .cm-editor{background:0 0;flex:1;height:100%;min-height:280px}.strudel-editor .cm-scroller{background:0 0}.strudel-editor .cm-gutters{background:#00000040;border-right:1px solid #00bfff14}:root[data-theme=light] .strudel-editor{background:#e6f3fb;border-color:#0099cc40;box-shadow:inset 0 1px #ffffffb3,inset 0 0 0 1px #0099cc0f}:root[data-theme=light] .strudel-editor .cm-gutters{background:#0099cc12;border-right:1px solid #0099cc26}.controls{align-items:center;gap:10px;display:flex}.controls .hint{color:var(--muted);margin-left:4px;font-size:11px}button{background:var(--panel);color:var(--text);border:1px solid var(--line);font:inherit;cursor:pointer;border-radius:8px;padding:9px 14px}button:hover:not(:disabled){border-color:var(--accent)}button:disabled{opacity:.5;cursor:progress}button.ghost{color:var(--muted);background:0 0;padding:6px 10px;font-size:12px}button.ghost:hover{color:var(--text)}button.ghost.on{color:var(--ok);border-color:var(--ok)}button.ghost.rec{color:var(--err);border-color:var(--err);animation:1.2s ease-in-out infinite rec-pulse}@keyframes rec-pulse{0%,to{box-shadow:0 0 #ff6b6b80}50%{box-shadow:0 0 0 6px #ff6b6b00}}select.presets{background:var(--panel);color:var(--muted);border:1px solid var(--line);cursor:pointer;border-radius:8px;padding:6px 10px;font:12px inherit}select.presets:hover{color:var(--text);border-color:var(--accent)}button.tap{letter-spacing:.04em}button.tap:active{background:var(--accent);color:#fff;border-color:var(--accent)}.toast{background:var(--panel);border:1px solid var(--accent);color:var(--text);z-index:50;border-radius:999px;padding:8px 14px;font-size:12px;animation:.14s ease-out toast-in;position:fixed;bottom:24px;left:50%;transform:translate(-50%);box-shadow:0 8px 24px #0006}@keyframes toast-in{0%{opacity:0;transform:translate(-50%,6px)}to{opacity:1;transform:translate(-50%)}}.error{border:1px solid var(--err);color:var(--err);white-space:pre-wrap;background:#ff6b6b14;border-radius:8px;margin:0;padding:10px 12px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px}.cm-knob{vertical-align:-1px;cursor:ns-resize;background:radial-gradient(circle at 35% 35%,#9d83ff,#4a30c4 60%,#2b1d80);border-radius:50%;width:11px;height:11px;margin-right:4px;transition:transform 80ms;display:inline-block;box-shadow:0 0 0 1px #00bfff59}.cm-knob:hover{transform:scale(1.25)}body.cm-knob-dragging,body.cm-knob-dragging *{-webkit-user-select:none;user-select:none;cursor:ns-resize!important}.cm-minigrid{border-top:1px dashed var(--line);background:#00bfff0a;flex-wrap:wrap;gap:4px;padding:8px 10px 10px 56px;display:flex}.cm-minigrid-cell{background:var(--panel-2);min-width:34px;height:30px;color:var(--muted);border:1px solid var(--line);cursor:pointer;border-radius:6px;padding:0 8px;font:11px ui-monospace,SFMono-Regular,Menlo,monospace;transition:background 80ms,border-color 80ms,color 80ms}.cm-minigrid-cell:hover{border-color:var(--accent)}.cm-minigrid-cell.active{background:var(--accent);color:#fff;border-color:var(--accent);box-shadow:0 0 12px #00bfff59}.cm-minigrid-add{min-width:30px;height:30px;color:var(--muted);border:1px dashed var(--line);cursor:pointer;background:0 0;border-radius:6px;font:13px ui-monospace,monospace}.cm-minigrid-add:hover{border-color:var(--accent);color:var(--accent)}.cm-flash{text-shadow:0 0 8px #00bfffd9;border-radius:4px;animation:.38s cubic-bezier(.2,.7,.3,1) cm-flash-out;box-shadow:0 0 0 1px #00bfffb3,0 0 14px #00bfff8c;color:#fff!important;background:#00bfff6b!important}@keyframes cm-flash-out{0%{text-shadow:0 0 10px #11fa8f;background:#11fa8fd9;box-shadow:0 0 0 1px #11fa8fe6,0 0 22px #11fa8fbf}25%{background:#00bfffa6;box-shadow:0 0 0 1px #00bfffd9,0 0 18px #00bfffb3}to{text-shadow:none;background:#00bfff00;box-shadow:0 0 0 1px #00bfff00,0 0 #00bfff00}}:root[data-theme=light] .cm-flash{text-shadow:0 0 6px #0099cc80;box-shadow:0 0 0 1px #0099cc8c,0 0 12px #0099cc59;color:#07111b!important;background:#0099cc47!important}.pianoroll{background:var(--panel);border:1px solid var(--line);border-radius:12px;height:140px;overflow:hidden}.pianoroll canvas{width:100%;height:100%;display:block}.mode-toggle{background:var(--panel);border:1px solid var(--line);border-radius:8px;display:flex;overflow:hidden}.mode-toggle button{color:var(--muted);cursor:pointer;background:0 0;border:none;border-radius:0;padding:6px 14px;font-size:12px}.mode-toggle button:hover{color:var(--text)}.mode-toggle button.active{background:var(--accent);color:#fff}.studio-main{flex-direction:column;grid-column:1/-1;gap:12px;min-width:0;display:flex}.studio{background:var(--panel);border:1px solid var(--line);border-radius:12px;flex-direction:column;flex:1;gap:12px;min-height:0;padding:16px;display:flex;overflow-y:auto}.studio-controls{justify-content:flex-end;align-items:center;display:flex}.bpm-input{color:var(--muted);letter-spacing:.08em;text-transform:uppercase;align-items:center;gap:8px;font-size:11px;display:flex}.bpm-input input{background:var(--panel-2);border:1px solid var(--line);width:72px;color:var(--text);text-align:center;border-radius:6px;padding:5px 8px;font:13px ui-monospace,monospace}.studio-tracks{flex-direction:column;gap:10px;display:flex}.track-card{background:var(--panel-2);border:1px solid var(--line);border-radius:10px;transition:opacity .12s}.track-card.muted{opacity:.4}.track-card>header{border-bottom:1px solid var(--line);align-items:center;gap:8px;padding:8px 12px;display:flex}.track-toggle{color:var(--muted);cursor:pointer;background:0 0;border:none;padding:2px 4px;font-size:14px}.track-toggle:hover{color:var(--text);border-color:#0000}.track-icon{font-size:16px}.track-name{color:var(--text);background:0 0;border:1px solid #0000;border-radius:4px;flex:1;padding:3px 6px;font:13px inherit}.track-name:hover,.track-name:focus{border-color:var(--line)}.track-mute{border:1px solid var(--line);color:var(--muted);text-transform:uppercase;letter-spacing:.08em;background:0 0;border-radius:999px;padding:3px 9px;font-size:10px}.track-mute.on{color:var(--err);border-color:var(--err)}.track-vol{width:100px;accent-color:var(--accent)}.track-delete{color:var(--muted);cursor:pointer;background:0 0;border:none;padding:2px 6px;font-size:14px}.track-delete:hover{color:var(--err);border-color:#0000}.track-body{flex-direction:column;gap:10px;padding:12px;display:flex}.segments-strip{border-bottom:1px dashed var(--line);flex-wrap:wrap;align-items:center;gap:4px;padding-bottom:4px;display:flex}.segment-chip{background:var(--panel);border:1px solid var(--line);color:var(--text);cursor:pointer;border-radius:6px;flex-direction:column;align-items:center;gap:1px;min-width:44px;padding:5px 9px;font-size:11px;display:flex}.segment-chip:hover{border-color:var(--accent)}.segment-chip.active{background:var(--accent);color:#fff;border-color:var(--accent)}.segment-chip .seg-num{opacity:.7;font:10px ui-monospace,monospace}.segment-chip .seg-bars{font:600 11px ui-monospace,monospace}.segment-add{border:1px dashed var(--line);color:var(--muted);cursor:pointer;background:0 0;border-radius:6px;min-width:32px;min-height:32px;padding:5px 11px;font-size:14px}.segment-add:hover{border-color:var(--accent);color:var(--accent)}.segment-chip.silent{background:repeating-linear-gradient(45deg, var(--panel), var(--panel) 4px, #ffffff0a 4px, #ffffff0a 8px);color:var(--muted);font-style:italic}.segment-chip.silent.active{background:var(--accent);color:#fff;opacity:.85}.segment-add.silent{font-size:13px}.silent-tag{color:var(--muted);margin-left:4px;font-style:italic;font-weight:400}.segment-silent-note{text-align:center;color:var(--muted);border:1px dashed var(--line);border-radius:6px;padding:16px;font-style:italic}.segment-form{flex-direction:column;gap:10px;display:flex}.segment-form-header{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.segment-form-title{color:var(--muted);text-transform:uppercase;letter-spacing:.08em;margin-right:auto;font-size:11px}.bars-input{color:var(--muted);text-transform:uppercase;letter-spacing:.08em;align-items:center;gap:6px;font-size:10px;display:flex}.bars-input input{background:var(--panel);border:1px solid var(--line);width:52px;color:var(--text);text-align:center;border-radius:4px;padding:4px 6px;font:12px ui-monospace,monospace}button.ghost.small{padding:4px 8px;font-size:11px}button.ghost.small:disabled{opacity:.3;cursor:not-allowed}.form-grid{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px;display:grid}.form-grid label{color:var(--muted);text-transform:uppercase;letter-spacing:.08em;flex-direction:column;gap:4px;font-size:11px;display:flex}.form-grid label.full{grid-column:1/-1}.form-grid input,.form-grid select{background:var(--panel);border:1px solid var(--line);color:var(--text);border-radius:6px;padding:6px 8px;font:13px ui-monospace,monospace}.form-grid input[type=range]{accent-color:var(--accent);padding:0}.form-grid label.checkbox-row{flex-direction:row;align-items:center;gap:8px}.form-grid label.checkbox-row input[type=checkbox]{width:auto;accent-color:var(--accent)}.ui-select-trigger{background:var(--panel);border:1px solid var(--line);color:var(--text);cursor:pointer;text-align:left;text-transform:none;letter-spacing:0;border-radius:6px;justify-content:space-between;align-items:center;gap:8px;width:100%;min-height:30px;padding:6px 10px;font:13px ui-monospace,monospace;transition:border-color .12s,background .12s;display:inline-flex}.ui-select-trigger:hover{border-color:var(--accent)}.ui-select-trigger:focus-visible{border-color:var(--accent);outline:none;box-shadow:0 0 0 2px #00bfff40}.ui-select-trigger.open{border-color:var(--accent);background:var(--panel-2)}.ui-select-value{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.ui-select-value.placeholder{color:var(--muted)}.ui-select-caret{color:var(--muted);font-size:10px;transition:transform .15s}.ui-select-trigger.open .ui-select-caret{color:var(--accent);transform:rotate(180deg)}.ui-select-trigger.presets{background:var(--panel);width:auto;color:var(--muted);border-radius:8px;padding:6px 12px;font:12px inherit}.ui-select-trigger.presets:hover{color:var(--text)}.ui-select-popup{z-index:1000;background:var(--panel-2);border:1px solid var(--line);border-radius:8px;flex-direction:column;max-height:320px;animation:.1s ease-out ui-select-pop;display:flex;position:fixed;overflow:hidden;box-shadow:0 12px 30px #0000008c,0 2px 6px #00000059}@keyframes ui-select-pop{0%{opacity:0;transform:translateY(-3px)}to{opacity:1;transform:translateY(0)}}.ui-select-search{border-bottom:1px solid var(--line);background:var(--panel);padding:8px}.ui-select-search input{background:var(--panel-2);border:1px solid var(--line);width:100%;color:var(--text);border-radius:6px;padding:6px 8px;font:12px ui-monospace,monospace}.ui-select-search input:focus{border-color:var(--accent);outline:none}.ui-select-list{scrollbar-width:thin;padding:4px;overflow-y:auto}.ui-select-list::-webkit-scrollbar{width:8px}.ui-select-list::-webkit-scrollbar-thumb{background:var(--line);border-radius:4px}.ui-select-group{letter-spacing:.1em;text-transform:uppercase;color:var(--muted);padding:8px 10px 4px;font-size:10px;font-weight:600}.ui-select-option{cursor:pointer;color:var(--text);-webkit-user-select:none;user-select:none;border-radius:5px;align-items:center;gap:8px;padding:6px 10px;font:13px ui-monospace,monospace;display:flex}.ui-select-option.active{background:#00bfff26}.ui-select-option.selected{color:var(--accent)}.ui-select-option.selected.active{background:#00bfff40}.ui-select-option-label{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.ui-select-option-hint{color:var(--muted);font-size:11px}.ui-select-check{color:var(--accent);font-size:12px}.ui-select-empty{text-align:center;color:var(--muted);padding:16px;font-size:12px}.add-track-btn{border:1px dashed var(--line);color:var(--muted);cursor:pointer;background:0 0;border-radius:10px;width:100%;padding:14px;font-size:13px}.add-track-btn:hover{border-color:var(--accent);color:var(--accent)}.studio-add{flex-direction:column;gap:10px;display:flex}.add-track-menu{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px;display:grid}.add-track-card{background:var(--panel-2);border:1px solid var(--line);cursor:pointer;text-align:left;border-radius:10px;flex-direction:column;align-items:flex-start;gap:6px;padding:14px;display:flex}.add-track-card:hover{border-color:var(--accent)}.add-track-icon{font-size:22px}.add-track-label{font-size:13px;font-weight:600}.add-track-desc{color:var(--muted);font-size:11px;line-height:1.4}.notes-picker{background:var(--panel);border:1px solid var(--line);text-transform:none;letter-spacing:0;border-radius:8px;flex-direction:column;gap:8px;padding:8px;display:flex}.notes-tabs{gap:4px;display:flex}.notes-tab{border:1px solid var(--line);color:var(--muted);cursor:pointer;background:0 0;border-radius:6px;padding:4px 10px;font-size:11px}.notes-tab.active{background:var(--accent);color:#fff;border-color:var(--accent)}.notes-body{padding:4px}.notes-summary{color:var(--text);background:var(--panel-2);border-radius:4px;min-height:22px;padding:4px 6px;font:12px ui-monospace,monospace}.notes-summary em{color:var(--muted);font-style:normal}.notes-group h4{letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin:6px 0 4px;font-size:10px;font-weight:600}.chip-grid{flex-wrap:wrap;gap:4px;display:flex}.chip-grid .chip{background:var(--panel-2);border:1px solid var(--line);color:var(--text);cursor:pointer;border-radius:6px;padding:4px 10px;font:12px ui-monospace,monospace}.chip-grid .chip:hover{border-color:var(--accent)}.chip-grid .chip.sel{background:var(--accent);color:#fff;border-color:var(--accent)}.notes-piano svg{display:block}.notes-free textarea{background:var(--panel-2);border:1px solid var(--line);width:100%;color:var(--text);resize:vertical;border-radius:6px;padding:6px 8px;font:12px ui-monospace,monospace}.notes-error{color:var(--err);margin-top:4px;font:11px ui-monospace,monospace}.notes-help{color:var(--muted);margin:4px 0 0;font-size:11px}.notes-help code{background:var(--panel-2);border-radius:3px;padding:1px 4px;font-family:ui-monospace,monospace}.packs-backdrop{z-index:100;background:#0009;justify-content:center;align-items:center;padding:20px;animation:.12s ease-out fade-in;display:flex;position:fixed;inset:0}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.packs-modal{background:var(--panel);border:1px solid var(--line);border-radius:14px;flex-direction:column;width:100%;max-width:720px;max-height:85vh;display:flex;overflow:hidden}.packs-modal>header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding:16px 20px;display:flex}.packs-modal h2{margin:0;font-size:15px;font-weight:600}.packs-modal h3{letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin:0 0 8px;font-size:11px;font-weight:600}.packs-modal>.packs-group{border-bottom:1px solid var(--line);padding:14px 20px;overflow-y:auto}.packs-modal>.packs-group:last-child{border-bottom:none;flex:1;min-height:0}.packs-help{color:var(--muted);margin:0 0 10px;font-size:11px;line-height:1.5}.packs-list{flex-direction:column;gap:4px;margin:0;padding:0;list-style:none;display:flex}.packs-list li{background:var(--panel-2);border:1px solid var(--line);cursor:pointer;border-radius:8px;align-items:flex-start;gap:10px;padding:8px 10px;transition:border-color 80ms;display:flex}.packs-list li:hover{border-color:var(--accent)}.packs-list li.loaded{border-color:var(--ok)}.packs-list li.loading{opacity:.6;cursor:progress}.packs-list li.error{border-color:var(--err)}.packs-list .check{text-align:center;width:18px;color:var(--muted);flex-shrink:0;font-family:ui-monospace,monospace}.packs-list li.loaded .check{color:var(--ok)}.packs-list li.error .check{color:var(--err)}.packs-list .meta{flex-direction:column;gap:2px;font-size:12px;display:flex}.packs-list strong{color:var(--text);font-weight:600}.packs-list em{color:var(--muted);font-size:11px;font-style:normal}.packs-list .pack-shortcut{color:var(--muted);opacity:.6;font:10px ui-monospace,monospace}.packs-list .pack-error{color:var(--err);font-size:11px}footer.brand-footer{border-top:1px solid var(--line);font-family:var(--font-ui);color:var(--muted);background:linear-gradient(#0000,#00bfff06);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-top:8px;padding:14px 18px 6px;font-size:11px;display:flex}.brand-footer .footer-pitch{letter-spacing:.02em;align-items:center;gap:10px;display:flex}.brand-footer .footer-pitch .lab-tag{font-family:var(--font-brand);color:var(--accent);letter-spacing:.04em;filter:drop-shadow(0 0 8px #00bfff4d);font-size:12px}.brand-footer .footer-pitch em{color:var(--text);font-style:normal;font-weight:500}.brand-footer .footer-meta{letter-spacing:.14em;text-transform:uppercase;align-items:center;gap:8px;font-size:10px;display:flex}.brand-footer .footer-meta .sep{background:var(--line);border-radius:999px;width:4px;height:4px;display:inline-block}.brand-footer .footer-meta a{color:var(--muted);border-bottom:1px dashed #0000;text-decoration:none;transition:color .15s,border-color .15s}.brand-footer .footer-meta a:hover{color:var(--accent);border-bottom-color:var(--accent)}.brand-footer .footer-meta .license{color:var(--accent-mint)}@media (width<=720px){.brand-footer{flex-direction:column;align-items:flex-start}}.export-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:1100;background:#08090c99;justify-content:center;align-items:center;animation:.12s ease-out ui-select-pop;display:flex;position:fixed;inset:0}.export-dialog{background:var(--panel);border:1px solid var(--line);border-radius:14px;flex-direction:column;width:460px;max-width:calc(100vw - 32px);display:flex;box-shadow:0 20px 50px #0009}.export-header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding:14px 18px;font-size:13px;font-weight:600;display:flex}.export-body{flex-direction:column;gap:14px;padding:18px;display:flex}.export-label{color:var(--muted);text-transform:uppercase;letter-spacing:.08em;flex-direction:column;gap:6px;font-size:11px;display:flex}.export-duration-grid{flex-wrap:wrap;gap:6px;display:flex}.export-duration{background:var(--panel-2);border:1px solid var(--line);color:var(--text);cursor:pointer;border-radius:6px;padding:6px 12px;font:13px ui-monospace,monospace}.export-duration:hover{border-color:var(--accent)}.export-duration.active{border-color:var(--accent);color:var(--accent);background:#00bfff33}.export-duration:disabled{opacity:.5;cursor:not-allowed}.export-duration-input{background:var(--panel-2);border:1px solid var(--line);color:var(--text);border-radius:6px;width:80px;padding:6px 8px;font:13px ui-monospace,monospace}.export-info{color:var(--text);background:var(--panel-2);border:1px solid var(--line);border-radius:8px;flex-direction:column;gap:4px;padding:10px 12px;font-size:12px;display:flex}.export-info .muted{color:var(--muted);font-size:11px}.export-progress{flex-direction:column;gap:6px;display:flex}.export-progress-label{color:var(--text);font-size:12px}.export-bar{background:var(--panel-2);border:1px solid var(--line);border-radius:999px;height:6px;overflow:hidden}.export-bar-fill{background:linear-gradient(90deg, var(--accent), var(--ok));height:100%;transition:width .1s linear}.export-success{color:var(--ok);border:1px solid var(--ok);background:#38d39f14;border-radius:6px;padding:8px 10px;font-size:12px}.export-error{color:var(--err);border:1px solid var(--err);white-space:pre-wrap;word-break:break-word;background:#ff6b6b14;border-radius:6px;margin:0;padding:8px 10px;font-size:11px}.export-footer{border-top:1px solid var(--line);justify-content:flex-end;gap:8px;padding:12px 18px;display:flex}.export-footer button:not(.ghost){background:var(--accent);border:1px solid var(--accent);color:#fff;cursor:pointer;border-radius:8px;padding:8px 16px;font:13px ui-sans-serif,system-ui}.export-footer button:disabled{opacity:.5;cursor:not-allowed}.fx-panel{background:var(--panel);border:1px solid var(--line);border-radius:12px;flex-direction:column;display:flex;overflow:hidden}.fx-tabs{border-bottom:1px solid var(--line);background:#00bfff0a;align-items:center;gap:4px;padding:6px 8px;display:flex}.fx-tabs button{font-family:var(--font-ui);letter-spacing:.12em;text-transform:uppercase;color:var(--muted);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:6px;padding:6px 12px;font-size:11px;transition:background .15s,color .15s,border-color .15s}.fx-tabs button:hover{color:var(--text);background:#ffffff0a}.fx-tabs button.active{color:var(--accent);background:#00bfff14;border-color:#00bfff59}.fx-tabs .fx-reset{color:var(--muted);border:1px solid var(--line);cursor:pointer;background:0 0;border-radius:6px;margin-left:auto;padding:4px 10px;font-size:10px}.fx-tabs .fx-reset:hover{color:var(--accent-coral);border-color:var(--accent-coral)}.fx-tab-body{flex:1;min-height:120px;padding:14px 16px;display:flex}.fx-knobs{flex-wrap:wrap;align-items:flex-start;gap:18px;width:100%;display:flex}.fx-knob{cursor:ns-resize;-webkit-user-select:none;user-select:none;flex-direction:column;align-items:center;gap:6px;display:flex}.fx-knob-dial{border:1px solid var(--line);background:radial-gradient(circle at 50% 30%,#00bfff2e,#0000 60%),#080c12d9;border-radius:50%;justify-content:center;align-items:center;width:64px;height:64px;transition:border-color .15s,box-shadow .15s;display:flex;position:relative;overflow:hidden}.fx-knob:hover .fx-knob-dial{border-color:var(--accent)}.fx-knob.is-dragging .fx-knob-dial{border-color:var(--accent);box-shadow:0 0 16px #00bfff73}.fx-knob-fill{pointer-events:none;background:linear-gradient(#00bfff8c,#00bfff26);transition:height 60ms linear;position:absolute;bottom:0;left:0;right:0}.fx-knob-value{font-family:var(--font-mono);color:var(--text);text-shadow:0 0 6px #00bfff80;z-index:1;font-size:11px;font-weight:700;position:relative}.fx-knob-value em{color:var(--muted);margin-left:2px;font-size:9px;font-style:normal}.fx-knob-label{font-family:var(--font-mono);letter-spacing:.16em;color:var(--muted);font-size:10px}.fx-hint{min-width:180px;font-family:var(--font-ui);color:var(--muted);border-left:1px dashed var(--line);flex:1;align-self:center;padding-left:16px;font-size:11px;line-height:1.55}.fx-piano{flex:1;width:100%;min-height:180px;display:flex}.fx-scope{width:100%;height:96px;display:flex}.fx-spectrum{width:100%;height:180px;display:flex}.oscilloscope-canvas,.spectrum-canvas{background:radial-gradient(circle,#00bfff0d,#0000 70%),#080c1299;border-radius:8px;width:100%;height:100%;display:block}.dancing-overlay{z-index:2000;background:#04070b;animation:.3s ease-out dancing-fade;position:fixed;inset:0;overflow:hidden}@keyframes dancing-fade{0%{opacity:0}to{opacity:1}}.dancing-header{z-index:30;pointer-events:none;justify-content:space-between;align-items:center;padding:14px 18px;display:flex;position:absolute;top:0;left:0;right:0}.dancing-brand{pointer-events:auto;align-items:center;gap:12px;display:flex}.dancing-brand .lab-tag{font-family:var(--font-brand);color:var(--accent);letter-spacing:.04em;filter:drop-shadow(0 0 12px #00bfff8c);font-size:18px}.dancing-status{font-family:var(--font-mono);letter-spacing:.2em;color:var(--accent-mint);background:#11fa8f1f;border:1px solid #11fa8f80;border-radius:4px;padding:3px 8px;font-size:10px}.dancing-close{pointer-events:auto;color:#ffffffeb;width:36px;height:36px;font:600 16px/1 var(--font-ui);cursor:pointer;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#141c2699;border:1px solid #ffffff38;border-radius:50%;justify-content:center;align-items:center;padding:0;transition:background .18s,border-color .18s,color .18s,transform .25s;display:inline-flex}.dancing-close:hover{border-color:var(--accent-warm);color:#fff;background:#ff735733;transform:rotate(90deg)}.dancing-footer{z-index:25;pointer-events:none;justify-content:center;display:flex;position:absolute;bottom:6px;left:0;right:0}.dancing-footer a{pointer-events:auto;font-family:var(--font-mono);letter-spacing:.24em;text-transform:uppercase;color:#ffffff8c;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#00000059;border:1px solid #ffffff26;border-radius:999px;padding:4px 10px;font-size:10px;text-decoration:none;transition:color .18s,border-color .18s,background .18s}.dancing-footer a:hover{color:var(--accent);border-color:var(--accent);background:#00bfff1a}.dancing-wave{pointer-events:none;z-index:20;height:120px;position:absolute;bottom:0;left:0;right:0}.dancing-wave-canvas{width:100%;height:100%;display:block}.dancing-permission{z-index:40;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:radial-gradient(circle,#11192280,#04070beb);justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.dancing-permission-card{-webkit-backdrop-filter:blur(22px)saturate(180%);backdrop-filter:blur(22px)saturate(180%);text-align:center;width:420px;max-width:calc(100vw - 32px);color:var(--text);background:#141c2685;border:1px solid #ffffff2e;border-radius:18px;flex-direction:column;align-items:center;gap:14px;padding:28px 32px 26px;display:flex;box-shadow:0 25px 60px #0000008c,inset 0 1px #ffffff2e}.dancing-permission-icon{filter:drop-shadow(0 0 24px #00bfff99);font-size:44px;animation:2.2s ease-in-out infinite dancing-pulse}@keyframes dancing-pulse{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}.dancing-permission-card h2{font-family:var(--font-brand);letter-spacing:.06em;color:var(--accent);text-shadow:0 0 16px #00bfff66;margin:0;font-size:24px}.dancing-permission-card p{font-family:var(--font-ui);color:#ffffffc7;margin:0;font-size:13px;line-height:1.5}.dancing-permission-card p strong{color:var(--accent-mint);font-weight:600}.dancing-permission-error{width:100%;font-family:var(--font-mono);color:#ffb4a4;background:#ff73571f;border:1px solid #ff735780;border-radius:6px;padding:8px 10px;font-size:11px}.dancing-permission-btn{background:linear-gradient(135deg, var(--accent) 0%, var(--accent-mint) 100%);color:#04070b;font-family:var(--font-mono);letter-spacing:.2em;cursor:pointer;border:none;border-radius:999px;margin-top:6px;padding:12px 28px;font-size:12px;font-weight:700;transition:transform .15s,box-shadow .15s;box-shadow:0 8px 24px #00bfff66}.dancing-permission-btn:hover{transform:translateY(-2px);box-shadow:0 12px 30px #00bfff8c}.dancing-permission-card small{font-family:var(--font-mono);letter-spacing:.12em;color:var(--muted);font-size:10px}.dancing-loading{z-index:35;pointer-events:none;justify-content:center;align-items:center;gap:12px;display:flex;position:absolute;inset:0}.dancing-loading span{font-family:var(--font-mono);letter-spacing:.22em;color:var(--accent);text-shadow:0 0 12px #00bfff80;font-size:12px}.dancing-loading-dot{background:var(--accent);width:10px;height:10px;box-shadow:0 0 12px var(--accent);border-radius:50%;animation:1s ease-in-out infinite dancing-blink}@keyframes dancing-blink{0%,to{opacity:.3;transform:scale(.85)}50%{opacity:1;transform:scale(1.1)}}.header-right .header-btn.dancing-btn{color:var(--accent);border-color:#00bfff66}.header-right .header-btn.dancing-btn:hover{border-color:var(--accent);background:#00bfff1a}.instructions{background:var(--panel);border:1px solid var(--line);font-family:var(--font-ui);border-radius:12px;overflow:hidden}.instructions>summary{cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:10px;padding:12px 16px;list-style:none;transition:background .15s;display:flex}.instructions>summary:hover{background:#00bfff0d}.instructions>summary::-webkit-details-marker{display:none}.instructions>summary:before{content:"▸";color:var(--muted);width:10px;font-size:11px;transition:transform .15s}.instructions[open]>summary:before{transform:rotate(90deg)}.instructions-icon{font-size:16px}.instructions-title{font-family:var(--font-brand);letter-spacing:.04em;color:var(--text);font-size:14px}.instructions-meta{font-family:var(--font-mono);letter-spacing:.16em;text-transform:uppercase;color:var(--accent);background:#00bfff14;border:1px solid #00bfff4d;border-radius:4px;margin-left:auto;padding:2px 8px;font-size:10px}.instructions-body{border-top:1px solid var(--line);grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:18px 28px;padding:4px 22px 18px;display:grid}.instructions-section{margin-top:14px}.instructions-section h4{font-family:var(--font-mono);letter-spacing:.18em;text-transform:uppercase;color:var(--accent);margin:0 0 8px;font-size:11px}.instructions-section p,.instructions-section li{color:var(--text);opacity:.85;margin:0 0 6px;font-size:13px;line-height:1.55}.instructions-section ul,.instructions-section ol{margin:0 0 6px;padding-left:18px}.instructions-section ul.instructions-kbds{padding-left:0;list-style:none}.instructions-section ul.instructions-kbds li{margin-bottom:8px}.instructions-section strong{color:var(--text);font-weight:600}.instructions-section code{font-family:var(--font-mono);color:var(--accent);background:#00bfff14;border-radius:4px;padding:1px 6px;font-size:12px}.instructions-section kbd{font-family:var(--font-mono);color:var(--text);border:1px solid var(--line);text-align:center;background:#ffffff0f;border-bottom-width:2px;border-radius:4px;min-width:14px;padding:1px 6px;font-size:11px;display:inline-block}:root[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#f3f7fb;--bg-2:#fff;--panel:#fff;--panel-2:#eef4fa;--line:#d6e0ec;--text:#07111b;--muted:#4a5d75;--accent:#09c;--accent-warm:#e55b3d;--accent-mint:#0dbf74;--ok:#0dbf74;--warn:#e55b3d;--err:#d04b4b}:root[data-theme=light] body{background:radial-gradient(ellipse at 12% -10%, #0099cc0d, transparent 55%), radial-gradient(ellipse at 90% 110%, #0dbf740d, transparent 50%), var(--bg)}:root[data-theme=light] body:before{opacity:.55;background-image:linear-gradient(#0099cc0a 1px,#0000 1px),linear-gradient(90deg,#0099cc0a 1px,#0000 1px)}:root[data-theme=light] .brand-logo{filter:drop-shadow(0 0 10px #0099cc2e)}:root[data-theme=light] .brand-logo .b-name{text-shadow:0 0 14px #0099cc40}:root[data-theme=light] .fx-knob-value{text-shadow:0 0 4px #0099cc4d}:root[data-theme=light] .fx-knob-dial{background:radial-gradient(circle at 50% 30%,#0099cc1f,#0000 60%),#fff9}:root[data-theme=light] .fx-knob-fill{background:linear-gradient(#0099cc8c,#0099cc1f)}:root[data-theme=light] .fx-tabs{background:#0099cc0f}:root[data-theme=light] .oscilloscope-canvas,:root[data-theme=light] .spectrum-canvas{background:radial-gradient(circle,#0099cc0d,#0000 70%),#eef4facc}:root[data-theme=light] .instructions-section code{background:#0099cc14}:root[data-theme=light] .instructions-section kbd{background:#0000000a}:root[data-theme=light] .header-right .header-btn.dancing-btn:hover{background:#0099cc14}.theme-switcher{border:1px solid var(--line);color:var(--muted);cursor:pointer;background:0 0;border-radius:50%;width:32px;height:32px;padding:0;font-size:14px;transition:color .15s,border-color .15s,background .15s}.theme-switcher:hover{color:var(--accent);border-color:var(--accent);background:#00bfff0f}.lang-switcher{background:var(--panel);border:1px solid var(--line);border-radius:999px;align-items:center;gap:2px;padding:2px;display:inline-flex}.lang-switcher button{color:var(--muted);font-family:var(--font-mono);letter-spacing:.15em;cursor:pointer;background:0 0;border:none;border-radius:999px;padding:4px 8px;font-size:10px;transition:color .15s,background .15s}.lang-switcher button:hover{color:var(--text)}.lang-switcher button.active{background:var(--accent);color:var(--bg)}.confirm-overlay{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);z-index:1500;background:#04070b9e;justify-content:center;align-items:center;animation:.18s ease-out confirm-fade;display:flex;position:fixed;inset:0}@keyframes confirm-fade{0%{opacity:0}to{opacity:1}}.confirm-dialog{background:var(--panel);border:1px solid var(--line);text-align:center;border-radius:16px;flex-direction:column;align-items:center;gap:12px;width:400px;max-width:calc(100vw - 32px);padding:28px 26px 22px;animation:.22s cubic-bezier(.2,.9,.3,1.2) confirm-pop;display:flex;box-shadow:0 30px 70px #0000008c,inset 0 1px #ffffff0d}@keyframes confirm-pop{0%{opacity:0;transform:translateY(8px)scale(.96)}to{opacity:1;transform:translateY(0)scale(1)}}.confirm-icon{filter:drop-shadow(0 0 14px #ff735759);background:#ff73571f;border:1px solid #ff735766;border-radius:50%;justify-content:center;align-items:center;width:56px;height:56px;font-size:32px;animation:.4s cubic-bezier(.2,.9,.3,1.4) confirm-icon-pop;display:flex}@keyframes confirm-icon-pop{0%{opacity:0;transform:scale(.2)rotate(-20deg)}to{opacity:1;transform:scale(1)rotate(0)}}.confirm-title{font-family:var(--font-brand);letter-spacing:.02em;color:var(--text);margin:4px 0 0;font-size:19px}.confirm-message{font-family:var(--font-ui);color:var(--muted);max-width:320px;margin:0;font-size:13px;line-height:1.55}.confirm-actions{justify-content:center;gap:10px;width:100%;margin-top:12px;display:flex}.confirm-cancel,.confirm-ok{font-family:var(--font-mono);letter-spacing:.16em;text-transform:uppercase;cursor:pointer;border-radius:999px;padding:10px 22px;font-size:11px;font-weight:700;transition:transform .15s,box-shadow .15s,background .15s,border-color .15s}.confirm-cancel{color:var(--muted);border:1px solid var(--line);background:0 0}.confirm-cancel:hover{color:var(--text);border-color:var(--text)}.confirm-ok{color:#04070b;border:none}.confirm-ok.danger{background:linear-gradient(135deg, var(--accent-warm) 0%, #ff5050 100%);box-shadow:0 8px 20px #ff735766}.confirm-ok.danger:hover{transform:translateY(-1px);box-shadow:0 12px 26px #ff73578c}.confirm-ok.primary{background:linear-gradient(135deg, var(--accent) 0%, var(--accent-mint) 100%);box-shadow:0 8px 20px #00bfff66}.confirm-ok.primary:hover{transform:translateY(-1px);box-shadow:0 12px 26px #00bfff8c}.save-overlay{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);z-index:1400;background:#04070b99;justify-content:center;align-items:center;animation:.18s ease-out confirm-fade;display:flex;position:fixed;inset:0}.save-dialog{background:var(--panel);border:1px solid var(--line);text-align:center;border-radius:16px;flex-direction:column;align-items:center;gap:12px;width:420px;max-width:calc(100vw - 32px);padding:26px 26px 22px;animation:.22s cubic-bezier(.2,.9,.3,1.2) confirm-pop;display:flex;box-shadow:0 30px 70px #0000008c}.save-icon{filter:drop-shadow(0 0 12px #00bfff59);background:#00bfff1f;border:1px solid #00bfff66;border-radius:50%;justify-content:center;align-items:center;width:52px;height:52px;font-size:28px;display:flex}.save-title{font-family:var(--font-brand);letter-spacing:.02em;color:var(--text);margin:4px 0 0;font-size:18px}.save-subtitle{color:var(--muted);max-width:320px;margin:0;font-size:12px;line-height:1.5}.save-input{background:var(--bg-2);border:1px solid var(--line);width:100%;color:var(--text);font:14px var(--font-ui);border-radius:10px;outline:none;margin-top:6px;padding:12px 14px;transition:border-color .15s,box-shadow .15s}.save-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px #00bfff2e}.save-actions{justify-content:center;gap:10px;margin-top:8px;display:flex}.my-music-overlay{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);z-index:1300;background:#04070b99;justify-content:center;align-items:center;animation:.18s ease-out confirm-fade;display:flex;position:fixed;inset:0}.my-music-panel{background:var(--panel);border:1px solid var(--line);border-radius:16px;flex-direction:column;width:600px;max-width:calc(100vw - 32px);max-height:80vh;animation:.22s cubic-bezier(.2,.9,.3,1.2) confirm-pop;display:flex;overflow:hidden;box-shadow:0 30px 70px #0000008c}.my-music-header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding:16px 20px;display:flex}.my-music-title{align-items:center;gap:10px;display:flex}.my-music-icon{filter:drop-shadow(0 0 10px #00bfff73);font-size:18px}.my-music-title h3{font-family:var(--font-brand);letter-spacing:.04em;color:var(--text);margin:0;font-size:18px}.my-music-close{border:1px solid var(--line);color:var(--muted);cursor:pointer;background:0 0;border-radius:50%;justify-content:center;align-items:center;width:30px;height:30px;padding:0;font-size:13px;transition:color .15s,border-color .15s,transform .2s;display:inline-flex}.my-music-close:hover{color:var(--accent-warm);border-color:var(--accent-warm);transform:rotate(90deg)}.my-music-filters{border-bottom:1px solid var(--line);gap:6px;padding:12px 20px;display:flex}.my-music-filters button{border:1px solid var(--line);color:var(--muted);font-family:var(--font-mono);letter-spacing:.1em;cursor:pointer;background:0 0;border-radius:999px;padding:5px 12px;font-size:11px;transition:color .15s,border-color .15s,background .15s}.my-music-filters button:hover{color:var(--text)}.my-music-filters button.active{color:var(--accent);border-color:var(--accent);background:#00bfff14}.my-music-list{flex-direction:column;gap:4px;padding:8px 12px 16px;display:flex;overflow-y:auto}.my-music-empty{text-align:center;color:var(--muted);padding:40px 20px;font-size:13px}.my-music-row{border-radius:10px;justify-content:space-between;align-items:center;gap:12px;padding:10px 12px;transition:background .15s;display:flex}.my-music-row:hover{background:#00bfff0d}.my-music-row-main{flex:1;align-items:center;gap:12px;min-width:0;display:flex}.my-music-kind{background:#00bfff1a;border:1px solid #00bfff4d;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;font-size:14px;display:flex}.my-music-meta{flex-direction:column;flex:1;min-width:0;display:flex}.my-music-name{color:var(--text);font-family:var(--font-ui);text-align:left;cursor:pointer;text-overflow:ellipsis;white-space:nowrap;background:0 0;border:none;padding:0;font-size:14px;font-weight:600;transition:color .15s;overflow:hidden}.my-music-name:hover{color:var(--accent)}.my-music-date{font-family:var(--font-mono);letter-spacing:.06em;color:var(--muted);margin-top:2px;font-size:10px}.my-music-row-actions{opacity:0;gap:4px;transition:opacity .15s;display:flex}.my-music-row:hover .my-music-row-actions{opacity:1}.my-music-action{color:var(--muted);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:8px;justify-content:center;align-items:center;width:28px;height:28px;padding:0;font-size:13px;transition:color .15s,border-color .15s,background .15s;display:inline-flex}.my-music-action:hover{color:var(--text);border-color:var(--line)}.my-music-action.danger:hover{color:var(--accent-warm);border-color:var(--accent-warm);background:#ff735714}.stop-btn{transition:background .15s,border-color .15s,color .15s,transform .12s;position:relative;overflow:visible}.stop-btn:active{transform:scale(.96)}.stop-btn.is-stopping{background:var(--accent-warm);color:#04070b;border-color:var(--accent-warm);animation:.42s ease-out stop-flash}.stop-btn.is-stopping:after{content:"";border-radius:inherit;border:2px solid var(--accent-warm);pointer-events:none;animation:.42s ease-out stop-ring;position:absolute;inset:0}@keyframes stop-flash{0%{box-shadow:0 0 #ff7357b3}50%{box-shadow:0 0 0 10px #ff735700}to{box-shadow:0 0 #ff735700}}@keyframes stop-ring{0%{opacity:.85;transform:scale(1)}to{opacity:0;transform:scale(1.55)}}.play-btn{transition:background .15s,border-color .15s,color .15s,transform .12s;position:relative;overflow:visible}.play-btn:active{transform:scale(.96)}.play-btn.is-starting{background:var(--accent-mint);color:#04070b;border-color:var(--accent-mint);animation:.42s ease-out play-flash}.play-btn.is-starting:after{content:"";border-radius:inherit;border:2px solid var(--accent);pointer-events:none;animation:.42s ease-out play-ring;position:absolute;inset:0}@keyframes play-flash{0%{box-shadow:0 0 #11fa8fb3,0 0 #00bfff8c}50%{box-shadow:0 0 0 10px #11fa8f00,0 0 16px 4px #00bfff4d}to{box-shadow:0 0 #11fa8f00,0 0 #00bfff00}}@keyframes play-ring{0%{opacity:.85;border-color:var(--accent);transform:scale(1)}60%{border-color:var(--accent-mint)}to{opacity:0;border-color:var(--accent-mint);transform:scale(1.55)}}.settings-overlay{-webkit-backdrop-filter:blur(14px)saturate(120%);z-index:1600;background:radial-gradient(circle at 30% 10%,#00bfff14,#04070b8c);justify-content:center;align-items:center;animation:.22s ease-out confirm-fade;display:flex;position:fixed;inset:0}.settings-panel{border-radius:22px;flex-direction:column;width:720px;max-width:calc(100vw - 32px);max-height:85vh;animation:.28s cubic-bezier(.2,.9,.3,1.2) confirm-pop;display:flex;overflow:hidden}.glass{-webkit-backdrop-filter:blur(28px)saturate(180%);background:#141c266b;border:1px solid #ffffff29;box-shadow:0 30px 80px #0000008c,inset 0 1px #ffffff2e,inset 0 -1px #00000040}:root[data-theme=light] .glass{background:#ffffff8c;border:1px solid #0099cc38;box-shadow:0 30px 80px #07111b2e,inset 0 1px #fff9}:root[data-theme=light] .settings-overlay{background:radial-gradient(circle at 30% 10%,#0099cc1a,#f3f7fb99)}.settings-header{border-bottom:1px solid #ffffff14;justify-content:space-between;align-items:center;padding:16px 22px;display:flex}:root[data-theme=light] .settings-header{border-bottom-color:#07111b14}.settings-title{align-items:center;gap:12px;display:flex}.settings-icon{filter:drop-shadow(0 0 10px #00bfff80);font-size:18px}.settings-title h3{font-family:var(--font-brand);letter-spacing:.04em;color:var(--text);margin:0;font-size:20px}.settings-tabs{gap:4px;padding:12px 22px 0;display:flex}.settings-tabs button{color:var(--muted);font-family:var(--font-mono);letter-spacing:.16em;text-transform:uppercase;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:10px 10px 0 0;padding:8px 16px;font-size:11px;transition:color .15s,background .15s,border-color .15s}.settings-tabs button:hover{color:var(--text)}.settings-tabs button.active{color:var(--accent);background:#00bfff1a;border-color:#00bfff4d #00bfff4d #0000}.settings-body{padding:18px 22px 22px;overflow-y:auto}.settings-row{border-bottom:1px solid #ffffff0f;justify-content:space-between;align-items:center;gap:18px;padding:14px 0;display:flex}:root[data-theme=light] .settings-row{border-bottom-color:#07111b0f}.settings-row:last-child{border-bottom:none}.settings-row-label{flex:1;min-width:0}.settings-row-label h4{font-family:var(--font-ui);color:var(--text);margin:0 0 4px;font-size:14px;font-weight:600}.settings-row-label p{color:var(--muted);margin:0;font-size:12px;line-height:1.5}.settings-row-control{flex-shrink:0}.theme-toggle-group{background:#ffffff0a;border:1px solid #ffffff1a;border-radius:999px;gap:4px;padding:3px;display:inline-flex}:root[data-theme=light] .theme-toggle-group{background:#0000000a;border-color:#00000014}.theme-toggle-group button{color:var(--muted);font-family:var(--font-mono);letter-spacing:.12em;cursor:pointer;background:0 0;border:none;border-radius:999px;padding:6px 14px;font-size:11px;transition:color .15s,background .15s}.theme-toggle-group button:hover{color:var(--text)}.theme-toggle-group button.active{background:var(--accent);color:var(--bg)}.settings-action-btn{color:var(--accent);font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;cursor:pointer;background:#00bfff1a;border:1px solid #00bfff66;border-radius:999px;padding:7px 16px;font-size:11px;transition:background .15s,transform .12s}.settings-action-btn:hover{background:#00bfff2e;transform:translateY(-1px)}.settings-midi{text-align:center;flex-direction:column;align-items:center;gap:14px;padding:24px 12px;display:flex}.settings-midi-hero{flex-direction:column;align-items:center;gap:8px;display:flex}.settings-midi-icon{filter:drop-shadow(0 0 28px #11fa8f73);font-size:52px;animation:2.4s ease-in-out infinite dancing-pulse}.settings-midi-hero h4{font-family:var(--font-brand);letter-spacing:.04em;color:var(--accent);margin:0;font-size:22px}.settings-midi-hero p{max-width:440px;color:var(--muted);margin:0;font-size:13px;line-height:1.55}.settings-credits-intro{color:var(--muted);margin:0 0 16px;font-size:13px;line-height:1.55}.settings-credits-list{gap:10px;margin:0;padding:0;list-style:none;display:grid}.settings-credits-list li a{color:var(--text);background:#ffffff08;border:1px solid #ffffff14;border-radius:12px;flex-direction:column;gap:2px;padding:12px 14px;text-decoration:none;transition:background .15s,border-color .15s,transform .12s;display:flex}.settings-credits-list li a:hover{background:#00bfff0f;border-color:#00bfff80;transform:translateY(-1px)}:root[data-theme=light] .settings-credits-list li a{background:#ffffff80;border-color:#07111b14}.settings-credits-list li a strong{font-family:var(--font-mono);letter-spacing:.12em;color:var(--accent);font-size:12px}.settings-credits-list li a span{color:var(--muted);font-size:12px}.settings-credits-license{text-align:center;font-family:var(--font-mono);letter-spacing:.16em;color:var(--muted);margin:18px 0 0;font-size:11px}.settings-credits-license a{color:var(--accent);text-decoration:none}.settings-credits-license a:hover{text-decoration:underline}.midi-overlay{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);z-index:1550;background:#04070b99;justify-content:center;align-items:center;animation:.2s ease-out confirm-fade;display:flex;position:fixed;inset:0}.midi-dialog{background:var(--panel);border:1px solid var(--line);border-radius:18px;flex-direction:column;width:640px;max-width:calc(100vw - 32px);max-height:85vh;animation:.24s cubic-bezier(.2,.9,.3,1.2) confirm-pop;display:flex;overflow:hidden;box-shadow:0 30px 80px #0000008c}.midi-header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding:14px 20px;display:flex}.midi-title{align-items:center;gap:10px;display:flex}.midi-icon{filter:drop-shadow(0 0 12px #11fa8f8c);font-size:18px}.midi-title h3{font-family:var(--font-brand);letter-spacing:.04em;color:var(--text);margin:0;font-size:18px}.midi-body{flex-direction:column;gap:14px;padding:18px 20px 20px;display:flex;overflow-y:auto}.midi-dropzone{border:2px dashed var(--line);text-align:center;cursor:pointer;background:#00bfff08;border-radius:14px;padding:28px;transition:border-color .18s,background .18s,transform .15s}.midi-dropzone:hover{border-color:var(--accent);background:#00bfff12}.midi-dropzone.is-dragover{border-color:var(--accent-mint);background:#11fa8f1a;transform:scale(1.01)}.midi-dropzone.has-file{border-style:solid;border-color:var(--accent-mint);background:#11fa8f0f}.midi-dropzone-icon{filter:drop-shadow(0 0 14px #00bfff66);font-size:36px}.midi-dropzone-text{flex-direction:column;gap:4px;margin-top:10px;display:flex}.midi-dropzone-text strong{font-family:var(--font-ui);color:var(--text);font-size:14px}.midi-dropzone-text span{font-family:var(--font-mono);letter-spacing:.12em;color:var(--muted);font-size:11px}.midi-opts>summary{cursor:pointer;font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--muted);border:1px solid var(--line);-webkit-user-select:none;user-select:none;border-radius:8px;align-items:center;gap:8px;padding:8px 10px;font-size:11px;list-style:none;display:flex}.midi-opts>summary::-webkit-details-marker{display:none}.midi-opts>summary:before{content:"▸";font-size:9px;transition:transform .15s}.midi-opts[open]>summary:before{transform:rotate(90deg)}.midi-opts>summary:hover{color:var(--accent);border-color:var(--accent)}.midi-opts-grid{grid-template-columns:1fr 1fr;gap:10px 16px;padding:12px 4px 0;display:grid}.midi-opts-grid label{color:var(--muted);flex-direction:column;gap:4px;font-size:12px;display:flex}.midi-opts-grid label input[type=number]{background:var(--bg-2);border:1px solid var(--line);color:var(--text);font:13px var(--font-mono);border-radius:8px;padding:7px 10px}.midi-opts-grid .midi-checkbox{cursor:pointer;-webkit-user-select:none;user-select:none;color:var(--text);flex-direction:row;align-items:center;gap:8px}.midi-opts-grid .midi-checkbox input{accent-color:var(--accent)}.midi-error{color:#ffb4a4;font-family:var(--font-mono);background:#ff73571f;border:1px solid #ff735780;border-radius:8px;padding:10px 12px;font-size:12px}.midi-output{width:100%;min-height:200px;max-height:280px;font:12px/1.5 var(--font-mono);color:var(--text);background:var(--bg-2);border:1px solid var(--line);resize:vertical;border-radius:10px;padding:12px}.midi-actions{justify-content:flex-end;gap:10px;display:flex}.midi-credit{color:var(--muted);text-align:center;margin-top:4px;font-size:11px}.midi-credit a{color:var(--accent);text-decoration:none}.midi-credit a:hover{text-decoration:underline}.midi-player{background:var(--panel);border:1px solid var(--line);border-radius:12px;overflow:hidden}.midi-player-header{border-bottom:1px solid var(--line);background:linear-gradient(90deg,#11fa8f0a,#0000 60%);align-items:center;gap:10px;padding:12px 16px;display:flex}.midi-player-icon{filter:drop-shadow(0 0 10px #11fa8f80);font-size:16px}.midi-player-header h3{font-family:var(--font-brand);letter-spacing:.04em;color:var(--text);margin:0;font-size:14px}.midi-player-sub{font-family:var(--font-mono);letter-spacing:.14em;color:var(--muted);text-transform:uppercase;margin-left:auto;font-size:10px}.midi-player-body{flex-direction:column;gap:12px;padding:14px 16px;display:flex}.midi-player-load{color:var(--accent-mint);font-family:var(--font-mono);cursor:pointer;background:#11fa8f14;border:1px dashed #11fa8f66;border-radius:8px;align-self:flex-start;padding:8px 14px;font-size:12px;transition:background .15s,border-color .15s,color .15s}.midi-player-load:hover{border-color:var(--accent-mint);background:#11fa8f29;border-style:solid}.midi-player-controls{align-items:center;gap:12px;display:flex}.midi-player-btn{font-family:var(--font-mono);letter-spacing:.06em;cursor:pointer;border:1px solid var(--line);background:var(--panel-2);color:var(--text);border-radius:8px;padding:7px 16px;font-size:12px;font-weight:700;transition:transform .12s,box-shadow .15s,background .15s}.midi-player-btn:active{transform:scale(.96)}.midi-player-btn.play{background:var(--accent-mint);color:#04070b;border-color:var(--accent-mint);box-shadow:0 4px 14px #11fa8f59}.midi-player-btn.play:hover{box-shadow:0 6px 20px #11fa8f80}.midi-player-btn.stop{background:var(--accent-warm);color:#04070b;border-color:var(--accent-warm);box-shadow:0 4px 14px #ff735759}.midi-player-btn.convert{color:var(--accent);background:#00bfff1a;border-color:#00bfff73}.midi-player-btn.convert:hover{border-color:var(--accent);background:#00bfff2e;box-shadow:0 4px 14px #00bfff59}.midi-player-time{font-family:var(--font-mono);color:var(--text);letter-spacing:.04em;font-size:12px}.midi-player-time .sep{color:var(--muted);margin:0 6px}.midi-player-progress{background:#ffffff0f;border-radius:999px;height:6px;overflow:hidden}:root[data-theme=light] .midi-player-progress{background:#0000000f}.midi-player-progress-fill{background:linear-gradient(90deg, var(--accent), var(--accent-mint));height:100%;transition:width .1s linear;box-shadow:0 0 12px #00bfff8c}.midi-player-meta{font-family:var(--font-mono);letter-spacing:.1em;color:var(--muted);font-size:11px}.midi-player-meta .sep{margin:0 8px}
