.piano-chord{flex-direction:column;flex-shrink:0;gap:4px;display:inline-flex}.piano-chord__label{color:#737373;font-family:monospace;font-size:.85rem;font-weight:100}.piano-chord__keyboard{scroll-snap-type:mandatory x;scroll-snap-align:center;border:1px solid #6e55f0;border-radius:4px;width:110px;height:56px;display:flex;position:relative;overflow:hidden}.piano-chord__white-key{background:#fff;border-radius:0 0 2px 2px;outline:1px solid #a99dff;flex:1;box-shadow:inset 0 0 2px #00000040}.piano-chord__white-key:last-child{border-right:none}.piano-chord__white-key--active{background:#c7beff;box-shadow:inset 0 0 5px #ffffff40}.piano-chord__black-key{z-index:2;background:#000;border-radius:0 0 3px 3px;height:58%;position:absolute;top:0;box-shadow:inset 0 -1px 3px #ffffffd9}.piano-chord__black-key--active{background:#6e55f0;box-shadow:inset 0 -1px 2px #ffffffd9}
.guitar-chord{flex-direction:column;flex-shrink:0;gap:4px;min-width:70px;display:inline-flex}.guitar-chord__label{color:#737373;font-family:monospace;font-size:.85rem;font-weight:100}.guitar-chord__frame{line-height:0;display:block}.guitar-chord__diagram{display:block}.guitar-chord__fret-line,.guitar-chord__string-line{stroke:#d4d4d4;stroke-width:.75px}.guitar-chord__dot,.guitar-chord__barre{fill:#6e55f0}.guitar-chord__string-label{text-anchor:middle;dominant-baseline:auto;fill:#a3a3a3;font-family:monospace;font-size:6px}.guitar-chord__string-label--active{fill:#6e55f0;font-weight:700}.guitar-chord__unknown{color:#a3a3a3;border:1px solid #6e55f0;border-radius:4px;justify-content:center;align-items:center;width:70px;height:96px;font-size:1.2rem;display:flex}
.song-page-body{background-color:#fff;flex-direction:column;gap:1.5rem;padding:1.5rem;display:flex}.song-page-body__piano-section{flex-direction:column;gap:.75rem;display:flex}.song-page-body__piano-header{justify-content:space-between;align-items:center;display:flex}.song-page-body__chord-controls{align-items:center;gap:.5rem;display:flex}.song-page-body__chord-eye{cursor:pointer;color:#737373;-webkit-tap-highlight-color:#0000;background:0 0;border:none;border-radius:6px;align-items:center;padding:4px;transition:color .15s;display:flex}.song-page-body__chord-eye:hover{color:#6e55f0}.song-page-body__chord-eye--inactive{color:#d4d4d4}.song-page-body__chords--names-hidden .chords-line__chord{opacity:0;overflow:hidden;min-height:0!important;max-height:0!important}.song-page-body__chord-scroll-wrapper{grid-template-rows:1fr;margin-inline:-1.5rem;transition:grid-template-rows .35s;display:grid;overflow:hidden}.song-page-body__chord-scroll-wrapper--hidden{grid-template-rows:0fr}.song-page-body__chord-scroll-inner{min-height:0}.song-page-body__piano-title{color:#6e55f0;margin:0;font-size:1.1rem;font-weight:800}.song-page-body__chord-toggle{background:#e5e5e5;border-radius:20px;gap:2px;padding:2px;display:flex}.song-page-body__chord-toggle-btn{-webkit-tap-highlight-color:#0000;color:#737373;cursor:pointer;background:0 0;border:none;border-radius:18px;padding:4px 10px;font-size:.75rem;font-weight:600;line-height:1;transition:background .15s,color .15s}.song-page-body__chord-toggle-btn--active{color:#fff;background:#6e55f0}.song-page-body__piano-scroll{scrollbar-width:none;padding-bottom:.5rem;gap:.75rem;max-width:100vw;padding-inline:1.5rem;display:flex;overflow-x:auto}.song-page-body__piano-scroll::-webkit-scrollbar{display:none}.song-page-body__youtube-embed{border-radius:12px;width:100%;padding-bottom:56.25%;position:relative;overflow:hidden}.song-page-body__youtube-embed iframe{border:none;width:100%;height:100%;position:absolute;inset:0}
.song-toolbar{z-index:20;position:fixed;bottom:0;left:0;right:0}.song-toolbar__inner{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#ffffff80;border-top:1px solid #e5e5e5;align-items:stretch;gap:0;display:flex}.song-toolbar__section{cursor:pointer;border-right:1px solid #e5e5e5;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:.2rem;padding:.5rem 1rem;display:flex}.song-toolbar__section--transpose{flex:2}.song-toolbar__size-hint{color:#a3a3a3;font-size:.6rem;font-weight:500;display:none;position:absolute;bottom:.25rem}.song-toolbar__label{color:#a3a3a3;font-size:.65rem;font-weight:500}.song-toolbar__value{color:#6e55f0;font-size:1rem;font-weight:700}.song-toolbar__key{color:#6e55f0;text-align:center;min-width:2.5rem;font-size:1rem;font-weight:700}.song-toolbar__transpose-controls{align-items:center;gap:.35rem;display:flex}.song-toolbar__step-btn{color:#5f47d6;cursor:pointer;background:#efecff;border:none;border-radius:8px;justify-content:center;align-items:center;width:32px;height:32px;font-size:1.1rem;font-weight:700;display:flex}.song-toolbar__step-btn:active{background:#ded8ff}.song-toolbar__scroll-btn{color:#fff;cursor:pointer;touch-action:manipulation;-webkit-user-select:none;user-select:none;background:#6e55f0;border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-self:center;align-items:center;width:48px;height:48px;font-size:1.1rem;display:flex}.song-toolbar__scroll-btn svg{fill:#fff;transform:translate(2px)}.song-toolbar__scroll-btn--active{background:#503abb}.song-toolbar__scroll-btn--active svg{fill:#0000;transform:translate(0)}.song-toolbar__speed-overlay{z-index:25;align-items:center;gap:.75rem;display:flex;position:fixed;bottom:90px;right:1rem}.song-toolbar__speed-labels{color:#a3a3a3;height:200px;font-size:.75rem;font-weight:500;position:relative}.song-toolbar__speed-labels span{white-space:nowrap;position:absolute;right:0;transform:translateY(-50%)}.song-toolbar__speed-slider{writing-mode:vertical-lr;appearance:none;cursor:pointer;direction:rtl;background:#e5e5e5;border-radius:3px;outline:none;width:6px;height:200px}.song-toolbar__speed-slider::-webkit-slider-thumb{-webkit-appearance:none;cursor:pointer;background:#6e55f0;border-radius:50%;width:28px;height:28px}.song-toolbar__speed-slider::-moz-range-thumb{cursor:pointer;background:#6e55f0;border:none;border-radius:50%;width:28px;height:28px}.song-toolbar__backdrop{z-index:19;position:fixed;inset:0}.song-toolbar__capo-panel{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#ffffff80;border-top:1px solid #e5e5e5;flex-wrap:wrap;justify-content:center;gap:.4rem;padding:.75rem 1.5rem;display:flex}.song-toolbar__capo-opt{color:#404040;cursor:pointer;background:#f5f5f5;border:none;border-radius:8px;width:36px;height:36px;font-size:.85rem;font-weight:600}.song-toolbar__capo-opt--active{color:#fff;background:#6e55f0}