@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@400;500;600;700;800&display=swap');
:root{--ink:#203b35;--muted:#74817b;--green:#246b53;--line:#e4e8df;--paper:#fafbf6}*{box-sizing:border-box}body{margin:0;background:#f3f5ee;color:var(--ink);font:14px 'DM Sans',sans-serif}button,input,select{font:inherit}button,a,input,select{accent-color:var(--green)}button{cursor:pointer;border:0;background:transparent;color:inherit}button:focus-visible,a:focus-visible{outline:3px solid #c29856;outline-offset:3px}header{height:84px;background:#fafbf6;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:28px;padding:0 4vw}.brand{font-size:26px;letter-spacing:-1px;text-decoration:none;color:var(--ink)}.strap{color:var(--muted);font-size:13px}.search{margin:auto;display:flex;align-items:center;gap:10px;background:#eef1e8;padding:10px 14px;border-radius:9px}.search input{border:0;background:none;width:175px;outline:0}.search select{max-width:200px;border:0;background:none;color:var(--green);font-size:12px}.prototype{font-size:10px;letter-spacing:1.4px;color:var(--muted)}main{max-width:1320px;padding:35px 38px 140px;margin:auto}.breadcrumb{font-size:10px;letter-spacing:1.7px;color:var(--muted);display:flex;gap:14px;margin-bottom:25px}.hero{display:flex;align-items:center;gap:28px;margin-bottom:38px}.cover{width:144px;height:144px;border-radius:12px;background:#d1dfbb;position:relative;overflow:hidden;flex-shrink:0;padding:12px;color:#274f3a}.cover>span{font-size:24px;font-weight:800}.cover small{position:absolute;bottom:12px;font-size:8px;letter-spacing:1.5px;line-height:1.7}.disc{border-radius:50%;width:110px;height:110px;border:25px solid #335b45;position:absolute;right:-24px;top:20px;box-shadow:0 0 0 7px #557b55,inset 0 0 0 7px #87a277}.eyebrow{font-size:10px;letter-spacing:1.8px;color:#6b806e;font-weight:700}h1{font:800 46px/1.15 Manrope,sans-serif;letter-spacing:-2px;margin:9px 0}#artist{margin:8px 0 18px;font-size:17px;color:var(--muted)}.facts{display:flex;gap:17px;align-items:center;font-size:12px}.tag{background:#e6ebdf;color:#63745d;padding:5px 9px;border-radius:5px}.outline{margin-left:auto;border:1px solid #c7d0c0;border-radius:7px;padding:11px 16px}.workspace{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:28px;align-items:start}.sheet{background:var(--paper);border:1px solid var(--line);border-radius:13px;overflow:hidden;min-height:600px}.sheet-tools{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);padding:0 22px}.tabs{display:flex;gap:22px}.tabs button{padding:21px 0;border-bottom:2px solid transparent;color:var(--muted)}.tabs button.active{border-color:var(--green);color:var(--green);font-weight:700}#follow{font-size:12px;color:var(--green)}.sections{display:flex;gap:7px;padding:22px 24px 10px;overflow:auto}.sections button{white-space:nowrap;border-radius:6px;padding:8px 12px;background:#eef1e8;color:#697768;font-size:11px}.sections button.active{background:var(--green);color:white}.sheet-heading{display:flex;justify-content:space-between;padding:25px 30px 14px}.sheet-heading>span{font-size:11px;letter-spacing:2px;color:#9a754b;font-weight:700}.sheet-heading small{font-size:11px;color:#899287}#lines{max-height:620px;overflow:auto;padding:0 17px 25px;scroll-behavior:smooth}.lyric{display:block;width:100%;text-align:left;padding:17px 15px;border-left:3px solid transparent;border-radius:5px;margin:3px 0}.lyric.active{background:#edf2e4;border-left-color:var(--green)}.chords{display:flex;gap:24px;color:var(--green);font-weight:700;font-size:14px;min-height:23px}.words{font-size:20px;line-height:1.7;letter-spacing:.1px}.lyric:not(.active) .words{color:#58695d}.line-time{float:right;color:#9ba595;font-size:10px;padding-top:6px}.panel{background:#e8edde;border:1px solid #dce3d2;border-radius:13px;padding:25px 22px}h2{font:600 24px/1.35 Manrope,sans-serif;letter-spacing:-.8px;margin:12px 0 25px}.field{display:flex;flex-direction:column;gap:9px;font-size:12px;font-weight:600}.field select{padding:11px;border:1px solid #ced8c3;border-radius:6px;background:#f8faf2;color:var(--ink)}.hint{font-size:12px;line-height:1.7;color:#74806b}.divider{height:1px;background:#d3ddc8;margin:22px 0}.setting{display:flex;align-items:center;justify-content:space-between;font-size:12px}.setting button,output{background:#fafbf6;padding:6px 10px;border-radius:5px;font-size:11px}.setting button[aria-pressed=true]{background:var(--green);color:white}#speed{width:100%;margin:18px 0 7px}.scale{display:flex;justify-content:space-between;font-size:9px;color:var(--muted)}.soon{font-size:8px;letter-spacing:1px;color:#839177}.note{display:flex;gap:12px;margin:23px 5px;font-size:12px}.note>span{font-size:22px;color:#aa8757}.note p,.accuracy{font-size:11px;line-height:1.8;color:var(--muted)}.accuracy{padding:0 5px}.transport{position:fixed;bottom:0;left:0;width:100%;height:88px;display:flex;gap:22px;align-items:center;padding:0 5vw;background:#fcfdf8ee;backdrop-filter:blur(15px);border-top:1px solid #dbe1d3;box-shadow:0 -8px 40px #203b3507}.play{background:var(--green);color:white;width:46px;height:46px;border-radius:50%;flex-shrink:0}.now{display:flex;flex-direction:column;gap:5px;min-width:150px}.now small{font-size:10px;color:var(--muted)}#seek{flex:1;min-width:60px}#volume{width:80px}.transport>span{font-size:11px;font-variant-numeric:tabular-nums}#status{position:fixed;bottom:105px;left:50%;transform:translateX(-50%);background:var(--ink);color:white;border-radius:8px;padding:12px 20px;display:none;z-index:5}#score{padding:20px;max-height:650px;overflow:auto}#video-wrap{margin-top:15px}#video-wrap iframe{width:100%;height:200px}#empty{padding:35px;color:var(--muted)}[hidden]{display:none!important}@media(max-width:850px){.workspace{grid-template-columns:1fr}.strap,.prototype{display:none}header{padding:15px;height:auto;flex-wrap:wrap;gap:15px}.search{margin:0;flex:1}.search select{max-width:130px}.search input{width:130px}main{padding:25px 16px 120px}.cover{width:95px;height:105px}.hero{gap:15px;flex-wrap:wrap}h1{font-size:32px}.hero>.outline{padding:8px}.facts{gap:10px;flex-wrap:wrap}.transport{gap:12px;padding:0 15px}.now{min-width:90px;max-width:120px}.now b{font-size:11px}#volume{display:none}.words{font-size:17px}.tabs{gap:16px}.sheet-tools{padding:0 12px}.sheet-heading{padding:20px 20px 12px}}
.chords{flex-wrap:wrap;gap:8px 22px;margin-bottom:3px}.lyric{scroll-margin-top:30px}
/* Melody-first rehearsal layout: the player is a companion, not the main canvas. */
.hero{margin-bottom:22px}.cover{width:88px;height:88px}.cover small{display:none}.disc{width:85px;height:85px;border-width:20px;top:10px}h1{font-size:35px}.identity #artist{margin:5px 0 10px}.workspace{grid-template-columns:minmax(0,1fr) 280px;gap:20px}.sheet{min-height:560px}.sheet-heading{display:none}#melody{border:0;width:100%;height:650px;display:block}.sections{padding-bottom:18px}.panel{padding:18px}h2{font-size:20px;margin:8px 0 16px}.panel .eyebrow{display:none}#video-wrap iframe{min-height:200px;width:100%;border:0}.note,.accuracy{display:none}main{max-width:1500px;padding-top:22px}.breadcrumb{margin-bottom:15px}.sheet-tools{background:#f5f7ef}@media(max-width:1000px){.workspace{grid-template-columns:1fr}aside{grid-row:1}.panel{display:grid;grid-template-columns:minmax(200px,1fr) 1fr;gap:12px}.panel>*{margin:0}.panel h2,.panel .divider,.panel .hint,.panel .scale{display:none}#video-wrap{grid-column:1;grid-row:1 / span 4;max-width:330px}.panel .field{grid-column:2}#melody{height:650px}.hero{margin-bottom:16px}}@media(max-width:500px){#melody{height:380px}.panel{display:block}#video-wrap{margin:10px auto;max-width:250px}.panel>.setting,.panel>#speed{display:none}.hero .cover{display:none}.sheet-tools .tabs{gap:12px}}
.key-control .setting{margin-bottom:10px}.key-select{position:relative}.key-select select{appearance:none;-webkit-appearance:none;width:100%;padding:13px 36px 13px 14px;border:1px solid #bdcbb1;border-radius:8px;background:#fafcf5;color:#203b35;font:600 16px 'DM Sans',sans-serif;cursor:pointer;box-shadow:0 2px 3px #203b3505}.key-select select:hover{border-color:#246b53}.key-select select:focus-visible{outline:3px solid #246b5330;border-color:#246b53}.key-select>span{position:absolute;right:14px;top:9px;font-size:22px;pointer-events:none;color:#567454}.key-original{font-size:11px;color:#61735b;margin-top:9px;line-height:1.6}#reset-key{color:#246b53;background:none;padding:0;font-size:11px;text-decoration:underline;text-underline-offset:3px}#reset-key:disabled{opacity:.35;cursor:default;text-decoration:none}.key-control .hint{margin-bottom:0;font-size:10px}@media(max-width:500px){.key-control{margin-top:14px}}
.score-navigation{display:flex;justify-content:space-between;align-items:center;padding:10px 20px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:#f3f6ec;gap:12px}.score-navigation>div{display:flex;align-items:center;gap:9px}.score-navigation button{background:#fffef9;border:1px solid #d2dcc8;border-radius:6px;padding:8px 12px;font-size:12px}.score-navigation button:hover:not(:disabled){background:#e0ead6;border-color:#809b70}.score-navigation button:disabled{opacity:.35;cursor:default}#measure-position{font-size:12px;min-width:105px;text-align:center;font-variant-numeric:tabular-nums}.score-navigation small{font-size:10px;color:var(--muted)}@media(max-width:700px){.score-navigation{padding:9px;justify-content:center}.score-navigation small{display:none}.score-navigation>div{gap:5px}.score-navigation button{padding:8px 7px;font-size:10px}#measure-position{min-width:90px;font-size:11px}}
.chord-display{border:0;padding:0;margin:0;min-width:0}.chord-display legend{font-size:12px;font-weight:700;margin-bottom:10px}.segmented{display:flex;padding:3px;background:#dce5d2;border-radius:8px;gap:3px}.segmented button{flex:1;padding:10px 6px;border-radius:6px;font-size:12px}.segmented small{display:block;margin-top:5px;font-size:10px;opacity:.65}.segmented button[aria-pressed=true]{background:#fafcf5;color:#246b53;box-shadow:0 1px 4px #203b3515;font-weight:700}
.chart-word{display:inline-block}.chart-syllable{border-radius:2px}.words .chart-syllable.sung{color:#246b53}.words .chart-syllable.singing{color:#087f8c;background:#dcefeb;text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:5px}

#mute{display:grid;place-items:center;width:36px;height:36px;border-radius:6px}#mute:hover{background:#e6eddf}#mute .speaker-muted{display:none}#mute[aria-pressed="true"] .speaker-muted{display:block}#mute[aria-pressed="true"] .speaker-waves{display:none}
#artist a{color:inherit;text-decoration:none}#artist a:hover{text-decoration:underline}.artist-page{max-width:1050px;padding-top:55px}.artist-page h1{margin-top:12px;font-size:44px}.artist-summary,.artist-footnote{color:var(--muted);font-size:13px}.artist-summary{margin-bottom:40px}.album-group{margin:25px 0;background:var(--paper);border:1px solid var(--line);border-radius:12px;overflow:hidden}.album-heading{padding:22px 25px;display:flex;align-items:center;justify-content:space-between}.album-heading h2{margin:0 0 5px;font-size:21px}.album-heading span,.album-heading small{color:var(--muted);font-size:12px}.artist-song{display:flex;align-items:center;gap:20px;padding:21px 25px;border-top:1px solid var(--line);text-decoration:none;color:var(--ink)}a.artist-song:hover{background:#eaf0e1}.song-number,.song-year{color:var(--muted);font-size:12px}.song-year{margin-left:auto}.song-action{color:var(--green);font-size:12px;min-width:72px;text-align:right}.pending .song-action{color:var(--muted)}.artist-footnote{font-size:11px;margin-top:24px}@media(max-width:500px){.artist-song{padding:18px 15px;gap:12px}.artist-page h1{font-size:32px}}
#save{font-size:12px;color:var(--green);padding:9px 13px;border:1px solid #ced9c3;border-radius:6px}#save[aria-pressed=true]{background:#e1ecd7}.library-empty{padding:10px 25px 25px;color:var(--muted)}.library-link{display:flex;flex:1;flex-direction:column;gap:6px;text-decoration:none;color:var(--ink)}.library-link:hover b{text-decoration:underline}.library-link small{color:var(--muted)}#library-search{border:1px solid #ced9c3;border-radius:6px;padding:10px;background:#fff;width:min(45%,280px)}
.artwork-cover{padding:0;flex-shrink:0;display:grid;place-items:center;background:#e0e8d9;box-shadow:0 3px 12px #203b3512}.artwork-cover img{width:100%;height:100%;object-fit:cover}.artwork-cover>span{font-size:30px;color:#74817b}.library-link{flex-direction:row;align-items:center;gap:16px}.library-link img{border-radius:7px;object-fit:cover;flex-shrink:0}.library-label{display:flex;flex-direction:column;gap:6px}.album-artwork{border-radius:8px;object-fit:cover;flex-shrink:0}.album-heading{gap:18px}.album-identity{flex:1}@media(max-width:500px){.hero .artwork-cover{display:grid;width:64px;height:64px}.album-artwork{width:64px;height:64px}}
#melody{height:auto!important;padding:12px 20px;min-height:400px}.site-score-stage{position:relative;width:100%;color:#263c37}.site-score-stage svg{overflow:visible;cursor:crosshair}.site-score-stage .abcjs-lyric,.site-score-stage .abcjs-chord{font-family:'DM Sans',sans-serif}.site-playhead{stroke:#078793;stroke-width:2;pointer-events:none}.site-note-active{fill:#008996!important}.site-karaoke{position:absolute;left:0;right:0;height:100px;display:block;text-align:center;padding:24px 12px;font-size:24px;font-weight:600;color:#7c8986;line-height:1.4}.site-karaoke .singing{color:#078793;text-decoration:underline;text-underline-offset:5px}@media(max-width:600px){#melody{padding:8px}.site-karaoke{font-size:18px}}
@font-face{font-family:'Source Sans 3';src:url('/score-font.ttf') format('truetype');font-weight:200 900;font-style:normal;font-display:swap}
.site-score-stage .abcjs-chord{font-family:'Source Sans 3',sans-serif;font-weight:600}.site-score-stage .abcjs-annotation,.site-score-stage .abcjs-lyric{font-family:'Source Sans 3',sans-serif;font-weight:500}.site-karaoke{font-family:'Source Sans 3',sans-serif;font-weight:600;white-space:nowrap;overflow:hidden;font-size:28px}
.site-score-stage .ss2-unattached-syllable{font-family:'Source Sans 3',sans-serif;font-weight:500;fill:#245c66;cursor:pointer}

.site-karaoke{padding:12px 12px;line-height:1.25}
.site-karaoke-current{height:38px;white-space:nowrap;color:#344b46}
.site-karaoke-next{height:28px;white-space:nowrap;color:#929b98;font-size:20px;font-weight:400;margin-top:5px}

.site-karaoke-outgoing{position:absolute;top:12px;left:12px;right:12px;pointer-events:none}

/* Pastel sections with elapsed-time fill and a soft active-state crossfade. */
.sections button{background:var(--section-color,#e1def5);color:#303443;font-weight:600;transition:filter .15s,box-shadow .15s}
.sections button[data-section="intro"]{--section-color:#bfe5f5}
.sections button[data-section="verse"]{--section-color:#bcebd4}
.sections button[data-section="pre-chorus"]{--section-color:#ffe39b}
.sections button[data-section="chorus"]{--section-color:#ffc3d7}
.sections button[data-section="post-chorus"]{--section-color:#ffd1ac}
.sections button[data-section="bridge"]{--section-color:#d9c6fa}
.sections button[data-section="instrumental"],.sections button[data-section="solo"]{--section-color:#aee8e5}
.sections button[data-section="outro"]{--section-color:#ffc5b3}
.sections button.active{background:var(--section-color,#e1def5);color:#303443;box-shadow:0 0 0 2px var(--paper),0 0 0 4px var(--section-color,#e1def5)}
.sections button:hover{filter:brightness(.96)}

.sections button{position:relative;isolation:isolate;overflow:hidden;transition:filter .2s,box-shadow .3s ease}
.sections button>span{position:relative;z-index:1}
.sections button::before{content:'';position:absolute;inset:0;background:color-mix(in srgb,var(--section-color,#e1def5) 68%,#605078);transform:scaleX(var(--progress,0));transform-origin:left;opacity:.48;transition:opacity .3s ease;pointer-events:none}
.sections button::after{content:'';position:absolute;inset:0;background:#fff;opacity:.22;transition:opacity .3s ease;pointer-events:none}
.sections button.active::before{opacity:.85}
.sections button.active::after{opacity:0}
@media(prefers-reduced-motion:reduce){.sections button,.sections button::before,.sections button::after{transition:none}}

.library-sort{display:flex;align-items:center;gap:8px;font-size:13px;white-space:nowrap}.library-sort select{padding:8px 10px;border:1px solid var(--line);border-radius:8px;background:var(--paper);color:var(--ink)}.album-heading:has(.library-sort){flex-wrap:wrap;gap:12px}.album-heading .library-sort{margin-left:auto}

/* Give the mobile score the screen width instead of nesting side gutters. */
@media(max-width:600px){
 main:has(.workspace){padding-left:0;padding-right:0}
 main:has(.workspace)>.hero{padding-left:12px;padding-right:12px}
 .workspace>.sheet{border-left:0;border-right:0;border-radius:0}
 .workspace>aside{margin-left:12px;margin-right:12px}
 #melody{padding-left:2px;padding-right:2px}
}
