:root{--text:#6b6375;--text-h:#08060d;--bg:#fff;--border:#e5e4e7;--code-bg:#f4f3ec;--accent:#aa3bff;--accent-bg:#aa3bff1a;--accent-border:#aa3bff80;--social-bg:#f4f3ec80;--shadow:#0000001a 0 10px 15px -3px, #0000000d 0 4px 6px -2px;--sans:system-ui, "Segoe UI", Roboto, sans-serif;--heading:system-ui, "Segoe UI", Roboto, sans-serif;--mono:ui-monospace, Consolas, monospace;font:18px/145% var(--sans);letter-spacing:.18px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;color:var(--text);background:var(--bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}}@media (width<=1024px){:root{font-size:16px}}@media (prefers-color-scheme:dark){:root{--text:#9ca3af;--text-h:#f3f4f6;--bg:#16171d;--border:#2e303a;--code-bg:#1f2028;--accent:#c084fc;--accent-bg:#c084fc26;--accent-border:#c084fc80;--social-bg:#2f303a80;--shadow:#0006 0 10px 15px -3px, #00000040 0 4px 6px -2px}#social .button-icon{filter:invert()brightness(2)}}body{margin:0}#root{text-align:center;border-inline:1px solid var(--border);box-sizing:border-box;flex-direction:column;width:100%;max-width:100%;height:100dvh;margin:0 auto;display:flex}#main-content{flex-direction:column;flex:1;min-height:0;display:flex;overflow:auto}:root{--keymi-bg:#16141f;--keymi-border:#2c2838;--keymi-text:#e8e6ef;--keymi-muted:#9a95ab;--keymi-accent:#8b5cf6;--keymi-accent-hover:#a07bfa}.skip-link{z-index:200;background:var(--keymi-accent);color:#fff;border-radius:6px;padding:8px 14px;font-weight:600;text-decoration:none;position:absolute;top:-100px;left:12px}.skip-link:focus{top:8px}h1,h2{font-family:var(--heading);color:var(--text-h);font-weight:500}h1{letter-spacing:-1.68px;margin:32px 0;font-size:56px}@media (width<=1024px){h1{margin:20px 0;font-size:36px}}h2{letter-spacing:-.24px;margin:0 0 8px;font-size:24px;line-height:118%}@media (width<=1024px){h2{font-size:20px}}p{margin:0}code,.counter{font-family:var(--mono);color:var(--text-h);border-radius:4px;display:inline-flex}code{background:var(--code-bg);padding:4px 8px;font-size:15px;line-height:135%}.editor-container{color:#fff;background:#222;flex-direction:column;align-items:center;padding:20px;font-family:sans-serif;display:flex}.controls{margin-bottom:20px}button{cursor:pointer;color:#fff;background:#444;border:1px solid #666;margin:0 5px;padding:10px 20px;font-weight:700}button:hover{background:#666}button:disabled{cursor:not-allowed;opacity:.55}.record-button.record-button--active,.record-button.record-button--active:hover,.record-button.record-button--active:disabled{color:#dc2626;opacity:1}.grid-wrapper{border:2px solid #444;display:inline-block;position:relative}.grid{background:#333;gap:2px;padding:2px;display:grid}.cell{cursor:pointer;background:#444;border-radius:2px;width:30px;height:30px;transition:background .1s}.cell:hover{background:#555}.cell.active{background:#006eff}.cell.playing{border:1px solid #fff}.cell.ghost-correct{background-color:#50c8784d;border-color:#ff5050b3}.cell.ghost-incorrect{background-color:#ff50504d;border-color:#ff5050b3}.playhead{pointer-events:none;background:#ffffff80;width:2px;transition:left .1s linear;position:absolute;top:0;bottom:0}.piano-roll-wrapper{flex-direction:row;display:flex}.piano-keys{flex-direction:column;width:40px;display:flex}.piano-key{cursor:pointer;box-sizing:border-box;border:1px solid #000;flex:1}.pianoRollLabels{flex-direction:column;height:390px;display:flex}.note-labels{flex-direction:column;justify-content:center;padding-right:2px;display:flex}.note-label{color:#fff;flex:1;align-items:center;font-size:11px;display:flex}.white-key{background-color:#fff}.black-key{background-color:#000}.editor-wrapper{flex-direction:column;display:flex}.pianoRoll{flex-direction:row;display:flex}#volumeSlider{accent-color:#d0d0d0}#rootNoteInput{width:15px;height:15px;margin-right:5px}select{width:60px;height:20px}.midi-editor{box-sizing:border-box;flex:1;align-items:stretch;gap:0;width:100%;max-width:100vw;min-height:0;padding:0 10px;overflow:hidden}#editorControls{background-color:#11141b;border-radius:6px 6px 0 0;flex-wrap:wrap;flex-shrink:0;justify-content:space-between;align-items:center;gap:8px;margin:0;padding:3px 0;display:flex}#editorControls button{padding-top:8px;padding-bottom:8px}.compact-control-row{align-items:center;gap:4px;display:flex}.composition-summary{white-space:nowrap;margin-left:4px}.button-control-group{gap:4px;display:flex}.tool-button,.flush-button{margin:0}.tool-button.tool-button--selected{background:#2563eb;border-color:#93c5fd}.slider-label--horizontal{align-items:center;gap:8px;display:flex}.slider-label--vertical{gap:3px;display:grid}.grid-zoom-slider{width:130px}.export-format-button{margin:0}.project-name-input{box-sizing:border-box;width:140px}.editor-status-message{color:#cbd5e1;text-align:center;flex-shrink:0;min-height:1.4em;margin:0}.piano-roll-viewport{background:#1e293b;border:1px solid #475569;border-radius:0 0 6px 6px;flex:1 1 0;width:100%;min-height:100px;overflow:auto}.piano-roll-viewport::-webkit-scrollbar{width:10px;height:10px}.piano-roll-viewport::-webkit-scrollbar-thumb{background-color:#494949;border-radius:10px}.piano-roll-viewport::-webkit-scrollbar-track{background-color:#868686;border-radius:10px}.piano-roll-content{min-width:calc(88px + attr(data-grid-width type(<length>), 200px))}.piano-roll-timeline{z-index:5;height:34px;display:flex;position:sticky;top:0}.pitch-header{z-index:7;box-sizing:border-box;background:#0f172a;border-right:1px solid #64748b;width:88px;min-width:88px;padding:2px;font-size:12px;font-weight:700;position:sticky;left:0}.timeline-steps,.piano-note-grid{--step-width:attr(data-step-width type(<length>), 14px);--total-steps:attr(data-total-steps type(<integer>), 16);--grid-width:attr(data-grid-width type(<length>), 239px);grid-template-columns:repeat(var(--total-steps), var(--step-width));width:var(--grid-width);gap:1px;display:grid}.timeline-steps{background:#0f172a}.timeline-step{box-sizing:border-box;color:#94a3b8;height:34px;box-shadow:none;text-align:center;cursor:pointer;background:0 0;border-left:0;padding-top:4px;font-size:9px;font-weight:400}.timeline-step--beat-start{border-left:1px solid #64748b}.timeline-step--measure-start{color:#f8fafc;border-left:2px solid #f59e0b;font-size:10px;font-weight:700}.timeline-step--playhead{background:#fb718540;box-shadow:inset 3px 0 #fb7185}.piano-roll-chord-lane{z-index:5;background:#0f172a;border-bottom:1px solid #64748b;height:30px;display:flex;position:sticky;top:34px}.chord-lane-header{z-index:7;box-sizing:border-box;color:#f8fafc;background:#0f172a;border-right:1px solid #64748b;width:88px;min-width:88px;padding:2px;font-size:11px;font-weight:700;position:sticky;left:0}.lane-tool-button{white-space:nowrap;border-radius:3px;width:100%;height:100%;margin:0;padding:2px 4px;font-size:10px;line-height:1}.chord-lane-steps{--step-width:attr(data-step-width type(<length>), 14px);--total-steps:attr(data-total-steps type(<integer>), 16);--grid-width:attr(data-grid-width type(<length>), 239px);grid-template-columns:repeat(var(--total-steps), var(--step-width));width:var(--grid-width);min-width:var(--grid-width);background:#1e293b;grid-template-rows:29px;gap:0 1px;display:grid}.chord-lane-step{grid-column:attr(data-grid-column type(<integer>), 1);border-left:1px solid #334155;grid-row:1}.chord-lane-step--beat-start{border-left-color:#64748b}.chord-lane-step--measure-start{border-left:2px solid #f59e0b}.chord-lane-step--playhead{z-index:2;pointer-events:none;background:#fb718540;border-left:3px solid #fb7185}.chord-lane-segment{grid-column-start:attr(data-grid-column type(<integer>), 1);grid-column-end:span attr(data-duration type(<integer>), 1);z-index:1;box-sizing:border-box;color:#1c1917;text-overflow:ellipsis;white-space:nowrap;background:#f59e0b;border:1px solid #fed7aa;border-radius:4px;grid-row:1;min-width:0;padding:5px 6px;font-size:11px;font-weight:800;overflow:hidden}.chord-lane-segment--editing{color:#431407;background:#fb923c;border-color:#fff7ed;box-shadow:inset 0 0 0 1px #c2410c}.piano-roll-editor{align-items:flex-start;display:flex}.piano-keys{--row-height:attr(data-row-height type(<length>), 28px);z-index:4;background:#0f172a;width:88px;min-width:88px;position:sticky;left:0}.piano-key-button{box-sizing:border-box;width:100%;height:calc(var(--row-height) + 1px);min-height:calc(var(--row-height) + 1px);box-shadow:none;text-align:right;cursor:pointer;border-top:0;border-bottom:1px solid #334155;border-left:0;border-right:1px solid #64748b;border-radius:0;margin:0;padding:0 8px;font-size:11px;font-weight:500}.piano-key-button[data-pitch-class=C]{font-weight:800}.piano-key-button.piano-key-button--black{color:#f8fafc;background:#111827}.piano-key-button.piano-key-button--white{color:#0f172a;background:#e2e8f0}.piano-key-button.piano-key-button--selected{color:#082f49;background:#38bdf8;box-shadow:inset 0 0 0 2px #e0f2fe}.piano-key-button.piano-key-button--playing{color:#1c1917;background:#f59e0b;box-shadow:inset 0 0 0 2px #fef3c7}.piano-note-grid{--row-height:attr(data-row-height type(<length>), 28px);grid-template-rows:repeat(88, var(--row-height));background:#334155}.piano-grid-cell{--cell-outline:0 0 transparent;--row-highlight-top:0 0 transparent;--row-highlight-bottom:0 0 transparent;--playhead-highlight:0 0 transparent;box-sizing:border-box;z-index:0;width:var(--step-width);height:var(--row-height);box-shadow:var(--cell-outline), var(--row-highlight-top), var(--row-highlight-bottom), var(--playhead-highlight);cursor:pointer;opacity:1;border:0;border-left:1px solid #0000;border-radius:0;outline:0;margin:0;padding:0;position:relative}.piano-grid-cell.piano-grid-cell--black{background:#273449}.piano-grid-cell.piano-grid-cell--white{background:#35445a}.piano-grid-cell--selection-row.piano-grid-cell--black{background:#35536a}.piano-grid-cell--selection-row.piano-grid-cell--white{background:#49677d}.piano-grid-cell--selection-row{--row-highlight-top:inset 0 2px 0 #7dd3fce6;--row-highlight-bottom:inset 0 -2px 0 #7dd3fce6}.piano-grid-cell.piano-grid-cell--hover-in-scale{--cell-outline:inset 0 0 0 1px #50c878;background:#50c8789e}.piano-grid-cell.piano-grid-cell--hover-out-of-scale{--cell-outline:inset 0 0 0 1px #ff5050;background:#ff50509e}.piano-grid-cell.piano-grid-cell--draft{z-index:1;background:#38bdf8}.piano-grid-cell.piano-grid-cell--recording-draft{z-index:4;background:#0ea5e9db;box-shadow:inset 0 2px #bae6fd,inset 0 -2px #0369a1}.piano-grid-cell.piano-grid-cell--recording-start{border-left:2px solid #fff;border-radius:4px 0 0 4px}.piano-grid-cell.piano-grid-cell--recording-end{border-right:2px solid #e0f2fe;border-radius:0 4px 4px 0}.piano-grid-cell.piano-grid-cell--recording-start.piano-grid-cell--recording-end{border-radius:4px}.piano-grid-cell.piano-grid-cell--active{z-index:1;background:#2563eb;border-left:0}.piano-grid-cell.piano-grid-cell--anchor-new{--cell-outline:inset 0 0 0 2px #fff;background:#0ea5e9}.piano-grid-cell.piano-grid-cell--anchor-editing{--cell-outline:inset 0 0 0 2px #fff;background:#f59e0b}.piano-grid-cell.piano-grid-cell--draft-out-of-scale,.piano-grid-cell.piano-grid-cell--selected-note-out-of-scale{background:#ff50509e}.piano-grid-cell.piano-grid-cell--playhead{--playhead-highlight:inset 3px 0 0 #fb7185}.piano-grid-playhead-column{z-index:3;box-sizing:border-box;pointer-events:none;background:#fb718514;border-left:3px solid #fb7185;position:absolute;top:0}.piano-grid-cell.piano-grid-cell--note-start{z-index:2;border:2px solid #e0f2fe}.piano-grid-cell--note-start.piano-grid-cell--note-end{border-radius:4px}.piano-grid-cell--note-start:not(.piano-grid-cell--note-end){border-radius:4px 0 0 4px}.piano-grid-cell--note-end:not(.piano-grid-cell--note-start){border-radius:0 4px 4px 0}.piano-grid-cell--note-continues{width:calc(var(--step-width) + 1px)}.piano-grid-cell.piano-grid-cell--playhead{z-index:3}.piano-grid-cell--measure-start{border-left:2px solid #f59e0b}.piano-grid-cell--beat-start{border-left:1px solid #64748b}.piano-grid-cell--disabled{cursor:not-allowed;opacity:.55}.piano-grid-cell:disabled{cursor:not-allowed}.piano-grid-cell.piano-grid-cell--chord-placed{z-index:2;background:#d97706;border-top:2px solid #ffedd5;border-bottom:2px solid #ffedd5}.piano-grid-cell.piano-grid-cell--chord-start{z-index:3;background:#f59e0b;border:2px solid #fff7ed;border-right-color:#fed7aa;border-radius:5px 0 0 5px;box-shadow:inset 4px 0 #7c2d12,0 0 0 1px #fffc}.piano-grid-cell.piano-grid-cell--chord-end{border-right:2px solid #ffedd5;border-radius:0 4px 4px 0}.piano-grid-cell.piano-grid-cell--chord-start.piano-grid-cell--chord-end{border:2px solid #fff7ed;border-radius:5px}.piano-grid-cell.piano-grid-cell--chord-editing{background:#fb923c;border-top-color:#fff7ed;border-bottom-color:#fff7ed}.piano-grid-cell.piano-grid-cell--chord-editing.piano-grid-cell--chord-start{background:#fdba74;box-shadow:inset 4px 0 #9a3412,0 0 0 2px #fff7ed}.piano-grid-cell.piano-grid-cell--chord-draft{z-index:2;background:#f59e0b;box-shadow:inset 0 0 0 1px #fed7aa}.piano-grid-cell.piano-grid-cell--chord-ghost{z-index:1;background:#f59e0bb8;box-shadow:inset 0 0 0 1px #fed7aa}.piano-grid-cell.piano-grid-cell--chord-anchor{box-shadow:inset 0 0 0 2px #fff,inset 4px 0 #9a3412}.piano-grid-cell--chord-selection-column{grid-column:attr(data-grid-column type(<integer>), 1) / attr(data-grid-column-end type(<integer>), 2);background-image:linear-gradient(#fb923c33,#fb923c33);grid-row:1/-1;box-shadow:inset 1px 0 #fdba7473,inset -1px 0 #fdba7473}.piano-grid-stack{--step-width:attr(data-step-width type(<length>), 14px);--row-height:attr(data-row-height type(<length>), 28px);--total-steps:attr(data-total-steps type(<integer>), 16);width:attr(data-grid-width type(<length>), 239px);height:attr(data-grid-height type(<length>), 2463px);flex:none;position:relative}.piano-grid-overlay{z-index:4;grid-template-columns:repeat(var(--total-steps), var(--step-width));grid-template-rows:repeat(88, var(--row-height));pointer-events:none;gap:1px;display:grid;position:absolute;inset:0;overflow:hidden}.piano-grid-overlay>.piano-grid-cell{grid-column:attr(data-grid-column type(<integer>), 1);grid-row:attr(data-grid-row type(<integer>), 1);width:auto;height:auto}.piano-grid-overlay>.piano-grid-playhead-column{grid-column:attr(data-grid-column type(<integer>), 1);grid-row:1/-1;width:auto;height:auto;position:relative;top:auto}.piano-grid-cell--chord-before-start{cursor:not-allowed;filter:saturate(.7)brightness(.8)}.piano-roll-instructions{color:#94a3b8;text-align:center;flex-shrink:0;margin:0;font-size:13px}.piano-roll-volume-lane{z-index:5;background:#0f172a;border-top:1px solid #64748b;height:30px;display:flex;position:sticky;bottom:0}.piano-roll-volume-lane-header{z-index:4;box-sizing:border-box;color:#f8fafc;background:#0f172a;border-right:1px solid #64748b;justify-content:center;align-items:center;width:88px;min-width:88px;padding:14px 6px;font-size:11px;font-weight:700;display:inline-flex;position:sticky;left:0}.piano-roll-volume-measures{width:attr(data-grid-width type(<length>), 239px);min-width:attr(data-grid-width type(<length>), 239px);display:flex}.piano-roll-volume-measure{box-sizing:border-box;flex:0 0 attr(data-measure-width type(<length>), 239px);color:#f8fafc;border-left:2px solid #f59e0b;justify-content:center;align-items:center;gap:5px;min-width:0;font-size:11px;display:flex}.piano-roll-volume-input{box-sizing:border-box;width:56px;height:27px;padding:2px 4px}.editor-settings-panel{flex-wrap:wrap;flex-shrink:0;justify-content:space-between;align-items:center;gap:12px;min-height:0;margin-top:3px;margin-bottom:3px;display:flex;overflow:hidden}.editor-settings-panel button{border-radius:3px;justify-content:center;align-items:center;padding:5px;display:inline-flex}.tempo-volume-controls{flex-shrink:0;align-content:center;gap:8px;display:grid}.bpm-input{box-sizing:border-box;width:50px}.chord-editor{box-sizing:border-box;background:#1e293b;border:1px solid #64748b;border-radius:6px;flex:none;width:100%;min-width:0;padding:8px}.chord-editor summary{cursor:pointer}.chord-management-controls,.chord-edit-controls{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.chord-management-controls{justify-content:space-between;gap:16px;padding-top:8px}.chord-management-controls button{border-radius:3px;margin:0}#activeChordSelect{width:max-content;max-width:none}.display-controls{flex-wrap:wrap;flex:0 auto;justify-content:center;gap:8px;min-width:0;display:flex}.keyboard-instrument-info-image{max-width:100%;margin-top:16px;display:block}#clearNotesButton{justify-content:center;align-items:center;width:50px;display:inline-flex}#measureCountInput{width:50px}#pianoRollViewport{margin:0;padding:0}#playbackControls button{background-color:#01010100;border-width:0;justify-content:center;align-items:center;width:25px;height:30px;margin:0;padding:0;display:inline-flex}#midiEditor details{margin-top:3px;margin-bottom:3px}#midiControls{justify-content:space-between;align-items:center;gap:8px;margin-left:4px;display:flex}#midiControls label{gap:4px;padding-right:0;font-size:15px}#clearNotesButton{border-radius:2px;width:50px;height:30px}#saveExport{justify-content:center;align-items:center;gap:5px;display:flex}#exportControls{align-items:center}#projectSaveControls button{border-radius:2px;justify-content:center;align-items:center;height:30px;padding:3px;display:inline-flex}#exportControls button{border-radius:2px;justify-content:center;align-items:center;width:50px;height:30px;display:inline-flex}#showLabelsButton{width:85px;padding-left:3px;padding-right:3px}body{background:#222}.chords{--chord-color:#a6a6a6;background:var(--chord-color);color:#000;text-align:center;border-radius:10px;width:96px;height:96px;margin-top:10px}.chords:hover{background:color-mix(in srgb, var(--chord-color) 80%, black)}.qualitySelection{color:#fff;text-align:center;border-radius:10px;width:80px;height:80px;margin-top:5px;margin-bottom:5px}.qualitySelection--major{background-color:#6e92e0}.qualitySelection--minor{background-color:#dc2626}.chords.selectedChordSuggestion{color:#fff;border-width:5px;border-color:#fff}.scalePosition-1{--chord-color:#630a9f}.scalePosition-2{--chord-color:#410a9f}.scalePosition-3{--chord-color:#1e0a9f}.scalePosition-4{--chord-color:#0a379f}.scalePosition-5{--chord-color:#0a849f}.scalePosition-6{--chord-color:#0a9f89}.scalePosition-7{--chord-color:#0a9f5c}p{color:#fff}h1{color:#fff;font-size:44px}.progressionDiv{flex-wrap:wrap;justify-content:center;align-items:center;margin-bottom:10px;display:flex}.progressionSeparator{color:#fff;font-size:24px;font-weight:700}.progressionChordItem{align-items:center;display:flex}.progressionChordPreview{box-sizing:border-box;border:1px solid #666;justify-content:center;align-items:center;padding:10px 20px;font-weight:700;display:inline-flex}.keySelections{grid-template-columns:repeat(4,auto);gap:8px;width:fit-content;margin:0 auto;padding:5px;display:grid}.keySelections button{--key-color:#d0d0d0;background:var(--key-color);color:#fff;text-shadow:0 1px 2px #0000008c;border-radius:10px;width:90px;height:90px}.keySelections button:first-child{--key-color:#630a9f}.keySelections button:nth-child(2){--key-color:#7a44ef}.keySelections button:nth-child(3){--key-color:#9c44ef}.keySelections button:nth-child(4){--key-color:#6f44ef}.keySelections button:nth-child(5){--key-color:#5844ef}.keySelections button:nth-child(6){--key-color:#446fef}.keySelections button:nth-child(7){--key-color:#4486ef}.keySelections button:nth-child(8){--key-color:#449fef}.keySelections button:nth-child(9){--key-color:#44bcef}.keySelections button:nth-child(10){--key-color:#44d8ef}.keySelections button:nth-child(11){--key-color:#44efd2}.keySelections button:nth-child(12){--key-color:#44ef9f}.keySelections button:hover{background:color-mix(in srgb, var(--key-color) 65%, black)}.keySelections button.selectedKey,.qualitySelections button.selectedQuality{border:5px solid #ffffffbf;box-shadow:0 0 #222,0 0 8px silver}.setupSuggestions{--suggestion-panel-height:490px;width:min(920px,100% - 32px);height:var(--suggestion-panel-height);background-color:#868686;border:1px solid #111;border-radius:20px;flex-wrap:wrap;place-content:space-between center;align-items:stretch;margin:32px auto;display:flex;overflow:hidden}.setupSuggestionBox{flex-direction:column;flex:360px;align-items:center;min-height:300px;padding:0 16px 16px;display:flex}.startingChords{flex-wrap:wrap;justify-content:center;gap:8px;display:flex}.startingChords .chords{margin-top:0}.setupSuggestionsTitle{color:#000;margin:14px 0 10px;font-weight:700}.setupSuggestionsSeparator{background-color:#333;border-radius:10px;width:5px;margin:44px 0 16px}.setupActionButtons{border-top:1px solid #333;flex:0 0 100%;gap:10px;padding:10px;display:flex}.setupActionButtons button{border-radius:10px;flex:1 1 0;min-height:40px}@media (width<=760px){.setupSuggestions,.chordSuggestions{height:auto}.setupSuggestions{display:block}.setupSuggestionsSeparator{width:auto;height:5px;margin:0 16px;display:block}}.startingChords button.selectedStartingChord{border:5px solid #ffffffbf;box-shadow:0 0 #222,0 0 8px silver}.suggestionsDiv{padding:5px 50px 0}#undo{border-radius:10px;width:80px;margin-top:5px}#export{border-radius:10px;width:180px}#play{border-radius:10px}.chordSuggestions{background-color:#868686;border-color:#000;border-radius:20px;flex-direction:column;width:min(920px,100% - 32px);height:490px;margin:12px auto 0;display:flex;overflow:hidden}.chordSuggestionColumns{flex:auto;align-items:center;min-width:0;min-height:0;display:flex}#chordSuggestionBox{flex-direction:column;flex:1 1 0;width:auto;height:300px;min-height:0;max-height:300px;display:flex;overflow:hidden}.chordSuggestionList{flex-wrap:wrap;flex:auto;align-content:flex-start;min-height:0;padding:5px;display:flex;overflow:hidden auto}.chordSuggestionList::-webkit-scrollbar{width:10px}.extensionSuggestionList::-webkit-scrollbar{width:10px}.chordSuggestionList::-webkit-scrollbar-thumb{background-color:#494949;border-radius:10px}.extensionSuggestionList::-webkit-scrollbar-thumb{background-color:#494949;border-radius:10px}.chordSuggestionList::-webkit-scrollbar-track{background-color:#868686;border-radius:10px;margin-top:15px;margin-bottom:15px}.extensionSuggestionList::-webkit-scrollbar-track{background-color:#868686;border-radius:10px;margin-top:15px;margin-bottom:15px}#extensionSuggestionBox{flex-direction:column;flex:1 1 0;width:auto;height:300px;min-height:0;max-height:300px;display:flex;overflow:hidden}.extensionSuggestionList{flex-wrap:wrap;flex:auto;align-content:flex-start;min-height:0;padding:5px;display:flex;overflow:hidden auto}.extensionSuggestion{color:#000;background-color:#673cbb;border-radius:10px;width:96px;height:96px;margin-top:10px}.extensionSuggestion.selectedExtensionSuggestion{border:5px solid #ffffffbf;box-shadow:0 0 #222,0 0 8px silver}.extensionStatus{color:#000;text-align:center;width:100%}.extensionActionButtons{border-top:1px solid #333;width:100%;display:flex}.progressionActionButtons{box-sizing:border-box;border-top:1px solid #333;gap:10px;width:100%;padding:10px;display:flex}.progressionActionButtons button{border-radius:10px;flex:1 1 0;min-height:40px;margin:0}.progressionActionButtons #undo,.progressionActionButtons #export{width:auto}#previewSelectedChord,#addChordToProgression{border-radius:10px;flex:1 1 0;margin:8px 10px 10px}#chordSuggestionsSeperator{background-color:#333;border-radius:10px;width:5px;height:200px;margin-left:4px}#chordSuggestionsTitle{color:#000;margin-top:10px;font-weight:700}#volumeSliderDiv{justify-content:center;align-items:center;display:flex}#volumeSliderDiv label{justify-items:center;width:150px}#volumeSlider{accent-color:#d0d0d0;width:150px}.dashboard{box-sizing:border-box;background:var(--keymi-bg);color:var(--keymi-text);text-align:left;flex:1;padding:24px 20px 40px;font:15px system-ui,sans-serif}.dashboard__bar,.dashboard__note,.dashboard__error,.dashboard__list{max-width:820px;margin-left:auto;margin-right:auto}.dashboard__bar{align-items:baseline;gap:12px;margin-bottom:20px;display:flex}.dashboard__title{color:var(--keymi-text);letter-spacing:-.2px;margin:0;font-size:24px;font-weight:600}.dashboard__count{color:var(--keymi-muted);font-size:13px}.dashboard__refresh{border:1px solid var(--keymi-border);color:var(--keymi-text);font:inherit;cursor:pointer;background:0 0;border-radius:6px;margin:0 0 0 auto;padding:6px 12px}.dashboard__refresh:hover:not(:disabled){border-color:var(--keymi-accent);background:#ffffff0f}.dashboard__refresh:disabled{opacity:.55;cursor:not-allowed}.dashboard__new{border:1px solid var(--keymi-accent);background:var(--keymi-accent);color:#fff;border-radius:6px;padding:7px 13px;font-weight:600;text-decoration:none}.dashboard__new:hover{border-color:var(--keymi-accent-hover);background:var(--keymi-accent-hover)}.dashboard__note{color:var(--keymi-muted);margin-bottom:16px}.dashboard__error{color:#fca5a5;background:#f871711f;border:1px solid #f87171;border-radius:6px;margin-bottom:16px;padding:10px 14px}.dashboard__list{gap:10px;padding:0;list-style:none;display:grid}.project-card{border:1px solid var(--keymi-border);background:#ffffff08;border-radius:10px;align-items:center;gap:12px;padding:14px 16px;display:flex}.project-card__text{flex:1;min-width:0}.project-card__name{color:var(--keymi-text);white-space:nowrap;text-overflow:ellipsis;margin:0;font-size:16px;font-weight:600;overflow:hidden}.project-card__open{color:inherit;text-decoration:none}.project-card__open:hover{color:var(--keymi-accent);text-decoration:underline}.project-card__meta{color:var(--keymi-muted);margin:3px 0 0;font-size:13px}.project-card__badge{border:1px solid var(--keymi-accent);color:var(--keymi-accent);border-radius:999px;flex-shrink:0;padding:2px 9px;font-size:12px;font-weight:600}.project-card__badge--private{color:#fca5a5;border-color:#f87171}.project-card__actions{flex-shrink:0;position:relative}.project-card__menu-button{border:1px solid var(--keymi-border);color:var(--keymi-text);font:inherit;cursor:pointer;background:0 0;border-radius:6px;margin:0;padding:6px 10px;line-height:1}.project-card__menu-button:hover:not(:disabled){border-color:var(--keymi-accent);background:#ffffff0f}.project-card__menu-button:disabled{opacity:.55;cursor:not-allowed}.project-card__menu{z-index:1;border:1px solid var(--keymi-border);background:#211e2c;border-radius:8px;min-width:150px;padding:4px;display:grid;position:absolute;top:calc(100% + 4px);right:0;box-shadow:0 8px 20px #00000073}.project-card__menu-item{color:var(--keymi-text);font:inherit;white-space:nowrap;text-align:left;cursor:pointer;background:0 0;border:none;border-radius:5px;margin:0;padding:7px 10px}.project-card__menu-item:hover:not(:disabled){background:#ffffff14}.project-card__menu-item:disabled{opacity:.55;cursor:not-allowed}.project-card__menu-item--danger{border-top:1px solid var(--keymi-border);color:#fca5a5;border-radius:0 0 5px 5px;margin-top:4px;padding-top:9px}.project-card__menu-item--danger:hover:not(:disabled){background:#f8717124}.project-card__rename{align-items:center;gap:8px;display:flex}.project-card__input{border:1px solid var(--keymi-border);background:var(--keymi-bg);min-width:0;color:var(--keymi-text);font:inherit;border-radius:6px;flex:1;padding:5px 9px}.project-card__input:focus{border-color:var(--keymi-accent);outline:none}.project-card__save,.project-card__cancel{border:1px solid var(--keymi-border);color:var(--keymi-text);font:inherit;cursor:pointer;background:0 0;border-radius:6px;flex-shrink:0;margin:0;padding:5px 11px}.project-card__save{border-color:var(--keymi-accent);background:var(--keymi-accent);color:#fff;font-weight:600}.project-card__save:hover:not(:disabled){border-color:var(--keymi-accent-hover);background:var(--keymi-accent-hover)}.project-card__cancel{color:var(--keymi-muted)}.project-card__cancel:hover:not(:disabled){border-color:var(--keymi-accent);color:var(--keymi-text)}.project-card__save:disabled,.project-card__cancel:disabled{opacity:.55;cursor:not-allowed}.dashboard :focus-visible{outline:2px solid var(--keymi-accent);outline-offset:2px}@media (width<=560px){.dashboard{padding:16px 12px 32px}.project-card{flex-wrap:wrap}.project-card__text{flex-basis:100%}}.login-page{--login-bg:#1c1c20;--login-surface:#26262b;--login-field:#1c1c20;--login-line:#3d3d45;--login-text:#f2f2f4;--login-muted:#a3a3ad;--login-accent:#006eff;--login-accent-hover:#2b87ff;--login-error:#ff8f8f;box-sizing:border-box;background:var(--login-bg);color:var(--login-text);flex:1;place-items:center;padding:24px;font-family:system-ui,Segoe UI,Roboto,sans-serif;display:grid}.login-card{background:var(--login-surface);border:1px solid var(--login-line);border-radius:14px;width:100%;max-width:420px;overflow:hidden}.login-keys{border-bottom:3px solid var(--login-accent);background:#111;height:72px;display:flex;position:relative}.login-key-white{background:#f4f4f6;border-right:1px solid #c9c9cf;flex:1}.login-key-white:nth-child(14){border-right:none}.login-key-black{background:#1a1a1d;border-radius:0 0 3px 3px;width:4.5%;height:60%;position:absolute;top:0}.login-body{padding:28px 32px 32px}.login-title{color:var(--login-text);margin:0 0 8px;font-size:1.6rem;line-height:1.2}.login-subtitle{color:var(--login-muted);margin:0 0 24px;font-size:.95rem;line-height:1.5}.login-form{flex-direction:column;gap:16px;display:flex}.login-field{color:var(--login-muted);flex-direction:column;gap:6px;font-size:.9rem;display:flex}.login-field input{font:inherit;color:var(--login-text);background:var(--login-field);border:1px solid var(--login-line);border-radius:8px;padding:11px 12px;font-size:1rem}.login-field input:focus-visible,.login-button:focus-visible,.login-switch button:focus-visible{outline:2px solid var(--login-accent);outline-offset:2px}.login-error{color:var(--login-error);background:#ff50501f;border-radius:8px;margin:0;padding:10px 12px;font-size:.9rem}.login-button{width:100%;font:inherit;cursor:pointer;border-radius:8px;padding:12px;font-weight:600}.login-button:disabled{opacity:.55;cursor:not-allowed}.login-button-primary{color:#fff;background:var(--login-accent);border:1px solid var(--login-accent)}.login-button-primary:hover:not(:disabled){background:var(--login-accent-hover)}.login-button-secondary{color:var(--login-text);border:1px solid var(--login-line);background:0 0}.login-button-secondary:hover:not(:disabled){background:#303036}.login-divider{color:var(--login-muted);align-items:center;gap:12px;margin:20px 0;font-size:.85rem;display:flex}.login-divider:before,.login-divider:after{content:"";background:var(--login-line);flex:1;height:1px}.login-switch{text-align:center;color:var(--login-muted);margin:20px 0 0;font-size:.9rem}.login-switch button{font:inherit;color:var(--login-accent-hover);cursor:pointer;background:0 0;border:none;padding:0;text-decoration:underline}@media (width<=480px){.login-body{padding:24px 20px 28px}}.profile{box-sizing:border-box;width:100%;max-width:760px;color:var(--keymi-text);text-align:left;font:18px/1.5 var(--sans);margin:48px auto;padding:0 24px}.profile h1,.profile h2{color:inherit;letter-spacing:normal;margin:0 0 24px;font-size:40px;font-weight:700}.profile h2{margin-bottom:4px;font-size:17px}.profile section{border:1px solid var(--keymi-border);border-radius:12px;margin-bottom:16px;padding:32px}.profile__identity{align-items:center;gap:20px;display:flex}.profile__avatar{border-radius:50%;flex-shrink:0;width:96px;height:96px;overflow:hidden}.profile__avatar img{object-fit:cover;width:100%;height:100%;display:block}.profile__name{color:inherit;font-size:26px;font-weight:700}.profile__muted,.profile dt,.profile label{color:var(--keymi-muted);font-size:15px}.profile dl{margin:28px 0 0}.profile dd{margin:0 0 16px}.profile__row{gap:8px;margin-top:4px;display:flex}.profile input{border:1px solid var(--keymi-border);background:var(--keymi-bg);color:inherit;font:inherit;border-radius:6px;flex:1;padding:8px 10px}.profile button,.profile button:hover{background:var(--keymi-accent);color:#fff;font:inherit;border:none;border-radius:6px;margin:0;padding:8px 16px;font-weight:600}.profile button:hover:not(:disabled){background:var(--keymi-accent-hover)}.profile :focus-visible{outline:2px solid var(--keymi-accent);outline-offset:2px}.profile__message{margin-top:8px;font-size:14px}.profile__message--success{color:#4ade80}.profile__message--error{color:#f87171}.site-header{background:var(--keymi-bg);border-bottom:1px solid var(--keymi-border);flex-shrink:0;align-items:center;gap:24px;height:56px;padding:0 20px;font:15px system-ui,sans-serif;display:flex}.site-header ul{gap:4px;margin:0;padding:0;list-style:none;display:flex}.site-header__logo img{height:40px;display:block}.site-header__account{gap:8px;margin-left:auto;display:flex}.site-header__link,.site-header__button{color:var(--keymi-muted);font:inherit;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:6px;margin:0;padding:6px 12px;text-decoration:none}.site-header__link:hover,.site-header__button:hover{color:var(--keymi-text);background:#ffffff0f}.site-header__link--active{color:var(--keymi-text);-webkit-text-decoration:underline 2px var(--keymi-accent);text-decoration:underline 2px var(--keymi-accent);text-underline-offset:6px;font-weight:700}.site-header__button{border-color:var(--keymi-border);color:var(--keymi-text)}.site-header__button--primary,.site-header__button--primary:hover{border-color:var(--keymi-accent);background:var(--keymi-accent);color:#fff}.site-header :focus-visible{outline:2px solid var(--keymi-accent);outline-offset:2px}
