:root{color-scheme:dark;--bg-deep: #0b0c10;--bg-sidebar: #101218;--bg-content: #13151c;--panel: #1a1d26;--panel-2: #21242f;--panel-3: #272b38;--border: #2a2e3a;--border-soft: #1f2330;--border-strong:#3a3f52;--text: #f3f5f7;--text-soft: #d7dbe5;--muted: #8b94a8;--muted-2: #6b7282;--accent: #d4af4f;--accent-soft: #f0d488;--accent-bright:#ffd970;--accent-dim: #8c7233;--accent-deep: #5d4a1d;--accent-glow: rgba(212,175,79,.28);--accent-glow-soft: rgba(212,175,79,.14);--accent-glow-dim: rgba(212,175,79,.06);--rim-light: rgba(255,217,112,.45);--ok: #3ecf8e;--warn: #f5a524;--danger: #e5484d;--spotify: #1db954;--r-sm: 8px;--r-md: 12px;--r-lg: 16px;--r-xl: 22px;--shadow-sm: 0 1px 2px rgba(0,0,0,.3);--shadow-md: 0 4px 14px rgba(0,0,0,.35), 0 1px 2px rgba(0,0,0,.2);--shadow-lg: 0 10px 30px rgba(0,0,0,.45), 0 2px 6px rgba(0,0,0,.25);--shadow-accent: 0 8px 24px rgba(212,175,79,.22), inset 0 1px 0 rgba(255,217,112,.35);--shadow-stage: 0 0 0 1px var(--accent-glow), 0 16px 40px rgba(0,0,0,.55), 0 0 64px -16px var(--accent-glow);--inset-polish: inset 0 1px 0 rgba(255,217,112,.22), inset 0 -1px 0 rgba(0,0,0,.35);--stage-btn-bg: linear-gradient(180deg, rgba(212,175,79,.12) 0%, rgba(15,12,8,.4) 100%);--stage-btn-bg-hover: linear-gradient(180deg, rgba(255,217,112,.3) 0%, rgba(212,175,79,.1) 100%);--stage-btn-bg-active: linear-gradient(180deg, #ffd970 0%, #f0d488 28%, #d4af4f 62%, #a07c2c 100%);--stage-btn-border: rgba(212,175,79,.32);--stage-btn-border-hover: rgba(255,217,112,.75);--stage-btn-border-active: rgba(255,217,112,.95);--stage-btn-text: rgba(244,232,200,.92);--stage-btn-text-hover: #ffd970;--stage-btn-text-active: #1a1208;--stage-btn-shadow: inset 0 1px 0 rgba(255,217,112,.18), 0 1px 2px rgba(0,0,0,.45), 0 0 0 1px rgba(212,175,79,.04);--stage-btn-shadow-hover: inset 0 1px 0 rgba(255,229,160,.3), 0 6px 18px -4px rgba(212,175,79,.32), 0 0 0 3px rgba(212,175,79,.1);--stage-btn-shadow-active: 0 0 22px rgba(255,217,112,.55), inset 0 1px 0 rgba(255,229,160,.55), inset 0 -6px 10px -8px rgba(0,0,0,.35), 0 4px 12px -2px rgba(212,175,79,.35);--ease: cubic-bezier(.22,1,.36,1);--ease-snap: cubic-bezier(.2,.9,.3,1);--dur-fast: .16s;--dur: .28s;--dur-slow: .48s;--font-ui: "Inter", "Segoe UI", system-ui, -apple-system, sans-serif;--font-mono: "JetBrains Mono", "SF Mono", "Consolas", ui-monospace, monospace}*{box-sizing:border-box}html,body,#root{margin:0;min-height:100%;font-family:var(--font-ui)}body{background:radial-gradient(1200px 600px at 8% -8%,rgba(212,175,79,.09),transparent 60%),radial-gradient(900px 500px at 112% 2%,rgba(30,185,84,.05),transparent 60%),radial-gradient(1400px 500px at 50% 115%,rgba(212,175,79,.07),transparent 65%),radial-gradient(1100px 800px at 50% 40%,rgba(255,217,112,.025),transparent 70%),var(--bg-deep);background-attachment:fixed;color:var(--text);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}:where(button,a,[role=button],input,select,textarea):focus-visible{outline:none;box-shadow:0 0 0 3px var(--accent-glow);border-radius:var(--r-sm)}::selection{background:var(--accent);color:#1a1608}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}button,input,select,textarea{font:inherit}a{color:inherit}*::-webkit-scrollbar{width:10px;height:10px}*::-webkit-scrollbar-track{background:transparent}*::-webkit-scrollbar-thumb{background:#2a2e3a;border-radius:10px;border:2px solid transparent;background-clip:padding-box}*::-webkit-scrollbar-thumb:hover{background:#3a3f52;background-clip:padding-box;border:2px solid transparent}.app-shell{min-height:100vh;min-height:100dvh;display:grid;grid-template-columns:300px 1fr;background:var(--bg-deep)}.sidebar{border-right:1px solid var(--border-soft);background:linear-gradient(180deg,var(--bg-sidebar) 0%,#0d0f14 100%);padding:14px 14px 10px;display:flex;flex-direction:column;gap:10px;position:sticky;top:0;height:100vh;height:100dvh;overflow:hidden;min-height:0}.sidebar-header{padding:4px 6px 6px}.sidebar-header h1{margin:0 0 4px}.brand-logo{display:flex;flex-direction:column;align-items:center;gap:10px;line-height:1;-webkit-user-select:none;user-select:none;margin:0}.brand-logo .brand-main{font-family:Cinzel,Playfair Display,serif;font-size:2rem;font-weight:900;letter-spacing:.08em;line-height:.95;background:linear-gradient(135deg,var(--accent-soft) 0%,var(--accent) 55%,#b8913d 100%);-webkit-background-clip:text;background-clip:text;color:transparent}.brand-logo .brand-sub{display:inline-flex;align-items:center;gap:10px}.brand-logo .brand-sub-dash{width:24px;height:1px;background:linear-gradient(90deg,transparent,rgba(212,175,79,.55),transparent);display:inline-block}.brand-logo .brand-sub-text{font-family:Cinzel,serif;font-size:1.1rem;font-weight:500;letter-spacing:.3em;color:#dcdcebc7}.sidebar-header p{margin:0;color:var(--muted);font-size:.78rem;letter-spacing:.02em}.sidebar-footer{margin-top:auto;padding:10px 6px 4px;border-top:1px solid var(--border-soft)}.sidebar-footer p{margin:0;color:var(--muted);font-size:.72rem;letter-spacing:.04em;text-align:left}.app-shell.is-sidebar-collapsed{--topbar-h: 140px;grid-template-columns:1fr}.app-shell.is-sidebar-collapsed .sidebar{display:none}.app-shell.is-sidebar-collapsed .topbar{left:0;padding:10px 24px 10px 14px}.search,.filters-panel select,.form-grid input,.panel-card input,.panel-card select,.panel-card textarea,.right-section input,.right-section select,.right-section textarea,.collapsible-body input,.collapsible-body select,.collapsible-body textarea{width:100%;padding:10px 12px;border-radius:var(--r-md);border:1px solid var(--border);background:var(--panel-2);color:var(--text);transition:border-color .15s,background .15s,box-shadow .15s}.search:focus,.filters-panel select:focus,.form-grid input:focus,.panel-card input:focus,.panel-card select:focus,.panel-card textarea:focus,.right-section input:focus,.right-section select:focus,.right-section textarea:focus,.collapsible-body input:focus,.collapsible-body select:focus,.collapsible-body textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px #d4af4f1f;background:var(--panel)}.search{padding-left:36px;padding-right:34px;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%238b94a8' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><circle cx='11' cy='11' r='7'/><line x1='21' y1='21' x2='16.65' y2='16.65'/></svg>");background-repeat:no-repeat;background-position:10px center;background-size:16px}.search-wrapper{position:relative;flex-shrink:0}.search-clear,.search-kbd{position:absolute;right:8px;top:50%;transform:translateY(-50%);pointer-events:auto}.search-clear{width:22px;height:22px;display:inline-flex;align-items:center;justify-content:center;border-radius:50%;border:1px solid var(--border);background:var(--panel);color:var(--muted);font-size:1rem;line-height:1;cursor:pointer;transition:border-color .12s,color .12s,background .12s}.search-clear:hover{border-color:var(--accent);color:var(--accent-soft);background:#d4af4f1a}.search-kbd{pointer-events:none;display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 6px;border:1px solid var(--border-soft);border-radius:5px;background:var(--panel-2);color:var(--muted-2);font-family:var(--font-mono, ui-monospace, monospace);font-size:.72rem;font-weight:700;line-height:1}.filter-group--chips{flex-direction:column;align-items:stretch;gap:6px}.filter-group--chips .filter-label{min-width:0;margin-bottom:2px}.filter-chips{display:flex;flex-wrap:wrap;gap:5px}.filter-chip{padding:5px 11px;border-radius:999px;border:1px solid var(--border);background:linear-gradient(180deg,var(--panel-2),var(--panel));color:var(--text-soft);font-family:inherit;font-size:.75rem;font-weight:600;line-height:1.1;cursor:pointer;box-shadow:var(--inset-polish);transition:transform var(--dur-fast) var(--ease),border-color var(--dur-fast) var(--ease-snap),background var(--dur-fast) var(--ease-snap),color var(--dur-fast) var(--ease-snap),box-shadow var(--dur) var(--ease)}.filter-chip:hover:not(.is-active){border-color:var(--accent-dim);color:var(--accent-soft);transform:translateY(-1px);box-shadow:var(--inset-polish),0 0 0 3px var(--accent-glow-soft)}.filter-chip.is-active{background:linear-gradient(180deg,var(--accent-bright) 0%,var(--accent-soft) 38%,var(--accent) 75%,#b8913d 100%);color:#1a1608;border-color:#ffd9708c;box-shadow:inset 0 1px #ffe5a08c,inset 0 -6px 10px -8px #0006,0 6px 16px -6px #d4af4f80,0 0 0 1px var(--accent-glow);text-shadow:0 1px 0 rgba(255,229,160,.35)}.filter-chip--conf-high.is-active{background:linear-gradient(180deg,#88e6b4,#5cc88a 45%,#3aa86b);border-color:#8cebb48c;color:#0c1f14;box-shadow:inset 0 1px #b4ffd280,inset 0 -6px 10px -8px #0006,0 6px 16px -6px #3aa86b73}.filter-chip--conf-medium.is-active{background:linear-gradient(180deg,#f6d889,#f0c76a 45%,#d4a12a);border-color:#ffdc8c8c;color:#1a1608;box-shadow:inset 0 1px #ffebaa80,inset 0 -6px 10px -8px #0006,0 6px 16px -6px #d4a12a80}.filter-chip--conf-low.is-active{background:linear-gradient(180deg,#f3a4a4,#e58a8a 45%,#c65050);border-color:#f5aaaa8c;color:#2a0b0b;box-shadow:inset 0 1px #ffc8c880,inset 0 -6px 10px -8px #0006,0 6px 16px -6px #c6505073}.playlist-section-head{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:0 4px}.playlist-section-toggle{background:transparent;border:none;color:var(--muted-2);font-family:inherit;font-size:.7rem;font-weight:700;letter-spacing:.04em;cursor:pointer;padding:2px 4px;border-radius:4px;transition:color .12s,background .12s}.playlist-section-toggle:hover{color:var(--accent-soft);background:#d4af4f14}.playlist-chips{display:flex;flex-wrap:wrap;gap:5px;padding:0 2px}.playlist-chip{display:inline-flex;align-items:center;gap:5px;max-width:100%;padding:5px 11px;border-radius:999px;border:1px solid var(--border);background:linear-gradient(180deg,var(--panel-2),var(--panel));color:var(--text-soft);font-family:inherit;font-size:.74rem;font-weight:600;line-height:1.15;cursor:pointer;box-shadow:var(--inset-polish);transition:transform var(--dur-fast) var(--ease),border-color var(--dur-fast) var(--ease-snap),background var(--dur-fast) var(--ease-snap),color var(--dur-fast) var(--ease-snap),box-shadow var(--dur) var(--ease)}.playlist-chip:hover:not(.is-active){border-color:var(--accent-dim);color:var(--accent-soft);transform:translateY(-1px);box-shadow:var(--inset-polish),0 0 0 3px var(--accent-glow-soft)}.playlist-chip.is-active{background:linear-gradient(180deg,var(--accent-bright) 0%,var(--accent-soft) 38%,var(--accent) 75%,#b8913d 100%);color:#1a1608;border-color:#ffd9708c;box-shadow:inset 0 1px #ffe5a08c,inset 0 -6px 10px -8px #0006,0 6px 16px -6px #d4af4f80,0 0 0 1px var(--accent-glow);text-shadow:0 1px 0 rgba(255,229,160,.35)}.playlist-chip-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:120px}.playlist-chip-count{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:16px;padding:0 5px;border-radius:9px;background:#ffffff0f;color:inherit;font-size:.65rem;font-weight:800;opacity:.85}.playlist-chip.is-active .playlist-chip-count{background:#1a16082e}.filters-panel{display:flex;flex-direction:column;gap:7px;padding:11px 13px 13px;border:1.5px solid var(--accent-dim);border-radius:var(--r-md);background:linear-gradient(150deg,rgba(212,175,79,.1) 0%,rgba(212,175,79,.03) 55%,transparent 100%);box-shadow:inset 0 1px #d4af4f1f,0 0 0 3px #d4af4f0d,var(--shadow-sm)}.filters-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:3px}.filters-title{font-size:.65rem;font-weight:800;text-transform:uppercase;letter-spacing:.12em;color:var(--accent-dim)}.filters-reset-btn{background:transparent;border:1px solid var(--border-soft);color:var(--muted-2);border-radius:var(--r-sm);padding:2px 9px;font-size:.72rem;font-weight:700;cursor:pointer;transition:border-color .12s,color .12s,background .12s}.filters-reset-btn:hover:not(:disabled){border-color:var(--accent-dim);color:var(--accent-soft);background:#d4af4f14}.filters-reset-btn:disabled{opacity:.3;cursor:not-allowed}.filter-group{display:flex;align-items:center;gap:8px}.filter-label{font-size:.68rem;font-weight:800;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);min-width:58px;white-space:nowrap;-webkit-user-select:none;user-select:none}.filter-group select{flex:1;padding:6px 8px;font-size:.82rem}.filters-compact{position:relative;flex-shrink:0}.filters-toggle-btn{display:flex;align-items:center;gap:8px;width:100%;padding:9px 12px;background:linear-gradient(180deg,var(--panel-2),var(--panel));border:1px solid var(--border);border-radius:var(--r-sm);color:var(--text-soft);font-family:inherit;font-size:.82rem;font-weight:600;cursor:pointer;box-shadow:var(--inset-polish),var(--shadow-sm);transition:transform var(--dur-fast) var(--ease),border-color var(--dur-fast) var(--ease-snap),background var(--dur-fast) var(--ease-snap),color var(--dur-fast) var(--ease-snap),box-shadow var(--dur) var(--ease)}.filters-toggle-btn:hover{border-color:var(--accent-dim);color:var(--accent-soft);background:linear-gradient(180deg,var(--panel-3),var(--panel-2));transform:translateY(-1px);box-shadow:var(--inset-polish),0 8px 22px -8px #0000008c,0 0 0 3px var(--accent-glow-soft)}.filters-toggle-btn.is-open{border-color:var(--accent);color:var(--accent-soft);background:linear-gradient(180deg,#d4af4f29,#d4af4f0f);box-shadow:var(--inset-polish),0 0 0 3px var(--accent-glow-soft),inset 0 1px #ffd9702e;box-shadow:inset 0 0 0 1px #d4af4f40}.filters-toggle-btn.has-active:not(.is-open){border-color:var(--accent-dim)}.filters-toggle-label{flex:1;text-align:left;letter-spacing:.02em}.filters-toggle-badge{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 6px;background:var(--accent);color:#1a1608;border-radius:10px;font-size:.7rem;font-weight:800;line-height:1}.filters-toggle-caret{color:var(--muted-2);font-size:.7rem;transition:color .12s}.filters-toggle-btn.is-open .filters-toggle-caret{color:var(--accent-soft)}.filters-popover-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000059;z-index:60}.filters-popover{position:absolute;top:calc(100% + 6px);left:0;right:0;z-index:70;display:flex;flex-direction:column;gap:9px;padding:12px 13px 13px;border:1.5px solid var(--accent-dim);border-radius:var(--r-md);background:linear-gradient(165deg,#1e1f28,#191a22);box-shadow:0 0 0 3px #d4af4f0f,var(--shadow-lg);max-height:min(460px,calc(100dvh - 150px));overflow-y:auto}.song-list{display:flex;flex-direction:column;gap:4px;flex:1 1 0;min-height:0;overflow-y:auto;overflow-x:hidden;padding:4px 2px 20px;margin:0 -2px}.playlist-section,.sidebar-header,.sidebar-footer,.instrument-switch{flex-shrink:0}.song-item{position:relative;display:flex;flex-direction:column;gap:3px;width:100%;text-align:left;padding:11px 12px 11px 14px;border-radius:var(--r-md);border:1px solid transparent;background:transparent;color:var(--text);cursor:pointer;transition:background .15s,border-color .15s,transform .05s;content-visibility:auto;contain-intrinsic-size:0 62px}.song-item:before{content:"";position:absolute;left:0;top:50%;width:3px;height:0;background:var(--accent);border-radius:0 3px 3px 0;transform:translateY(-50%);transition:height .2s}.song-item:hover{background:var(--panel);border-color:var(--border-soft)}.song-item.active{background:linear-gradient(90deg,rgba(212,175,79,.08),transparent 60%);border-color:var(--border)}.song-item.active:before{height:70%}.song-item strong{font-size:.92rem;font-weight:600;letter-spacing:-.005em}.song-item span{color:var(--text-soft);font-size:.8rem}.song-item small{color:var(--muted-2);font-size:.72rem;font-family:var(--font-mono);letter-spacing:.02em}.song-list-virtual{width:100%;height:100%}.song-list-virtual .song-item{content-visibility:visible;contain-intrinsic-size:auto;padding:6px 10px 6px 12px;gap:2px;overflow:hidden}.song-item--dense{display:grid!important;grid-template-columns:1fr auto;align-items:center;column-gap:10px}.song-item--dense .song-item-main{display:flex;flex-direction:column;gap:1px;min-width:0;overflow:hidden}.song-item--dense .song-item-main strong{display:block;font-size:.88rem;font-weight:600;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.song-item--dense .song-item-artist{font-size:.72rem;color:var(--text-soft);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.song-item--dense .song-item-meta{display:flex;align-items:center;gap:6px;flex-shrink:0}.song-item--dense .song-item-meta small{font-family:var(--font-mono);font-size:.68rem;color:var(--muted-2)}.song-key-pill{display:inline-block;padding:1px 6px;font-size:.68rem;font-weight:700;font-family:var(--font-mono);color:var(--accent);background:#d4af4f1a;border:1px solid rgba(212,175,79,.3);border-radius:3px;line-height:1.3}.song-spotify-dot{color:#1ed760;font-size:.85rem}.song-item--cozy{display:flex!important;flex-direction:column;gap:3px;padding:10px 12px 10px 14px!important}.song-item--compact{display:grid!important;grid-template-columns:1fr auto;align-items:center;column-gap:10px;padding:6px 10px 6px 12px!important}.song-item--compact .song-item-main{display:flex;flex-direction:column;gap:1px;min-width:0;overflow:hidden}.song-item--compact .song-item-title{font-size:.88rem;font-weight:600;letter-spacing:-.005em;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.song-item--compact .song-item-artist{font-size:.72rem;font-weight:400;color:var(--text-soft);line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.song-item--compact .song-item-meta{display:flex;align-items:center;gap:6px;flex-shrink:0;line-height:1.3}.song-item--compact .song-item-meta small{font-family:var(--font-mono);font-size:.68rem;color:var(--muted-2)}.song-item--compact .song-item-meta .song-midi-pill{margin-left:0;font-size:.54rem;padding:1px 5px}.song-item--compact .song-key-pill{padding:1px 6px;line-height:1.35}.song-item.is-bulk{background:#4296fa1f;border-color:#4296fa59}.song-item.is-bulk.active{background:linear-gradient(90deg,#d4af4f1f,#4296fa1f 60%)}.list-controls{display:flex;align-items:center;gap:6px;padding:6px 2px 2px}.list-sort{flex:1 1 0;background:#ffffff08;color:var(--text);border:1px solid var(--border-soft);border-radius:6px;padding:5px 8px;font-size:.78rem}.list-sort-wrap{position:relative;flex:1 1 0;min-width:0}.list-sort-btn{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;padding:6px 10px;background:#ffffff08;border:1px solid var(--border-soft);border-radius:6px;color:var(--text);font-size:.8rem;font-family:inherit;text-align:left;cursor:pointer;transition:background .12s,border-color .12s,color .12s}.list-sort-btn:hover{background:#d4af4f0f;border-color:var(--accent-dim)}.list-sort-btn.is-open{background:#d4af4f1a;border-color:var(--accent);color:var(--accent-soft, #f0d088)}.list-sort-btn-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.list-sort-btn-label strong{color:var(--accent);font-weight:600}.list-sort-btn-caret{color:var(--muted-2);font-size:.7rem;transition:transform .12s,color .12s}.list-sort-btn.is-open .list-sort-btn-caret{color:var(--accent);transform:rotate(180deg)}.list-sort-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000040;z-index:60}.list-sort-menu{position:absolute;top:calc(100% + 4px);left:0;right:0;z-index:70;margin:0;padding:4px;list-style:none;background:linear-gradient(165deg,#1e1f28,#191a22);border:1.5px solid var(--accent-dim);border-radius:var(--r-md);box-shadow:0 0 0 3px #d4af4f0f,var(--shadow-lg);animation:list-sort-menu-in .15s ease-out}@keyframes list-sort-menu-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.list-sort-item{display:flex;align-items:center;justify-content:space-between;width:100%;padding:8px 10px;background:transparent;border:none;border-radius:5px;color:var(--text);font-size:.82rem;font-family:inherit;text-align:left;cursor:pointer;transition:background .1s,color .1s}.list-sort-item:hover{background:#d4af4f1a;color:var(--accent-soft, #f0d088)}.list-sort-item.is-active{background:#d4af4f26;color:var(--accent);font-weight:600}.list-sort-item-check{color:var(--accent);font-weight:700}.list-density-btn{background:#ffffff08;border:1px solid var(--border-soft);color:var(--text-soft);border-radius:6px;padding:4px 10px;font-size:1rem;cursor:pointer;line-height:1}.list-density-btn:hover{color:var(--accent);border-color:var(--accent)}.bulk-action-bar{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:10px;margin:8px -2px 0;background:#4296fa14;border:1px solid rgba(66,150,250,.3);border-radius:8px;font-size:.8rem}.bulk-count{font-weight:700;color:#6fa8ff;margin-right:4px}.undo-toast{position:fixed;bottom:24px;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:14px;padding:10px 14px 12px;background:#1a1b23;border:1px solid var(--border);border-radius:10px;box-shadow:0 10px 30px #00000080;z-index:9500;min-width:280px;overflow:hidden}.undo-toast-label{font-size:.85rem;color:var(--text)}.undo-toast-btn{background:transparent;color:var(--accent);border:1px solid var(--accent);border-radius:5px;padding:4px 10px;font-size:.8rem;cursor:pointer;font-weight:600}.undo-toast-btn:hover{background:#d4af4f26}.undo-toast-close{background:transparent;border:none;color:var(--muted);font-size:1.1rem;cursor:pointer;line-height:1;padding:0 4px}.undo-toast-progress{position:absolute;bottom:0;left:0;height:2px;background:var(--accent);transition:width .08s linear}.song-list-virtual .playlist-group-header{display:flex;align-items:center;justify-content:space-between;padding:8px 6px 4px;font-size:.68rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--muted, #9aa0aa)}.song-list-virtual .playlist-group-count{font-family:var(--font-mono);font-size:.7rem;color:var(--muted-2)}mark.hl{background:#d4af4f59;color:var(--accent);border-radius:2px;padding:0 1px}.cp-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0a0b0f99;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:flex-start;justify-content:center;padding-top:12vh;z-index:9000}.cp-panel{width:min(680px,92vw);max-height:70vh;background:#1a1b23;border:1px solid var(--border);border-radius:12px;box-shadow:0 20px 60px #0009;display:flex;flex-direction:column;overflow:hidden}.cp-header{display:flex;align-items:center;gap:10px;padding:14px 16px;border-bottom:1px solid var(--border-soft)}.cp-icon{font-size:1.1rem;color:var(--muted)}.cp-input{flex:1 1 0;background:transparent;border:none;outline:none;color:var(--text);font-size:1rem}.cp-kbd,.cp-footer kbd{font-family:var(--font-mono);font-size:.68rem;padding:2px 6px;border:1px solid var(--border);border-radius:4px;color:var(--muted);background:#ffffff05}.cp-close{cursor:pointer;transition:color .15s,border-color .15s,background .15s}.cp-close:hover{color:var(--accent);border-color:var(--accent-dim, var(--accent));background:#d4af4f1a}.cp-list{flex:1 1 0;overflow-y:auto;padding:6px 0}.cp-empty{padding:24px;text-align:center;color:var(--muted)}.cp-item{display:grid;grid-template-columns:70px 1fr auto;align-items:center;gap:12px;width:100%;padding:9px 16px;background:transparent;border:none;color:var(--text);text-align:left;cursor:pointer;font-size:.9rem}.cp-item.is-active{background:#d4af4f1f}.cp-group{font-size:.65rem;letter-spacing:.14em;text-transform:uppercase;color:var(--muted-2);font-weight:700}.cp-item--song .cp-group{color:var(--accent)}.cp-label{display:flex;flex-direction:column;gap:2px;overflow:hidden}.cp-label strong{font-weight:600}.cp-sub{color:var(--text-soft);font-size:.78rem}.cp-hint{color:var(--muted-2);font-size:.75rem;font-family:var(--font-mono)}.cp-footer{display:flex;gap:16px;padding:8px 16px;border-top:1px solid var(--border-soft);font-size:.72rem;color:var(--muted)}.cp-footer kbd{margin-right:4px}.song-midi-pill{display:inline-block;margin-left:6px;padding:0 5px;font-size:.6rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--accent);border:1px solid var(--accent);border-radius:3px;vertical-align:middle}.playlist-section{display:flex;flex-direction:column;gap:10px;margin:16px 0 14px}.playlist-section-title{margin:0;font-size:.72rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--muted, #9aa0aa);padding:0 4px}.playlist-tabs{display:flex;flex-direction:column;gap:6px}.playlist-tab{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:11px 13px;background:linear-gradient(180deg,var(--panel-2),var(--panel));border:1px solid var(--border);border-radius:10px;color:var(--text-soft, #c8c8d2);font-size:.92rem;font-weight:600;font-family:inherit;cursor:pointer;text-align:left;box-shadow:var(--inset-polish);transition:transform var(--dur-fast) var(--ease),background var(--dur-fast) var(--ease-snap),color var(--dur-fast) var(--ease-snap),border-color var(--dur-fast) var(--ease-snap),box-shadow var(--dur) var(--ease)}.playlist-tab:hover:not(.is-active){border-color:var(--accent-dim);color:var(--text);background:linear-gradient(180deg,var(--panel-3),var(--panel-2));transform:translateY(-1px);box-shadow:var(--inset-polish),0 8px 22px -8px #0000008c,0 0 0 3px var(--accent-glow-soft)}.playlist-tab.is-active{background:linear-gradient(180deg,var(--accent-bright) 0%,var(--accent-soft) 38%,var(--accent) 75%,#b8913d 100%);color:#1a1608;border-color:#ffd9708c;box-shadow:inset 0 1px #ffe5a08c,inset 0 -8px 14px -10px #00000073,0 8px 22px -6px #d4af4f80,0 0 0 1px var(--accent-glow);text-shadow:0 1px 0 rgba(255,229,160,.35)}.playlist-tab-label{flex:1;letter-spacing:.01em}.playlist-tab-count{font-size:.75rem;font-weight:700;font-family:var(--font-mono);padding:2px 8px;border-radius:20px;background:#0003;color:inherit}.playlist-tab:not(.is-active) .playlist-tab-count{background:var(--bg-sidebar);border:1px solid var(--border-soft);color:var(--muted-2)}.playlist-empty-hint{padding:12px 4px;font-size:.85rem}.playlist-group{display:flex;flex-direction:column}.playlist-group-header{display:flex;align-items:center;justify-content:space-between;padding:10px 8px 6px;color:var(--accent);font-size:.78rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.playlist-group-count{font-family:var(--font-mono);font-size:.72rem;color:var(--muted-2);background:var(--bg-sidebar);border:1px solid var(--border-soft);border-radius:20px;padding:2px 8px}.playlist-dropdown{position:relative}.playlist-dropdown-trigger{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;padding:10px 12px;background:var(--panel);border:1px solid var(--border);border-radius:10px;color:var(--text-soft);font-size:.92rem;font-weight:600;font-family:inherit;cursor:pointer;text-align:left;transition:background .15s,color .15s,border-color .15s}.playlist-dropdown-trigger:hover{border-color:var(--accent-dim);color:var(--text)}.playlist-dropdown-trigger.is-open{border-color:var(--accent);background:var(--panel-2);border-radius:10px 10px 0 0}.playlist-dropdown-chevron{font-size:.7rem;color:var(--muted-2);flex-shrink:0;transition:transform .2s}.playlist-dropdown-trigger.is-open .playlist-dropdown-chevron{transform:rotate(180deg)}.playlist-dropdown-menu{position:absolute;top:100%;left:0;right:0;background:var(--panel-2);border:1px solid var(--accent);border-top:none;border-radius:0 0 10px 10px;box-shadow:0 8px 24px #00000080;z-index:50;max-height:min(60vh,420px);overflow-y:auto;overflow-x:hidden;display:flex;flex-direction:column}.playlist-dropdown-option{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 12px;border:none;background:transparent;color:var(--text-soft);font-size:.9rem;font-weight:500;font-family:inherit;cursor:pointer;text-align:left;transition:background .1s,color .1s}.playlist-dropdown-option:hover{background:var(--panel-3);color:var(--text)}.playlist-dropdown-option.is-active{background:linear-gradient(135deg,var(--accent-soft),var(--accent));color:#1a1608;font-weight:700}.playlist-dropdown-option.is-active .playlist-tab-count{background:#0003;border-color:transparent;color:#1a1608}.folder{display:flex;flex-direction:column}.folder-header{display:flex;align-items:center;gap:10px;width:100%;padding:14px 10px 14px 8px;background:none;border:none;border-radius:var(--r-sm);cursor:pointer;text-align:left;-webkit-user-select:none;user-select:none;color:var(--accent);font-size:1.08rem;font-weight:800;letter-spacing:.03em;transition:color .15s,background .15s}.folder-header:hover{color:var(--text);background:var(--panel)}.folder-arrow{font-size:.85rem;color:var(--accent);flex-shrink:0;width:12px;text-align:center}.folder-name{flex:1}.folder-count{font-size:.78rem;font-weight:600;color:var(--muted-2);font-family:var(--font-mono);background:var(--bg-sidebar);border:1px solid var(--border-soft);border-radius:20px;padding:2px 9px}.content{padding:28px 32px 40px;display:flex;flex-direction:column;gap:18px;height:calc(100vh - var(--topbar-h, 56px));height:calc(100dvh - var(--topbar-h, 56px));margin-top:var(--topbar-h, 56px);overflow-y:auto;overscroll-behavior-y:contain;background:var(--bg-content)}.sticky-top{position:sticky;top:-28px;z-index:20;display:flex;flex-direction:column;gap:14px;padding:28px 0 12px;margin:-28px 0 0;background:var(--bg-content);box-shadow:0 8px 16px -12px #00000080}@media (max-width: 1024px){.sticky-top.is-impro-open{position:relative;top:0;z-index:auto}}.eyebrow{color:var(--accent);text-transform:uppercase;font-size:.72rem;letter-spacing:.12em;font-weight:600}.muted{color:var(--muted)}.empty{padding:40px 24px;text-align:center;color:var(--muted);background:var(--panel);border:1px dashed var(--border);border-radius:var(--r-lg)}.error-box,.success-box{padding:12px 16px;border:1px solid var(--border);background:var(--panel);border-radius:var(--r-md);box-shadow:var(--shadow-sm)}.error-box{border-color:#e5484d80;background:#e5484d14;color:#ffc8ca}.success-box{border-color:#3ecf8e80;background:#3ecf8e14;color:#b5f0d5}.song-detail{display:flex;flex-direction:column;gap:20px;min-width:0;min-height:0}.song-card{position:relative;flex-shrink:0;padding:28px 28px 22px;border-radius:var(--r-xl);background:radial-gradient(circle at 0% 0%,rgba(212,175,79,.1),transparent 40%),linear-gradient(180deg,#1d202b,#16181f);border:1px solid var(--border);box-shadow:var(--shadow-md);overflow:hidden}.song-card:after{content:"";position:absolute;inset:0 0 auto 0;height:1px;background:linear-gradient(90deg,transparent,rgba(212,175,79,.4),transparent)}.song-card h3{margin:0 0 4px;font-size:2.1rem;font-weight:700;letter-spacing:-.025em;line-height:1.1}.song-card p.artist{margin:0 0 18px;font-size:1.05rem;color:var(--accent);font-weight:500;letter-spacing:-.005em}.song-card .badges{gap:10px}.song-card-headline{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;flex-wrap:wrap}.report-error-btn{display:inline-flex;align-items:center;gap:6px;padding:7px 12px;border-radius:var(--r-md);font-size:.78rem;font-weight:500;letter-spacing:.01em;color:var(--muted);background:transparent;border:1px solid var(--border);text-decoration:none;cursor:pointer;transition:color .15s ease,border-color .15s ease,background .15s ease,transform .15s ease;flex-shrink:0;align-self:flex-start;white-space:nowrap}.report-error-btn:hover{color:var(--accent-soft);border-color:var(--accent-dim);background:var(--panel);transform:translateY(-1px)}.report-error-btn:focus-visible{outline:none;border-color:var(--accent-dim);box-shadow:0 0 0 3px var(--accent-glow)}.transpose-inline{display:inline-flex;align-items:center;gap:6px;padding:6px 8px;border-radius:999px;background:#d4af4f14;border:1px solid var(--accent-dim);box-shadow:inset 0 1px #ffffff0a}.transpose-inline .transpose-btn{width:30px;height:30px;padding:0;border-radius:50%;border:1px solid var(--border-soft);background:var(--panel);color:var(--text);font-size:.9rem;font-weight:700;cursor:pointer;transition:all .12s;display:inline-flex;align-items:center;justify-content:center}.transpose-inline .transpose-btn:hover{border-color:var(--accent);color:var(--accent-soft);transform:translateY(-1px)}.transpose-inline .transpose-btn.reset{font-size:1rem;color:var(--muted)}.transpose-inline .transpose-label{min-width:32px;text-align:center;font-weight:700;font-size:.9rem;color:var(--accent);letter-spacing:.02em}.badges,.chips,.action-row,.transpose-controls{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.badge,.chip{display:inline-flex;align-items:center;gap:6px;padding:5px 12px;border-radius:999px;border:1px solid var(--border);background:var(--panel-2);font-size:.82rem;color:var(--text-soft);font-weight:500}.badge.ok{border-color:#3ecf8e59;background:#3ecf8e1a;color:#9cecc4}.badge.warn{border-color:#f5a52459;background:#f5a52414;color:#f5c46b}.badge.accent{border-color:#d4af4f73;background:#d4af4f1f;color:var(--accent);font-weight:600}.badge.maurisson{border-color:var(--accent-dim);background:linear-gradient(135deg,#d4af4f38,#d4af4f1f);color:var(--accent);font-weight:700;box-shadow:0 0 10px #d4af4f2e}.badge.maurisson-warn{border-color:#f5a52473;background:#f5a5241f;color:var(--warn);font-weight:700;box-shadow:0 0 10px #f5a52426}.badge.unverified{border-color:var(--border);background:transparent;color:var(--muted-2);font-weight:500}.badge-btn{cursor:pointer;transition:opacity .15s,box-shadow .15s}.badge-btn:hover{opacity:.82;box-shadow:0 0 12px #d4af4f40}.badge.ok:before,.badge.warn:before{content:"";width:6px;height:6px;border-radius:999px;background:currentColor}.spotify-cta{display:inline-flex;align-items:center;gap:8px;padding:8px 18px 8px 14px;border-radius:999px;background:linear-gradient(135deg,#1ed760,#1db954 55%,#169c46);color:#0b1a12;font-weight:700;font-size:.88rem;letter-spacing:.01em;text-decoration:none;border:1px solid rgba(255,255,255,.15);box-shadow:0 6px 18px #1db95459,0 1px #ffffff40 inset,0 -2px #0000002e inset;cursor:pointer;transition:transform .18s ease,box-shadow .18s ease,filter .18s ease;will-change:transform}.spotify-cta:hover{transform:translateY(-1px) scale(1.03);filter:brightness(1.08);box-shadow:0 10px 24px #1db95480,0 1px #ffffff4d inset,0 -2px #0000002e inset}.spotify-cta:active{transform:translateY(0) scale(.98);filter:brightness(.96)}.spotify-cta:focus-visible{outline:2px solid #1ed760;outline-offset:3px}.spotify-cta-logo{width:18px;height:18px;color:#0b1a12;flex-shrink:0;filter:drop-shadow(0 1px 0 rgba(255,255,255,.25))}.chip{background:var(--panel-2);border-color:var(--border-soft);font-family:var(--font-mono);font-size:.78rem}.toolbar-card,.panel-card,.meta-grid,.section-card,.collapsible-section{border:1px solid var(--border);background:var(--panel);border-radius:var(--r-lg);box-shadow:var(--shadow-sm)}.toolbar-card,.panel-card{padding:18px 20px}.toolbar-card{display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap}.toolbar-card h4{margin:0 0 3px;font-size:.95rem;font-weight:600;color:var(--text)}.toolbar-card .muted{font-size:.82rem}.transpose-controls{gap:6px}.transpose-controls .ghost-btn{background:var(--panel-2);color:var(--text);border:1px solid var(--border);padding:9px 14px;font-weight:600;font-size:.85rem;border-radius:var(--r-md);transition:all .15s}.transpose-controls .ghost-btn:hover:not(:disabled){background:var(--accent);color:#17181c;border-color:var(--accent);box-shadow:var(--shadow-accent);transform:translateY(-1px)}.transpose-controls .ghost-btn:active:not(:disabled){transform:translateY(0)}.transpose-label{min-width:54px;text-align:center;font-weight:700;font-family:var(--font-mono);border:1px solid var(--accent);color:var(--accent);padding:9px 10px;border-radius:var(--r-md);background:#d4af4f14;font-size:.9rem}section>h4{margin:4px 2px 10px;font-size:.75rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}.sections{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px}.section-card{padding:16px 16px 18px;background:linear-gradient(180deg,var(--panel) 0%,#17191f 100%);transition:border-color .15s,transform .15s}.section-card:hover{border-color:var(--border-strong)}.section-card h5{margin:0 0 12px;color:var(--accent);font-size:.78rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;display:flex;align-items:center;gap:8px}.section-card h5:after{content:"";flex:1;height:1px;background:linear-gradient(90deg,rgba(212,175,79,.3),transparent)}.bars{display:flex;flex-direction:column;gap:6px}.bar-row{display:grid;grid-template-columns:repeat(4,1fr);gap:4px;padding:2px;border-radius:var(--r-sm)}.bar-row:hover{background:#ffffff04}.beat{display:inline-flex;align-items:center;justify-content:center;min-height:52px;padding:10px 6px;border-radius:var(--r-sm);border:1px solid var(--border-soft);background:var(--panel-2);font-family:var(--font-mono);font-weight:600;font-size:1.25rem;color:var(--text);letter-spacing:-.01em;transition:all .12s}.beat:hover{border-color:var(--accent-dim);background:var(--panel-3)}.beat.empty,.beat[data-empty=true]{background:transparent;border:1px dashed var(--border-soft);color:var(--muted-2);font-weight:400;opacity:.35;font-size:.85rem}.beat.empty:hover,.beat[data-empty=true]:hover{opacity:.6;background:transparent;border-color:var(--border)}.meta-grid{padding:20px 22px;display:grid;gap:22px;grid-template-columns:repeat(3,minmax(0,1fr))}.compact-grid{padding:0;background:transparent;border:0;box-shadow:none}.meta-grid h4{margin:0 0 10px;color:var(--muted);font-size:.7rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase}.meta-grid p{margin:0;color:var(--text-soft)}.uri{word-break:break-all;color:var(--muted);font-family:var(--font-mono);font-size:.82rem}.collapsible-section{overflow:hidden}.collapsible-toggle{display:flex;justify-content:space-between;align-items:center;width:100%;padding:16px 20px;background:transparent;border:none;color:var(--text);cursor:pointer;transition:background .12s}.collapsible-toggle h4{margin:0;font-size:.88rem;font-weight:600}.collapsible-toggle:hover{background:var(--panel-2)}.chevron{font-size:1rem;color:var(--muted);transition:transform .2s,color .12s}.collapsible-toggle:hover .chevron{color:var(--accent)}.chevron.open{transform:rotate(180deg)}.collapsible-body{padding:4px 20px 20px;border-top:1px solid var(--border-soft)}.collapsible-body label{display:flex;flex-direction:column;gap:6px;margin-bottom:12px;color:var(--muted);font-size:.82rem}.collapsible-body textarea{resize:vertical;min-height:110px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-bottom:12px}.panel-card label{display:flex;flex-direction:column;gap:6px;margin-bottom:12px;color:var(--muted);font-size:.82rem}.panel-card textarea{resize:vertical;min-height:110px}.primary-btn,.ghost-btn,.ghost-link{position:relative;isolation:isolate;border-radius:var(--r-md);padding:10px 16px;border:1px solid var(--border);text-decoration:none;cursor:pointer;font-size:.85rem;font-weight:600;letter-spacing:.005em;transition:transform var(--dur) var(--ease),box-shadow var(--dur) var(--ease),border-color var(--dur-fast) var(--ease-snap),background var(--dur-fast) var(--ease-snap),color var(--dur-fast) var(--ease-snap),filter var(--dur-fast) var(--ease-snap);display:inline-flex;align-items:center;justify-content:center;overflow:hidden}.primary-btn{background:linear-gradient(180deg,var(--accent-bright) 0%,var(--accent-soft) 38%,var(--accent) 62%,#b8913d 100%);color:#1a1608;border-color:#ffd9708c;box-shadow:var(--inset-polish),0 1px #ffd97080 inset,0 -8px 14px -10px #00000073 inset,var(--shadow-sm);text-shadow:0 1px 0 rgba(255,229,160,.45)}.primary-btn:before{content:"";position:absolute;inset:1px 1px auto 1px;height:45%;border-radius:calc(var(--r-md) - 1px) calc(var(--r-md) - 1px) 0 0;background:linear-gradient(180deg,#ffffff47,#fff0);pointer-events:none;z-index:0;opacity:.9;transition:opacity var(--dur) var(--ease)}.primary-btn>*{position:relative;z-index:1}.primary-btn:hover:not(:disabled){transform:translateY(-2px);filter:brightness(1.06) saturate(1.05);box-shadow:var(--inset-polish),0 1px #ffe5a099 inset,0 -8px 14px -10px #00000073 inset,0 12px 28px -8px #d4af4f8c,0 0 0 4px var(--accent-glow-soft)}.primary-btn:hover:not(:disabled):before{opacity:1}.primary-btn:active:not(:disabled){transform:translateY(0) scale(.985);filter:brightness(.95);box-shadow:0 1px #ffe5a04d inset,0 6px 12px -6px #00000080 inset,var(--shadow-sm)}.primary-btn:focus-visible{outline:none;box-shadow:var(--inset-polish),0 1px #ffe5a080 inset,0 -8px 14px -10px #00000073 inset,0 0 0 3px var(--accent-glow)}.ghost-btn,.ghost-link{background:linear-gradient(180deg,var(--panel-2) 0%,var(--panel) 100%);color:var(--text);box-shadow:var(--inset-polish),var(--shadow-sm)}.ghost-btn:hover:not(:disabled),.ghost-link:hover{background:linear-gradient(180deg,var(--panel-3) 0%,var(--panel-2) 100%);border-color:var(--accent-dim);color:var(--accent-soft);transform:translateY(-1px);box-shadow:var(--inset-polish),0 8px 22px -8px #0000008c,0 0 0 3px var(--accent-glow-soft)}.ghost-btn:active:not(:disabled),.ghost-link:active{transform:translateY(0);filter:brightness(.96)}.ghost-btn:focus-visible,.ghost-link:focus-visible{outline:none;border-color:var(--accent-dim);box-shadow:var(--inset-polish),0 0 0 3px var(--accent-glow)}.primary-btn:disabled,.ghost-btn:disabled{opacity:.42;cursor:not-allowed;transform:none!important;filter:grayscale(.3)}.primary-btn:disabled:before{opacity:.3}.compact-btn{padding:7px 12px;font-size:.78rem}.compact{margin-top:0}.section-headline{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:10px}.sidebar-right{border-left:1px solid var(--border-soft);background:linear-gradient(180deg,var(--bg-sidebar) 0%,#0d0f14 100%);padding:18px 16px;flex-direction:column;gap:14px;overflow-y:auto;display:none;position:fixed;top:0;right:0;width:360px;max-width:92vw;height:100vh;height:100dvh;z-index:90;box-shadow:-8px 0 32px #0009}.sidebar-right.open{display:flex}.sidebar-right h4{margin:0;font-size:.78rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}.sidebar-right label{display:flex;flex-direction:column;gap:6px;margin-bottom:10px;color:var(--muted);font-size:.8rem}.spotify-status-bar{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;padding:10px 12px;background:var(--panel);border:1px solid var(--border);border-radius:var(--r-md)}.spotify-status-bar .badge{padding:4px 10px;font-size:.78rem}.right-section{display:flex;flex-direction:column;gap:10px}.right-divider{border:none;border-top:1px solid var(--border-soft);margin:4px 0}.right-footer{margin-top:auto}.export-block{margin-top:12px;padding-top:14px;border-top:1px dashed var(--border-soft)}.playlist-list,.result-list,.selection-items,.selection-tabs{display:flex;flex-direction:column;gap:6px}.playlist-item,.result-item,.selection-item{border:1px solid var(--border-soft);border-radius:var(--r-md);padding:8px 10px;background:var(--panel);display:flex;justify-content:space-between;gap:10px;align-items:center;transition:border-color .15s,background .15s,transform .05s}.playlist-item:hover,.result-item:hover,.selection-item:hover{border-color:var(--border);background:var(--panel-2)}.playlist-item.active{border-color:var(--spotify);background:#1eb95414}.playlist-avatar{flex-shrink:0;width:34px;height:34px;border-radius:var(--r-sm);display:inline-flex;align-items:center;justify-content:center;font-weight:700;font-size:.95rem;color:#fff;text-transform:uppercase;box-shadow:inset 0 0 0 1px #ffffff0f,var(--shadow-sm);background:linear-gradient(135deg,#6366f1,#8b5cf6)}.playlist-avatar[data-hue="0"]{background:linear-gradient(135deg,#f87171,#ef4444)}.playlist-avatar[data-hue="1"]{background:linear-gradient(135deg,#fb923c,#f97316)}.playlist-avatar[data-hue="2"]{background:linear-gradient(135deg,#fbbf24,#d4af4f)}.playlist-avatar[data-hue="3"]{background:linear-gradient(135deg,#a3e635,#65a30d)}.playlist-avatar[data-hue="4"]{background:linear-gradient(135deg,#34d399,#059669)}.playlist-avatar[data-hue="5"]{background:linear-gradient(135deg,#22d3ee,#0891b2)}.playlist-avatar[data-hue="6"]{background:linear-gradient(135deg,#60a5fa,#2563eb)}.playlist-avatar[data-hue="7"]{background:linear-gradient(135deg,#a78bfa,#7c3aed)}.playlist-avatar[data-hue="8"]{background:linear-gradient(135deg,#e879f9,#c026d3)}.playlist-avatar[data-hue="9"]{background:linear-gradient(135deg,#f472b6,#db2777)}.playlist-item .selection-link,.result-item>div,.selection-item>.selection-link,.selection-item>div:first-child{flex:1;min-width:0;display:flex;align-items:center;gap:10px}.playlist-item strong,.result-item strong,.selection-item strong{display:block;font-size:.86rem;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.playlist-item small,.result-item small,.selection-item small{display:block;color:var(--muted);margin-top:2px;font-size:.72rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.playlist-text{min-width:0;flex:1}.spotify-search-box{margin-top:14px}.compact-actions{justify-content:flex-end}.selection-tab{display:flex;justify-content:space-between;align-items:center;width:100%;padding:9px 12px;border-radius:var(--r-md);border:1px solid var(--border-soft);background:var(--panel);color:var(--text);cursor:pointer;font-size:.85rem;transition:all .15s}.selection-tab:hover{background:var(--panel-2);border-color:var(--border)}.selection-tab.active{border-color:var(--accent);background:#d4af4f14;color:var(--accent-soft)}.selection-tab span{display:inline-flex;align-items:center;justify-content:center;min-width:22px;padding:1px 6px;background:var(--panel-3);border-radius:999px;font-size:.72rem;font-weight:600;color:var(--muted)}.selection-tab.active span{background:var(--accent);color:#1a1608}.selection-link{background:transparent;border:0;padding:0;color:inherit;text-align:left;cursor:pointer;min-width:0}.checkbox-row{display:flex!important;flex-direction:row!important;align-items:center;gap:10px;font-size:.82rem}.checkbox-row input{width:auto;accent-color:var(--accent)}.right-panel-toggle{display:inline-flex;align-items:center;gap:8px;position:fixed;top:18px;right:20px;z-index:100;padding:8px 14px 8px 12px;border-radius:999px;border:1px solid var(--accent-dim);background:linear-gradient(135deg,var(--accent-soft),var(--accent));color:#000;font-size:.95rem;font-weight:700;letter-spacing:.02em;cursor:pointer;box-shadow:var(--shadow-lg);transition:transform .15s,box-shadow .15s}.right-panel-toggle:hover{transform:translateY(-1px);box-shadow:0 8px 24px #00000073}.right-panel-toggle .right-panel-toggle-icon{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:50%;background:#0000002e;font-size:1rem}.right-panel-toggle.is-open{background:var(--panel);color:var(--text);border-color:var(--border)}.right-panel-toggle.is-open .right-panel-toggle-icon{background:#ffffff14}.right-panel-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;z-index:80;animation:fadein .15s ease-out}@keyframes fadein{0%{opacity:0}to{opacity:1}}.lyrics-toggle-group{display:flex;flex-direction:column;gap:4px;margin:4px 0 2px}.view-mode-group{display:flex;flex-direction:row;gap:8px;margin:10px 0 6px}.view-mode-btn{display:flex;align-items:center;justify-content:center;gap:10px;flex:1;padding:18px 20px;border-radius:var(--r-md);border:1px solid rgba(160,160,180,.22);background:linear-gradient(90deg,#c8c8dc0d,#c8c8dc05);color:#dcdcebbf;font-size:1rem;font-weight:700;letter-spacing:.04em;cursor:pointer;transition:background .15s,border-color .15s,color .15s,transform .08s;text-align:center}.view-mode-btn:hover:not(:disabled){background:linear-gradient(90deg,#c8c8dc1a,#c8c8dc0a);border-color:#c8c8dc66;color:#f0f0faf2}.view-mode-btn:disabled{opacity:.35;cursor:not-allowed}.view-mode-btn.is-active{background:linear-gradient(90deg,#c8c8dc24,#c8c8dc0f);border-color:#dcdceb8c;color:#f0f0f8;box-shadow:0 2px 10px #00000040}.view-mode-btn.grille-mode{border-color:#a0dcb438;background:linear-gradient(90deg,#78c8a012,#78c8a008);color:#9fd6b5}.view-mode-btn.grille-mode:hover:not(:disabled){background:linear-gradient(90deg,#78c8a024,#78c8a00f);border-color:#78c8a066}.view-mode-btn.grille-mode.is-active{background:linear-gradient(90deg,#78c8a026,#78c8a00f);border-color:#78c8a08c;color:#c0e8d0}.view-mode-btn:not(.chords-mode):not(.grille-mode){border-color:#d4af4f47;background:linear-gradient(90deg,#d4af4f14,#d4af4f08);color:var(--accent)}.view-mode-btn:not(.chords-mode):not(.grille-mode):hover:not(:disabled){background:linear-gradient(90deg,#d4af4f29,#d4af4f12);border-color:#d4af4f80}.view-mode-btn:not(.chords-mode):not(.grille-mode).is-active{background:linear-gradient(90deg,#d4af4f2e,#d4af4f12);border-color:#d4af4f99;color:var(--accent-soft)}.view-mode-btn.chords-mode{border-color:#64a0ff47;background:linear-gradient(90deg,#64a0ff14,#64a0ff08);color:#8ab4f8}.view-mode-btn.chords-mode:hover:not(:disabled){background:linear-gradient(90deg,#64a0ff29,#64a0ff12);border-color:#64a0ff80}.view-mode-btn.chords-mode.is-active{background:linear-gradient(90deg,#64a0ff2e,#64a0ff12);border-color:#64a0ff99;color:#b8d0ff}.view-mode-btn .lit-icon{font-size:1.25rem}.view-mode-btn .lit-label{flex:0 1 auto}.scale-collapse-bar{display:flex;justify-content:flex-end;margin:4px 0 2px}.song-transpose-bar{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:12px;margin:8px 0 6px;container-type:inline-size}.song-transpose-bar .scale-collapse-toggle{justify-self:start;min-width:0}.song-transpose-controls{justify-self:center;display:inline-flex;align-items:center;gap:8px;padding:6px 14px;border:1px solid rgba(212,175,79,.3);border-radius:var(--r-md);background:linear-gradient(90deg,#d4af4f12,#d4af4f08);box-shadow:0 0 10px #d4af4f2e;flex-wrap:wrap;max-width:100%;transition:border-color .2s,box-shadow .2s}.song-transpose-controls:hover{border-color:#d4af4f8c;box-shadow:0 0 16px #d4af4f59}.song-transpose-label{font-size:.8rem;font-weight:700;text-transform:uppercase;letter-spacing:.12em;color:var(--accent);white-space:nowrap;-webkit-user-select:none;user-select:none;cursor:help;padding-right:4px}.song-transpose-btn{display:flex;align-items:center;justify-content:center;width:34px;height:34px;border:1px solid var(--border-soft);background:var(--panel-2);color:var(--text-soft);font-size:1.15rem;font-weight:700;font-family:var(--font-mono);border-radius:var(--r-sm);cursor:pointer;transition:background .12s,border-color .12s,color .12s;line-height:1}.song-transpose-btn:hover{background:var(--panel-3);border-color:var(--accent-dim);color:var(--accent-soft)}.song-transpose-btn:active{background:#d4af4f1f;border-color:var(--accent)}.song-transpose-value{min-width:44px;text-align:center;padding:2px 6px;background:transparent;font-weight:700;font-size:1.1rem;font-family:var(--font-mono);color:var(--accent);pointer-events:none;-webkit-user-select:none;user-select:none}.song-transpose-reset{display:flex;align-items:center;justify-content:center;width:30px;height:30px;border:1px solid transparent;background:transparent;color:var(--muted-2);font-size:1rem;border-radius:var(--r-sm);cursor:pointer;transition:all .12s;margin-left:1px}.song-transpose-reset:hover{color:var(--text-soft);border-color:var(--border-soft);background:var(--panel-2)}@container (max-width: 560px){.song-transpose-bar{grid-template-columns:1fr;justify-items:center;gap:8px}.song-transpose-bar .scale-collapse-toggle,.song-transpose-controls{justify-self:center}.song-transpose-bar .song-transpose-spacer{display:none}.song-transpose-label{font-size:.75rem;letter-spacing:.1em}}@media (max-width: 720px){.song-transpose-bar{grid-template-columns:1fr;justify-items:center;gap:8px}.song-transpose-bar .scale-collapse-toggle,.song-transpose-controls{justify-self:center}.song-transpose-bar .song-transpose-spacer{display:none}}.scale-collapse-toggle{background:linear-gradient(90deg,#d4af4f12,#d4af4f08);border:1px solid rgba(212,175,79,.3);border-radius:var(--r-md);color:var(--accent);padding:9px 22px;font-size:1rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;cursor:pointer;transition:background .2s,border-color .2s,color .2s,box-shadow .2s;box-shadow:0 0 10px #d4af4f2e}.scale-collapse-toggle:hover{background:linear-gradient(90deg,#d4af4f24,#d4af4f0f);border-color:#d4af4f8c;color:var(--accent-soft);box-shadow:0 0 16px #d4af4f66}.lyrics-inline-toggle{display:flex;align-items:center;gap:10px;width:100%;padding:11px 16px;margin:0;border-radius:var(--r-md);border:1px solid rgba(212,175,79,.22);background:linear-gradient(90deg,#d4af4f12,#d4af4f08);color:var(--accent);font-size:.85rem;font-weight:600;letter-spacing:.04em;cursor:pointer;transition:background .15s,border-color .15s;text-align:left}.lyrics-inline-toggle:hover{background:linear-gradient(90deg,#d4af4f24,#d4af4f0f);border-color:#d4af4f66}.lyrics-inline-toggle.is-open{background:linear-gradient(90deg,#d4af4f21,#d4af4f0d);border-color:#d4af4f73;color:var(--accent-soft)}.lit-icon{font-size:1rem;opacity:.9}.lit-label{flex:1}.lit-arrow{font-size:1.1rem;opacity:.6;font-weight:400}.lyrics-inline{position:relative;padding:8px 0 32px}.lyrics-full-body{columns:2;column-gap:48px;padding:0 4px}@media (max-width: 900px){.lyrics-full-body{columns:1}}.lyrics-line{margin:0;font-size:1rem;line-height:1.85;color:var(--text-soft);letter-spacing:.01em;break-inside:avoid}.lyrics-line.lyrics-blank{height:1.8em;display:block;break-inside:avoid}.chordpro-body{flex:1;overflow-y:auto;padding:20px 22px 36px;scrollbar-width:thin;scrollbar-color:var(--border) transparent;font-family:var(--font-ui)}.chordpro-blank{height:2.6em}.chordpro-line{display:flex;flex-wrap:wrap;align-items:flex-end;margin-bottom:10px}.chordpro-segment{display:inline-flex;flex-direction:column;white-space:pre}.chordpro-chord{font-family:var(--font-mono);color:var(--accent);font-weight:700;font-size:.95rem;line-height:1.6;letter-spacing:.02em;min-width:max-content;padding-right:4px}.lyrics-inline-title{display:flex;flex-direction:row;align-items:flex-start;justify-content:space-between;gap:16px;padding:4px 22px 14px;border-bottom:1px solid var(--border-soft);margin-bottom:6px}.lyrics-inline-title .lit-meta{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1 1 auto}.lyrics-inline-title .lit-title{font-family:var(--font-ui);font-size:1.15rem;font-weight:700;color:var(--text);letter-spacing:.01em}.lyrics-inline-title .lit-artist{font-family:var(--font-ui);font-size:.85rem;font-weight:500;color:var(--muted);letter-spacing:.02em}.lyrics-inline-title .lit-actions{display:flex;align-items:center;gap:8px;flex-shrink:0}.lyrics-fullscreen-btn{display:inline-flex;align-items:center;gap:6px;padding:7px 12px;border-radius:999px;border:1px solid var(--stage-btn-border, rgba(212, 175, 79, .32));background:var(--stage-btn-bg, rgba(212, 175, 79, .1));color:var(--stage-btn-text, #f4e8c8);font:inherit;font-size:.82rem;font-weight:600;cursor:pointer;white-space:nowrap;transition:background .15s,border-color .15s,color .15s,box-shadow .15s,transform .12s}.lyrics-fullscreen-btn:hover{background:var(--stage-btn-bg-hover, rgba(255, 217, 112, .18));border-color:var(--stage-btn-border-hover, rgba(255, 217, 112, .75));color:var(--stage-btn-text-hover, #ffd970);box-shadow:var(--stage-btn-shadow-hover)}.lyrics-fullscreen-btn:active{transform:scale(.96)}.lyrics-fullscreen-btn svg{flex-shrink:0}@media (max-width: 480px){.lyrics-fullscreen-btn-label{display:none}.lyrics-fullscreen-btn{padding:11px}}.lyrics-fs{position:fixed;top:0;right:0;bottom:0;left:0;z-index:200;display:flex;flex-direction:column;background:radial-gradient(circle at 50% -10%,#15120c,#0a0908 70%);animation:fadein .18s ease-out}.lyrics-fs-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 14px;padding-top:max(10px,env(safe-area-inset-top));border-bottom:1px solid var(--border-soft, #1f2330);background:#0a0908d9;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);flex-shrink:0}.lyrics-fs-meta{display:flex;align-items:baseline;gap:10px;min-width:0;flex-wrap:wrap}.lyrics-fs-title{font-family:var(--font-ui);font-weight:700;font-size:1.05rem;color:var(--text, #f4e8c8);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.lyrics-fs-artist{font-size:.85rem;color:var(--muted)}.lyrics-fs-key{font-size:.78rem;font-weight:700;color:#1a1208;background:linear-gradient(180deg,#ffd970,#d4af4f);border-radius:999px;padding:2px 10px}.lyrics-fs-actions{display:flex;align-items:center;gap:8px;flex-shrink:0}.lyrics-fs-font-btn,.lyrics-fs-close{min-width:44px;height:44px;border-radius:12px;border:1px solid var(--stage-btn-border, rgba(212, 175, 79, .32));background:var(--stage-btn-bg, rgba(212, 175, 79, .1));color:var(--stage-btn-text, #f4e8c8);font-size:1rem;font-weight:700;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;transition:background .15s,border-color .15s,color .15s,transform .12s}.lyrics-fs-close{font-size:1.25rem}.lyrics-fs-font-btn:hover,.lyrics-fs-close:hover{background:var(--stage-btn-bg-hover, rgba(255, 217, 112, .18));border-color:var(--stage-btn-border-hover, rgba(255, 217, 112, .75));color:var(--stage-btn-text-hover, #ffd970)}.lyrics-fs-font-btn:disabled{opacity:.4;cursor:default}.lyrics-fs-font-btn:active:not(:disabled),.lyrics-fs-close:active{transform:scale(.94)}.lyrics-fs-scroll{flex:1 1 auto;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;padding:20px clamp(16px,5vw,64px) max(40px,env(safe-area-inset-bottom))}.lyrics-fs-plain{max-width:70ch;margin:0 auto}.lyrics-fs-line{margin:0 0 .35em;line-height:1.5;color:var(--text, #f4e8c8)}.lyrics-fs-line.is-blank{height:.9em}.lyrics-fs-scroll .chordpro-body{max-width:70ch;margin:0 auto}.lyrics-fs-scroll .chordpro-lyric{font-size:1em}.lyrics-fs-scroll .chordpro-chord{font-size:.82em}.chord-block-toggle{display:inline-flex;align-items:center;gap:6px;padding:5px 10px;border:1px solid var(--border);border-radius:999px;background:linear-gradient(135deg,#2a2238,#1a1628);color:#e7e3d8;font-family:var(--font-ui);font-size:.72rem;font-weight:600;letter-spacing:.01em;cursor:pointer;white-space:nowrap;flex-shrink:0;transition:background .15s ease,color .15s ease,transform .1s ease,border-color .15s ease}.chord-block-toggle:hover{border-color:var(--accent-dim);color:var(--accent);background:linear-gradient(135deg,#352a48,#221c34)}.chord-block-toggle:active{transform:translateY(1px)}.chord-block-toggle.is-active{background:transparent;color:var(--muted);border-color:var(--border-soft)}.chord-block-toggle.is-active:hover{background:color-mix(in srgb,var(--text) 6%,transparent);color:var(--text);border-color:var(--border)}.chord-block-toggle-icon{width:14px;height:14px;flex-shrink:0}.chord-block-toggle-label{line-height:1.2}@media (max-width: 720px){.lyrics-inline-title{flex-direction:column;align-items:stretch}.chord-block-toggle{align-self:flex-start}}.chord-reference-block{position:fixed;right:12px;top:110px;width:190px;max-height:60vh;display:flex;flex-direction:column;background:var(--panel, #181a1f);border:1px solid var(--border);border-radius:12px;box-shadow:0 10px 30px #00000059;overflow:hidden;z-index:30}.chord-reference-block.chord-reference-block--wide{width:384px}.chord-reference-block.chord-reference-block--xwide{width:560px}.chord-reference-controls{display:flex;align-items:center;padding:8px 12px;border-bottom:1px solid var(--border-soft);background:color-mix(in srgb,var(--accent) 7%,transparent);flex-shrink:0}.chord-simplify-toggle{display:inline-flex;align-items:center;gap:8px;cursor:pointer;font-family:var(--font-ui);font-size:.78rem;font-weight:500;color:var(--text);-webkit-user-select:none;user-select:none;letter-spacing:.01em}.chord-simplify-toggle input[type=checkbox]{width:14px;height:14px;cursor:pointer;accent-color:var(--accent);margin:0}.chord-reference-body{flex:1;overflow-y:auto;padding:14px 10px;display:flex;flex-direction:column;gap:14px;scrollbar-width:thin;scrollbar-color:var(--accent) color-mix(in srgb,var(--accent) 12%,transparent)}.chord-reference-body::-webkit-scrollbar{width:8px}.chord-reference-body::-webkit-scrollbar-track{background:color-mix(in srgb,var(--accent) 10%,transparent);border-radius:4px}.chord-reference-body::-webkit-scrollbar-thumb{background:var(--accent);border-radius:4px;opacity:.8}.chord-reference-body::-webkit-scrollbar-thumb:hover{background:color-mix(in srgb,var(--accent) 80%,white)}.chord-reference-block:after{content:"";position:absolute;left:0;right:0;bottom:0;height:28px;background:linear-gradient(to bottom,transparent,var(--panel, #181a1f));pointer-events:none;opacity:0;transition:opacity .15s ease}.chord-reference-block.has-overflow:after{opacity:1}.chord-reference-block--wide .chord-reference-body{display:flex;flex-direction:row;flex-wrap:wrap;justify-content:center;align-items:flex-start;gap:14px 12px;padding:14px 12px}.chord-reference-block--wide .chord-reference-item{flex:0 0 auto}.chord-reference-empty{margin:0;padding:12px;color:var(--muted);font-family:var(--font-ui);font-size:.85rem;text-align:center}.chord-reference-item{display:flex;flex-direction:column;align-items:center;gap:4px}.chord-reference-name{font-family:var(--font-ui);font-size:.98rem;font-weight:700;color:var(--text);letter-spacing:.02em}.chord-reference-diagram{display:flex;align-items:center;justify-content:center;min-height:80px}.chord-diagram-fallback{font-family:var(--font-ui);font-size:.85rem;color:var(--muted);padding:18px 0}.chord-reference-block--guitar .chord-reference-diagram .guitar-diagram{width:98px;height:112px}.chord-reference-block--ukulele .chord-reference-diagram .guitar-diagram{width:84px;height:112px}@media (max-width: 768px){.lyrics-inline{position:relative}.lyrics-inline-title .chord-block-toggle{position:fixed;bottom:16px;right:12px;left:auto;top:auto;z-index:70;padding:10px 16px;background:linear-gradient(180deg,#d4af4ff2,#b8903cf2);color:#1a1608;border:1px solid rgba(212,175,79,.85);border-radius:999px;box-shadow:0 8px 22px #0000008c,0 0 0 1px #0000004d;font-weight:700;font-size:.82rem}.lyrics-inline-title .chord-block-toggle:hover{background:linear-gradient(180deg,#e8c363,#cca450)}.chord-reference-block.chord-reference-block--mobile{position:fixed;top:auto;bottom:70px;right:12px;left:12px;width:auto;max-width:360px;margin-left:auto;max-height:min(70vh,520px);z-index:65;box-shadow:0 16px 40px #0000008c}.chord-reference-block.chord-reference-block--mobile.chord-reference-block--wide,.chord-reference-block.chord-reference-block--mobile.chord-reference-block--xwide{width:auto}}.chord-mini-piano{position:relative;width:calc(var(--white-count, 8) * 14px);height:62px;--white-count: 8}.chord-mini-piano.chord-mini-piano--empty{width:auto;height:auto;padding:14px 18px;background:transparent;border:1px dashed var(--border);border-radius:8px;color:var(--muted);font-family:var(--font-ui);font-size:.85rem;text-align:center}.chord-mini-piano .piano-whites{display:flex;height:100%;width:100%;border:1px solid var(--border);border-radius:6px;overflow:hidden;background:#fff}.chord-mini-piano .piano-blacks{position:absolute;top:0;left:0;right:0;height:100%;pointer-events:none}.chord-mini-piano .piano-key.white{flex:1 1 0;border-right:1px solid #d6d6d6;position:relative;background:#fff;display:flex;align-items:flex-end;justify-content:center;padding-bottom:4px}.chord-mini-piano .piano-key.white:last-child{border-right:none}.chord-mini-piano .piano-key.black{position:absolute;top:0;width:calc(100% / (var(--white-count) * 1.65));height:62%;background:#1c1c1c;border-radius:0 0 3px 3px;display:flex;align-items:flex-end;justify-content:center;padding-bottom:3px}.chord-mini-piano .piano-key.white.active{background:color-mix(in srgb,var(--accent) 65%,#fff)}.chord-mini-piano .piano-key.white.root{background:color-mix(in srgb,var(--accent) 88%,#fff)}.chord-mini-piano .piano-key.white.bass{background:color-mix(in srgb,var(--accent) 55%,#fff);outline:2px solid var(--accent);outline-offset:-2px}.chord-mini-piano .piano-key.black.active{background:var(--accent)}.chord-mini-piano .piano-key.black.root{background:var(--accent);box-shadow:inset 0 -3px #fff}.chord-mini-piano .piano-key-label{font-family:var(--font-ui);font-size:.58rem;font-weight:700;letter-spacing:.02em}.chord-mini-piano .piano-key.white .piano-key-label{color:#1a1a1a}.chord-mini-piano .piano-key.black .piano-key-label{color:#fff}.chord-inversions-hint{margin-left:10px;font-family:var(--font-ui);font-size:.72rem;color:var(--muted);opacity:.72;font-style:italic;letter-spacing:.01em}.chord-reference-block--piano .chord-reference-item.is-clickable{cursor:pointer;border-radius:8px;padding:4px 6px;margin:-4px -6px;transition:background-color .18s ease,transform .18s ease;outline:none}.chord-reference-block--piano .chord-reference-item.is-dimmed,.chord-reference-block--piano .chord-reference-item.is-opened{transition:background-color .18s ease}.chord-reference-block--piano .chord-reference-item.is-clickable:hover{background:color-mix(in srgb,var(--accent) 8%,transparent)}.chord-reference-block--piano .chord-reference-item.is-clickable:focus-visible{box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 60%,transparent)}.chord-reference-item.is-dimmed{opacity:.32}.chord-reference-item.is-opened{background:color-mix(in srgb,var(--accent) 14%,transparent)}.chord-inversions-popover{position:fixed;z-index:90;display:flex;flex-direction:column;gap:10px;padding:12px 14px 14px;background:var(--panel, #181a1f);border:1px solid color-mix(in srgb,var(--accent) 35%,transparent);border-radius:12px;box-shadow:0 18px 48px #0000008c,0 0 0 1px #00000059;animation:chord-inv-pop-in .14s ease-out}.chord-inversions-popover.flip-up{transform:translateY(-100%)}@keyframes chord-inv-pop-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.chord-inversions-popover.flip-up{animation:chord-inv-pop-in-up .14s ease-out}@keyframes chord-inv-pop-in-up{0%{opacity:0;transform:translateY(calc(-100% + 4px))}to{opacity:1;transform:translateY(-100%)}}.chord-inversions-header{display:flex;align-items:baseline;gap:8px;padding-bottom:6px;border-bottom:1px solid color-mix(in srgb,var(--accent) 18%,transparent)}.chord-inversions-title{font-family:var(--font-ui);font-size:1.05rem;font-weight:700;color:var(--text);letter-spacing:.02em}.chord-inversions-sub{font-family:var(--font-ui);font-size:.72rem;color:var(--muted);text-transform:lowercase;letter-spacing:.04em;flex:1}.chord-inversions-close{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;background:transparent;color:var(--muted);font-size:1.4rem;line-height:1;cursor:pointer;padding:0 4px;border-radius:4px;transition:color .15s ease,background-color .15s ease}.chord-inversions-close:hover{color:var(--text);background:#ffffff0f}.chord-inversions-list{display:flex;gap:12px;align-items:flex-start;justify-content:center;flex-wrap:wrap}.chord-inversion-item{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:1px solid transparent;background:transparent;display:flex;flex-direction:column;align-items:center;gap:6px;padding:8px 10px 10px;border-radius:10px;cursor:pointer;transition:background-color .15s ease,border-color .15s ease,transform .12s ease;font-family:var(--font-ui)}.chord-inversion-item:hover{background:#ffffff0a}.chord-inversion-item.is-marked{background:color-mix(in srgb,var(--accent) 22%,transparent);border-color:color-mix(in srgb,var(--accent) 55%,transparent);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--accent) 25%,transparent)}.chord-inversion-item:focus-visible{outline:none;box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 60%,transparent)}.chord-inversion-label{font-size:.72rem;color:var(--muted);letter-spacing:.02em;white-space:nowrap}.chord-inversion-item.is-marked .chord-inversion-label{color:var(--text);font-weight:600}.chord-mini-piano.chord-mini-piano--inversion{width:calc(var(--white-count, 8) * 18px);height:78px}.chordpro-lyric{font-family:var(--font-ui);color:var(--text);font-size:1rem;font-weight:500;line-height:1.65;letter-spacing:.005em;min-width:max-content}.chordpro-line.no-chords .chordpro-chord{display:none}.chordpro-view-toolbar{display:flex;justify-content:flex-end;padding:8px 20px 0}.chordpro-edit-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:10px 20px 6px;border-bottom:1px solid var(--border);background:#64a0ff0a}.chordpro-edit-hint{margin-left:auto;color:var(--text-soft);font-size:.78rem;opacity:.8}.chordpro-edit-body{padding-top:12px}.chordpro-line-edit{gap:2px;padding:2px 0}.chordpro-segment-edit{position:relative}.chordpro-chord-slot{display:block;min-height:1.5em;min-width:14px;line-height:1.5;font-size:.82rem;border-radius:4px;transition:background-color .12s ease,outline-color .12s ease}.chordpro-chord-slot.is-empty{outline:1px dashed rgba(212,175,79,.18);outline-offset:1px;background:#d4af4f08}.chordpro-chord-slot.is-empty.is-over{outline-color:var(--accent);background:#d4af4f2e}.chordpro-chord-drag{cursor:grab;-webkit-user-select:none;user-select:none;touch-action:none;padding:1px 6px;border-radius:4px;background:#d4af4f1f;transition:transform .08s ease,box-shadow .12s ease,background-color .12s ease}.chordpro-chord-drag:hover{background:#d4af4f38}.chordpro-chord-drag:active{cursor:grabbing}.chordpro-chord-drag.is-dragging{opacity:.35}.chordpro-chord-drag.is-overlay{opacity:1;box-shadow:0 6px 18px #00000061;background:#d4af4f52;color:var(--accent);font-weight:700;cursor:grabbing}.chordpro-line-delete-btn{flex-shrink:0;align-self:center;width:18px;height:18px;display:flex;align-items:center;justify-content:center;border:none;background:transparent;color:var(--text-soft);font-size:13px;line-height:1;cursor:pointer;padding:0;border-radius:3px;opacity:0;margin-right:4px;transition:opacity .15s,color .15s,background .15s}.chordpro-line-edit:hover .chordpro-line-delete-btn,.chordpro-blank-edit:hover .chordpro-line-delete-btn{opacity:.4}.chordpro-line-delete-btn:hover{color:#e05555;background:#e055551f;opacity:1}.chordpro-blank-edit{display:flex;align-items:center}.lyrics-inline-toggle.chords-mode{border-color:#64a0ff38;background:linear-gradient(90deg,#64a0ff12,#64a0ff08);color:#8ab4f8}.lyrics-inline-toggle.chords-mode:hover{background:linear-gradient(90deg,#64a0ff24,#64a0ff0f);border-color:#64a0ff66}.lyrics-inline-toggle.chords-mode.is-open{background:linear-gradient(90deg,#64a0ff21,#64a0ff0d);border-color:#64a0ff73;color:#b8d0ff}.brand-logo-btn{background:none;border:none;padding:0;margin:0;cursor:pointer;display:block;width:100%;text-align:left;transition:filter .2s}.brand-logo-btn:hover{filter:brightness(1.15) drop-shadow(0 0 16px rgba(212,175,79,.35))}.home-screen{display:flex;flex-direction:column;gap:32px;padding:12px 4px 40px}.home-stats{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:10px 4px 14px;border-bottom:1px solid rgba(212,175,79,.14)}.stats-inline{display:flex;align-items:baseline;flex-wrap:wrap;gap:10px 14px;font-family:Cinzel,serif;font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;color:#dcdceb8c}.stat-inline b{font-family:Bebas Neue,Inter,sans-serif;font-weight:400;font-size:1.35rem;letter-spacing:.03em;margin-right:6px;background:linear-gradient(135deg,var(--accent-soft) 0%,var(--accent) 55%,#b8913d 100%);-webkit-background-clip:text;background-clip:text;color:transparent}.stats-sep{color:#d4af4f59;font-size:1rem}.right-panel-toggle.stats-hub-cta{position:static;top:auto;right:auto;padding:10px 22px 10px 16px;font-size:.95rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;gap:10px;white-space:nowrap;box-shadow:0 6px 20px #d4af4f40,0 0 22px #d4af4f2e}.right-panel-toggle.stats-hub-cta:hover{box-shadow:0 10px 28px #d4af4f66,0 0 32px #d4af4f4d}.right-panel-toggle.stats-hub-cta .right-panel-toggle-icon{width:26px;height:26px;font-size:1.1rem}.home-hero{position:relative;border-radius:var(--r-lg);overflow:hidden;box-shadow:0 16px 40px #0006,0 0 32px #d4af4f14;border:1px solid rgba(212,175,79,.22)}.home-hero-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(ellipse at top right,rgba(212,175,79,.1),transparent 60%),linear-gradient(180deg,#0000001a,#0000008c);pointer-events:none}.home-hero-content{position:relative;display:grid;grid-template-columns:1.2fr 1fr;gap:24px;padding:20px 28px;align-items:center}.home-hero-header{display:flex;flex-direction:column;gap:6px}.home-hero-kicker{font-family:Cinzel,serif;font-size:.7rem;font-weight:500;letter-spacing:.38em;text-transform:uppercase;color:var(--accent);text-shadow:0 0 12px rgba(212,175,79,.4)}.home-hero-section-header{margin-bottom:10px}.home-hero-title{font-family:Playfair Display,serif;font-size:2.2rem;font-weight:800;line-height:1;margin:0;color:#f5f3ed;letter-spacing:-.02em}.home-hero-artist{font-family:Cormorant Garamond,serif;font-size:1.1rem;font-style:italic;color:#e6e1d2cc;margin:0}.home-hero-badges{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.hero-badge{padding:6px 12px;border-radius:999px;background:#0000004d;border:1px solid rgba(255,255,255,.15);color:#f0f0fad9;font-size:.78rem;font-weight:500;letter-spacing:.04em;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.hero-badge.accent{background:#d4af4f2e;border-color:#d4af4f80;color:#f0e3b8}.hero-badge.maurisson{background:#d4af4f40;border-color:#d4af4f99;color:#fff4d6}.home-hero-preview{display:flex;flex-direction:column;gap:8px}.home-hero-preview-label{font-family:Cinzel,serif;font-size:.7rem;letter-spacing:.28em;text-transform:uppercase;color:#dcdceb99}.home-hero-preview-skeleton{padding:24px;border-radius:var(--r-md);background:#0000004d;text-align:center;color:#dcdceb8c;font-style:italic}.home-hero-bars{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.home-hero-bar{display:grid;grid-template-columns:repeat(4,1fr);gap:4px;padding:6px;background:#00000061;border:1px solid rgba(255,255,255,.1);border-radius:var(--r-md);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.hero-beat{display:flex;align-items:center;justify-content:center;padding:5px 6px;border-radius:6px;background:#ffffff0a;color:#f0e3b8;font-family:JetBrains Mono,monospace;font-size:.9rem;font-weight:600;cursor:pointer;transition:background .12s,transform .08s,box-shadow .12s;min-height:26px}.hero-beat:hover:not(.empty){background:#d4af4f40;box-shadow:0 0 10px #d4af4f66;transform:translateY(-1px)}.hero-beat.empty{color:#dcdceb40;cursor:default}.home-hero-cta{grid-column:1 / -1;display:flex;gap:10px;margin-top:8px}.home-hero-spotify-row{grid-column:1 / -1;display:flex;justify-content:flex-end;margin-top:4px}.home-hero-spotify-row .spotify-cta{margin:0}.hero-btn-primary{padding:12px 24px;border-radius:var(--r-md);border:1px solid rgba(212,175,79,.55);background:linear-gradient(135deg,var(--accent) 0%,#b8913d 100%);color:#1a1410;font-family:Cinzel,serif;font-size:.95rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;cursor:pointer;box-shadow:0 4px 16px #d4af4f59,0 0 24px #d4af4f33;transition:transform .1s,box-shadow .2s}.hero-btn-primary:hover{transform:translateY(-1px);box-shadow:0 6px 20px #d4af4f80,0 0 32px #d4af4f59}.hero-btn-ghost{padding:12px 20px;border-radius:var(--r-md);border:1px solid rgba(255,255,255,.2);background:#0000004d;color:#f0e3b8;font-family:Cinzel,serif;font-size:.85rem;letter-spacing:.12em;text-transform:uppercase;cursor:pointer;transition:background .15s,border-color .15s}.hero-btn-ghost:hover{background:#d4af4f1f;border-color:#d4af4f66}.home-section{display:flex;flex-direction:column;gap:14px}.home-section-header{display:flex;justify-content:space-between;align-items:baseline;padding:0 4px 8px;border-bottom:1px solid rgba(212,175,79,.18)}.home-section-header h3{margin:0;font-family:Cinzel,serif;font-size:1.4rem;font-weight:700;letter-spacing:.1em;color:var(--accent)}.home-section-count{font-family:Cinzel,serif;font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;color:#dcdceb80}.home-wall{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:14px}.wall-card{position:relative;display:flex;flex-direction:column;justify-content:space-between;aspect-ratio:1 / 1;padding:14px;border-radius:var(--r-md);border:1px solid rgba(255,255,255,.08);color:#f5f3ed;text-align:left;cursor:pointer;overflow:hidden;transition:transform .2s cubic-bezier(.4,0,.2,1),box-shadow .2s,border-color .2s}.wall-card:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(180deg,#0000 40%,#0009);pointer-events:none}.wall-card:hover{transform:translateY(-4px) scale(1.02);border-color:#d4af4f80;box-shadow:0 12px 28px #00000080,0 0 24px #d4af4f33}.wall-card-top{position:relative;z-index:1;display:flex;justify-content:space-between;gap:8px}.wall-card-key{font-family:Playfair Display,serif;font-size:2rem;font-weight:800;line-height:1;color:#f0e3b8;text-shadow:0 2px 8px rgba(0,0,0,.6)}.wall-card-capo{padding:2px 8px;background:#d4af4f40;border:1px solid rgba(212,175,79,.5);border-radius:999px;font-size:.7rem;font-weight:600;color:#fff4d6}.wall-card-bottom{position:relative;z-index:1;display:flex;flex-direction:column;gap:2px}.wall-card-bottom strong{font-family:Playfair Display,serif;font-size:1.05rem;font-weight:700;line-height:1.15;color:#f5f3ed;text-shadow:0 1px 4px rgba(0,0,0,.8)}.wall-card-bottom span{font-size:.78rem;color:#e6e1d2cc;font-style:italic}.wall-card-bottom small{font-size:.65rem;letter-spacing:.15em;text-transform:uppercase;color:#e6e1d28c;margin-top:2px}.home-dual{display:grid;grid-template-columns:1fr 1.4fr;gap:20px}.midi-station{margin:16px 0 22px;padding:22px 26px 26px;border-radius:18px;background:radial-gradient(ellipse at top right,rgba(212,175,79,.08),transparent 60%),linear-gradient(145deg,#1e2a3a,#141c27);border:1px solid rgba(212,175,79,.25);box-shadow:0 8px 38px #00000073,inset 0 1px #ffffff0a}.midi-station-head{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:14px;flex-wrap:wrap}.midi-station-title{display:flex;flex-direction:column;gap:2px}.midi-station-kicker{font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;color:var(--accent, #d4af4f);opacity:.85}.midi-station-title h2{margin:0;font-family:Cinzel,serif;font-size:1.25rem;font-weight:500;color:#f2e9d4}.midi-tabs{display:flex;gap:6px}.midi-tab{background:#ffffff0a;color:#c8d0dc;border:1px solid rgba(255,255,255,.08);border-radius:8px;padding:7px 14px;font-size:.88rem;cursor:pointer;transition:all .15s}.midi-tab:hover{background:#ffffff14}.midi-tab.active{background:#d4af4f2e;color:#f2e9d4;border-color:#d4af4f73}.midi-tab-panel{display:flex;flex-direction:column;gap:12px}.midi-row{display:flex;gap:14px;align-items:center;flex-wrap:wrap}.midi-btn{background:#ffffff0f;color:#e8edf5;border:1px solid rgba(255,255,255,.12);border-radius:8px;padding:8px 16px;font-size:.9rem;cursor:pointer;transition:all .15s;display:inline-flex;align-items:center;gap:6px}.midi-btn:hover:not(:disabled){background:#ffffff1f}.midi-btn:disabled{opacity:.5;cursor:wait}.midi-btn.primary{background:linear-gradient(135deg,#d4af4f,#b88f2f);color:#1a1a1a;border-color:#d4af4f99;font-weight:600}.midi-btn.primary:hover:not(:disabled){background:linear-gradient(135deg,#e6c060,#c99f3f)}.midi-toggle{display:inline-flex;gap:6px;align-items:center;font-size:.85rem;color:#b8c0cc;cursor:pointer}.midi-badge-ok{color:#7fd890;font-size:.88rem;font-weight:500}.midi-err{color:#e8837f;font-size:.88rem;margin:0}.midi-info,.midi-hint{color:#8a93a0;font-size:.85rem;margin:0;font-style:italic}.midi-file{color:#b8c0cc;font-size:.85rem}.midi-speed{display:inline-flex;gap:8px;align-items:center;font-size:.82rem;color:#b8c0cc}.midi-speed input[type=range]{width:110px}.midi-time{font-family:ui-monospace,monospace;font-size:.82rem;color:#b8c0cc;margin-left:auto}.midi-progress{height:4px;background:#ffffff14;border-radius:2px;overflow:hidden}.midi-progress-fill{height:100%;background:linear-gradient(90deg,#d4af4f,#e6c060);transition:width .08s linear}.midi-keyboard{position:relative;height:110px;background:#0b1119;border-radius:8px;padding:8px;border:1px solid rgba(255,255,255,.06)}.midi-keyboard-blacks{position:absolute;top:8px;right:8px;bottom:8px;left:8px;pointer-events:none}.midi-key{position:relative;border-radius:0 0 4px 4px;transition:all .06s}.midi-key.white.active{background:linear-gradient(180deg,#d4af4f,#b88f2f);box-shadow:inset 0 -2px #0000004d,0 0 10px #d4af4f99}.midi-key.black{position:absolute;width:calc(100% / var(--white-count) * .6);height:60%;background:linear-gradient(180deg,#2a2a2a,#0f0f0f);border-radius:0 0 3px 3px;box-shadow:inset 0 -2px #ffffff14,0 2px 3px #00000080}.midi-key.black.active{background:linear-gradient(180deg,#7a6224,#4a3a14 55%,#1f1808);box-shadow:inset 0 1px #ffffff14,inset 0 -4px 6px #0009,0 0 10px #7a62248c}.midi-detection{display:flex;gap:14px;align-items:baseline;padding:10px 14px;background:#00000040;border-radius:8px;border:1px solid rgba(255,255,255,.05);flex-wrap:wrap}.midi-detection-label{font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:#8a93a0}.midi-detection-name{font-family:Cinzel,serif;font-size:1.6rem;color:var(--accent, #d4af4f);min-width:80px}.midi-detection-notes{color:#b8c0cc;font-family:ui-monospace,monospace;font-size:.88rem;opacity:.85}.midi-detection-degree{padding:3px 10px;border-radius:999px;background:#d4af4f24;border:1px solid rgba(212,175,79,.35);color:#f2e9d4;font-size:.78rem;letter-spacing:.04em}.midi-toolbar{display:flex;align-items:center;gap:14px;flex-wrap:wrap;padding:12px 14px;border-radius:12px;background:#00000047;border:1px solid rgba(255,255,255,.05)}.midi-btn.compact{padding:6px 12px;font-size:.82rem;gap:6px}.midi-btn.is-on{background:#d4af4f2e;border-color:#d4af4f73;color:#f2e9d4}.midi-btn.ghost{background:transparent;border-color:#ffffff1a;color:#8a93a0}.midi-instrument-picker{display:inline-grid;grid-template-columns:repeat(11,auto);gap:4px;padding:4px;border-radius:10px;background:#ffffff0a;border:1px solid rgba(255,255,255,.06)}.midi-instr-btn{position:relative;display:inline-flex;flex-direction:column;align-items:center;gap:1px;padding:6px 12px;min-width:62px;border:1px solid transparent;background:transparent;color:#c8d0dc;border-radius:7px;cursor:pointer;transition:all .15s}.midi-instr-btn:hover{background:#ffffff0f}.midi-instr-btn.is-active{background:linear-gradient(135deg,#d4af4f42,#d4af4f14);border-color:#d4af4f80;color:#f2e9d4;box-shadow:0 0 12px #d4af4f2e}.midi-instr-icon{font-size:1.05rem;line-height:1}.midi-instr-label{font-size:.72rem;letter-spacing:.04em}.midi-inst-wrap{position:relative;display:flex;flex-direction:column;gap:4px}.midi-all-inst-toggle{display:inline-flex;align-items:center;gap:6px;padding:5px 10px;background:#ffffff0a;border:1px solid rgba(255,255,255,.1);border-radius:var(--r-sm, 4px);color:#ffffffbf;font-size:.75rem;cursor:pointer;transition:background .15s,border-color .15s,color .15s;align-self:flex-start}.midi-all-inst-toggle:hover{background:#ffffff14;color:#fff}.midi-all-inst-toggle.is-open,.midi-all-inst-toggle.is-active{background:linear-gradient(135deg,#d4af4f38,#d4af4f0f);border-color:#d4af4f80;color:#f2e9d4}.midi-all-inst-toggle-icon{font-size:.9rem;opacity:.7}.midi-all-inst-toggle-arrow{font-size:.65rem;opacity:.5}.midi-all-inst-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:299}.midi-all-inst-panel{position:absolute;top:calc(100% + 6px);left:0;z-index:300;width:min(760px,calc(100vw - 40px));background:var(--bg-deep, #0a0a14);border:1px solid rgba(212,175,79,.28);border-radius:var(--r-md, 8px);box-shadow:0 12px 48px #000000a6;overflow:hidden}.midi-all-inst-header{display:flex;justify-content:space-between;align-items:center;padding:7px 12px;border-bottom:1px solid rgba(255,255,255,.07);font-size:.68rem;color:var(--accent, #d4af4f);text-transform:uppercase;letter-spacing:.06em}.midi-all-inst-scroll{max-height:420px;overflow-y:auto;padding:8px;display:grid;grid-template-columns:repeat(2,1fr);gap:6px}.midi-all-inst-scroll::-webkit-scrollbar{width:5px}.midi-all-inst-scroll::-webkit-scrollbar-track{background:transparent}.midi-all-inst-scroll::-webkit-scrollbar-thumb{background:#d4af4f40;border-radius:3px}.midi-all-inst-family{background:#ffffff08;border:1px solid rgba(255,255,255,.05);border-radius:4px;padding:5px 6px}.midi-all-inst-family--drums{grid-column:1 / -1;background:#d4af4f0a}.midi-all-inst-fam-name{font-size:.6rem;color:var(--accent, #d4af4f);text-transform:uppercase;letter-spacing:.07em;margin-bottom:4px;padding-bottom:3px;border-bottom:1px solid rgba(212,175,79,.18)}.midi-all-inst-fam-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:2px}.midi-all-inst-btn{display:flex;flex-direction:column;align-items:flex-start;padding:3px 5px;background:transparent;border:1px solid transparent;border-radius:2px;cursor:pointer;transition:background .1s,border-color .1s;text-align:left;min-width:0}.midi-all-inst-btn:hover{background:#d4af4f1a;border-color:#d4af4f40}.midi-all-inst-btn.is-active{background:#d4af4f2e;border-color:var(--accent, #d4af4f)}.midi-all-inst-num{font-size:.52rem;color:#ffffff47;line-height:1}.midi-all-inst-name{font-size:.6rem;color:#fffc;line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.midi-all-inst-btn.is-active .midi-all-inst-num{color:#d4af4f99}.midi-all-inst-btn.is-active .midi-all-inst-name{color:var(--accent, #d4af4f)}.midi-instr-spin{position:absolute;top:3px;right:3px;width:8px;height:8px;border:2px solid rgba(212,175,79,.35);border-top-color:var(--accent);border-radius:50%;animation:midi-spin .7s linear infinite}@keyframes midi-spin{to{transform:rotate(360deg)}}.midi-library{display:flex;gap:0;min-height:420px;max-height:640px;border-radius:12px;background:#00000038;border:1px solid rgba(255,255,255,.05);overflow:hidden;margin-bottom:14px}.midi-lib-side{display:flex;flex-direction:column;width:148px;flex-shrink:0;background:#00000026;border-right:1px solid rgba(255,255,255,.05);overflow-y:auto}.midi-lib-view-toggle{display:flex;gap:6px;padding:8px 10px;flex-direction:column;border-bottom:1px solid rgba(255,255,255,.05)}.midi-lib-view-btn{padding:6px 10px;font-size:12px;background:#ffffff0a;color:#aaa;border:1px solid rgba(255,255,255,.06);border-radius:8px;cursor:pointer;text-align:left}.midi-lib-view-btn:hover{color:#ccc;background:#ffffff12}.midi-lib-view-btn.is-active{background:#d4af4f1f;color:#d4af4f;border-color:#d4af4f59}.midi-lib-artist-picker{padding:8px 10px}.midi-lib-artist-select{width:100%;padding:6px 8px;font-size:12px;background:#00000059;color:#ccc;border:1px solid rgba(255,255,255,.08);border-radius:8px}.midi-lib-folders{display:flex;flex-direction:column;flex-shrink:0;border-right:1px solid rgba(255,255,255,.07);overflow-y:auto;padding:6px 4px;gap:2px;background:#00000026}.midi-lib-folder-btn{display:flex;align-items:center;gap:6px;padding:7px 8px;border-radius:8px;border:1px solid transparent;background:transparent;cursor:pointer;text-align:left;transition:all .12s;color:#8a9aaa;font-size:.75rem;min-width:0}.midi-lib-folder-btn:hover{background:#ffffff0d;color:#ccc}.midi-lib-folder-btn.is-active{background:#d4af4f1f;border-color:#d4af4f4d;color:var(--accent)}.midi-lib-folder-icon{font-size:.9rem;flex-shrink:0}.midi-lib-folder-label{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:500}.midi-lib-folder-count{font-size:.65rem;background:#ffffff14;border-radius:10px;padding:1px 5px;flex-shrink:0;color:#6a8090}.midi-lib-folder-btn.is-active .midi-lib-folder-count{background:#d4af4f2e;color:#c8a84a}.midi-lib-content{flex:1;display:flex;flex-direction:column;min-width:0;overflow:hidden}.midi-lib-content-head{display:flex;align-items:center;gap:8px;padding:10px 12px 8px;border-bottom:1px solid rgba(255,255,255,.06);flex-shrink:0}.midi-lib-search{flex:1;background:#ffffff0f;border:1px solid rgba(255,255,255,.1);border-radius:6px;padding:5px 10px;color:#ddd;font-size:.78rem;outline:none;transition:border-color .15s}.midi-lib-search:focus{border-color:#d4af4f66}.midi-lib-search::placeholder{color:#5a6a7a}.midi-lib-empty{padding:24px;text-align:center;color:#5a6a7a;font-size:.8rem}.midi-library-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:10px}.midi-library-title{font-size:.8rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--accent);flex-shrink:0}.midi-lib-filters{display:flex;gap:4px;flex-wrap:wrap}.midi-lib-tag-btn{padding:2px 9px;border-radius:20px;border:1px solid rgba(255,255,255,.12);background:transparent;color:#9aa;font-size:.72rem;cursor:pointer;transition:all .12s}.midi-lib-tag-btn:hover{border-color:#d4af4f66;color:#ddd}.midi-lib-tag-btn.is-active{background:#d4af4f2e;border-color:var(--accent);color:var(--accent)}.midi-lib-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:6px;padding:10px 12px;overflow-y:auto;flex:1 1 0;min-height:0;align-content:start}.midi-lib-card{display:flex;flex-direction:column;gap:3px;padding:8px 10px;border-radius:8px;border:1px solid rgba(255,255,255,.07);background:#ffffff08;text-align:left;cursor:pointer;transition:all .15s}.midi-lib-card:hover{background:#ffffff12;border-color:#d4af4f4d}.midi-lib-card.is-active{background:linear-gradient(135deg,#d4af4f33,#d4af4f0f);border-color:#d4af4f8c}.midi-lib-card.is-disabled{opacity:.5;cursor:wait}.midi-lib-card-title{font-size:.82rem;font-weight:600;color:#e8e0d0;line-height:1.2}.midi-lib-card-artist{font-size:.72rem;color:#8a9aaa}.midi-lib-card-tags{display:flex;gap:3px;flex-wrap:wrap;margin-top:2px}.midi-lib-badge{font-size:.62rem;padding:1px 5px;border-radius:10px;background:#ffffff12;color:#7a8a9a}.midi-lib-card.is-active .midi-lib-badge{background:#d4af4f26;color:#c8a84a}.midi-lib-actions{display:flex;align-items:center;gap:6px;margin-left:auto}.midi-lib-suspect-hint{font-size:.72rem;color:#e4b44a}.midi-lib-edit-btn{padding:2px 10px;border-radius:20px;border:1px solid rgba(255,255,255,.12);background:transparent;color:#9aa;font-size:.72rem;cursor:pointer;transition:all .12s}.midi-lib-edit-btn:hover{border-color:#d4af4f80;color:#ddd}.midi-lib-edit-btn.is-active{background:#d4af4f38;border-color:var(--accent);color:var(--accent)}.midi-lib-card{position:relative;padding:0;cursor:default}.midi-lib-card-main{display:flex;flex-direction:column;gap:3px;padding:8px 10px;width:100%;background:transparent;border:0;color:inherit;text-align:left;cursor:pointer;border-radius:8px}.midi-lib-card-main:disabled{cursor:wait}.midi-lib-card.is-suspect{border-color:#e4b44a59}.midi-lib-card.is-suspect:hover{border-color:#e4b44a99}.midi-lib-card.is-hidden-entry{opacity:.45}.midi-lib-warn{color:#e4b44a;margin-right:4px}.midi-lib-badge--warn{background:#e4b44a2e!important;color:#e4b44a!important}.midi-lib-badge--hidden{background:#b45a5a2e!important;color:#e08080!important}.midi-lib-card-hide{position:absolute;top:4px;right:4px;width:24px;height:24px;border-radius:6px;border:1px solid rgba(255,255,255,.12);background:#00000073;color:#e08080;font-size:.82rem;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0;transition:all .12s}.midi-lib-card-hide:hover{background:#b43c3c59;border-color:#e0808099;color:#ffb0b0}.midi-lib-card-hide.is-hidden{color:#9bd7a0}.midi-lib-card-hide.is-hidden:hover{background:#3c8c5040;border-color:#9bd7a080;color:#c8f0cd}.midi-metro{display:inline-flex;align-items:center;gap:8px;padding:4px 6px 4px 4px;border-radius:10px;background:#ffffff0a;border:1px solid rgba(255,255,255,.06)}.midi-metro input[type=range]{width:90px;accent-color:var(--accent)}.midi-metro-dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:#ffffff26;transition:background .1s,transform .08s}.midi-metro-dot.is-beat{background:var(--accent);transform:scale(1.6);box-shadow:0 0 10px #d4af4f99}.midi-metro-dot.sub{background:#d4af4f73}.midi-toggle{color:#b8c0cc}.midi-toggle.compact{font-size:.78rem}.midi-context{display:flex;align-items:center;gap:14px;flex-wrap:wrap;padding:10px 14px;border-radius:10px;background:#0000002e;border:1px solid rgba(255,255,255,.04)}.midi-select{background:#1a1a22;color:#e8edf5;border:1px solid rgba(255,255,255,.12);border-radius:7px;padding:5px 10px;font-size:.85rem;cursor:pointer}.midi-select:disabled{opacity:.45;cursor:not-allowed}.midi-context-degree{margin-left:auto;display:inline-flex;align-items:baseline;gap:8px;padding:4px 12px;border-radius:999px;background:#d4af4f14;border:1px solid rgba(212,175,79,.2)}.midi-context-degree strong{font-family:Cinzel,serif;font-size:1.1rem;color:var(--accent)}.midi-context-label{font-size:.7rem;text-transform:uppercase;letter-spacing:.14em;color:#8a93a0}.midi-context-hint{font-size:.78rem;color:#8a93a0;font-style:italic;letter-spacing:.01em}.midi-kbd-wrap{display:flex;flex-direction:column;gap:4px}.midi-kbd-strip{position:relative;height:6px;background:#ffffff0a;border-radius:3px;padding:0;border:none;cursor:crosshair;overflow:hidden;opacity:.5;transition:opacity .15s ease,height .15s ease}.midi-kbd-strip:hover{opacity:1;height:18px}.midi-kbd-strip-whites,.midi-kbd-strip-blacks{display:none}.midi-strip-key{position:relative;border-radius:0 0 2px 2px;transition:background .06s}.midi-strip-key.white{background:linear-gradient(180deg,#c8c2b0,#a8a290)}.midi-strip-key.black{position:absolute;width:calc(100% / var(--white-count) * .6);height:60%;background:linear-gradient(180deg,#2a2a2a,#0f0f0f);border-radius:0 0 2px 2px}.midi-strip-key.dim{opacity:.38}.midi-strip-key.tonic{box-shadow:inset 0 -3px 0 var(--accent)}.midi-strip-key.anticipated{background:#d4af4f61}.midi-strip-key.black.anticipated{background:#e6c06080}.midi-strip-key.active{background:linear-gradient(180deg,#e6c060,#b88f2f);box-shadow:0 0 6px #d4af4fb3}.midi-strip-key.black.active{background:linear-gradient(180deg,#7a6224,#4a3a14 55%,#1f1808)}.midi-kbd-strip-window{position:absolute;top:0;bottom:0;background:var(--accent);border-radius:2px;pointer-events:none;opacity:.75;transition:left .12s ease,width .12s ease}.midi-kbd-strip-legend{display:none}.midi-keyboard{position:relative;height:145px;width:100%;background:#0b1119;border-radius:10px;padding:10px;border:1px solid rgba(255,255,255,.06);box-shadow:inset 0 4px 12px #0006;-webkit-user-select:none;user-select:none}.midi-key.clickable{cursor:pointer}.midi-key.clickable:hover.white:not(.active){background:linear-gradient(180deg,#fffbef,#e9e2d0)}.midi-key.clickable:hover.black:not(.active){background:linear-gradient(180deg,#3a3a3a,#1a1a1a)}.midi-key.clickable:active.white{background:linear-gradient(180deg,#d4af4f,#b88f2f)!important}.midi-keyboard-whites{display:grid;grid-template-columns:repeat(var(--white-count),1fr);gap:2px;height:100%}.midi-keyboard-blacks{position:absolute;top:10px;right:10px;bottom:10px;left:10px;pointer-events:none}.midi-keyboard-blacks .midi-key.black{pointer-events:auto}.midi-key{position:relative;border-radius:0 0 5px 5px;transition:background .08s,box-shadow .08s,opacity .12s}.midi-key.white{background:linear-gradient(180deg,#f2eee2,#d9d2c0);box-shadow:inset 0 -2px #00000026;display:flex;align-items:flex-end;justify-content:center;padding-bottom:4px}.midi-key.white.active{background:linear-gradient(180deg,#d4af4f,#b88f2f);box-shadow:inset 0 -2px #0000004d,0 0 12px #d4af4fb3}.midi-key.white.dim{opacity:1}.midi-key.black{position:absolute;width:calc(100% / var(--white-count) * .6);height:62%;background:linear-gradient(180deg,#2a2a2a,#0f0f0f);border-radius:0 0 4px 4px;box-shadow:inset 0 -2px #ffffff14,0 3px 4px #00000080;display:flex;align-items:flex-end;justify-content:center;padding-bottom:4px}.midi-key.black.active{background:linear-gradient(180deg,#7a6224,#4a3a14 55%,#1f1808);box-shadow:inset 0 1px #ffffff14,inset 0 -4px 6px #0009,0 0 12px #7a622499}.midi-key.black.dim{opacity:1}.midi-key.white.in-scale{background:linear-gradient(180deg,var(--accent-soft) 0%,var(--accent) 55%,var(--accent-dim) 100%);box-shadow:inset 0 1px #ffffff47,inset 0 -4px 8px #00000038}.midi-key.black.in-scale{background:linear-gradient(180deg,#7a6224,#4a3a14 55%,#1f1808);box-shadow:inset 0 1px #ffffff14,inset 0 -4px 6px #0009}.midi-key-degree{position:absolute;bottom:6px;left:50%;transform:translate(-50%);font-family:Cinzel,serif;font-size:.78rem;color:#1a1608;letter-spacing:.02em;pointer-events:none;font-weight:600}.midi-key-degree.black{color:#f8e8b0;font-size:.68rem}.midi-key-oct{font-size:.62rem;color:#888;font-family:ui-monospace,monospace}.midi-key-badge{position:absolute;top:10px;left:50%;transform:translate(-50%);font-family:Cinzel,serif;font-size:.8rem;color:#1a1a1a;background:#fffc;padding:1px 6px;border-radius:4px;letter-spacing:.03em;pointer-events:none}.midi-key-badge.dark{background:var(--accent);color:#1a1a1a;top:6px;font-size:.72rem}.midi-key-dot{position:absolute;bottom:14px;left:50%;transform:translate(-50%);width:5px;height:5px;border-radius:50%;background:var(--accent);opacity:.6}.midi-zoom-ctrl{display:flex;gap:8px;align-items:center;font-size:.78rem;color:#8a93a0}.midi-zoom-hint{color:#6a7482;font-style:italic}.midi-cc-row{display:flex;gap:14px;align-items:center;flex-wrap:wrap;padding:8px 14px;border-radius:10px;background:#0000002e;border:1px solid rgba(255,255,255,.04)}.midi-cc{display:inline-flex;align-items:center;gap:8px;min-width:100px}.midi-cc-lbl{font-size:.7rem;text-transform:uppercase;letter-spacing:.14em;color:#8a93a0}.midi-cc-dot{width:12px;height:12px;border-radius:50%;background:#ffffff1a;border:1px solid rgba(255,255,255,.15);transition:background .1s,box-shadow .1s}.midi-cc.is-on .midi-cc-dot{background:var(--accent);box-shadow:0 0 10px #d4af4fb3;border-color:var(--accent)}.midi-cc-bar{width:80px;height:6px;background:#ffffff14;border-radius:3px;overflow:hidden}.midi-cc-bar-fill{height:100%;background:linear-gradient(90deg,var(--accent),#e6c060);transition:width .05s linear}.midi-cc-pitch{position:relative;width:80px;height:6px;background:#ffffff14;border-radius:3px;overflow:hidden}.midi-cc-pitch:before{content:"";position:absolute;top:0;bottom:0;left:50%;width:1px;background:#fff3}.midi-cc-pitch-cursor{position:absolute;top:-2px;width:10px;height:10px;background:var(--accent);border-radius:50%;transform:translate(-50%);transition:left .04s linear;box-shadow:0 0 8px #d4af4f99}.midi-cc-val{font-family:ui-monospace,monospace;font-size:.82rem;color:#c8d0dc}.midi-cc-val small{color:#6a7482;margin-left:4px}.midi-subtabs{display:flex;gap:4px;padding:4px;border-radius:10px;background:#00000040;border:1px solid rgba(255,255,255,.05);margin-top:4px}.midi-subtab{flex:1;padding:8px 14px;background:transparent;color:#8a93a0;border:1px solid transparent;border-radius:7px;font-size:.85rem;cursor:pointer;transition:all .12s}.midi-subtab:hover{background:#ffffff0a;color:#c8d0dc}.midi-subtab.is-active{background:linear-gradient(135deg,#d4af4f38,#d4af4f14);color:#f2e9d4;border-color:#d4af4f66;box-shadow:inset 0 -2px #d4af4f80}.midi-subpanel{padding:14px 16px;min-height:80px;border-radius:10px;background:#0003;border:1px solid rgba(255,255,255,.04)}.midi-practice{display:flex;flex-direction:column;gap:12px}.midi-practice-modes{display:flex;gap:6px}.midi-practice-target{padding:14px 18px;border-radius:10px;background:#d4af4f0a;border:1px solid rgba(212,175,79,.2);display:flex;align-items:baseline;gap:12px}.midi-practice-lbl{color:#8a93a0}.midi-practice-lbl.muted{color:#6a7482;font-style:italic}.midi-practice-name{font-family:Cinzel,serif;font-size:1.7rem;color:var(--accent)}.midi-practice-hidden{color:#a8b0bc;font-style:italic}.midi-practice-ctrls{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.midi-practice-score{margin-left:auto;font-size:.88rem;color:#b8c0cc}.midi-practice-score strong{color:var(--accent)}.midi-rec{display:flex;flex-direction:column;gap:18px}.midi-rec-section{display:flex;flex-direction:column;gap:8px;padding:12px 14px;border-radius:10px;background:#0000002e;border:1px solid rgba(255,255,255,.04)}.midi-rec-head{display:flex;justify-content:space-between;align-items:baseline}.midi-rec-title{font-size:.88rem;font-weight:500;color:#e8edf5;letter-spacing:.02em}.midi-rec-status{font-family:ui-monospace,monospace;font-size:.82rem;color:#b8c0cc}.midi-rec-ctrls{display:flex;gap:8px;flex-wrap:wrap}.midi-rec-layers{list-style:none;margin:6px 0 0;padding:0;display:flex;flex-direction:column;gap:4px}.midi-rec-layer{display:flex;align-items:center;gap:8px;padding:5px 10px;border-radius:7px;background:#ffffff08;border:1px solid rgba(255,255,255,.05);font-size:.84rem;color:#c8d0dc}.midi-rec-layer.is-on{background:#d4af4f14;border-color:#d4af4f40}.midi-rec-layer span:first-child{flex:1}.midi-key{display:flex;flex-direction:column;gap:10px}.midi-key-guess{display:flex;align-items:baseline;gap:14px;padding:12px 14px;border-radius:10px;background:#d4af4f0f;border:1px solid rgba(212,175,79,.2)}.midi-key-guess strong{font-family:Cinzel,serif;font-size:1.3rem;color:var(--accent)}.midi-key-guess small{color:#8a93a0}.midi-key-guess button{margin-left:auto}.midi-key-hist{list-style:none;margin:0;padding:8px 10px;display:flex;flex-wrap:wrap;gap:6px;min-height:40px;border-radius:8px;background:#0000002e}.midi-key-hist li{padding:3px 10px;border-radius:999px;background:#ffffff0d;font-family:ui-monospace,monospace;font-size:.82rem;color:#c8d0dc}.midi-key-hist li.muted{background:transparent;color:#6a7482;font-style:italic}.midi-diag{display:flex;flex-direction:column;gap:10px}.midi-diag-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:10px 12px;border-radius:8px;background:#0003;border:1px solid rgba(255,255,255,.04)}.midi-diag-row strong{font-family:Cinzel,serif;font-size:1.05rem;color:var(--accent);min-width:50px}.midi-fall-wrap{position:relative;display:flex;flex-direction:column}.midi-fall{position:relative;height:110px;background:linear-gradient(180deg,transparent 0%,rgba(212,175,79,.04) 100%);border-radius:10px 10px 0 0;border:1px solid rgba(255,255,255,.04);border-bottom:none;overflow:hidden}.midi-viewmode-switch{display:inline-flex;align-items:center;gap:4px;padding:4px;background:#ffffff0a;border-radius:8px;margin:6px 0 8px}.midi-sheet-opt{display:inline-flex;align-items:center;gap:5px;padding:0 10px 0 8px;color:var(--muted, #8a93a0);font-size:.82rem;cursor:pointer;-webkit-user-select:none;user-select:none}.midi-sheet-opt input{accent-color:var(--accent, #d4af4f);cursor:pointer}.midi-viewmode-tab{padding:6px 14px;background:transparent;color:var(--muted, #8a93a0);border:none;border-radius:6px;font-size:.88rem;font-weight:600;cursor:pointer;transition:background .15s,color .15s}.midi-viewmode-tab:hover{color:var(--text)}.midi-viewmode-tab.active{background:linear-gradient(135deg,var(--accent) 0%,#b88f2f 100%);color:#1a1410;box-shadow:0 2px 8px #d4af4f4d}.midi-sheet-wrap{position:relative;background:#0b1119;border:1px solid rgba(255,255,255,.06);border-radius:10px;overflow:hidden;margin-top:6px}.midi-sheet-sig-fixed{position:absolute;top:0;left:0;z-index:3;background:linear-gradient(90deg,#0b1119,#0b1119 85%,#0b111900);padding-right:10px;pointer-events:none}.midi-sheet-scroll{overflow:hidden;padding-left:104px}.midi-sheet-slider{will-change:transform;transform:translateZ(0);backface-visibility:hidden}.midi-sheet-playhead{position:absolute;top:16px;bottom:16px;width:2px;background:linear-gradient(180deg,transparent 0%,rgba(212,175,79,.85) 20%,rgba(212,175,79,.85) 80%,transparent 100%);pointer-events:none;z-index:2;box-shadow:0 0 8px #d4af4f66}.midi-sheet-chord{position:absolute;transform:translate(-50%,-50%);font-family:Georgia,serif;font-size:1.25rem;font-weight:700;color:#f0d488;background:#0b1119eb;border:1px solid rgba(240,212,136,.35);border-radius:6px;padding:2px 10px;letter-spacing:.5px;text-shadow:0 1px 2px rgba(0,0,0,.6);pointer-events:none;z-index:3;white-space:nowrap}.midi-sheet-trackname{position:absolute;top:6px;right:10px;max-width:60%;font-size:.74rem;color:var(--muted);z-index:4;background:#0b1119d9;padding:3px 8px;border-radius:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.midi-sheet-empty{padding:28px;text-align:center;color:var(--muted);font-style:italic}.midi-fall-note{position:absolute;width:.9%;min-height:4px;border-radius:3px;background:linear-gradient(180deg,#d4af4f66,#d4af4fe6);box-shadow:0 0 6px #d4af4f66;transform:translate(-50%);will-change:bottom}.midi-fall-note.black{background:linear-gradient(180deg,#a88cd259,#a88cd2d9);box-shadow:0 0 6px #a88cd266}.midi-fall-note.waiting{background:linear-gradient(180deg,#ff787880,#ff5050f2);box-shadow:0 0 10px #ff5050b3;animation:midi-fall-pulse .9s ease-in-out infinite}@keyframes midi-fall-pulse{0%,to{opacity:1}50%{opacity:.55}}.midi-fall-note-label{position:absolute;bottom:2px;left:50%;transform:translate(-50%);font-size:.58rem;font-weight:700;color:#1a1a1a;background:#ffffffd9;padding:1px 3px;border-radius:3px;white-space:nowrap;pointer-events:none}.midi-info-strip{display:inline-flex;gap:14px;align-items:center;flex-wrap:wrap;font-size:.82rem;color:var(--muted, #8a93a0);padding:4px 10px;border-radius:6px;background:#ffffff08;border:1px solid rgba(255,255,255,.05)}.midi-info-strip strong{color:#e8e8e8;font-weight:600}.midi-resume{display:flex;align-items:center;gap:10px;padding:8px 12px;background:#d4af4f14;border:1px solid rgba(212,175,79,.25);border-radius:8px;font-size:.88rem;color:#e8dcff}.midi-transport{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.midi-progress.clickable{cursor:pointer;position:relative;min-height:14px}.midi-progress.clickable:hover{background:#ffffff14}.midi-progress-marker{position:absolute;top:-2px;width:2px;height:calc(100% + 4px);transform:translate(-1px);pointer-events:none;z-index:2}.midi-progress-marker.a{background:#7cd1a0;box-shadow:0 0 6px #7cd1a099}.midi-progress-marker.b{background:#e08a4a;box-shadow:0 0 6px #e08a4a99}.midi-progress-loopband{position:absolute;top:0;height:100%;background:#d4af4f26;border-top:1px solid rgba(212,175,79,.35);border-bottom:1px solid rgba(212,175,79,.35);pointer-events:none;z-index:1}.midi-options-row{display:flex;flex-wrap:wrap;gap:10px 16px;padding:10px 12px;background:#ffffff05;border:1px solid rgba(255,255,255,.05);border-radius:8px;margin:8px 0}.midi-opt-group{display:flex;align-items:center;gap:6px;padding:2px 8px 2px 0;border-right:1px solid rgba(255,255,255,.06)}.midi-opt-group:last-child{border-right:none}.midi-opt-label{font-size:.72rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted, #8a93a0);font-weight:600;margin-right:2px}.midi-opt-val{min-width:28px;text-align:center;font-variant-numeric:tabular-nums;font-weight:600;color:#e8e8e8}.midi-tracks{margin-top:10px;padding:10px 12px;background:#ffffff05;border:1px solid rgba(255,255,255,.05);border-radius:8px}.midi-tracks-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px;font-size:.78rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted, #8a93a0);font-weight:600}.midi-tracks-list{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:1fr 1fr;gap:4px 10px}@media (max-width: 900px){.midi-tracks-list{grid-template-columns:1fr}}.midi-track-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto auto auto minmax(40px,1fr) auto;align-items:center;gap:6px;padding:5px 7px;min-width:0;background:#ffffff05;border:1px solid rgba(255,255,255,.04);border-radius:6px;font-size:.85rem;transition:background .15s,opacity .15s,border-color .15s}.midi-track-row.muted{opacity:.45}.midi-track-row.solo{border-color:#d4af4f59;background:#d4af4f0d}.midi-track-row.hidden .midi-track-name{color:#6a6a6a;font-style:italic}.midi-track-row.hidden{background:#ffffff03}.midi-track-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#e8e8e8;font-weight:500}.midi-track-meta{font-size:.72rem;color:var(--muted, #8a93a0);font-variant-numeric:tabular-nums;min-width:40px;text-align:right}.midi-track-btn{width:26px;height:26px;border-radius:4px;border:1px solid rgba(255,255,255,.08);background:#ffffff0a;color:#e8e8e8;font-size:.75rem;font-weight:700;cursor:pointer;transition:background .15s,border-color .15s,color .15s}.midi-track-btn:hover{background:#ffffff1f}.midi-track-btn.mute.is-on{background:#c04848;border-color:#c04848;color:#fff}.midi-track-btn.solo.is-on{background:var(--accent, #d4af4f);border-color:var(--accent, #d4af4f);color:#1a1a1a}.midi-track-btn.eye{font-size:.95rem;line-height:1;color:#7a7a7a}.midi-track-btn.eye.is-on{color:var(--accent, #d4af4f);background:#d4af4f1f;border-color:#d4af4f59;box-shadow:inset 0 0 0 1px #d4af4f26}.midi-track-vol{width:100%;max-width:120px;accent-color:var(--accent, #d4af4f)}.midi-select.compact{padding:3px 6px;font-size:.78rem;min-width:120px}.midi-wait-hint{margin:8px 0 0;padding:8px 12px;background:#ff787814;border:1px solid rgba(255,120,120,.3);border-radius:6px;color:#ffb4b4;font-size:.88rem;text-align:center}.home-chord-day{display:flex;flex-direction:column;align-items:stretch;gap:5px;padding:9px 12px 10px;border-radius:var(--r-lg);background:linear-gradient(135deg,#443a5c59,#1f1a2a99);border:1px solid rgba(168,140,210,.2)}.chord-day-reroll{background:#a88cd21f;border:1px solid rgba(168,140,210,.3);color:#e8dcff;border-radius:999px;width:32px;height:32px;font-size:1rem;cursor:pointer;transition:background .15s,transform .1s}.chord-day-reroll:hover{background:#a88cd247;transform:rotate(30deg)}.chord-day-name{font-family:Playfair Display,serif;font-size:1.45rem;font-weight:800;letter-spacing:-.02em;color:#e8dcff;text-shadow:0 0 20px rgba(168,140,210,.5);text-align:center;margin:1px 0 2px}.chord-day-name--clickable{cursor:pointer;transition:color .15s,text-shadow .15s,transform .15s}.chord-day-name--clickable:hover{color:#fff;text-shadow:0 0 32px rgba(168,140,210,.9);transform:scale(1.06)}.home-chord-day .piano.mini{height:112px;max-width:340px;margin:0 auto}.home-chord-day .piano.mini .piano-key-label{display:block;font-size:.58rem;font-weight:600;pointer-events:none}.home-chord-day .piano.mini .piano-key.black .piano-key-label{font-size:.5rem}.home-chord-day .piano.mini .piano-key.white:not(.active) .piano-key-label,.home-chord-day .piano.mini .piano-key.black:not(.active) .piano-key-label{visibility:hidden}.chord-day-notes{display:flex;justify-content:center;gap:6px;flex-wrap:wrap}.home-chord-day .chord-note-pill{padding:3px 8px;border-radius:999px;background:#a88cd226;border:1px solid rgba(168,140,210,.3);color:#e8dcff;font-family:JetBrains Mono,monospace;font-size:.72rem;font-weight:600}.home-chord-day .chord-note-pill.is-root{background:#d4af4f33;border-color:#d4af4f80;color:#f0e3b8}.home-quote{display:flex;flex-direction:column;justify-content:center;gap:14px;padding:22px 28px;border-radius:var(--r-lg);background:linear-gradient(135deg,#3a4a5c4d,#1a1f2a8c);border:1px solid rgba(140,180,220,.18)}.home-quote blockquote{margin:0;font-family:Cormorant Garamond,Playfair Display,serif;font-size:2.2rem;font-style:italic;font-weight:500;line-height:1.3;color:#e6e1d2;text-align:center}.home-quote cite{display:block;margin-top:2px;font-family:Cinzel,serif;font-style:normal;font-size:.95rem;letter-spacing:.28em;text-transform:uppercase;color:var(--accent);align-self:center;text-align:center}.home-scale{padding:14px 10px 16px;border-radius:var(--r-lg, 18px);background:linear-gradient(180deg,#ffffff08,#ffffff03);border:1px solid rgba(212,175,79,.18);box-shadow:0 0 24px #d4af4f0f inset}.home-scale .scale-piano,.home-scale .scale-keyboard-card{width:100%}.home-ticker{overflow:hidden;border-top:1px solid rgba(212,175,79,.15);border-bottom:1px solid rgba(212,175,79,.15);padding:12px 0;position:relative;mask-image:linear-gradient(90deg,transparent,black 8%,black 92%,transparent);-webkit-mask-image:linear-gradient(90deg,transparent,black 8%,black 92%,transparent)}.home-ticker-track{display:flex;gap:18px;width:max-content;animation:ticker-scroll 600s linear infinite}.home-ticker:hover .home-ticker-track{animation-play-state:paused}@keyframes ticker-scroll{0%{transform:translate(0)}to{transform:translate(-50%)}}.ticker-item{display:inline-flex;align-items:baseline;gap:10px;padding:6px 14px;border-radius:999px;background:#ffffff0a;border:1px solid rgba(212,175,79,.15);cursor:pointer;transition:background .15s,border-color .15s;white-space:nowrap}.ticker-item:hover{background:#d4af4f1f;border-color:#d4af4f66}.ticker-title{font-family:Playfair Display,serif;font-size:.95rem;font-weight:700;color:#f5f3ed}.ticker-artist{font-size:.78rem;font-style:italic;color:#dcdceba6}.ticker-key{font-family:Cinzel,serif;font-size:.7rem;letter-spacing:.15em;color:var(--accent)}@media (max-width: 1100px){.home-stats{flex-direction:column;align-items:stretch;gap:12px}.stats-inline{justify-content:center}.stats-spotify-cta{align-self:center}.home-hero-content{grid-template-columns:1fr}.home-hero-title{font-size:2.2rem}.home-dual{grid-template-columns:1fr}}@media (max-width: 1280px){.meta-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.harmo-diff-green{--harmo-tone: #8be2a8;--harmo-tone-bg: rgba(72,187,120,.18);--harmo-tone-br: rgba(72,187,120,.45)}.harmo-diff-blue{--harmo-tone: #8ebbf0;--harmo-tone-bg: rgba(74,144,226,.18);--harmo-tone-br: rgba(74,144,226,.45)}.harmo-diff-purple{--harmo-tone: #c3a3ef;--harmo-tone-bg: rgba(156,108,224,.18);--harmo-tone-br: rgba(156,108,224,.45)}.harmo-diff-amber{--harmo-tone: var(--accent);--harmo-tone-bg: rgba(212,175,79,.18);--harmo-tone-br: rgba(212,175,79,.45)}.harmo-diff-grey{--harmo-tone: #b8b8c2;--harmo-tone-bg: rgba(160,160,170,.15);--harmo-tone-br: rgba(160,160,170,.35)}.badge.harmo-diff-green,.badge.harmo-diff-blue,.badge.harmo-diff-purple,.badge.harmo-diff-amber,.badge.harmo-diff-grey{background:var(--harmo-tone-bg);color:var(--harmo-tone);border-color:var(--harmo-tone-br)}.view-mode-btn.harmonica-mode.is-active{background:linear-gradient(180deg,#d4af4f38,#d4af4f14);border-color:var(--accent);color:var(--accent);box-shadow:var(--shadow-accent)}.view-mode-btn.harmonica-mode.is-incompatible{opacity:.55;font-style:italic}.view-mode-btn.harmonica-mode.is-incompatible:hover{opacity:.85}.view-mode-btn.harmonica-mode.is-incompatible.is-active{opacity:1;font-style:normal}.harmonica-panel{margin-top:12px;padding:22px 24px 20px;background:linear-gradient(180deg,#1b1f2b,#141823);border:1px solid var(--border-strong);border-radius:14px;box-shadow:0 6px 18px #00000059}.harmo-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px;padding-bottom:14px;border-bottom:1px solid rgba(255,255,255,.08)}.harmo-header-main{display:flex;align-items:center;gap:14px}.harmo-glyph{font-size:38px;line-height:1;color:var(--accent);text-shadow:0 2px 10px rgba(212,175,79,.35)}.harmo-header h4{margin:0;font-size:1.25rem;letter-spacing:.02em;color:var(--accent)}.harmo-subtitle{margin:4px 0 0;font-size:.85rem;color:#b8b8c2}.harmo-subtitle strong{color:#eaeaef}.harmo-best-label,.harmo-alternatives-label{text-transform:uppercase;font-size:.72rem;letter-spacing:.15em;color:#8a8a95;margin-bottom:10px;font-weight:600}.harmo-best{margin-bottom:20px}.harmo-alternatives-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:12px}.harmo-card{position:relative;padding:14px 16px;background:#ffffff05;border:1px solid rgba(255,255,255,.08);border-radius:10px;display:flex;flex-direction:column;gap:10px;transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease}.harmo-card:hover{transform:translateY(-2px);box-shadow:0 6px 18px #0006}.harmo-card.is-featured{padding:18px 20px;background:linear-gradient(135deg,#d4af4f1f,#d4af4f08);border-color:#d4af4f73;box-shadow:0 4px 14px #d4af4f26}.harmo-card.tone-green{border-left:3px solid rgba(72,187,120,.8)}.harmo-card.tone-blue{border-left:3px solid rgba(74,144,226,.8)}.harmo-card.tone-purple{border-left:3px solid rgba(156,108,224,.8)}.harmo-card.tone-amber{border-left:3px solid rgba(212,175,79,.8)}.harmo-card.tone-grey{border-left:3px solid rgba(160,160,170,.6)}.harmo-card-top{display:flex;align-items:baseline;justify-content:space-between}.harmo-harp-label{font-size:.7rem;text-transform:uppercase;letter-spacing:.12em;color:#8a8a95}.harmo-harp-key{font-size:1.8rem;font-weight:700;color:var(--accent);line-height:1}.harmo-card.is-featured .harmo-harp-key{font-size:2.4rem}.harmo-card-body{display:flex;flex-direction:column;gap:2px}.harmo-position{font-size:.95rem;font-weight:600;color:#eaeaef}.harmo-mode{font-size:.8rem;color:#9a9aa5;font-style:italic}.harmo-card-foot{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap;padding-top:8px;border-top:1px dashed rgba(255,255,255,.06)}.harmo-difficulty{font-size:.7rem;text-transform:uppercase;letter-spacing:.1em;font-weight:600;padding:3px 8px;border-radius:4px}.harmo-difficulty.tone-green{background:#48bb782e;color:#8be2a8}.harmo-difficulty.tone-blue{background:#4a90e22e;color:#8ebbf0}.harmo-difficulty.tone-purple{background:#9c6ce02e;color:#c3a3ef}.harmo-difficulty.tone-amber{background:#d4af4f2e;color:var(--accent)}.harmo-difficulty.tone-grey{background:#a0a0aa26;color:#b8b8c2}.harmo-style{font-size:.75rem;color:#8a8a95;text-align:right;flex:1;min-width:0}.harmo-empty{padding:24px;text-align:center;color:#b8b8c2}.harmo-empty p{margin:0 0 8px}.harmo-empty .harmo-hint{margin-top:12px;font-size:.85rem;color:#8a8a95;font-style:italic}.harmo-legend{margin-top:18px;padding-top:14px;border-top:1px solid rgba(255,255,255,.06);display:flex;flex-wrap:wrap;gap:16px;font-size:.78rem;color:#8a8a95}.harmo-legend-item{display:inline-flex;align-items:center;gap:6px}.harmo-legend-item .dot{width:10px;height:10px;border-radius:50%;display:inline-block}.harmo-legend-item .dot.tone-green{background:#48bb78b3}.harmo-legend-item .dot.tone-blue{background:#4a90e2b3}.harmo-legend-item .dot.tone-purple{background:#9c6ce0b3}.harmo-legend-item .dot.tone-amber{background:#d4af4fcc}.harmo-legend-sep{color:#4a4a55;padding:0 4px}.harmo-legend-item .degree-dot{width:12px;height:12px;border-radius:3px;display:inline-block}.harmo-legend-item .degree-dot.tone-gold{background:#d4af4fd9;box-shadow:0 0 6px #d4af4f8c}.harmo-legend-item .degree-dot.tone-blue-deg{background:#4a90e2d9;box-shadow:0 0 6px #4a90e273}.harmo-legend-item .degree-dot.tone-red{background:#e65a5ad9;box-shadow:0 0 6px #e65a5a73}.harmo-selector{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:18px;padding:10px 12px;background:#00000040;border:1px solid rgba(255,255,255,.06);border-radius:10px}.harmo-selector-btn{position:relative;display:inline-flex;flex-direction:column;align-items:flex-start;gap:2px;padding:8px 14px 8px 12px;background:#ffffff08;color:#d4d4dc;border:1px solid rgba(255,255,255,.08);border-left-width:3px;border-radius:6px;cursor:pointer;font-family:inherit;transition:background .15s ease,border-color .15s ease,transform .15s ease}.harmo-selector-btn:hover{background:#ffffff12;transform:translateY(-1px)}.harmo-selector-btn.is-active{background:#d4af4f1f;border-color:#d4af4f8c;color:#eaeaef;box-shadow:inset 0 0 0 1px #d4af4f4d}.harmo-selector-btn.tone-green{border-left-color:#48bb78cc}.harmo-selector-btn.tone-blue{border-left-color:#4a90e2cc}.harmo-selector-btn.tone-purple{border-left-color:#9c6ce0cc}.harmo-selector-btn.tone-amber{border-left-color:#d4af4fcc}.selector-harp{font-weight:700;font-size:.9rem;color:var(--accent)}.selector-pos{font-size:.72rem;color:#9a9aa5}.selector-best-tag{position:absolute;top:-7px;right:-7px;font-size:.58rem;background:var(--accent);color:#121620;padding:2px 6px;border-radius:10px;font-weight:700;letter-spacing:.05em;box-shadow:0 2px 6px #d4af4f66}.harmo-featured-card{margin-bottom:18px}.harp-layout{margin:18px 0 12px;padding:16px;background:#00000040;border-radius:10px;border:1px solid rgba(255,255,255,.06)}.harp-layout-title{font-size:.78rem;text-transform:uppercase;letter-spacing:.12em;color:#8a8a95;margin-bottom:12px;font-weight:600}.harp-layout-table{width:100%;border-collapse:separate;border-spacing:3px;font-variant-numeric:tabular-nums}.harp-row-label{text-align:right;padding:4px 10px 4px 0;font-size:.72rem;text-transform:uppercase;letter-spacing:.1em;color:#8a8a95;font-weight:600;white-space:nowrap;width:1%}.harp-cell{text-align:center;padding:8px 4px;background:#ffffff0a;border:1px solid rgba(255,255,255,.08);border-radius:4px;font-size:.85rem;color:#c8c8d2;min-width:38px}.harp-cell-hole{background:transparent;border-color:transparent;color:#6a6a75;font-size:.75rem;padding:2px}.harp-row-draw .harp-cell:not(.role-I):not(.role-IV):not(.role-V){background:#ffffff06}.harp-cell.role-I{background:#d4af4f38;border-color:#d4af4fb3;color:var(--accent);font-weight:700;box-shadow:0 0 8px #d4af4f59}.harp-cell.role-IV{background:#4a90e233;border-color:#4a90e2a6;color:#a9caf0;font-weight:600}.harp-cell.role-V{background:#e65a5a33;border-color:#e65a5aa6;color:#f0a9a9;font-weight:600}.harp-degrees{display:flex;flex-direction:column;gap:8px;margin-top:16px}.degree-row{display:flex;align-items:center;gap:12px;padding:8px 12px;background:#ffffff05;border-radius:6px;border-left:3px solid;flex-wrap:wrap}.degree-row.tone-gold{border-left-color:#d4af4fcc}.degree-row.tone-blue{border-left-color:#4a90e2cc}.degree-row.tone-red{border-left-color:#e65a5acc}.degree-symbol{font-weight:700;font-size:1.05rem;min-width:26px;text-align:center}.degree-row.tone-gold .degree-symbol{color:var(--accent)}.degree-row.tone-blue .degree-symbol{color:#8ebbf0}.degree-row.tone-red .degree-symbol{color:#f0a9a9}.degree-label{font-weight:600;color:#eaeaef;min-width:42px}.degree-holes{display:flex;flex-wrap:wrap;gap:8px;flex:1}.degree-chip{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;background:#ffffff0a;border:1px solid rgba(255,255,255,.07);border-radius:4px;font-size:.82rem;color:#c8c8d2}.degree-chip-dir{font-weight:600;color:#eaeaef;font-size:.78rem}.degree-chip-holes{color:#a8a8b2}.degree-chip-chord{color:var(--accent);font-weight:600}.degree-chip-missing{background:#e65a5a1a;border-color:#e65a5a4d;color:#d4a0a0;font-style:italic}.harmo-header{position:relative}.harp-settings{position:relative;flex-shrink:0}.harp-settings-btn{width:34px;height:34px;border-radius:50%;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);color:#b8b8c2;cursor:pointer;font-size:1rem;display:flex;align-items:center;justify-content:center;transition:background .15s ease,color .15s ease}.harp-settings-btn:hover{background:#d4af4f26;color:var(--accent)}.harp-settings-popover{position:absolute;top:calc(100% + 8px);right:0;z-index:20;width:260px;background:#1a1e2a;border:1px solid var(--border-strong);border-radius:10px;padding:14px;box-shadow:0 10px 30px #00000080}.harp-settings-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.harp-settings-title{font-weight:700;color:var(--accent);font-size:.95rem}.harp-settings-reset{background:transparent;border:1px solid rgba(255,255,255,.1);color:#b8b8c2;padding:3px 10px;border-radius:4px;font-size:.72rem;cursor:pointer}.harp-settings-reset:hover{border-color:var(--accent);color:var(--accent)}.harp-settings-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}.harp-check{display:flex;align-items:center;justify-content:center;gap:4px;padding:6px 4px;background:#ffffff08;border:1px solid rgba(255,255,255,.08);border-radius:5px;cursor:pointer;font-size:.8rem;color:#c8c8d2;transition:background .15s ease,border-color .15s ease,color .15s ease}.harp-check:hover{background:#ffffff0f}.harp-check.is-checked{background:#d4af4f2e;border-color:#d4af4f80;color:var(--accent);font-weight:600}.harp-check input{position:absolute;opacity:0;pointer-events:none}.harp-settings-hint{margin:12px 0 0;font-size:.72rem;color:#8a8a95;line-height:1.4}.harmo-transpose-tag{display:inline-block;margin-left:8px;padding:2px 8px;background:#d4af4f26;color:var(--accent);border-radius:999px;font-size:.72rem;font-weight:600;letter-spacing:.02em}.harmo-teaching{margin:0 0 18px;padding:16px 18px;background:#d4af4f0a;border-left:3px solid rgba(212,175,79,.5);border-radius:0 10px 10px 0}.harmo-teaching-top{margin-bottom:8px}.harmo-teaching h5{margin:0;font-size:1rem;color:var(--accent);letter-spacing:.01em}.harmo-teaching-tagline{display:block;margin-top:4px;font-size:.88rem;font-style:italic;color:#c8c8d2}.harmo-teaching-body{margin:8px 0;font-size:.88rem;color:#b8b8c2;line-height:1.55}.harmo-teaching-technique{margin-top:10px;font-size:.85rem;color:#c8c8d2;line-height:1.55}.harmo-teaching-label{font-weight:700;color:var(--accent);margin-right:4px}.harmo-teaching-requirements{display:flex;gap:8px;margin-top:10px;flex-wrap:wrap}.harmo-req-chip{display:inline-flex;align-items:center;gap:6px;padding:3px 10px;background:#9c6ce026;color:#c3a3ef;border:1px solid rgba(156,108,224,.35);border-radius:999px;font-size:.72rem;font-weight:600}.harmo-req-chip.advanced{background:#d4af4f26;color:var(--accent);border-color:#d4af4f66}.harp-layout-header{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:12px;flex-wrap:wrap;gap:10px}.harp-layout-legend{display:flex;gap:14px;font-size:.72rem;color:#8a8a95}.harp-layout-legend>span{display:inline-flex;align-items:center;gap:4px}.harp-tip{margin-top:12px;padding:8px 12px;background:#4a90e21a;border-left:3px solid rgba(74,144,226,.6);border-radius:0 6px 6px 0;font-size:.82rem;color:#a9caf0;display:flex;align-items:center;gap:8px}.harp-tip-icon{font-size:1rem}.degree-hint{font-size:.76rem;color:#8a8a95;font-style:italic;flex-basis:100%;padding-left:72px;margin-top:-2px}.harmo-tips{margin:18px 0;padding:14px 18px;background:#48bb780d;border-left:3px solid rgba(72,187,120,.5);border-radius:0 10px 10px 0}.harmo-tips-title{margin:0 0 8px;font-size:.9rem;color:#8be2a8;letter-spacing:.01em}.harmo-tips ul{margin:0;padding-left:20px;font-size:.86rem;color:#c8c8d2;line-height:1.6}.harmo-tips li{margin-bottom:4px}.harmo-transpose-controls{margin-top:18px;display:flex;flex-wrap:wrap;gap:10px;align-items:center}.harmo-transpose-cta{display:inline-flex;align-items:center;gap:12px;padding:10px 16px;background:linear-gradient(135deg,#d4af4f33,#d4af4f14);border:1px solid rgba(212,175,79,.5);border-radius:8px;color:#eaeaef;cursor:pointer;font-family:inherit;text-align:left;transition:transform .15s ease,box-shadow .15s ease}.harmo-transpose-cta:hover{transform:translateY(-1px);box-shadow:0 4px 12px #d4af4f4d}.harmo-transpose-cta-icon{font-size:1.4rem;line-height:1}.harmo-transpose-cta-body{display:flex;flex-direction:column;gap:2px;line-height:1.3}.harmo-transpose-cta-body strong{color:var(--accent);font-size:.9rem}.harmo-transpose-cta-body span{font-size:.78rem;color:#b8b8c2}.harmo-transpose-reset{padding:8px 14px;background:#ffffff0a;border:1px solid rgba(255,255,255,.12);border-radius:6px;color:#b8b8c2;cursor:pointer;font-size:.82rem}.harmo-transpose-reset:hover{border-color:var(--accent);color:var(--accent)}.harmo-legend-section{font-weight:600;color:#c8c8d2;font-size:.75rem;margin-right:2px}@media (max-width: 720px){.harp-cell{min-width:28px;font-size:.76rem;padding:6px 2px}.harp-row-label{font-size:.65rem;padding-right:6px}.degree-row{font-size:.85rem}.degree-hint{padding-left:0}.harp-settings-popover{right:-50px;width:240px}}.harmonica-hub{display:flex;flex-direction:column;gap:32px}.harmonica-hub .section-card{padding:26px 28px}.harmonica-hub .section-card.harmo-hub-calc,.harmonica-hub .section-card.harmo-hub-positions{position:relative;overflow:hidden}.harmonica-hub .section-card.harmo-hub-calc:before,.harmonica-hub .section-card.harmo-hub-positions:before{content:"";position:absolute;top:0;left:0;bottom:0;width:4px;pointer-events:none;z-index:1}.harmonica-hub .section-card.harmo-hub-calc:before{background:linear-gradient(180deg,#7aa8d9d9,#7aa8d959);box-shadow:0 0 12px #7aa8d959}.harmonica-hub .section-card.harmo-hub-positions:before{background:linear-gradient(180deg,#b890dcd9,#b890dc59);box-shadow:0 0 12px #b890dc59}.harmonica-hub .section-card.harmo-hub-calc{background:linear-gradient(90deg,#7aa8d912,#7aa8d900 35%),linear-gradient(180deg,var(--panel) 0%,#17191f 100%)}.harmonica-hub .section-card.harmo-hub-positions{background:linear-gradient(90deg,#b890dc12,#b890dc00 35%),linear-gradient(180deg,var(--panel) 0%,#17191f 100%)}.harmonica-hub .section-card.harmo-hub-calc .harmo-hub-kicker{color:#8ec0f0}.harmonica-hub .section-card.harmo-hub-calc .harmo-hub-header h3{color:#b4d2f0}.harmonica-hub .section-card.harmo-hub-positions .harmo-hub-kicker{color:#c4a6e5}.harmonica-hub .section-card.harmo-hub-positions .harmo-hub-header h3{color:#d8c2f0}.harmo-hub-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:22px}.harmo-hub-header h3{margin:2px 0 0;font-size:1.15rem;color:var(--accent);letter-spacing:.01em}.harmo-hub-header h4{margin:0 0 4px;font-size:.92rem;color:#e8e8ec}.harmo-hub-kicker{display:inline-block;font-size:.7rem;letter-spacing:.18em;text-transform:uppercase;color:#8c8c98}.harmo-hub-artist{margin:4px 0 0;color:#b0b0bc;font-size:.88rem}.harmo-hub-harp-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(56px,1fr));gap:8px;margin-bottom:14px}.harmo-hub-harp-chip{background:#ffffff08;border:1px solid rgba(255,255,255,.08);color:#c8c8d2;border-radius:var(--r-sm);padding:10px 8px;font-family:inherit;font-size:.95rem;font-weight:600;cursor:pointer;transition:all .15s ease}.harmo-hub-harp-chip:hover{border-color:#d4af4f73;color:var(--accent)}.harmo-hub-harp-chip.is-active{background:#d4af4f2e;border-color:var(--accent);color:var(--accent);box-shadow:0 2px 8px #d4af4f33}.harmo-hub-stat{margin:0;color:#c8c8d2;font-size:.92rem}.harmo-hub-stat strong{color:var(--accent)}.harmo-hub-stat-sep{margin:0 10px;color:#5a5a66}.harmo-hub-intro{margin:0 0 18px;padding:14px 18px;background:#d4af4f0f;border-left:3px solid var(--accent);border-radius:var(--r-sm);color:#c8c8d2;font-size:.95rem;line-height:1.55}.harmo-hub-intro strong{color:var(--accent);font-weight:600}.harmo-hub-intro-block{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:14px;align-items:stretch;margin:0 0 18px}.harmo-hub-intro-block .harmo-hub-intro{margin:0}.harmo-hub-manual-btn{display:inline-flex;align-items:center;gap:12px;padding:12px 16px;border-radius:var(--r-sm);border:1px solid rgba(212,175,79,.35);background:linear-gradient(135deg,#d4af4f1f,#d4af4f0a);color:#e8e8ec;cursor:pointer;text-align:left;transition:border-color .15s ease,background .15s ease,transform .08s ease}.harmo-hub-manual-btn:hover{border-color:var(--accent);background:linear-gradient(135deg,#d4af4f38,#d4af4f14)}.harmo-hub-manual-btn:active{transform:translateY(1px)}.harmo-hub-manual-btn-icon{font-size:1.4rem;line-height:1}.harmo-hub-manual-btn-text{display:flex;flex-direction:column;line-height:1.25}.harmo-hub-manual-btn-text strong{color:var(--accent);font-size:.95rem;font-weight:600}.harmo-hub-manual-btn-text small{color:#a8a8b2;font-size:.78rem}.harmo-hub-manual-btn-arrow{color:var(--accent);font-size:1.1rem;transition:transform .15s ease}.harmo-hub-manual-btn:hover .harmo-hub-manual-btn-arrow{transform:translate(3px)}@media (max-width: 720px){.harmo-hub-intro-block{grid-template-columns:minmax(0,1fr)}}.harmo-hub-field-hint{margin:0 0 10px;color:#8a8a94;font-size:.82rem}.harmo-hub-ref-row{display:flex;align-items:center;flex-wrap:wrap;gap:12px;margin:0 0 14px;padding:10px 12px;background:#ffffff06;border:1px solid rgba(255,255,255,.06);border-radius:var(--r-sm)}.harmo-hub-ref-label{color:var(--accent);font-size:.8rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase}.harmo-hub-ref-picker{display:flex;flex-wrap:wrap;gap:6px}.harmo-hub-ref-chip{background:#ffffff0a;border:1px solid rgba(255,255,255,.1);color:#c8c8d2;border-radius:var(--r-sm);padding:6px 14px;font-family:inherit;font-size:.9rem;font-weight:600;cursor:pointer;transition:all .15s ease}.harmo-hub-ref-chip:hover{border-color:#d4af4f80;color:var(--accent)}.harmo-hub-ref-chip.is-active{background:var(--accent);border-color:var(--accent);color:#1a1a1a;box-shadow:0 2px 10px #d4af4f4d}.harmo-hub-position-songcount{margin:8px 0 0;color:#8a8a94;font-size:.8rem}.harmo-hub-position-songcount strong{color:var(--accent)}.harmo-hub-tab-legend{display:flex;flex-wrap:wrap;align-items:center;gap:14px;margin:14px 0;padding:10px 14px;background:#ffffff05;border:1px dashed rgba(212,175,79,.3);border-radius:var(--r-sm);color:#c8c8d2;font-size:.82rem}.harmo-hub-tab-legend strong{color:var(--accent);font-weight:600}.harmo-hub-tab-legend code{background:#d4af4f24;color:var(--accent);padding:1px 6px;border-radius:3px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.88em;margin-right:4px}.harmo-hub-howto{margin-top:16px;padding:14px 16px;background:#d4af4f0a;border-left:3px solid var(--accent);border-radius:var(--r-sm)}.harmo-hub-howto-title{margin:0 0 12px;color:var(--accent);font-size:1rem;font-weight:600;letter-spacing:.02em}.harmo-hub-howto-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:10px}.harmo-hub-howto-card{background:#ffffff05;border:1px solid rgba(255,255,255,.06);border-radius:var(--r-sm);padding:10px 12px}.harmo-hub-howto-card p{margin:6px 0 0;color:#c8c8d2;font-size:.88rem;line-height:1.55}.harmo-hub-howto-card-wide{grid-column:1 / -1}.harmo-hub-howto-card-watch{grid-column:1 / -1;background:#dc96460f;border-color:#dc964640}.harmo-hub-howto-examples{list-style:none;margin:6px 0 0;padding:0;display:flex;flex-direction:column;gap:4px}.harmo-hub-howto-examples li{margin:0;padding:4px 0}.harmo-hub-howto-tab{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.86rem;color:#f0e0b0;letter-spacing:.02em}.harmo-hub-calc-howto{margin-top:10px;padding:8px 10px;background:#ffffff05;border-left:2px solid rgba(212,175,79,.4);border-radius:3px}.harmo-hub-calc-howto p{margin:4px 0 0;color:#c8c8d2;font-size:.82rem;line-height:1.5}.harmo-hub-calc-howto-lick{color:#f0e0b0;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}.harmo-hub-song-meta{display:flex;flex-wrap:wrap;gap:8px}.harmo-hub-section-intro{margin:0 0 14px;color:#b8b8c2;font-size:.88rem;line-height:1.55}.harmo-hub-section-intro strong{color:var(--accent)}.harmo-hub-section-intro em{color:#e0e0e6;font-style:normal}.harmo-hub-position-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px}.harmo-hub-position-card{display:flex;gap:12px;background:#ffffff05;border:1px solid var(--harmo-tone-br, rgba(255,255,255,.06));border-left:3px solid var(--harmo-tone, rgba(212,175,79,.5));border-radius:var(--r-md);padding:14px 14px 14px 12px;transition:border-color .15s ease,background .15s ease,transform .15s ease,box-shadow .15s ease}.harmo-hub-position-card:hover{background:#ffffff08}.harmo-hub-position-card.is-button{width:100%;text-align:left;font-family:inherit;color:inherit;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none}.harmo-hub-position-card.is-button:hover{transform:translateY(-1px);box-shadow:0 4px 14px #00000040}.harmo-hub-position-card.is-active{background:var(--harmo-tone-bg, rgba(212,175,79,.1));border-color:var(--harmo-tone, var(--accent));box-shadow:0 0 0 1px var(--harmo-tone, var(--accent)) inset,0 4px 14px #0000004d}.harmo-hub-position-detail{margin-top:16px;padding:16px;background:#ffffff05;border:1px solid var(--harmo-tone-br, rgba(255,255,255,.08));border-left:3px solid var(--harmo-tone, var(--accent));border-radius:var(--r-md)}.harmo-hub-position-detail-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:14px;padding-bottom:14px;border-bottom:1px solid rgba(255,255,255,.06);flex-wrap:wrap}.harmo-hub-position-detail-head h4{margin:4px 0 0;font-size:1.05rem;color:#e7e3d8}.harmo-hub-position-detail-head h4 .harmo-hub-position-key{color:var(--accent);font-weight:700}.harmo-hub-position-detail-chips{display:flex;gap:6px;flex-wrap:wrap}.harmo-hub-position-detail-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:10px}.harmo-hub-position-detail-card{display:flex;flex-direction:column;gap:6px;padding:10px 12px;background:#00000026;border-radius:var(--r-sm)}.harmo-hub-position-detail-card p{margin:0;color:#d0d0d8;font-size:.88rem;line-height:1.5}.harmo-hub-position-detail-degrees strong,.harmo-hub-position-detail-tonic strong{color:var(--accent)}.harp-cell.is-tonic{background:var(--accent)!important;color:#1a1608!important;font-weight:700;box-shadow:inset 0 0 0 2px #d4af4f8c}.harmo-hub-layout-hint{color:var(--accent);font-size:.82rem;letter-spacing:.02em}.harmo-hub-legend-tonic{color:var(--accent);font-weight:600}.harmo-hub-legend-tonic>span{color:var(--accent)}.harmo-hub-position-num{flex-shrink:0;width:38px;height:38px;border-radius:50%;background:var(--harmo-tone-bg, rgba(212,175,79,.12));color:var(--harmo-tone, var(--accent));border:1px solid var(--harmo-tone-br, rgba(212,175,79,.35));display:flex;align-items:center;justify-content:center;font-weight:700;font-size:1rem}.harmo-hub-position-body{flex:1;min-width:0}.harmo-hub-position-title{margin:0 0 2px;font-size:.98rem;color:#e7e3d8}.harmo-hub-position-mode{margin:0 0 8px;color:var(--harmo-tone, var(--accent));font-size:.78rem;letter-spacing:.04em;text-transform:uppercase;font-weight:600}.harmo-hub-position-example{margin:0 0 8px;padding:6px 10px;background:#d4af4f0f;border-radius:var(--r-sm);color:#c8c8d2;font-size:.83rem;line-height:1.4}.harmo-hub-position-example strong{color:var(--accent);font-weight:600}.harmo-hub-position-key{font-size:1rem;letter-spacing:.02em}.harmo-hub-position-oneliner{margin:0 0 8px;color:#9a9aa6;font-size:.8rem;line-height:1.45}.harmo-hub-position-flags{display:flex;gap:6px;flex-wrap:wrap}.harmo-hub-position-flags .chip,.harmo-hub-calc-techs .chip{font-size:.68rem;padding:2px 8px;letter-spacing:.05em;text-transform:uppercase}.chip-diff-green{background:#60a0781f;color:#8fcf9f;border-color:#60a0784d}.chip-diff-blue{background:#6084c81f;color:#9cb4e6;border-color:#6084c84d}.chip-diff-purple{background:#9c78c81f;color:#c1a8e0;border-color:#9c78c84d}.chip-diff-amber{background:#d4a14f1f;color:#dcb56a;border-color:#d4a14f59}.chip-muted{color:#7a7a86;border-color:#ffffff14}.harmo-hub-layout .harp-layout-table{width:100%;margin-top:10px}.harmo-hub-harp-picker{display:flex;gap:6px;flex-wrap:wrap}.harmo-hub-harp-picker .harmo-hub-harp-chip{padding:6px 12px;font-size:.85rem}.harmo-hub-layout-legend{display:flex;flex-wrap:wrap;gap:16px;color:#8c8c98;font-size:.8rem;margin-bottom:4px}.harmo-hub-layout-legend code{padding:1px 5px;background:#d4af4f1a;border:1px solid rgba(212,175,79,.25);border-radius:3px;color:var(--accent);font-size:.78em;font-weight:600}.harmo-hub-legend-qwerty{color:var(--accent-soft, #e4c87a)}.harmo-howto-panel{display:grid;grid-template-columns:minmax(220px,1fr) minmax(380px,2fr);gap:10px;margin:14px 0;padding:10px 12px;background:linear-gradient(165deg,#d4af4f0d,#0000001f);border:1px solid rgba(212,175,79,.18);border-radius:10px}.harmo-howto-block{display:flex;flex-direction:column;gap:6px}.harmo-howto-block-head{display:flex;align-items:baseline;gap:6px;color:var(--accent)}.harmo-howto-block-icon{font-size:.95rem;filter:drop-shadow(0 0 5px rgba(212,175,79,.22))}.harmo-howto-block-title{font-size:.7rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase}.harmo-howto-block-sub{color:var(--text-dim, #c9c9c9);font-size:.68rem;font-weight:500;letter-spacing:0;text-transform:none}.harmo-howto-block-body{display:flex;flex-direction:column;gap:3px;font-size:.78rem;color:var(--text-soft, #d9d9d9);line-height:1.4}.harmo-howto-block-body strong{color:var(--text, #f5f5f5)}.harmo-howto-arrow-up{color:#b7e8cf;font-weight:700}.harmo-howto-arrow-down{color:#f0c878;font-weight:700}.harmo-howto-kbd-rows{display:flex;flex-direction:column;gap:4px;padding:6px 8px;background:#00000038;border:1px solid rgba(255,255,255,.04);border-radius:8px}.harmo-howto-kbd-row{display:flex;align-items:center;gap:4px}.harmo-howto-kbd-arrow{width:18px;text-align:center;font-size:.9rem;flex-shrink:0}.harmo-howto-kbd-row kbd{display:inline-flex;align-items:center;justify-content:center;flex:1 1 0;min-width:22px;height:22px;padding:0 2px;border-radius:5px;border:1px solid rgba(255,255,255,.16);border-bottom-width:2px;background:linear-gradient(180deg,#34343c,#1f1f26);color:#e8e8ec;font-family:var(--font-mono, ui-monospace, monospace);font-size:.72rem;font-weight:700;letter-spacing:.02em;text-shadow:0 1px 0 rgba(0,0,0,.5);box-shadow:inset 0 1px #ffffff0f,0 1px #0009}.harmo-howto-kbd-row:first-child kbd{border-color:#d4af4f47;background:linear-gradient(180deg,#3d362a,#221d14);color:#f5e8c4}.harmo-howto-kbd-row:nth-child(2) kbd{border-color:#c896404d;background:linear-gradient(180deg,#3a2f22,#211a10);color:#f0d9a6}.harmo-howto-kbd-tail{flex-shrink:0;margin-left:4px;color:var(--text-dim, #c9c9c9);font-size:.68rem;font-weight:500;white-space:nowrap}.harmo-howto-kbd-tip{margin:5px 0 0;padding:4px 8px;background:#d4af4f0d;border-left:2px solid rgba(212,175,79,.35);border-radius:3px;color:var(--text-soft, #d9d9d9);font-size:.72rem;line-height:1.4}.harmo-howto-kbd-tip strong{color:var(--text, #f5f5f5)}.harmo-howto-tonic{grid-column:1 / -1;padding:5px 10px;background:#d4af4f12;border-left:2px solid var(--accent);border-radius:3px;color:var(--accent-soft, #e4c87a);font-size:.76rem}.harmo-howto-tonic strong{color:var(--accent)}@container (max-width: 700px){.harmo-howto-panel{grid-template-columns:1fr}}@media (max-width: 720px){.harmo-howto-panel{grid-template-columns:1fr}.harmo-howto-kbd-row kbd{min-width:22px;height:26px;font-size:.76rem}}.harp-layout-table.is-playable .harp-cell.is-playable{cursor:pointer;user-select:none;-webkit-user-select:none;touch-action:none;-webkit-touch-callout:none;transition:background .1s ease,color .1s ease,box-shadow .12s ease,transform .08s ease;position:relative}.harp-layout-table.is-playable .harp-cell.is-playable:hover{background:#d4af4f1f}.harp-cell.is-pressed{animation:harp-cell-flash .42s ease-out}.harp-cell.is-blow.is-pressed{background:linear-gradient(180deg,#f4d989,#d4af4f 60%,#b08a32)!important;color:#1a1608!important;box-shadow:0 0 0 2px #d4af4f80,0 0 16px #d4af4f8c;transform:translateY(-1px)}.harp-cell.is-draw.is-pressed{background:linear-gradient(180deg,#f0c878,#c89640 60%,#9a701f)!important;color:#1a1208!important;box-shadow:0 0 0 2px #c896408c,0 0 16px #c8964099;transform:translateY(-1px)}.harp-cell-hole.is-playable.is-pressed{background:#d4af4f59!important;color:#fff!important}@keyframes harp-cell-flash{0%{box-shadow:0 0 #d4af4fd9}35%{box-shadow:0 0 0 5px #d4af4f59,0 0 22px 4px #d4af4f99}to{box-shadow:0 0 0 2px #d4af4f73,0 0 16px #d4af4f8c}}.harmo-richter-body{position:relative;margin:22px 0 12px;padding:22px 26px 16px;background:radial-gradient(ellipse at 50% 0%,rgba(255,220,150,.12) 0%,transparent 65%),linear-gradient(180deg,#3a2f1c,#2a2316,#1f1a10);border-radius:8px;border:1px solid rgba(180,140,60,.55);box-shadow:inset 0 1px #ffdc9638,inset 0 -1px #0009,inset 0 0 0 1px #00000059,0 6px 20px #00000073}.harmo-richter-body>.harp-layout-table{position:relative;z-index:2;margin:0}.harmo-richter-body .harp-row-label{color:#f0d99ad9;text-shadow:0 1px 0 rgba(0,0,0,.5)}.harmo-richter-screw{position:absolute;width:10px;height:10px;border-radius:50%;background:radial-gradient(circle at 35% 35%,#f4e0a0,#b8902f 55%,#5a4214);box-shadow:inset 0 -1px 1px #0000008c,0 1px 1px #00000080;z-index:3;pointer-events:none}.harmo-richter-screw:before{content:"";position:absolute;top:50%;left:18%;right:18%;height:1px;background:#000000a6;transform:translateY(-50%) rotate(35deg);border-radius:1px}.harmo-richter-screw-tl{top:5px;left:6px}.harmo-richter-screw-tr{top:5px;right:6px}.harmo-richter-screw-bl{bottom:5px;left:6px}.harmo-richter-screw-br{bottom:5px;right:6px}.harmo-richter-brand{position:absolute;top:4px;left:50%;transform:translate(-50%);z-index:3;font-size:.6rem;letter-spacing:.28em;font-weight:700;color:#ffe6aa8c;text-shadow:0 1px 0 rgba(0,0,0,.55);white-space:nowrap;pointer-events:none}.harmo-toolbar{display:flex;flex-wrap:wrap;gap:10px 14px;align-items:center;margin:22px 0;padding:12px 14px;background:#ffffff05;border:1px solid var(--border-soft);border-radius:10px}.harmo-instrument-wrap{position:relative;display:inline-flex}.harmo-instrument-btn{display:inline-flex;align-items:center;gap:10px;padding:8px 14px;border-radius:999px;border:1px solid var(--accent-dim);background:linear-gradient(180deg,#d4af4f1f,#d4af4f0a);color:var(--accent);font-size:.88rem;cursor:pointer;transition:border-color .12s,background .12s}.harmo-instrument-btn:hover,.harmo-instrument-btn.is-open{border-color:var(--accent);background:#d4af4f2e}.harmo-instrument-label{font-weight:700}.harmo-instrument-desc{color:var(--text-dim, #c9c9c9);font-size:.78rem}.harmo-instrument-caret{color:var(--accent)}@media (max-width: 720px){.harmo-howto-panel{display:none}.harmo-richter-body{padding:14px 12px 12px;margin:14px 0 10px}.harmo-richter-body .harp-row-label{display:none}.harmo-richter-body .harp-layout-table{border-spacing:2px}.harmo-richter-body .harp-cell{min-width:0;padding:10px 1px;font-size:.82rem}.harmo-richter-body .harp-cell-hole{padding:1px;font-size:.68rem}.harmo-richter-brand{font-size:.6rem}.harmo-hub-harp-grid{grid-template-columns:repeat(auto-fill,minmax(42px,1fr));gap:4px;margin-bottom:10px}.harmo-hub-harp-chip{padding:6px 4px;font-size:.85rem}.harmo-hub-ref-row{gap:6px}}.harmo-instrument-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:90}.harmo-instrument-menu{position:absolute;top:calc(100% + 6px);left:0;z-index:91;min-width:240px;margin:0;padding:6px;list-style:none;background:#1a1a22;border:1px solid var(--accent-dim);border-radius:10px;box-shadow:0 12px 36px #00000073}.harmo-instrument-menu li{list-style:none}.harmo-instrument-item{display:flex;align-items:center;gap:10px;width:100%;padding:8px 10px;background:transparent;border:0;border-radius:6px;color:var(--text);cursor:pointer;text-align:left}.harmo-instrument-item:hover{background:#d4af4f1f}.harmo-instrument-item.is-active{background:#d4af4f2e;color:var(--accent)}.harmo-instrument-item-label{display:flex;flex-direction:column;flex:1}.harmo-instrument-item-label strong{font-weight:700}.harmo-instrument-item-label em{font-style:normal;color:var(--text-dim, #c9c9c9);font-size:.78rem}.harmo-sustain-btn{padding:7px 12px;border-radius:999px;border:1px solid var(--border-soft);background:#ffffff05;color:var(--text-dim, #c9c9c9);font-size:.82rem;font-weight:600;cursor:pointer;transition:border-color .12s,background .12s,color .12s}.harmo-sustain-btn:hover{border-color:var(--accent);color:var(--accent-soft, #e4c87a)}.harmo-sustain-btn.is-on{background:#d4af4f2e;border-color:var(--accent);color:var(--accent-soft, #e4c87a)}.harmo-hub-header h3{display:inline-flex;align-items:center;gap:10px}.harmo-help-btn{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;padding:0;border-radius:50%;border:1px solid var(--accent-dim);background:#d4af4f14;color:var(--accent);font-size:.82rem;font-weight:700;font-family:var(--font-display, inherit);line-height:1;cursor:pointer;transition:background .12s,border-color .12s,transform .12s,color .12s;flex-shrink:0}.harmo-help-btn:hover{background:#d4af4f38;border-color:var(--accent);transform:scale(1.08)}.harmo-help-btn.is-open{background:var(--accent);border-color:var(--accent);color:#1a1c24}.harmo-help-panel{margin:10px 0 12px;padding:14px 16px;background:linear-gradient(165deg,#d4af4f12,#d4af4f05);border:1px solid rgba(212,175,79,.25);border-radius:10px;color:var(--text-soft, #d9d9d9);font-size:.86rem;line-height:1.6;animation:scale-diatonic-help-in .18s ease-out}.harmo-help-panel p{margin:0 0 8px}.harmo-help-panel p:last-child{margin-bottom:0}.harmo-help-panel strong{color:var(--text, #f5f5f5)}.harmo-help-panel em{color:var(--accent-soft, #e4c87a);font-style:italic}.harmo-help-panel code{padding:1px 6px;background:#d4af4f1f;border:1px solid rgba(212,175,79,.3);border-radius:3px;color:var(--accent);font-family:var(--font-mono, monospace);font-size:.82em;font-weight:600;white-space:nowrap}.harmo-help-section{margin:14px 0 6px!important;color:var(--accent);font-size:.74rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase}.harmo-help-list{margin:0 0 10px;padding-left:22px;display:flex;flex-direction:column;gap:4px}.harmo-help-list li{line-height:1.55}.harmo-help-list li::marker{color:var(--accent-dim)}.harmo-help-tip{margin-top:10px;padding:8px 12px;background:#8be5bd0f;border-left:3px solid rgba(139,229,189,.5);border-radius:4px;font-size:.85rem;color:var(--text-soft, #d9d9d9)}.harmo-hub-calc-select{background:#ffffff0a;border:1px solid rgba(255,255,255,.12);color:#e8e8ec;border-radius:var(--r-sm);padding:8px 12px;font-family:inherit;font-size:.92rem;min-width:160px}.harmo-hub-calc-select option,.harmo-hub-calc-select optgroup{background:#1a1a22;color:#e8e8ec}.harmo-hub-calc-select optgroup{color:var(--accent);font-weight:600}.harmo-hub-calc-headline{margin:0 0 10px;color:#c8c8d2;font-size:.95rem}.harmo-hub-calc-headline strong{color:var(--accent)}.harmo-hub-calc-explain{margin:0 0 10px;padding:10px 14px;background:#d4af4f0d;border:1px solid rgba(212,175,79,.18);border-radius:8px;color:var(--text-soft, #d9d9d9);font-size:.86rem;line-height:1.55}.harmo-hub-calc-explain strong{color:var(--text, #f5f5f5)}.harmo-hub-calc-miss{color:#d4a14f}.harmo-hub-calc-suggest{margin:0;color:#c8c8d2;font-size:.9rem;line-height:1.5}.harmo-hub-calc-suggest strong{color:var(--accent)}.harmo-hub-calc-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:10px}.harmo-hub-calc-tabs{display:inline-flex;background:var(--panel-2);border:1px solid var(--border);border-radius:10px;padding:4px;gap:4px}.harmo-hub-calc-tab{padding:8px 14px;border:0;background:transparent;color:#9aa0aa;font-size:.85rem;font-weight:600;border-radius:7px;cursor:pointer;transition:background .15s,color .15s;font-family:inherit}.harmo-hub-calc-tab:hover{color:#e7e3d8}.harmo-hub-calc-tab.is-active{background:linear-gradient(135deg,var(--accent-soft),var(--accent));color:#1a1608;box-shadow:0 2px 6px #d4af4f40}.harmo-hub-calc-controls{display:flex;gap:16px;flex-wrap:wrap;margin-bottom:14px;padding:12px;background:#ffffff05;border:1px solid rgba(255,255,255,.05);border-radius:var(--r-sm)}.harmo-hub-calc-field{display:flex;flex-direction:column;gap:6px;font-size:.78rem;color:#8c8c98;letter-spacing:.04em;text-transform:uppercase;font-weight:600}.harmo-hub-calc-segmented{display:inline-flex;background:#ffffff0a;border:1px solid rgba(255,255,255,.1);border-radius:var(--r-sm);padding:3px;gap:2px}.harmo-hub-calc-segmented .seg-btn{padding:6px 12px;border:0;background:transparent;color:#9aa0aa;font-size:.82rem;font-weight:600;border-radius:6px;cursor:pointer;transition:background .15s,color .15s;text-transform:none;letter-spacing:0;font-family:inherit}.harmo-hub-calc-segmented .seg-btn:hover{color:#e7e3d8}.harmo-hub-calc-segmented .seg-btn.is-active{background:#d4af4f33;color:var(--accent)}.harmo-hub-calc-card{background:#ffffff05;border:1px solid var(--harmo-tone-br, rgba(255,255,255,.08));border-left:3px solid var(--harmo-tone, var(--accent));border-radius:var(--r-md);padding:0;transition:background .15s,box-shadow .15s;overflow:hidden}.harmo-hub-calc-card:hover{background:#ffffff08}.harmo-hub-calc-card.is-active{background:#d4af4f1a;border-color:var(--accent);box-shadow:0 0 0 1px var(--accent),0 4px 18px #d4af4f2e}.harmo-hub-calc-card-btn{display:block;width:100%;padding:14px 16px;background:transparent;border:0;color:inherit;text-align:left;font:inherit;cursor:pointer}.harmo-hub-calc-card-btn:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.harmo-hub-calc-card-hint{margin:6px 0 0;color:#8a8a94;font-size:.8rem;font-weight:500}.harmo-hub-calc-card.is-active .harmo-hub-calc-card-hint{color:var(--accent);font-weight:600}.harmo-hub-calc-card-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:10px;padding-bottom:10px;border-bottom:1px solid rgba(255,255,255,.05)}.harmo-hub-calc-headline-row{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}.harmo-hub-calc-harp-big{font-size:1.1rem;font-weight:700;color:var(--harmo-tone, var(--accent));letter-spacing:.02em}.harmo-hub-calc-pos-badge{font-size:.82rem;padding:3px 10px;background:#ffffff0d;border:1px solid rgba(255,255,255,.08);border-radius:999px;color:#c8c8d2;font-weight:600}.harmo-hub-calc-card-body{display:flex;flex-direction:column;gap:10px}.harmo-hub-calc-mode-line{margin:0;color:#9a9aa6;font-size:.82rem}.harmo-hub-calc-info-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px}.harmo-hub-calc-info-grid>div{display:flex;flex-direction:column;gap:3px;padding:8px 10px;background:#00000026;border-radius:var(--r-sm)}.harmo-hub-calc-label{font-size:.68rem;color:#8c8c98;letter-spacing:.05em;text-transform:uppercase;font-weight:600}.harmo-hub-calc-value{font-size:.88rem;color:#e0e0e6}.harmo-hub-calc-value strong{color:var(--accent)}.harmo-hub-calc-actions{display:flex;gap:8px;margin-top:4px}.harmo-hub-calc-empty{padding:16px;background:#d4a14f0f;border:1px solid rgba(212,161,79,.2);border-radius:var(--r-sm)}.harmo-hub-calc-transpose{margin-top:10px}.harmo-hub-calc-bangers{margin:0 14px 14px;padding:12px 14px;background:#3ecf8e0f;border-left:3px solid rgba(62,207,142,.5);border-radius:6px}.harmo-hub-calc-bangers-label{display:inline-flex;align-items:center;gap:6px;margin-bottom:8px;color:#b7e8cf;font-size:.82rem;font-weight:600;letter-spacing:.02em}.harmo-hub-calc-bangers-row{display:flex;flex-wrap:wrap;gap:8px}.harmo-banger-chip{position:relative;display:inline-flex;flex-direction:column;align-items:flex-start;gap:2px;padding:8px 14px;border-radius:10px;border:1px solid rgba(62,207,142,.35);background:#3ecf8e14;color:#cfeed9;cursor:pointer;transition:background .12s,border-color .12s,transform .08s;max-width:240px;text-align:left}.harmo-banger-chip:hover{background:#3ecf8e29;border-color:#3ecf8e;transform:translateY(-1px)}.harmo-banger-chip-title{font-size:.92rem;font-weight:700;color:#d8f5e4;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}.harmo-banger-chip-artist{font-size:.74rem;color:#8fc7a6;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}.harmo-banger-chip-badge{position:absolute;top:4px;right:6px;font-size:.7rem;color:var(--accent)}.harmo-banger-chip.is-verified{border-color:#d4af4f80;background:linear-gradient(135deg,#d4af4f1f,#3ecf8e14)}.harmo-banger-chip.is-verified .harmo-banger-chip-title{color:#f5e8c4}.harmo-banger-chip.is-liveset{box-shadow:inset 3px 0 #3ecf8eb3}.harmo-hub-inverse-table{display:flex;flex-direction:column;gap:8px}.harmo-hub-inverse-row{display:grid;grid-template-columns:160px 1fr auto 110px;gap:16px;align-items:center;padding:12px 14px;background:#ffffff05;border:1px solid var(--harmo-tone-br, rgba(255,255,255,.08));border-left:3px solid var(--harmo-tone, var(--accent));border-radius:var(--r-md)}.harmo-hub-inverse-pos{display:flex;align-items:center;gap:10px}.harmo-hub-inverse-posname{font-size:.9rem;font-weight:600;color:#e7e3d8}.harmo-hub-inverse-mode{font-size:.72rem;color:var(--harmo-tone, var(--accent));letter-spacing:.04em;text-transform:uppercase}.harmo-hub-inverse-key{display:flex;flex-direction:column;gap:2px}.harmo-hub-inverse-key-big{font-size:1.4rem;font-weight:700;color:var(--accent);letter-spacing:.02em}.harmo-hub-inverse-degrees{font-size:.78rem;color:#8c8c98}.harmo-hub-inverse-meta{display:flex;flex-direction:column;gap:4px;align-items:flex-start}.harmo-hub-inverse-songs{display:flex;flex-direction:column;align-items:flex-end;text-align:right;padding:6px 10px;background:#d4af4f0f;border-radius:var(--r-sm);color:#9a9aa6;font-size:.7rem;line-height:1.2}.harmo-hub-inverse-songs strong{color:var(--accent);font-size:1.1rem;font-weight:700;line-height:1}@media (max-width: 820px){.harmo-hub-inverse-row{grid-template-columns:1fr;gap:8px}.harmo-hub-inverse-meta{flex-direction:row;flex-wrap:wrap}.harmo-hub-inverse-songs{align-items:flex-start;text-align:left}}.beat:not(.empty){cursor:pointer}.beat.is-open{border-color:var(--accent);background:#d4af4f26;color:var(--accent-soft);box-shadow:var(--shadow-accent)}.chord-popover{position:fixed;z-index:1000;background:linear-gradient(180deg,#1e2230,#151821);border:1px solid var(--border-strong);border-radius:var(--r-lg);box-shadow:var(--shadow-lg),0 0 0 1px #d4af4f0f;padding:16px;animation:chord-pop-in .15s ease-out;transform-origin:top center}.chord-popover.flip-up{transform-origin:bottom center;transform:translateY(-100%)}@keyframes chord-pop-in{0%{opacity:0;transform:translateY(-4px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}.chord-popover.flip-up{animation:chord-pop-in-up .15s ease-out}@keyframes chord-pop-in-up{0%{opacity:0;transform:translateY(calc(-100% + 4px)) scale(.96)}to{opacity:1;transform:translateY(-100%) scale(1)}}.chord-popover-header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:14px;gap:12px}.chord-popover-chord{font-family:var(--font-mono);font-size:1.6rem;font-weight:700;color:var(--accent);line-height:1;letter-spacing:-.01em}.chord-popover-label{margin-top:4px;font-size:.78rem;color:var(--muted);letter-spacing:.02em}.chord-popover-close{background:transparent;border:1px solid var(--border);color:var(--muted);width:26px;height:26px;border-radius:50%;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;font-size:1.1rem;line-height:1;padding:0;transition:all .12s}.chord-popover-close:hover{color:var(--text);border-color:var(--border-strong);background:var(--panel-2)}.chord-popover-notes{display:flex;flex-wrap:wrap;gap:6px;margin-top:14px;padding-top:12px;border-top:1px dashed var(--border-soft)}.chord-note-pill{display:inline-flex;align-items:center;padding:3px 10px;border-radius:999px;background:var(--panel-2);border:1px solid var(--border);font-family:var(--font-mono);font-size:.78rem;color:var(--text-soft)}.chord-note-pill.is-root{background:#d4af4f26;border-color:var(--accent);color:var(--accent-soft);font-weight:600}.voicing-tabs{display:flex;flex-wrap:wrap;gap:4px;margin-bottom:10px}.voicing-tab{flex:1 1 auto;min-width:0;padding:4px 8px;border-radius:6px;background:var(--panel-2);border:1px solid var(--border);color:var(--text-soft);font-size:.72rem;font-family:var(--font-mono);letter-spacing:.01em;cursor:pointer;transition:all .12s;white-space:nowrap}.voicing-tab:hover:not(.is-disabled):not(.is-active){border-color:var(--border-strong);color:var(--text)}.voicing-tab.is-active{background:#d4af4f2e;border-color:var(--accent);color:var(--accent-soft);font-weight:600}.voicing-tab.is-disabled{opacity:.35;cursor:not-allowed}.piano{position:relative;width:100%;height:130px;-webkit-user-select:none;user-select:none}.piano-whites{display:grid;grid-template-columns:repeat(var(--white-count, 7),1fr);height:100%;gap:2px}.piano-blacks{position:absolute;top:0;left:0;right:0;height:62%;pointer-events:none}.piano-key{position:relative;display:flex;align-items:flex-end;justify-content:center;padding-bottom:8px;border-radius:0 0 6px 6px;transition:background .15s,box-shadow .15s}.piano-key.white{background:linear-gradient(180deg,#f5f5ef,#d6d6ce);border:1px solid #8a8a82;box-shadow:inset 0 -3px 6px #00000026;color:#2a2a2a}.piano-key.white.active{background:linear-gradient(180deg,var(--accent-soft) 0%,var(--accent) 55%,var(--accent-dim) 100%);border-color:var(--accent-dim);box-shadow:inset 0 1px #ffffff47,inset 0 -4px 8px #00000038;color:#1a1608}.piano-key.white.active.root{background:linear-gradient(180deg,var(--accent-soft) 0%,var(--accent) 55%,var(--accent-dim) 100%);box-shadow:inset 0 1px #ffffff47,inset 0 -4px 8px #00000038}.piano-key.black{position:absolute;top:0;width:calc((100% / var(--white-count, 7)) * .58);height:100%;background:linear-gradient(180deg,#2c2f38,#0f1116);border:1px solid #000;border-radius:0 0 4px 4px;box-shadow:inset 0 -4px 4px #ffffff0d,0 2px 4px #0006;color:#e0e0e0;font-size:.72rem;pointer-events:auto;padding-bottom:6px}.piano-key.black.active{background:linear-gradient(180deg,#7a6224,#4a3a14 55%,#1f1808);border-color:#000;box-shadow:inset 0 1px #ffffff14,inset 0 -4px 6px #0009;color:#f8e8b0}.piano-key.black.active.root{background:linear-gradient(180deg,#a6832f,#6b5620 55%,#2a2010);box-shadow:inset 0 1px #ffffff24,inset 0 -4px 6px #0000008c;color:#fff3c8}.piano-key-label{display:none}.piano-key.bass:not(.active):after{content:"";position:absolute;bottom:6px;left:50%;transform:translate(-50%);width:8px;height:8px;border-radius:50%;background:var(--ok);box-shadow:0 0 8px #3ecf8e99}.scale-keyboard-card{margin:18px 0 22px;padding:18px 20px 22px;background:var(--panel);border:1px solid var(--border-soft);border-radius:var(--radius-lg, 14px);box-shadow:var(--shadow-card, 0 6px 18px rgba(0,0,0,.25))}.scale-character-card{margin:0 0 14px;padding:12px 14px;background:linear-gradient(135deg,#d4af4f14,#d4af4f05);border:1px solid rgba(212,175,79,.25);border-radius:10px}.scale-character-title{margin:0 0 4px;color:var(--accent);font-size:.85rem;font-weight:600;letter-spacing:.02em}.scale-character-desc{margin:0;color:var(--text-dim, #c9c9c9);font-size:.8rem;line-height:1.45}.scale-suggestions{margin:0 0 14px;padding:10px 12px;background:#ffffff05;border:1px solid var(--border-soft);border-radius:10px;display:flex;flex-wrap:wrap;align-items:center;gap:8px}.scale-suggestions-lead{font-size:.95rem;line-height:1}.scale-suggestions-label{color:var(--accent);text-transform:uppercase;font-size:.7rem;letter-spacing:.12em;font-weight:600}.scale-suggestions-chips{display:flex;flex-wrap:wrap;gap:6px}.scale-suggestion-chip{display:inline-flex;align-items:center;gap:6px;padding:5px 10px;border-radius:999px;border:1px solid var(--border-soft);background:transparent;color:var(--text);font-size:.78rem;cursor:pointer;transition:border-color .15s,background .15s,color .15s,transform .1s}.scale-suggestion-chip:hover{border-color:var(--accent-dim);color:var(--accent-soft);transform:translateY(-1px)}.scale-suggestion-chip.primary{border-color:#d4af4f80;background:#d4af4f14}.scale-suggestion-chip.active{background:linear-gradient(135deg,var(--accent-soft),var(--accent));border-color:var(--accent);color:#1a1608;font-weight:600}.scale-suggestion-chip .chip-reason{opacity:.7;font-size:.7rem;font-weight:400}.scale-suggestion-chip.active .chip-reason{opacity:.85;color:#2a1f08}.scale-chord-zoom{margin:0 0 14px;padding:10px 12px;background:#ffffff05;border:1px dashed rgba(212,175,79,.3);border-radius:10px}.scale-chord-zoom-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:8px}.scale-chord-zoom-label{color:var(--accent);text-transform:uppercase;font-size:.7rem;letter-spacing:.12em;font-weight:600}.scale-chord-zoom-nav{display:inline-flex;align-items:center;gap:4px;margin-left:auto}.scale-chord-zoom-arrow{width:26px;height:26px;display:inline-flex;align-items:center;justify-content:center;border-radius:6px;border:1px solid var(--border-soft);background:transparent;color:var(--text);cursor:pointer;font-size:.9rem;transition:background .15s,border-color .15s}.scale-chord-zoom-arrow:hover{background:#d4af4f1a;border-color:var(--accent-dim)}.scale-chord-zoom-clear{padding:4px 10px;border-radius:999px;border:1px solid var(--border-soft);background:transparent;color:var(--text-dim, #c9c9c9);font-size:.72rem;cursor:pointer}.scale-chord-zoom-clear:hover{color:var(--text);border-color:var(--accent-dim)}.scale-chord-zoom-chips{display:flex;flex-wrap:wrap;gap:5px;margin-bottom:8px}.scale-chord-chip{padding:4px 10px;border-radius:999px;border:1px solid var(--border-soft);background:transparent;color:var(--text);font-size:.78rem;cursor:pointer;font-family:var(--font-mono, monospace);transition:border-color .15s,background .15s,color .15s}.scale-chord-chip:hover{border-color:var(--accent-dim);color:var(--accent-soft)}.scale-chord-chip.active{background:var(--accent);border-color:var(--accent);color:#1a1608;font-weight:600}.scale-chord-advice{margin:0;color:var(--text-dim, #c9c9c9);font-size:.78rem;line-height:1.5}.scale-chord-advice strong{color:var(--accent-soft);font-weight:600}.scale-play-btn{display:inline-flex;align-items:center;gap:6px;padding:9px 20px;border-radius:999px;border:1px solid rgba(212,175,79,.55);background:linear-gradient(135deg,#d4af4f38,#d4af4f14);color:var(--accent);font-size:.95rem;font-weight:700;letter-spacing:.02em;cursor:pointer;transition:background .15s,border-color .15s,transform .1s,box-shadow .2s;box-shadow:0 2px 8px #d4af4f1f}.scale-play-btn:hover{background:linear-gradient(135deg,#d4af4f59,#d4af4f26);border-color:var(--accent);transform:translateY(-1px);box-shadow:0 4px 14px #d4af4f47}.scale-play-btn:active{transform:translateY(0)}.scale-play-btn.playing{background:linear-gradient(135deg,#e5484d,#a3262a);color:#fff;border-color:#e5484d;animation:scalePlayPulse 1.2s ease-in-out infinite}.scale-play-btn.playing:hover{background:linear-gradient(135deg,#ed5c61,#b82c31)}@keyframes scalePlayPulse{0%,to{box-shadow:0 0 #e5484d59}50%{box-shadow:0 0 0 6px #e5484d00}}.scale-play-btn--hero{padding:8px 16px;font-size:.85rem;border-radius:10px;border-width:1px;margin-right:auto;flex:0 0 auto;align-self:flex-start}.scale-header-subtitle{flex:1 1 180px;min-width:0;align-self:center}.scale-header-subtitle p{margin:0}.scale-display-seg{display:inline-flex;border-radius:999px;border:1px solid var(--border-soft);background:var(--panel);overflow:hidden}.scale-display-seg button{padding:5px 12px;border:0;background:transparent;color:var(--muted);font-size:.72rem;font-weight:600;cursor:pointer;transition:all .15s}.scale-display-seg button+button{border-left:1px solid var(--border-soft)}.scale-display-seg button:hover{color:var(--text)}.scale-display-seg button.active{background:#d4af4f1f;color:var(--accent-soft)}.scale-transpose-hint{margin:12px 0 0;padding:8px 12px;background:#3ecf8e0f;border-left:3px solid rgba(62,207,142,.5);border-radius:4px;color:var(--text-dim, #c9c9c9);font-size:.78rem;line-height:1.5}.scale-transpose-hint strong{color:var(--ok, #3ecf8e);font-weight:600}.scale-keyboard-header{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;flex-wrap:wrap;margin-bottom:14px}.scale-keyboard-header h4{margin:0 0 2px;color:var(--accent);text-transform:uppercase;font-size:.78rem;letter-spacing:.12em}.scale-keyboard-scales{display:flex;flex-wrap:wrap;gap:6px;max-width:100%}.scale-chip{padding:6px 12px;border-radius:999px;border:1px solid var(--border-soft);background:transparent;color:var(--text);font-size:.8rem;cursor:pointer;transition:border-color .15s,background .15s,color .15s}.scale-chip:hover{border-color:var(--accent-dim);color:var(--accent-soft)}.scale-chip.active{background:linear-gradient(135deg,var(--accent-soft),var(--accent));border-color:var(--accent);color:#1a1608;font-weight:600}.scale-piano{position:relative;width:100%;height:110px;-webkit-user-select:none;user-select:none}.scale-piano.size-full{height:130px}.scale-piano.size-compact{height:82px;max-width:620px}.scale-piano.size-compact .piano-key-label{font-size:.62rem}.scale-piano.size-compact .piano-key.black .piano-key-label{font-size:.54rem}.scale-piano.size-mini{height:54px;max-width:420px}.scale-piano.size-mini .piano-key-label{font-size:.55rem}.scale-piano.size-mini .piano-key.black .piano-key-label{font-size:.5rem}.scale-piano.compact{height:72px;max-width:540px}.scale-piano.compact .piano-key-label{font-size:.62rem}.scale-piano.compact .piano-key.black .piano-key-label{font-size:.54rem}.scale-hub-toolbar{display:flex;flex-wrap:wrap;gap:12px 18px;align-items:center;justify-content:space-between;margin:0 0 16px;padding:14px 16px;background:radial-gradient(120% 100% at 0% 0%,rgba(212,175,79,.08),transparent 55%),linear-gradient(180deg,#ffffff0a,#0000001f);border:1px solid rgba(212,175,79,.22);border-radius:14px;box-shadow:inset 0 1px #ffffff0a,0 4px 18px #0000002e}.scale-hub-keypicker{display:inline-flex;flex-wrap:wrap;gap:5px;align-items:center}.scale-hub-key-chip{min-width:38px;padding:7px 10px;border-radius:9px;border:1px solid var(--border-soft);background:#ffffff09;color:var(--text);font-size:.88rem;font-weight:600;font-family:var(--font-mono, monospace);cursor:pointer;transition:background .12s,border-color .12s,color .12s,transform .08s,box-shadow .12s}.scale-hub-key-chip:hover{border-color:var(--accent-dim, rgba(212,175,79,.45));color:var(--accent-soft, #e4c87a);background:#d4af4f14;transform:translateY(-1px)}.scale-hub-key-chip.active{background:linear-gradient(135deg,#e9cd6f 0%,var(--accent) 60%,#a8832a 100%);border-color:var(--accent);color:#1a1608;font-weight:800;box-shadow:0 3px 12px #d4af4f59,inset 0 1px #ffffff59;transform:translateY(-1px)}.scale-hub-modeswitch{display:inline-flex;margin-left:8px;border-radius:9px;overflow:hidden;border:1px solid var(--border-soft);box-shadow:inset 0 1px #ffffff0a}.scale-hub-modeswitch button{padding:7px 12px;border:0;background:transparent;color:var(--text);cursor:pointer;font-weight:700;font-size:.88rem;min-width:36px;transition:background .12s,color .12s}.scale-hub-modeswitch button+button{border-left:1px solid var(--border-soft)}.scale-hub-modeswitch button:hover{background:#d4af4f1a}.scale-hub-modeswitch button.active{background:linear-gradient(135deg,#e9cd6f,var(--accent));color:#1a1608;box-shadow:inset 0 1px #ffffff4d}.scale-hub-toolbar-actions{display:inline-flex;gap:7px;flex-wrap:wrap}.scale-hub-action-btn{padding:6px 12px;border-radius:999px;border:1px solid var(--border-soft);background:#ffffff05;color:var(--text-dim, #c9c9c9);font-size:.8rem;font-weight:600;cursor:pointer;transition:border-color .12s,background .12s,color .12s,transform .08s}.scale-hub-action-btn:hover{border-color:var(--accent);background:#d4af4f1f;color:var(--accent-soft, #e4c87a);transform:translateY(-1px)}.scale-hub-action-wrap{display:inline-flex;align-items:stretch;gap:2px}.scale-hub-help-btn{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;align-self:center;padding:0;border-radius:50%;border:1px solid var(--accent-dim);background:#d4af4f14;color:var(--accent);font-size:.78rem;font-weight:700;font-family:var(--font-display, inherit);line-height:1;cursor:pointer;transition:background .12s,border-color .12s,transform .12s,color .12s}.scale-hub-help-btn:hover{background:#d4af4f38;border-color:var(--accent);transform:scale(1.08)}.scale-hub-help-btn.is-open{background:var(--accent);border-color:var(--accent);color:#1a1c24}.scale-hub-action-help{flex-basis:100%;width:100%;margin:0;padding:12px 14px;background:linear-gradient(165deg,#d4af4f12,#d4af4f05);border:1px solid rgba(212,175,79,.25);border-radius:8px;color:var(--text-soft, #d9d9d9);font-size:.82rem;line-height:1.55;animation:scale-diatonic-help-in .18s ease-out}.scale-hub-action-help p{margin:0 0 8px}.scale-hub-action-help p:last-child{margin-bottom:0}.scale-hub-action-help strong{color:var(--text, #f5f5f5)}.scale-hub-action-help-section{margin:12px 0 6px!important;color:var(--accent);font-size:.72rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase}.scale-hub-action-help-list{margin:0 0 8px;padding-left:18px;display:flex;flex-direction:column;gap:3px}.scale-hub-action-help-list li::marker{color:var(--accent-dim)}.scale-display-toggle.on,.scale-sustain-toggle.on{background:#d4af4f2e;border-color:var(--accent);color:var(--accent-soft)}.scale-sustain-toggle.on{background:linear-gradient(135deg,#d4af4f38,#d4af4f1a);border-color:var(--accent);color:#f0d088;box-shadow:0 0 0 3px #d4af4f14,0 2px 10px #d4af4f26}.scale-hub-hero{display:flex;flex-wrap:wrap;align-items:stretch;gap:10px;flex:0 0 auto;min-width:0}.scale-keyboard-hint{flex:1 1 auto;margin:0;padding:0 12px;align-self:center;text-align:center;font-size:.82rem;font-style:italic;color:var(--accent-soft, #d9bf6f);letter-spacing:.01em;opacity:.85;display:inline-flex;align-items:center;justify-content:center;gap:8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.scale-keyboard-hint-dot{width:7px;height:7px;border-radius:50%;background:var(--accent);box-shadow:0 0 6px #d4af4fb3;animation:scale-keyboard-hint-pulse 2.2s ease-in-out infinite;flex-shrink:0}@keyframes scale-keyboard-hint-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.45;transform:scale(.75)}}@media (max-width: 720px){.scale-keyboard-hint{display:none}}.hub-instrument-wrap{position:relative;flex:0 0 auto;min-width:0}.hub-instrument-btn{display:inline-flex;align-items:center;gap:10px;padding:10px 14px;background:linear-gradient(135deg,#d4af4f2e,#d4af4f0f);border:1.5px solid var(--accent-dim);border-radius:12px;color:var(--text);font-size:.9rem;font-family:inherit;cursor:pointer;transition:background .15s,border-color .15s,transform .12s,box-shadow .15s;box-shadow:0 2px 8px #d4af4f14}.hub-instrument-btn:hover{background:linear-gradient(135deg,#d4af4f47,#d4af4f1a);border-color:var(--accent);transform:translateY(-1px);box-shadow:0 4px 14px #d4af4f2e}.hub-instrument-btn.is-open{background:linear-gradient(135deg,#d4af4f52,#d4af4f24);border-color:var(--accent);box-shadow:0 0 0 3px #d4af4f1a,0 4px 14px #d4af4f33}.hub-instrument-icon{display:inline-flex;align-items:center;justify-content:center;color:var(--accent);line-height:0}.hub-instrument-label{font-weight:700;letter-spacing:.02em;color:var(--accent)}.hub-instrument-desc{color:var(--text-dim, #c9c9c9);font-size:.76rem;font-style:italic;border-left:1px solid rgba(212,175,79,.25);padding-left:10px;margin-left:2px}.hub-instrument-caret{color:var(--accent);font-size:.8rem;margin-left:4px;transition:transform .15s}.hub-instrument-btn.is-open .hub-instrument-caret{transform:rotate(180deg)}.hub-instrument-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000004d;z-index:60}.hub-instrument-menu{position:absolute;top:calc(100% + 6px);left:0;z-index:70;min-width:260px;margin:0;padding:6px;list-style:none;background:linear-gradient(165deg,#1e1f28,#191a22);border:1.5px solid var(--accent-dim);border-radius:12px;box-shadow:0 0 0 3px #d4af4f0f,var(--shadow-lg);animation:hub-instrument-menu-in .15s ease-out}@keyframes hub-instrument-menu-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.hub-instrument-item{display:flex;align-items:center;gap:12px;width:100%;padding:9px 12px;background:transparent;border:none;border-radius:8px;color:var(--text);font-family:inherit;text-align:left;cursor:pointer;transition:background .1s}.hub-instrument-item:hover{background:#d4af4f1a}.hub-instrument-item.is-active{background:#d4af4f29}.hub-instrument-item-icon{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;color:var(--text-soft, #d0d0d0);line-height:0;transition:color .12s}.hub-instrument-item:hover .hub-instrument-item-icon,.hub-instrument-item.is-active .hub-instrument-item-icon{color:var(--accent)}.hub-instrument-item-label{display:flex;flex-direction:column;gap:1px;flex:1 1 auto}.hub-instrument-item-label strong{color:var(--text);font-size:.9rem;font-weight:600}.hub-instrument-item-label em{color:var(--text-dim, #c9c9c9);font-size:.74rem;font-style:italic}.hub-instrument-item.is-active .hub-instrument-item-label strong{color:var(--accent)}.hub-instrument-item-check{color:var(--accent);font-weight:700;font-size:1.05rem}.hub-instrument-divider-li{margin-top:4px;padding-top:4px;border-top:1px solid rgba(212,175,79,.18)}.hub-instrument-item--all .hub-instrument-item-icon{color:var(--accent)}.kbd-all-inst-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000008c;z-index:80;backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px)}.kbd-all-inst-panel{position:fixed;z-index:90;top:50%;left:50%;transform:translate(-50%,-50%);width:min(880px,92vw);max-height:80vh;display:flex;flex-direction:column;background:linear-gradient(165deg,#1e1f28,#161720);border:1.5px solid var(--accent);border-radius:14px;box-shadow:0 0 0 4px #d4af4f14,0 30px 80px #0009;overflow:hidden;animation:kbd-all-inst-in .2s ease-out}@keyframes kbd-all-inst-in{0%{opacity:0;transform:translate(-50%,-48%) scale(.97)}to{opacity:1;transform:translate(-50%,-50%) scale(1)}}.kbd-all-inst-header{display:flex;align-items:center;justify-content:space-between;padding:14px 18px;background:linear-gradient(180deg,#d4af4f1f,#d4af4f0a);border-bottom:1px solid rgba(212,175,79,.25);color:var(--accent);font-weight:700;letter-spacing:.04em;text-transform:uppercase;font-size:.82rem}.kbd-all-inst-close{width:28px;height:28px;border-radius:50%;border:1px solid var(--border-soft);background:#ffffff0a;color:var(--text);cursor:pointer;font-size:.9rem;display:inline-flex;align-items:center;justify-content:center;transition:background .12s,color .12s,border-color .12s}.kbd-all-inst-close:hover{background:#d4af4f2e;border-color:var(--accent);color:var(--accent)}.kbd-all-inst-scroll{overflow-y:auto;padding:14px 18px 18px;display:flex;flex-direction:column;gap:14px}.kbd-all-inst-family{display:flex;flex-direction:column;gap:6px}.kbd-all-inst-fam-name{color:var(--accent);font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.14em;padding-bottom:4px;border-bottom:1px solid rgba(212,175,79,.15)}.kbd-all-inst-fam-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:6px}.kbd-all-inst-btn{display:flex;align-items:center;gap:8px;padding:7px 10px;background:#ffffff06;border:1px solid var(--border-soft);border-radius:7px;color:var(--text);font-family:inherit;font-size:.8rem;text-align:left;cursor:pointer;transition:background .12s,border-color .12s,color .12s}.kbd-all-inst-btn:hover{background:#d4af4f1a;border-color:var(--accent-dim);color:var(--accent-soft, #f0d088)}.kbd-all-inst-btn.is-active{background:linear-gradient(135deg,#d4af4f4d,#d4af4f1a);border-color:var(--accent);color:var(--accent);font-weight:600}.kbd-all-inst-num{font-family:var(--font-mono, monospace);font-size:.7rem;color:var(--text-dim, #c9c9c9);min-width:26px;text-align:right}.kbd-all-inst-btn.is-active .kbd-all-inst-num{color:var(--accent)}.kbd-all-inst-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.kbd-sparks-layer{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:5;overflow:hidden}.scale-piano-scroll{position:relative}.kbd-spark{position:absolute;width:6px;height:6px;margin-left:-3px;margin-top:-3px;border-radius:50%;background:radial-gradient(circle at center,#fde9a8,#d4af4f 55%,#d4af4f00);box-shadow:0 0 6px #d4af4fb3;animation:kbd-spark-fly .7s ease-out forwards;--spark-angle: -90deg;--spark-dist: 36px}@keyframes kbd-spark-fly{0%{opacity:1;transform:translate(0) scale(1)}60%{opacity:.9}to{opacity:0;transform:translate(calc(cos(var(--spark-angle)) * var(--spark-dist)),calc(sin(var(--spark-angle)) * var(--spark-dist))) scale(.3)}}.hub-scope-toggle{display:inline-flex;align-items:stretch;border:1.5px solid var(--border);border-radius:12px;background:#ffffff06;padding:3px;gap:2px;flex:0 0 auto}.hub-scope-btn{display:inline-flex;align-items:center;gap:6px;padding:7px 14px;background:transparent;border:none;border-radius:9px;color:var(--text-soft, #d0d0d0);font-size:.82rem;font-weight:600;font-family:inherit;cursor:pointer;transition:background .15s,color .15s}.hub-scope-btn:hover{background:#d4af4f14;color:var(--text)}.hub-scope-btn.is-active{background:linear-gradient(135deg,#d4af4f40,#d4af4f1a);color:var(--accent)}.hub-scope-dot{width:8px;height:8px;border-radius:50%;background:var(--border-strong, #3a3f52);transition:background .15s,box-shadow .15s;flex-shrink:0}.hub-scope-btn.is-active .hub-scope-dot{background:var(--accent);box-shadow:0 0 8px #d4af4f99}.scale-piano .piano-key.is-playable{cursor:pointer;user-select:none;-webkit-user-select:none}.scale-piano .piano-key:not(.is-playable){cursor:default}.scale-piano .piano-key.is-playable:hover{filter:brightness(1.12)}.scale-piano .piano-key.is-pressed{animation:piano-key-flash .42s ease-out}.scale-piano .piano-key.white.is-pressed{background:linear-gradient(180deg,#f4d989,#d4af4f 60%,#b08a32)!important;box-shadow:inset 0 -3px #0000002e,0 0 0 2px #d4af4f73,0 0 18px #d4af4f8c}.scale-piano .piano-key.black.is-pressed{background:linear-gradient(180deg,#5a4a1e,#8a6a28 60%,#b08a32)!important;box-shadow:inset 0 -2px #00000059,0 0 0 2px #d4af4f8c,0 0 16px #d4af4f99}@keyframes piano-key-flash{0%{box-shadow:0 0 #d4af4fd9,0 0 #d4af4fa6}35%{box-shadow:0 0 0 6px #d4af4f59,0 0 22px 4px #d4af4f99}to{box-shadow:0 0 0 2px #d4af4f73,0 0 18px #d4af4f8c}}.scale-play-controls{display:flex;flex-wrap:wrap;align-items:center;gap:10px 18px;margin:0 0 12px;padding:8px 12px;background:#ffffff05;border:1px dashed var(--border-soft);border-radius:8px}.scale-play-group{display:inline-flex;border-radius:8px;overflow:hidden;border:1px solid var(--border-soft)}.scale-play-group button{padding:4px 10px;border:0;background:transparent;color:var(--text);cursor:pointer;font-size:.78rem;font-family:var(--font-mono, monospace);min-width:30px;transition:background .12s,color .12s}.scale-play-group button+button{border-left:1px solid var(--border-soft)}.scale-play-group button:hover{background:#d4af4f1a}.scale-play-group button.active{background:var(--accent);color:#1a1608;font-weight:600}.scale-play-tempo{display:inline-flex;align-items:center;gap:8px;font-size:.76rem;color:var(--text-dim, #c9c9c9)}.scale-play-tempo span{min-width:62px;font-variant-numeric:tabular-nums}.scale-play-tempo input[type=range]{width:140px;accent-color:var(--accent)}.scale-keyboard-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:12px 18px;margin:0 0 12px;padding:8px 12px;background:#ffffff06;border:1px solid var(--border-soft);border-radius:10px}.kbd-octave-group{display:inline-flex;gap:8px}.kbd-octave-btn{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;padding:0;background:linear-gradient(135deg,#d4af4f1a,#d4af4f05);border:1.5px solid var(--accent-dim);border-radius:50%;color:var(--accent);cursor:pointer;transition:background .15s,border-color .15s,transform .12s,box-shadow .15s,color .12s;box-shadow:inset 0 1px #ffffff0a}.kbd-octave-btn:hover{background:linear-gradient(135deg,#d4af4f47,#d4af4f1a);border-color:var(--accent);color:#f5d98a;transform:translateY(-1px) scale(1.04);box-shadow:0 4px 14px #d4af4f33,inset 0 1px #ffffff14}.kbd-octave-btn:active{transform:translateY(0) scale(.98);box-shadow:inset 0 2px 4px #0003}.kbd-octave-btn svg{display:block;filter:drop-shadow(0 0 6px rgba(212,175,79,.35));transition:transform .12s}.kbd-octave-btn:hover svg{filter:drop-shadow(0 0 10px rgba(212,175,79,.55))}.kbd-knob{display:inline-flex;align-items:center;gap:8px;font-size:.78rem;color:var(--text-dim, #c9c9c9);flex:0 0 auto}.kbd-knob-label{color:var(--accent);text-transform:uppercase;letter-spacing:.1em;font-size:.68rem;font-weight:600;min-width:50px}.kbd-knob input[type=range]{width:80px;flex:0 0 80px;accent-color:var(--accent)}.kbd-knob-value{font-variant-numeric:tabular-nums;min-width:24px;text-align:right;color:var(--text);font-weight:600;font-size:.76rem}.scale-piano-scroll{overflow:hidden;--kbd-min-white: 36px}.scale-piano-scroll>.scale-piano.is-scrollable{min-width:calc(var(--white-count) * var(--kbd-min-white));transition:transform .25s ease-out;will-change:transform}.scale-diatonic{margin:12px 0 0;padding:10px 12px;background:#ffffff05;border:1px solid var(--border-soft);border-radius:10px}.scale-diatonic-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:8px}.scale-diatonic-label{display:inline-flex;align-items:center;gap:8px;color:var(--accent);text-transform:uppercase;letter-spacing:.14em;font-size:.92rem;font-weight:700;font-family:var(--font-display, inherit);text-shadow:0 0 18px rgba(212,175,79,.18)}.scale-diatonic-help-btn{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;padding:0;border-radius:50%;border:1px solid var(--accent-dim);background:#d4af4f14;color:var(--accent);font-size:.78rem;font-weight:700;font-family:var(--font-display, inherit);line-height:1;cursor:pointer;transition:background .12s,border-color .12s,transform .12s,color .12s}.scale-diatonic-help-btn:hover{background:#d4af4f38;border-color:var(--accent);transform:scale(1.08)}.scale-diatonic-help-btn.is-open{background:var(--accent);border-color:var(--accent);color:#1a1c24}.scale-diatonic-help{margin:0 0 10px;padding:12px 14px;background:linear-gradient(165deg,#d4af4f12,#d4af4f05);border:1px solid rgba(212,175,79,.25);border-radius:8px;color:var(--text-soft, #d9d9d9);font-size:.82rem;line-height:1.55;animation:scale-diatonic-help-in .18s ease-out}@keyframes scale-diatonic-help-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.scale-diatonic-help p{margin:0 0 8px}.scale-diatonic-help p:last-child{margin-bottom:0}.scale-diatonic-help strong{color:var(--text, #f5f5f5)}.scale-diatonic-help-section-title{margin:12px 0 6px!important;color:var(--accent);font-size:.72rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase}.scale-diatonic-help-list{margin:0 0 8px;padding-left:18px;display:flex;flex-direction:column;gap:3px}.scale-diatonic-help-list li::marker{color:var(--accent-dim)}.scale-diatonic-help-prog{display:inline-block;padding:1px 8px;background:#d4af4f1f;border:1px solid rgba(212,175,79,.3);border-radius:4px;color:var(--accent);font-family:var(--font-mono, monospace);font-size:.82rem;font-weight:600;white-space:nowrap}.scale-diatonic-help-legend{display:flex;flex-direction:column;gap:6px}.scale-diatonic-help-legend span{display:inline-flex;align-items:baseline;gap:8px}.fn-dot{display:inline-block;width:8px;height:8px;border-radius:50%;flex-shrink:0;font-style:normal;transform:translateY(1px)}.fn-tonic-dot{background:#8be5bd;box-shadow:0 0 8px #8be5bd80}.fn-subdominant-dot{background:#d4af4f;box-shadow:0 0 8px #d4af4f80}.fn-dominant-dot{background:#f08a7f;box-shadow:0 0 8px #f08a7f80}.scale-diatonic-hint{color:var(--text-dim, #c9c9c9);font-size:.7rem}.scale-diatonic-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(82px,1fr));gap:8px}.scale-diatonic-chip{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;padding:10px 8px 9px;border-radius:10px;border:1px solid var(--border-soft);background:linear-gradient(180deg,#ffffff0a,#ffffff04);color:var(--text);cursor:pointer;overflow:hidden;transition:border-color .14s,background .14s,transform .1s,box-shadow .14s}.scale-diatonic-chip:before{content:"";position:absolute;top:0;left:0;right:0;height:2px;background:currentColor;opacity:.55}.scale-diatonic-chip:hover{border-color:var(--accent-dim);background:linear-gradient(180deg,#d4af4f1f,#d4af4f0a);transform:translateY(-2px);box-shadow:0 4px 14px #00000040}.scale-diatonic-chip:hover:before{opacity:1}.scale-diatonic-chip.active{border-color:var(--accent);background:linear-gradient(135deg,#d4af4f4d,#d4af4f1f);box-shadow:0 2px 12px #d4af4f47}.scale-diatonic-chip.active:before{opacity:1;height:3px}.scale-diatonic-chip .sd-degree{display:inline-flex;align-items:center;gap:5px;font-size:.78rem;font-weight:700;letter-spacing:.04em;font-family:var(--font-display, inherit)}.scale-diatonic-chip .sd-degree .fn-dot{width:6px;height:6px;transform:none}.scale-diatonic-chip .sd-chord{font-size:1rem;font-weight:700;font-family:var(--font-mono, monospace);color:var(--text, #f5f5f5)}.scale-diatonic-chip.fn-tonic{color:#8be5bd}.scale-diatonic-chip.fn-subdominant{color:#d4af4f}.scale-diatonic-chip.fn-dominant{color:#f08a7f}.scale-diatonic-chip.fn-tonic .sd-degree,.scale-diatonic-chip.fn-subdominant .sd-degree,.scale-diatonic-chip.fn-dominant .sd-degree{color:inherit}.scale-diatonic-row.display-degrees .scale-diatonic-chip .sd-degree,.scale-diatonic-row.display-intervals .scale-diatonic-chip .sd-degree{font-size:1.1rem;font-weight:800;letter-spacing:.02em;gap:6px}.scale-diatonic-row.display-degrees .scale-diatonic-chip .sd-degree .fn-dot,.scale-diatonic-row.display-intervals .scale-diatonic-chip .sd-degree .fn-dot{width:7px;height:7px}.scale-diatonic-row.display-degrees .scale-diatonic-chip .sd-chord,.scale-diatonic-row.display-intervals .scale-diatonic-chip .sd-chord{font-size:.78rem;font-weight:600;color:var(--text-dim, #c9c9c9)}.scale-song-matches{margin:12px 0 0;padding:8px 12px;background:#3ecf8e0d;border-left:3px solid rgba(62,207,142,.45);border-radius:4px;display:flex;flex-wrap:wrap;align-items:center;gap:8px}.scale-song-matches-label{color:var(--text-dim, #c9c9c9);font-size:.78rem}.scale-song-matches-row{display:inline-flex;flex-wrap:wrap;gap:5px}.scale-song-match-chip{padding:3px 9px;border-radius:999px;border:1px solid rgba(62,207,142,.3);background:transparent;color:#b7e8cf;font-size:.74rem;cursor:pointer;transition:background .12s,border-color .12s;max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.scale-song-match-chip:hover{background:#3ecf8e1f;border-color:#3ecf8e;color:#cfeed9}.scale-song-matches-more{color:var(--text-dim, #c9c9c9);font-size:.72rem;opacity:.7}@container (max-width: 620px){.scale-hub-toolbar{flex-direction:column;align-items:stretch}.scale-hub-toolbar-actions{justify-content:flex-start}.scale-play-controls{gap:8px 12px}.scale-play-tempo input[type=range]{width:110px}}.scale-header-toggles{display:inline-flex;gap:6px;flex-wrap:wrap}.scale-compact-toggle{padding:5px 10px;border-radius:999px;border:1px solid var(--border-soft);background:var(--panel);color:var(--muted);font-size:.72rem;font-weight:600;cursor:pointer;transition:all .15s}.scale-compact-toggle:hover{color:var(--text);border-color:var(--border)}.scale-compact-toggle.on{border-color:var(--accent-dim);color:var(--accent-soft);background:#d4af4f14}.scale-piano .piano-whites{display:grid;grid-template-columns:repeat(var(--white-count, 21),1fr);height:100%;gap:2px}.scale-piano .piano-blacks{position:absolute;top:0;left:0;right:0;height:62%;pointer-events:none}.scale-piano .piano-key-label{display:block;font-size:.72rem;font-weight:600;letter-spacing:.02em}.scale-piano .piano-key.white .piano-key-label{color:#1a1608}.scale-piano .piano-key.black .piano-key-label{color:#fff;font-size:.62rem}.scale-piano .piano-key.white:not(.active) .piano-key-label,.scale-piano .piano-key.black:not(.active) .piano-key-label{visibility:hidden}.scale-root-controls{display:inline-flex;align-items:center;gap:4px;padding:5px 10px 5px 8px;border:1px solid var(--border);border-radius:var(--r-md);background:var(--panel)}.scale-root-label{font-size:.68rem;font-weight:800;text-transform:uppercase;letter-spacing:.09em;color:var(--muted);padding-right:8px;margin-right:2px;border-right:1px solid var(--border-soft);white-space:nowrap;-webkit-user-select:none;user-select:none}.scale-root-btn{display:flex;align-items:center;justify-content:center;width:30px;height:30px;border:1px solid var(--border-soft);background:var(--panel-2);color:var(--text-soft);font-size:.85rem;font-weight:700;font-family:var(--font-mono);border-radius:var(--r-sm);cursor:pointer;transition:background .12s,border-color .12s,color .12s;line-height:1;flex-shrink:0}.scale-root-btn:hover:not(:disabled){background:var(--panel-3);border-color:var(--accent-dim);color:var(--accent-soft)}.scale-root-btn:active:not(:disabled){background:#d4af4f24;border-color:var(--accent)}.scale-root-btn:disabled{opacity:.35;cursor:not-allowed}.scale-root-value{min-width:38px;text-align:center;padding:4px 7px;background:var(--panel-2);border:1px solid var(--border-soft);border-radius:var(--r-sm);font-weight:700;font-size:.9rem;font-family:var(--font-mono);color:var(--accent);pointer-events:none;-webkit-user-select:none;user-select:none}.scale-mode-switch{display:inline-flex;margin-left:2px;background:var(--panel-2);border:1px solid var(--border-soft);border-radius:var(--r-sm);padding:2px;gap:2px}.scale-mode-switch button{display:flex;align-items:center;justify-content:center;width:26px;height:26px;border:0;background:transparent;color:var(--muted);font-size:.78rem;font-weight:800;border-radius:6px;cursor:pointer;transition:background .12s,color .12s}.scale-mode-switch button:hover:not(:disabled){color:var(--text);background:#ffffff0f}.scale-mode-switch button.active{background:var(--accent);color:#1a1608}.scale-mode-switch button:disabled{opacity:.35;cursor:not-allowed}.scale-root-reset{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border:1px solid var(--border-soft);background:transparent;color:var(--muted-2);font-size:.9rem;border-radius:var(--r-sm);cursor:pointer;transition:all .12s;margin-left:2px;flex-shrink:0}.scale-root-reset:hover{color:var(--text-soft);border-color:var(--border);background:var(--panel-2)}.transpose-group{display:inline-flex;align-items:stretch;border:1.5px solid var(--accent-dim);border-radius:var(--r-md);background:#d4af4f0a;box-shadow:0 0 0 3px #d4af4f12,var(--shadow-sm);overflow:hidden}.transpose-group .scale-root-controls{border:0;border-radius:0;background:transparent;padding:8px 12px}.transpose-group .scale-root-controls+.scale-root-controls{border-left:1.5px solid var(--accent-dim)}.instrument-switch{display:grid;grid-template-columns:1fr 1fr;width:100%;margin-top:18px;background:var(--panel-2);border:1px solid var(--border);border-radius:14px;padding:6px;gap:6px}.instrument-switch button{width:100%;padding:12px 10px;border:1px solid var(--border);background:var(--panel);color:var(--text, #e7e3d8);font-size:.92rem;font-weight:600;border-radius:10px;cursor:pointer;transition:background .15s,color .15s,border-color .15s,box-shadow .15s;letter-spacing:.01em;text-align:center;min-height:44px}.instrument-switch button:hover{border-color:var(--accent-dim);color:var(--accent)}.instrument-switch button.active{background:linear-gradient(135deg,var(--accent-soft),var(--accent));color:#1a1608;border-color:var(--accent);box-shadow:0 2px 8px #d4af4f4d}.topbar-instrument-stack{display:flex;flex-direction:column;gap:4px;flex-shrink:0}.instrument-switch--wind{grid-template-columns:repeat(auto-fit,minmax(120px,1fr));margin-top:6px}.instrument-switch--wind button{background:linear-gradient(180deg,var(--panel) 0%,#1f1a14 100%)}.instrument-switch--wind button:hover{border-color:#c89b3c;color:#d4af4f}.instrument-switch--wind{position:relative;align-items:center}.instrument-wip-badge{display:inline-flex;align-items:center;font-size:.72rem;font-style:italic;color:#c89b3c;letter-spacing:.03em;padding-left:4px;white-space:nowrap;opacity:.85;pointer-events:none}.midi-station-cta{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;margin-top:8px;padding:11px 14px;border:1px solid var(--border);border-radius:14px;background:linear-gradient(135deg,#2a2238,#1a1628);color:#e7e3d8;font-size:.92rem;font-weight:600;font-family:Cinzel,serif;letter-spacing:.04em;cursor:pointer;transition:all .18s;min-height:44px;box-shadow:inset 0 1px #ffffff0a}.midi-station-cta:hover{border-color:var(--accent-dim);color:var(--accent);background:linear-gradient(135deg,#352a48,#221c34)}.midi-station-cta.active{background:linear-gradient(135deg,var(--accent-soft),var(--accent));color:#1a1608;border-color:var(--accent);box-shadow:0 2px 10px #d4af4f59}.midi-station-cta-icon{font-size:1.1rem;line-height:1}.topbar-midi-cta--compact{width:auto;margin-top:0;padding:6px 12px;min-height:34px;border-radius:10px;gap:6px;font-size:.74rem}.topbar-midi-cta--compact .midi-station-cta-icon{display:inline-flex;align-items:center;font-size:0}.topbar-midi-cta--compact .topbar-midi-cta-text{font-size:.74rem;letter-spacing:.04em;white-space:nowrap}.live-cta{display:inline-flex;align-items:center;justify-content:center;gap:8px;cursor:pointer;font-family:Cinzel,serif;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:#1a1208;border:1px solid var(--accent);border-radius:12px;background:linear-gradient(135deg,#ffd970,#e0bd5e,#d4af4f);box-shadow:0 2px 10px #d4af4f66,inset 0 1px #fff6;min-height:44px;transition:box-shadow .2s ease,filter .2s ease,border-color .2s ease}.live-cta:hover{filter:brightness(1.06);box-shadow:0 4px 18px #ffd97099,inset 0 1px #ffffff80}.live-cta:active{filter:brightness(.97)}.live-cta:focus-visible{outline:none;box-shadow:0 0 0 3px #ffd97099}.live-cta-label{line-height:1}.live-cta-dot{width:9px;height:9px;border-radius:50%;background:#b3261e;flex:none;animation:live-pulse 1.6s ease-out infinite}@keyframes live-pulse{0%{box-shadow:0 0 #b3261ea6}70%{box-shadow:0 0 0 7px #b3261e00}to{box-shadow:0 0 #b3261e00}}@media (prefers-reduced-motion: reduce){.live-cta-dot{animation:none}}.topbar-live-cta{padding:6px 16px;font-size:.82rem;min-height:38px}.home-live-cta{width:100%;margin-top:10px;padding:12px 18px;font-size:.95rem;border-radius:14px}.midi-workspace{padding:28px 34px 40px;max-width:none;width:100%;margin:0}.midi-workspace-head{display:grid;grid-template-columns:minmax(220px,auto) 1fr;gap:28px;align-items:start;margin-bottom:22px;padding-bottom:18px;border-bottom:1px solid rgba(212,175,79,.15)}.midi-workspace-back{display:inline-flex;align-items:center;gap:4px;margin-bottom:10px;padding:6px 12px;font-size:.82rem;font-weight:600;color:var(--accent);background:#d4af4f14;border:1px solid rgba(212,175,79,.32);border-radius:var(--r-sm, 8px);cursor:pointer;transition:background .15s,border-color .15s}.midi-workspace-back:hover{background:#d4af4f29;border-color:#d4af4f8c}.midi-workspace-title h1{margin:0;font-family:Cinzel,serif;font-size:2rem;font-weight:500;color:#f2e9d4;letter-spacing:.02em}.midi-workspace-blurb{display:flex;flex-direction:column;gap:8px;font-size:.88rem;line-height:1.45;color:#f2e9d4c7;max-width:720px}.midi-workspace-blurb p{margin:0}.midi-workspace-blurb strong{color:#f2e9d4}@media (max-width: 900px){.midi-workspace-head{grid-template-columns:1fr;gap:14px}}.midi-station.stacked{display:flex;flex-direction:column;gap:28px}.midi-station-section{display:flex;flex-direction:column;gap:16px;padding:22px 24px;background:linear-gradient(180deg,#2821168c,#1c18118c);border:1px solid rgba(212,175,79,.22);border-radius:14px;box-shadow:0 4px 18px #00000047,inset 0 1px #d4af4f14}.midi-station-section:before{content:"";display:block;height:3px;width:48px;background:linear-gradient(90deg,var(--accent, #d4af4f),rgba(212,175,79,.2));border-radius:2px;margin-bottom:2px}.midi-section-title{margin:0;font-size:1.35rem;font-weight:700;color:#f2e9d4;padding-bottom:10px;border-bottom:1px solid rgba(212,175,79,.25);letter-spacing:.3px}.midi-section-header{display:flex;align-items:center;justify-content:space-between;gap:16px;padding-bottom:10px;border-bottom:1px solid rgba(212,175,79,.25)}.midi-section-header .midi-section-title{padding-bottom:0;border-bottom:none}.midi-section-toggle{background:#d4af4f1f;color:#f2e9d4;border:1px solid rgba(212,175,79,.35);border-radius:8px;padding:6px 14px;font-size:.85rem;font-weight:500;cursor:pointer;transition:background .15s,border-color .15s}.midi-section-toggle:hover{background:#d4af4f38;border-color:#d4af4f8c}.guitar-fretboard{display:block;width:100%;height:auto;background:linear-gradient(180deg,#2a241a,#1c1811);border-radius:8px;border:1px solid var(--border-soft)}.guitar-fretboard .fret-dot,.guitar-fretboard .fret-dot.is-root{fill:var(--accent);stroke:var(--accent-dim);stroke-width:1}.guitar-fretboard .fret-dot-label{fill:#1a1608;pointer-events:none}.guitar-fretboard.chord-scale .fret-dot,.guitar-fretboard.chord-scale .fret-dot.is-root{fill:#7ec8ff;stroke:#3a9ee0}.guitar-fretboard.chord-scale .fret-dot-label{fill:#0b2740}.fretboard-wrap{position:relative}.fretboard-wrap:not(.is-playable){max-width:720px;margin-left:0;margin-right:auto}.fretboard-wrap.is-playable{user-select:none;-webkit-user-select:none;max-width:70%}.guitar-fretboard.is-playable{cursor:pointer}.guitar-fretboard .fret-hit{fill:transparent;stroke:none;cursor:pointer;transition:fill .08s ease}.guitar-fretboard .fret-hit:hover{fill:#d4af4f14}.guitar-fretboard .fret-dot.is-pressed{fill:#fde9a8;stroke:#d4af4f;stroke-width:2;filter:drop-shadow(0 0 6px rgba(212,175,79,.75));animation:fret-dot-flash .42s ease-out}.guitar-fretboard .fret-dot.is-out-scale{fill:#d4af4f8c;stroke:#d4af4fd9}.guitar-fretboard.chord-scale .fret-dot.is-pressed{fill:#fde9a8;stroke:#d4af4f}@keyframes fret-dot-flash{0%{filter:drop-shadow(0 0 0 rgba(212,175,79,.9))}35%{filter:drop-shadow(0 0 12px rgba(212,175,79,.8))}to{filter:drop-shadow(0 0 6px rgba(212,175,79,.6))}}.chord-mode-switch{display:inline-flex;background:var(--panel-2);border:1px solid var(--border-soft);border-radius:999px;padding:2px;margin:6px 0 14px;gap:2px}.chord-mode-switch button{padding:4px 14px;border:0;background:transparent;color:var(--muted, #9aa0aa);font-size:.8rem;font-weight:600;border-radius:999px;cursor:pointer;transition:background .15s,color .15s}.chord-mode-switch button:hover{color:var(--text)}.chord-mode-switch button.active{background:linear-gradient(135deg,var(--accent-soft),var(--accent));color:#1a1608}.guitar-diagram-wrap{display:flex;justify-content:center;padding:6px 0 10px}.guitar-diagram{display:block}.guitar-fallback{color:var(--muted, #9aa0aa);font-size:.85rem;text-align:center;padding:28px 12px}.chord-follow-toggle{display:inline-flex;align-items:center;gap:10px;cursor:pointer;-webkit-user-select:none;user-select:none;font-size:.82rem;color:var(--muted, #9aa3ad);padding:6px 4px;transition:color .15s}.chord-follow-toggle:hover{color:var(--text)}.chord-follow-toggle.on{color:#7ec8ff}.chord-follow-toggle input{display:none}.chord-follow-slider{position:relative;width:34px;height:18px;border-radius:999px;background:var(--panel-2, #1d2230);border:1px solid var(--border-soft);transition:background .15s,border-color .15s}.chord-follow-slider:after{content:"";position:absolute;top:1px;left:1px;width:14px;height:14px;border-radius:50%;background:var(--text);transition:transform .18s ease,background .18s}.chord-follow-toggle.on .chord-follow-slider{background:linear-gradient(135deg,#3a9ee0,#1d5785);border-color:#1d5785}.chord-follow-toggle.on .chord-follow-slider:after{transform:translate(16px);background:#eaf4ff}.scale-chip:disabled{opacity:.45;cursor:not-allowed}.scale-piano.chord-scale .piano-key.white.active{background:linear-gradient(180deg,#9bd3ff,#3a9ee0);border-color:#1d5785;box-shadow:inset 0 -3px 6px #00000038,0 0 10px #3a9ee059;color:#0b1a2c}.scale-piano.chord-scale .piano-key.white.active.root{background:linear-gradient(180deg,#9bd3ff,#3a9ee0);box-shadow:inset 0 -3px 6px #00000038}.scale-piano.chord-scale .piano-key.black.active{background:linear-gradient(180deg,#3a9ee0,#123a5c);border-color:#000;box-shadow:inset 0 -4px 5px #00000059;color:#eaf4ff}.scale-piano.chord-scale .piano-key.black.active.root{background:linear-gradient(180deg,#3a9ee0,#123a5c);box-shadow:inset 0 -4px 5px #00000059;color:#eaf4ff}.section-header-row{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.section-header-row h4{margin:0}.chord-edit-controls{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.section-card.edit-mode{border-color:var(--accent-dim);background:#d4af4f0a}.beat-edit-input{display:inline-flex;align-items:center;justify-content:center;min-height:52px;width:100%;padding:6px;border-radius:var(--r-sm);border:1px solid var(--accent-dim);background:var(--panel-3);font-family:var(--font-mono);font-weight:600;font-size:1.1rem;color:var(--text);letter-spacing:-.01em;text-align:center;outline:none;transition:border-color .12s,background .12s}.beat-edit-input:focus{border-color:var(--accent);background:#d4af4f1a}.beat-edit-input::placeholder{color:var(--muted-2);font-weight:400}.linear-chords-edit{display:flex;flex-wrap:wrap;gap:6px;padding:4px 0}.linear-chords-edit .beat-edit-input{width:90px;min-height:44px;font-size:1rem}.danger-btn{background:transparent;color:var(--danger);border:1px solid var(--danger);border-radius:var(--r-sm);padding:8px 16px;font-size:.85rem;font-weight:600;cursor:pointer;transition:background .15s,color .15s}.danger-btn:hover{background:#e5484d1f}.danger-btn:disabled{opacity:.4;cursor:not-allowed}.danger-btn.compact-btn{padding:5px 12px;font-size:.8rem}.sidebar-backdrop{display:none;position:fixed;top:0;right:0;bottom:0;left:0;z-index:110;border:0;padding:0;background:#0000008c;backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px);opacity:0;pointer-events:none;cursor:pointer;transition:opacity .2s ease-out}@media (max-width: 1200px){.meta-grid,.form-grid{grid-template-columns:1fr 1fr}}@media (max-width: 900px){.app-shell,.app-shell.is-sidebar-collapsed{grid-template-columns:1fr;--topbar-h: 110px}.topbar{left:0;padding:10px 14px;gap:10px}.app-shell .topbar>.topbar-sidebar-stack .topbar-sidebar-toggle{width:auto;height:38px;min-height:38px;padding:0 12px;border-radius:999px;gap:6px;font-size:.92rem;letter-spacing:.02em}.topbar .topbar-sidebar-toggle-icon{display:inline-flex;font-size:1.05rem}.topbar .topbar-sidebar-toggle-label{display:inline;font-weight:600}.topbar .topbar-sidebar-toggle-caret{font-size:1.1rem;opacity:.8}.app-shell .topbar>.topbar-sidebar-stack .topbar-collection-toggle{display:none}.topbar .topbar-brand-dock{gap:10px;flex:1 1 0;min-width:0}.topbar .topbar-brand-logo{gap:4px}.topbar .topbar-brand-logo .brand-main{font-size:1.3rem;letter-spacing:.04em}.topbar .topbar-brand-logo .brand-sub-text{font-size:.7rem;letter-spacing:.2em}.topbar .topbar-brand-logo .brand-sub-dash{width:14px}.topbar .topbar-instrument-switch{grid-template-columns:repeat(4,minmax(0,1fr));padding:3px;gap:3px;max-width:340px}.topbar .topbar-instrument-switch button{padding:6px;min-height:34px;min-width:0;font-size:.78rem;letter-spacing:0}.topbar .topbar-midi-cta{flex-direction:row;padding:8px 12px;font-size:.9rem;gap:6px}.topbar .topbar-midi-cta-text{display:none}.topbar-btn span:last-child{display:none}.topbar-btn{padding:8px 12px;min-width:40px}.topbar-btn-icon{font-size:1.1rem}.topbar-actions{gap:6px}.app-shell .sidebar{display:flex!important;position:fixed;top:0;left:0;bottom:0;width:min(340px,88vw);height:100vh;height:100dvh;max-height:none;z-index:120;border-right:1px solid var(--border-soft);border-bottom:0;transform:translate(-100%);transition:transform .28s ease-out;box-shadow:20px 0 60px #0000008c}.app-shell:not(.is-sidebar-collapsed) .sidebar{transform:translate(0)}.sidebar-backdrop{display:block}.app-shell:not(.is-sidebar-collapsed) .sidebar-backdrop{opacity:1;pointer-events:auto}.topbar-brand-dock.is-dock-desktop-hidden{display:flex}.meta-grid,.form-grid{grid-template-columns:1fr}.song-card{padding:22px 20px}.song-card h3{font-size:1.7rem}.content{padding:20px 16px 32px}}.home-mobile-intro,.sidebar-title-mobile-row,.impro-instrument-switch{display:none}@media (max-width: 1200px){.home-mobile-intro{display:flex;flex-direction:column;align-items:center;gap:12px;padding:18px 14px 22px;margin:0 0 18px;border-bottom:1px solid var(--border-soft)}.topbar-instrument-switch,.instrument-switch.topbar-instrument-switch,.topbar .brand-logo-btn,.topbar-brand-btn,.sidebar-header .brand-logo-btn{display:none!important}.home-mobile-intro .brand-logo .brand-main{font-size:2.6rem;letter-spacing:.09em}.home-mobile-intro .brand-logo .brand-sub-text{font-size:1.25rem;letter-spacing:.32em}.home-mobile-intro .brand-logo .brand-sub-dash{width:32px}}@media (max-width: 640px){.home-section--liveset,.home-ticker{display:none}.home-mobile-intro-logo{margin:0;transform:scale(.78);transform-origin:center top}.home-mobile-intro-tagline{margin:0;text-align:center;color:var(--muted);font-size:.85rem;line-height:1.5;max-width:320px}.home-mobile-intro-instrument{display:flex;flex-direction:column;align-items:stretch;gap:6px;margin:4px 0 0;padding:6px;background:#d4af4f0f;border:1px solid rgba(212,175,79,.25);border-radius:18px}.home-mobile-intro-instrument-row{display:flex;flex-wrap:wrap;justify-content:center;gap:6px}.home-mobile-intro-instrument button{padding:7px 14px;background:transparent;border:1px solid transparent;border-radius:999px;color:var(--muted);font-family:var(--font-ui);font-size:.82rem;font-weight:600;cursor:pointer;transition:background .12s,color .12s,border-color .12s}.home-mobile-intro-instrument button:hover{color:var(--accent);background:#d4af4f1a}.home-mobile-intro-instrument button.active{background:linear-gradient(180deg,#d4af4ff2,#b8903cf2);color:#1a1608;border-color:#d4af4fd9;box-shadow:0 2px 8px #d4af4f66}.sidebar-header .brand-logo-btn{display:none}.sidebar-title-mobile-row{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:4px 6px 10px;padding:6px 4px 10px;border-bottom:1px solid var(--border-soft)}.sidebar-title-mobile{margin:0;flex:1 1 auto;font-family:Playfair Display,Cormorant Garamond,Georgia,serif;font-weight:700;font-size:1.55rem;line-height:1.1;color:var(--accent);text-align:center;letter-spacing:.02em}.sidebar-close-mobile{flex:0 0 auto;width:38px;height:38px;border-radius:999px;border:1px solid var(--border);background:#00000059;color:var(--text);font-size:1.5rem;line-height:1;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;transition:background .15s,border-color .15s,color .15s,transform .15s}.sidebar-close-mobile:hover{background:#d4af4f2e;border-color:var(--accent);color:var(--accent)}.sidebar-close-mobile:active{transform:scale(.94)}.app-shell .topbar>.topbar-sidebar-stack .topbar-sidebar-toggle{width:auto;height:38px;min-height:38px;padding:0 12px;border-radius:999px;gap:6px;font-size:.92rem;letter-spacing:.02em}.topbar .topbar-sidebar-toggle-icon{display:inline-flex;font-size:1.05rem}.topbar .topbar-sidebar-toggle-label{display:inline;font-weight:600}.topbar .topbar-sidebar-toggle-caret{font-size:1.1rem;opacity:.8}.app-shell .topbar>.topbar-sidebar-stack .topbar-collection-toggle{display:none}.topbar .topbar-midi-cta{display:none}.topbar .topbar-instrument-switch{max-width:none}.home-progressions .home-progressions-header .home-section-count,.topbar .topbar-btn--home,.topbar .topbar-btn--spotify{display:none}.topbar .topbar-instrument-switch button{padding:8px 0;min-height:38px}.topbar .topbar-instrument-switch .instrument-switch-label{display:none}.topbar .topbar-instrument-switch .instrument-switch-emoji{display:inline-block;font-size:1.15rem;line-height:1}.home-hero-content{padding:14px;gap:12px}.home-hero-title{font-size:1.7rem}.home-hero-bars{grid-template-columns:1fr;gap:6px}.home-hero-bar{padding:5px;gap:3px}.hero-beat{font-size:.82rem;padding:4px}.home-hero-cta{flex-direction:column;gap:8px}.home-hero-cta .hero-btn-primary,.home-hero-cta .hero-btn-ghost{width:100%;padding:10px 12px}.home-hero-spotify-row{justify-content:center}.home-hero-spotify-row .spotify-cta{width:100%;justify-content:center}.home-hero-badges{gap:5px}.hero-badge{padding:4px 9px;font-size:.72rem}.home-progressions .home-progressions-controls{display:none}.home-progressions .home-progressions-keybar{gap:6px;margin:6px 0 10px}.home-progressions .home-progressions-keylabel{font-size:.72rem}.home-progressions .home-progressions-keychips.big{gap:3px}.home-progressions .home-progressions-keychips.big .home-progressions-keychip{padding:4px 7px;font-size:.78rem;min-width:28px}.home-progressions .home-progressions-modeswitch{gap:3px}.home-progressions .home-progressions-modeswitch button{padding:4px 8px;font-size:.76rem}.home-progressions .home-progressions-grid{grid-template-columns:1fr!important;gap:12px}.home-progressions .home-progressions-grid>*:nth-child(n+4){display:none}.home-progressions:has(.home-progressions-expand.is-expanded) .home-progressions-grid>*:nth-child(n+4){display:block}.home-progressions .home-progressions-expand-wrap{margin-top:8px;display:flex;justify-content:center}.home-progressions .home-progressions-expand{padding:6px 14px;font-size:.82rem}.scale-keyboard-card .scale-character-card,.scale-keyboard-card .scale-suggestions,.scale-keyboard-card .scale-chord-zoom,.scale-keyboard-card .scale-hub-toolbar,.scale-keyboard-card .scale-keyboard-header,.scale-keyboard-card .scale-keyboard-scales,.scale-keyboard-card .scale-play-controls,.scale-keyboard-card .scale-diatonic{display:none}.scale-keyboard-card{padding:8px}.scale-piano{height:130px}}@media (max-width: 640px){.app-shell,.app-shell.is-sidebar-collapsed{--topbar-h: 60px}.app-shell .topbar{display:grid;grid-template-columns:auto 1fr auto;grid-template-rows:auto;height:auto;min-height:var(--topbar-h);padding:8px 10px;gap:8px;align-items:center}.app-shell .topbar>.topbar-sidebar-toggle{grid-column:1;grid-row:1;justify-self:start}.app-shell .topbar>.topbar-brand-dock{grid-column:2;grid-row:1;width:auto;gap:8px;justify-content:center;align-items:center}.app-shell .topbar>.topbar-stats{display:none}.app-shell .topbar>.topbar-actions{grid-column:3;grid-row:1;justify-self:end}.topbar .topbar-brand-dock{gap:10px;align-items:center;justify-content:center}.topbar .topbar-brand-btn{display:inline-flex;flex:0 0 auto;padding:0;height:auto}.topbar .topbar-brand-btn .topbar-brand-logo{transform:scale(.7);transform-origin:center}.app-shell:has(.home-mobile-intro) .topbar .topbar-brand-btn{display:none}.topbar .topbar-instrument-switch{display:none}.impro-instrument-switch{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:4px;padding:4px;margin:6px 0 8px;border:1px solid var(--border);border-radius:12px;background:#00000040}.impro-instrument-switch button{padding:8px 4px;min-height:44px;font-size:.82rem;font-weight:600;border-radius:8px;border:1px solid transparent;background:transparent;color:var(--text);cursor:pointer}.impro-instrument-switch button.active{background:#d4af4f2e;border-color:var(--accent);color:var(--accent)}.topbar .topbar-midi-cta{padding:6px 10px;font-size:.8rem;flex:0 0 auto}.topbar .topbar-midi-cta-icon{font-size:1.1rem}.topbar-actions{gap:4px}.topbar-btn{padding:7px 9px;min-width:36px}.content{padding:16px 10px 24px}}.home-progressions{padding:22px 24px 26px;border:1px solid var(--border-soft);border-radius:16px;background:linear-gradient(180deg,#ffffff05,#00000014);container-type:inline-size}.home-progressions-header{margin-bottom:14px}.home-progressions-intro{margin:6px 0 0;color:var(--text-muted, #b7bbc4);font-size:.92rem;max-width:640px}.home-progressions-keybar{display:flex;align-items:center;gap:12px;margin:8px 0 14px;flex-wrap:wrap}.home-progressions-keylabel{font-size:.8rem;color:var(--text-muted, #b7bbc4);letter-spacing:.04em}.home-progressions-keychips{display:flex;flex-wrap:wrap;gap:5px;align-items:center}.home-progressions-keychip{background:#ffffff0a;border:1px solid var(--border-soft);color:var(--text);padding:5px 9px;min-width:34px;border-radius:8px;font-size:.82rem;font-weight:600;cursor:pointer;transition:all .15s ease}.home-progressions-keychip:hover{background:#ffffff14;border-color:#d4af4f4d}.home-progressions-keychip.active{background:linear-gradient(135deg,var(--accent),#b78a2e);color:#1a1510;border-color:var(--accent);box-shadow:0 2px 10px #d4af4f4d}.home-progressions-modeswitch{display:inline-flex;gap:0;margin-left:24px;border-radius:8px;overflow:hidden;border:1px solid var(--border-soft);flex-shrink:0}.home-progressions-modeswitch button{background:#ffffff08;color:var(--text);border:0;padding:8px 16px;font-size:.85rem;font-weight:700;cursor:pointer;transition:background .15s;white-space:nowrap}.home-progressions-modeswitch button:hover{background:#ffffff14}.home-progressions-modeswitch button.active{background:var(--accent);color:#1a1510}.home-progressions-controls{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px 18px;margin-bottom:14px}.home-progressions-stylebar{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.home-progressions-tempo{display:inline-flex;align-items:center;gap:10px;padding:6px 14px;background:#ffffff08;border:1px solid var(--border-soft);border-radius:999px;transition:border-color .15s,background .15s}.home-progressions-tempo:hover{border-color:#d4af4f66;background:#d4af4f0d}.home-progressions-tempo-value{font-size:.8rem;font-weight:700;color:var(--accent-soft, #e4c87a);min-width:62px;font-variant-numeric:tabular-nums;letter-spacing:.02em}.home-progressions-tempo input[type=range]{width:140px;accent-color:var(--accent);cursor:pointer}.home-progressions-filters{display:flex;flex-wrap:wrap;gap:6px}.home-progressions-filter{background:#ffffff08;border:1px solid var(--border-soft);color:var(--text-muted, #b7bbc4);padding:5px 12px;border-radius:999px;font-size:.8rem;font-weight:600;cursor:pointer;transition:all .15s ease}.home-progressions-filter:hover{background:#ffffff12;color:var(--text)}.home-progressions-filter.active{background:var(--accent);color:#1a1510;border-color:var(--accent)}.home-progressions-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px}.progression-card{background:linear-gradient(180deg,#ffffff08,#0000001f);border:1px solid var(--border-soft);border-radius:14px;padding:14px 14px 12px;display:flex;flex-direction:column;gap:10px;transition:border-color .2s,transform .2s,box-shadow .2s}.progression-card:hover{border-color:#d4af4f47;transform:translateY(-1px);box-shadow:0 6px 20px #00000040}.progression-card.playing{border-color:var(--accent);box-shadow:0 0 0 1px #d4af4f66,0 8px 28px #d4af4f2e}.progression-card.fam-pop{border-left:3px solid #6fb1e8}.progression-card.fam-jazz{border-left:3px solid #c78bd1}.progression-card.fam-blues{border-left:3px solid #4a7abf}.progression-card.fam-modal{border-left:3px solid #6ed29e}.progression-card.fam-classique{border-left:3px solid #d4af4f}.progression-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.progression-card-head h4{margin:4px 0 0;font-size:1.02rem;line-height:1.2}.progression-family-badge{display:inline-block;font-size:.65rem;letter-spacing:.14em;text-transform:uppercase;font-weight:700;padding:2px 8px;border-radius:999px;background:#ffffff0d;color:var(--text-muted, #b7bbc4)}.progression-family-badge.fam-pop{background:#6fb1e826;color:#9cc9ec}.progression-family-badge.fam-jazz{background:#c78bd126;color:#d5a8df}.progression-family-badge.fam-blues{background:#4a7abf2e;color:#90b3e4}.progression-family-badge.fam-modal{background:#6ed29e26;color:#a0deba}.progression-family-badge.fam-classique{background:#d4af4f2e;color:#e4c87a}.progression-play-btn{flex-shrink:0;width:38px;height:38px;border-radius:50%;background:linear-gradient(135deg,var(--accent),#b78a2e);color:#1a1510;border:0;font-size:1rem;font-weight:700;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:transform .15s,box-shadow .2s;box-shadow:0 2px 10px #d4af4f47}.progression-play-btn:hover{transform:scale(1.07);box-shadow:0 4px 14px #d4af4f66}.progression-play-btn.playing{background:linear-gradient(135deg,#e5484d,#a3262a);color:#fff;animation:progpulse 1.4s ease-in-out infinite}@keyframes progpulse{0%,to{box-shadow:0 2px 10px #e5484d59}50%{box-shadow:0 2px 18px #e5484db3}}.progression-chords{display:flex;flex-wrap:wrap;gap:6px}.progression-chord-chip{background:#ffffff0a;border:1px solid var(--border-soft);color:var(--text);padding:6px 10px;border-radius:8px;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:1px;min-width:52px;transition:all .12s ease}.progression-chord-chip:hover{background:#d4af4f1a;border-color:#d4af4f59;transform:translateY(-1px)}.pc-roman{font-size:.66rem;color:var(--accent);font-weight:700;letter-spacing:.06em}.pc-name{font-size:.92rem;font-weight:600}.progression-tip{margin:2px 0 0;color:var(--text-muted, #b7bbc4);font-size:.82rem;line-height:1.45}.progression-examples{display:flex;flex-wrap:wrap;gap:4px 6px;align-items:center;margin-top:2px;padding-top:8px;border-top:1px dashed var(--border-soft)}.progression-examples-label{font-size:.72rem;color:var(--text-muted, #b7bbc4);letter-spacing:.06em;font-weight:600;margin-right:2px}.progression-example{font-size:.76rem;color:var(--text-muted, #b7bbc4);padding:2px 8px;border-radius:999px;background:#ffffff08;border:1px solid transparent}.progression-example.is-catalog{background:#6ed29e1a;color:#9ee2bb;border-color:#6ed29e40;cursor:pointer;transition:all .15s}.progression-example.is-catalog:hover{background:#6ed29e33;color:#c8f0d8;transform:translateY(-1px)}.progression-card.fam-latin{border-left:3px solid #ef8f5b}.progression-card.fam-soul{border-left:3px solid #d98bc6}.progression-card.fam-ballad{border-left:3px solid #e07a8f}.progression-family-badge.fam-latin{background:#ef8f5b29;color:#f0b590}.progression-family-badge.fam-soul{background:#d98bc629;color:#e5b4da}.progression-family-badge.fam-ballad{background:#e07a8f29;color:#eda8b5}.home-progressions-keychips.big .home-progressions-keychip{min-width:44px;padding:9px 13px;font-size:1rem;border-radius:10px}.home-progressions-keybar{gap:14px}.home-progressions-keylabel{font-size:.92rem;font-weight:600;letter-spacing:.03em}.progression-card{cursor:pointer}.progression-card:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.progression-card-foot{margin-top:auto;padding-top:6px;display:flex;align-items:center;justify-content:space-between}.progression-card-morelink{font-size:.72rem;color:var(--accent-soft, #e4c87a);letter-spacing:.06em;font-weight:600;opacity:.75;transition:opacity .15s}.progression-card:hover .progression-card-morelink{opacity:1}.home-progressions-expand-wrap{margin-top:16px;display:flex;justify-content:center}.home-progressions-expand{background:linear-gradient(135deg,#d4af4f2e,#d4af4f14);border:1px solid rgba(212,175,79,.4);color:var(--accent-soft, #e4c87a);padding:12px 28px;border-radius:999px;font-size:.95rem;font-weight:700;letter-spacing:.04em;cursor:pointer;transition:all .18s ease;box-shadow:0 4px 14px #d4af4f1f}.home-progressions-expand:hover{background:linear-gradient(135deg,#d4af4f4d,#d4af4f26);border-color:#d4af4fb3;color:#fff;transform:translateY(-1px);box-shadow:0 6px 20px #d4af4f38}.home-progressions-expand.is-expanded{background:#ffffff0a;color:var(--text-muted, #b7bbc4);border-color:var(--border-soft);box-shadow:none}.progression-detail-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000b8;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);z-index:800;display:flex;align-items:flex-start;justify-content:center;padding:32px 16px;overflow-y:auto;animation:progDetailFadeIn .18s ease-out}@keyframes progDetailFadeIn{0%{opacity:0}to{opacity:1}}.progression-detail{position:relative;width:min(1000px,100%);background:linear-gradient(180deg,#1a1510,#14100c);border:1px solid var(--border-soft);border-radius:18px;padding:28px 32px 36px;box-shadow:0 20px 70px #0009;animation:progDetailSlideIn .22s cubic-bezier(.2,.8,.2,1)}@keyframes progDetailSlideIn{0%{opacity:0;transform:translateY(16px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.progression-detail.fam-pop{border-top:4px solid #6fb1e8}.progression-detail.fam-jazz{border-top:4px solid #c78bd1}.progression-detail.fam-blues{border-top:4px solid #4a7abf}.progression-detail.fam-modal{border-top:4px solid #6ed29e}.progression-detail.fam-classique{border-top:4px solid #d4af4f}.progression-detail.fam-latin{border-top:4px solid #ef8f5b}.progression-detail.fam-soul{border-top:4px solid #d98bc6}.progression-detail.fam-ballad{border-top:4px solid #e07a8f}.progression-detail-head{display:flex;align-items:flex-start;gap:20px;padding-bottom:18px;border-bottom:1px solid var(--border-soft);margin-bottom:18px}.progression-detail-title{flex:1;min-width:0}.progression-detail-title .progression-family-badge{margin-bottom:8px}.progression-detail-title h2{margin:0 0 8px;font-size:1.9rem;line-height:1.15;color:#fff}.progression-detail-tip{margin:0;color:var(--text-muted, #b7bbc4);font-size:1rem;line-height:1.4;font-style:italic}.progression-detail-close{flex-shrink:0;width:38px;height:38px;border-radius:50%;background:#ffffff0f;border:1px solid var(--border-soft);color:var(--text);font-size:1.5rem;font-weight:400;line-height:1;cursor:pointer;transition:all .15s}.progression-detail-close:hover{background:#ffffff1f;border-color:#ffffff40;transform:rotate(90deg)}.progression-detail-controls{display:flex;flex-wrap:wrap;gap:14px 22px;align-items:center;justify-content:space-between;margin-bottom:18px}.progression-detail-chordsrow{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:20px;background:#ffffff06;border:1px solid var(--border-soft);border-radius:14px;margin-bottom:22px}.progression-detail-play,.progression-detail-stop{flex-shrink:0;border:0;cursor:pointer;font-weight:700;transition:transform .12s,box-shadow .2s}.progression-detail-play{background:linear-gradient(135deg,var(--accent),#b78a2e);color:#1a1510;padding:10px 18px;font-size:1rem;border-radius:999px;box-shadow:0 2px 12px #d4af4f4d}.progression-detail-play:hover{transform:scale(1.04)}.progression-detail-stop{background:#ffffff14;color:#fff;width:40px;height:40px;border-radius:50%;font-size:1rem}.progression-detail-stop:hover{background:#e5484d80}.progression-detail-chords{display:flex;flex-wrap:wrap;gap:8px;flex:1;min-width:0}.progression-detail-chord{background:#ffffff0a;border:1px solid var(--border-soft);color:var(--text);padding:10px 14px;border-radius:10px;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:2px;min-width:72px;transition:all .12s ease}.progression-detail-chord:hover{background:#d4af4f1f;border-color:#d4af4f80;transform:translateY(-2px)}.progression-detail-chord .pc-roman{font-size:.74rem}.progression-detail-chord .pc-name.big{font-size:1.2rem;font-weight:700}.progression-detail-body{display:flex;flex-direction:column;gap:26px}.progression-detail-section h3{margin:0 0 10px;font-size:1.1rem;color:var(--accent-soft, #e4c87a);letter-spacing:.03em;text-transform:uppercase;font-weight:700}.progression-detail-story{margin:0;font-size:.98rem;line-height:1.7;color:#d8d8dc;white-space:pre-line}.progression-detail-tricks{margin:0;padding-left:22px;display:flex;flex-direction:column;gap:8px}.progression-detail-tricks li{color:#d8d8dc;font-size:.94rem;line-height:1.55}.progression-detail-tricks li::marker{color:var(--accent)}.progression-detail-examples{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.progression-detail-examples li{padding:8px 12px;background:#ffffff06;border:1px solid var(--border-soft);border-radius:8px;font-size:.92rem;color:#d8d8dc}.progression-detail-examples li.is-catalog{background:#6ed29e14;border-color:#6ed29e40}.progression-detail-examples li button{background:transparent;border:0;color:#c8f0d8;font-size:.92rem;cursor:pointer;padding:0;text-align:left;width:100%}.progression-detail-examples li button:hover{color:#fff}.progression-detail-examples em{color:var(--text-muted, #b7bbc4);font-style:italic}.progression-detail-examples .catalog-mark{margin-left:4px}@media (max-width: 700px){.progression-detail-overlay{padding:12px 8px}.progression-detail{padding:22px 18px 28px;border-radius:14px}.progression-detail-title h2{font-size:1.5rem}.progression-detail-chord{min-width:60px;padding:8px 10px}.progression-detail-chord .pc-name.big{font-size:1rem}.progression-detail-chordsrow{padding:14px}}@container (max-width: 620px){.home-progressions-grid{grid-template-columns:1fr}}@media (max-width: 700px){.home-progressions{padding:18px 16px 20px}.home-progressions-header h3{font-size:1.3rem}.home-progressions-keychips.big .home-progressions-keychip{min-width:38px;padding:7px 10px;font-size:.9rem}}:root{--topbar-h: 96px}.topbar{position:fixed;top:0;left:300px;right:0;height:var(--topbar-h);z-index:50;display:flex;align-items:center;gap:16px;padding:0 24px 0 14px;background:linear-gradient(180deg,#0f1116f0,#0f1116d1);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-bottom:1px solid var(--border-soft)}.topbar-sidebar-toggle{flex:0 0 auto;width:32px;height:32px;display:inline-flex;align-items:center;justify-content:center;padding:0;border-radius:50%;border:1.5px solid var(--accent);background:#d4af4f1f;color:var(--accent);font-size:1.25rem;font-weight:700;line-height:1;cursor:pointer;box-shadow:0 2px 8px #00000059;transition:background .15s,transform .15s,box-shadow .15s,color .15s}.topbar-sidebar-toggle-icon,.topbar-sidebar-toggle-label{display:none}.topbar-sidebar-toggle:hover{background:var(--accent);color:#1a1a1a;transform:scale(1.08);box-shadow:0 4px 14px #d4af4f66}.topbar-brand-dock{display:flex;align-items:center;gap:28px;flex:0 0 auto;min-width:0;height:100%}.topbar-brand-btn{width:auto;padding:0;flex:0 0 auto;height:100%;display:inline-flex;align-items:center}.topbar-brand-logo{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:10px;line-height:1;white-space:nowrap;margin:0;height:100%}.topbar-brand-logo .brand-main{font-size:2.4rem;letter-spacing:.09em}.topbar-brand-logo .brand-sub{display:inline-flex;align-items:center;gap:10px}.topbar-brand-logo .brand-sub-dash{width:28px}.topbar-brand-logo .brand-sub-text{font-size:1.05rem;letter-spacing:.3em}.topbar-instrument-switch{display:flex;flex-direction:row;gap:4px;padding:4px;margin-top:0;width:auto;background:var(--panel-2);border:1px solid var(--accent);border-radius:12px;box-shadow:0 0 0 1px #d4af4f40,0 2px 10px #d4af4f26;flex:0 0 auto}.topbar-instrument-switch button{position:relative;isolation:isolate;width:auto;padding:8px 16px;border:1px solid var(--border);background:linear-gradient(180deg,var(--panel-2),var(--panel));color:var(--text, #e7e3d8);font-size:.85rem;font-weight:600;border-radius:8px;cursor:pointer;box-shadow:var(--inset-polish);transition:transform var(--dur-fast) var(--ease),background var(--dur-fast) var(--ease-snap),color var(--dur-fast) var(--ease-snap),border-color var(--dur-fast) var(--ease-snap),box-shadow var(--dur) var(--ease);letter-spacing:.01em;text-align:center;min-height:0;min-width:0;overflow:hidden}.topbar-instrument-switch button:hover:not(.active){background:linear-gradient(180deg,var(--panel-3),var(--panel-2));border-color:var(--accent-dim);color:var(--accent-soft);transform:translateY(-1px);box-shadow:var(--inset-polish),0 0 0 3px var(--accent-glow-soft),0 6px 16px -8px #00000080}.topbar-instrument-switch button.active{background:linear-gradient(180deg,var(--accent-bright) 0%,var(--accent-soft) 38%,var(--accent) 75%,#b8913d 100%);color:#1a1608;border-color:#ffd9708c;box-shadow:inset 0 1px #ffe5a08c,inset 0 -8px 14px -10px #00000073,0 8px 22px -6px #d4af4f8c,0 0 0 1px var(--accent-glow);text-shadow:0 1px 0 rgba(255,229,160,.35)}.topbar-instrument-switch button.active:before{content:"";position:absolute;inset:1px 1px auto 1px;height:45%;border-radius:7px 7px 0 0;background:linear-gradient(180deg,#ffffff47,#fff0);pointer-events:none;z-index:0}.topbar-instrument-switch button>*{position:relative;z-index:1}.topbar-midi-cta{display:inline-flex;flex-direction:row;align-items:center;justify-content:center;gap:8px;width:auto;margin-top:0;padding:10px 22px;border:1px solid var(--accent);border-radius:13px;background:linear-gradient(135deg,#2a2238,#1a1628);color:#e7e3d8;font-size:.96rem;font-weight:700;font-family:Cinzel,serif;letter-spacing:.07em;cursor:pointer;transition:border-color .15s,background .15s,color .15s,box-shadow .15s,transform .15s;flex:0 0 auto;box-shadow:0 0 0 1px #d4af4f4d,0 3px 14px #d4af4f38;line-height:1.05}.topbar-midi-cta .midi-station-cta-icon{font-size:1.25rem;margin-bottom:0}.topbar-midi-cta-text{flex-direction:row;gap:4px}.topbar-midi-cta-text{display:inline-flex;flex-direction:column;align-items:center;gap:2px}.topbar-midi-cta-line{display:block}.topbar-midi-cta:hover{border-color:var(--accent);color:var(--accent);box-shadow:0 0 0 1px #d4af4f73,0 2px 14px #d4af4f4d}.topbar-midi-cta.active{border-color:var(--accent);background:linear-gradient(135deg,#d4af4f38,#d4af4f1a);color:var(--accent);box-shadow:0 0 0 1px #d4af4f8c,0 2px 14px #d4af4f59}.topbar-stats{display:flex;align-items:center;gap:10px;color:var(--muted);font-size:.85rem;letter-spacing:.02em;min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.topbar-stat b{color:var(--text);font-weight:700;margin-right:3px}.topbar-stats-sep{color:var(--border);opacity:.7}.topbar-actions{display:flex;gap:10px;flex:0 0 auto;margin-left:auto}.topbar-btn{position:relative;isolation:isolate;display:inline-flex;align-items:center;gap:8px;padding:8px 16px 8px 12px;border-radius:999px;border:1px solid rgba(255,217,112,.55);background:linear-gradient(180deg,var(--accent-bright) 0%,var(--accent-soft) 38%,var(--accent) 75%,#b8913d 100%);color:#1a1608;font-size:.9rem;font-weight:700;letter-spacing:.02em;cursor:pointer;box-shadow:inset 0 1px #ffe5a08c,inset 0 -8px 14px -10px #00000073,0 6px 18px -6px #d4af4f66,var(--shadow-sm);text-shadow:0 1px 0 rgba(255,229,160,.35);overflow:hidden;transition:transform var(--dur) var(--ease),box-shadow var(--dur) var(--ease),filter var(--dur-fast) var(--ease-snap)}.topbar-btn:before{content:"";position:absolute;inset:1px 1px auto 1px;height:50%;border-radius:999px 999px 0 0;background:linear-gradient(180deg,#ffffff52,#fff0);pointer-events:none;z-index:0;opacity:.9;transition:opacity var(--dur) var(--ease)}.topbar-btn>*{position:relative;z-index:1}.topbar-btn:hover{transform:translateY(-2px);filter:brightness(1.05) saturate(1.05);box-shadow:inset 0 1px #ffe5a099,inset 0 -8px 14px -10px #00000073,0 14px 30px -8px #d4af4f99,0 0 0 4px var(--accent-glow-soft)}.topbar-btn:hover:before{opacity:1}.topbar-btn:active{transform:translateY(0) scale(.985);filter:brightness(.96)}.topbar-btn-icon{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:50%;background:#0000002e;font-size:.95rem}.topbar-btn.is-open{background:var(--panel);color:var(--text);border-color:var(--border)}.topbar-btn.is-open .topbar-btn-icon{background:#ffffff14}.topbar-btn--feedback,.topbar-btn--maurisson{background:var(--stage-btn-bg);border:1px solid var(--stage-btn-border);color:var(--stage-btn-text);text-shadow:0 1px 0 rgba(0,0,0,.45);font-weight:500;letter-spacing:.035em;padding:7px 14px;font-size:.82rem;box-shadow:var(--stage-btn-shadow);gap:6px}.topbar-btn--feedback:before,.topbar-btn--maurisson:before{display:none}.topbar-btn--feedback .topbar-btn-icon{background:transparent;width:18px;height:18px;font-size:inherit}.topbar-btn--feedback:hover,.topbar-btn--maurisson:hover{background:var(--stage-btn-bg-hover);border-color:var(--stage-btn-border-hover);color:var(--stage-btn-text-hover);filter:none;transform:translateY(-1px);box-shadow:var(--stage-btn-shadow-hover)}.topbar-btn--feedback:active,.topbar-btn--maurisson:active{transform:translateY(0);filter:brightness(.95)}.sidebar-right{top:var(--topbar-h)}.home-stats{display:none}@media (max-width: 1200px){.topbar-stats .topbar-stat:nth-child(3),.topbar-stats .topbar-stats-sep:nth-child(2),.topbar-stats .topbar-stat:nth-child(5),.topbar-stats .topbar-stats-sep:nth-child(4){display:none}}@media (max-width: 1080px){.topbar-btn--manual span:last-child{display:none}.topbar-btn--manual{padding:7px 10px}.topbar-btn--feedback{padding:6px 10px;font-size:.74rem}.topbar-btn--maurisson{padding:6px 10px;font-size:.76rem}.topbar{gap:10px;padding-right:14px}.topbar-actions{gap:7px}.topbar .topbar-instrument-switch button{padding:5px 9px;font-size:.8rem}}@media (max-width: 900px){.topbar-stats{font-size:.75rem;gap:6px}}@media (max-width: 780px){.topbar-stats{display:none}}@media (max-width: 640px){.topbar-btn span:last-child{display:none}.topbar-btn{padding:7px 10px}.topbar-actions{gap:6px}.topbar-btn--maurisson span:last-child{display:inline}.topbar-btn--maurisson{padding:6px 11px;font-size:.74rem;letter-spacing:.02em}.topbar-btn--feedback .topbar-btn-icon{display:none}.topbar-btn--feedback span:last-child{display:inline}.topbar-btn--feedback{padding:6px 10px;font-size:.72rem;letter-spacing:.015em;font-weight:500;gap:0}}@media (max-width: 460px){.topbar-btn--feedback,.topbar-btn--maurisson{padding:5px 8px;font-size:.68rem}}.manual-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000008c;z-index:95;animation:fadein .15s ease-out}.manual-drawer{position:fixed;top:0;right:0;bottom:0;width:min(1100px,94vw);z-index:100;display:grid;grid-template-columns:260px 1fr;background:var(--bg-deep);border-left:1px solid var(--border-soft);box-shadow:-20px 0 60px #0009;transform:translate(100%);transition:transform .28s ease-out;pointer-events:none}.manual-drawer.open{transform:translate(0);pointer-events:auto}.manual-close{position:absolute;top:10px;right:12px;z-index:5;width:44px;height:44px;border-radius:999px;border:1px solid var(--border);background:#0000008c;color:var(--text);font-size:1.7rem;line-height:1;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);transition:background .15s,border-color .15s,color .15s,transform .15s}.manual-close:hover{background:#d4af4f2e;border-color:var(--accent);color:var(--accent)}.manual-close:active{transform:scale(.94)}.manual-nav{background:linear-gradient(180deg,var(--bg-sidebar),#0a0b10);border-right:1px solid var(--border-soft);display:flex;flex-direction:column;overflow:hidden;min-height:0}.manual-nav-header{padding:22px 20px 12px;border-bottom:1px solid var(--border-soft)}.manual-nav-kicker{font-size:.7rem;letter-spacing:.24em;text-transform:uppercase;color:var(--accent);font-weight:700}.manual-nav-title{margin:4px 0 0;font-size:1.1rem;color:var(--text);line-height:1.2}.manual-search{display:flex;align-items:center;gap:8px;margin:12px 12px 6px;padding:7px 10px;border:1px solid var(--border);border-radius:10px;background:#00000038}.manual-search input{flex:1 1 auto;min-width:0;background:transparent;border:0;color:var(--text);font-size:.86rem;outline:none}.manual-search input::placeholder{color:var(--muted)}.manual-search-icon{color:var(--muted);font-size:1rem}.manual-search-kbd{font-size:.66rem;padding:2px 6px;border-radius:4px;background:#ffffff0f;color:var(--muted);border:1px solid var(--border);font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.manual-nav-list{list-style:none;margin:6px 0 0;padding:4px 6px 14px;flex:1 1 0;min-height:0;overflow-y:auto}.manual-nav-item{display:flex;align-items:center;gap:10px;width:100%;text-align:left;padding:10px;margin-bottom:2px;border:1px solid transparent;border-radius:10px;background:transparent;color:var(--text);cursor:pointer;transition:background .15s,border-color .15s}.manual-nav-item:hover{background:#ffffff0a}.manual-nav-item.is-active{background:linear-gradient(135deg,#d4af4f24,#d4af4f0f);border-color:var(--accent-dim)}.manual-nav-number{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:7px;background:#0000004d;color:var(--accent);font-weight:700;font-size:.76rem;flex:0 0 auto}.manual-nav-item.is-active .manual-nav-number{background:var(--accent);color:#000}.manual-nav-text{display:flex;flex-direction:column;line-height:1.2;min-width:0}.manual-nav-text strong{font-size:.93rem;font-weight:600}.manual-nav-text small{color:var(--muted);font-size:.74rem;margin-top:2px}.manual-nav-footer{padding:10px 18px;border-top:1px solid var(--border-soft);color:var(--muted);font-size:.72rem;letter-spacing:.05em}.manual-content{overflow-y:auto;padding:48px 64px 80px;background:var(--bg-content);min-height:0;outline:none}.manual-article-header{padding-bottom:20px;margin-bottom:28px;border-bottom:1px solid var(--border-soft)}.manual-article-kicker{font-size:.72rem;letter-spacing:.24em;text-transform:uppercase;color:var(--accent);font-weight:700;margin-bottom:6px}.manual-article-title{margin:0;font-size:2.2rem;font-weight:700;color:var(--text);display:flex;align-items:center;gap:14px;line-height:1.1}.manual-article-icon{font-size:2rem}.manual-article-subtitle{margin:10px 0 0;color:var(--muted);font-size:1.02rem}.manual-article-error{padding:14px 18px;border-radius:10px;background:#f064641a;color:#ffb4b4;border:1px solid rgba(240,100,100,.3)}.manual-markdown{font-size:1rem;line-height:1.7;color:var(--text);max-width:780px}.manual-markdown h2{margin:40px 0 14px;font-size:1.45rem;color:var(--text);border-bottom:1px solid var(--border-soft);padding-bottom:6px}.manual-markdown h3{margin:28px 0 10px;font-size:1.15rem;color:var(--accent)}.manual-markdown p{margin:12px 0}.manual-markdown ul,.manual-markdown ol{padding-left:22px;margin:12px 0}.manual-markdown li{margin:6px 0}.manual-markdown code{background:#ffffff0f;padding:2px 6px;border-radius:4px;font-size:.88em;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.manual-markdown pre{background:#00000059;padding:14px 16px;border-radius:10px;overflow-x:auto;border:1px solid var(--border-soft);font-size:.88rem}.manual-markdown pre code{background:transparent;padding:0}.manual-markdown a{color:var(--accent)}.manual-markdown table{border-collapse:collapse;margin:16px 0;width:100%}.manual-markdown th,.manual-markdown td{text-align:left;padding:10px 12px;border-bottom:1px solid var(--border-soft)}.manual-markdown th{color:var(--accent);font-weight:700;font-size:.82rem;letter-spacing:.04em;text-transform:uppercase}.manual-markdown .manual-tip{margin:20px 0;padding:14px 18px;border-left:3px solid var(--accent);border-radius:0 8px 8px 0;background:#d4af4f14;color:var(--text)}.manual-markdown .manual-tip p{margin:6px 0}.manual-screenshot{margin:22px 0;padding:0}.manual-screenshot img{width:100%;border-radius:12px;border:1px solid var(--border-soft);box-shadow:0 12px 36px #00000073;background:#0000004d;display:block}.manual-screenshot figcaption{margin-top:8px;font-size:.82rem;color:var(--muted);text-align:center}.manual-image img{max-width:100%;border-radius:8px}@media (max-width: 900px){.manual-drawer{grid-template-columns:220px 1fr;width:100vw}.manual-content{padding:32px 24px 60px}.manual-article-title{font-size:1.7rem}}@media (max-width: 640px){.manual-drawer{grid-template-columns:1fr}.manual-nav{display:none}.manual-content{padding-right:60px}}@media (max-width: 900px){.song-card{padding:20px 18px 18px}.song-card h3{font-size:1.8rem}.view-mode-btn{padding:14px 12px;font-size:.9rem;gap:7px}}@media (max-width: 640px){.song-card{padding:14px 12px}.song-card h3{font-size:1.4rem}.view-mode-group{gap:4px;overflow-x:auto;-webkit-overflow-scrolling:touch;padding-bottom:2px}.view-mode-btn{min-width:0;flex:0 0 auto;padding:9px 10px;font-size:.75rem;gap:5px;white-space:nowrap}.view-mode-btn .lit-label{min-width:0}.song-transpose-bar{grid-template-columns:1fr;justify-items:center;gap:8px}.song-transpose-bar .song-transpose-spacer{display:none}.chordpro-body{font-size:.9rem}.chordpro-section-label{font-size:.7rem}.badges{flex-wrap:wrap;gap:6px}.badge{font-size:.72rem;padding:4px 9px}}@media (max-width: 640px){.home-progressions{padding:16px 12px 18px}.home-progressions-keychips{gap:3px}.home-progressions-keychip{padding:4px 7px;font-size:.78rem}.home-quote{padding:16px 14px}.home-quote blockquote{font-size:1.5rem}}@media (max-width: 640px){.filters-panel{max-width:100%}}.midi-player-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:14px 18px;margin-bottom:14px;background:linear-gradient(135deg,#6366f114,#ec48990d);border:1px solid rgba(99,102,241,.22);border-radius:14px}.midi-player-header-title{flex:1 1 auto;min-width:0}.midi-player-song{font-size:1.65rem;font-weight:700;line-height:1.15;margin:0 0 4px;letter-spacing:-.01em}.midi-player-artist{font-size:1rem;opacity:.78;margin:0 0 4px}.midi-player-meta{font-size:.82rem;opacity:.62;margin:0}.song-midi-pill{display:inline-block;margin-left:6px;padding:1px 6px;font-size:.62rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;background:linear-gradient(135deg,#6366f1,#8b5cf6);color:#fff;border-radius:4px;vertical-align:middle}.midi-mini-player{position:fixed;left:16px;right:16px;bottom:16px;z-index:50;display:flex;align-items:center;gap:10px;padding:8px 12px;background:#181822f5;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid rgba(99,102,241,.35);border-radius:14px;box-shadow:0 10px 30px #00000059;color:#f1f5f9}.midi-mini-btn{display:inline-flex;align-items:center;justify-content:center;min-width:36px;height:36px;padding:0 10px;font-size:1rem;border:1px solid rgba(255,255,255,.12);background:#ffffff0f;color:inherit;border-radius:8px;cursor:pointer;transition:background .15s}.midi-mini-btn:hover{background:#ffffff1f}.midi-mini-btn.play{background:linear-gradient(135deg,#6366f1,#8b5cf6);border-color:transparent;color:#fff;font-size:1.1rem}.midi-mini-btn.ghost{background:transparent}.midi-mini-info{display:flex;flex-direction:column;min-width:0;flex:0 0 auto;max-width:240px;cursor:pointer}.midi-mini-title{font-weight:600;font-size:.92rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.midi-mini-artist{font-size:.78rem;opacity:.66;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.midi-mini-progress-wrap{display:flex;align-items:center;gap:10px;flex:1 1 auto;min-width:0}.midi-mini-progress{flex:1 1 auto;height:6px;background:#ffffff1a;border-radius:3px;cursor:pointer;overflow:hidden}.midi-mini-progress-fill{height:100%;background:linear-gradient(90deg,#6366f1,#ec4899);transition:width .1s linear}.midi-mini-time{font-size:.78rem;font-variant-numeric:tabular-nums;opacity:.78;white-space:nowrap}@media (max-width: 640px){.midi-mini-info{max-width:120px}.midi-mini-time{display:none}}.sf2-status-badge{position:fixed;bottom:12px;right:12px;z-index:200;padding:6px 14px;border-radius:var(--r-md, 8px);font-size:.8rem;font-weight:600;pointer-events:none;animation:sf2-fadein .3s ease}.sf2-status-loading{background:#28283ceb;color:var(--accent, #d4af4f);border:1px solid rgba(212,175,79,.3)}.sf2-status-error{background:#501414eb;color:#f87171;border:1px solid rgba(248,113,113,.3)}@keyframes sf2-fadein{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.topbar-sidebar-stack{flex:0 0 auto;display:flex;flex-direction:column;gap:6px;align-items:center}.topbar-collection-toggle{opacity:.85}.topbar-collection-toggle:hover{opacity:1}.collection-overlay-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000a6;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);z-index:95;animation:fadein .18s ease-out}.collection-overlay{position:fixed;top:0;left:0;height:100vh;height:100dvh;width:min(1100px,85vw);max-width:95vw;background:linear-gradient(180deg,var(--bg-sidebar) 0%,#0b0d12 100%);border-right:1px solid var(--border-soft);box-shadow:8px 0 32px #0009;z-index:100;display:flex;flex-direction:column}.collection-overlay-header{flex:0 0 auto;display:flex;align-items:center;justify-content:space-between;padding:18px 20px 12px;border-bottom:1px solid var(--border-soft)}.collection-overlay-title{display:flex;align-items:baseline;gap:12px;min-width:0}.collection-overlay-title h2{margin:0;font-size:1.3rem;letter-spacing:.02em;color:var(--accent)}.collection-overlay-count{font-size:.85rem;color:var(--text-dim, #888);font-variant-numeric:tabular-nums}.collection-overlay-close{width:32px;height:32px;border-radius:50%;border:1px solid var(--border-soft);background:#ffffff0a;color:var(--text, #ddd);font-size:1rem;cursor:pointer;transition:background .15s,color .15s,border-color .15s}.collection-overlay-close:hover{background:var(--accent);color:#1a1a1a;border-color:var(--accent)}.collection-overlay-controls{flex:0 0 auto;padding:12px 20px 14px;display:flex;flex-direction:column;gap:10px;border-bottom:1px solid var(--border-soft)}.collection-overlay-search{width:100%;padding:10px 14px;border-radius:10px;border:1px solid var(--border-soft);background:#ffffff0a;color:var(--text, #eee);font-size:.95rem;outline:none;transition:border-color .15s,background .15s}.collection-overlay-search:focus{border-color:var(--accent);background:#d4af4f0f}.collection-overlay-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.collection-overlay-field{display:inline-flex;align-items:center;gap:6px;font-size:.78rem;color:var(--text-dim, #999);text-transform:uppercase;letter-spacing:.1em}.collection-overlay-field select{padding:5px 10px;border-radius:6px;border:1px solid var(--border-soft);background:#ffffff0a;color:var(--text, #eee);font-size:.85rem;text-transform:none;letter-spacing:0;cursor:pointer}.collection-overlay-sort{display:inline-flex;gap:2px;border:1px solid var(--border-soft);border-radius:8px;overflow:hidden;background:#ffffff08}.collection-overlay-sort button{padding:6px 12px;border:0;background:transparent;color:var(--text-dim, #999);font-size:.78rem;font-weight:600;letter-spacing:.04em;cursor:pointer;transition:background .12s,color .12s}.collection-overlay-sort button.is-active{background:var(--accent);color:#1a1a1a}.collection-overlay-sort button:not(.is-active):hover{background:#d4af4f1a;color:var(--accent)}.collection-overlay-body-wrap{flex:1 1 0;min-height:0;display:flex;align-items:stretch;overflow:hidden}.collection-overlay-body{flex:1 1 0;min-width:0;min-height:0;overflow-y:auto;padding:14px 22px 28px;display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:10px;align-content:start}.collection-overlay-body>.collection-group.is-expanded,.collection-overlay-body>.collection-group:not(.is-collapsible){grid-column:1 / -1}.collection-overlay-body>.collection-group{margin-top:0}.collection-alpha-index{flex:0 0 auto;display:flex;flex-direction:column;align-items:stretch;gap:1px;padding:10px 6px 10px 4px;border-left:1px solid var(--border-soft);background:#ffffff04;-webkit-user-select:none;user-select:none;overflow-y:auto}.collection-alpha-letter{border:0;background:transparent;color:var(--text-dim, #888);font-family:var(--font-mono);font-size:.68rem;font-weight:700;line-height:1;padding:3px 6px;min-width:22px;border-radius:4px;cursor:pointer;transition:background .1s,color .1s}.collection-alpha-letter:hover:not(.is-empty){background:#d4af4f2e;color:var(--accent)}.collection-alpha-letter.is-empty{color:#ffffff1f;cursor:default}.collection-overlay-empty{text-align:center;padding:40px 0;color:var(--text-dim, #888);font-style:italic}.collection-group{margin-top:14px}.collection-group:first-child{margin-top:4px}.collection-group-title{position:sticky;top:-10px;z-index:1;margin:0 0 8px;padding:8px 0 6px;background:linear-gradient(180deg,#0b0d12fa,#0b0d12eb 80%,#0b0d1200);display:flex;align-items:baseline;justify-content:space-between;gap:10px;font-size:.72rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--accent)}.collection-group-count{font-weight:500;color:var(--text-dim, #888);font-size:.7rem}.collection-group-toggle{position:relative;width:100%;border:1px solid rgba(212,175,79,.18);background:linear-gradient(180deg,#ffffff0a,#ffffff04);cursor:pointer;padding:12px 14px 12px 16px;border-radius:10px;color:var(--accent);display:flex;align-items:center;gap:10px;text-align:left;font:inherit;font-size:.82rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;transition:background .15s,border-color .15s,transform .12s,box-shadow .15s;overflow:hidden}.collection-group-toggle:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:linear-gradient(180deg,#d4af4fe6,#d4af4f4d);opacity:0;transition:opacity .18s}.collection-group-toggle:hover{background:linear-gradient(180deg,#d4af4f1f,#d4af4f0a);border-color:#d4af4f73;transform:translateY(-1px);box-shadow:0 4px 14px #00000059,0 0 0 1px #d4af4f26}.collection-group-toggle:hover:before{opacity:1}.collection-group.is-expanded .collection-group-toggle{border-color:#d4af4f99;background:linear-gradient(180deg,#d4af4f24,#d4af4f0a);box-shadow:0 0 0 1px #d4af4f40,0 4px 16px #0006}.collection-group.is-expanded .collection-group-toggle:before{opacity:1}.collection-group-arrow{flex:0 0 auto;width:14px;color:var(--accent);font-size:.85rem;transition:transform .2s;display:inline-flex;align-items:center;justify-content:center}.collection-group.is-expanded .collection-group-arrow{transform:rotate(0)}.collection-group-toggle .collection-group-count{display:inline-flex;align-items:center;justify-content:center;min-width:32px;padding:3px 10px;background:#d4af4f26;border:1px solid rgba(212,175,79,.35);border-radius:999px;color:var(--accent);font-size:.72rem;font-weight:700;letter-spacing:.04em}.collection-group.is-expanded .collection-group-toggle .collection-group-count{background:#d4af4f4d;border-color:#d4af4f99;color:#1a1608}.collection-group-label{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.collection-group.is-collapsible{margin-top:6px}.collection-group.is-collapsible h3.collection-group-title{position:static;background:none;padding:0;margin:0}.collection-group.is-collapsible.is-expanded .collection-grid{margin-top:8px}.collection-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:6px}.collection-card{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 10px;min-width:0;background:#ffffff06;border:1px solid rgba(255,255,255,.05);border-radius:8px;cursor:pointer;text-align:left;color:var(--text, #e6e6e6);font:inherit;transition:background .12s,border-color .12s,transform .12s}.collection-card:hover{background:#d4af4f14;border-color:#d4af4f59;transform:translateY(-1px)}.collection-card.is-selected{background:#d4af4f24;border-color:var(--accent)}.collection-card-main{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1 1 auto}.collection-card-title{font-size:.88rem;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.collection-card-artist{font-size:.72rem;color:var(--text-dim, #999);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.collection-card-meta{flex:0 0 auto;display:flex;align-items:center;gap:6px}.collection-card-key{display:inline-block;padding:2px 7px;border-radius:10px;background:#d4af4f2e;border:1px solid rgba(212,175,79,.35);color:var(--accent);font-size:.7rem;font-weight:700;letter-spacing:.04em;font-variant-numeric:tabular-nums}.collection-card-midi{display:inline-block;padding:2px 6px;border-radius:10px;background:#50b4dc26;border:1px solid rgba(80,180,220,.4);color:#7dd3ea;font-size:.62rem;font-weight:700;letter-spacing:.08em}@media (max-width: 640px){.collection-grid{grid-template-columns:1fr}.collection-overlay{width:100vw}}.auth-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;background:#08090dc7;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);display:flex;align-items:center;justify-content:center;padding:24px;overflow-y:auto}.auth-modal-panel{background:var(--panel, #1a1d26);color:var(--text, #f3f5f7);border:1px solid var(--border, #2a2e3a);border-radius:var(--r-lg, 16px);box-shadow:0 32px 80px #0000008c,0 0 0 1px #d4af4f14 inset;max-width:520px;width:100%;padding:32px;max-height:calc(100vh - 48px);max-height:calc(100dvh - 48px);overflow-y:auto}.auth-modal-panel--welcome{position:relative;max-width:660px;padding:34px 34px 30px;background:radial-gradient(120% 80% at 50% -10%,rgba(212,175,79,.16),transparent 60%),linear-gradient(180deg,#1c1f2af5,#14161ff7);border:1px solid rgba(212,175,79,.28);box-shadow:0 36px 90px #0009,0 0 0 1px #d4af4f0f inset,0 0 60px #d4af4f0f inset;-webkit-backdrop-filter:blur(22px) saturate(1.2);backdrop-filter:blur(22px) saturate(1.2)}.auth-modal-panel--welcome:before{content:"";position:absolute;top:0;left:18px;right:18px;height:1px;background:linear-gradient(90deg,transparent,rgba(255,217,112,.55),transparent);pointer-events:none}.auth-modal-panel--login{max-width:460px}@media (max-width: 600px){.auth-modal-backdrop{padding:12px}.auth-modal-panel{padding:22px 20px;border-radius:14px}}.auth-welcome-hero{margin-bottom:22px}.auth-welcome-title{margin:0 0 8px;font-size:28px;font-weight:700;letter-spacing:-.015em;background:linear-gradient(135deg,#fff6dd 0%,var(--accent-soft, #f0d488) 38%,var(--accent, #d4af4f) 70%,#b8913d 100%);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:var(--accent-soft, #f0d488)}.auth-welcome-kicker{margin:0;font-size:15px;color:var(--text-soft, #d7dbe5);line-height:1.55}.auth-welcome-features ul{list-style:none;margin:0 0 22px;padding:0;display:grid;gap:12px}.auth-welcome-features li{position:relative;display:grid;grid-template-columns:44px 1fr;align-items:center;gap:14px;padding:14px 16px;background:linear-gradient(180deg,#d4af4f0f,#d4af4f08);border:1px solid rgba(212,175,79,.14);border-radius:12px;overflow:hidden;transition:transform .2s ease,border-color .2s ease,box-shadow .2s ease}.auth-welcome-features li:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(105deg,transparent 30%,rgba(255,217,112,.1) 50%,transparent 70%);transform:translate(-120%);pointer-events:none}.auth-welcome-features li:hover{transform:translateY(-2px);border-color:#d4af4f5c;box-shadow:0 10px 26px #00000052,0 0 0 1px #d4af4f1a inset}.auth-welcome-features li:hover:after{transform:translate(120%);transition:transform .7s ease}.auth-welcome-feature-icon{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:11px;color:var(--accent-bright, #ffd970);background:radial-gradient(80% 80% at 50% 20%,#ffd97038,#d4af4f0f),#d4af4f0d;border:1px solid rgba(212,175,79,.22);box-shadow:0 1px #fff6dd1f inset}.auth-welcome-feature-icon svg{width:22px;height:22px;display:block}.auth-welcome-feature-body{display:grid;gap:3px;min-width:0}.auth-welcome-feature-body strong{font-size:14.5px;color:var(--accent-soft, #f0d488);font-weight:600}.auth-welcome-feature-body span{font-size:14px;color:var(--text-soft, #d7dbe5);line-height:1.55}.auth-welcome-manual{margin:0 0 18px;padding:14px 16px;border:1px solid rgba(212,175,79,.16);border-left:3px solid var(--accent, #d4af4f);background:linear-gradient(180deg,#d4af4f14,#d4af4f08);border-radius:12px;font-size:14px;color:var(--text-soft, #d7dbe5);line-height:1.6}.auth-welcome-manual strong{color:var(--accent-bright, #ffd970)}.auth-welcome-manual-link{background:none;border:none;padding:0;font:inherit;color:var(--accent-bright, #ffd970);text-decoration:underline;text-underline-offset:2px;cursor:pointer;transition:color .16s ease}.auth-welcome-manual-link:hover{color:#fff6dd}.auth-welcome-gift{margin:0 0 26px;padding-top:18px;border-top:1px solid rgba(212,175,79,.14);font-size:14px;color:var(--text-soft, #d7dbe5);line-height:1.6}.auth-welcome-gift strong{color:var(--accent-soft, #f0d488)}.auth-welcome-cta{display:flex;justify-content:center}.auth-welcome-cta .auth-btn--primary{position:relative;overflow:hidden;background:var(--stage-btn-bg-active, linear-gradient(180deg, #ffd970 0%, #f0d488 28%, #d4af4f 62%, #a07c2c 100%));box-shadow:0 6px 20px #d4af4f57,0 0 0 1px #fff6dd33 inset}.auth-welcome-cta .auth-btn--primary:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(105deg,transparent 35%,rgba(255,255,255,.45) 50%,transparent 65%);transform:translate(-120%);pointer-events:none}.auth-welcome-cta .auth-btn--primary:hover:not(:disabled){box-shadow:0 9px 26px #d4af4f75,0 0 0 1px #fff6dd47 inset}.auth-welcome-cta .auth-btn--primary:hover:not(:disabled):after{transform:translate(120%);transition:transform .75s ease}@media (prefers-reduced-motion: reduce){.auth-welcome-features li,.auth-welcome-features li:after,.auth-welcome-cta .auth-btn--primary:after{transition:none}.auth-welcome-features li:hover{transform:none}.auth-welcome-features li:hover:after,.auth-welcome-cta .auth-btn--primary:hover:not(:disabled):after{transform:translate(-120%)}}.auth-login-header{margin-bottom:20px}.auth-login-title{margin:0 0 6px;font-size:22px;font-weight:700;color:var(--text, #f3f5f7)}.auth-login-subtitle{margin:0;font-size:14px;color:var(--text-soft, #d7dbe5);line-height:1.55}.auth-login-form{display:grid;gap:16px}.auth-login-mail-sent{margin:0;padding:14px;background:#3ecf8e14;border:1px solid rgba(62,207,142,.25);border-radius:10px;color:var(--text-soft, #d7dbe5);font-size:14px;line-height:1.55;text-align:center}.auth-login-mail-sent strong{color:var(--ok, #3ecf8e)}.auth-field{display:grid;gap:6px}.auth-field-label{font-size:13px;font-weight:600;color:var(--text-soft, #d7dbe5);letter-spacing:.01em}.auth-field input{background:#ffffff0a;border:1px solid var(--border, #2a2e3a);color:var(--text, #f3f5f7);border-radius:10px;padding:12px 14px;font-size:15px;width:100%;outline:none;transition:border-color .16s ease,background .16s ease}.auth-field input:focus{border-color:var(--accent, #d4af4f);background:#d4af4f0d}.auth-field-code{text-align:center;letter-spacing:6px;font-size:20px!important;font-family:ui-monospace,SF Mono,Menlo,monospace;text-transform:uppercase}.auth-checkbox{display:flex;align-items:flex-start;gap:10px;font-size:13.5px;color:var(--text-soft, #d7dbe5);line-height:1.45;cursor:pointer}.auth-checkbox input{margin-top:2px;accent-color:var(--accent, #d4af4f);width:16px;height:16px;flex:0 0 16px}.auth-error{margin:0;padding:10px 12px;background:#e5484d1a;border:1px solid rgba(229,72,77,.3);border-radius:8px;color:#ffb6b9;font-size:13.5px}.auth-fineprint{margin:4px 0 0;font-size:12px;color:var(--muted, #8b94a8);line-height:1.5}.auth-link{background:none;border:none;padding:0;font:inherit;color:var(--accent-soft, #f0d488);cursor:pointer;text-decoration:underline;font-size:13.5px}.auth-link:hover{color:var(--accent-bright, #ffd970)}.auth-link:disabled{opacity:.5;cursor:not-allowed}.auth-login-secondary{text-align:center;font-size:13px;color:var(--muted, #8b94a8)}.auth-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;font:inherit;font-weight:600;border-radius:10px;padding:10px 16px;border:1px solid transparent;cursor:pointer;transition:transform .12s ease,background .16s ease,box-shadow .16s ease}.auth-btn:disabled{opacity:.6;cursor:not-allowed}.auth-btn--primary{background:linear-gradient(180deg,var(--accent-soft, #f0d488),var(--accent, #d4af4f));color:#1a1305;box-shadow:0 4px 14px #d4af4f47}.auth-btn--primary:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 6px 18px #d4af4f61}.auth-btn--lg{padding:13px 22px;font-size:15px;width:100%}.auth-btn--sm{padding:7px 12px;font-size:13px}.auth-btn--google{background:#fff;color:#1f1f1f;border:1px solid rgba(0,0,0,.08);box-shadow:0 1px 3px #0000002e}.auth-btn--google:hover:not(:disabled){background:#f7f8fa;transform:translateY(-1px);box-shadow:0 3px 8px #00000038}.auth-btn--google svg{display:block}.auth-divider{display:flex;align-items:center;gap:10px;font-size:12px;color:var(--muted, #8b94a8);text-transform:uppercase;letter-spacing:.08em}.auth-divider:before,.auth-divider:after{content:"";flex:1 1 0;height:1px;background:#ffffff14}.auth-divider span{padding:0 2px}.auth-link--block{display:block;text-align:center;padding:6px 0;text-decoration:none;font-size:14px;width:100%}.auth-link--block:hover{text-decoration:underline}.auth-link--dim{color:var(--muted, #8b94a8);font-size:13px}.auth-link--dim:hover{color:var(--text-soft, #d7dbe5)}.auth-pill{display:inline-flex;align-items:center;gap:8px;padding:7px 14px;border-radius:999px;font:inherit;font-size:13px;font-weight:600;letter-spacing:.01em;cursor:pointer;border:1px solid var(--border, #2a2e3a);background:#ffffff08;color:var(--text-soft, #d7dbe5);transition:border-color .18s ease,background .18s ease,transform .12s ease,box-shadow .18s ease}.auth-pill:hover{border-color:var(--accent, #d4af4f);background:#d4af4f14;color:var(--text, #f3f5f7)}.auth-pill--anon.is-emphasized{border-color:var(--accent, #d4af4f);background:#d4af4f29;color:var(--accent-bright, #ffd970);box-shadow:0 0 0 3px #d4af4f1f;animation:authPillPulse 2.4s ease-in-out infinite}@keyframes authPillPulse{0%,to{box-shadow:0 0 0 3px #d4af4f1f}50%{box-shadow:0 0 0 6px #d4af4f33}}.auth-pill-icon{color:var(--accent, #d4af4f);font-weight:700}.auth-pill-sep{color:var(--muted, #8b94a8);font-weight:400}.auth-pill-tertiary{font-weight:400;color:var(--muted, #8b94a8)}.auth-pill--signed{border-color:#3ecf8e59;background:#3ecf8e0f;color:var(--text, #f3f5f7);cursor:default}.auth-pill--signed:hover{background:#3ecf8e0f;border-color:#3ecf8e59}.auth-pill-email{font-weight:500;font-size:12.5px}.auth-pill-logout{margin-left:2px;background:none;border:none;cursor:pointer;color:var(--muted, #8b94a8);font-size:14px;padding:0 4px;line-height:1}.auth-pill-logout:hover{color:var(--text, #f3f5f7)}.auth-pill--sidebar{margin-top:10px;width:100%;justify-content:center}.auth-pill--topbar{margin-top:4px}.topbar-brand-stack{display:flex;flex-direction:column;align-items:center;gap:4px}.topbar-sidebar-auth{display:none}@media (max-width: 640px){.topbar-sidebar-auth{display:flex;justify-content:flex-start;width:100%;margin-top:4px}.topbar-brand-stack .auth-pill--topbar{display:none}.topbar-sidebar-auth .auth-pill-email{font-size:11px}.topbar-sidebar-auth .auth-pill{padding:4px 10px;font-size:11.5px}}.home-footer{margin:64px auto 28px;padding:14px 24px 0;border-top:1px solid rgba(255,255,255,.045);display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:10px;font-size:11.5px;font-weight:300;letter-spacing:.06em;color:#a0a8b88c;text-align:center;text-transform:uppercase;font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,sans-serif}.home-footer-link{color:inherit;text-decoration:none;border-bottom:1px solid transparent;transition:color .2s ease,border-color .2s ease}.home-footer-link:hover{color:#d4af4fd9;border-bottom-color:#d4af4f66}.home-footer-sep{color:#a0a8b840;font-weight:400}@media (max-width: 640px){.home-footer{font-size:11px;letter-spacing:.04em;gap:6px;padding:14px 16px 0;margin-top:48px}}.auth-magiclink-toast{position:fixed;top:12px;left:50%;transform:translate(-50%);z-index:950;padding:12px 20px;border-radius:999px;font-size:14px;font-weight:600;box-shadow:0 8px 24px #0006;animation:authToastIn .28s cubic-bezier(.22,1,.36,1)}.auth-magiclink-toast--ok{background:linear-gradient(180deg,#3ecf8ef5,#2eb478f5);color:#082015;border:1px solid rgba(62,207,142,.6)}.auth-magiclink-toast--invalid,.auth-magiclink-toast--google_error{background:linear-gradient(180deg,#e5484deb,#c83237eb);color:#fff;border:1px solid rgba(229,72,77,.5)}@keyframes authToastIn{0%{opacity:0;transform:translate(-50%,-8px)}to{opacity:1;transform:translate(-50%)}}@media (max-width: 720px){.auth-pill{font-size:12.5px;padding:6px 12px}.auth-pill-tertiary,.auth-pill-sep{display:none}}.auth-discovery-banner{position:fixed;top:8px;left:50%;transform:translate(-50%);z-index:900;display:flex;align-items:center;gap:14px;padding:10px 14px 10px 18px;background:linear-gradient(180deg,#d4af4f29,#d4af4f1a);border:1px solid rgba(212,175,79,.4);border-radius:999px;color:var(--text, #f3f5f7);font-size:13.5px;box-shadow:0 8px 28px #0006;max-width:calc(100vw - 24px)}.auth-discovery-banner-text strong{color:var(--accent-bright, #ffd970)}@media (max-width: 640px){.auth-discovery-banner{flex-direction:column;align-items:stretch;border-radius:14px;padding:10px 12px;text-align:center;gap:8px;left:8px;right:8px;transform:none;max-width:none}}@media (max-width: 900px){.app-shell .topbar{left:0!important}}@media (max-width: 960px){.topbar-btn--maurisson{display:none!important}}@media (max-width: 1100px) and (min-width: 961px){.topbar-btn--maurisson{display:inline-flex}}@media (max-width: 640px){.auth-pill--sidebar{font-size:12px;padding:6px 10px}.auth-pill-tertiary,.auth-pill-sep{display:none}.auth-modal-panel--welcome{padding:24px 18px 20px;max-height:calc(100vh - 16px);max-height:calc(100dvh - 16px)}.auth-welcome-title{font-size:24px}.auth-welcome-features li{grid-template-columns:38px 1fr;gap:12px;padding:12px 14px}.auth-welcome-feature-icon{width:38px;height:38px;border-radius:10px}.auth-welcome-feature-icon svg{width:20px;height:20px}.auth-welcome-feature-body span{font-size:13.5px}}@media (max-width: 640px){.manual-drawer.open{transform:translate(0)!important}.manual-drawer{width:100vw!important;border-left:0;grid-template-columns:1fr!important;grid-template-rows:auto 1fr!important}.manual-nav{display:flex!important;flex-direction:row!important;align-items:stretch;overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;padding:10px 12px!important;gap:8px;border-right:0!important;border-bottom:1px solid var(--border-soft);max-height:none;flex:0 0 auto;scrollbar-width:thin}.manual-nav-header,.manual-search,.manual-nav-footer{display:none!important}.manual-nav-list{display:flex!important;flex-direction:row;gap:8px;margin:0!important;padding:0!important;list-style:none;flex:0 0 auto}.manual-nav-list li{display:flex}.manual-nav-item{display:flex!important;flex-direction:row!important;align-items:center;gap:6px;flex:0 0 auto;padding:8px 14px!important;border-radius:999px!important;border:1px solid var(--border-soft)!important;background:#ffffff08!important;color:var(--text-soft)!important;cursor:pointer;white-space:nowrap}.manual-nav-item.is-active{border-color:var(--accent)!important;background:#d4af4f29!important;color:var(--accent-bright)!important}.manual-nav-number{font-size:.7rem;opacity:.7;font-variant-numeric:tabular-nums}.manual-nav-text strong{font-size:.85rem;font-weight:600}.manual-nav-text small{display:none}.manual-content{padding:18px 18px 60px!important;overflow-y:auto}.manual-article-title,.manual-content h1{font-size:1.5rem!important;line-height:1.3!important}.manual-content h2{font-size:1.15rem!important;margin-top:1.6em}.manual-content p,.manual-content li{font-size:.95rem;line-height:1.55}.manual-close{top:8px!important;right:10px!important;width:38px!important;height:38px!important;z-index:10}}.auth-modal-panel--legal{max-width:640px}.legal-header{margin-bottom:18px}.legal-title{margin:0 0 4px;font-size:20px;font-weight:700;color:var(--text, #f3f5f7)}.legal-kicker{margin:0;font-size:13px;color:var(--muted, #8b94a8)}.legal-updated{font-style:italic}.legal-section{margin:0 0 18px}.legal-section h3{margin:0 0 6px;font-size:14px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--accent-soft, #f0d488)}.legal-section p{margin:0 0 8px;font-size:13.5px;line-height:1.55;color:var(--text-soft, #d7dbe5)}.legal-section a{color:var(--accent-bright, #ffd970);text-decoration:underline}.legal-section code{background:#ffffff0f;padding:1px 5px;border-radius:4px;font-size:12px;font-family:ui-monospace,SF Mono,Menlo,monospace}.legal-footer{display:flex;justify-content:flex-end;margin-top:14px;padding-top:14px;border-top:1px solid rgba(255,255,255,.06)}.home-footer-btn{background:none;border:none;padding:0;font:inherit;letter-spacing:inherit;color:inherit;cursor:pointer;text-transform:inherit}.home-footer-portal.home-footer-portal{text-decoration:none;color:var(--accent-soft, #f0d488);transition:color .2s ease}.home-footer-portal.home-footer-portal:hover{color:var(--accent-bright, #ffd970)}@media (max-width: 640px){.home-footer-portal{flex-basis:100%;text-align:center;margin-top:4px}}.lang-switcher{position:relative;display:inline-flex;align-items:center}.lang-switcher-btn{display:inline-flex;align-items:center;justify-content:center;width:34px;height:30px;padding:0;background:transparent;border:1px solid rgba(255,217,112,.22);border-radius:6px;cursor:pointer;transition:background-color .15s ease,border-color .15s ease,transform .15s ease}.lang-switcher-btn:hover{background:#281c0c8c;border-color:#ffd9708c;transform:translateY(-1px)}.lang-switcher-btn:focus-visible{outline:2px solid var(--accent-bright, #ffd970);outline-offset:2px}.lang-switcher-menu{position:absolute;top:calc(100% + 6px);right:0;z-index:200;margin:0;padding:4px;list-style:none;background:var(--bg-elev, #1c1812);border:1px solid rgba(255,217,112,.25);border-radius:8px;box-shadow:0 8px 24px #00000059;min-width:150px}.lang-switcher-item{display:flex;align-items:center;gap:8px;width:100%;padding:7px 10px;background:transparent;border:0;border-radius:5px;color:var(--text, #f1ebd8);font-size:.85rem;cursor:pointer;text-align:left}.lang-switcher-item:hover{background:#ffd97014}.lang-switcher-item.is-active{background:#ffd97024;color:var(--accent-bright, #ffd970)}@media (max-width: 640px){.lang-switcher-btn{width:30px;height:28px}}.instrument-side-panel{position:fixed;top:var(--topbar-h, 140px);right:0;bottom:0;width:420px;background:var(--bg-content, #13151c);border-left:1px solid var(--border, #2a2e3a);z-index:40;display:flex;flex-direction:column;box-shadow:-8px 0 24px #00000059}.instrument-side-panel-header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid var(--border-soft, #1f2330);flex-shrink:0;background:var(--panel, #1a1d26)}.instrument-side-panel-title{font-weight:600;font-size:.95rem;letter-spacing:.02em;color:var(--text, #f3f5f7)}.instrument-side-panel-home{background:transparent;border:none;color:var(--accent, #d4af4f);font-size:.82rem;font-weight:600;cursor:pointer;padding:4px 8px;border-radius:8px;transition:background .15s ease,color .15s ease;flex:1;text-align:left}.instrument-side-panel-home:hover{background:#d4af4f1a;color:var(--accent-bright, #ffd970)}.instrument-side-panel-close{background:transparent;border:1px solid var(--border, #2a2e3a);color:var(--text-soft, #d7dbe5);width:32px;height:32px;border-radius:999px;font-size:.85rem;cursor:pointer;display:flex;align-items:center;justify-content:center;line-height:1;transition:background .15s ease,border-color .15s ease,color .15s ease}.instrument-side-panel-close:hover{background:var(--panel-3, #272b38);border-color:var(--border-strong, #3a3f52);color:var(--accent-bright, #ffd970)}.instrument-side-panel-body{flex:1 1 auto;overflow-y:auto;padding:16px}@media (min-width: 1100px){.content.has-instrument-panel{padding-right:420px}}@media (max-width: 1099px){.instrument-side-panel{top:0;width:100%;z-index:60}}.sax-hub-card{position:relative;padding:24px 28px;margin:24px 0;background:linear-gradient(180deg,var(--panel) 0%,#1a160e 100%);border:1px solid var(--border);border-radius:18px;overflow:hidden}.sax-hub-card:before{content:"";position:absolute;left:0;top:18px;bottom:18px;width:3px;background:linear-gradient(180deg,#c89b3c 0%,var(--accent) 50%,#c89b3c 100%);border-radius:0 3px 3px 0}.sax-hub-header{margin-bottom:20px}.sax-hub-kicker{font-family:Cinzel,serif;font-size:.75rem;letter-spacing:.25em;color:#c89b3c;margin-bottom:4px}.sax-hub-title{font-family:Cinzel,serif;font-size:1.6rem;font-weight:600;color:var(--accent);margin:0 0 6px}.sax-hub-subtitle{color:var(--text-dim);font-size:.92rem;margin:0;max-width:560px}.sax-hub-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:14px}.sax-block-saxos,.sax-block-transpose{grid-column:span 6}.sax-block-comparator,.sax-block-diagram,.sax-block-cheatsheet{grid-column:1 / -1}.sax-block-modes{grid-column:span 8}.sax-block-range{grid-column:span 4}.sax-block-bangers,.sax-block-riffs,.sax-block-styles,.sax-block-saxists,.sax-block-calculator{grid-column:1 / -1}@media (max-width: 900px){.sax-hub-grid{grid-template-columns:1fr}.sax-block-saxos,.sax-block-transpose,.sax-block-comparator,.sax-block-diagram,.sax-block-cheatsheet,.sax-block-modes,.sax-block-range,.sax-block-bangers,.sax-block-calculator{grid-column:1 / -1}}.sax-block{background:var(--panel-2);border:1px solid var(--border);border-radius:12px;padding:14px 16px;display:flex;flex-direction:column;gap:10px}.sax-block-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.sax-block-title{font-family:Cinzel,serif;font-size:.95rem;font-weight:600;color:var(--accent);margin:0;letter-spacing:.04em}.sax-block-actions{display:flex;gap:6px}.sax-scope-toggle,.sax-reset-btn{background:transparent;border:1px solid var(--border);border-radius:8px;color:var(--text-dim);font-size:.75rem;padding:4px 10px;cursor:pointer;transition:border-color .15s,color .15s,background .15s}.sax-scope-toggle:hover,.sax-reset-btn:hover{border-color:var(--accent-dim);color:var(--accent)}.sax-scope-toggle.is-on{background:#c89b3c1f;border-color:#c89b3c;color:#d4af4f}.sax-reset-btn{padding:4px 8px;font-size:.9rem;min-width:28px}.sax-selector{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.sax-selector-btn{display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:10px 12px;background:var(--panel);border:1px solid var(--border);border-radius:10px;color:var(--text);cursor:pointer;text-align:left;transition:all .15s}.sax-selector-btn:hover{border-color:#c89b3c}.sax-selector-btn.is-active{background:linear-gradient(135deg,#d4af4f26,#c89b3c40);border-color:var(--accent);box-shadow:0 2px 8px #d4af4f26}.sax-selector-btn.is-foreign{opacity:.6}.sax-selector-btn.is-foreign:hover{opacity:1}.sax-selector-name{font-family:Cinzel,serif;font-size:.98rem;font-weight:600;color:var(--text)}.sax-selector-btn.is-active .sax-selector-name{color:var(--accent)}.sax-selector-pitch{font-size:.72rem;color:var(--text-dim);letter-spacing:.05em}.sax-active-desc{font-size:.82rem;color:var(--text-dim);margin:4px 0 0;line-height:1.4;font-style:italic}.sax-transpose-readout{display:flex;flex-direction:column;align-items:center;gap:4px;padding:12px 8px;background:#00000040;border-radius:10px;border:1px solid var(--border)}.sax-transpose-line{display:flex;align-items:baseline;gap:10px}.sax-transpose-label{font-size:.75rem;color:var(--text-dim);letter-spacing:.04em}.sax-transpose-key{font-family:Cinzel,serif;font-size:1.8rem;font-weight:600;letter-spacing:.02em}.sax-transpose-key-concert{color:var(--text)}.sax-transpose-key-written{color:var(--accent)}.sax-transpose-arrow{font-size:1.2rem;color:#c89b3c;line-height:1}.sax-transpose-quick{margin-top:8px;padding-top:10px;border-top:1px dashed var(--border)}.sax-transpose-quick-label{font-size:.75rem;color:var(--text-dim);letter-spacing:.04em;margin-bottom:6px}.sax-transpose-quick-row{display:flex;align-items:center;gap:4px;flex-wrap:wrap}.sax-transpose-btn{flex:0 1 auto;padding:6px 10px;background:var(--panel);border:1px solid var(--border);border-radius:8px;color:var(--text);font-size:.82rem;cursor:pointer;transition:all .15s;white-space:nowrap}.sax-transpose-btn:hover{border-color:var(--accent);color:var(--accent);background:#d4af4f14}.sax-transpose-current{flex:0 0 auto;min-width:36px;text-align:center;font-family:Cinzel,serif;font-weight:600;font-size:.9rem;color:var(--accent);padding:0 6px}.sax-transpose-hint{margin:8px 0 0;font-size:.76rem;color:var(--text-dim);line-height:1.4;font-style:italic}.sax-mode-toggle{display:flex;background:var(--panel);border:1px solid var(--border);border-radius:8px;padding:2px;gap:2px}.sax-mode-btn{padding:4px 10px;background:transparent;border:none;border-radius:6px;color:var(--text-dim);font-size:.76rem;cursor:pointer;transition:all .15s}.sax-mode-btn:hover{color:var(--accent)}.sax-mode-btn.is-active{background:linear-gradient(135deg,var(--accent-soft),var(--accent));color:#1a1608}.sax-diagram-wrap{display:flex;justify-content:center;padding:8px 0}.sax-scale-row{display:flex;flex-direction:column;gap:6px;padding-top:8px;border-top:1px dashed var(--border)}.sax-scale-label{font-size:.76rem;color:var(--text-dim);letter-spacing:.04em}.sax-scale-notes{display:flex;flex-wrap:wrap;gap:6px}.sax-scale-note{display:inline-block;padding:6px 14px;background:#d4af4f14;border:1px solid rgba(212,175,79,.3);border-left-width:4px;border-radius:9px;font-family:Cinzel,serif;font-size:.95rem;color:var(--accent);font-weight:600;cursor:pointer;transition:all .18s}.sax-scale-note:hover{background:#d4af4f2e;transform:translateY(-1px)}.sax-scale-note.is-selected{background:linear-gradient(135deg,#ffe082,#d4af4f 60%,#b8893a);color:#1a1408;border-color:#fff5d0;border-width:2px;border-left-width:4px;font-weight:800;transform:translateY(1px);box-shadow:inset 0 2px 4px #00000059,0 0 0 1px #fff5d066,0 0 14px #ffd9708c;text-shadow:0 1px 0 rgba(255,245,208,.35)}.sax-scale-note.sax-reg-low{border-left-color:#6b8fb8}.sax-scale-note.sax-reg-mid{border-left-color:#c89b3c}.sax-scale-note.sax-reg-high{border-left-color:#d96f6f}.sax-register-legend{display:flex;align-items:center;gap:8px;margin-top:4px;font-size:.68rem;color:var(--text-dim);letter-spacing:.03em}.sax-reg-dot{display:inline-block;width:9px;height:9px;border-radius:2px;margin:0 4px 0 8px;vertical-align:middle}.sax-reg-dot:first-child{margin-left:0}.sax-reg-dot.sax-reg-low{background:#6b8fb8}.sax-reg-dot.sax-reg-mid{background:#c89b3c}.sax-reg-dot.sax-reg-high{background:#d96f6f}.sax-clear-selection{background:#d4af4f1f;border:1px solid rgba(212,175,79,.4);border-radius:8px;color:var(--accent);font-size:.72rem;padding:4px 10px;cursor:pointer;transition:all .15s}.sax-clear-selection:hover{background:#d4af4f38}.sax-staff-wrap{display:flex;flex-direction:column;gap:4px;padding:10px 8px;background:linear-gradient(180deg,#f5f0e0,#ebe4ce);border-radius:10px;border:1px solid #c89b3c}.sax-staff-caption{display:flex;align-items:baseline;gap:10px;padding:0 6px}.sax-staff-tonic{font-family:Cinzel,serif;font-size:1.1rem;font-weight:700;color:#3a280d}.sax-staff-sig{font-size:.78rem;color:#6a5630;font-style:italic}.sax-staff{display:block;width:100%;height:auto}.staff-line,.staff-ledger{stroke:#3a280d;stroke-width:.8}.staff-clef{font-size:56px;fill:#3a280d;font-family:Bravura,Maestro,serif}.staff-acc-sig{font-size:22px;fill:#3a280d;font-weight:700}.staff-note{transition:opacity .15s}.staff-note:hover .staff-note-head{fill:var(--accent)}.staff-note-head{fill:#3a280d;stroke:#3a280d;stroke-width:.5;transition:fill .15s}.staff-note-stem{stroke:#3a280d;stroke-width:1.2}.staff-note-label{fill:#5a4220;font-size:11px;font-family:Cinzel,serif;font-weight:600}.staff-note.is-selected .staff-note-head{fill:#b8401a;stroke:#b8401a}.staff-note.is-selected .staff-note-stem{stroke:#b8401a}.staff-note.is-selected .staff-note-label{fill:#b8401a;font-weight:700}.sax-hub-header{display:grid;grid-template-columns:1fr auto;gap:20px;align-items:start}.sax-hub-header-text{display:flex;flex-direction:column;gap:6px}.sax-key-picker{display:flex;flex-direction:column;gap:6px;padding:12px 16px;background:linear-gradient(135deg,#d4af4f1f,#d4af4f0a);border:1px solid rgba(212,175,79,.4);border-radius:14px;min-width:220px}.sax-key-picker.is-open{border-color:var(--accent);box-shadow:0 4px 16px #d4af4f33}.sax-key-picker-display{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.sax-key-picker-meta{display:flex;flex-direction:column;gap:2px;min-width:0}.sax-key-picker-kicker{font-family:Cinzel,serif;font-size:.7rem;letter-spacing:.12em;color:var(--text-dim);text-transform:uppercase}.sax-key-picker-badge{font-size:.68rem;padding:2px 8px;border-radius:99px;align-self:flex-start;letter-spacing:.04em}.sax-key-picker-badge.is-from-song{background:#7fc97a1f;border:1px solid rgba(127,201,122,.4);color:#7fc97a}.sax-key-picker-badge.is-override,.sax-key-picker-badge.is-free{background:#d4af4f26;border:1px solid rgba(212,175,79,.4);color:var(--accent)}.sax-key-picker-main{display:flex;align-items:baseline;gap:6px;padding:4px 10px;background:#1a160e80;border:1px solid rgba(212,175,79,.35);border-radius:10px;cursor:pointer;transition:all .15s;margin-left:auto}.sax-key-picker-main:hover{border-color:var(--accent);background:#1a160ea6}.sax-key-picker-value{font-family:Cinzel,serif;font-size:2.4rem;font-weight:700;color:var(--accent);line-height:1;letter-spacing:.03em}.sax-key-picker-chevron{font-size:.9rem;color:var(--accent)}.sax-key-picker-reset{font-size:.72rem;padding:4px 9px;background:transparent;border:1px solid var(--border);border-radius:6px;color:var(--text-dim);cursor:pointer;transition:all .15s}.sax-key-picker-reset:hover{color:var(--accent);border-color:#d4af4f66}.sax-key-picker-panel{display:flex;flex-direction:column;gap:8px;padding-top:8px;border-top:1px dashed rgba(212,175,79,.3)}.sax-key-picker-tonics{display:flex;flex-wrap:wrap;gap:4px}.sax-key-picker-chip{padding:5px 9px;min-width:32px;background:#1a160e59;border:1px solid var(--border);border-radius:6px;color:var(--text);font-family:Cinzel,serif;font-size:.82rem;cursor:pointer;transition:all .15s}.sax-key-picker-chip:hover{border-color:#d4af4f80}.sax-key-picker-chip.is-active{background:linear-gradient(135deg,var(--accent-soft),var(--accent));color:#1a1608;border-color:var(--accent);font-weight:700}.sax-key-picker-mode{display:flex;gap:4px}.sax-key-picker-mode-btn{padding:4px 12px;background:#1a160e59;border:1px solid var(--border);border-radius:6px;color:var(--text);font-size:.8rem;cursor:pointer;transition:all .15s}.sax-key-picker-mode-btn.is-active{background:#d4af4f26;border-color:#d4af4f80;color:var(--accent)}.sax-key-picker-link{background:transparent;border:none;color:var(--accent);font-size:.75rem;text-align:left;cursor:pointer;padding:2px 0;text-decoration:underline}.sax-key-picker-link:hover{color:var(--accent-soft)}@media (max-width: 700px){.sax-hub-header{grid-template-columns:1fr}.sax-key-picker{min-width:0}}.sax-hub-manual-btn{display:inline-flex;align-items:center;gap:12px;padding:12px 16px;border-radius:var(--r-sm);border:1px solid rgba(212,175,79,.35);background:linear-gradient(135deg,#d4af4f1f,#d4af4f0a);color:#e8e8ec;cursor:pointer;text-align:left;transition:border-color .15s ease,background .15s ease,transform .08s ease;margin:10px 0 4px}.sax-hub-manual-btn:hover{border-color:var(--accent);background:linear-gradient(135deg,#d4af4f38,#d4af4f14)}.sax-hub-manual-btn:active{transform:translateY(1px)}.sax-hub-manual-btn-icon{font-size:1.4rem;line-height:1}.sax-hub-manual-btn-text{display:flex;flex-direction:column;line-height:1.25}.sax-hub-manual-btn-text strong{color:var(--accent);font-size:.95rem;font-weight:600}.sax-hub-manual-btn-text small{font-size:.78rem;color:var(--text-dim)}.sax-hub-manual-btn-arrow{color:var(--accent);font-size:1.05rem;margin-left:4px;transition:transform .2s}.sax-hub-manual-btn:hover .sax-hub-manual-btn-arrow{transform:translate(3px)}.sax-comparator{display:flex;flex-direction:column;gap:8px}.sax-comparator-head{display:flex;flex-direction:column;gap:2px}.sax-comparator-hint{font-size:.76rem;color:var(--text-dim);font-style:italic}.sax-comparator-table{display:flex;flex-direction:column;gap:4px;margin-top:6px}.sax-comparator-row{display:grid;grid-template-columns:minmax(110px,1.5fr) minmax(60px,1fr) minmax(50px,.8fr) minmax(50px,.8fr);align-items:center;gap:8px;padding:8px 12px;background:#1a160e59;border:1px solid var(--border);border-radius:10px;color:var(--text);text-align:left;font-size:.85rem;cursor:pointer;transition:all .15s}.sax-comparator-row.sax-comparator-header{background:transparent;border-color:transparent;font-size:.7rem;color:var(--text-dim);letter-spacing:.05em;text-transform:uppercase;padding-bottom:2px;cursor:default}.sax-comparator-row:not(.sax-comparator-header):hover{background:#d4af4f14;border-color:#d4af4f59;transform:translate(2px)}.sax-comparator-row.is-active{background:linear-gradient(135deg,#d4af4f26,#d4af4f0f);border-color:var(--accent)}.sax-comparator-row.is-best:not(.is-active){border-color:#d4af4f8c}.sax-comparator-label{display:flex;flex-direction:column;gap:1px}.sax-comparator-star{color:var(--accent);margin-right:4px}.sax-comparator-pitch{font-size:.7rem;color:var(--text-dim);font-style:italic}.sax-comparator-key{font-family:Cinzel,serif;font-size:1.05rem;color:var(--accent);letter-spacing:.03em}.sax-comparator-acc{font-family:Cinzel,serif;color:var(--text)}.sax-comparator-amb{font-size:.8rem;font-weight:600}.sax-comparator-amb.is-ok{color:#7fc97a}.sax-comparator-amb.is-warn{color:#d96f6f}.sax-comparator-empty{padding:20px;color:var(--text-dim);text-align:center;font-style:italic}.sax-cheatsheet{display:flex;flex-direction:column;gap:10px}.sax-cheatsheet-hint{font-size:.76rem;color:var(--text-dim);font-style:italic}.sax-cheatsheet-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.sax-cheatsheet-cell{display:flex;flex-direction:column;gap:4px;padding:10px 12px;background:#d4af4f0f;border:1px solid rgba(212,175,79,.25);border-radius:10px}.sax-cheatsheet-cell-wide{grid-column:1 / -1}.sax-cheatsheet-cell-label{font-size:.7rem;color:var(--text-dim);text-transform:uppercase;letter-spacing:.06em}.sax-cheatsheet-cell-val{font-family:Cinzel,serif;font-size:1rem;color:var(--text)}.sax-cheatsheet-tonic{font-size:1.3rem;color:var(--accent)}.sax-cheatsheet-scale{font-size:.95rem;letter-spacing:.05em}.sax-cheatsheet-chords{display:flex;flex-direction:column;gap:6px;padding-top:6px;border-top:1px dashed var(--border)}.sax-cheatsheet-chords-label{font-size:.72rem;color:var(--text-dim);text-transform:uppercase;letter-spacing:.06em}.sax-cheatsheet-chords-list{display:flex;flex-direction:column;gap:4px}.sax-cheatsheet-chord-row{display:grid;grid-template-columns:minmax(60px,.4fr) auto minmax(80px,.8fr) auto;align-items:center;gap:10px;padding:8px 10px;background:#1a160e59;border-radius:6px;font-size:.85rem}.sax-cheatsheet-chord-staff{display:flex;align-items:center;background:linear-gradient(180deg,#f5f0e0,#ebe4ce);border-radius:6px;padding:2px 6px;border:1px solid #c89b3c}.sax-cheatsheet-chord-staff .sax-mini-staff{display:block}@media (max-width: 700px){.sax-cheatsheet-chord-row{grid-template-columns:minmax(60px,.5fr) auto 1fr}.sax-cheatsheet-chord-staff{grid-column:1 / -1}}.sax-cheatsheet-chord-name{font-family:Cinzel,serif;color:var(--accent);font-weight:600}.sax-cheatsheet-chord-arrow{color:var(--text-dim);font-size:.9rem}.sax-cheatsheet-chord-notes{color:var(--text);letter-spacing:.04em}.sax-cheatsheet-empty,.sax-cheatsheet-empty-line{padding:14px;color:var(--text-dim);text-align:center;font-style:italic}.sax-bangers{display:flex;flex-direction:column;gap:8px}.sax-bangers-hint{font-size:.76rem;color:var(--text-dim);font-style:italic}.sax-bangers-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:8px;margin-top:6px}.sax-banger-card{display:flex;flex-direction:column;gap:4px;padding:10px 12px;background:#1a160e66;border:1px solid var(--border);border-left:3px solid rgba(212,175,79,.4);border-radius:8px;color:var(--text);text-align:left;cursor:pointer;transition:all .15s}.sax-banger-card:hover{background:#d4af4f14;border-left-color:var(--accent);transform:translateY(-1px)}.sax-banger-title{font-family:Cinzel,serif;font-size:.92rem;color:var(--accent);font-weight:600}.sax-banger-artist{font-size:.78rem;color:var(--text-dim)}.sax-banger-meta{display:flex;align-items:center;gap:6px;margin-top:2px;font-size:.72rem}.sax-banger-key{color:var(--text-dim);font-family:Cinzel,serif}.sax-banger-badge{padding:1px 6px;background:#d4af4f26;border:1px solid rgba(212,175,79,.35);border-radius:4px;color:var(--accent);font-size:.68rem;letter-spacing:.04em}.sax-banger-badge-live{background:#7fc97a1f;border-color:#7fc97a59;color:#7fc97a}.sax-calculator{display:flex;flex-direction:column;gap:12px}.sax-calculator-hint{font-size:.76rem;color:var(--text-dim);font-style:italic}.sax-calculator-controls{display:flex;flex-direction:column;gap:12px}.sax-calculator-field{display:flex;flex-direction:column;gap:6px}.sax-calculator-field label{font-size:.72rem;color:var(--text-dim);text-transform:uppercase;letter-spacing:.06em}.sax-calculator-tonics{display:flex;flex-wrap:wrap;gap:4px}.sax-calc-chip{padding:5px 9px;min-width:32px;background:#1a160e59;border:1px solid var(--border);border-radius:6px;color:var(--text);font-family:Cinzel,serif;font-size:.82rem;cursor:pointer;transition:all .15s}.sax-calc-chip:hover{border-color:#d4af4f66}.sax-calc-chip.is-active{background:linear-gradient(135deg,var(--accent-soft),var(--accent));color:#1a1608;border-color:var(--accent);font-weight:700}.sax-calculator-mode-toggle{display:flex;gap:4px;margin-top:4px}.sax-calc-mode{padding:5px 12px;background:#1a160e59;border:1px solid var(--border);border-radius:6px;color:var(--text);font-size:.8rem;cursor:pointer;transition:all .15s}.sax-calc-mode.is-active{background:#d4af4f26;border-color:#d4af4f80;color:var(--accent)}.sax-calculator-saxos{display:flex;flex-wrap:wrap;gap:6px}.sax-calc-sax-btn{padding:6px 12px;background:#1a160e59;border:1px solid var(--border);border-radius:8px;color:var(--text);font-family:Cinzel,serif;font-size:.85rem;cursor:pointer;transition:all .15s}.sax-calc-sax-btn:hover{border-color:#d4af4f66}.sax-calc-sax-btn.is-active{background:linear-gradient(135deg,var(--accent-soft),var(--accent));color:#1a1608;border-color:var(--accent);font-weight:700}.sax-calculator-readout{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:10px;padding:10px;background:#d4af4f0d;border:1px dashed rgba(212,175,79,.25);border-radius:10px}.sax-calculator-line{display:flex;flex-direction:column;align-items:center;gap:2px}.sax-calculator-label{font-size:.68rem;color:var(--text-dim);text-transform:uppercase;letter-spacing:.05em}.sax-calculator-key{font-family:Cinzel,serif;font-size:1.4rem;color:var(--text);font-weight:700}.sax-calculator-key-written{color:var(--accent)}.sax-calculator-sig{font-size:.7rem;color:var(--text-dim);font-style:italic;margin-top:1px}.sax-calculator-arrow{font-size:1.6rem;color:var(--accent);font-weight:700}.sax-modes{display:flex;flex-direction:column;gap:8px}.sax-modes-hint{font-size:.76rem;color:var(--text-dim);font-style:italic}.sax-modes-list{display:flex;flex-direction:column;gap:6px}.sax-modes-row{display:grid;grid-template-columns:minmax(60px,.5fr) 1fr;align-items:start;gap:12px;padding:10px 12px;background:#1a160e59;border:1px solid var(--border);border-radius:8px}.sax-modes-col{display:flex;flex-direction:column;gap:8px}.sax-modes-chord{font-family:Cinzel,serif;font-size:1rem;color:var(--accent);font-weight:600}.sax-modes-suggestions{display:flex;flex-wrap:wrap;gap:6px}.sax-mode-chip{display:flex;flex-direction:column;gap:1px;padding:4px 9px;background:#d4af4f14;border:1px solid rgba(212,175,79,.3);border-radius:6px;cursor:pointer;transition:all .15s;text-align:left}.sax-mode-chip:hover{background:#d4af4f2e;border-color:#d4af4f8c}.sax-mode-chip.is-selected{background:linear-gradient(135deg,var(--accent-soft),var(--accent));border-color:var(--accent);box-shadow:0 2px 8px #d4af4f59}.sax-mode-chip.is-selected .sax-mode-chip-name,.sax-mode-chip.is-selected .sax-mode-chip-flavor{color:#1a1608}.sax-mode-staff{display:flex;flex-direction:column;gap:4px;padding:8px;background:linear-gradient(180deg,#f5f0e0,#ebe4ce);border-radius:8px;border:1px solid #c89b3c}.sax-mode-staff-caption{display:flex;align-items:baseline;gap:8px;padding:0 6px}.sax-mode-staff-caption>span:first-child{font-family:Cinzel,serif;font-size:.9rem;font-weight:700;color:#3a280d}.sax-mode-staff-why{font-size:.72rem;font-style:italic;color:#6a5630}.sax-mini-staff{display:block;background:transparent}.sax-mini-staff-empty{font-size:.7rem;color:var(--text-dim);font-style:italic}.sax-mode-chip-name{font-family:Cinzel,serif;font-size:.85rem;color:var(--accent);font-weight:600}.sax-mode-chip-flavor{font-size:.7rem;color:var(--text-dim);font-style:italic}.sax-modes-empty{padding:20px;color:var(--text-dim);text-align:center;font-style:italic}.sax-anatomy{display:flex;flex-direction:column;gap:10px}.sax-anatomy-hint{font-size:.76rem;color:var(--text-dim);font-style:italic}.sax-anatomy-body{display:grid;grid-template-columns:minmax(200px,1fr) 1.4fr;gap:16px;align-items:start}.sax-anatomy-diagram{display:flex;justify-content:center}.sax-anatomy-svg{width:100%;max-width:240px;height:auto}.sax-anatomy-bec{fill:#1a1410;stroke:#4a3a28;stroke-width:.8}.sax-anatomy-ligature{fill:#b8b0a0;stroke:#6a6258;stroke-width:.6}.sax-anatomy-bell-lip{fill:#c89b3c;stroke:#5c4118;stroke-width:1}.sax-anatomy-hotspot circle{fill:#d4af4fd9;stroke:#1a1608;stroke-width:1.2;transition:all .2s}.sax-anatomy-hotspot:hover circle{fill:var(--accent);transform-origin:center}.sax-anatomy-hotspot.is-active circle{fill:#ff8c42;stroke:#1a1608;stroke-width:2}.sax-anatomy-hotspot-num{fill:#1a1608;font-family:Inter,sans-serif;font-size:12px;font-weight:800;pointer-events:none;-webkit-user-select:none;user-select:none}.sax-anatomy-legend{display:flex;flex-direction:column;gap:10px;padding:12px;background:#1a160e66;border:1px solid var(--border);border-radius:10px}.sax-anatomy-label{margin:0;font-family:Cinzel,serif;font-size:1rem;color:var(--accent)}.sax-anatomy-desc{margin:0;font-size:.85rem;color:var(--text);line-height:1.5}.sax-anatomy-toc{margin:0;padding:8px 0 0;list-style:none;display:flex;flex-wrap:wrap;gap:4px;border-top:1px dashed var(--border)}.sax-anatomy-toc-btn{display:inline-flex;align-items:center;gap:4px;padding:3px 8px;background:transparent;border:1px solid var(--border);border-radius:5px;color:var(--text-dim);font-size:.72rem;cursor:pointer;transition:all .15s}.sax-anatomy-toc-btn:hover{border-color:#d4af4f66;color:var(--text)}.sax-anatomy-toc-btn.is-active{background:#d4af4f26;border-color:var(--accent);color:var(--accent)}.sax-anatomy-toc-num{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;background:#d4af4f33;border-radius:50%;font-weight:700;font-size:.68rem}@media (max-width: 700px){.sax-anatomy-body{grid-template-columns:1fr}}.sax-collapsible-head{display:flex;align-items:center;gap:10px;width:100%;padding:10px 14px;background:#1a160e59;border:1px solid var(--border);border-radius:10px;color:var(--text);text-align:left;cursor:pointer;transition:all .15s}.sax-collapsible-head:hover{border-color:#d4af4f66}.sax-collapsible-head.is-open{background:#d4af4f14;border-color:#d4af4f66;border-bottom-left-radius:0;border-bottom-right-radius:0;margin-bottom:-1px}.sax-collapsible-chevron{color:var(--accent);font-size:.8rem;width:14px;display:inline-flex;justify-content:center}.sax-collapsible-title{font-family:Cinzel,serif;font-size:.95rem;color:var(--accent);font-weight:600}.sax-collapsible-hint{font-size:.72rem;color:var(--text-dim);font-style:italic;margin-left:auto}.sax-block-calculator>.sax-calculator,.sax-block-anatomy>.sax-anatomy{padding:12px 14px;background:#1a160e40;border:1px solid rgba(212,175,79,.25);border-top:none;border-radius:0 0 10px 10px}.sax-range-readout{display:flex;flex-direction:column;gap:4px}.sax-range-line{display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding:4px 0}.sax-range-label{font-size:.8rem;color:var(--text-dim)}.sax-range-value{font-family:Cinzel,serif;font-weight:600;font-size:.92rem;color:var(--text)}.sax-range-check{display:flex;align-items:flex-start;gap:10px;margin-top:6px;padding:10px 12px;border-radius:10px;font-size:.85rem;line-height:1.45}.sax-range-check.is-ok{background:#569a5614;border:1px solid rgba(86,154,86,.35);color:#b9d6b9}.sax-range-check.is-warn{background:#d4823c1a;border:1px solid rgba(212,130,60,.4);color:#e0b990}.sax-range-check-dot{flex-shrink:0;width:8px;height:8px;border-radius:50%;margin-top:6px}.sax-range-check.is-ok .sax-range-check-dot{background:#6fbf6f}.sax-range-check.is-warn .sax-range-check-dot{background:#d68246}.sax-empty{color:var(--text-dim);font-style:italic;font-size:.9rem}.sax-svg{display:block;-webkit-user-select:none;user-select:none}.sax-bec{fill:#1a1410;stroke:#4a3a28;stroke-width:.8}.sax-ligature{fill:#b8b0a0;stroke:#6a6258;stroke-width:.6}.sax-screw{fill:#2a2018;stroke:none}.sax-bell-lip{fill:#c89b3c;stroke:#5c4118;stroke-width:1}.sax-thumb-hook{fill:#2a2018;stroke:#5c4118;stroke-width:.8}.sax-tube-shine{stroke:#ffd97066;stroke-width:2;stroke-linecap:round;fill:none}.sax-key circle,.sax-key rect{fill:transparent;stroke:transparent;stroke-width:1.2;transition:fill .2s,stroke .2s}.sax-key .sax-key-label{opacity:0;transition:opacity .2s}.sax-key:hover circle,.sax-key:hover rect{stroke:#d4af4f8c;fill:#d4af4f1a}.sax-key.is-highlighted circle,.sax-key.is-highlighted rect,.sax-key.is-active circle,.sax-key.is-active rect{fill:transparent;stroke:transparent}.sax-key-label{fill:#f5e8c8;font-family:Inter,sans-serif;font-size:11px;font-weight:700;pointer-events:none;-webkit-user-select:none;user-select:none;paint-order:stroke fill;stroke:#000000b3;stroke-width:.6;letter-spacing:.02em}.sax-key.is-highlighted .sax-key-label{fill:#1a1608;stroke:#fff0c880;stroke-width:.5}.sax-key.is-active .sax-key-label{fill:#1a1608;stroke:#fff5d0b3;stroke-width:.6;font-weight:800}.sax-key-out-leader{stroke:#8a6f3a;stroke-width:1.1;stroke-linecap:round;opacity:.7;fill:none;transition:stroke .2s,opacity .2s,stroke-width .2s}.sax-key-out-pill{fill:#1a1408;stroke:#8a6f3a;stroke-width:1;transition:fill .2s,stroke .2s,filter .2s,stroke-width .2s}.sax-key-out-text{fill:#f5e8c8;font-family:Inter,sans-serif;font-size:20px;font-weight:700;letter-spacing:.02em;pointer-events:none;-webkit-user-select:none;user-select:none;paint-order:stroke fill;transition:fill .2s,font-weight .2s}.sax-key-out:hover .sax-key-out-leader{stroke:#c89b3c;opacity:1}.sax-key-out:hover .sax-key-out-pill{stroke:#c89b3c;fill:#251c0d}.sax-key-out.is-highlighted .sax-key-out-leader{stroke:#d4af4f;opacity:1}.sax-key-out.is-highlighted .sax-key-out-pill{fill:var(--accent, #3a2a10);stroke:#d4af4f;filter:drop-shadow(0 0 3px rgba(212,175,79,.45))}.sax-key-out.is-highlighted .sax-key-out-text{fill:#fff5d0;font-weight:700}.sax-key-out.is-active .sax-key-out-leader{stroke:#ffd970;stroke-width:1.6;opacity:1;filter:drop-shadow(0 0 4px rgba(255,217,112,.8))}.sax-key-out.is-active .sax-key-out-pill{fill:#5a4520;stroke:#ffd970;stroke-width:1.4;filter:drop-shadow(0 0 7px rgba(255,217,112,.75))}.sax-key-out.is-active .sax-key-out-text{fill:#ffd970;font-weight:800}.sax-panel{display:flex;flex-direction:column;gap:14px}.sax-panel-header{display:flex;flex-direction:column;align-items:center;gap:2px;padding-bottom:10px;border-bottom:1px dashed var(--border)}.sax-panel-kicker{font-family:Cinzel,serif;font-size:.68rem;letter-spacing:.3em;color:#c89b3c}.sax-panel-title{font-family:Cinzel,serif;font-size:1.3rem;font-weight:600;color:var(--accent)}.sax-panel-pitch{font-size:.82rem;color:var(--text-dim);letter-spacing:.04em}.sax-panel-empty{padding:16px 0;text-align:center;color:var(--text-dim);font-size:.9rem}.sax-panel-readout{display:flex;flex-direction:column;align-items:center;gap:4px;padding:10px;background:#00000040;border-radius:10px}.sax-panel-line{display:flex;align-items:baseline;gap:10px}.sax-panel-label{font-size:.72rem;color:var(--text-dim);letter-spacing:.04em}.sax-panel-key{font-family:Cinzel,serif;font-size:1.4rem;font-weight:600;color:var(--text)}.sax-panel-key-written{color:var(--accent)}.sax-panel-arrow{color:#c89b3c;line-height:1}.sax-panel-diagram{display:flex;justify-content:center}.sax-panel-scales{display:flex;flex-direction:column;gap:6px;padding:10px;background:var(--panel-2);border:1px solid var(--border);border-radius:10px}.sax-panel-scale-row{display:flex;align-items:center;gap:10px;font-size:.85rem}.sax-panel-scale-label{font-size:.72rem;color:var(--text-dim);letter-spacing:.04em;min-width:50px}.sax-panel-scale-notes{font-family:Cinzel,serif;color:var(--accent);font-weight:600}.sax-panel-scale-notes-muted{color:var(--text-dim);font-weight:500}.sax-panel-range{font-size:.82rem;color:var(--text-dim);text-align:center;padding:6px 0}.sax-panel-range strong{color:var(--text);font-family:Cinzel,serif;letter-spacing:.03em}.sax-panel-pills-row{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:4px}.sax-panel-mode-toggle{display:flex;background:var(--panel);border:1px solid var(--border);border-radius:8px;padding:2px;gap:2px}.sax-panel-pills{margin-top:2px}.sax-panel-ambitus{display:flex;flex-direction:column;gap:6px;padding-top:6px;border-top:1px dashed var(--border)}.sax-range-check-compact{font-size:.78rem;padding:6px 10px;margin-top:0}.sax-panel-transpose{display:flex;align-items:center;justify-content:center;gap:4px;padding-top:10px;border-top:1px dashed var(--border);flex-wrap:wrap}.sax-panel-transpose button{padding:6px 10px;background:var(--panel);border:1px solid var(--border);border-radius:8px;color:var(--text);font-size:.8rem;cursor:pointer;transition:all .15s}.sax-panel-transpose button:hover{border-color:var(--accent);color:var(--accent)}.sax-panel-transpose-val{font-family:Cinzel,serif;font-weight:600;color:var(--accent);padding:0 6px;font-size:.9rem}.sax-side-panel .instrument-side-panel-header{flex-wrap:wrap;gap:8px}.sax-side-panel-saxos{display:flex;gap:4px;flex:1 1 auto;justify-content:center;flex-wrap:wrap}.sax-side-saxo-btn{padding:4px 10px;background:var(--panel);border:1px solid var(--border);border-radius:6px;color:var(--text-dim);font-size:.76rem;cursor:pointer;transition:all .15s}.sax-side-saxo-btn:hover{border-color:#c89b3c;color:var(--accent)}.sax-side-saxo-btn.is-active{background:linear-gradient(135deg,var(--accent-soft),var(--accent));color:#1a1608;border-color:var(--accent)}@media (max-width: 768px){.sax-hub-card{padding:16px 18px}.sax-hub-title{font-size:1.3rem}.sax-hub-grid{gap:12px}.sax-selector{grid-template-columns:1fr}.sax-transpose-key{font-size:1.5rem}}.sax-block-saxos .sax-selector{display:flex;flex-wrap:wrap;gap:6px}.sax-block-saxos .sax-selector-btn{flex:0 1 auto;flex-direction:row;align-items:baseline;gap:6px;padding:7px 11px;min-width:90px}.sax-block-saxos .sax-selector-name{font-size:.9rem}.sax-block-saxos .sax-selector-pitch{font-size:.68rem}.sax-block-saxos .sax-active-desc{font-size:.78rem;margin-top:6px;line-height:1.35}.sax-block-saxos{align-self:start}.sax-diagram-split{display:grid;grid-template-columns:1fr auto;gap:18px;align-items:start}.sax-diagram-col-left{display:flex;flex-direction:column;gap:10px;min-width:0}.sax-diagram-col-right{display:flex;flex-direction:column;justify-content:flex-start;padding-top:4px}.sax-diagram-col-right .sax-svg{max-height:540px}.sax-block-diagram .sax-staff{max-height:130px}@media (max-width: 700px){.sax-diagram-split{grid-template-columns:1fr}.sax-diagram-col-right{align-items:center}}.sax-cheatsheet-chords-list{display:grid;grid-template-columns:1fr 1fr;gap:6px 12px}.sax-cheatsheet-chord-row{grid-template-columns:minmax(50px,.35fr) auto minmax(0,1fr);padding:6px 10px;font-size:.8rem;gap:8px}.sax-cheatsheet-chord-staff{grid-column:1 / -1;padding:1px 4px}.sax-cheatsheet-chord-staff .sax-mini-staff{width:100%;max-width:220px;margin:0 auto}@media (max-width: 700px){.sax-cheatsheet-chords-list{grid-template-columns:1fr}}.sax-block-modes{grid-column:span 9}.sax-block-range{grid-column:span 3}@media (max-width: 900px){.sax-block-modes,.sax-block-range{grid-column:1 / -1}}.sax-block-range{align-self:start}.sax-block-range .sax-range-readout{gap:4px}.sax-block-range .sax-range-line{font-size:.82rem}.sax-block-range .sax-range-value{font-family:Cinzel,serif;font-size:.88rem}.sax-block-range .sax-range-check{padding:8px 10px;font-size:.78rem;line-height:1.4}.sax-bangers-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:6px}.sax-banger-card{padding:7px 10px;gap:2px}.sax-banger-title{font-size:.85rem}.sax-banger-artist{font-size:.72rem}.sax-banger-meta{margin-top:0;font-size:.68rem}.sax-comparator-row{grid-template-columns:minmax(160px,1.8fr) minmax(80px,1fr) minmax(60px,.8fr) minmax(60px,.7fr);padding:9px 14px;gap:12px}.sax-comparator-row.sax-comparator-header{padding:4px 14px}.sax-comparator-key{font-size:1.15rem}@media (max-width: 700px){.sax-hub-card{padding:16px 14px;margin:16px 0}.sax-hub-grid{gap:10px}.sax-block{padding:12px;min-width:0}.sax-block-head{flex-direction:column;align-items:flex-start;gap:4px}.sax-selector-btn{padding:8px 10px}.sax-selector-name{font-size:.9rem}.sax-comparator-row{grid-template-columns:minmax(0,1.6fr) minmax(0,.8fr) minmax(0,.7fr);grid-template-areas:"label key amb" "label acc amb";padding:8px 10px;gap:4px 8px;font-size:.82rem}.sax-comparator-row.sax-comparator-header{display:none}.sax-comparator-label{grid-area:label}.sax-comparator-key{grid-area:key;font-size:1rem}.sax-comparator-acc{grid-area:acc;font-size:.85rem}.sax-comparator-amb{grid-area:amb;align-self:center;justify-self:end}.sax-cheatsheet-grid{grid-template-columns:1fr;gap:6px}.sax-cheatsheet-cell-wide{grid-column:1}.sax-modes-row{padding:8px 10px;gap:8px}.sax-bangers-grid{grid-template-columns:repeat(auto-fill,minmax(130px,1fr))}.sax-transpose-quick-row{flex-wrap:wrap;justify-content:center}.sax-hub-manual-btn{padding:8px 10px}.sax-id-row{grid-template-columns:1fr;gap:1px}.sax-id-row dt{font-size:.65rem}.sax-id-row dd{font-size:.82rem}}.help-dot-wrap{position:relative;display:inline-flex;align-items:center;vertical-align:middle;margin-left:6px}.help-dot{width:18px;height:18px;border-radius:50%;border:1px solid var(--accent-dim);background:transparent;color:var(--text-dim);font-size:.72rem;font-weight:700;font-family:var(--font-ui);cursor:pointer;padding:0;line-height:1;display:inline-flex;align-items:center;justify-content:center;transition:background .15s,color .15s,border-color .15s}.help-dot:hover{border-color:var(--accent);color:var(--accent);background:#d4af4f1a}.help-dot.is-open{background:var(--accent);color:#1a1608;border-color:var(--accent)}.help-popover{position:absolute;top:calc(100% + 8px);left:50%;transform:translate(-50%);width:max-content;max-width:min(320px,88vw);padding:10px 12px;background:var(--panel);border:1px solid rgba(212,175,79,.55);border-radius:10px;box-shadow:0 8px 24px #00000073;color:var(--text);font-family:var(--font-ui);font-size:.82rem;line-height:1.5;font-weight:400;letter-spacing:normal;text-transform:none;text-align:left;z-index:200}.help-popover:before{content:"";position:absolute;top:-5px;left:50%;transform:translate(-50%) rotate(45deg);width:8px;height:8px;background:var(--panel);border-top:1px solid rgba(212,175,79,.55);border-left:1px solid rgba(212,175,79,.55)}.help-popover strong{color:var(--accent)}.help-popover em{font-style:italic;color:var(--text-dim)}.sax-id-card{display:flex;flex-direction:column;gap:6px;margin:10px 0 0;padding-top:10px;border-top:1px dashed var(--border)}.sax-id-row{display:grid;grid-template-columns:140px 1fr;gap:12px;align-items:baseline}.sax-id-row dt{font-size:.68rem;text-transform:uppercase;letter-spacing:.07em;color:var(--text-dim);margin:0}.sax-id-row dd{margin:0;font-size:.85rem;color:var(--text);letter-spacing:.02em}.sax-id-hint{margin-left:6px;font-size:.72rem;font-style:italic;color:var(--text-dim)}.bass-hub-card{position:relative;padding:24px 28px;margin:24px 0;background:linear-gradient(180deg,var(--panel) 0%,#14110a 100%);border:1px solid var(--border);border-radius:18px;overflow:hidden}.bass-hub-card:before{content:"";position:absolute;left:0;top:18px;bottom:18px;width:3px;background:linear-gradient(180deg,#c89b3c 0%,var(--accent) 50%,#c89b3c 100%);border-radius:0 3px 3px 0}.bass-hub-header{margin-bottom:20px}.bass-hub-header-text{max-width:720px}.bass-hub-kicker{font-family:Cinzel,serif;font-size:.75rem;letter-spacing:.25em;color:#c89b3c;margin-bottom:4px}.bass-hub-title{font-family:Cinzel,serif;font-size:1.6rem;font-weight:600;color:var(--accent);margin:0 0 6px}.bass-hub-subtitle{color:var(--text-dim);font-size:.92rem;margin:0 0 12px;max-width:560px}.bass-hub-manual-btn{display:inline-flex;align-items:center;gap:12px;margin-top:4px;background:#d4af4f14;border:1px solid var(--accent-dim);border-radius:12px;padding:10px 16px;color:var(--text);cursor:pointer;transition:background .15s,border-color .15s,transform .1s}.bass-hub-manual-btn:hover{background:#d4af4f29;border-color:var(--accent)}.bass-hub-manual-btn:active{transform:translateY(1px)}.bass-hub-manual-btn-icon{font-size:1.4rem;line-height:1}.bass-hub-manual-btn-text{display:flex;flex-direction:column;align-items:flex-start;gap:2px;line-height:1.2}.bass-hub-manual-btn-text strong{font-size:.92rem;color:var(--accent)}.bass-hub-manual-btn-text small{font-size:.78rem;color:var(--text-dim)}.bass-hub-manual-btn-arrow{color:var(--accent);font-size:1.1rem;transition:transform .15s}.bass-hub-manual-btn:hover .bass-hub-manual-btn-arrow{transform:translate(3px)}.bass-hub-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:14px}.bass-block-tuning{grid-column:span 5}.bass-block-fretboard{grid-column:span 7}.bass-block-roadmap{grid-column:1 / -1}@media (max-width: 900px){.bass-hub-grid{grid-template-columns:1fr}.bass-block-tuning,.bass-block-fretboard,.bass-block-roadmap{grid-column:1 / -1}}.bass-block{background:var(--panel-2);border:1px solid var(--border);border-radius:12px;padding:14px 16px;display:flex;flex-direction:column;gap:10px}.bass-block-head{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap}.bass-block-title{font-family:Cinzel,serif;font-size:.95rem;font-weight:600;color:var(--accent);margin:0;letter-spacing:.04em;display:inline-flex;align-items:center;gap:6px}.bass-tuning-selector{display:flex;flex-wrap:wrap;gap:8px}.bass-tuning-btn{display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:8px 14px;background:transparent;border:1px solid var(--border);border-radius:10px;color:var(--text);cursor:pointer;transition:border-color .15s,background .15s,color .15s;min-width:100px}.bass-tuning-btn:hover{border-color:var(--accent-dim)}.bass-tuning-btn.is-active{background:#d4af4f24;border-color:var(--accent);color:var(--accent)}.bass-tuning-btn-label{font-size:.92rem;font-weight:600}.bass-tuning-btn-notes{font-size:.72rem;color:var(--text-dim);letter-spacing:.08em}.bass-tuning-btn.is-active .bass-tuning-btn-notes{color:var(--accent-dim)}.bass-tuning-desc{font-size:.85rem;color:var(--text-dim);margin:4px 0 0;line-height:1.5}.bass-controls-row{display:flex;align-items:flex-end;gap:12px;flex-wrap:wrap}.bass-control{display:flex;flex-direction:column;gap:4px;min-width:110px}.bass-control-label{font-size:.72rem;text-transform:uppercase;letter-spacing:.12em;color:var(--text-dim)}.bass-control-select{background:var(--panel);border:1px solid var(--border);border-radius:8px;color:var(--text);font-size:.9rem;padding:6px 10px;cursor:pointer}.bass-control-select:hover{border-color:var(--accent-dim)}.bass-control-select:focus{outline:none;border-color:var(--accent)}.bass-control-reset{background:transparent;border:1px solid var(--border);border-radius:8px;color:var(--text-dim);font-size:.8rem;padding:6px 12px;cursor:pointer;height:32px;transition:border-color .15s,color .15s}.bass-control-reset:hover{border-color:var(--accent-dim);color:var(--accent)}.bass-display-toggle{display:inline-flex;background:var(--panel);border:1px solid var(--border);border-radius:8px;padding:2px;gap:2px}.bass-display-btn{background:transparent;border:none;color:var(--text-dim);font-size:.8rem;padding:4px 12px;border-radius:6px;cursor:pointer;transition:background .15s,color .15s}.bass-display-btn:hover{color:var(--text)}.bass-display-btn.is-active{background:#d4af4f2e;color:var(--accent)}.bass-fretboard-wrap{background:linear-gradient(180deg,#1f1a12,#14110a);border:1px solid var(--border);border-radius:10px;padding:10px 6px;overflow-x:auto;overscroll-behavior:contain}.bass-fretboard{width:100%;height:auto;display:block}.bass-fret-dot{fill:#d4af4fd9;stroke:#1a1610;stroke-width:1.5;transition:fill .12s,stroke .12s}.bass-fret-dot.is-root{fill:var(--accent);stroke:#fff;stroke-width:1.8}.bass-fret-dot.is-selected{fill:#fff;stroke:var(--accent);stroke-width:2.5}.bass-fret-dot-label{fill:#1a1610;pointer-events:none;-webkit-user-select:none;user-select:none}.bass-fret-dot-grp.is-clickable{cursor:pointer}.bass-fret-dot-grp.is-clickable:hover .bass-fret-dot{fill:var(--accent)}.bass-scale-summary{font-size:.9rem;color:var(--text);margin:4px 0 0;display:flex;flex-wrap:wrap;gap:6px;align-items:center}.bass-scale-summary strong{color:var(--accent)}.bass-scale-summary-sep{color:var(--text-dim)}.bass-roadmap-list{margin:0;padding-left:20px;color:var(--text-dim);font-size:.9rem;line-height:1.7}.bass-roadmap-list li::marker{color:var(--accent-dim)}.bass-block-riffs{grid-column:1 / -1}.bass-riffs-count{font-size:.82rem;color:var(--text-dim)}.bass-riffs-count strong{color:var(--accent)}.bass-riffs-filters{display:flex;flex-direction:column;gap:8px;margin-bottom:4px}.bass-riffs-filter-row{display:flex;flex-wrap:wrap;gap:6px}.bass-chip{display:inline-flex;align-items:center;gap:6px;padding:4px 12px;background:transparent;border:1px solid var(--border);border-radius:999px;color:var(--text-dim);font-size:.8rem;cursor:pointer;transition:background .15s,border-color .15s,color .15s}.bass-chip:hover{border-color:var(--accent-dim);color:var(--text)}.bass-chip.is-active{background:#d4af4f2e;border-color:var(--accent);color:var(--accent)}.bass-chip-count{font-size:.7rem;color:var(--text-dim);font-weight:600}.bass-chip.is-active .bass-chip-count{color:var(--accent-dim)}.bass-chip-rock.is-active{background:#d45a5a2e;border-color:#d45a5a;color:#ff8b8b}.bass-chip-pop.is-active{background:#d48f4f2e;border-color:#d48f4f;color:#ffb87a}.bass-chip-funk.is-active{background:#d4af4f2e;border-color:#d4af4f;color:var(--accent)}.bass-chip-soul.is-active{background:#af4fd42e;border-color:#af4fd4;color:#d49aff}.bass-chip-metal.is-active{background:#9696a038;border-color:#aaa;color:#fff}.bass-chip-prog.is-active{background:#4f8fd42e;border-color:#4f8fd4;color:#7fbaff}.bass-chip-reggae.is-active{background:#4fd48f2e;border-color:#4fd48f;color:#7fffba}.bass-chip-jazz.is-active{background:#4fb3d42e;border-color:#4fb3d4;color:#7fcdef}.bass-chip-fusion.is-active{background:#d44fb32e;border-color:#d44fb3;color:#ff7fcd}.bass-chip-diff.bass-diff-beginner.is-active{background:#4fd48f2e;border-color:#4fd48f;color:#7fffba}.bass-chip-diff.bass-diff-intermediate.is-active{background:#d4af4f2e;border-color:#d4af4f;color:var(--accent)}.bass-chip-diff.bass-diff-advanced.is-active{background:#d48f4f2e;border-color:#d48f4f;color:#ffb87a}.bass-chip-diff.bass-diff-expert.is-active{background:#d45a5a2e;border-color:#d45a5a;color:#ff8b8b}.bass-riffs-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px;margin-top:8px}.bass-riff-card{background:var(--panel);border:1px solid var(--border);border-left:3px solid var(--accent-dim);border-radius:10px;overflow:hidden;display:flex;flex-direction:column;transition:border-color .15s,transform .1s}.bass-riff-card:hover{border-color:var(--accent-dim)}.bass-riff-card.bass-diff-beginner{border-left-color:#4fd48f}.bass-riff-card.bass-diff-intermediate{border-left-color:var(--accent)}.bass-riff-card.bass-diff-advanced{border-left-color:#d48f4f}.bass-riff-card.bass-diff-expert{border-left-color:#d45a5a}.bass-riff-card.is-expanded{border-color:var(--accent);box-shadow:0 4px 18px #0000004d}.bass-riff-card-toggle{text-align:left;width:100%;background:transparent;border:none;color:var(--text);padding:12px 14px;cursor:pointer;display:flex;flex-direction:column;gap:8px}.bass-riff-card-toggle:hover{background:#d4af4f0a}.bass-riff-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.bass-riff-card-titles{flex:1;min-width:0}.bass-riff-title{font-size:1.02rem;font-weight:700;color:var(--text);margin:0;line-height:1.25}.bass-riff-artist{font-size:.82rem;color:var(--text-dim);margin:2px 0 0}.bass-riff-card-meta{display:flex;flex-direction:column;align-items:flex-end;gap:4px;flex-shrink:0}.bass-riff-key{font-family:JetBrains Mono,monospace;font-size:.82rem;font-weight:700;color:var(--accent);padding:2px 8px;background:#d4af4f1f;border-radius:6px}.bass-riff-diff{font-size:.68rem;text-transform:uppercase;letter-spacing:.08em;font-weight:600;padding:2px 6px;border-radius:4px}.bass-riff-diff.bass-diff-beginner{background:#4fd48f24;color:#7fffba}.bass-riff-diff.bass-diff-intermediate{background:#d4af4f24;color:var(--accent)}.bass-riff-diff.bass-diff-advanced{background:#d48f4f24;color:#ffb87a}.bass-riff-diff.bass-diff-expert{background:#d45a5a24;color:#ff8b8b}.bass-riff-bassist{font-size:.78rem;color:var(--text-dim);margin:0;line-height:1.35}.bass-riff-bassist strong{color:var(--text)}.bass-riff-bassist-label{font-size:.68rem;text-transform:uppercase;letter-spacing:.1em;color:var(--text-dim);opacity:.7}.bass-riff-bassist-sep{margin:0 5px;color:var(--text-dim);opacity:.5}.bass-riff-year,.bass-riff-bpm{font-family:JetBrains Mono,monospace;font-size:.72rem}.bass-riff-body{border-top:1px solid var(--border);padding:12px 14px;display:flex;flex-direction:column;gap:10px;background:linear-gradient(180deg,rgba(0,0,0,.15) 0%,transparent 100%)}.bass-riff-body[hidden]{display:none}.bass-riff-hook{font-size:.88rem;color:var(--text);margin:0;line-height:1.5;font-style:italic}.bass-riff-tab{background:#0a0805;border:1px solid var(--border);border-radius:8px;padding:8px 10px;font-family:JetBrains Mono,monospace;font-size:.78rem;overflow-x:auto}.bass-riff-tab-line{margin:0;padding:0;display:flex;align-items:center;gap:6px;color:#e8d68a;line-height:1.6;white-space:pre}.bass-riff-tab-string{display:inline-block;width:14px;color:var(--accent);font-weight:700}.bass-riff-tab-pipe{color:var(--text-dim)}.bass-riff-tab-frets{flex:1;letter-spacing:.12em}.bass-riff-technique{font-size:.82rem;color:var(--text-dim);margin:0;line-height:1.5;display:flex;flex-direction:column;gap:2px}.bass-riff-technique-label{font-size:.68rem;text-transform:uppercase;letter-spacing:.12em;color:var(--accent);font-weight:600}.bass-riff-open-btn{background:#d4af4f1a;border:1px solid var(--accent-dim);border-radius:8px;color:var(--accent);font-size:.82rem;padding:6px 12px;cursor:pointer;transition:background .15s,border-color .15s}.bass-riff-open-btn:hover{background:#d4af4f33;border-color:var(--accent)}.bass-riff-no-song{font-size:.76rem;color:var(--text-dim);font-style:italic;margin:0}.bass-empty{color:var(--text-dim);font-size:.9rem;font-style:italic;padding:20px;text-align:center}.bass-block-styles{grid-column:1 / -1}.bass-styles-intro{font-size:.88rem;color:var(--text-dim);margin:4px 0 8px;line-height:1.5}.bass-styles-close{background:transparent;border:1px solid var(--border);border-radius:8px;color:var(--text-dim);font-size:.78rem;padding:4px 12px;cursor:pointer;transition:border-color .15s,color .15s}.bass-styles-close:hover{border-color:var(--accent);color:var(--accent)}.bass-styles-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:10px}.bass-style-card{position:relative;text-align:left;background:var(--panel);border:1px solid var(--border);border-left:3px solid var(--accent-dim);border-radius:10px;padding:12px 14px 12px 16px;cursor:pointer;display:flex;gap:12px;align-items:flex-start;color:var(--text);transition:border-color .15s,background .15s,transform .1s}.bass-style-card:hover{border-color:var(--accent-dim);background:#d4af4f0a}.bass-style-card.is-active{background:#d4af4f1a;border-color:var(--accent);box-shadow:0 3px 14px #00000040}.bass-style-num{font-family:Cinzel,serif;font-size:1.6rem;font-weight:600;color:var(--accent-dim);line-height:1;flex-shrink:0;width:28px;text-align:center}.bass-style-card.is-active .bass-style-num{color:var(--accent)}.bass-style-body{display:flex;flex-direction:column;gap:6px;flex:1;min-width:0}.bass-style-title{font-size:1rem;font-weight:700;color:var(--text);margin:0;line-height:1.2}.bass-style-ref{font-size:.8rem;color:var(--text-dim);margin:0;display:flex;flex-wrap:wrap;align-items:baseline;gap:6px}.bass-style-ref strong{color:var(--accent);font-weight:600}.bass-style-era{font-size:.72rem;opacity:.8}.bass-style-oneliner{font-size:.82rem;color:var(--text-dim);margin:0;line-height:1.5}.bass-style-pattern{margin:4px 0 0;display:flex;flex-direction:column;gap:2px}.bass-style-pattern-label{font-size:.68rem;text-transform:uppercase;letter-spacing:.1em;color:var(--accent-dim);font-weight:600}.bass-style-pattern code,.bass-style-detail-pattern code{font-family:JetBrains Mono,monospace;font-size:.76rem;color:#e8d68a;background:#0a0805;border:1px solid var(--border);padding:4px 8px;border-radius:6px;display:inline-block;word-break:break-all}.bass-tone-soul{border-left-color:#af4fd4}.bass-tone-funk{border-left-color:#d4af4f}.bass-tone-reggae{border-left-color:#4fd48f}.bass-tone-disco{border-left-color:#ff9ad4}.bass-tone-rock{border-left-color:#d45a5a}.bass-tone-metal{border-left-color:#aaa}.bass-tone-jazz{border-left-color:#4fb3d4}.bass-tone-latin{border-left-color:#d48f4f}.bass-tone-pop{border-left-color:#4f8fd4}.bass-tone-modern{border-left-color:#d47fd4}.bass-style-detail{margin-top:14px;background:linear-gradient(180deg,rgba(212,175,79,.06) 0%,transparent 100%);border:1px solid var(--accent-dim);border-left-width:3px;border-radius:12px;padding:16px 18px;display:flex;flex-direction:column;gap:12px}.bass-style-detail-head{margin:0}.bass-style-detail-kicker{font-family:Cinzel,serif;font-size:.72rem;letter-spacing:.25em;color:#c89b3c;margin-bottom:2px;display:block}.bass-style-detail-title{font-family:Cinzel,serif;font-size:1.2rem;font-weight:600;color:var(--accent);margin:0}.bass-style-detail-ref{color:var(--text-dim);font-weight:400;font-size:.9rem;font-family:Inter,sans-serif}.bass-style-detail-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:10px}.bass-style-detail-card{background:var(--panel);border:1px solid var(--border);border-radius:8px;padding:10px 12px;display:flex;flex-direction:column;gap:4px}.bass-style-detail-card-wide{grid-column:span 2}.bass-style-detail-card-watch{border-color:#d45a5a66;background:#d45a5a0f}.bass-style-detail-label{font-size:.68rem;text-transform:uppercase;letter-spacing:.12em;color:var(--accent);font-weight:600}.bass-style-detail-card p{font-size:.85rem;color:var(--text);margin:0;line-height:1.5}.bass-style-detail-card-watch p{color:#ffaeae}.bass-style-detail-songs{font-style:italic;color:var(--text-dim)!important}.bass-style-detail-pattern{margin:4px 0 0}@media (max-width: 700px){.bass-style-detail-card-wide{grid-column:1 / -1}}.bass-block-bassists{grid-column:1 / -1}.bass-bassists-count{font-size:.82rem;color:var(--text-dim)}.bass-bassists-count strong{color:var(--accent)}.bass-bassists-filters{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:4px}.bass-chip.bass-era-pioneer.is-active{background:#d4af4f2e;border-color:#d4af4f;color:var(--accent)}.bass-chip.bass-era-classic-rock.is-active{background:#d45a5a2e;border-color:#d45a5a;color:#ff8b8b}.bass-chip.bass-era-fusion.is-active{background:#4fb3d42e;border-color:#4fb3d4;color:#7fcdef}.bass-chip.bass-era-funk-slap.is-active{background:#af4fd42e;border-color:#af4fd4;color:#d49aff}.bass-chip.bass-era-metal.is-active{background:#9696a038;border-color:#aaa;color:#fff}.bass-chip.bass-era-modern.is-active{background:#d44fb32e;border-color:#d44fb3;color:#ff7fcd}.bass-chip.bass-era-session.is-active{background:#4fd48f2e;border-color:#4fd48f;color:#7fffba}.bass-bassists-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:10px;margin-top:8px}.bass-bassist-card{text-align:left;background:var(--panel);border:1px solid var(--border);border-left:3px solid var(--accent-dim);border-radius:10px;padding:12px 14px;cursor:pointer;display:flex;gap:12px;align-items:flex-start;color:var(--text);transition:border-color .15s,background .15s,transform .1s}.bass-bassist-card:hover{border-color:var(--accent-dim);background:#d4af4f0a}.bass-bassist-card.is-active{background:#d4af4f1a;border-color:var(--accent);box-shadow:0 3px 14px #00000040}.bass-bassist-card.bass-era-pioneer{border-left-color:var(--accent)}.bass-bassist-card.bass-era-classic-rock{border-left-color:#d45a5a}.bass-bassist-card.bass-era-fusion{border-left-color:#4fb3d4}.bass-bassist-card.bass-era-funk-slap{border-left-color:#af4fd4}.bass-bassist-card.bass-era-metal{border-left-color:#aaa}.bass-bassist-card.bass-era-modern{border-left-color:#d44fb3}.bass-bassist-card.bass-era-session{border-left-color:#4fd48f}.bass-bassist-avatar{width:48px;height:48px;border-radius:50%;background:linear-gradient(135deg,var(--accent) 0%,#8b6e2f 100%);display:flex;align-items:center;justify-content:center;flex-shrink:0;font-family:Cinzel,serif;font-weight:700;font-size:1rem;color:#1a1610;letter-spacing:0}.bass-bassist-card.is-active .bass-bassist-avatar{box-shadow:0 0 0 2px #d4af4f59}.bass-bassist-card-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px}.bass-bassist-name{font-size:1rem;font-weight:700;color:var(--text);margin:0;line-height:1.2}.bass-bassist-meta{font-size:.72rem;color:var(--text-dim);margin:0;display:flex;flex-wrap:wrap;gap:4px;align-items:center}.bass-bassist-era{text-transform:uppercase;letter-spacing:.08em;color:var(--accent-dim);font-weight:600}.bass-bassist-sep{opacity:.5}.bass-bassist-lifespan{font-family:JetBrains Mono,monospace;font-size:.7rem}.bass-bassist-signature{font-size:.82rem;color:var(--text);margin:4px 0 0;line-height:1.45}.bass-bassist-band{font-size:.76rem;color:var(--text-dim);margin:2px 0 0}.bass-bassist-band-label{font-size:.66rem;text-transform:uppercase;letter-spacing:.12em;opacity:.7}.bass-bassist-detail{margin-top:14px;background:linear-gradient(180deg,rgba(212,175,79,.06) 0%,transparent 100%);border:1px solid var(--accent-dim);border-left-width:3px;border-radius:12px;padding:16px 18px;display:flex;flex-direction:column;gap:12px}.bass-bassist-detail.bass-era-pioneer{border-left-color:var(--accent)}.bass-bassist-detail.bass-era-classic-rock{border-left-color:#d45a5a}.bass-bassist-detail.bass-era-fusion{border-left-color:#4fb3d4}.bass-bassist-detail.bass-era-funk-slap{border-left-color:#af4fd4}.bass-bassist-detail.bass-era-metal{border-left-color:#aaa}.bass-bassist-detail.bass-era-modern{border-left-color:#d44fb3}.bass-bassist-detail.bass-era-session{border-left-color:#4fd48f}.bass-bassist-detail-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.bass-bassist-detail-kicker{font-family:Cinzel,serif;font-size:.72rem;letter-spacing:.25em;color:#c89b3c;margin-bottom:2px;display:block;text-transform:uppercase}.bass-bassist-detail-title{font-family:Cinzel,serif;font-size:1.4rem;font-weight:600;color:var(--accent);margin:0}.bass-bassist-detail-lifespan{font-size:.82rem;color:var(--text-dim);margin:2px 0 0}.bass-bassist-detail-story{font-size:.92rem;color:var(--text);margin:0;line-height:1.6;font-style:italic}.bass-bassist-detail-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:10px}.bass-bassist-detail-card{background:var(--panel);border:1px solid var(--border);border-radius:8px;padding:10px 12px;display:flex;flex-direction:column;gap:6px}.bass-bassist-detail-card-wide{grid-column:span 2}.bass-bassist-detail-card-quote{background:#d4af4f14;border-color:var(--accent-dim)}.bass-bassist-detail-label{font-size:.68rem;text-transform:uppercase;letter-spacing:.12em;color:var(--accent);font-weight:600}.bass-bassist-detail-card p,.bass-bassist-detail-card ul{font-size:.85rem;color:var(--text);margin:0;line-height:1.55}.bass-bassist-works,.bass-bassist-tracks{padding-left:18px;display:flex;flex-direction:column;gap:2px}.bass-bassist-works li::marker{color:var(--accent-dim)}.bass-bassist-tracks li::marker{color:var(--accent)}.bass-bassist-detail-card-quote blockquote{margin:0;font-style:italic;color:var(--accent);font-size:1rem;line-height:1.5}@media (max-width: 700px){.bass-bassist-detail-card-wide{grid-column:1 / -1}}.bass-block-cheatsheet{grid-column:1 / -1}.bass-cheatsheet-song{font-size:.82rem;color:var(--text-dim);font-style:italic}.bass-cheatsheet-unknown-msg{font-size:.8rem;color:var(--text-dim);font-style:italic}.bass-cheatsheet-grid{display:flex;flex-direction:column;gap:6px}.bass-cheatsheet-row{display:grid;grid-template-columns:minmax(110px,1fr) 2.4fr minmax(180px,1fr);gap:14px;align-items:center;background:var(--panel);border:1px solid var(--border);border-radius:8px;padding:10px 14px}.bass-cheatsheet-row-unknown{grid-template-columns:minmax(110px,1fr) 1fr;opacity:.55}.bass-cheatsheet-chord-cell{display:flex;flex-direction:column;gap:2px}.bass-cheatsheet-chord{font-family:JetBrains Mono,monospace;font-size:1.15rem;font-weight:700;color:var(--accent)}.bass-cheatsheet-position-hint{font-size:.72rem;color:var(--text-dim)}.bass-cheatsheet-position-hint strong{color:var(--text);font-family:JetBrains Mono,monospace}.bass-cheatsheet-notes{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.bass-cheatsheet-note{display:flex;flex-direction:column;align-items:center;gap:2px;min-width:38px;padding:6px 10px;background:#d4af4f0f;border:1px solid var(--border);border-radius:8px;transition:border-color .12s,background .12s}.bass-cheatsheet-note:hover{border-color:var(--accent-dim)}.bass-cheatsheet-note-root{background:#d4af4f2e;border-color:var(--accent)}.bass-cheatsheet-note-octave{background:#d4af4f0a;border-style:dashed}.bass-cheatsheet-note-deg{font-size:.65rem;color:var(--accent-dim);font-weight:600;letter-spacing:.04em}.bass-cheatsheet-note-root .bass-cheatsheet-note-deg{color:var(--accent)}.bass-cheatsheet-note-name{font-family:JetBrains Mono,monospace;font-size:.95rem;font-weight:700;color:var(--text)}.bass-cheatsheet-note-root .bass-cheatsheet-note-name{color:var(--accent)}.bass-cheatsheet-positions{display:flex;flex-direction:column;gap:2px;align-items:flex-end;text-align:right}.bass-cheatsheet-positions-label{font-size:.66rem;text-transform:uppercase;letter-spacing:.1em;color:var(--text-dim)}.bass-cheatsheet-positions-list{display:flex;flex-wrap:wrap;gap:4px;justify-content:flex-end;align-items:center}.bass-cheatsheet-position{display:inline-flex;align-items:center;gap:2px;font-family:JetBrains Mono,monospace;font-size:.78rem;color:var(--text)}.bass-cheatsheet-position-string{color:var(--accent);font-weight:700}.bass-cheatsheet-position-fret{color:var(--text);margin-left:2px}.bass-cheatsheet-position-sep{margin:0 4px;color:var(--text-dim);opacity:.5}@media (max-width: 720px){.bass-cheatsheet-row{grid-template-columns:1fr;gap:8px}.bass-cheatsheet-positions{align-items:flex-start;text-align:left}.bass-cheatsheet-positions-list{justify-content:flex-start}}.bass-cheatsheet-walking{margin-top:12px;padding:12px 14px;background:linear-gradient(180deg,rgba(212,175,79,.06) 0%,transparent 100%);border:1px solid var(--accent-dim);border-radius:10px;display:flex;flex-direction:column;gap:10px}.bass-cheatsheet-walking-label{font-size:.72rem;text-transform:uppercase;letter-spacing:.14em;color:var(--accent);font-weight:600}.bass-cheatsheet-walking-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:8px}.bass-cheatsheet-walking-bar{background:#0a0805;border:1px solid var(--border);border-radius:8px;padding:10px 12px;display:flex;flex-direction:column;gap:6px;align-items:flex-start}.bass-cheatsheet-walking-chord{font-family:JetBrains Mono,monospace;font-size:.92rem;color:var(--accent);font-weight:700}.bass-cheatsheet-walking-notes{display:flex;gap:6px;flex-wrap:wrap}.bass-cheatsheet-walking-note{font-family:JetBrains Mono,monospace;font-size:.88rem;color:#e8d68a;padding:2px 8px;background:#d4af4f14;border-radius:4px}.bass-cheatsheet-walking-note.is-down{background:#d4af4f38;color:var(--accent);font-weight:700;box-shadow:0 0 0 1px var(--accent-dim)}.bass-cheatsheet-walking-hint{font-size:.76rem;color:var(--text-dim);margin:0;font-style:italic}.bass-block-bangers{grid-column:1 / -1}.bass-bangers-hint{font-size:.82rem;color:var(--text-dim)}.bass-bangers-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:10px;margin-top:4px}.bass-banger-card{text-align:left;display:flex;flex-direction:column;gap:4px;background:var(--panel);border:1px solid var(--border);border-left:3px solid var(--accent-dim);border-radius:10px;padding:10px 12px;color:var(--text);cursor:pointer;transition:border-color .15s,transform .1s,background .15s}.bass-banger-card:hover{border-color:var(--accent);background:#d4af4f0a;transform:translateY(-1px)}.bass-banger-card.has-riff{border-left-color:var(--accent);background:linear-gradient(180deg,rgba(212,175,79,.08) 0%,var(--panel) 60%)}.bass-banger-title{font-size:.96rem;font-weight:700;color:var(--text);line-height:1.25}.bass-banger-artist{font-size:.78rem;color:var(--text-dim)}.bass-banger-meta{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-top:2px}.bass-banger-key{font-family:JetBrains Mono,monospace;font-size:.76rem;font-weight:700;color:var(--accent);padding:2px 6px;background:#d4af4f1f;border-radius:4px}.bass-banger-badge{font-size:.66rem;text-transform:uppercase;letter-spacing:.08em;font-weight:600;padding:2px 6px;border-radius:4px;background:#ffffff0d;color:var(--text-dim)}.bass-banger-badge-verified{background:#4fd48f29;color:#7fffba}.bass-banger-badge-live{background:#d45a5a29;color:#ff8b8b}.bass-banger-badge-riff{background:#d4af4f2e;color:var(--accent);font-weight:700}.bass-panel{display:flex;flex-direction:column;gap:14px;padding:4px 2px}.bass-panel-empty{color:var(--text-dim);font-size:.88rem;font-style:italic;padding:14px;text-align:center}.bass-panel-label{font-size:.68rem;text-transform:uppercase;letter-spacing:.14em;color:var(--accent-dim);font-weight:600}.bass-panel-label strong{color:var(--accent);font-weight:700;letter-spacing:0;text-transform:none;font-size:.9rem;margin-left:4px}.bass-panel-tuning{display:flex;flex-direction:column;gap:6px}.bass-panel-tuning-row{display:flex;flex-wrap:wrap;gap:4px}.bass-panel-tuning-btn{padding:4px 10px;background:transparent;border:1px solid var(--border);border-radius:8px;color:var(--text);font-size:.76rem;cursor:pointer;transition:border-color .15s,background .15s,color .15s}.bass-panel-tuning-btn:hover{border-color:var(--accent-dim)}.bass-panel-tuning-btn.is-active{background:#d4af4f29;border-color:var(--accent);color:var(--accent)}.bass-panel-section{display:flex;flex-direction:column;gap:8px;padding-top:10px;border-top:1px solid var(--border)}.bass-panel-section:first-child{border-top:none;padding-top:0}.bass-panel-section-head{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap}.bass-panel-scale-select{background:var(--panel);border:1px solid var(--border);border-radius:6px;color:var(--text);font-size:.8rem;padding:4px 8px;cursor:pointer}.bass-panel-scale-select:hover{border-color:var(--accent-dim)}.bass-panel-scale-select:focus{outline:none;border-color:var(--accent)}.bass-panel-fretboard{background:linear-gradient(180deg,#1f1a12,#14110a);border:1px solid var(--border);border-radius:8px;padding:8px 4px;overflow-x:auto}.bass-panel-hint{font-size:.76rem;color:var(--text-dim);margin:0;line-height:1.5}.bass-panel-hint strong{color:var(--accent)}.bass-panel .bass-cheatsheet-row{grid-template-columns:1fr;gap:6px;padding:8px 10px}.bass-panel .bass-cheatsheet-positions{align-items:flex-start;text-align:left}.bass-panel .bass-cheatsheet-positions-list{justify-content:flex-start}.bass-panel .bass-cheatsheet-notes{gap:6px}.bass-panel .bass-cheatsheet-note{min-width:34px;padding:4px 8px}.bass-panel .bass-cheatsheet-walking-grid{grid-template-columns:1fr}.bass-panel-hub-btn{margin-top:4px;background:#d4af4f1a;border:1px solid var(--accent-dim);border-radius:8px;color:var(--accent);font-size:.85rem;padding:8px 12px;cursor:pointer;transition:background .15s,border-color .15s}.bass-panel-hub-btn:hover{background:#d4af4f33;border-color:var(--accent)}.view-mode-btn.bass-mode.is-active{background:#d4af4f2e;border-color:var(--accent);color:var(--accent)}.saxists-header,.sax-riffs-header,.sax-styles-header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px;flex-wrap:wrap}.saxists-title,.sax-riffs-title,.sax-styles-title{margin:0;font-family:Cinzel,serif}.saxists-count,.sax-riffs-count,.sax-styles-count{font-size:.82rem;color:var(--accent);background:#d4af4f1a;border:1px solid rgba(212,175,79,.3);padding:3px 10px;border-radius:999px;font-weight:600;white-space:nowrap}.saxists-era-filters,.sax-riffs-filter-buttons{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:16px}.saxists-era-btn,.sax-riffs-filter-btn{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;background:#d4af4f0f;border:1px solid rgba(212,175,79,.25);border-radius:7px;color:var(--accent);font-family:Inter,sans-serif;font-size:.82rem;font-weight:600;cursor:pointer;transition:all .18s}.saxists-era-btn:hover,.sax-riffs-filter-btn:hover{background:#d4af4f24;border-color:#d4af4f80}.saxists-era-btn.is-active,.sax-riffs-filter-btn.is-active{background:linear-gradient(135deg,#ffe082,#d4af4f 60%,#b8893a);color:#1a1408;border-color:#fff5d0;box-shadow:0 0 10px #ffd97059}.saxists-era-count,.sax-riffs-filter-count{font-size:.72rem;background:#00000040;border-radius:999px;padding:1px 7px;font-weight:700}.saxists-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px}.saxist-card{background:#d4af4f0a;border:1px solid rgba(212,175,79,.22);border-left:3px solid var(--accent);border-radius:10px;padding:12px 14px;transition:all .2s;display:flex;flex-direction:column;gap:8px}.saxist-card:hover{border-color:#d4af4f73;background:#d4af4f14}.saxist-card.is-expanded{background:#d4af4f1a;border-color:#d4af4f8c;grid-column:1 / -1}.saxist-era-pioneer{border-left-color:#9c7530}.saxist-era-bebop-hardbop{border-left-color:#d4af4f}.saxist-era-cool{border-left-color:#6b8fb8}.saxist-era-free{border-left-color:#d96f6f}.saxist-era-fusion{border-left-color:#b87fcc}.saxist-era-pop-rock{border-left-color:#e08850}.saxist-era-modern{border-left-color:#5ec2a8}.saxist-card-head{background:none;border:none;padding:0;cursor:pointer;display:flex;align-items:flex-start;justify-content:space-between;gap:10px;text-align:left;color:inherit;width:100%}.saxist-card-titleblock{flex:1;min-width:0}.saxist-name{margin:0 0 4px;font-family:Cinzel,serif;font-size:1.05rem;color:var(--accent);font-weight:700}.saxist-nickname{font-style:italic;color:#f5e8c8bf;font-size:.9rem;margin-left:6px;font-weight:400}.saxist-meta{font-size:.78rem;color:#f5e8c8a6;display:flex;flex-wrap:wrap;gap:4px;align-items:center}.saxist-sep{opacity:.4}.saxist-saxes{text-transform:lowercase;font-style:italic}.saxist-card-chevron{color:var(--accent);font-size:1rem;font-weight:700;margin-top:2px}.saxist-signature{margin:0;font-size:.88rem;color:#f5e8c8e0;line-height:1.4;font-style:italic}.saxist-card-body{margin-top:8px;padding-top:10px;border-top:1px dashed rgba(212,175,79,.25);display:flex;flex-direction:column;gap:10px}.saxist-row{display:flex;flex-wrap:wrap;align-items:baseline;gap:8px;font-size:.85rem}.saxist-row-label{font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;color:var(--accent);font-weight:700;min-width:100px}.saxist-row-value{color:#f5e8c8eb;flex:1}.saxist-story{margin:0;font-size:.9rem;line-height:1.55;color:#f5e8c8eb;padding:8px 12px;background:#0003;border-radius:6px;border-left:2px solid rgba(212,175,79,.4)}.saxist-tracks{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:3px}.saxist-tracks li{font-style:italic;color:#f5e8c8e0;font-size:.88rem}.saxist-tags{display:flex;flex-wrap:wrap;gap:5px}.saxist-tag{display:inline-block;padding:3px 9px;background:#d4af4f1f;border:1px solid rgba(212,175,79,.3);border-radius:999px;font-size:.78rem;color:var(--accent);font-weight:600}.saxist-quote{margin:0;padding:10px 16px;background:#d4af4f14;border-left:3px solid var(--accent);border-radius:6px;font-family:Cinzel,serif;font-size:.95rem;font-style:italic;color:#f5e8c8e6;line-height:1.5}.saxist-riff-link{align-self:flex-start;background:#d4af4f26;border:1px solid var(--accent);border-radius:7px;padding:6px 14px;color:var(--accent);font-family:Inter,sans-serif;font-size:.84rem;font-weight:700;cursor:pointer;transition:all .18s}.saxist-riff-link:hover{background:var(--accent);color:#1a1408}.sax-riffs-filters{display:flex;flex-direction:column;gap:10px;margin-bottom:16px}.sax-riffs-filter-row{display:flex;flex-wrap:wrap;gap:10px;align-items:center}.sax-riffs-filter-label{font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;color:var(--accent);font-weight:700;min-width:60px}.sax-riffs-active-toggle{display:inline-flex;align-items:center;gap:8px;font-size:.85rem;color:#f5e8c8d9;cursor:pointer;-webkit-user-select:none;user-select:none}.sax-riffs-active-toggle input{accent-color:var(--accent)}.sax-riffs-filter-btn.sax-riffs-diff-beginner{border-color:#5ec2a880}.sax-riffs-filter-btn.sax-riffs-diff-intermediate{border-color:#6b8fb880}.sax-riffs-filter-btn.sax-riffs-diff-advanced{border-color:#e0885080}.sax-riffs-filter-btn.sax-riffs-diff-expert{border-color:#d96f6f80}.sax-riffs-grid{display:grid;grid-template-columns:1fr;gap:10px}.sax-riffs-empty{padding:20px;text-align:center;color:#f5e8c88c;font-style:italic}.sax-riff{background:#d4af4f0a;border:1px solid rgba(212,175,79,.22);border-radius:9px;padding:12px 14px;transition:all .2s;display:flex;flex-direction:column;gap:6px}.sax-riff:hover{border-color:#d4af4f73;background:#d4af4f12}.sax-riff.is-expanded{background:#d4af4f1a;border-color:#d4af4f8c}.sax-riff.is-on-active-sax{border-left:3px solid var(--accent);background:#ffd9700f}.sax-riff-head{background:none;border:none;padding:0;cursor:pointer;display:flex;align-items:flex-start;gap:10px;text-align:left;color:inherit;width:100%}.sax-riff-titleblock{flex:1;min-width:0}.sax-riff-title{margin:0 0 3px;font-family:Cinzel,serif;font-size:1rem;color:var(--accent);font-weight:700}.sax-riff-star{margin-left:6px;color:#ffd970;font-size:.9rem}.sax-riff-meta{font-size:.76rem;color:#f5e8c8a6;display:flex;flex-wrap:wrap;gap:4px}.sax-riff-sep{opacity:.4}.sax-riff-key{color:var(--accent);font-weight:700}.sax-riff-diff{font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;padding:3px 9px;border-radius:999px;white-space:nowrap}.sax-riff-diff-beginner{background:#5ec2a833;color:#8ed0bf}.sax-riff-diff-intermediate{background:#6b8fb833;color:#99b7d4}.sax-riff-diff-advanced{background:#e0885033;color:#f0a679}.sax-riff-diff-expert{background:#d96f6f33;color:#ee9696}.sax-riff-chevron{color:var(--accent);font-size:1rem}.sax-riff-hook{margin:0;font-size:.85rem;color:#f5e8c8e6;font-style:italic;line-height:1.45}.sax-riff-body{margin-top:8px;padding-top:10px;border-top:1px dashed rgba(212,175,79,.25);display:flex;flex-direction:column;gap:10px}.sax-riff-row{display:flex;align-items:baseline;gap:10px;font-size:.85rem}.sax-riff-row-block{flex-direction:column;align-items:stretch;gap:4px}.sax-riff-row-label{font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;color:var(--accent);font-weight:700;min-width:100px}.sax-riff-row-value{color:#f5e8c8e6}.sax-riff-genre-pill{display:inline-block;padding:2px 9px;border-radius:999px;font-size:.76rem;font-weight:700;background:#d4af4f24;color:var(--accent);border:1px solid rgba(212,175,79,.3)}.sax-riff-technique{margin:0;font-size:.88rem;color:#f5e8c8e6;line-height:1.5}.sax-riff-notation,.sax-riff-notes{margin:0;padding:10px 14px;background:#00000059;border:1px solid rgba(212,175,79,.25);border-radius:6px;font-family:JetBrains Mono,Courier New,monospace;font-size:.85rem;color:#f5e8c8;white-space:pre-wrap;word-break:break-word;line-height:1.5}.sax-riff-notes{background:#d4af4f14;color:var(--accent);font-weight:600}.sax-styles-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px}.sax-style{background:#d4af4f0a;border:1px solid rgba(212,175,79,.22);border-radius:10px;padding:12px 14px;transition:all .2s;display:flex;flex-direction:column;gap:8px;position:relative;overflow:hidden}.sax-style:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;width:3px;background:var(--accent);pointer-events:none}.sax-style:hover{border-color:#d4af4f73;background:#d4af4f14}.sax-style.is-expanded{background:#d4af4f1a;border-color:#d4af4f8c;grid-column:1 / -1}.sax-style-bebop:before{background:#d4af4f}.sax-style-hardbop:before{background:#e08850}.sax-style-cool:before{background:#6b8fb8}.sax-style-modal:before{background:#5ec2a8}.sax-style-free:before{background:#d96f6f}.sax-style-smooth:before{background:#b87fcc}.sax-style-soul:before{background:#c47a9c}.sax-style-rock:before{background:#c4583a}.sax-style-ska:before{background:#8ac466}.sax-style-funk:before{background:#f0b830}.sax-style-head{background:none;border:none;padding:0 0 0 10px;cursor:pointer;display:flex;align-items:flex-start;gap:10px;text-align:left;color:inherit;width:100%}.sax-style-order{width:26px;height:26px;border-radius:50%;background:#d4af4f26;border:1px solid var(--accent);color:var(--accent);font-family:Cinzel,serif;font-size:.8rem;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0}.sax-style-titleblock{flex:1;min-width:0}.sax-style-label{margin:0 0 3px;font-family:Cinzel,serif;font-size:1.05rem;color:var(--accent);font-weight:700}.sax-style-meta{font-size:.78rem;color:#f5e8c8a6;display:flex;flex-wrap:wrap;gap:4px}.sax-style-sep{opacity:.4}.sax-style-chevron{color:var(--accent);font-size:1rem}.sax-style-oneliner{margin:0 0 0 10px;font-size:.88rem;color:#f5e8c8e6;font-style:italic;line-height:1.45}.sax-style-body{margin:8px 0 0 10px;padding-top:10px;border-top:1px dashed rgba(212,175,79,.25);display:flex;flex-direction:column;gap:10px}.sax-style-row{display:flex;flex-wrap:wrap;align-items:baseline;gap:8px;font-size:.88rem}.sax-style-row-label{font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;color:var(--accent);font-weight:700;min-width:130px}.sax-style-row-value{margin:0;color:#f5e8c8eb;flex:1;line-height:1.5}.sax-style-pattern{margin:0;padding:8px 12px;background:#00000059;border:1px solid rgba(212,175,79,.25);border-radius:6px;font-family:JetBrains Mono,Courier New,monospace;font-size:.82rem;color:#f5e8c8;white-space:pre-wrap;flex:1}.sax-style-watchout{padding:10px 14px;background:#d96f6f14;border-left:3px solid #d96f6f;border-radius:6px}.sax-style-watchout .sax-style-row-label{color:#ee9696}@media (max-width: 700px){.saxists-grid,.sax-styles-grid{grid-template-columns:1fr}.saxist-card.is-expanded,.sax-style.is-expanded{grid-column:1 / -1}.saxist-row-label,.sax-riff-row-label,.sax-style-row-label{min-width:auto;width:100%}}.mini-hub-scale{display:flex;flex-direction:column;gap:12px;padding:14px 14px 16px;margin:0 0 18px}.mini-hub-scale-head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.mini-hub-scale-title{margin:0;font-size:1rem;font-weight:700;color:var(--text);letter-spacing:.01em}.mini-hub-scale-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.mini-hub-scale-fullscreen-btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;display:inline-flex;align-items:center;gap:8px;padding:7px 12px;border-radius:8px;background:linear-gradient(180deg,#c9a24a2e,#c9a24a14);border:1px solid rgba(201,162,74,.55);color:#d9b366;font-size:.82rem;font-weight:700;letter-spacing:.02em;cursor:pointer;transition:transform .15s,box-shadow .18s,background .15s,color .15s}.mini-hub-scale-fullscreen-btn:hover{background:linear-gradient(180deg,#c9a24a47,#c9a24a24);color:#f4d488;box-shadow:0 0 14px #c9a24a59,inset 0 0 0 1px #c9a24ab3;transform:scale(1.04)}.mini-hub-scale-fullscreen-btn:active{transform:scale(.97)}.mini-hub-scale-fullscreen-btn svg{display:block}.mini-hub-scale-scope{display:inline-flex;border:1px solid var(--border);border-radius:8px;overflow:hidden;background:var(--bg-soft, rgba(255, 255, 255, .04))}.mini-hub-scale-scope-btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:transparent;border:0;padding:7px 12px;font-size:.78rem;font-weight:600;color:var(--text-muted);cursor:pointer;transition:background .15s,color .15s}.mini-hub-scale-scope-btn:hover{color:var(--text)}.mini-hub-scale-scope-btn.is-active{background:#c9a24a33;color:#d9b366;box-shadow:inset 0 0 0 1px #c9a24a73}.mini-hub-scale-display-toggle{display:inline-flex;border:1px solid var(--border);border-radius:8px;overflow:hidden;background:var(--bg-soft, rgba(255, 255, 255, .04))}.mini-hub-scale-display-btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:transparent;border:0;padding:6px 12px;font-size:.8rem;font-weight:600;color:var(--text-muted);cursor:pointer;transition:background .15s,color .15s}.mini-hub-scale-display-btn:hover{color:var(--text)}.mini-hub-scale-display-btn.is-active{background:var(--accent, #c9a24a);color:#1a1a1a}.mini-hub-scale-controls{display:flex;flex-wrap:wrap;align-items:flex-end;gap:10px}.mini-hub-scale-control{display:flex;flex-direction:column;gap:4px;min-width:0;flex:1 1 120px}.mini-hub-scale-control-label{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted)}.mini-hub-scale-control-select{-moz-appearance:none;appearance:none;-webkit-appearance:none;background:var(--bg-soft, rgba(255, 255, 255, .05));border:1px solid var(--border);border-radius:8px;padding:8px 28px 8px 10px;font-size:.9rem;font-weight:600;color:var(--text);background-image:linear-gradient(45deg,transparent 50%,var(--text-muted) 50%),linear-gradient(135deg,var(--text-muted) 50%,transparent 50%);background-position:calc(100% - 14px) 50%,calc(100% - 9px) 50%;background-size:5px 5px,5px 5px;background-repeat:no-repeat;cursor:pointer}.mini-hub-scale-control-reset{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:transparent;border:1px solid var(--border);border-radius:8px;padding:8px 12px;font-size:.82rem;font-weight:600;color:var(--text-muted);cursor:pointer;height:38px;transition:color .15s,border-color .15s}.mini-hub-scale-control-reset:hover{color:var(--text);border-color:var(--accent, #c9a24a)}.mini-hub-scale-board{width:100%;touch-action:none;overscroll-behavior:contain}.mini-hub-scale-board>svg{width:100%;height:auto;display:block;touch-action:none}.mini-hub-scale-summary{margin:0;font-size:.85rem;color:var(--text-muted);display:flex;flex-wrap:wrap;align-items:center;gap:8px}.mini-hub-scale-summary strong{color:var(--text)}.mini-hub-scale-summary-sep{opacity:.5}.piano-mini-scale{display:block}.piano-mini-key{transition:fill .12s}.piano-mini-key--white{fill:#f4f1ea;stroke:#2a2a2a;stroke-width:.6}.piano-mini-key--white.is-active{fill:#d9c089}.piano-mini-key--white.is-root{fill:#c9a24a}.piano-mini-key--black{fill:#1f1f1f;stroke:#000;stroke-width:.6}.piano-mini-key--black.is-active{fill:#8a6a26}.piano-mini-key--black.is-root{fill:#c9a24a}.piano-mini-key-label{fill:#1a1a1a;pointer-events:none;-webkit-user-select:none;user-select:none}.piano-mini-key-label.is-black{fill:#f4f1ea}.piano-mini-key-label.is-root,.piano-mini-key-label.is-black.is-root{fill:#1a1a1a}.piano-mini-key.is-pressed{filter:drop-shadow(0 0 6px rgba(201,162,74,.85));fill:#f4d488!important}.piano-mini-key--black.is-pressed{fill:#c9a24a!important}.piano-mini-key.is-out-scope{opacity:.32}.piano-mini-scale.is-playable{touch-action:none}.piano-mini-scale.is-playable .piano-mini-key{cursor:pointer}.piano-mini-scale.is-full{display:block;width:100%;height:auto;max-height:100%;aspect-ratio:1600 / 200}.piano-mini-key--white{fill:#f5f5ef;stroke:#8a8a82;stroke-width:.6}.piano-mini-key--white.is-active{fill:#d4af4f;stroke:#5d4a1d;stroke-width:.8}.piano-mini-key--white.is-root{fill:#f0d488;stroke:#5d4a1d;stroke-width:1.2}.piano-mini-key--black{fill:#0a0a0d;stroke:#000;stroke-width:.8}.piano-mini-key--black.is-active{fill:#4a3a14;stroke:#000;stroke-width:1}.piano-mini-key--black.is-root{fill:#a6832f;stroke:#1a1208;stroke-width:1.4}.piano-mini-key.is-pressed{fill:#ffd970!important;filter:drop-shadow(0 0 10px rgba(255,217,112,.85))}.piano-mini-key--black.is-pressed{fill:#f0d488!important}.piano-mini-key-label{fill:#1a1208;font-weight:700}.piano-mini-key-label.is-black{fill:#f8e8b0}.piano-mini-key-label.is-root{fill:#1a1208}.piano-mini-key-label.is-black.is-root{fill:#fff3c8}.guitar-fretboard.is-full{display:block;width:100%;height:100%;max-height:100%}.guitar-fretboard .fret-dot.is-pressed{fill:#f4d488!important;filter:drop-shadow(0 0 8px rgba(201,162,74,.85))}.guitar-fretboard.is-playable .fret-hit{cursor:pointer}@media (min-width: 901px){.mini-hub-scale{flex-direction:row;align-items:center;justify-content:space-between;padding:10px 16px;gap:16px}.mini-hub-scale-head{flex:1 1 auto;flex-wrap:nowrap}.mini-hub-scale-title{font-size:.95rem;color:var(--text-muted)}.mini-hub-scale-title:after{content:" · jouez-le en plein écran";color:var(--text-muted);font-weight:400;opacity:.7}.mini-hub-scale-display-toggle,.mini-hub-scale-controls,.mini-hub-scale-board,.mini-hub-scale-summary{display:none}.mini-hub-scale-actions{gap:0}}@media (max-width: 480px){.mini-hub-scale-fullscreen-label{display:none}.mini-hub-scale-fullscreen-btn{padding:7px 9px}}.fs-instrument{position:fixed;top:0;right:0;bottom:0;left:0;z-index:9999;display:flex;flex-direction:column;background:radial-gradient(circle at 50% -10%,#1a1817,#0a0908 70%);animation:fs-instrument-enter .22s ease-out;overscroll-behavior:contain;overflow-x:hidden;overflow-y:auto;-webkit-overflow-scrolling:touch;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}.fs-instrument>.fs-instrument-topbar,.fs-instrument>.fs-toolbar,.fs-instrument>.fs-instrument-accessory{flex:0 0 auto}.fs-instrument>.fs-instrument-board{flex:0 0 auto;min-height:clamp(260px,36vh,420px)}@media (max-width: 700px),(max-height: 500px){.fs-instrument{overflow-y:auto;-webkit-overflow-scrolling:touch}.fs-instrument>.fs-instrument-board{flex:0 0 auto;min-height:240px}.fs-instrument-rotate-hint{position:sticky;bottom:8px;margin-left:auto;width:max-content}}.fs-seq-pattern *,.fs-arp-pattern *,.fs-chord-pad *,.fs-toolbar-preset-chip *{pointer-events:none;-webkit-user-select:none;user-select:none}@keyframes fs-instrument-enter{0%{opacity:0;transform:scale(.97)}to{opacity:1;transform:scale(1)}}.fs-instrument-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(circle at 50% 100%,rgba(201,162,74,.1) 0%,transparent 55%),repeating-linear-gradient(0deg,rgba(255,255,255,.012) 0 2px,transparent 2px 4px);pointer-events:none;z-index:0}.fs-instrument-topbar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:5px 12px;height:48px;background:linear-gradient(180deg,rgba(10,9,8,.92) 0%,rgba(10,9,8,.6) 60%,transparent 100%);z-index:6;position:sticky;top:0}.fs-instrument-close,.fs-toolbar-toggle{width:38px;height:38px;display:inline-flex;align-items:center;justify-content:center;border-radius:50%;border:1px solid rgba(201,162,74,.45);background:#1a1817b3;color:#d9b366;cursor:pointer;flex-shrink:0;transition:transform .18s,background .18s,box-shadow .18s,color .18s}.fs-instrument-close:hover{background:#c9a24a2e;transform:rotate(90deg);box-shadow:0 0 18px #c9a24a73}.fs-toolbar-toggle:hover{background:#c9a24a2e;color:#f4d488;box-shadow:0 0 14px #c9a24a59}.fs-toolbar-toggle.is-open{color:#f4d488;border-color:#c9a24ad9}.fs-instrument-titlebar{display:flex;flex-direction:column;align-items:center;gap:1px;flex:1 1 auto;min-width:0}.fs-instrument-title{font-family:Cormorant Garamond,Playfair Display,Georgia,serif;font-size:1.15rem;font-weight:500;letter-spacing:.04em;color:#f4e8c8;line-height:1.1}.fs-instrument-subtitle{font-size:.7rem;color:#c9a24ad9;letter-spacing:.08em;text-transform:uppercase;display:inline-flex;align-items:center;margin-top:2px}.fs-instrument-key-badge{display:flex;flex-direction:column;align-items:flex-end;gap:.1rem;margin-left:auto;padding:0 .5rem;flex-shrink:0;pointer-events:none;-webkit-user-select:none;user-select:none}.fs-key-note{font-size:2rem;font-weight:700;color:#c9a24a;line-height:1;letter-spacing:-.02em;font-family:Cormorant Garamond,Playfair Display,Georgia,serif}.fs-key-scale{font-size:.8rem;color:#a08060;text-transform:uppercase;letter-spacing:.06em}.fs-instrument-subtitle-badge{display:inline-flex;align-items:center;padding:3px 11px;border-radius:999px;background:linear-gradient(180deg,#f4d4882e,#c9a24a1a);border:1px solid rgba(201,162,74,.45);color:#f4d488;letter-spacing:.12em;font-weight:700;box-shadow:inset 0 1px #ffffff1a,0 0 12px #c9a24a26}.fs-toolbar{display:grid;grid-template-columns:auto 1fr auto;grid-template-rows:auto auto;align-items:stretch;gap:5px 8px;padding:5px 12px 6px;background:linear-gradient(180deg,#1a1817eb,#0f0d0cf2);border-top:1px solid rgba(201,162,74,.2);border-bottom:1px solid rgba(201,162,74,.3);box-shadow:inset 0 1px #ffffff0a,inset 0 -1px #c9a24a1a,0 4px 12px #00000073;z-index:2;position:relative;min-width:0;overflow:visible}.fs-toolbar>.fs-toolbar-group--sound{grid-row:1;grid-column:1}.fs-toolbar>.fs-toolbar-group--display{grid-row:1;grid-column:2;justify-self:stretch;min-width:0}.fs-toolbar>.fs-toolbar-reset{grid-row:1;grid-column:3}.fs-toolbar>.fs-toolbar-group--preset{grid-row:2;grid-column:1 / -1}.fs-toolbar-group{display:flex;align-items:center;gap:8px;padding:4px 10px 4px 8px;background:linear-gradient(180deg,#ffffff08,#0003);border:1px solid rgba(201,162,74,.16);border-radius:8px;min-height:48px;min-width:0;flex-shrink:0}.fs-toolbar-group+.fs-toolbar-group{margin-left:0}.fs-toolbar-group--preset{flex:1 1 0;min-width:0;overflow:visible;align-items:stretch}.fs-toolbar-group--display{flex:1 1 auto;min-width:0;max-width:100%}.fs-toolbar-group-label{font-size:.6rem;font-weight:700;text-transform:uppercase;letter-spacing:.14em;color:#c9a24ab3;writing-mode:vertical-rl;transform:rotate(180deg);padding-right:6px;border-right:1px dashed rgba(201,162,74,.2);margin-right:4px;align-self:stretch;display:flex;align-items:center}.fs-knob{display:flex;flex-direction:column;gap:2px;min-width:72px}.fs-knob-label{font-size:.62rem;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:#f4e8c8bf}.fs-knob-row{display:flex;align-items:center;gap:6px}.fs-knob-slider{-moz-appearance:none;appearance:none;-webkit-appearance:none;width:56px;height:14px;background:transparent;cursor:pointer}.fs-knob-slider::-webkit-slider-runnable-track{height:5px;border-radius:3px;background:linear-gradient(to right,#c9a24a 0%,#c9a24a var(--fs-knob-pct, 0%),rgba(255,255,255,.1) var(--fs-knob-pct, 0%),rgba(255,255,255,.1) 100%)}.fs-knob-slider::-moz-range-track{height:5px;border-radius:3px;background:#ffffff1a}.fs-knob-slider::-moz-range-progress{height:5px;border-radius:3px;background:#c9a24a}.fs-knob-slider::-webkit-slider-thumb{-moz-appearance:none;appearance:none;-webkit-appearance:none;width:14px;height:14px;margin-top:-5px;border-radius:50%;background:radial-gradient(circle at 30% 30%,#f4d488,#c9a24a 60%,#8a6a26);border:1px solid rgba(0,0,0,.4);box-shadow:0 0 6px #c9a24a8c;cursor:pointer}.fs-knob-slider::-moz-range-thumb{width:14px;height:14px;border-radius:50%;background:radial-gradient(circle at 30% 30%,#f4d488,#c9a24a);border:1px solid rgba(0,0,0,.4);box-shadow:0 0 6px #c9a24a8c;cursor:pointer}.fs-knob-value{font-family:Courier New,monospace;font-size:.72rem;font-weight:700;color:#f4d488;background:#00000080;padding:2px 5px;border-radius:3px;min-width:22px;text-align:right;font-variant-numeric:tabular-nums;box-shadow:inset 0 1px 2px #0009}.fs-led{-webkit-appearance:none;-moz-appearance:none;appearance:none;display:inline-flex;flex-direction:column;align-items:center;gap:4px;padding:6px 10px;background:linear-gradient(180deg,#ffffff0a,#0000004d);border:1px solid rgba(255,255,255,.1);border-radius:6px;color:#f4e8c8b3;font-size:.62rem;font-weight:700;text-transform:uppercase;letter-spacing:.1em;cursor:pointer;transition:border-color .15s,color .15s}.fs-led:hover{border-color:#c9a24a66}.fs-led-dot{width:10px;height:10px;border-radius:50%;background:radial-gradient(circle at 30% 30%,#3a3a3a,#1a1a1a);box-shadow:inset 0 1px 2px #000c;transition:background .18s,box-shadow .18s}.fs-led.is-on{border-color:#c9a24ab3;color:#f4d488}.fs-led.is-on .fs-led-dot{background:radial-gradient(circle at 30% 30%,#ffe388,#c9a24a 70%,#8a6a26);box-shadow:0 0 10px #c9a24ad9,inset 0 1px 2px #ffdc8299}.fs-toolbar-preset-chips{display:grid;grid-template-columns:repeat(auto-fill,minmax(108px,1fr));gap:4px;flex:1 1 auto;min-width:0;padding-bottom:0}.fs-toolbar-preset-chip{-webkit-appearance:none;-moz-appearance:none;appearance:none;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:0;padding:4px 9px;min-height:38px;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;touch-action:manipulation;-webkit-tap-highlight-color:transparent;background:linear-gradient(180deg,#ffffff0d,#0000004d);border:1px solid rgba(255,255,255,.1);border-radius:8px;color:#f4e8c8d9;cursor:pointer;text-align:left;white-space:nowrap;overflow:hidden;position:relative;transition:background .15s,border-color .15s,color .15s,transform .12s,box-shadow .15s;box-shadow:inset 0 1px #ffffff0a,0 1px 2px #00000059}.fs-toolbar-preset-chip-label,.fs-toolbar-preset-chip-hint{pointer-events:none;-webkit-user-select:none;user-select:none}.fs-toolbar-preset-chip-label{font-size:.78rem;font-weight:700;letter-spacing:.02em;color:inherit;line-height:1.1}.fs-toolbar-preset-chip-hint{font-size:.55rem;font-weight:500;letter-spacing:.04em;color:#f4e8c880;text-transform:none;line-height:1.1;overflow:hidden;text-overflow:ellipsis;max-width:100%;margin-top:1px}.fs-toolbar-preset-chip:hover{background:linear-gradient(180deg,#c9a24a2e,#c9a24a0d);border-color:#c9a24a8c;color:#f4d488;transform:translateY(-1px);box-shadow:inset 0 1px #ffffff14,0 4px 10px #00000073}.fs-toolbar-preset-chip:hover .fs-toolbar-preset-chip-hint{color:#f4d488d9}.fs-toolbar-preset-chip.is-active{background:linear-gradient(180deg,#f4d488,#c9a24a 60%,#a07c2c);border-color:#c9a24af2;color:#1a1208;box-shadow:0 0 14px #c9a24a80,inset 0 1px #ffffff73,inset 0 -1px #0003;transform:none}.fs-toolbar-preset-chip.is-active .fs-toolbar-preset-chip-label{color:#1a1208;text-shadow:0 1px 0 rgba(255,255,255,.25)}.fs-toolbar-preset-chip.is-active .fs-toolbar-preset-chip-hint{color:#1a1208b3}.fs-toolbar-display{display:flex;align-items:center;gap:8px 10px;flex-wrap:wrap;overflow:visible;min-width:0}.fs-toolbar-display .fs-display-controls{flex-direction:row!important;align-items:center;gap:8px 10px;flex-wrap:wrap;width:100%}.fs-toolbar-display .fs-display-row{flex-direction:row!important;align-items:center;gap:5px;font-size:.74rem;flex-shrink:0}.fs-toolbar-display .fs-display-row-label{font-size:.6rem}.fs-toolbar-display .fs-display-select{padding:4px 8px;font-size:.78rem}.fs-toolbar-display .fs-segmented-btn{padding:4px 8px;font-size:.72rem}.fs-toolbar-display .fs-display-reset{padding:4px 8px;font-size:.7rem}.fs-toolbar-reset{-webkit-appearance:none;-moz-appearance:none;appearance:none;align-self:center;width:32px;height:32px;display:inline-flex;align-items:center;justify-content:center;border-radius:50%;background:#0000004d;border:1px dashed rgba(201,162,74,.4);color:#f4e8c8a6;font-size:1.05rem;cursor:pointer;flex-shrink:0;transition:color .15s,border-color .15s,transform .18s}.fs-toolbar-reset:hover{color:#f4d488;border-color:#c9a24ab3;transform:rotate(-90deg)}.fs-instrument-rotate-hint{position:absolute;bottom:8px;right:8px;display:inline-flex;align-items:center;gap:6px;padding:5px 10px;border-radius:999px;background:#1a1817d9;border:1px solid rgba(201,162,74,.4);color:#f4e8c8;font-size:.72rem;z-index:3}.fs-instrument-accessory{padding:5px 12px 6px;background:linear-gradient(180deg,#14110ed9,#0c0a08f2);border-bottom:1px solid rgba(201,162,74,.18);box-shadow:inset 0 1px #c9a24a1a,0 6px 14px #00000059;position:relative;z-index:2;display:flex;flex-direction:column;gap:11px}.fs-transport{display:flex;flex-direction:column;gap:3px;min-width:0}.fs-transport-kicker{font-size:.6rem;font-weight:700;text-transform:uppercase;letter-spacing:.18em;color:#c9a24ad9;padding-left:2px}.fs-transport-row{display:flex;align-items:stretch;gap:10px;flex-wrap:wrap}.fs-transport-play{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:42px;height:42px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;background:radial-gradient(circle at 30% 25%,rgba(255,255,255,.1) 0%,transparent 55%),linear-gradient(180deg,#2a1f12,#15100a);border:1px solid rgba(201,162,74,.6);color:#c9a24a;cursor:pointer;flex-shrink:0;transition:background .18s,color .18s,box-shadow .18s,transform .1s;box-shadow:inset 0 1px #ffffff14,inset 0 -2px 6px #0000008c,0 3px 8px #00000073}.fs-transport-play:hover{color:#f4d488;border-color:#c9a24ad9;box-shadow:inset 0 1px #ffffff1a,inset 0 -2px 6px #0000008c,0 4px 14px #c9a24a4d}.fs-transport-play:active{transform:translateY(1px)}.fs-transport-play.is-playing{background:radial-gradient(circle at 30% 25%,rgba(255,255,255,.18) 0%,transparent 55%),linear-gradient(180deg,#f4d488,#c9a24a 60%,#8a6a26);color:#1a1208;border-color:#ffe096f2;box-shadow:0 0 22px #c9a24aa6,inset 0 2px 4px #ffffff40,inset 0 -2px 4px #0006}.fs-transport-stop{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:32px;height:32px;border-radius:6px;display:inline-flex;align-items:center;justify-content:center;background:linear-gradient(180deg,#1e1510,#0f0b07);border:1px solid rgba(201,162,74,.4);color:#c9a24ab3;cursor:pointer;flex-shrink:0;transition:background .15s,color .15s,border-color .15s,transform .1s;box-shadow:inset 0 -2px 4px #00000080,0 2px 5px #0006}.fs-transport-stop:hover{color:#f4d488;border-color:#c9a24abf;box-shadow:inset 0 -2px 4px #00000080,0 3px 10px #c9a24a38}.fs-transport-stop:active{transform:translateY(1px)}.fs-transport-bpm{display:flex;align-items:center;gap:6px;padding:4px 8px;border-radius:8px;background:linear-gradient(180deg,#0000008c,#000000bf);border:1px solid rgba(201,162,74,.35);box-shadow:inset 0 1px 3px #000000b3,0 1px #ffffff0a;min-width:0}.fs-transport-bpm-display{display:flex;align-items:baseline;gap:4px;padding:0 6px}.fs-transport-bpm-value{font-family:Courier New,Consolas,monospace;font-size:1.4rem;font-weight:700;color:#ffe388;text-shadow:0 0 8px rgba(255,227,136,.55),0 0 18px rgba(201,162,74,.3);letter-spacing:.02em;line-height:1;font-variant-numeric:tabular-nums;min-width:2.4em;text-align:right}.fs-transport-bpm-unit{font-size:.6rem;font-weight:700;letter-spacing:.16em;color:#c9a24ab3}.fs-transport-bpm-buttons{display:grid;grid-template-columns:repeat(4,auto);gap:3px}.fs-transport-bpm-btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;min-width:26px;height:22px;padding:0 6px;border-radius:4px;border:1px solid rgba(201,162,74,.25);background:linear-gradient(180deg,#ffffff0d,#0000004d);color:#f4e8c8cc;font-size:.65rem;font-weight:700;letter-spacing:.04em;cursor:pointer;transition:color .15s,border-color .15s,background .15s}.fs-transport-bpm-btn:hover{color:#f4d488;border-color:#c9a24a8c;background:#c9a24a1f}.fs-transport-tap{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:56px;padding:0;border-radius:8px;border:1px solid rgba(201,162,74,.55);background:radial-gradient(circle at 50% 0%,rgba(244,212,136,.1) 0%,transparent 60%),linear-gradient(180deg,#282016d9,#120e0ad9);color:#f4d488;font-size:.8rem;font-weight:700;letter-spacing:.1em;cursor:pointer;transition:color .15s,border-color .15s,background .15s,transform .1s;box-shadow:inset 0 1px #ffffff0f,0 2px 5px #0006}.fs-transport-tap:hover{border-color:#c9a24af2;color:#ffe388;background:radial-gradient(circle at 50% 0%,rgba(244,212,136,.22) 0%,transparent 60%),linear-gradient(180deg,#3c301ed9,#1c160ed9)}.fs-transport-tap:active{transform:translateY(1px)}.fs-transport-metro{-webkit-appearance:none;-moz-appearance:none;appearance:none;display:inline-flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;padding:4px 10px;border-radius:8px;background:linear-gradient(180deg,#ffffff0a,#0000004d);border:1px solid rgba(255,255,255,.1);color:#f4e8c8b3;font-size:.62rem;font-weight:700;text-transform:uppercase;letter-spacing:.1em;cursor:pointer;transition:border-color .15s,color .15s}.fs-transport-metro:hover{border-color:#c9a24a66}.fs-transport-metro-dot{width:10px;height:10px;border-radius:50%;background:radial-gradient(circle at 30% 30%,#3a3a3a,#1a1a1a);box-shadow:inset 0 1px 2px #000c;transition:background .18s,box-shadow .18s}.fs-transport-metro.is-on{border-color:#c9a24ab3;color:#f4d488}.fs-transport-metro.is-on .fs-transport-metro-dot{background:radial-gradient(circle at 30% 30%,#ffe388,#c9a24a 70%,#8a6a26);box-shadow:0 0 10px #c9a24ad9,inset 0 1px 2px #ffdc8299}.fs-transport-beats{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:8px;background:linear-gradient(180deg,#0000008c,#000000bf);border:1px solid rgba(201,162,74,.3);box-shadow:inset 0 1px 3px #000000b3;flex-shrink:0}.fs-transport-beat{width:10px;height:10px;border-radius:50%;background:radial-gradient(circle at 30% 30%,#2a2620,#15110a);box-shadow:inset 0 1px 2px #000c;transition:background .05s linear,box-shadow .05s linear}.fs-transport-beat.is-down{outline:1px solid rgba(201,162,74,.25);outline-offset:1px}.fs-transport-beat.is-lit{background:radial-gradient(circle at 30% 30%,#ffe388,#c9a24a 65%,#8a6a26);box-shadow:0 0 12px #ffe388bf,inset 0 1px 2px #ffdc8299}@media (max-width: 700px),(max-height: 430px){.fs-transport-play{width:42px;height:42px}.fs-transport-bpm-value{font-size:1.4rem}.fs-transport-tap{width:48px;font-size:.72rem}.fs-transport-beats{padding:3px 7px;gap:4px}.fs-transport-beat{width:8px;height:8px}}.fs-stage-row-1{display:flex;align-items:stretch;gap:10px;flex-wrap:wrap}.fs-stage-row-1>.fs-transport{flex:1 1 auto;min-width:0}.fs-stage-row-1>.fs-arp{flex:1 1 auto;min-width:0}.fs-mod{--mod: #c9a24a;--mod-band: color-mix(in srgb, var(--mod) 24%, transparent);--mod-band-2: color-mix(in srgb, var(--mod) 6%, transparent);--mod-line: color-mix(in srgb, var(--mod) 36%, transparent);--mod-tint: color-mix(in srgb, var(--mod) 13%, transparent);display:flex;flex-direction:column;min-width:0;border-radius:14px;background:linear-gradient(180deg,var(--mod-tint) 0%,rgba(16,12,10,.92) 58%);border:1px solid var(--mod-line);box-shadow:0 10px 24px #0000006b,-4px 0 0 0 var(--mod) inset}.fs-mod-hdr{display:flex;align-items:center;gap:11px;flex-wrap:wrap;padding:9px 15px;background:linear-gradient(180deg,var(--mod-band) 0%,var(--mod-band-2) 100%);border-bottom:1px solid var(--mod-line);border-radius:13px 13px 0 0}.fs-mod-led{width:9px;height:9px;border-radius:50%;flex:0 0 auto;background:radial-gradient(circle at 35% 30%,#fff,var(--mod));box-shadow:0 0 8px 1px color-mix(in srgb,var(--mod) 70%,transparent)}.fs-mod-name{font-size:1rem;font-weight:800;color:#fff;letter-spacing:.01em;text-shadow:0 1px 3px rgba(0,0,0,.5)}.fs-mod-spacer{flex:1 1 auto}.fs-mod-body{display:flex;align-items:stretch;gap:0;padding:13px 15px}.fs-mod-main{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;gap:11px}.fs-mod-ctlrow{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.fs-mod-vol{flex:0 0 auto;display:flex;align-items:center;justify-content:center;padding-left:14px;margin-left:6px;border-left:1px solid var(--mod-line)}.fs-mod-editor{padding:0 15px 13px}.fs-mod-main .fs-arp-strip,.fs-mod-main .fs-bass-strip,.fs-mod-main .fs-comp-strip,.fs-mod-main .fs-drone-strip,.fs-mod-main .fs-seq-strip{flex-wrap:wrap;align-content:flex-start;flex:0 0 auto;overflow-x:hidden;overflow-y:auto;max-height:98px}.fs-mod-vol .knob-dial{--knob-accent: var(--vol-knob, #4fd39a)}.fs-mod-vol .knob-value{color:var(--vol-knob, #4fd39a)}.fs-mod>.fs-seq-row3{margin:0 15px 11px}.fs-mod--transport{--mod: #c9a24a}.fs-mod--arp{--mod: #ff6b6b}.fs-mod--arp2{--mod: #b98bff}.fs-mod--bass{--mod: #5b9bff}.fs-mod--comp{--mod: #f59e4b}.fs-mod--drone{--mod: #36d6c3}.fs-mod--seq{--mod: #3fd0e0}.fs-mod--fx{--mod: #6aa0ff}@media (max-width: 700px),(max-height: 430px){.fs-mod-hdr{padding:7px 11px;gap:8px}.fs-mod-body{padding:10px 11px}.fs-mod-vol{padding-left:10px;margin-left:3px}}.fs-arp{display:flex;flex-direction:column;gap:3px;min-width:0}.fs-arp-head{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}.fs-arp-kicker{font-size:.6rem;font-weight:700;text-transform:uppercase;letter-spacing:.18em;color:#c9a24ad9;padding-left:2px}.fs-arp-current{display:inline-flex;align-items:baseline;gap:8px;font-size:.74rem;color:#f4e8c8d9}.fs-arp-current-cat{font-size:.62rem;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:#ffa882d9;padding:2px 7px;border-radius:999px;border:1px solid rgba(255,130,90,.45);background:#0006}.fs-arp-current-name{color:#ffb88f;font-weight:700}.fs-arp-current-div{font-family:Courier New,monospace;font-size:.7rem;color:#ffa882a6;font-variant-numeric:tabular-nums}.fs-arp-row{display:flex;align-items:stretch;gap:8px;flex-wrap:nowrap;min-width:0}.fs-arp-strip{display:flex;align-items:stretch;flex-wrap:wrap;align-content:flex-start;gap:7px;overflow-x:hidden;overflow-y:auto;max-height:98px;scrollbar-width:thin;padding:2px;flex:1 1 auto;min-width:0;scrollbar-color:rgba(255,130,90,.4) transparent}.fs-arp-strip::-webkit-scrollbar{height:6px}.fs-arp-strip::-webkit-scrollbar-thumb{background:#ff825a66;border-radius:3px}.fs-arp-strip::-webkit-scrollbar-track{background:transparent}.fs-arp-pattern{-webkit-appearance:none;-moz-appearance:none;appearance:none;display:inline-flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:0;padding:4px 9px;min-height:40px;min-width:108px;scroll-snap-align:center;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;touch-action:manipulation;-webkit-tap-highlight-color:transparent;border-radius:8px;border:1px solid rgba(255,130,90,.25);background:linear-gradient(180deg,#ffffff0a,#0000004d);color:#f4e8c8cc;cursor:pointer;white-space:nowrap;transition:background .15s,border-color .15s,color .15s,transform .1s;box-shadow:inset 0 1px #ffffff0a,0 1px 2px #00000059;flex-shrink:0;position:relative}.fs-arp-pattern-cat{font-size:.55rem;font-weight:700;text-transform:uppercase;letter-spacing:.14em;color:#ff825aa6;line-height:1.2}.fs-arp-pattern-name{font-size:.82rem;font-weight:700;letter-spacing:.02em;line-height:1.1;color:inherit}.fs-arp-pattern-div{font-family:Courier New,monospace;font-size:.6rem;color:#f4e8c873;letter-spacing:.05em;font-variant-numeric:tabular-nums;margin-top:1px}.fs-arp-pattern:hover{border-color:#ff825aa6;background:linear-gradient(180deg,#ff825a29,#ff825a0a);color:#ffb88f;transform:translateY(-1px)}.fs-arp-pattern:hover .fs-arp-pattern-cat,.fs-arp-pattern:hover .fs-arp-pattern-div{color:#ffc896cc}.fs-arp-pattern.is-active{background:linear-gradient(180deg,#ffb88f,#d35a2a 60%,#8c2e0e);border-color:#ffa882f2;color:#1a0a04;box-shadow:0 0 14px #ff825280,inset 0 1px #ffdcc866,inset 0 -1px #0003;transform:none}.fs-arp-pattern.is-active .fs-arp-pattern-cat,.fs-arp-pattern.is-active .fs-arp-pattern-name,.fs-arp-pattern.is-active .fs-arp-pattern-div{color:#1a0a04}.fs-arp-power{-webkit-appearance:none;-moz-appearance:none;appearance:none;display:inline-flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;padding:6px 12px;border-radius:8px;background:linear-gradient(180deg,#282016d9,#120e0ad9);border:1px solid rgba(255,255,255,.1);color:#f4e8c8b3;font-size:.62rem;font-weight:700;text-transform:uppercase;letter-spacing:.1em;cursor:pointer;transition:border-color .15s,color .15s,box-shadow .18s;flex-shrink:0}.fs-arp-power:hover{border-color:#c9a24a66}.fs-arp-power-dot{width:10px;height:10px;border-radius:50%;background:radial-gradient(circle at 30% 30%,#3a3a3a,#1a1a1a);box-shadow:inset 0 1px 2px #000c;transition:background .18s,box-shadow .18s}.fs-arp-power.is-on{border-color:#ff8282d9;color:#ffb88f;box-shadow:0 0 14px #ff825a40}.fs-arp-power.is-on .fs-arp-power-dot{background:radial-gradient(circle at 30% 30%,#ffd0a0,#ff8552 60%,#b34a1f);box-shadow:0 0 10px #ff8552d9,inset 0 1px 2px #ffc89699;animation:fs-arp-pulse 1.2s ease-in-out infinite}@keyframes fs-arp-pulse{0%,to{box-shadow:0 0 8px #ff85528c,inset 0 1px 2px #ffc89699}50%{box-shadow:0 0 18px #ff8552f2,inset 0 1px 2px #ffc89699}}.fs-arp-group{display:inline-flex;align-items:center;gap:3px;padding:3px 5px;border-radius:7px;background:linear-gradient(180deg,#00000059,#0000008c);border:1px solid rgba(201,162,74,.25);box-shadow:inset 0 1px 2px #00000073}.fs-arp-group-label{font-size:.6rem;font-weight:700;letter-spacing:.1em;color:#c9a24ab3;text-transform:uppercase;padding:0 4px}.fs-arp-chip{-webkit-appearance:none;-moz-appearance:none;appearance:none;min-width:32px;height:26px;padding:0 8px;border-radius:4px;border:1px solid transparent;background:transparent;color:#f4e8c8a6;font-size:.78rem;font-weight:700;letter-spacing:.02em;cursor:pointer;transition:color .15s,background .15s,border-color .15s;font-variant-numeric:tabular-nums}.fs-arp-chip--pattern{font-size:1rem;line-height:1}.fs-arp-chip:hover{color:#f4d488;background:#c9a24a1a}.fs-arp-chip.is-active{background:linear-gradient(180deg,#f4d488,#c9a24a);color:#1a1208;box-shadow:inset 0 1px #ffffff4d,inset 0 -1px #0003;text-shadow:0 1px 0 rgba(255,255,255,.2)}.fs-arp-latch{-webkit-appearance:none;-moz-appearance:none;appearance:none;display:inline-flex;align-items:center;gap:5px;padding:6px 10px;border-radius:7px;background:linear-gradient(180deg,#ffffff0a,#0000004d);border:1px solid rgba(255,255,255,.1);color:#f4e8c8a6;font-size:.65rem;font-weight:700;text-transform:uppercase;letter-spacing:.1em;cursor:pointer;transition:border-color .15s,color .15s}.fs-arp-latch:hover{border-color:#c9a24a66}.fs-arp-latch-dot{width:8px;height:8px;border-radius:50%;background:radial-gradient(circle at 30% 30%,#3a3a3a,#1a1a1a);box-shadow:inset 0 1px 2px #000c}.fs-arp-latch.is-on{border-color:#c9a24ab3;color:#f4d488}.fs-arp-latch.is-on .fs-arp-latch-dot{background:radial-gradient(circle at 30% 30%,#ffe388,#c9a24a 70%,#8a6a26);box-shadow:0 0 8px #c9a24ad9}@media (max-width: 700px),(max-height: 430px){.fs-stage-row-1{gap:8px}.fs-arp-power{padding:4px 9px}.fs-arp-chip{min-width:26px;height:22px;padding:0 6px;font-size:.7rem}}.fs-seq{display:flex;flex-direction:column;gap:3px;min-width:0}.fs-seq-head{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}.fs-seq-kicker{font-size:.6rem;font-weight:700;text-transform:uppercase;letter-spacing:.18em;color:#c9a24ad9;padding-left:2px}.fs-seq-current{display:inline-flex;align-items:baseline;gap:8px;font-size:.74rem;color:#f4e8c8d9;letter-spacing:.02em}.fs-seq-current-cat{font-size:.62rem;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:#c9a24abf;padding:2px 7px;border-radius:999px;border:1px solid rgba(201,162,74,.3);background:#0006}.fs-seq-current-name{color:#f4d488;font-weight:700}.fs-seq-current-bpm{font-family:Courier New,monospace;font-size:.7rem;color:#c9a24aa6;font-variant-numeric:tabular-nums}.fs-seq-row{display:flex;align-items:stretch;gap:8px;min-width:0}.fs-seq-power{-webkit-appearance:none;-moz-appearance:none;appearance:none;display:inline-flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;padding:6px 12px;border-radius:8px;background:linear-gradient(180deg,#282016d9,#120e0ad9);border:1px solid rgba(255,255,255,.1);color:#f4e8c8b3;font-size:.62rem;font-weight:700;text-transform:uppercase;letter-spacing:.1em;cursor:pointer;flex-shrink:0;transition:border-color .15s,color .15s,box-shadow .18s}.fs-seq-power:hover{border-color:#c9a24a66}.fs-seq-power-dot{width:10px;height:10px;border-radius:50%;background:radial-gradient(circle at 30% 30%,#3a3a3a,#1a1a1a);box-shadow:inset 0 1px 2px #000c;transition:background .18s,box-shadow .18s}.fs-seq-power.is-on{border-color:#78dcffd9;color:#9bd9ff;box-shadow:0 0 14px #78c8ff4d}.fs-seq-power.is-on .fs-seq-power-dot{background:radial-gradient(circle at 30% 30%,#d0f0ff,#66c0ff 60%,#2a6090);box-shadow:0 0 10px #78c8ffd9,inset 0 1px 2px #dcf0ff99;animation:fs-seq-pulse 1.2s ease-in-out infinite}@keyframes fs-seq-pulse{0%,to{box-shadow:0 0 8px #78c8ff8c,inset 0 1px 2px #dcf0ff99}50%{box-shadow:0 0 18px #78c8fff2,inset 0 1px 2px #dcf0ff99}}.fs-seq-nav-btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:28px;align-self:stretch;border-radius:7px;border:1px solid rgba(201,162,74,.3);background:linear-gradient(180deg,#00000059,#0000008c);color:#f4d488;font-size:1.2rem;font-weight:700;cursor:pointer;transition:color .15s,border-color .15s,background .15s;flex-shrink:0}.fs-seq-nav-btn:hover{border-color:#c9a24abf;background:#c9a24a1f;color:#ffe388}.fs-seq-strip{display:flex;align-items:stretch;gap:7px;overflow-x:auto;scrollbar-width:thin;padding:2px;flex:1 1 auto;min-width:0;scroll-snap-type:x proximity;scrollbar-color:rgba(201,162,74,.4) transparent}.fs-seq-strip::-webkit-scrollbar{height:6px}.fs-seq-strip::-webkit-scrollbar-thumb{background:#c9a24a66;border-radius:3px}.fs-seq-strip::-webkit-scrollbar-track{background:transparent}.fs-seq-pattern{-webkit-appearance:none;-moz-appearance:none;appearance:none;display:inline-flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:0;padding:4px 9px;min-height:40px;min-width:108px;scroll-snap-align:center;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;touch-action:manipulation;-webkit-tap-highlight-color:transparent;border-radius:8px;border:1px solid rgba(255,255,255,.1);background:linear-gradient(180deg,#ffffff0a,#0000004d);color:#f4e8c8cc;cursor:pointer;white-space:nowrap;transition:background .15s,border-color .15s,color .15s,transform .1s;box-shadow:inset 0 1px #ffffff0a,0 1px 2px #00000059;flex-shrink:0;position:relative}.fs-seq-pattern-cat{font-size:.55rem;font-weight:700;text-transform:uppercase;letter-spacing:.14em;color:#c9a24aa6;line-height:1.2}.fs-seq-pattern-name{font-size:.82rem;font-weight:700;letter-spacing:.02em;line-height:1.1;color:inherit}.fs-seq-pattern-bpm{font-family:Courier New,monospace;font-size:.6rem;color:#f4e8c873;letter-spacing:.05em;font-variant-numeric:tabular-nums;margin-top:1px}.fs-seq-pattern:hover{border-color:#c9a24a8c;background:linear-gradient(180deg,#c9a24a24,#c9a24a0a);color:#f4d488;transform:translateY(-1px)}.fs-seq-pattern:hover .fs-seq-pattern-cat,.fs-seq-pattern:hover .fs-seq-pattern-bpm{color:#f4d488cc}.fs-seq-pattern.is-active{background:linear-gradient(180deg,#f4d488,#c9a24a 60%,#a07c2c);border-color:#c9a24af2;color:#1a1208;box-shadow:0 0 14px #c9a24a80,inset 0 1px #ffffff73,inset 0 -1px #0003;transform:none}.fs-seq-pattern.is-active .fs-seq-pattern-cat,.fs-seq-pattern.is-active .fs-seq-pattern-bpm,.fs-seq-pattern.is-active .fs-seq-pattern-name{color:#1a1208}.fs-drone{display:flex;flex-direction:column;gap:3px}.fs-drone-kicker{font-size:.6rem;font-weight:700;text-transform:uppercase;letter-spacing:.18em;color:#c9a24ad9;padding-left:2px}.fs-drone-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.fs-drone-power{-webkit-appearance:none;-moz-appearance:none;appearance:none;display:inline-flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;padding:6px 12px;border-radius:8px;background:linear-gradient(180deg,#282016d9,#120e0ad9);border:1px solid rgba(255,255,255,.1);color:#f4e8c8b3;font-size:.62rem;font-weight:700;text-transform:uppercase;letter-spacing:.1em;cursor:pointer;transition:border-color .15s,color .15s,box-shadow .18s;flex-shrink:0}.fs-drone-power:hover{border-color:#c9a24a66}.fs-drone-power-dot{width:10px;height:10px;border-radius:50%;background:radial-gradient(circle at 30% 30%,#3a3a3a,#1a1a1a);box-shadow:inset 0 1px 2px #000c}.fs-drone-power.is-on{border-color:#96dcaad9;color:#b8e8c8;box-shadow:0 0 14px #78c89640}.fs-drone-power.is-on .fs-drone-power-dot{background:radial-gradient(circle at 30% 30%,#d8f0e0,#6cc090 60%,#2a8050);box-shadow:0 0 10px #78c896d9}.fs-drone-group{display:inline-flex;align-items:center;gap:3px;padding:3px 5px;border-radius:7px;background:linear-gradient(180deg,#00000059,#0000008c);border:1px solid rgba(201,162,74,.25);box-shadow:inset 0 1px 2px #00000073}.fs-drone-preset{min-width:130px}.fs-drone-vol{display:inline-flex;align-items:center;gap:6px;padding:3px 8px 3px 6px;border-radius:7px;background:linear-gradient(180deg,#00000059,#0000008c);border:1px solid rgba(201,162,74,.25)}.fs-drone-vol-label{font-size:.62rem;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:#f4e8c8bf}@media (max-width: 700px),(max-height: 430px){.fs-seq-pattern{min-width:110px;min-height:44px;padding:4px 9px}.fs-seq-pattern-name{font-size:.72rem}.fs-drone-preset{min-width:100px}}.fs-arp-preset-picker{position:relative;display:inline-flex}.fs-arp-preset-btn{display:inline-flex;align-items:center;gap:6px;height:28px;padding:0 10px;border-radius:8px;border:1px solid rgba(201,162,74,.3);background:linear-gradient(180deg,#281e0f8c,#140f08a6);color:#f0d49a;font:inherit;font-size:.75rem;cursor:pointer;transition:border-color .12s ease,background .12s ease}.fs-arp-preset-btn:hover{border-color:#c9a24a8c;background:linear-gradient(180deg,#3c2d16a6,#1e160cbf)}.fs-arp-preset-btn.is-open{border-color:#c9a24ad9;box-shadow:0 0 0 1px #c9a24a40 inset}.fs-arp-preset-label{font-size:.55rem;font-weight:700;text-transform:uppercase;letter-spacing:.16em;color:#c9a24ab3}.fs-arp-preset-value{font-weight:600;color:#f4d488;white-space:nowrap}.fs-arp-preset-chevron{font-size:.7rem;color:#c9a24ab3;margin-left:2px}.fs-arp-preset-popover{position:absolute;top:calc(100% + 6px);right:0;z-index:50;width:max-content;max-width:min(360px,88vw);padding:8px;border-radius:10px;border:1px solid rgba(201,162,74,.4);background:linear-gradient(180deg,#1c160cf5,#0f0c08fa);box-shadow:0 12px 28px #0000008c;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.fs-arp-preset-grid{display:grid;grid-template-columns:repeat(3,minmax(80px,1fr));gap:4px}.fs-arp-preset-chip{display:inline-flex;align-items:center;justify-content:center;height:28px;padding:0 10px;border-radius:6px;border:1px solid rgba(201,162,74,.18);background:#281e0f4d;color:#e5d4a9;font-size:.72rem;font-weight:500;cursor:pointer;white-space:nowrap;transition:border-color .12s ease,background .12s ease,color .12s ease}.fs-arp-preset-chip:hover{border-color:#c9a24a8c;background:#3c2d1673;color:#f4d488}.fs-arp-preset-chip.is-active{border-color:#c9a24ad9;background:linear-gradient(180deg,#c9a24aa6,#8c692a8c);color:#1a130a;font-weight:700;box-shadow:0 0 0 1px #c9a24a59}@media (max-width: 720px){.fs-arp-preset-grid{grid-template-columns:repeat(2,minmax(70px,1fr))}.fs-arp-preset-label{display:none}}.fs-gmpick{--gmpick-accent: #c9a24a;position:relative;display:inline-flex}.fs-gmpick-btn{display:inline-flex;align-items:center;gap:6px;height:28px;padding:0 10px;border-radius:8px;border:1px solid color-mix(in srgb,var(--gmpick-accent) 35%,transparent);background:#ffffff0a;color:#e9e2d2;font:inherit;font-size:.75rem;cursor:pointer;transition:border-color .12s ease,background .12s ease}.fs-gmpick-btn:hover{border-color:color-mix(in srgb,var(--gmpick-accent) 60%,transparent);background:#ffffff12}.fs-gmpick-btn.is-open{border-color:var(--gmpick-accent);box-shadow:0 0 0 1px color-mix(in srgb,var(--gmpick-accent) 30%,transparent) inset}.fs-gmpick-label{font-size:.55rem;font-weight:700;text-transform:uppercase;letter-spacing:.16em;color:color-mix(in srgb,var(--gmpick-accent) 75%,#cccccc)}.fs-gmpick-value{font-weight:600;color:#f3ecdc;white-space:nowrap;max-width:120px;overflow:hidden;text-overflow:ellipsis}.fs-gmpick-chevron{font-size:.7rem;color:color-mix(in srgb,var(--gmpick-accent) 70%,#cccccc);margin-left:2px}.fs-gmpick-popover{position:absolute;top:calc(100% + 6px);right:0;z-index:60;width:max-content;max-width:min(420px,92vw);padding:8px;border-radius:10px;border:1px solid color-mix(in srgb,var(--gmpick-accent) 45%,transparent);background:linear-gradient(180deg,#141418f7,#0a0a0dfa);box-shadow:0 12px 28px #0000008c;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.fs-gmpick-search{width:100%;box-sizing:border-box;height:30px;padding:0 10px;margin-bottom:8px;border-radius:7px;border:1px solid rgba(255,255,255,.14);background:#ffffff0d;color:#f0ece2;font:inherit;font-size:.78rem}.fs-gmpick-search:focus{outline:none;border-color:var(--gmpick-accent)}.fs-gmpick-list{max-height:min(48vh,340px);overflow-y:auto;padding-right:2px}.fs-gmpick-fam{margin-bottom:6px}.fs-gmpick-fam-title{position:sticky;top:0;margin:0 0 4px;padding:2px 2px 3px;font-size:.56rem;font-weight:800;text-transform:uppercase;letter-spacing:.12em;color:color-mix(in srgb,var(--gmpick-accent) 80%,#bbbbbb);background:linear-gradient(180deg,#141418fa,#14141800)}.fs-gmpick-fam-grid{display:grid;grid-template-columns:repeat(3,minmax(96px,1fr));gap:4px}.fs-gmpick-chip{display:inline-flex;align-items:center;justify-content:center;text-align:center;height:30px;padding:0 8px;border-radius:6px;border:1px solid rgba(255,255,255,.1);background:#ffffff08;color:#ddd6c8;font-size:.7rem;font-weight:500;cursor:pointer;line-height:1.05;transition:border-color .12s ease,background .12s ease,color .12s ease}.fs-gmpick-chip:hover{border-color:color-mix(in srgb,var(--gmpick-accent) 55%,transparent);background:color-mix(in srgb,var(--gmpick-accent) 12%,transparent);color:#fff}.fs-gmpick-chip.is-active{border-color:var(--gmpick-accent);background:color-mix(in srgb,var(--gmpick-accent) 32%,transparent);color:#fff;font-weight:700;box-shadow:0 0 0 1px color-mix(in srgb,var(--gmpick-accent) 30%,transparent)}.fs-gmpick-empty{color:#ffffff80;font-size:.75rem;padding:8px 4px}@media (max-width: 720px){.fs-gmpick-fam-grid{grid-template-columns:repeat(2,minmax(84px,1fr))}.fs-gmpick-label{display:none}.fs-gmpick-value{max-width:90px}}.fs-chord-pads{display:flex;flex-direction:column;gap:3px;min-width:0}.fs-chord-pads-header{display:flex;align-items:center;flex-wrap:wrap;gap:10px;padding-left:2px}.fs-chord-pads-playmode,.fs-chord-pads-quantize{display:inline-flex;align-items:center;gap:4px;margin-left:auto}.fs-chord-pads-quantize{margin-left:4px}.fs-chord-pads-quantize-label{font-size:.55rem;font-weight:700;text-transform:uppercase;letter-spacing:.16em;color:#c9a24ab3;padding-right:2px}.fs-chord-pads-kicker{font-size:.6rem;font-weight:700;text-transform:uppercase;letter-spacing:.18em;color:#c9a24ad9;padding-left:2px}.fs-chord-pads-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:5px;min-width:0}.fs-chord-pad{-webkit-appearance:none;-moz-appearance:none;appearance:none;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;padding:6px 4px;min-height:46px;border-radius:10px;border:1px solid rgba(201,162,74,.32);background:radial-gradient(circle at 50% -20%,rgba(244,212,136,.18) 0%,transparent 60%),linear-gradient(180deg,#282016f2,#120e0af2);color:#f4e8c8;cursor:pointer;transition:transform .1s ease-out,background .18s,box-shadow .18s,border-color .18s;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent;touch-action:manipulation;box-shadow:inset 0 1px #ffffff14,inset 0 -2px #00000073,0 3px 8px #00000073;position:relative;overflow:hidden}.fs-chord-pad-symbol,.fs-chord-pad-sub{pointer-events:none;-webkit-user-select:none;user-select:none}.fs-chord-pad:before{content:"";position:absolute;top:1px;right:1px;bottom:1px;left:1px;border-radius:9px;background:linear-gradient(180deg,rgba(255,255,255,.04) 0%,transparent 30%);pointer-events:none}.fs-chord-pad-symbol{font-family:Cormorant Garamond,Playfair Display,Georgia,serif;font-size:1.15rem;font-weight:600;line-height:1;color:#f4d488;text-shadow:0 1px 0 rgba(0,0,0,.45);letter-spacing:.01em}.fs-chord-pad-sub{font-size:.58rem;font-weight:700;letter-spacing:.12em;color:#f4e8c88c;text-transform:none;font-variant-numeric:tabular-nums}.fs-chord-pad:hover{border-color:#c9a24aa6;background:radial-gradient(circle at 50% -20%,rgba(244,212,136,.28) 0%,transparent 60%),linear-gradient(180deg,#3c301ef2,#1c160ef2);box-shadow:inset 0 1px #ffffff1f,inset 0 -2px #00000073,0 6px 14px #0000008c}.fs-chord-pad:hover .fs-chord-pad-sub{color:#f4d488d9}.fs-chord-pad.is-pressed,.fs-chord-pad:active{transform:translateY(2px) scale(.98);background:radial-gradient(circle at 50% 120%,rgba(244,212,136,.35) 0%,transparent 60%),linear-gradient(180deg,#f4d488,#c9a24a 60%,#8a6a26);border-color:#ffe096f2;box-shadow:0 0 22px #c9a24aa6,inset 0 2px 4px #00000080,inset 0 -1px #ffffff40}.fs-chord-pad.is-pressed .fs-chord-pad-symbol,.fs-chord-pad:active .fs-chord-pad-symbol{color:#1a1208;text-shadow:0 1px 0 rgba(255,255,255,.25)}.fs-chord-pad.is-pressed .fs-chord-pad-sub,.fs-chord-pad:active .fs-chord-pad-sub{color:#1a1208bf}.fs-chord-pad--maj .fs-chord-pad-symbol{color:#f4d488}.fs-chord-pad--min .fs-chord-pad-symbol{color:#cfb978}.fs-chord-pad--dim .fs-chord-pad-symbol{color:#b8a06a;font-style:italic}.fs-chord-pad--aug .fs-chord-pad-symbol{color:#ffd98c}.fs-chord-pad.is-arp-mode{border-style:dashed;border-color:#ff825a8c}.fs-chord-pad.is-pending{border-style:solid;border-color:#ffdc64d9;box-shadow:0 0 18px #ffdc648c,inset 0 1px #fff0b44d;animation:fs-pad-pending-pulse .6s ease-in-out infinite}.fs-chord-pad.is-pending .fs-chord-pad-symbol{color:#ffe080;text-shadow:0 0 8px rgba(255,220,100,.6)}@keyframes fs-pad-pending-pulse{0%,to{box-shadow:0 0 12px #ffdc6466,inset 0 1px #fff0b44d}50%{box-shadow:0 0 28px #ffdc64f2,inset 0 1px #fff0b44d}}.fs-chord-pad.is-armed{border-style:solid;border-color:#ff825af2;background:radial-gradient(circle at 50% -20%,rgba(255,180,130,.35) 0%,transparent 60%),linear-gradient(180deg,#d35a2a,#8c2e0e);box-shadow:0 0 22px #ff8252a6,inset 0 1px #ffc8964d,inset 0 -2px #0000004d;animation:fs-pad-armed-pulse .9s ease-in-out infinite}.fs-chord-pad.is-armed .fs-chord-pad-symbol{color:#ffe7d0;text-shadow:0 0 8px rgba(255,180,130,.6)}.fs-chord-pad.is-armed .fs-chord-pad-sub{color:#ffdcc8d9}@keyframes fs-pad-armed-pulse{0%,to{box-shadow:0 0 14px #ff82528c,inset 0 1px #ffc8964d,inset 0 -2px #0000004d}50%{box-shadow:0 0 28px #ff8252f2,inset 0 1px #ffc8964d,inset 0 -2px #0000004d}}.fs-chord-pads--empty{padding:12px 14px;text-align:center;border:1px dashed rgba(201,162,74,.2);border-radius:8px}.fs-chord-pads-empty-label{font-size:.78rem;color:#f4e8c88c;letter-spacing:.01em}@media (max-width: 700px),(max-height: 430px){.fs-instrument-accessory{padding:7px 10px}.fs-chord-pad{min-height:50px;padding:7px 4px}.fs-chord-pad-symbol{font-size:1.1rem}.fs-chord-pad-sub{font-size:.58rem}.fs-chord-pads-grid{gap:6px}}.fs-instrument-board{display:flex;align-items:center;justify-content:center;padding:4px 8px 6px;background:linear-gradient(180deg,#1a181766,#0a090833);overflow:hidden;min-width:0;min-height:0;position:relative;z-index:1}.fs-instrument-board>*{width:100%;height:100%;max-width:100%;max-height:100%}.fs-instrument-board svg{display:block;width:100%;height:100%;max-height:100%}@media (max-width: 900px){.fs-toolbar{padding:6px 10px 8px;gap:8px}.fs-toolbar-group{padding:5px 10px 5px 8px;min-height:56px}.fs-toolbar-group-label{display:none}.fs-knob{min-width:78px}.fs-knob-slider{width:60px}.fs-toolbar-preset-chip{padding:6px 10px;font-size:.76rem}}@media (max-width: 600px),(max-height: 430px){.fs-toolbar{padding:5px 8px 6px;gap:6px}.fs-toolbar-group{padding:4px 8px 4px 6px;gap:6px;min-height:50px}.fs-knob{min-width:64px}.fs-knob-label{font-size:.56rem}.fs-knob-slider{width:48px}.fs-knob-value{font-size:.66rem;padding:1px 4px}.fs-toolbar-preset-chip{padding:5px 9px;font-size:.72rem}.fs-led{padding:4px 7px}.fs-instrument-topbar{padding:5px 8px;height:48px}.fs-instrument-title{font-size:1.05rem}.fs-instrument-subtitle{font-size:.6rem}}.fs-sound-control{display:flex;flex-direction:column;gap:4px;font-size:.85rem;color:#f4e8c8}.fs-sound-control-row{display:flex;justify-content:space-between;align-items:baseline}.fs-sound-control-label{font-weight:600;letter-spacing:.02em}.fs-sound-control-value{font-size:.78rem;color:#c9a24ad9;font-variant-numeric:tabular-nums}.fs-sound-slider{-moz-appearance:none;appearance:none;-webkit-appearance:none;width:100%;height:22px;background:transparent;cursor:pointer}.fs-sound-slider::-webkit-slider-runnable-track{height:6px;border-radius:3px;background:linear-gradient(to right,#c9a24a 0%,#c9a24a var(--fs-slider-pct, 0%),rgba(255,255,255,.1) var(--fs-slider-pct, 0%),rgba(255,255,255,.1) 100%)}.fs-sound-slider::-moz-range-track{height:6px;border-radius:3px;background:#ffffff1a}.fs-sound-slider::-moz-range-progress{height:6px;border-radius:3px;background:#c9a24a}.fs-sound-slider::-webkit-slider-thumb{-moz-appearance:none;appearance:none;-webkit-appearance:none;width:18px;height:18px;margin-top:-6px;border-radius:50%;background:radial-gradient(circle at 30% 30%,#f4d488,#c9a24a 60%,#8a6a26);border:1px solid rgba(0,0,0,.4);box-shadow:0 0 8px #c9a24a8c;cursor:pointer}.fs-sound-slider::-moz-range-thumb{width:18px;height:18px;border-radius:50%;background:radial-gradient(circle at 30% 30%,#f4d488,#c9a24a 60%,#8a6a26);border:1px solid rgba(0,0,0,.4);box-shadow:0 0 8px #c9a24a8c;cursor:pointer}.fs-sound-toggle{flex-direction:row;align-items:center;justify-content:space-between}.fs-toggle-pill{position:relative;width:44px;height:24px;border-radius:999px;border:1px solid rgba(255,255,255,.15);background:#ffffff0f;cursor:pointer;transition:background .18s,border-color .18s,box-shadow .18s;flex-shrink:0}.fs-toggle-pill-thumb{position:absolute;top:2px;left:2px;width:18px;height:18px;border-radius:50%;background:#e6e6e6;transition:transform .22s cubic-bezier(.4,1.4,.5,1),background .18s}.fs-toggle-pill.is-on{background:#c9a24a4d;border-color:#c9a24ab3;box-shadow:0 0 10px #c9a24a59}.fs-toggle-pill.is-on .fs-toggle-pill-thumb{transform:translate(20px);background:radial-gradient(circle at 30% 30%,#f4d488,#c9a24a)}.fs-reset-btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;margin-top:auto;padding:8px 12px;background:transparent;border:1px dashed rgba(255,255,255,.18);border-radius:8px;color:#fff9;font-size:.78rem;cursor:pointer;transition:color .15s,border-color .15s}.fs-reset-btn:hover{color:#f4e8c8;border-color:#c9a24a80}.fs-instrument-board{display:flex;align-items:center;justify-content:center;padding:16px;background:linear-gradient(180deg,#1a1817c7,#0a090899);border:1px solid rgba(201,162,74,.18);border-radius:12px;overflow:hidden;min-height:0}.fs-instrument-board>*{width:100%;max-height:100%}.fs-display-controls{display:flex;flex-direction:column;gap:10px}.fs-display-row{display:flex;flex-direction:column;gap:4px;font-size:.8rem;color:#f4e8c8}.fs-display-row-label{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:#c9a24ad9}.fs-display-select{-moz-appearance:none;appearance:none;-webkit-appearance:none;background:linear-gradient(180deg,#00000073,#000000a6);border:1px solid rgba(201,162,74,.45);border-radius:7px;padding:6px 26px 6px 10px;font-size:.86rem;font-weight:700;letter-spacing:.02em;color:#f4d488;cursor:pointer;background-image:linear-gradient(45deg,transparent 50%,#c9a24a 50%),linear-gradient(135deg,#c9a24a 50%,transparent 50%),linear-gradient(180deg,#00000073,#000000a6);background-position:calc(100% - 14px) 50%,calc(100% - 9px) 50%,0 0;background-size:5px 5px,5px 5px,100% 100%;background-repeat:no-repeat;box-shadow:inset 0 1px #ffffff0f,inset 0 -1px 2px #00000080}.fs-display-select:hover{border-color:#c9a24abf;color:#f4e8c8}.fs-display-select option{background:#1a1817;color:#f4e8c8}.fs-display-reset{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:transparent;border:1px dashed rgba(201,162,74,.4);border-radius:6px;padding:6px 10px;color:#c9a24ad9;font-size:.78rem;cursor:pointer}.fs-display-reset:hover{color:#f4d488;border-color:#c9a24ab3}.fs-segmented{display:inline-flex;border:1px solid rgba(201,162,74,.35);border-radius:7px;overflow:hidden;background:linear-gradient(180deg,#00000059,#0000008c);box-shadow:inset 0 1px 2px #0000008c,0 1px #ffffff0a}.fs-segmented-btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:transparent;border:0;padding:6px 13px;font-size:.78rem;font-weight:700;letter-spacing:.04em;color:#f4e8c88c;cursor:pointer;transition:background .15s,color .15s,box-shadow .15s;position:relative}.fs-segmented-btn+.fs-segmented-btn{border-left:1px solid rgba(201,162,74,.2)}.fs-segmented-btn:hover{color:#f4e8c8;background:#c9a24a14}.fs-segmented-btn.is-active{background:linear-gradient(180deg,#f4d488,#c9a24a);color:#1a1208;text-shadow:0 1px 0 rgba(255,255,255,.25);box-shadow:inset 0 1px #ffffff59,inset 0 -1px #0003,0 0 10px #c9a24a59}.fs-preset-grid{display:grid;grid-template-columns:1fr;gap:8px}.fs-preset-btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;display:flex;flex-direction:column;align-items:flex-start;text-align:left;padding:10px 12px;background:linear-gradient(180deg,#ffffff0a,#ffffff05);border:1px solid rgba(255,255,255,.1);border-radius:8px;color:#f4e8c8;cursor:pointer;transition:background .15s,border-color .15s,transform .15s}.fs-preset-btn:hover{background:#c9a24a1a;border-color:#c9a24a66}.fs-preset-btn.is-active{background:linear-gradient(180deg,#c9a24a38,#c9a24a14);border-color:#c9a24ab3;box-shadow:0 0 12px #c9a24a40}.fs-preset-btn-label{font-size:.9rem;font-weight:700;letter-spacing:.01em}.fs-preset-btn-hint{font-size:.74rem;color:#ffffff80;font-weight:400;margin-top:1px}.fs-preset-btn.is-active .fs-preset-btn-hint{color:#f4e8c8bf}.richter-full{display:grid;grid-template-rows:auto 1fr 1fr;gap:10px;width:100%;height:100%;padding:14px 8px;-webkit-user-select:none;user-select:none}.richter-full-numbers{display:grid;grid-template-columns:80px repeat(10,1fr);gap:6px;align-items:center}.richter-full-number{grid-column:auto;text-align:center;font-family:Cormorant Garamond,serif;font-size:1.4rem;font-weight:600;color:#c9a24ab3}.richter-full-numbers .richter-full-number:first-child{display:none}.richter-full-row{display:grid;grid-template-columns:80px repeat(10,1fr);gap:6px;align-items:stretch}.richter-full-row-label{display:flex;align-items:center;justify-content:flex-end;padding-right:10px;font-size:.72rem;font-weight:700;letter-spacing:.12em;color:#c9a24ad9;text-transform:uppercase}.richter-full-cell{-webkit-appearance:none;-moz-appearance:none;appearance:none;display:flex;align-items:center;justify-content:center;border:1px solid rgba(201,162,74,.25);border-radius:10px;background:linear-gradient(180deg,#ffffff0f,#ffffff05);color:#f4e8c8;font-family:Cormorant Garamond,serif;font-size:1.8rem;font-weight:600;cursor:pointer;transition:background .1s,transform .1s,box-shadow .1s;touch-action:none;min-height:60px}.richter-full-cell--blow{background:linear-gradient(180deg,#c9a24a29,#c9a24a0a)}.richter-full-cell--draw{background:linear-gradient(0deg,#8c643c29,#8c643c0a)}.richter-full-cell:hover{border-color:#c9a24a8c}.richter-full-cell.is-pressed{background:linear-gradient(180deg,#f4d488,#c9a24a);color:#1a1a1a;box-shadow:inset 0 0 0 2px #c9a24ad9,0 0 18px #c9a24a8c;transform:scale(.97)}.richter-full-cell-note{pointer-events:none}.harmo-fullscreen-btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border-radius:8px;background:linear-gradient(180deg,#c9a24a2e,#c9a24a14);border:1px solid rgba(201,162,74,.55);color:#d9b366;font-size:.78rem;font-weight:700;cursor:pointer;transition:transform .15s,box-shadow .18s,background .15s,color .15s}.harmo-fullscreen-btn:hover{background:linear-gradient(180deg,#c9a24a47,#c9a24a24);color:#f4d488;box-shadow:0 0 12px #c9a24a59;transform:scale(1.04)}.harmo-fullscreen-btn:active{transform:scale(.97)}@media (max-width: 720px) and (orientation: portrait){.fs-instrument{padding:14px 12px 18px}.fs-instrument-grid{grid-template-columns:1fr;grid-template-rows:auto 1fr auto;gap:12px}.fs-instrument-rail{max-height:30vh;padding:12px}.fs-preset-grid{grid-template-columns:1fr 1fr}.fs-instrument-board{padding:8px}.richter-full-numbers,.richter-full-row{grid-template-columns:50px repeat(10,1fr);gap:3px}.richter-full-cell{font-size:1.3rem;min-height:48px}.richter-full-row-label{font-size:.62rem;padding-right:4px}}.midi-tab,.midi-btn:not(.primary),.midi-instr-btn,.midi-all-inst-btn,.midi-all-inst-toggle,.midi-track-btn,.midi-lib-folder-btn,.midi-lib-edit-btn,.midi-lib-tag-btn,.midi-lib-view-btn,.midi-mini-btn,.midi-subtab,.midi-viewmode-tab,.midi-section-toggle,.harmo-instrument-btn,.harmo-help-btn,.harmo-sustain-btn,.harmo-selector-btn,.harmo-fullscreen-btn,.harmo-hub-howto-tab,.harp-settings-btn,.harmo-hub-calc-tab,.harmo-hub-manual-btn,.harmo-hub-ref-chip,.harmo-hub-harp-chip,.bass-display-btn,.bass-tuning-btn,.bass-panel-tuning-btn,.bass-panel-hub-btn,.bass-riff-open-btn,.bass-hub-manual-btn,.bass-riff-card-toggle,.bass-chip,.sax-mode-btn,.sax-side-saxo-btn,.sax-selector-btn,.sax-transpose-btn,.sax-scope-toggle,.sax-reset-btn,.sax-calc-sax-btn,.sax-calc-chip,.sax-anatomy-toc-btn,.saxists-era-btn,.sax-riffs-filter-btn,.sax-key-picker-mode-btn,.sax-panel-mode-toggle,.sax-hub-manual-btn,.sax-mode-chip,.sax-key-picker-chip,.scale-collapse-toggle,.scale-compact-toggle,.scale-root-btn,.scale-hub-action-btn,.scale-hub-help-btn,.scale-diatonic-help-btn,.scale-play-btn,.scale-chip,.scale-suggestion-chip,.scale-hub-key-chip,.scale-diatonic-chip,.scale-song-match-chip,.hub-instrument-btn,.hub-scope-btn,.kbd-octave-btn,.kbd-all-inst-btn,.view-mode-btn,.song-transpose-btn,.list-sort-btn,.list-density-btn,.lyrics-inline-toggle,.chord-block-toggle,.chord-simplify-toggle,.chord-follow-toggle,.lang-switcher-btn,.report-error-btn,.undo-toast-btn,.collection-group-toggle,.topbar-collection-toggle,.right-panel-toggle,.selection-tab,.collapsible-toggle,.badge-btn,.midi-station-cta,.home-footer-btn,.hero-btn-ghost,.mini-hub-scale-fullscreen-btn,.mini-hub-scale-scope-btn,.mini-hub-scale-display-btn,.auth-pill,.playlist-tab,.home-progressions-keychip,.progression-chord-chip,.brand-logo-btn{background:var(--stage-btn-bg);border:1px solid var(--stage-btn-border);color:var(--stage-btn-text);box-shadow:var(--stage-btn-shadow);transition:background var(--dur-fast) var(--ease-snap),border-color var(--dur-fast) var(--ease-snap),color var(--dur-fast) var(--ease-snap),transform var(--dur-fast) var(--ease),box-shadow var(--dur) var(--ease)}.midi-tab:hover:not(.active):not(.is-active):not(:disabled),.midi-btn:not(.primary):hover:not(.is-active):not(:disabled),.midi-instr-btn:hover:not(.is-active):not(.active):not(:disabled),.midi-all-inst-btn:hover:not(:disabled),.midi-all-inst-toggle:hover:not(:disabled),.midi-track-btn:hover:not(.is-active):not(:disabled),.midi-lib-folder-btn:hover:not(.is-active):not(:disabled),.midi-lib-edit-btn:hover:not(:disabled),.midi-lib-tag-btn:hover:not(.is-active):not(:disabled),.midi-lib-view-btn:hover:not(.is-active):not(:disabled),.midi-mini-btn:hover:not(:disabled),.midi-subtab:hover:not(.is-active):not(:disabled),.midi-viewmode-tab:hover:not(.is-active):not(:disabled),.midi-section-toggle:hover:not(:disabled),.harmo-instrument-btn:hover:not(.is-open):not(:disabled),.harmo-help-btn:hover:not(:disabled),.harmo-sustain-btn:hover:not(.is-on):not(:disabled),.harmo-selector-btn:hover:not(:disabled),.harmo-fullscreen-btn:hover:not(:disabled),.harmo-hub-howto-tab:hover:not(.is-active):not(:disabled),.harp-settings-btn:hover:not(:disabled),.harmo-hub-calc-tab:hover:not(.is-active):not(:disabled),.harmo-hub-manual-btn:hover:not(:disabled),.harmo-hub-ref-chip:hover:not(.is-active):not(:disabled),.harmo-hub-harp-chip:hover:not(.is-active):not(:disabled),.bass-display-btn:hover:not(.is-active):not(:disabled),.bass-tuning-btn:hover:not(.is-active):not(:disabled),.bass-panel-tuning-btn:hover:not(:disabled),.bass-panel-hub-btn:hover:not(:disabled),.bass-riff-open-btn:hover:not(:disabled),.bass-hub-manual-btn:hover:not(:disabled),.bass-riff-card-toggle:hover:not(:disabled),.bass-chip:hover:not(.is-active):not(:disabled),.sax-mode-btn:hover:not(.is-active):not(:disabled),.sax-side-saxo-btn:hover:not(.is-active):not(:disabled),.sax-selector-btn:hover:not(:disabled),.sax-transpose-btn:hover:not(:disabled),.sax-scope-toggle:hover:not(:disabled),.sax-reset-btn:hover:not(:disabled),.sax-calc-sax-btn:hover:not(.is-active):not(:disabled),.sax-calc-chip:hover:not(.is-active):not(:disabled),.sax-anatomy-toc-btn:hover:not(:disabled),.saxists-era-btn:hover:not(.is-active):not(:disabled),.sax-riffs-filter-btn:hover:not(.is-active):not(:disabled),.sax-key-picker-mode-btn:hover:not(.is-active):not(:disabled),.sax-panel-mode-toggle:hover:not(:disabled),.sax-hub-manual-btn:hover:not(:disabled),.sax-mode-chip:hover:not(.is-active):not(:disabled),.sax-key-picker-chip:hover:not(.is-active):not(:disabled),.scale-collapse-toggle:hover:not(:disabled),.scale-compact-toggle:hover:not(:disabled),.scale-root-btn:hover:not(:disabled),.scale-hub-action-btn:hover:not(:disabled),.scale-hub-help-btn:hover:not(:disabled),.scale-diatonic-help-btn:hover:not(:disabled),.scale-play-btn:hover:not(:disabled),.scale-chip:hover:not(.is-active):not(:disabled),.scale-suggestion-chip:hover:not(.is-active):not(:disabled),.scale-hub-key-chip:hover:not(.is-active):not(:disabled),.scale-diatonic-chip:hover:not(.is-active):not(:disabled),.scale-song-match-chip:hover:not(:disabled),.hub-instrument-btn:hover:not(.is-active):not(:disabled),.hub-scope-btn:hover:not(.is-active):not(:disabled),.kbd-octave-btn:hover:not(:disabled),.kbd-all-inst-btn:hover:not(.is-open):not(:disabled),.view-mode-btn:hover:not(.is-active):not(:disabled),.song-transpose-btn:hover:not(:disabled),.list-sort-btn:hover:not(:disabled),.list-density-btn:hover:not(:disabled),.lyrics-inline-toggle:hover:not(.is-active):not(:disabled),.chord-block-toggle:hover:not(:disabled),.chord-simplify-toggle:hover:not(.is-active):not(:disabled),.chord-follow-toggle:hover:not(.is-active):not(:disabled),.lang-switcher-btn:hover:not(:disabled),.report-error-btn:hover:not(:disabled),.undo-toast-btn:hover:not(:disabled),.collection-group-toggle:hover:not(:disabled),.topbar-collection-toggle:hover:not(:disabled),.right-panel-toggle:hover:not(.is-open):not(:disabled),.selection-tab:hover:not(.is-active):not(:disabled),.collapsible-toggle:hover:not(:disabled),.badge-btn:hover:not(:disabled),.midi-station-cta:hover:not(:disabled),.home-footer-btn:hover:not(:disabled),.hero-btn-ghost:hover:not(:disabled),.mini-hub-scale-fullscreen-btn:hover:not(:disabled),.mini-hub-scale-scope-btn:hover:not(.is-active):not(:disabled),.mini-hub-scale-display-btn:hover:not(.is-active):not(:disabled),.auth-pill:hover:not(:disabled),.playlist-tab:hover:not(.is-active):not(:disabled),.home-progressions-keychip:hover:not(.is-active):not(:disabled),.progression-chord-chip:hover:not(.is-active):not(:disabled),.brand-logo-btn:hover:not(:disabled){background:var(--stage-btn-bg-hover);border-color:var(--stage-btn-border-hover);color:var(--stage-btn-text-hover);transform:translateY(-2px);box-shadow:var(--stage-btn-shadow-hover);filter:brightness(1.04) saturate(1.04)}.midi-tab.active,.midi-tab.is-active,.midi-btn:not(.primary).is-active,.midi-instr-btn.is-active,.midi-instr-btn.active,.midi-track-btn.is-active,.midi-lib-folder-btn.is-active,.midi-lib-tag-btn.is-active,.midi-lib-view-btn.is-active,.midi-subtab.is-active,.midi-viewmode-tab.is-active,.harmo-instrument-btn.is-open,.harmo-sustain-btn.is-on,.harmo-hub-howto-tab.is-active,.harmo-hub-calc-tab.is-active,.harmo-hub-ref-chip.is-active,.harmo-hub-harp-chip.is-active,.bass-display-btn.is-active,.bass-tuning-btn.is-active,.bass-chip.is-active,.sax-mode-btn.is-active,.sax-side-saxo-btn.is-active,.sax-calc-sax-btn.is-active,.sax-calc-chip.is-active,.saxists-era-btn.is-active,.sax-riffs-filter-btn.is-active,.sax-key-picker-mode-btn.is-active,.sax-mode-chip.is-active,.sax-key-picker-chip.is-active,.scale-chip.is-active,.scale-suggestion-chip.is-active,.scale-hub-key-chip.is-active,.scale-diatonic-chip.is-active,.hub-instrument-btn.is-active,.hub-scope-btn.is-active,.view-mode-btn.is-active,.lyrics-inline-toggle.is-active,.chord-simplify-toggle.is-active,.chord-follow-toggle.is-active,.kbd-all-inst-btn.is-open,.right-panel-toggle.is-open,.selection-tab.is-active,.mini-hub-scale-scope-btn.is-active,.mini-hub-scale-display-btn.is-active,.playlist-tab.is-active,.home-progressions-keychip.is-active,.progression-chord-chip.is-active{background:var(--stage-btn-bg-active);border:1px solid var(--stage-btn-border-active);color:var(--stage-btn-text-active);box-shadow:var(--stage-btn-shadow-active);text-shadow:0 1px 0 rgba(255,229,160,.35);transform:none}.midi-btn:not(.primary):disabled,.midi-instr-btn:disabled,.midi-track-btn:disabled,.midi-mini-btn:disabled,.scale-root-btn:disabled,.scale-chip:disabled,.view-mode-btn:disabled,.song-transpose-btn:disabled,.list-sort-btn:disabled{opacity:.42;cursor:not-allowed;transform:none;box-shadow:var(--stage-btn-shadow)}.midi-tab:active:not(.active):not(.is-active),.midi-btn:not(.primary):active:not(.is-active),.harmo-fullscreen-btn:active,.bass-display-btn:active,.sax-mode-btn:active,.scale-chip:active,.hub-instrument-btn:active,.kbd-octave-btn:active,.view-mode-btn:active:not(.is-active),.song-transpose-btn:active,.list-sort-btn:active,.lyrics-inline-toggle:active,.chord-block-toggle:active,.bass-hub-manual-btn:active,.harmo-hub-manual-btn:active,.sax-hub-manual-btn:active,.mini-hub-scale-fullscreen-btn:active{transform:translateY(0) scale(.985);filter:brightness(.96)}.kbd-octave-btn--prev:hover svg{transform:translate(-2px)}.kbd-octave-btn--next:hover svg{transform:translate(2px)}.harmo-hub-manual-btn:hover .harmo-hub-manual-btn-arrow,.sax-hub-manual-btn:hover .sax-hub-manual-btn-arrow,.bass-hub-manual-btn:hover .bass-hub-manual-btn-arrow{transform:translate(3px)}.hub-instrument-btn,.harmo-hub-manual-btn,.sax-hub-manual-btn,.bass-hub-manual-btn,.midi-station-cta,.hero-btn-ghost,.home-footer-btn{position:relative;isolation:isolate;overflow:hidden}.hub-instrument-btn:before,.harmo-hub-manual-btn:before,.sax-hub-manual-btn:before,.bass-hub-manual-btn:before,.midi-station-cta:before,.hero-btn-ghost:before,.home-footer-btn:before{content:"";position:absolute;inset:0 0 auto 0;height:45%;background:linear-gradient(180deg,#ffe5a024,#ffe5a000);pointer-events:none;z-index:0;opacity:.85;transition:opacity var(--dur) var(--ease);border-radius:inherit}.hub-instrument-btn>*,.harmo-hub-manual-btn>*,.sax-hub-manual-btn>*,.bass-hub-manual-btn>*,.midi-station-cta>*,.hero-btn-ghost>*,.home-footer-btn>*{position:relative;z-index:1}.hub-instrument-btn,.harmo-hub-manual-btn,.sax-hub-manual-btn,.bass-hub-manual-btn,.midi-station-cta,.home-footer-btn{background:linear-gradient(180deg,#d4af4f2e,#0f0c0859);border:1px solid rgba(212,175,79,.42);color:#f0e4c8;box-shadow:inset 0 1px #ffe5a038,0 2px 6px #00000073,0 0 0 1px #d4af4f14}.hero-btn-ghost{background:linear-gradient(180deg,#d4af4f24,#0a080573);border:1px solid rgba(212,175,79,.38);color:#f0e4c8}.hub-instrument-btn:hover:not(.is-open):not(:disabled),.harmo-hub-manual-btn:hover:not(:disabled),.sax-hub-manual-btn:hover:not(:disabled),.bass-hub-manual-btn:hover:not(:disabled),.midi-station-cta:hover:not(:disabled),.hero-btn-ghost:hover:not(:disabled),.home-footer-btn:hover:not(:disabled){background:linear-gradient(180deg,#ffd97052,#d4af4f1f);border-color:#ffd970d9;color:#ffd970;transform:translateY(-3px);box-shadow:inset 0 1px #ffe5a06b,0 14px 32px -8px #d4af4f8c,0 0 0 3px #d4af4f2e;filter:brightness(1.06) saturate(1.08)}.hub-instrument-btn:hover:before,.harmo-hub-manual-btn:hover:before,.sax-hub-manual-btn:hover:before,.bass-hub-manual-btn:hover:before,.midi-station-cta:hover:before,.hero-btn-ghost:hover:before,.home-footer-btn:hover:before{opacity:1;background:linear-gradient(180deg,#ffe5a03d,#ffe5a000)}.hub-instrument-btn.is-open{background:linear-gradient(180deg,#ffd970,#f0d488 30%,#d4af4f 70%,#a07c2c);border-color:#ffd970f2;color:#1a1208;box-shadow:0 0 22px #ffd9708c,inset 0 1px #ffe5a08c,inset 0 -6px 10px -8px #00000059;text-shadow:0 1px 0 rgba(255,229,160,.35)}.hub-instrument-btn.is-open:before{background:linear-gradient(180deg,#ffffff59,#fff0);opacity:1}.hub-instrument-btn.is-open .hub-instrument-label,.hub-instrument-btn.is-open .hub-instrument-desc,.hub-instrument-btn.is-open .hub-instrument-caret,.hub-instrument-btn.is-open .hub-instrument-icon{color:#1a1208}.home-progressions-keychip{background:linear-gradient(180deg,#d4af4f29,#0f0c084d);border:1px solid rgba(212,175,79,.35);color:#f0e4c8;box-shadow:inset 0 1px #ffd97029,0 1px 2px #00000059;transition:background var(--dur-fast) var(--ease-snap),border-color var(--dur-fast) var(--ease-snap),color var(--dur-fast) var(--ease-snap),transform var(--dur-fast) var(--ease),box-shadow var(--dur) var(--ease)}.home-progressions-keychip:hover:not(.is-active):not(:disabled){background:linear-gradient(180deg,#ffd9704d,#d4af4f1a);border-color:#ffd970bf;color:#ffd970;transform:translateY(-2px);box-shadow:inset 0 1px #ffe5a052,0 8px 20px -4px #d4af4f66,0 0 0 3px #d4af4f24}.home-progressions-keychip.is-active{background:linear-gradient(180deg,#ffd970,#f0d488 28%,#d4af4f 62%,#a07c2c);border-color:#ffd970f2;color:#1a1208;box-shadow:0 0 22px #ffd9708c,inset 0 1px #ffe5a08c,inset 0 -6px 10px -8px #00000059;text-shadow:0 1px 0 rgba(255,229,160,.35)}.progression-chord-chip{background:linear-gradient(180deg,#d4af4f24,#0a080559);border:1px solid rgba(212,175,79,.32);color:#f0e4c8;box-shadow:inset 0 1px #ffd97024,0 1px 2px #00000059}.progression-chord-chip:hover:not(.is-active):not(:disabled){background:linear-gradient(180deg,#ffd97047,#d4af4f1a);border-color:#ffd970bf;color:#ffd970;transform:translateY(-1px)}.brand-logo-btn{background:linear-gradient(180deg,#d4af4f1f,#0a080566);border:1px solid rgba(212,175,79,.3);box-shadow:inset 0 1px #ffd97024,0 1px 3px #00000059,0 0 0 1px #d4af4f0f}.brand-logo-btn:hover{background:linear-gradient(180deg,#ffd9703d,#d4af4f14);border-color:#ffd970b3;box-shadow:inset 0 1px #ffe5a047,0 6px 16px -4px #d4af4f66,0 0 0 3px #d4af4f24}.kbd-all-inst-btn{background:linear-gradient(180deg,#d4af4f24,#0a080566);border:1px solid rgba(212,175,79,.35);color:#f0e4c8;box-shadow:inset 0 1px #ffd97029,0 1px 3px #00000059}.kbd-all-inst-btn:hover:not(.is-open){background:linear-gradient(180deg,#ffd97047,#d4af4f1a);border-color:#ffd970bf;color:#ffd970;transform:translateY(-2px);box-shadow:inset 0 1px #ffe5a04d,0 8px 22px -6px #d4af4f73,0 0 0 3px #d4af4f24}.kbd-all-inst-btn.is-open{background:linear-gradient(180deg,#ffd970,#f0d488 30%,#d4af4f 70%,#a07c2c);border-color:#ffd970f2;color:#1a1208;text-shadow:0 1px 0 rgba(255,229,160,.35)}@keyframes stage-pulse{0%,to{box-shadow:0 0 22px #ffd9708c,inset 0 1px #ffe5a08c,inset 0 -6px 10px -8px #00000059,0 4px 12px -2px #d4af4f59}50%{box-shadow:0 0 32px #ffd970b3,inset 0 1px #ffe5a0a6,inset 0 -6px 10px -8px #00000059,0 6px 18px -2px #d4af4f80}}.hub-instrument-btn.is-open,.kbd-all-inst-btn.is-open,.home-progressions-keychip.is-active{animation:stage-pulse 2.8s ease-in-out infinite}@media (prefers-reduced-motion: reduce){.hub-instrument-btn.is-open,.kbd-all-inst-btn.is-open,.home-progressions-keychip.is-active{animation:none}}.playlist-tab{background:linear-gradient(180deg,#d4af4f1a,#0f0c084d);border:1px solid rgba(212,175,79,.22);color:#f4e8c8d9;box-shadow:inset 0 1px #ffd9701a,0 1px 2px #0000004d}.playlist-tab:hover:not(.is-active){background:linear-gradient(180deg,#ffd97038,#d4af4f0f);border-color:#ffd9708c;color:#ffd970;transform:translateY(-1px);box-shadow:inset 0 1px #ffe5a038,0 6px 16px -4px #d4af4f4d}.home-progressions-modeswitch{border-color:#d4af4f4d;background:linear-gradient(180deg,#d4af4f14,#0f0c084d);box-shadow:inset 0 1px #ffd9701a,0 1px 3px #00000059}.home-progressions-modeswitch button,.home-progressions-filter,.scale-hub-modeswitch button{background:linear-gradient(180deg,#d4af4f1a,#0f0c0840);border:1px solid rgba(212,175,79,.22);color:#f4e8c8e0;font-weight:700;letter-spacing:.02em;box-shadow:inset 0 1px #ffd9701f,0 1px 2px #0000004d;transition:background var(--dur-fast) var(--ease-snap),border-color var(--dur-fast) var(--ease-snap),color var(--dur-fast) var(--ease-snap),transform var(--dur-fast) var(--ease),box-shadow var(--dur) var(--ease)}.home-progressions-modeswitch button{border-radius:0;border-left:none;border-right:none;border-top:none;border-bottom:none;background:linear-gradient(180deg,#d4af4f1a,#0f0c0840);box-shadow:none}.home-progressions-modeswitch button+button{box-shadow:inset 1px 0 #d4af4f38}.home-progressions-modeswitch button:hover:not(.active),.home-progressions-filter:hover:not(.active),.scale-hub-modeswitch button:hover:not(.active){background:linear-gradient(180deg,#ffd9704d,#d4af4f14);color:#ffd970;transform:translateY(-1px);box-shadow:inset 0 1px #ffe5a047,0 4px 12px -2px #d4af4f4d}.home-progressions-modeswitch button.active,.home-progressions-filter.active,.scale-hub-modeswitch button.active{background:linear-gradient(180deg,#ffd970,#f0d488 28%,#d4af4f 62%,#a07c2c);border-color:#ffd970f2;color:#1a1208;box-shadow:0 0 18px #ffd97073,inset 0 1px #ffe5a08c,inset 0 -4px 8px -6px #0000004d;text-shadow:0 1px 0 rgba(255,229,160,.35)}.scale-hub-modeswitch{background:linear-gradient(180deg,#d4af4f14,#0f0c084d);border:1px solid rgba(212,175,79,.3);box-shadow:inset 0 1px #ffd9701a,0 1px 3px #00000059}.scale-hub-modeswitch button{border:none;border-radius:0;background:transparent;box-shadow:none}.scale-hub-modeswitch button+button{border-left:1px solid rgba(212,175,79,.22)!important}.progression-card{background:linear-gradient(180deg,#d4af4f14,#0a080559);border:1px solid rgba(212,175,79,.22);box-shadow:inset 0 1px #ffd9701a,0 4px 14px -4px #0006}.progression-card:hover{border-color:#ffd9708c;transform:translateY(-2px);box-shadow:inset 0 1px #ffe5a033,0 10px 26px -6px #d4af4f4d,0 0 0 3px #d4af4f1a}.progression-card.playing{border-color:#ffd970d9;background:linear-gradient(180deg,#d4af4f38,#0f0c084d);box-shadow:inset 0 1px #ffe5a04d,0 0 0 2px #d4af4f52,0 14px 32px -6px #d4af4f73,0 0 28px #ffd97052}.home-progressions-tempo{background:linear-gradient(180deg,#d4af4f1a,#0f0c0840);border:1px solid rgba(212,175,79,.28);box-shadow:inset 0 1px #ffd9701f,0 1px 3px #0000004d}.home-progressions-tempo:hover{border-color:#ffd9708c;background:linear-gradient(180deg,#ffd9702e,#d4af4f0d);box-shadow:inset 0 1px #ffe5a033,0 4px 12px -4px #d4af4f4d}.progression-play-btn{box-shadow:inset 0 1px #ffe5a08c,0 0 18px #ffd97066,0 4px 12px -2px #d4af4f66}.progression-play-btn:hover{box-shadow:inset 0 1px #ffe5a0a6,0 0 26px #ffd9708c,0 8px 20px -2px #d4af4f8c}@keyframes stage-shimmer-sweep{0%{transform:translate(-150%) skew(-20deg);opacity:0}20%{opacity:.35}60%{transform:translate(150%) skew(-20deg);opacity:.35}to{transform:translate(150%) skew(-20deg);opacity:0}}.hub-instrument-btn.is-open,.kbd-all-inst-btn.is-open,.home-progressions-keychip.is-active,.home-progressions-filter.active,.home-progressions-modeswitch button.active,.scale-hub-modeswitch button.active,.progression-card.playing{position:relative;overflow:hidden}.hub-instrument-btn.is-open:after,.kbd-all-inst-btn.is-open:after,.home-progressions-keychip.is-active:after,.home-progressions-filter.active:after,.home-progressions-modeswitch button.active:after,.scale-hub-modeswitch button.active:after,.progression-card.playing:after{content:"";position:absolute;top:0;left:0;width:40%;height:100%;background:linear-gradient(90deg,#fff0,#ffffff4d,#fff0);pointer-events:none;z-index:2;animation:stage-shimmer-sweep 4s ease-in-out infinite}@media (prefers-reduced-motion: reduce){.hub-instrument-btn.is-open:after,.kbd-all-inst-btn.is-open:after,.home-progressions-keychip.is-active:after,.home-progressions-filter.active:after,.home-progressions-modeswitch button.active:after,.scale-hub-modeswitch button.active:after,.progression-card.playing:after{display:none}}select,.mini-hub-scale-control-select,.fs-display-select{color-scheme:dark}select option,.mini-hub-scale-control-select option,.fs-display-select option{background:#1a1817;color:#f4e8c8}select option:checked,.mini-hub-scale-control-select option:checked,.fs-display-select option:checked{background:linear-gradient(180deg,#d4af4f,#a07c2c);color:#1a1208;font-weight:700}.home-mobile-intro{position:relative;isolation:isolate}.home-mobile-intro:before{content:"";position:absolute;inset:-10% 5% auto 5%;height:60%;background:radial-gradient(60% 80% at 50% 30%,rgba(255,217,112,.1) 0%,rgba(212,175,79,.04) 40%,transparent 70%);pointer-events:none;z-index:-1;filter:blur(8px)}.home-mobile-intro-logo{text-shadow:0 0 24px rgba(212,175,79,.22),0 0 8px rgba(255,229,160,.18),0 1px 0 rgba(0,0,0,.45);animation:stage-logo-glow 6s ease-in-out infinite}@keyframes stage-logo-glow{0%,to{text-shadow:0 0 24px rgba(212,175,79,.22),0 0 8px rgba(255,229,160,.18),0 1px 0 rgba(0,0,0,.45)}50%{text-shadow:0 0 32px rgba(255,217,112,.34),0 0 12px rgba(255,229,160,.28),0 1px 0 rgba(0,0,0,.45)}}@media (prefers-reduced-motion: reduce){.home-mobile-intro-logo{animation:none}}.home-mobile-intro-tagline{position:relative;font-style:italic;letter-spacing:.005em;color:#f4e8c8eb;padding-bottom:12px}.home-mobile-intro-tagline:after{content:"";position:absolute;left:50%;bottom:0;transform:translate(-50%);width:64px;height:1px;background:linear-gradient(90deg,#d4af4f00,#d4af4f8c,#d4af4f00)}.home-mobile-intro-instrument{background:linear-gradient(180deg,#d4af4f14,#0a08054d);border:1px solid rgba(212,175,79,.28);border-radius:14px;padding:10px;box-shadow:inset 0 1px #ffd97024,0 8px 24px -6px #00000073,0 0 0 1px #d4af4f0f}.home-mobile-intro-instrument-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.home-mobile-intro-instrument-row+.home-mobile-intro-instrument-row{margin-top:8px}.home-mobile-intro-instrument-row>button{position:relative;isolation:isolate;-webkit-appearance:none;-moz-appearance:none;appearance:none;padding:12px 6px;background:linear-gradient(180deg,#d4af4f1a,#0f0c084d);border:1px solid rgba(212,175,79,.24);border-radius:10px;color:#f4e8c8e0;font-family:inherit;font-size:.92rem;font-weight:700;letter-spacing:.015em;cursor:pointer;box-shadow:inset 0 1px #ffd97024,0 1px 3px #00000059;transition:background var(--dur-fast) var(--ease-snap),border-color var(--dur-fast) var(--ease-snap),color var(--dur-fast) var(--ease-snap),transform var(--dur-fast) var(--ease),box-shadow var(--dur) var(--ease);overflow:hidden}.home-mobile-intro-instrument-row>button:before{content:"";position:absolute;inset:0 0 auto 0;height:50%;background:linear-gradient(180deg,#ffe5a024,#ffe5a000);pointer-events:none;z-index:0;opacity:.8;transition:opacity var(--dur) var(--ease);border-radius:inherit}.home-mobile-intro-instrument-row>button>*{position:relative;z-index:1}.home-mobile-intro-instrument-row>button:hover:not(.active){background:linear-gradient(180deg,#ffd9704d,#d4af4f14);border-color:#ffd970b3;color:#ffd970;transform:translateY(-2px);box-shadow:inset 0 1px #ffe5a04d,0 8px 20px -4px #d4af4f61,0 0 0 3px #d4af4f1f}.home-mobile-intro-instrument-row>button:hover:not(.active):before{opacity:1}.home-mobile-intro-instrument-row>button.active{background:linear-gradient(180deg,#ffd970,#f0d488 28%,#d4af4f 62%,#a07c2c);border-color:#ffd970f2;color:#1a1208;box-shadow:0 0 22px #ffd97080,inset 0 1px #ffe5a08c,inset 0 -4px 8px -6px #0000004d,0 4px 14px -2px #d4af4f66;text-shadow:0 1px 0 rgba(255,229,160,.35)}.home-mobile-intro-instrument-row>button.active:before{background:linear-gradient(180deg,#ffffff59,#fff0);opacity:1}.home-mobile-intro-instrument-row>button.active:after{content:"";position:absolute;top:0;left:0;width:40%;height:100%;background:linear-gradient(90deg,#fff0,#ffffff4d,#fff0);pointer-events:none;z-index:2;animation:stage-shimmer-sweep 4s ease-in-out infinite}@media (prefers-reduced-motion: reduce){.home-mobile-intro-instrument-row>button.active:after{display:none}}.instrument-switch.topbar-instrument-switch>button:not(.active){background:linear-gradient(180deg,#d4af4f1a,#0f0c0859);border:1px solid rgba(212,175,79,.22);color:#f4e8c8e0;box-shadow:inset 0 1px #ffd9701f,0 1px 3px #0000004d;transition:background var(--dur-fast) var(--ease-snap),border-color var(--dur-fast) var(--ease-snap),color var(--dur-fast) var(--ease-snap),transform var(--dur-fast) var(--ease),box-shadow var(--dur) var(--ease)}.instrument-switch.topbar-instrument-switch>button:not(.active):hover{background:linear-gradient(180deg,#ffd97047,#d4af4f14);border-color:#ffd970a6;color:#ffd970;transform:translateY(-1px);box-shadow:inset 0 1px #ffe5a042,0 6px 16px -4px #d4af4f52}@media (max-width: 700px) and (orientation: portrait){.fs-instrument>.fs-instrument-board{flex:0 0 auto;min-height:0;max-height:35vh;padding:4px 8px}.fs-instrument-board>*{height:auto;width:100%;max-height:35vh}.fs-instrument-board svg{width:100%;height:auto;max-height:35vh;display:block}}.home-scale-mobile-launcher{display:none}@media (max-width: 1024px){.home-mini-hub-standalone{display:none}.home-scale-mobile-launcher{display:flex;justify-content:center;margin:-2px 0 14px}}.mini-hub-scale-fullscreen-btn--embedded{position:relative;isolation:isolate;overflow:hidden;display:inline-flex;align-items:center;gap:10px;padding:9px 18px 9px 14px;border-radius:999px;background:linear-gradient(180deg,#d4af4f29,#0f0c084d);border:1px solid rgba(212,175,79,.42);color:#f0e4c8;font-family:inherit;font-size:.92rem;font-weight:700;letter-spacing:.025em;cursor:pointer;box-shadow:inset 0 1px #ffd9702e,0 4px 12px -2px #00000059,0 0 0 1px #d4af4f0f;transition:background var(--dur-fast) var(--ease-snap),border-color var(--dur-fast) var(--ease-snap),color var(--dur-fast) var(--ease-snap),transform var(--dur-fast) var(--ease),box-shadow var(--dur) var(--ease)}.mini-hub-scale-fullscreen-btn--embedded:before{content:"";position:absolute;inset:0 0 auto 0;height:50%;background:linear-gradient(180deg,#ffe5a029,#ffe5a000);pointer-events:none;z-index:0;border-radius:inherit}.mini-hub-scale-fullscreen-btn--embedded>*{position:relative;z-index:1}.mini-hub-scale-fullscreen-btn--embedded svg{flex-shrink:0;color:#ffd970}.mini-hub-scale-fullscreen-btn--embedded .mini-hub-scale-fullscreen-label:after{content:" › station de scène";font-style:italic;font-weight:400;opacity:.7;margin-left:4px}.mini-hub-scale-fullscreen-btn--embedded:hover,.mini-hub-scale-fullscreen-btn--embedded:focus-visible{background:linear-gradient(180deg,#ffd97052,#d4af4f1a);border-color:#ffd970d9;color:#ffd970;transform:translateY(-2px);box-shadow:inset 0 1px #ffe5a04d,0 10px 24px -4px #d4af4f6b,0 0 0 3px #d4af4f24;outline:none}.mini-hub-scale-fullscreen-btn--embedded:active{transform:translateY(0) scale(.985);filter:brightness(.96)}.scale-keyboard-card{position:relative;background:linear-gradient(180deg,#d4af4f1a,#0f0c0859)!important;border:1px solid rgba(212,175,79,.28)!important;box-shadow:inset 0 1px #ffd97024,0 8px 22px -6px #0006,0 0 0 1px #d4af4f0f!important;transition:border-color var(--dur-fast) var(--ease-snap),box-shadow var(--dur) var(--ease)}.scale-keyboard-card:hover{border-color:#d4af4f73!important;box-shadow:inset 0 1px #ffe5a038,0 14px 32px -6px #00000080,0 0 0 1px #d4af4f24,0 0 32px -10px #d4af4f38!important}@media (max-width: 700px) and (orientation: portrait){.scale-keyboard-card{margin:12px 0 14px!important;padding:12px 12px 14px!important}.scale-piano{max-height:160px}.scale-piano.size-full,.scale-piano:not(.size-mini):not(.size-compact){--piano-key-h: 120px}.scale-piano svg{width:100%!important;height:auto!important;max-height:160px;display:block}.scale-piano .piano-key-label{font-size:.58rem!important}.scale-piano .piano-key.black .piano-key-label{font-size:.5rem!important}.guitar-fretboard-scale,.ukulele-fretboard-scale{max-height:200px;overflow:hidden}.guitar-fretboard-scale svg,.ukulele-fretboard-scale svg{width:100%!important;height:auto!important;max-height:200px;display:block}.home-scale .home-section-header{margin-bottom:6px}.scale-hub-toolbar{gap:8px}.scale-keyboard-card .scale-suggestions,.scale-keyboard-card .scale-character-card{padding:8px 10px;font-size:.78rem}}.home-mobile-intro-tagline{text-shadow:0 0 18px rgba(212,175,79,.12),0 1px 0 rgba(0,0,0,.45);padding:4px 12px 16px!important}@media (max-width: 700px) and (orientation: portrait){.home-mobile-intro{padding:18px 12px 14px}.home-mobile-intro-logo{font-size:2rem}.home-mobile-intro-tagline{font-size:.92rem;line-height:1.45}.home-mobile-intro-instrument{box-shadow:inset 0 1px #ffd97033,0 10px 28px -8px #00000080,0 0 0 1px #d4af4f1a,0 0 32px -10px #d4af4f2e}}input:focus,textarea:focus,select:focus,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:none;border-color:#d4af4fbf!important;box-shadow:0 0 0 3px #d4af4f2e,inset 0 1px #ffd9701a!important}input::placeholder,textarea::placeholder{color:#f4e8c866;font-style:italic}.lyrics-toggle{background:linear-gradient(180deg,#d4af4f24,#0f0c084d)!important;border:1px solid rgba(212,175,79,.32)!important;color:#f4e8c8eb!important;box-shadow:inset 0 1px #ffd97024,0 2px 6px #0006!important;transition:background var(--dur-fast) var(--ease-snap),border-color var(--dur-fast) var(--ease-snap),color var(--dur-fast) var(--ease-snap),transform var(--dur-fast) var(--ease),box-shadow var(--dur) var(--ease)}.lyrics-toggle:hover{background:linear-gradient(180deg,#ffd97047,#d4af4f14)!important;border-color:#ffd970b3!important;color:#ffd970!important;transform:translateY(-1px);box-shadow:inset 0 1px #ffe5a042,0 6px 16px -4px #d4af4f52!important}.section-card{position:relative;border:1px solid rgba(212,175,79,.16);box-shadow:inset 0 1px #ffd9700f,0 4px 14px -6px #00000059;transition:border-color var(--dur-fast) var(--ease-snap),box-shadow var(--dur) var(--ease)}.section-card:hover{border-color:#d4af4f52;box-shadow:inset 0 1px #ffd9701a,0 8px 22px -6px #0006}.song-key-pill,.song-midi-pill,.song-confidence{background:linear-gradient(180deg,#d4af4f29,#0f0c0833);border:1px solid rgba(212,175,79,.35);box-shadow:inset 0 1px #ffd9701a,0 1px 2px #0000004d}input[type=range]::-webkit-slider-thumb{background:linear-gradient(180deg,#ffd970,#d4af4f 60%,#a07c2c);box-shadow:inset 0 1px #ffe5a08c,0 0 0 2px #d4af4f33,0 2px 6px #00000073}input[type=range]::-moz-range-thumb{background:linear-gradient(180deg,#ffd970,#d4af4f 60%,#a07c2c);border:none;box-shadow:inset 0 1px #ffe5a08c,0 0 0 2px #d4af4f33,0 2px 6px #00000073}input[type=range]::-moz-range-progress{background:linear-gradient(90deg,#d4af4f8c,#ffd970bf)}input[type=checkbox],input[type=radio]{accent-color:var(--accent)}.brand-logo-btn{position:relative}.brand-logo-btn:hover{filter:brightness(1.08) saturate(1.08)}.home-quote{position:relative;isolation:isolate;overflow:hidden;background:linear-gradient(135deg,#d4af4f29,#281c0c8c 45%,#0f0c08a6)!important;border:1px solid rgba(212,175,79,.42)!important;border-radius:var(--r-lg)!important;padding:32px 36px!important;box-shadow:inset 0 1px #ffd97038,inset 0 -1px #0000004d,0 16px 40px -8px #d4af4f33,0 0 0 1px #d4af4f1a,0 0 60px -10px #ffd9702e!important;animation:home-quote-glow 7s ease-in-out infinite}.home-quote:before,.home-quote:after{content:"“";position:absolute;font-family:Cormorant Garamond,Playfair Display,serif;font-size:12rem;font-weight:700;font-style:italic;line-height:.8;color:#ffd9701a;pointer-events:none;z-index:0;text-shadow:0 0 24px rgba(212,175,79,.25)}.home-quote:before{top:-12px;left:8px}.home-quote:after{content:"”";bottom:-64px;right:12px}.home-quote blockquote{position:relative;z-index:1;color:#f4e8c8!important;text-shadow:0 0 24px rgba(212,175,79,.22),0 0 8px rgba(255,229,160,.18),0 1px 0 rgba(0,0,0,.45)}.home-quote cite{position:relative;z-index:1;color:#ffd970!important;text-shadow:0 0 12px rgba(255,217,112,.4),0 1px 0 rgba(0,0,0,.45);padding:6px 0 4px}.home-quote cite:after{content:"";position:absolute;left:50%;bottom:-4px;transform:translate(-50%);width:80px;height:1px;background:linear-gradient(90deg,#d4af4f00,#ffd970b3,#d4af4f00)}@keyframes home-quote-glow{0%,to{box-shadow:inset 0 1px #ffd97038,inset 0 -1px #0000004d,0 16px 40px -8px #d4af4f33,0 0 0 1px #d4af4f1a,0 0 60px -10px #ffd9702e}50%{box-shadow:inset 0 1px #ffe5a04d,inset 0 -1px #0000004d,0 20px 48px -8px #d4af4f47,0 0 0 1px #d4af4f29,0 0 80px -8px #ffd97047}}@media (prefers-reduced-motion: reduce){.home-quote{animation:none}}.sax-block{position:relative;background:linear-gradient(180deg,#d4af4f1a,#0f0c0866)!important;border:1px solid rgba(212,175,79,.28)!important;box-shadow:inset 0 1px #ffd97024,0 4px 14px -4px #0006,0 0 0 1px #d4af4f0d!important;transition:border-color var(--dur-fast) var(--ease-snap),box-shadow var(--dur) var(--ease),transform var(--dur-fast) var(--ease)}.sax-block:hover{border-color:#d4af4f73!important;box-shadow:inset 0 1px #ffe5a038,0 10px 28px -6px #00000080,0 0 0 1px #d4af4f29,0 0 28px -8px #d4af4f33!important}.sax-block-title{position:relative;text-shadow:0 0 12px rgba(212,175,79,.3),0 1px 0 rgba(0,0,0,.45);padding-bottom:6px}.sax-block-title:after{content:"";position:absolute;left:0;bottom:0;width:48px;height:1px;background:linear-gradient(90deg,#d4af4f8c,#d4af4f00)}.saxist-card{background:linear-gradient(180deg,#d4af4f14,#0a08054d)!important;border:1px solid rgba(212,175,79,.22)!important;box-shadow:inset 0 1px #ffd9701a,0 2px 8px #0000004d!important;transition:border-color var(--dur-fast) var(--ease-snap),background var(--dur-fast) var(--ease-snap),transform var(--dur-fast) var(--ease),box-shadow var(--dur) var(--ease)}.saxist-card:hover{background:linear-gradient(180deg,#ffd97029,#d4af4f0d)!important;border-color:#ffd9708c!important;transform:translateY(-2px);box-shadow:inset 0 1px #ffe5a038,0 10px 24px -6px #d4af4f4d,0 0 0 3px #d4af4f1a!important}.saxist-card.is-expanded{background:linear-gradient(180deg,#d4af4f33,#0f0c0866)!important;border-color:#ffd970b3!important;box-shadow:inset 0 1px #ffe5a047,0 12px 28px -6px #d4af4f52,0 0 0 2px #d4af4f2e,0 0 32px -8px #ffd97038!important}.sax-hub-manual-btn{position:relative}.sax-hub-manual-btn:before{content:"";position:absolute;inset:0 0 auto 0;height:45%;background:linear-gradient(180deg,#ffe5a024,#ffe5a000);pointer-events:none;z-index:0;opacity:.85;transition:opacity var(--dur) var(--ease);border-radius:inherit}.sax-hub-manual-btn>*{position:relative;z-index:1}.sax-hub-manual-btn:hover:before{opacity:1}.sax-block-diagram svg{filter:drop-shadow(0 0 14px rgba(212,175,79,.18)) drop-shadow(0 4px 12px rgba(0,0,0,.45));transition:filter var(--dur) var(--ease)}.sax-block-diagram:hover svg{filter:drop-shadow(0 0 22px rgba(212,175,79,.32)) drop-shadow(0 6px 16px rgba(0,0,0,.5))}.fs-stage-row-top{display:flex;align-items:stretch;gap:10px;flex-wrap:wrap}.fs-stage-row-top>.fs-transport{flex:0 0 auto}.fs-stage-row-top>.fs-key-block{flex:1 1 260px;min-width:0}.fs-stage-row-arps{display:flex;align-items:stretch;gap:10px;flex-wrap:wrap}.fs-stage-row-arps>.fs-arp{flex:1 1 0;min-width:0}.fs-key-block{display:flex;flex-direction:column;gap:7px;background:linear-gradient(135deg,#1e1206f2,#120a03fa);border:1px solid rgba(201,162,74,.3);border-radius:10px;padding:10px 14px;box-shadow:inset 0 1px #c9a24a1f,0 2px 12px #00000073}.fs-key-block-main{display:flex;align-items:baseline;gap:12px;line-height:1}.fs-key-block-note{font-size:clamp(2.6rem,5vw,4.2rem);font-weight:900;color:#f4e8c8;letter-spacing:-.02em;text-shadow:0 0 20px rgba(201,162,74,.55),0 0 40px rgba(201,162,74,.2);font-variant-numeric:tabular-nums;min-width:3ch}.fs-key-block-mode-label{font-size:1.1rem;font-weight:700;color:#c9a24abf;letter-spacing:.04em;text-transform:uppercase}.fs-key-block-mode{display:flex;gap:4px}.fs-key-block-mode-btn{flex:1;padding:5px 10px;border:1px solid rgba(201,162,74,.22);border-radius:6px;background:transparent;color:#f4e8c880;font-size:.78rem;font-weight:600;letter-spacing:.05em;cursor:pointer;transition:background .15s,color .15s,border-color .15s}.fs-key-block-mode-btn:hover{color:#f4d488;border-color:#c9a24a66}.fs-key-block-mode-btn.is-active{background:linear-gradient(135deg,#c9a24a,#a07830);border-color:#c9a24a;color:#1a0a04;font-weight:800;box-shadow:0 0 8px #c9a24a4d}.fs-key-block-chromatic{display:flex;gap:3px;flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;padding-bottom:2px}.fs-key-block-chromatic::-webkit-scrollbar{display:none}.fs-key-block-note-chip{flex:0 0 auto;min-width:32px;padding:5px 4px;border:1px solid rgba(201,162,74,.18);border-radius:5px;background:#ffffff08;color:#f4e8c88c;font-size:.68rem;font-weight:600;letter-spacing:-.01em;cursor:pointer;text-align:center;transition:background .12s,color .12s,border-color .12s}.fs-key-block-note-chip.is-sharp{color:#f4e8c861;background:#ffffff03}.fs-key-block-note-chip:hover{color:#f4d488;border-color:#c9a24a61;background:#c9a24a14}.fs-key-block-note-chip.is-active{background:linear-gradient(135deg,#c9a24a,#a07830);border-color:#c9a24a;color:#1a0a04;font-weight:800;box-shadow:0 0 6px #c9a24a59}.fs-arp-power--2.is-on{background:linear-gradient(135deg,#8250c840,#5a28a026);border-color:#a064f099;color:#c8a8f8}.fs-arp-power--2.is-on .fs-arp-power-dot{background:#b080f0;box-shadow:0 0 6px 2px #a064f099;animation:fs-arp2-pulse 1.2s ease-in-out infinite}@keyframes fs-arp2-pulse{0%,to{opacity:1}50%{opacity:.45}}.fs-bass{background:linear-gradient(135deg,#0c1626f2,#060e1afa);border:1px solid rgba(70,140,220,.25);border-radius:8px;padding:8px 10px;box-shadow:inset 0 1px #468cdc1a}.fs-comp{background:linear-gradient(135deg,#261a0cf2,#1a1006fa);border:1px solid rgba(220,160,70,.25);border-radius:8px;padding:8px 10px;box-shadow:inset 0 1px #dca0461a}.fs-comp-head{display:flex;align-items:baseline;gap:8px;margin-bottom:5px}.fs-comp-kicker{font-size:.6rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:#dca046bf}.fs-comp-current{display:flex;align-items:baseline;gap:5px;font-size:.72rem}.fs-comp-current-cat{color:#e6c8a08c;font-size:.62rem;font-weight:600}.fs-comp-current-name{color:#f0c078;font-weight:700}.fs-comp-current-div{color:#e6c8a08c;font-size:.62rem}.fs-comp-row{display:flex;align-items:center;gap:7px;flex-wrap:wrap}.fs-comp-power{display:flex;flex-direction:column;align-items:center;gap:4px;padding:7px 10px;min-width:52px;border:1px solid rgba(220,160,70,.3);border-radius:7px;background:#ffffff08;color:#ebc8968c;cursor:pointer;transition:background .15s,border-color .15s,color .15s}.fs-comp-power:hover{border-color:#dca04680}.fs-comp-power-dot{width:8px;height:8px;border-radius:50%;background:#dca0464d;transition:background .2s,box-shadow .2s}.fs-comp-power-label{font-size:.6rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase}.fs-comp-power.is-on{background:linear-gradient(135deg,#c88c2840,#8c5a1426);border-color:#dca046a6;color:#f0c078}.fs-comp-power.is-on .fs-comp-power-dot{background:#f0a840;box-shadow:0 0 6px 2px #dca046a6;animation:fs-bass-pulse 1.4s ease-in-out infinite}.fs-comp-strip{display:flex;gap:4px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;flex:1 1 0;min-width:0}.fs-comp-strip::-webkit-scrollbar{display:none}.fs-comp-pattern{flex:0 0 auto;display:flex;flex-direction:column;align-items:center;gap:1px;padding:5px 8px;border:1px solid rgba(220,160,70,.18);border-radius:6px;background:#ffffff08;cursor:pointer;scroll-snap-align:start;transition:background .12s,border-color .12s;min-width:56px}.fs-comp-pattern-cat{font-size:.52rem;color:#dcb98c80;font-weight:600;text-transform:uppercase;letter-spacing:.06em}.fs-comp-pattern-name{font-size:.7rem;font-weight:700;color:#ebd2aabf}.fs-comp-pattern-div{font-size:.52rem;color:#dcb98c73}.fs-comp-pattern:hover{background:#dca04614;border-color:#dca0464d}.fs-comp-pattern:hover .fs-comp-pattern-cat,.fs-comp-pattern:hover .fs-comp-pattern-div{color:#ebd7afb3}.fs-comp-pattern.is-active{background:linear-gradient(135deg,#d2963273,#a0691e59);border-color:#ebaf5abf}.fs-comp-pattern.is-active .fs-comp-pattern-cat,.fs-comp-pattern.is-active .fs-comp-pattern-name,.fs-comp-pattern.is-active .fs-comp-pattern-div{color:#fff0e0}.fs-comp-presets{display:flex;gap:3px;flex-wrap:wrap}.fs-comp-preset-chip{padding:4px 8px;border:1px solid rgba(220,160,70,.22);border-radius:5px;background:transparent;color:#ebc8968c;font-size:.65rem;font-weight:600;cursor:pointer;transition:background .12s,color .12s,border-color .12s}.fs-comp-preset-chip:hover{color:#f0c078;border-color:#dca04673}.fs-comp-preset-chip.is-active{background:linear-gradient(135deg,#d2963273,#a0691e4d);border-color:#ebaf5ab3;color:#ffe4c8;font-weight:700}.fs-comp-group{display:flex;align-items:center;gap:4px;padding:4px 8px;border:1px solid rgba(220,160,70,.18);border-radius:6px;background:#ffffff05}.fs-comp-group-label{font-size:.58rem;font-weight:700;letter-spacing:.08em;color:#dcb98c8c;text-transform:uppercase;margin-right:2px}.fs-bass-head{display:flex;align-items:baseline;gap:8px;margin-bottom:5px}.fs-bass-kicker{font-size:.6rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:#468cdcb3}.fs-bass-current{display:flex;align-items:baseline;gap:5px;font-size:.72rem}.fs-bass-current-cat{color:#a0bee68c;font-size:.62rem;font-weight:600}.fs-bass-current-name{color:#90c8ff;font-weight:700}.fs-bass-current-div{color:#a0bee68c;font-size:.62rem}.fs-bass-row{display:flex;align-items:center;gap:7px;flex-wrap:wrap}.fs-bass-power{display:flex;flex-direction:column;align-items:center;gap:4px;padding:7px 10px;min-width:52px;border:1px solid rgba(70,140,220,.3);border-radius:7px;background:#ffffff08;color:#a0c8ff8c;cursor:pointer;transition:background .15s,border-color .15s,color .15s}.fs-bass-power:hover{border-color:#468cdc80}.fs-bass-power-dot{width:8px;height:8px;border-radius:50%;background:#468cdc4d;transition:background .2s,box-shadow .2s}.fs-bass-power-label{font-size:.6rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase}.fs-bass-power.is-on{background:linear-gradient(135deg,#2864c840,#143c8c26);border-color:#468cdca6;color:#90c8ff}.fs-bass-power.is-on .fs-bass-power-dot{background:#5090f0;box-shadow:0 0 6px 2px #468cdca6;animation:fs-bass-pulse 1.4s ease-in-out infinite}@keyframes fs-bass-pulse{0%,to{opacity:1}50%{opacity:.4}}.fs-bass-strip{display:flex;gap:4px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;flex:1 1 0;min-width:0}.fs-bass-strip::-webkit-scrollbar{display:none}.fs-bass-pattern{flex:0 0 auto;display:flex;flex-direction:column;align-items:center;gap:1px;padding:5px 8px;border:1px solid rgba(70,140,220,.18);border-radius:6px;background:#ffffff08;cursor:pointer;scroll-snap-align:start;transition:background .12s,border-color .12s;min-width:56px}.fs-bass-pattern-cat{font-size:.52rem;color:#8cb4e680;font-weight:600;text-transform:uppercase;letter-spacing:.06em}.fs-bass-pattern-name{font-size:.7rem;font-weight:700;color:#b4d2ffbf}.fs-bass-pattern-div{font-size:.52rem;color:#8cb4e673}.fs-bass-pattern:hover{background:#468cdc14;border-color:#468cdc4d}.fs-bass-pattern:hover .fs-bass-pattern-cat,.fs-bass-pattern:hover .fs-bass-pattern-div{color:#b4d7ffb3}.fs-bass-pattern.is-active{background:linear-gradient(135deg,#326ed273,#1e4ba059);border-color:#5a96ebbf}.fs-bass-pattern.is-active .fs-bass-pattern-cat,.fs-bass-pattern.is-active .fs-bass-pattern-name,.fs-bass-pattern.is-active .fs-bass-pattern-div{color:#e0eeff}.fs-bass-presets{display:flex;gap:3px;flex-wrap:wrap}.fs-bass-preset-chip{padding:4px 8px;border:1px solid rgba(70,140,220,.22);border-radius:5px;background:transparent;color:#a0c8ff8c;font-size:.65rem;font-weight:600;cursor:pointer;transition:background .12s,color .12s,border-color .12s}.fs-bass-preset-chip:hover{color:#90c8ff;border-color:#468cdc73}.fs-bass-preset-chip.is-active{background:linear-gradient(135deg,#326ed273,#1e4ba04d);border-color:#5a96ebb3;color:#c8e4ff;font-weight:700}.fs-bass-group{display:flex;align-items:center;gap:4px;padding:4px 8px;border:1px solid rgba(70,140,220,.18);border-radius:6px;background:#ffffff05}.fs-bass-group-label{font-size:.58rem;font-weight:700;letter-spacing:.08em;color:#8cb4e68c;text-transform:uppercase;margin-right:2px}.fs-bass-vol{display:flex;align-items:center;gap:5px;white-space:nowrap}.fs-bass-vol-label{font-size:.58rem;font-weight:700;letter-spacing:.08em;color:#8cb4e68c;text-transform:uppercase}.fs-bass-vol-slider{width:60px;accent-color:#5090f0}.fs-bass-vol-value{font-size:.62rem;color:#a0c8ffa6;font-variant-numeric:tabular-nums;min-width:2ch}@keyframes fs-tap-flash{0%{background:#c9a24a73;box-shadow:0 0 12px #c9a24a8c}to{background:transparent;box-shadow:none}}.fs-transport-tap.is-flash{animation:fs-tap-flash .2s ease-out forwards;color:#ffe0a0}.fs-transport-tap-label{display:block;line-height:1}.fs-transport-tap-count{display:block;font-size:.52rem;font-weight:700;letter-spacing:.05em;color:#c9a24abf;line-height:1;margin-top:2px}.fs-transport-tapmode{display:flex;flex-direction:column;gap:2px}.fs-transport-tapmode-btn{padding:3px 6px;border:1px solid rgba(201,162,74,.2);border-radius:4px;background:transparent;color:#f4e8c866;font-size:.6rem;font-weight:700;cursor:pointer;line-height:1;transition:background .12s,color .12s,border-color .12s}.fs-transport-tapmode-btn:hover{color:#f4d488;border-color:#c9a24a73}.fs-transport-tapmode-btn.is-active{background:#c9a24a33;border-color:#c9a24a8c;color:#f4d488}@media (max-width: 600px){.fs-stage-row-top{flex-wrap:wrap}.fs-stage-row-top>.fs-key-block{flex:1 1 100%}.fs-stage-row-arps{flex-direction:column}.fs-key-block-note{font-size:2.4rem}.fs-bass-strip{max-width:100%}.fs-bass-presets{gap:2px}.fs-bass-preset-chip{font-size:.6rem;padding:3px 5px}}.fs-arp-edit-btn{display:flex;align-items:center;gap:4px;margin-left:auto;padding:4px 9px;border:1px solid rgba(201,162,74,.22);border-radius:6px;background:transparent;color:#f4e8c880;font-size:.62rem;font-weight:700;letter-spacing:.05em;cursor:pointer;transition:background .15s,color .15s,border-color .15s;white-space:nowrap}.fs-arp-edit-btn:hover{color:#f4d488;border-color:#c9a24a6b;background:#c9a24a0f}.fs-arp-edit-btn.is-open{color:#f4d488;border-color:#c9a24a8c;background:#c9a24a1a}.fs-arp-edit-btn.is-custom-active{color:#fc4;border-color:#ffc83c8c;background:#ffb4281f;box-shadow:0 0 6px #ffb42833}.arp-editor{margin-top:8px;padding:10px 12px;background:#080502bf;border:1px solid rgba(201,162,74,.2);border-radius:8px;display:flex;flex-direction:column;gap:8px}.arp-editor-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.arp-editor-kicker{font-size:.6rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:#c9a24aa6;margin-right:4px}.arp-editor-ctrl{display:flex;align-items:center;gap:3px;padding:3px 7px;border:1px solid rgba(201,162,74,.15);border-radius:6px;background:#ffffff05}.arp-editor-ctrl-label{font-size:.56rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#c9a24a80;margin-right:3px}.arp-editor-chip{padding:3px 7px;border:1px solid rgba(201,162,74,.18);border-radius:4px;background:transparent;color:#f4e8c873;font-size:.62rem;font-weight:600;cursor:pointer;transition:all .12s}.arp-editor-chip:hover{color:#f4d488;border-color:#c9a24a66}.arp-editor-chip.is-active{background:#c9a24a38;border-color:#c9a24a99;color:#f4e8c8;font-weight:700}.arp-editor-clear{padding:4px 9px;border:1px solid rgba(200,80,60,.3);border-radius:5px;background:transparent;color:#ff82648c;font-size:.6rem;font-weight:600;cursor:pointer;margin-left:auto;transition:all .12s}.arp-editor-clear:hover{color:#f97;border-color:#c8503c8c}.arp-editor-launch{padding:5px 14px;border:1px solid rgba(201,162,74,.35);border-radius:6px;background:#c9a24a14;color:#f4d488;font-size:.68rem;font-weight:800;letter-spacing:.06em;cursor:pointer;transition:all .15s}.arp-editor-launch:hover{background:#c9a24a2e;border-color:#c9a24a99;box-shadow:0 0 8px #c9a24a40}.arp-editor-launch.is-active{background:linear-gradient(135deg,#c9a24a,#a07830);border-color:#c9a24a;color:#1a0a04;box-shadow:0 0 10px #c9a24a66}.arp-editor-launch.is-pending{animation:arp-editor-pending .8s ease-in-out infinite alternate}@keyframes arp-editor-pending{0%{opacity:.6}to{opacity:1;box-shadow:0 0 12px #c9a24a80}}.arp-editor-legend{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.arp-editor-legend-item{font-size:.57rem;font-weight:700;padding:2px 6px;border-radius:3px}.arp-editor-legend-item.is-root{background:#c9a24a40;color:#f4d488}.arp-editor-legend-item.is-third{background:#e8823c40;color:#f0a060}.arp-editor-legend-item.is-fifth{background:#46b4c838;color:#80d8e8}.arp-editor-legend-item.is-oct{background:#c8a0ff38;color:#d0b8ff}.arp-editor-legend-sep{color:#f4e8c840}.arp-editor-legend-hint{font-size:.55rem;color:#f4e8c84d;font-style:italic}.arp-editor-grid{display:flex;flex-direction:column;gap:4px;overflow-x:auto;scrollbar-width:thin;scrollbar-color:rgba(201,162,74,.3) transparent}.arp-editor-grid::-webkit-scrollbar{height:4px}.arp-editor-grid::-webkit-scrollbar-thumb{background:#c9a24a4d;border-radius:2px}.arp-editor-beat{display:flex;align-items:center;gap:3px;min-width:max-content}.arp-editor-beat-num{font-size:.58rem;font-weight:800;color:#c9a24a73;width:12px;text-align:right;flex-shrink:0}.arp-editor-beat-steps{display:flex;gap:2px}.arp-editor-step{width:34px;height:34px;border:1px solid rgba(255,255,255,.08);border-radius:5px;background:#ffffff0a;color:transparent;cursor:pointer;position:relative;display:flex;align-items:center;justify-content:center;transition:border-color .1s,background .1s;touch-action:none;user-select:none;-webkit-user-select:none}.arp-editor-step.is-downbeat{border-left:2px solid rgba(201,162,74,.3)}.arp-editor-step:hover{border-color:#c9a24a4d;background:#c9a24a0f}.arp-editor-step.is-on{color:#0a0908e6}.arp-editor-step.is-root{background:linear-gradient(135deg,#c9a24a,#a07830);border-color:#c9a24a;box-shadow:0 0 5px #c9a24a59}.arp-editor-step.is-third{background:linear-gradient(135deg,#e8823e,#c05e28);border-color:#e8823e;box-shadow:0 0 5px #e8823e4d}.arp-editor-step.is-fifth{background:linear-gradient(135deg,#46b8c9,#2e8e9e);border-color:#46b8c9;box-shadow:0 0 5px #46b8c94d}.arp-editor-step.is-oct{background:linear-gradient(135deg,#b890f0,#8860c0);border-color:#b890f0;box-shadow:0 0 5px #b890f04d}.arp-editor-step-label{font-size:.7rem;font-weight:900;line-height:1;letter-spacing:-.01em}.arp-editor-step-accent{position:absolute;top:3px;right:3px;width:5px;height:5px;border-radius:50%;background:#ffffffe6;box-shadow:0 0 3px #fff9}.arp-editor-step.is-accent{border-width:2px}@media (max-width: 600px){.arp-editor-step{width:28px;height:28px}.arp-editor-step-label{font-size:.6rem}.arp-editor-head{gap:5px}.arp-editor-launch{padding:4px 10px;font-size:.62rem}}.fs-instrument-key-badge-wrap{position:relative;margin-left:auto;flex-shrink:0;z-index:10}.fs-instrument-key-badge.is-interactive{pointer-events:auto;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:linear-gradient(180deg,#3226168c,#1e160e73);border:1px solid rgba(201,162,74,.3);border-radius:10px;padding:4px 12px;box-shadow:inset 0 1px #c9a24a2e,0 2px 6px #0000004d;transition:border-color .18s,box-shadow .18s,background .18s}.fs-instrument-key-badge.is-interactive:hover{border-color:#c9a24aa6;background:linear-gradient(180deg,#3c2e1aa6,#231a108c);box-shadow:inset 0 1px #e8c8824d,0 4px 14px #c9a24a40}.fs-instrument-key-badge.is-interactive.is-open{border-color:#e8c882d9;background:linear-gradient(180deg,#503c1ebf,#2d2012a6);box-shadow:inset 0 1px #e8c88266,0 0 18px #e8c88266}.fs-key-popover{position:absolute;top:calc(100% + 10px);right:0;z-index:9999;display:flex;flex-direction:column;gap:10px;padding:14px;min-width:320px;background:linear-gradient(180deg,#1c160efa,#100c08fa);border:1px solid rgba(201,162,74,.45);border-radius:12px;box-shadow:inset 0 1px #c9a24a40,0 14px 40px #000000a6,0 0 0 4px #00000059;animation:fs-key-popover-in .14s ease-out}@keyframes fs-key-popover-in{0%{opacity:0;transform:translateY(-6px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}.fs-key-popover:before{content:"";position:absolute;top:-7px;right:18px;width:12px;height:12px;background:#1c160efa;border-left:1px solid rgba(201,162,74,.45);border-top:1px solid rgba(201,162,74,.45);transform:rotate(45deg)}.fs-key-popover-mode{display:flex;gap:4px;padding:4px;background:#00000073;border-radius:8px;border:1px solid rgba(201,162,74,.2)}.fs-key-popover-mode-btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;flex:1 1 0;padding:8px 14px;background:transparent;border:none;border-radius:6px;color:#f4e8c88c;font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;cursor:pointer;transition:background .15s,color .15s,box-shadow .18s}.fs-key-popover-mode-btn:hover{color:#f4e8c8d9;background:#c9a24a1f}.fs-key-popover-mode-btn.is-active{background:linear-gradient(180deg,#c9a24a,#8a6a2a);color:#1a1208;box-shadow:inset 0 1px #ffdca066,0 2px 6px #c9a24a73}.fs-key-popover-chromatic{display:grid;grid-template-columns:repeat(6,1fr);gap:6px}.fs-key-popover-note{-webkit-appearance:none;-moz-appearance:none;appearance:none;padding:12px 4px;background:linear-gradient(180deg,#282016d9,#14100ad9);border:1px solid rgba(201,162,74,.18);border-radius:8px;color:#f4e8c8bf;font-size:1.05rem;font-weight:700;font-family:Cormorant Garamond,Playfair Display,Georgia,serif;cursor:pointer;transition:border-color .15s,background .15s,color .15s,transform .1s}.fs-key-popover-note.is-sharp{color:#b4aa96d9;background:linear-gradient(180deg,#1c1610eb,#0e0a06eb)}.fs-key-popover-note:hover{border-color:#e8c8828c;color:#f4e8c8;transform:translateY(-1px)}.fs-key-popover-note.is-active{background:linear-gradient(180deg,#d4b25a,#9a7a3a);border-color:#ffdca0d9;color:#1a1208;box-shadow:inset 0 1px #ffdca066,0 0 14px #e8c88273}@media (max-width: 500px){.fs-key-popover{min-width:280px;right:-8px}.fs-key-popover-chromatic{grid-template-columns:repeat(4,1fr)}}.fs-drone-head{display:flex;align-items:center;gap:8px;padding:0 4px}.fs-drone-current{display:inline-flex;align-items:baseline;gap:6px;font-size:.7rem;font-weight:600}.fs-drone-current-cat{font-size:.58rem;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:#8cc8e68c}.fs-drone-current-name{color:#9ed8ff;font-weight:700}.fs-drone-current-sep{color:#f4e8c84d;font-size:.6rem}.fs-drone-current-mode{color:#f4e8c8bf;font-weight:700;font-variant-numeric:tabular-nums}.fs-drone-current-preset{color:#f4e8c899;font-size:.68rem;font-style:italic}.fs-drone-strip{flex:1 1 0;min-width:0;display:flex;gap:5px;overflow-x:auto;scroll-snap-type:x proximity;scrollbar-width:thin;scrollbar-color:rgba(140,200,230,.4) transparent;padding:2px 1px}.fs-drone-strip::-webkit-scrollbar{height:6px}.fs-drone-strip::-webkit-scrollbar-thumb{background:#8cc8e666;border-radius:3px}.fs-drone-strip::-webkit-scrollbar-track{background:transparent}.fs-drone-pattern{-webkit-appearance:none;-moz-appearance:none;appearance:none;flex:0 0 auto;min-width:88px;scroll-snap-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;padding:5px 10px;border-radius:7px;background:linear-gradient(180deg,#1c242ed9,#0e1218d9);border:1px solid rgba(140,200,230,.2);cursor:pointer;transition:border-color .15s,background .15s,transform .1s,box-shadow .18s;flex-shrink:0}.fs-drone-pattern-cat{font-size:.52rem;color:#8cc8e680;font-weight:600;text-transform:uppercase;letter-spacing:.06em}.fs-drone-pattern-name{font-size:.72rem;font-weight:700;color:#c8e6facc}.fs-drone-pattern:hover{border-color:#aadcf580;background:linear-gradient(180deg,#263240d9,#141a22d9);transform:translateY(-1px)}.fs-drone-pattern:hover .fs-drone-pattern-cat,.fs-drone-pattern:hover .fs-drone-pattern-name{color:#dcf0fff2}.fs-drone-pattern.is-active{background:linear-gradient(180deg,#4faae6,#1a5a90);border-color:#96dcffd9;box-shadow:inset 0 1px #b4e6ff59,0 0 14px #50aae673}.fs-drone-pattern.is-active .fs-drone-pattern-cat,.fs-drone-pattern.is-active .fs-drone-pattern-name{color:#f0fbff}.fs-drone-group-label{font-size:.58rem;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:#8cc8e6a6;padding:0 2px}.fs-drone-oct-value{display:inline-flex;align-items:center;justify-content:center;min-width:16px;font-size:.78rem;font-weight:700;color:#9ed8ff;font-variant-numeric:tabular-nums;padding:0 3px}.fs-drone-power.is-on{border-color:#96dcffd9;color:#c8e8ff;box-shadow:0 0 14px #78bee64d}.fs-drone-power.is-on .fs-drone-power-dot{background:radial-gradient(circle at 30% 30%,#e0f4ff,#6cb0f0 60%,#1a5a90);box-shadow:0 0 10px #96dcffd9;animation:fs-drone-pulse 1.6s ease-in-out infinite}@keyframes fs-drone-pulse{0%,to{box-shadow:0 0 8px #96dcffa6}50%{box-shadow:0 0 14px #96dcff}}.fs-drone-vol-slider{width:80px;min-width:60px}@media (max-width: 700px),(max-height: 430px){.fs-drone-pattern{min-width:72px;padding:4px 7px}.fs-drone-pattern-name{font-size:.66rem}.fs-drone-preset{min-width:86px;font-size:.74rem}.fs-drone-vol-slider{width:60px}}.fs-chord-pads-row{display:flex;flex-direction:column;gap:3px;min-width:0}.fs-chord-pads-row-head{display:flex;align-items:baseline;gap:8px;padding:2px 4px 1px;min-width:0}.fs-chord-pads-row-title{font-size:.62rem;font-weight:700;text-transform:uppercase;letter-spacing:.16em;color:#f4e8c8d9;flex-shrink:0}.fs-chord-pads-row-hint{font-size:.62rem;color:#f4e8c866;font-style:italic;letter-spacing:.02em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.fs-chord-pads-row--sevenths .fs-chord-pads-row-title{color:#f4d488}.fs-chord-pads-row--sus .fs-chord-pads-row-title{color:#82d8e8}.fs-chord-pads-row--sec-dom .fs-chord-pads-row-title{color:#ff9670}.fs-chord-pads-row--ext .fs-chord-pads-row-title{color:#c4a0ff}.fs-chord-pads-grid--sevenths,.fs-chord-pads-grid--sus{grid-template-columns:repeat(7,1fr)}.fs-chord-pads-grid--sec-dom,.fs-chord-pads-grid--ext{grid-template-columns:repeat(5,1fr)}.fs-chord-pad--maj7 .fs-chord-pad-symbol{color:#f4d488}.fs-chord-pad--min7 .fs-chord-pad-symbol{color:#cfb978}.fs-chord-pad--dom7 .fs-chord-pad-symbol{color:#ffce82}.fs-chord-pad--dim7 .fs-chord-pad-symbol{color:#b8a06a;font-style:italic}.fs-chord-pad--halfdim7 .fs-chord-pad-symbol{color:#c8b078;font-style:italic}.fs-chord-pad--sus4,.fs-chord-pad--sus2{border-color:#82d8e859;background:radial-gradient(circle at 50% -20%,rgba(160,220,240,.18) 0%,transparent 60%),linear-gradient(180deg,#14242cf2,#0a1216f2)}.fs-chord-pad--sus4 .fs-chord-pad-symbol,.fs-chord-pad--sus2 .fs-chord-pad-symbol{color:#82d8e8}.fs-chord-pad--sus4:hover,.fs-chord-pad--sus2:hover{border-color:#aae6f5a6;background:radial-gradient(circle at 50% -20%,rgba(160,220,240,.28) 0%,transparent 60%),linear-gradient(180deg,#1e3440f2,#0e1a20f2)}.fs-chord-pad--sus4:active,.fs-chord-pad--sus2:active{background:radial-gradient(circle at 50% 120%,rgba(160,220,240,.35) 0%,transparent 60%),linear-gradient(180deg,#82d8e8,#3a90b0 60%,#1a5060);border-color:#aae6f5f2;box-shadow:0 0 22px #82d8e88c,inset 0 2px 4px #00000080,inset 0 -1px #fff3}.fs-chord-pad--sus4:active .fs-chord-pad-symbol,.fs-chord-pad--sus2:active .fs-chord-pad-symbol{color:#0a1418}.fs-chord-pad--sec-dom{border-color:#ff967066;background:radial-gradient(circle at 50% -20%,rgba(255,170,130,.2) 0%,transparent 60%),linear-gradient(180deg,#2c1a12f2,#160c08f2)}.fs-chord-pad--sec-dom .fs-chord-pad-symbol{color:#ff9670}.fs-chord-pad--sec-dom .fs-chord-pad-sub{color:#ffb48ca6;font-weight:700}.fs-chord-pad--sec-dom:hover{border-color:#ffb48cbf;background:radial-gradient(circle at 50% -20%,rgba(255,170,130,.32) 0%,transparent 60%),linear-gradient(180deg,#3c2418f2,#1e100af2)}.fs-chord-pad--sec-dom:active{background:radial-gradient(circle at 50% 120%,rgba(255,170,130,.4) 0%,transparent 60%),linear-gradient(180deg,#ff9670,#c45a30 60%,#6a2a14);border-color:#ffc8a0f2;box-shadow:0 0 22px #ff96708c,inset 0 2px 4px #00000080,inset 0 -1px #fff3}.fs-chord-pad--sec-dom:active .fs-chord-pad-symbol,.fs-chord-pad--sec-dom:active .fs-chord-pad-sub{color:#1a0a04}.fs-chord-pad--maj9,.fs-chord-pad--min9,.fs-chord-pad--dom9,.fs-chord-pad--dom13{border-color:#c4a0ff66;background:radial-gradient(circle at 50% -20%,rgba(200,170,255,.2) 0%,transparent 60%),linear-gradient(180deg,#1e162cf2,#100c18f2)}.fs-chord-pad--maj9 .fs-chord-pad-symbol,.fs-chord-pad--min9 .fs-chord-pad-symbol,.fs-chord-pad--dom9 .fs-chord-pad-symbol,.fs-chord-pad--dom13 .fs-chord-pad-symbol{color:#c4a0ff}.fs-chord-pad--maj9:hover,.fs-chord-pad--min9:hover,.fs-chord-pad--dom9:hover,.fs-chord-pad--dom13:hover{border-color:#d2b4ffbf;background:radial-gradient(circle at 50% -20%,rgba(200,170,255,.32) 0%,transparent 60%),linear-gradient(180deg,#302040f2,#181024f2)}.fs-chord-pad--maj9:active,.fs-chord-pad--min9:active,.fs-chord-pad--dom9:active,.fs-chord-pad--dom13:active{background:radial-gradient(circle at 50% 120%,rgba(200,170,255,.4) 0%,transparent 60%),linear-gradient(180deg,#c4a0ff,#7a4ec4 60%,#3a2070);border-color:#dcc8fff2;box-shadow:0 0 22px #c4a0ff8c,inset 0 2px 4px #00000080,inset 0 -1px #fff3}.fs-chord-pad--maj9:active .fs-chord-pad-symbol,.fs-chord-pad--min9:active .fs-chord-pad-symbol,.fs-chord-pad--dom9:active .fs-chord-pad-symbol,.fs-chord-pad--dom13:active .fs-chord-pad-symbol{color:#14081c}@media (max-width: 700px),(max-height: 430px){.fs-chord-pads-row-hint{display:none}.fs-chord-pads-row-title{font-size:.56rem;letter-spacing:.12em}.fs-chord-pads-grid--sus{grid-template-columns:repeat(7,1fr);gap:4px}.fs-chord-pads-grid--sec-dom,.fs-chord-pads-grid--ext{grid-template-columns:repeat(5,1fr);gap:4px}}.knob{display:inline-flex;flex-direction:column;align-items:center;gap:3px;user-select:none;-webkit-user-select:none}.knob-dial{--knob-accent: #c9a24a;--knob-fill: 0;position:relative;width:46px;height:46px;padding:0;border-radius:50%;border:1px solid rgba(212,175,79,.32);background:conic-gradient(from -135deg,var(--knob-accent) 0 calc(var(--knob-fill) * 270deg),rgba(255,255,255,.05) calc(var(--knob-fill) * 270deg) 270deg,transparent 270deg 360deg);cursor:grab;touch-action:none;-webkit-tap-highlight-color:transparent;box-shadow:inset 0 1px #ffd97029,0 2px 6px #0006;transition:box-shadow .15s ease,border-color .15s ease,transform .08s ease}.knob--sm .knob-dial{width:38px;height:38px}.knob-dial:before{content:"";position:absolute;top:13%;right:13%;bottom:13%;left:13%;border-radius:50%;background:radial-gradient(circle at 50% 34%,#2c2820,#15120e 72%,#0c0a07);box-shadow:inset 0 1px 1px #ffd97024,inset 0 -3px 5px #0009}.knob-dial:hover{border-color:#ffd970b3;box-shadow:inset 0 1px #ffe5a047,0 0 0 3px #d4af4f1f,0 4px 12px #00000073}.knob-dial:active{cursor:grabbing;transform:translateY(1px)}.knob-dial:focus-visible{outline:none;border-color:#ffd970;box-shadow:0 0 0 3px #ffd97066}.knob-dial-indicator{position:absolute;left:50%;top:50%;width:2.5px;height:42%;border-radius:2px;background:linear-gradient(#ffe9b0,#d4af4f);box-shadow:0 0 5px #ffd970bf;transform-origin:50% 100%;transform:translate(-50%,-100%) rotate(var(--knob-angle, 0deg));pointer-events:none}.knob-cap{display:flex;flex-direction:column;align-items:center;line-height:1.05}.knob-value{font-size:11px;font-weight:800;font-variant-numeric:tabular-nums;color:#f4e8c8;text-shadow:0 1px 2px rgba(0,0,0,.6)}.knob--sm .knob-value{font-size:10px}.knob-label{font-size:8.5px;letter-spacing:.07em;text-transform:uppercase;color:#f4e8c89e}@media (prefers-reduced-motion: reduce){.knob-dial{transition:none}}.fs-arp-knobs{display:inline-flex;align-items:flex-start;gap:10px;padding-left:4px}.progression-card.fam-electro{border-left:3px solid #4fd8cf}.progression-family-badge.fam-electro{background:#4fd8cf26;color:#8fe6df}.progression-detail.fam-electro{border-top:4px solid #4fd8cf}.fs-chord-pads--rack{padding:8px;border-radius:12px;background:linear-gradient(180deg,#1a17148c,#0c0a0880);border:1px solid rgba(212,175,79,.16);box-shadow:inset 0 1px #ffd9700f,0 2px 10px #00000059}.fs-chord-pads-face{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px 14px;padding:2px 4px 8px;margin-bottom:8px;border-bottom:1px solid rgba(212,175,79,.14)}.fs-chord-pads-controls{display:flex;flex-wrap:wrap;gap:6px 14px;align-items:center}.fs-chord-pads-playmode,.fs-chord-pads-quantize{display:inline-flex;align-items:center;gap:5px}.fs-chord-pads-ctl-label{display:inline-flex;align-items:center;gap:3px;font-size:.62rem;letter-spacing:.1em;text-transform:uppercase;color:#f4e8c88c}.fs-chord-pads-tabs{display:inline-flex;gap:3px;padding:3px;border-radius:9px;background:#0a09078c;border:1px solid rgba(212,175,79,.14)}.fs-chord-pads-tab{min-height:34px;padding:4px 15px;border:0;border-radius:7px;background:transparent;color:#f4e8c89e;font-size:.76rem;font-weight:700;letter-spacing:.03em;cursor:pointer;transition:background .18s ease,color .18s ease,box-shadow .18s ease}.fs-chord-pads-tab:hover{color:#ffd970;background:#d4af4f1a}.fs-chord-pads-tab:focus-visible{outline:none;box-shadow:0 0 0 2px #ffd9708c}.fs-chord-pads-tab.is-active{color:#1a1208;background:linear-gradient(180deg,#ffd970,#e0bd5e 55%,#d4af4f);box-shadow:inset 0 1px #ffffff52,0 1px 4px #0000004d}.fs-chord-pads-body{display:flex;flex-direction:column;gap:10px}.fs-chord-pads--rack .fs-chord-pads-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(76px,1fr));gap:6px}.fs-chord-pads--rack .fs-chord-pads-row{padding:7px 8px 8px;border-radius:9px;background:#0000002e;border:1px solid rgba(212,175,79,.1);box-shadow:inset 0 1px #ffd9700a}.fs-chord-pads-grilles{display:flex;flex-direction:column;gap:8px}.fs-chord-pads-row--grille.is-pinned{position:sticky;top:0;z-index:8;background:linear-gradient(180deg,#211c12,#18140d);border:1px solid rgba(255,217,112,.55);border-radius:10px;padding:7px 9px 9px;margin-bottom:4px;box-shadow:0 6px 18px -4px #0000008c,0 0 0 1px #d4af4f2e,0 0 22px -6px #ffd97066}.fs-grille-pinned-tag{display:inline-block;font-size:.54rem;font-weight:800;letter-spacing:.12em;padding:2px 6px;margin-right:6px;border-radius:5px;color:#1a1208;background:linear-gradient(180deg,#ffd970,#d4af4f);vertical-align:middle}.fs-grille-pinned-close{margin-left:6px;display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:6px;border:1px solid rgba(212,175,79,.4);background:#0f0c0880;color:#f4e8c8d9;cursor:pointer;transition:all .15s ease}.fs-grille-pinned-close:hover{border-color:#ffd970d9;color:#ffd970;background:#d4af4f24}.fs-chord-pads-grilles-intro{margin:0 0 2px;font-size:.72rem;line-height:1.5;font-style:italic;color:#f4e8c89e}.fs-chord-pads-row--grille .fs-chord-pads-row-title{font-size:.7rem;color:#f0d488}.fs-chord-pads--rack .fs-chord-pads-row--grille .fs-chord-pads-grid{grid-template-columns:repeat(auto-fill,minmax(70px,1fr))}.fs-chord-pad--sixth{border-color:#e8b86561;background:radial-gradient(circle at 50% -20%,rgba(240,200,130,.18) 0%,transparent 60%),linear-gradient(180deg,#282012f2,#140f08f2)}.fs-chord-pad--sixth .fs-chord-pad-symbol{color:#e8b865}.fs-chord-pad--sixth:hover{border-color:#f5cd8cb3;background:radial-gradient(circle at 50% -20%,rgba(240,200,130,.28) 0%,transparent 60%),linear-gradient(180deg,#382c18f2,#1c140af2)}.fs-chord-pad--sixth:active{border-color:#f5cd8cf2;background:radial-gradient(circle at 50% 120%,rgba(240,200,130,.35) 0%,transparent 60%),linear-gradient(180deg,#e8b865,#b0832c 60%,#6a4d18)}.fs-chord-pad--sixth:active .fs-chord-pad-symbol{color:#1a1208}.fs-chord-pad--add9{border-color:#7fd6a85c;background:radial-gradient(circle at 50% -20%,rgba(150,230,185,.16) 0%,transparent 60%),linear-gradient(180deg,#10261cf2,#08140ef2)}.fs-chord-pad--add9 .fs-chord-pad-symbol{color:#7fd6a8}.fs-chord-pad--add9:hover{border-color:#a0f0c3ad;background:radial-gradient(circle at 50% -20%,rgba(150,230,185,.26) 0%,transparent 60%),linear-gradient(180deg,#183628f2,#0c1c14f2)}.fs-chord-pad--add9:active{border-color:#a0f0c3f2;background:radial-gradient(circle at 50% 120%,rgba(150,230,185,.35) 0%,transparent 60%),linear-gradient(180deg,#7fd6a8,#3a9068 60%,#1a5038)}.fs-chord-pad--add9:active .fs-chord-pad-symbol{color:#0a1810}.fs-chord-pad--borrowed{border-color:#e88bd05c;background:radial-gradient(circle at 50% -20%,rgba(240,160,220,.16) 0%,transparent 60%),linear-gradient(180deg,#281224f2,#140912f2)}.fs-chord-pad--borrowed .fs-chord-pad-symbol{color:#e88bd0}.fs-chord-pad--borrowed:hover{border-color:#f5aae4b3;background:radial-gradient(circle at 50% -20%,rgba(240,160,220,.26) 0%,transparent 60%),linear-gradient(180deg,#381a32f2,#1c0d19f2)}.fs-chord-pad--borrowed:active{border-color:#f5aae4f2;background:radial-gradient(circle at 50% 120%,rgba(240,160,220,.35) 0%,transparent 60%),linear-gradient(180deg,#e88bd0,#90407c 60%,#501a44)}.fs-chord-pad--borrowed:active .fs-chord-pad-symbol{color:#1a0816}@media (prefers-reduced-motion: reduce){.fs-chord-pads-tab{transition:none}}.knob--sm .knob-dial{width:42px;height:42px}.fs-arp:not(.fs-arp--2){background:linear-gradient(135deg,#2a120ce6,#160a07f2);border:1px solid rgba(230,110,80,.26);border-radius:8px;padding:8px 10px;box-shadow:inset 0 1px #e66e501a}.fs-arp:not(.fs-arp--2) .fs-arp-kicker{color:#e87a5ceb}.fs-arp.fs-arp--2{background:linear-gradient(135deg,#1e122ae6,#110a1af2);border:1px solid rgba(170,120,220,.26);border-radius:8px;padding:8px 10px;box-shadow:inset 0 1px #aa78dc1a}.fs-arp.fs-arp--2 .fs-arp-kicker{color:#b884e2eb}.fs-drone{background:linear-gradient(135deg,#082220eb,#051312f5);border:1px solid rgba(70,200,190,.24);border-radius:8px;padding:8px 10px;box-shadow:inset 0 1px #46c8be1a}.fs-drone-kicker{color:#52cec4e0}.fs-seq{background:linear-gradient(135deg,#081a26eb,#050f18f5);border:1px solid rgba(80,190,230,.24);border-radius:8px;padding:8px 10px;box-shadow:inset 0 1px #50bee61a}.fs-seq-kicker{color:#5cc4ece0}.fs-transport{background:linear-gradient(135deg,#221c0ee6,#130f08f2);border:1px solid rgba(212,175,79,.26);border-radius:8px;padding:8px 10px;box-shadow:inset 0 1px #d4af4f1f}.fs-instrument-accessory>.fs-transport{position:sticky;top:0;z-index:6;background:linear-gradient(135deg,#221c0efb,#130f08fc);box-shadow:inset 0 1px #d4af4f1f,0 8px 14px -6px #000000a6}.fs-chord-pads-row--grille .fs-chord-pad--maj{border-color:#f4d4886b}.fs-chord-pads-row--grille .fs-chord-pad--maj .fs-chord-pad-symbol{color:#f4d488}.fs-chord-pads-row--grille .fs-chord-pad--maj7{border-color:#88e0a873}.fs-chord-pads-row--grille .fs-chord-pad--maj7 .fs-chord-pad-symbol{color:#88e0a8}.fs-chord-pads-row--grille .fs-chord-pad--min{border-color:#8fb4ff73}.fs-chord-pads-row--grille .fs-chord-pad--min .fs-chord-pad-symbol{color:#9fb8ff}.fs-chord-pads-row--grille .fs-chord-pad--min7{border-color:#6fd0d073}.fs-chord-pads-row--grille .fs-chord-pad--min7 .fs-chord-pad-symbol{color:#6fd0d0}.fs-chord-pads-row--grille .fs-chord-pad--dom7{border-color:#ff9f6b7a}.fs-chord-pads-row--grille .fs-chord-pad--dom7 .fs-chord-pad-symbol{color:#ff9f6b}.fs-chord-pads-row--grille .fs-chord-pad--dim,.fs-chord-pads-row--grille .fs-chord-pad--dim7{border-color:#ff7a7a7a}.fs-chord-pads-row--grille .fs-chord-pad--dim .fs-chord-pad-symbol,.fs-chord-pads-row--grille .fs-chord-pad--dim7 .fs-chord-pad-symbol{color:#ff7a7a}.fs-chord-pads-row--grille .fs-chord-pad--halfdim7{border-color:#e08bd07a}.fs-chord-pads-row--grille .fs-chord-pad--halfdim7 .fs-chord-pad-symbol{color:#e08bd0}.fs-chord-pads-row--grille .fs-chord-pad--aug{border-color:#ffd98c80}.fs-chord-pads-row--grille .fs-chord-pad--aug .fs-chord-pad-symbol{color:#ffd98c}.fs-chord-pads-tabs{gap:4px;padding:4px}.fs-chord-pads-tab{min-height:42px;padding:8px 22px;font-size:.92rem;letter-spacing:.04em;border-radius:9px}.fs-chord-pads-tab.is-active{box-shadow:inset 0 1px #ffffff59,0 2px 8px #d4af4f59,0 0 0 1px #ffd97066;transform:translateY(-1px)}@media (prefers-reduced-motion: reduce){.fs-chord-pads-tab.is-active{transform:none}}.fs-grille-filterbar{display:flex;flex-wrap:wrap;gap:5px;margin-bottom:6px}.fs-grille-filter{min-height:32px;padding:4px 13px;border-radius:999px;border:1px solid rgba(212,175,79,.22);background:#0a090780;color:#f4e8c8b3;font-size:.72rem;font-weight:700;letter-spacing:.02em;cursor:pointer;transition:background .16s ease,color .16s ease,border-color .16s ease}.fs-grille-filter:hover{color:#ffd970;border-color:#ffd97080}.fs-grille-filter:focus-visible{outline:none;box-shadow:0 0 0 2px #ffd97080}.fs-grille-filter.is-active{color:#1a1208;border-color:transparent;background:linear-gradient(180deg,#ffd970,#d4af4f);box-shadow:0 1px 4px #0000004d}.fs-grille-summary{margin:0 0 10px;padding-left:2px;font-size:.75rem;line-height:1.5;font-style:italic;color:#f4e8c8a8}.fs-grille-tip{margin:-2px 0 7px;padding-left:2px;font-size:.74rem;line-height:1.45;color:#f4e8c899}.fs-chord-pads-row--grille .fs-chord-pads-row-head{display:flex;align-items:center;gap:8px}.fs-grille-info-btn{margin-left:auto;width:28px;height:28px;padding:0;flex:none;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;border:1px solid rgba(212,175,79,.5);background:#d4af4f1f;color:#f4e8c8d9;cursor:pointer;transition:background .16s ease,color .16s ease,border-color .16s ease,transform .08s ease}.fs-grille-info-btn:hover{color:#ffd970;border-color:#ffd970d9;background:#d4af4f42}.fs-grille-info-btn:active{transform:scale(.92)}.fs-grille-info-btn:focus-visible{outline:none;box-shadow:0 0 0 2px #ffd97080}.fs-grille-pop-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:10000;display:flex;align-items:center;justify-content:center;padding:16px;background:#060503a8;backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px)}.fs-grille-pop{width:min(560px,94vw);max-height:86vh;overflow-y:auto;padding:16px 18px 18px;border-radius:14px;background:linear-gradient(180deg,#1c1813,#100d0a);border:1px solid rgba(212,175,79,.3);box-shadow:0 18px 50px #0009,inset 0 1px #ffd9701a}.fs-grille-pop-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:12px}.fs-grille-pop-titlewrap{display:flex;flex-direction:column;gap:6px}.fs-grille-pop-title{margin:0;font-family:Cormorant Garamond,Georgia,serif;font-size:1.5rem;line-height:1.1;color:#f4e8c8}.fs-grille-pop-close{flex:none;width:34px;height:34px;padding:0;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;border:1px solid rgba(212,175,79,.3);background:#0000004d;color:#f4e8c8;cursor:pointer;transition:transform .15s ease,border-color .15s ease,color .15s ease}.fs-grille-pop-close:hover{color:#ffd970;border-color:#ffd970b3;transform:rotate(90deg)}.fs-grille-pop-chords{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:12px}.fs-grille-pop-chord{display:inline-flex;flex-direction:column;align-items:center;gap:1px;min-width:54px;padding:6px 10px;border-radius:8px;border:1px solid rgba(212,175,79,.25);background:#00000040}.fs-grille-pop-chord b{font-size:.95rem;color:#f4d488}.fs-grille-pop-chord small{font-size:.62rem;letter-spacing:.04em;color:#f4e8c88c}.fs-grille-pop-tip{margin:0 0 10px;font-size:.92rem;font-weight:600;line-height:1.45;color:#ffd970}.fs-grille-pop-story{margin:0 0 12px;font-size:.82rem;line-height:1.6;color:#f4e8c8cc}.fs-grille-pop-sec{margin-bottom:12px}.fs-grille-pop-sec h4{margin:0 0 5px;font-size:.66rem;text-transform:uppercase;letter-spacing:.12em;color:#d4af4fd9}.fs-grille-pop-sec ul{margin:0;padding-left:18px}.fs-grille-pop-sec li{margin-bottom:3px;font-size:.8rem;line-height:1.5;color:#f4e8c8d1}.fs-grille-pop-ex{margin:0;font-size:.8rem;line-height:1.5;color:#f4e8c8b3}.fs-instrument-board{position:relative;padding:10px 10px 12px;border-radius:12px;background:linear-gradient(180deg,#16120c8c,#08070580);box-shadow:inset 0 2px 9px #00000080}.fs-instrument-board:before{content:"";position:absolute;left:12px;right:12px;top:5px;height:2px;border-radius:2px;background:linear-gradient(90deg,#d4af4f00,#d4af4f80,#d4af4f00);pointer-events:none}.piano-mini-scale.is-full{filter:drop-shadow(0 4px 8px rgba(0,0,0,.42))}.piano-mini-scale.is-full .piano-mini-key--white{rx:4px}.piano-mini-scale.is-full .piano-mini-key--black{rx:3px}.piano-mini-scale .piano-mini-key{transition:fill .06s ease}.piano-mini-scale .piano-mini-key.is-pressed{filter:drop-shadow(0 0 9px rgba(255,217,112,.9))}@media (prefers-reduced-motion: reduce){.piano-mini-scale .piano-mini-key{transition:none}}.fs-arp-row,.fs-bass-row,.fs-comp-row,.fs-drone-row,.fs-seq-row{display:flex;flex-wrap:wrap;align-items:center;row-gap:6px}.fs-drone,.fs-seq,.fs-bass,.fs-comp{padding:10px 14px}.fs-seq-row2{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-top:4px}.fs-seq-mutes{display:flex;align-items:center;gap:3px}.fs-seq-mute-btn{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:4px;border:1px solid rgba(201,162,74,.3);background:transparent;color:#c9a24abf;font-size:.58rem;font-weight:700;cursor:pointer;transition:background .12s ease,border-color .12s ease,color .12s ease;padding:0;letter-spacing:0}.fs-seq-mute-btn:hover{background:#c9a24a1f;border-color:#c9a24a8c}.fs-seq-mute-btn.is-muted{background:#3c2c0e8c;border-color:#c9a24a1f;color:#c9a24a38}.fs-seq-row3{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:6px;padding-top:6px;border-top:1px solid rgba(201,162,74,.12)}.fs-seq-engine,.fs-seq-kits{display:inline-flex;align-items:center;gap:3px}.fs-seq-kits.is-disabled{opacity:.4;pointer-events:none}.fs-seq-engine-btn,.fs-seq-kit-btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;display:inline-flex;align-items:center;justify-content:center;padding:4px 10px;border-radius:6px;border:1px solid rgba(201,162,74,.3);background:linear-gradient(180deg,#2820168c,#120e0a8c);color:#c9a24ac7;font-size:.62rem;font-weight:700;letter-spacing:.04em;cursor:pointer;transition:background .14s ease,border-color .14s ease,color .14s ease,box-shadow .18s ease}.fs-seq-engine-btn:hover,.fs-seq-kit-btn:hover{border-color:#c9a24a99;background:#c9a24a1f;color:#ffe388}.fs-seq-engine-btn.is-active,.fs-seq-kit-btn.is-active{border-color:#c9a24ad9;background:linear-gradient(180deg,#e9c66f,#c9a24a 55%,#a07e2e);color:#1a1208;box-shadow:0 0 12px #c9a24a73}.fs-seq-kit-btn:disabled{cursor:default}.fs-fx{display:flex;flex-direction:column;gap:8px;padding:10px 14px;border-radius:12px;background:linear-gradient(180deg,#161a1ec7,#0c0e11d1);border:1px solid rgba(120,200,255,.18);min-width:0}.fs-fx-head{display:flex;align-items:center;gap:10px}.fs-fx-kicker{font-size:.6rem;font-weight:700;text-transform:uppercase;letter-spacing:.16em;color:#78c8ffb3}.fs-fx-power{-webkit-appearance:none;-moz-appearance:none;appearance:none;display:inline-flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;padding:6px 12px;border-radius:8px;background:linear-gradient(180deg,#1c2228d9,#0c1014d9);border:1px solid rgba(255,255,255,.1);color:#dcecf8b3;font-size:.62rem;font-weight:700;text-transform:uppercase;letter-spacing:.1em;cursor:pointer;flex-shrink:0;transition:border-color .15s,color .15s,box-shadow .18s}.fs-fx-power:hover{border-color:#78c8ff73}.fs-fx-power-dot{width:10px;height:10px;border-radius:50%;background:radial-gradient(circle at 30% 30%,#3a3a3a,#1a1a1a);box-shadow:inset 0 1px 2px #000c;transition:background .18s,box-shadow .18s}.fs-fx-power.is-on{border-color:#78dcffd9;color:#9bd9ff;box-shadow:0 0 14px #78c8ff4d}.fs-fx-power.is-on .fs-fx-power-dot{background:radial-gradient(circle at 30% 30%,#d0f0ff,#66c0ff 60%,#2a6090);box-shadow:0 0 10px #78c8ffd9,inset 0 1px 2px #dcf0ff99}.fs-fx-section{display:flex;align-items:center;gap:10px;flex-wrap:wrap;transition:opacity .18s ease}.fs-fx-section.is-disabled{opacity:.4}.fs-fx-section-label{min-width:52px;font-size:.6rem;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:#dcecf88c}.fs-fx-div{display:inline-flex;align-items:center;gap:3px}.fs-fx-div-btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;padding:3px 7px;border-radius:5px;border:1px solid rgba(120,200,255,.25);background:#78c8ff0d;color:#b4dcf5bf;font-size:.58rem;font-weight:700;cursor:pointer;transition:background .12s ease,border-color .12s ease,color .12s ease}.fs-fx-div-btn:hover{border-color:#78c8ff8c;background:#78c8ff24}.fs-fx-div-btn.is-active{border-color:#78dcffd9;background:linear-gradient(180deg,#8fd6ff,#4fa8e0);color:#07151f;box-shadow:0 0 10px #78c8ff66}.fs-grille-autoplay-btn{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:50%;border:1px solid rgba(201,162,74,.5);background:#c9a24a12;color:#c9a24acc;font-size:.68rem;cursor:pointer;transition:all .15s ease;padding:0;margin-left:4px;flex-shrink:0}.fs-grille-autoplay-btn:hover{background:#c9a24a24;border-color:#c9a24aa6;color:#c9a24ae6}.fs-grille-autoplay-btn.is-active{background:#c9a24a38;border-color:#c9a24ad9;color:#f4d488;box-shadow:0 0 6px #c9a24a73}.fs-grille-preset-btn{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:50%;border:1px solid rgba(212,175,79,.45);background:#d4af4f1f;color:#f4e8c8eb;font-size:.66rem;line-height:1;cursor:pointer;transition:all .15s ease;padding:0;margin-left:4px;flex-shrink:0}.fs-grille-preset-btn:hover{background:#d4af4f42;border-color:#ffd970d9;color:#ffd970;box-shadow:0 0 8px #d4af4f80}.fs-grille-preset-btn:active{transform:scale(.9)}.fs-grille-preset-btn:focus-visible{outline:none;box-shadow:0 0 0 2px #ffd9708c}.fs-grille-preset-btn.is-flash{animation:fs-preset-flash .9s ease-out}@keyframes fs-preset-flash{0%{box-shadow:0 0 #ffd970d9;border-color:#ffd970;background:#ffd9708c;color:#1a1408}60%{box-shadow:0 0 12px 4px #d4af4f80}to{box-shadow:0 0 #d4af4f00}}.fs-chord-pad.is-autoplay{border-color:#d4af4fe6!important;box-shadow:0 0 10px #d4af4f99,inset 0 0 5px #d4af4f2e}.fs-chord-pad.is-autoplay .fs-chord-pad-symbol{color:#f4d488!important}.midi-ico{display:inline-block;vertical-align:-.15em;flex:none}.midi-instr-btn{flex-direction:row;gap:0;min-width:0;padding:6px 12px}.midi-instr-label{font-size:.74rem;letter-spacing:.03em;white-space:nowrap}.midi-all-inst-toggle-icon{display:inline-flex;align-items:center;font-size:.95rem;opacity:.75}.midi-all-inst-toggle-arrow{display:inline-flex;align-items:center;font-size:.8rem;opacity:.55}.midi-rig{margin-top:12px;display:flex;flex-direction:column;gap:10px}.midi-rig-soundbar{display:flex;align-items:center;gap:14px;flex-wrap:wrap;padding:10px 14px;border-radius:12px;background:linear-gradient(180deg,#d4af4f1a,#0f0c0880);border:1px solid rgba(212,175,79,.22)}.midi-rig-realtoggle{display:inline-flex;align-items:center;gap:10px;padding:8px 14px;border-radius:10px;border:1px solid var(--stage-btn-border, rgba(212,175,79,.32));background:var(--stage-btn-bg);color:var(--stage-btn-text, #f4e8c8);cursor:pointer;transition:all .18s}.midi-rig-realtoggle .midi-ico{font-size:1.3rem;color:#d4af4f8c}.midi-rig-realtoggle-txt{display:flex;flex-direction:column;line-height:1.18;text-align:left}.midi-rig-realtoggle-txt strong{font-size:.82rem;letter-spacing:.04em}.midi-rig-realtoggle-txt em{font-style:normal;font-size:.66rem;opacity:.6}.midi-rig-realtoggle.is-on{background:var(--stage-btn-bg-active);border-color:var(--stage-btn-border-active, rgba(255,217,112,.95));color:var(--stage-btn-text-active, #1a1208);box-shadow:var(--stage-btn-shadow-active)}.midi-rig-realtoggle.is-on .midi-ico{color:#1a1208}.midi-rig-realtoggle.is-on em{color:#1a1208b8}.midi-rig-hint{font-size:.7rem;opacity:.5;max-width:340px;line-height:1.4}.midi-rig-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:10px}.midi-rig-card--wide{min-width:280px}.midi-rig-card{display:flex;flex-direction:column;gap:9px;padding:10px 12px;border-radius:12px;background:linear-gradient(180deg,#28221680,#0f0c088c);border:1px solid rgba(212,175,79,.16);box-shadow:inset 0 1px #ffd9700f}.midi-rig-card-head{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap}.midi-rig-card-title{display:inline-flex;align-items:center;gap:6px;font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;color:#f4e8c8d9}.midi-rig-card-title .midi-ico{color:var(--accent, #d4af4f);font-size:1.05rem}.midi-rig-card-body{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px}.midi-rig-power{display:inline-flex;align-items:center;gap:5px;padding:4px 11px;font-size:.7rem;letter-spacing:.04em;border-radius:7px;border:1px solid var(--stage-btn-border, rgba(212,175,79,.32));background:var(--stage-btn-bg);color:var(--stage-btn-text, #f4e8c8);cursor:pointer;transition:all .15s}.midi-rig-power:hover{border-color:var(--stage-btn-border-hover, rgba(255,217,112,.75));color:var(--stage-btn-text-hover, #ffd970)}.midi-rig-power.is-on{background:var(--stage-btn-bg-active);border-color:var(--stage-btn-border-active, rgba(255,217,112,.95));color:var(--stage-btn-text-active, #1a1208);box-shadow:var(--stage-btn-shadow-active)}.midi-rig-knob{display:flex;flex-direction:column;gap:3px;min-width:84px}.midi-rig-knob-label{font-size:.62rem;letter-spacing:.05em;text-transform:uppercase;opacity:.6}.midi-rig-knob input[type=range]{width:100%;accent-color:var(--accent, #d4af4f)}.midi-rig-select{background:#0f0c0899;border:1px solid rgba(212,175,79,.25);color:#f2e9d4;border-radius:7px;padding:5px 8px;font-size:.74rem;cursor:pointer;max-width:180px}.midi-rig-seg{display:inline-flex;gap:3px;flex-wrap:wrap}.midi-rig-seg-btn{padding:4px 9px;font-size:.68rem;border-radius:6px;border:1px solid rgba(212,175,79,.2);background:#ffffff08;color:#f4e8c8bf;cursor:pointer;transition:all .14s}.midi-rig-seg-btn:hover{border-color:#ffd97080;color:#ffd970}.midi-rig-seg-btn.is-on{background:var(--stage-btn-bg-active);border-color:var(--stage-btn-border-active, rgba(255,217,112,.95));color:var(--stage-btn-text-active, #1a1208)}.midi-rig-check{display:inline-flex;align-items:center;gap:6px;font-size:.72rem;opacity:.85;cursor:pointer}.midi-rig-check input{accent-color:var(--accent, #d4af4f)}.midi-rig-bpm{display:inline-flex;align-items:center;gap:4px}.midi-rig-bpm-btn{display:inline-flex;width:24px;height:24px;align-items:center;justify-content:center;border-radius:6px;border:1px solid rgba(212,175,79,.25);background:#ffffff08;color:#f2e9d4;cursor:pointer}.midi-rig-bpm-btn:hover{border-color:#ffd97080;color:#ffd970}.midi-rig-bpm-val{font-variant-numeric:tabular-nums;font-size:.85rem;font-weight:600;color:#f2e9d4;display:inline-flex;align-items:baseline;gap:3px;min-width:54px;justify-content:center}.midi-rig-bpm-val em{font-style:normal;font-size:.58rem;opacity:.5}.midi-inst-wrap{flex:1 1 100%;min-width:0;width:100%}.midi-vp{display:flex;flex-direction:column;gap:7px;min-width:0}.midi-vp-families{display:flex;gap:6px;flex-wrap:wrap;align-items:center}.midi-vp-fam{padding:5px 11px;min-height:30px;font-size:.7rem;letter-spacing:.02em;border-radius:7px;border:1px solid rgba(212,175,79,.16);background:#ffffff06;color:#d4c8aabf;cursor:pointer;transition:border-color .14s,background .14s,color .14s;white-space:nowrap}.midi-vp-fam:hover{border-color:#ffd97073;color:#ffd970}.midi-vp-fam.is-on{background:linear-gradient(135deg,#d4af4f42,#d4af4f14);border-color:#d4af4f8c;color:#f7ecce}.midi-vp-all{display:inline-flex;align-items:center;gap:5px;padding:5px 11px;min-height:30px;font-size:.7rem;border-radius:7px;border:1px dashed rgba(212,175,79,.3);background:transparent;color:#d4c8aab3;cursor:pointer;transition:border-color .14s,color .14s;white-space:nowrap}.midi-vp-all:hover,.midi-vp-all.is-on{border-style:solid;border-color:#ffd97080;color:#f2e9d4}.midi-vp-stripwrap{display:flex;align-items:stretch;gap:6px}.midi-vp-nav{flex:none;width:30px;min-height:44px;border:1px solid rgba(212,175,79,.22);background:linear-gradient(180deg,#28221680,#0f0c088c);color:#d4af4f;border-radius:8px;cursor:pointer;display:flex;align-items:center;justify-content:center}.midi-vp-nav:hover{border-color:#ffd9708c;color:#ffd970;background:#d4af4f1f}.midi-vp-nav .midi-ico{font-size:1.05rem}.midi-vp-strip{display:flex;gap:7px;overflow-x:auto;scroll-behavior:smooth;padding:2px 2px 6px;scrollbar-width:thin;scroll-snap-type:x proximity;flex:1 1 0;min-width:0;-webkit-mask-image:linear-gradient(to right,transparent 0,#000 14px,#000 calc(100% - 22px),transparent 100%);mask-image:linear-gradient(to right,transparent 0,#000 14px,#000 calc(100% - 22px),transparent 100%)}.midi-vp-strip::-webkit-scrollbar{height:5px}.midi-vp-strip::-webkit-scrollbar-thumb{background:#d4af4f4d;border-radius:3px}.midi-vp-voice{flex:none;scroll-snap-align:start;display:flex;flex-direction:column;align-items:flex-start;gap:2px;min-width:104px;min-height:44px;padding:7px 12px;border-radius:9px;border:1px solid rgba(212,175,79,.2);background:linear-gradient(180deg,#2e26188c,#0f0c088c);color:#f4e8c8d9;cursor:pointer;transition:border-color .14s,background .14s,color .14s;text-align:left}.midi-vp-voice:hover{border-color:#ffd97099;color:#ffd970}.midi-vp-voice.is-on{background:var(--stage-btn-bg-active);border-color:var(--stage-btn-border-active, rgba(255,217,112,.95));color:var(--stage-btn-text-active, #1a1208);box-shadow:var(--stage-btn-shadow-active)}.midi-vp-voice-name{font-size:.78rem;font-weight:600;display:inline-flex;align-items:center;gap:4px;white-space:nowrap}.midi-vp-voice-tag{font-size:.62rem;opacity:.6;white-space:nowrap}.midi-vp-voice.is-on .midi-vp-voice-tag{opacity:.78;color:#1a1208b8}.midi-vp-star{color:#ffd970;font-size:.74rem}.midi-vp-voice.is-studio:not(.is-on){border-color:#ffd97066}.midi-vp-voice.is-on .midi-vp-star{color:#7a5a14}.midi-vp-legend{margin:0;font-size:.62rem;line-height:1.4;opacity:.58;display:flex;flex-wrap:wrap;align-items:center;gap:5px}.midi-vp-legend .midi-vp-star{font-size:.68rem}.midi-vp-legend-sep{opacity:.5}.midi-rig-explain{font-size:.68rem;line-height:1.5;opacity:.74;max-width:440px;margin:0}.midi-rig-explain strong{color:#f4e8c8eb;font-weight:600}.midi-rig-explain code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.92em;background:#d4af4f1f;padding:0 3px;border-radius:3px;color:#e8d9a8}.midi-rig-hdbadge{display:inline-flex;align-items:center;gap:7px;padding:8px 14px;border-radius:10px;border:1px solid var(--stage-btn-border-active, rgba(255,217,112,.95));background:var(--stage-btn-bg-active);color:var(--stage-btn-text-active, #1a1208);font-size:.82rem;font-weight:600;letter-spacing:.03em;box-shadow:var(--stage-btn-shadow-active);white-space:nowrap}.midi-rig-hdbadge .midi-ico{font-size:1.2rem}.fs-fx-space-select{background:var(--stage-btn-bg);border:1px solid var(--stage-btn-border);color:var(--stage-btn-text);border-radius:8px;font-size:11px;padding:3px 6px;max-width:138px}.fs-fx-space-select:hover{border-color:var(--stage-btn-border-hover);color:var(--stage-btn-text-hover)}
