@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;450;500;550;600;650;700&family=Manrope:wght@400;500;600;650;700;800&display=swap');
:root{color-scheme:dark;--bg:#151713;--panel:#1a1c17;--line:#30332c;--text:#f1f2e9;--muted:#b3b8a9;--dim:#8c9284;--accent:#d4f794;--player-height:112px;--head:0px;font-family:'DM Sans',system-ui,sans-serif;font-synthesis:none}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-size:16px}button,input,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer;color:inherit}button:disabled{cursor:not-allowed;opacity:.4}button,a,input{outline-offset:5px}button:focus-visible,a:focus-visible,input:focus-visible{outline:2px solid var(--accent)}button{border:0;background:none}a{color:inherit;text-underline-offset:4px}button svg{width:20px;height:20px;display:block}button:hover{color:var(--accent)}[hidden]{display:none!important}.skip-link{position:fixed;top:-60px;left:20px;background:var(--accent);color:var(--bg);padding:12px;z-index:100}.skip-link:focus{top:10px}.masthead{height:var(--head);display:flex;align-items:center;justify-content:space-between;padding:0 32px;border-bottom:1px solid var(--line);position:fixed;top:0;left:0;right:0;z-index:20;background:var(--bg)}.wordmark{font-family:'Manrope',sans-serif;font-size:25px;font-weight:800;letter-spacing:-1.5px;text-decoration:none;display:flex;align-items:center;gap:26px}.wordmark span{font-family:'DM Sans',sans-serif;font-size:12px;font-weight:500;letter-spacing:1.6px;color:var(--muted);border-left:1px solid #505549;padding-left:26px}.masthead-actions{display:flex;gap:22px;align-items:center}.edition{font-size:12px;letter-spacing:1px;color:var(--dim)}.icon-button{width:36px;height:36px;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;border-radius:50%}.icon-button:hover{background:#292d24}.connect-button{border:1px solid #59634b;border-radius:5px;padding:9px 14px;font-size:13px}.connect-button.connected{color:var(--accent);border-color:#454e38}.workspace{display:grid;grid-template-columns:256px minmax(360px,1fr) 300px;max-width:1600px;margin:var(--head) auto 0}.album-panel{position:fixed;top:var(--head);bottom:var(--player-height);width:256px;border-right:1px solid var(--line);overflow-y:auto;scrollbar-width:thin;scrollbar-color:#3e4436 transparent;padding:24px 24px 0}.album-art{position:relative;aspect-ratio:1}.album-art img{width:100%;height:100%;object-fit:cover;display:block;border-radius:2px}.art-tag{position:absolute;left:12px;top:12px;background:#151713bf;padding:5px 7px;font-size:12px;letter-spacing:1.6px}.album-heading{margin-top:17px}.album-heading h2{font-family:'Manrope',sans-serif;font-size:19px;letter-spacing:-.5px;margin:0 0 6px}.album-heading>span{font-size:12px;color:var(--dim)}.tracklist-heading{display:flex;justify-content:space-between;color:var(--dim);font-size:12px;letter-spacing:1.3px;margin:28px 0 14px}.tracklist-heading span:last-child{letter-spacing:0}.track-row{display:grid;grid-template-columns:22px 1fr 34px;align-items:center;text-align:left;width:calc(100% + 24px);margin-left:-12px;gap:8px;padding:11px 12px;border-radius:4px;line-height:1.3}.track-row .num{font-size:12px;color:var(--dim);font-variant-numeric:tabular-nums}.track-row .track-name{font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.track-row .track-time{font-size:12px;text-align:right;color:var(--dim)}.track-row.active{background:#303823;color:var(--accent)}.track-row.active .num,.track-row.active .track-time{color:#bddc8b}.track-row:hover{background:#262b20}.album-footer{font-size:12px;letter-spacing:1px;color:var(--dim);line-height:1.7;padding:32px 0}main{grid-column:2;padding:46px clamp(30px,4.3vw,72px) calc(var(--player-height) + 28px);min-width:0;max-width:950px}.song-top .eyebrow{display:flex;justify-content:space-between}.eyebrow{font-size:12px;letter-spacing:1.5px;color:var(--dim);font-variant-numeric:tabular-nums}.song-top h1{font-family:'Manrope',sans-serif;font-weight:500;font-size:clamp(40px,4.5vw,66px);line-height:1.08;letter-spacing:-2.5px;margin:15px 0 16px;overflow-wrap:anywhere}.song-byline{font-size:14px;color:var(--muted);display:flex;justify-content:space-between;gap:15px;line-height:1.6}.reader-toolbar{margin-top:33px;padding-bottom:16px;border-bottom:1px solid var(--line);display:flex;gap:20px;justify-content:space-between;align-items:center;position:sticky;top:var(--head);background:var(--bg);z-index:5;padding-top:12px}.language-control{display:flex;gap:3px;background:#20231c;padding:3px;border-radius:5px}.language-control button{font-size:12px;border-radius:3px;padding:7px 11px;color:var(--muted)}.language-control button[aria-pressed=true]{background:#414736;color:var(--text)}.follow-button{font-size:12px;white-space:nowrap;color:var(--muted);display:flex;align-items:center;gap:6px}.follow-button:before{content:'';width:5px;height:5px;border:1px solid #8a917d;border-radius:50%}.follow-button[aria-pressed=true]{color:var(--accent)}.follow-button[aria-pressed=true]:before{background:var(--accent);border-color:var(--accent)}.draft-label{display:flex;justify-content:space-between;align-items:center;font-size:12px;color:var(--dim);padding-top:14px}.text-button{font-size:inherit;color:var(--dim);text-decoration:underline;text-decoration-color:#454a3f;text-underline-offset:4px}.lyrics{margin-top:35px;min-height:230px}.lyric-line{position:relative;padding:10px 0 12px;margin:0 0 10px;transition:color .15s;border-radius:3px;scroll-margin-top:96px}.lyric-line.active:before{content:'';position:absolute;top:12px;left:-18px;width:3px;height:calc(100% - 24px);min-height:20px;background:var(--accent);border-radius:2px}.lyric-line .english{font-size:clamp(19px,1.65vw,24px);line-height:1.5;font-weight:450;letter-spacing:-.2px;margin:0}.lyric-line .chinese{font-family:'PingFang SC','Noto Sans SC',system-ui,sans-serif;font-size:14px;line-height:1.8;color:var(--dim);margin:7px 0 0}.lyrics[data-language=zh] .chinese{font-size:23px;color:var(--text);margin:0}.lyrics[data-language=en] .chinese,.lyrics[data-language=zh] .english{display:none}.lyric-line.active .english,.lyrics[data-language=zh] .lyric-line.active .chinese{color:var(--accent)}.lyric-line .line-time{position:absolute;left:-40px;top:18px;font-size:12px;font-variant-numeric:tabular-nums;color:var(--dim);opacity:0;padding:0}.lyric-line:hover .line-time,.line-time:focus-visible{opacity:1}.note-marker{vertical-align:super;margin-left:7px;border:1px solid #5b6c40;border-radius:3px;font-size:12px;font-weight:600;color:var(--accent);padding:1px 5px;line-height:1.4;min-width:21px;min-height:22px}.note-marker[aria-expanded=true]{background:var(--accent);color:var(--bg)}.verse-gap{height:14px}.empty-lyrics{padding:12px 0 35px}.empty-lyrics h2{font-size:22px;font-weight:500;margin:0 0 12px}.empty-lyrics p{font-size:15px;line-height:1.8;color:var(--muted);max-width:400px}.empty-lyrics button{margin-top:15px;color:var(--accent);border:1px solid #4e6138;padding:12px 18px;border-radius:5px}.song-end{border-top:1px solid var(--line);margin-top:48px;padding-top:22px;display:flex;justify-content:space-between}.end-mark{font-size:38px;font-weight:300;color:#707965}.next-song{text-align:right}.next-song span{display:block;font-size:12px;letter-spacing:1.2px;color:var(--dim);margin-bottom:9px}.next-song strong{font-size:18px;font-weight:500}.reader-footnote{color:var(--dim);font-size:12px;line-height:1.7;margin-top:48px;max-width:300px}.context-panel{grid-column:3;border-left:1px solid var(--line);padding:47px 26px;position:fixed;top:var(--head);bottom:var(--player-height);right:max(0px,calc((100vw - 1600px)/2));width:300px;overflow-y:auto;scrollbar-width:thin}.context-heading{font-size:12px;letter-spacing:1.5px;color:var(--dim);margin-bottom:32px;display:flex;justify-content:space-between;align-items:center}.context-kicker{font-size:12px;color:var(--accent);letter-spacing:1px;margin-bottom:14px}.context-panel h2{font-family:'Manrope',sans-serif;font-weight:500;font-size:22px;line-height:1.3;letter-spacing:-.7px;margin:0 0 14px}.context-panel p{font-size:14px;color:var(--muted);line-height:1.8;margin:0 0 16px}.context-panel .context-original{color:var(--text);font-size:18px;line-height:1.7}.context-source{font-size:12px;color:var(--dim);line-height:1.6}.context-source a{display:inline-block;margin-top:4px}.context-divider{height:1px;background:var(--line);margin:26px 0}.context-note-button{display:flex;gap:10px;width:100%;text-align:left;padding:12px 0;font-size:13px;line-height:1.5;color:var(--muted);border-bottom:1px solid var(--line)}.context-note-button span{color:var(--accent);font-size:12px;border:1px solid #4e6138;width:21px;height:21px;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;border-radius:3px}.context-note-button.selected{color:var(--text)}.back-notes{font-size:12px;color:var(--dim);padding:0;margin-bottom:30px;text-decoration:underline;text-underline-offset:4px}.context-meta{margin:0}.context-meta dt{font-size:12px;letter-spacing:1px;color:var(--dim);margin:18px 0 6px}.context-meta dd{margin:0;color:var(--muted);font-size:13px;line-height:1.6}.player{height:var(--player-height);position:fixed;bottom:0;left:0;right:0;z-index:30;background:#1c2018;border-top:1px solid #3b4430;display:grid;grid-template-columns:minmax(200px,1fr) minmax(230px,480px) minmax(170px,1fr);align-items:center;gap:28px;padding:14px 32px;box-shadow:0 -8px 40px #10120d55}.now-playing{display:flex;gap:13px;align-items:center;min-width:0}.now-playing img{width:50px;height:50px;border-radius:3px}.now-playing>div{min-width:0}.now-playing strong{display:block;font-size:14px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.now-playing span{display:block;color:var(--dim);font-size:12px;margin-top:5px}.now-playing .audio-quality{margin-left:5px;border:1px solid #4c5443;padding:3px 5px;font-size:12px;color:#b9c8a3;border-radius:2px;letter-spacing:1px}.transport-buttons{display:flex;justify-content:center;align-items:center;gap:22px;position:relative}.play-button{width:42px;height:42px;display:flex;align-items:center;justify-content:center;background:var(--accent);color:#202917;border-radius:50%}.play-button:hover{color:#151713;background:#e2ffb1;transform:scale(1.03)}.play-button svg{width:21px;height:21px}.repeat{position:absolute;right:calc(50% - 130px);color:var(--dim)}.repeat[aria-pressed=true]{color:var(--accent)}.timeline{display:flex;align-items:center;gap:10px;margin-top:12px;font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums}.timeline span{min-width:26px}.timeline span:last-child{text-align:right}input[type=range]{appearance:none;background:linear-gradient(to right,var(--accent) 0%,var(--accent) var(--progress,0%),#444c3c var(--progress,0%),#444c3c 100%);height:3px;border-radius:2px;cursor:pointer;flex:1;min-width:0}input[type=range]::-webkit-slider-thumb{appearance:none;width:10px;height:10px;background:var(--accent);border-radius:50%}input[type=range]::-moz-range-thumb{border:0;width:10px;height:10px;background:var(--accent);border-radius:50%}.player-options{justify-content:flex-end;display:flex;align-items:center;gap:7px;flex-wrap:wrap}.player-options input{max-width:76px;flex:initial;width:76px}.player-options>span{flex-basis:100%;text-align:right;font-size:12px;color:var(--dim);letter-spacing:.1px}.player-options button svg{width:17px;height:17px}dialog{background:#22271d;color:var(--text);border:1px solid #525c44;border-radius:9px;padding:30px;max-width:500px;width:calc(100% - 36px);box-shadow:0 30px 150px #0009}dialog::backdrop{background:#080b07c9;backdrop-filter:blur(5px)}.dialog-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:22px}dialog h2{font-family:'Manrope',sans-serif;font-size:34px;letter-spacing:-1.3px;line-height:1.2;margin:0 0 20px;font-weight:500}dialog p{font-size:15px;line-height:1.8;color:var(--muted)}dialog a{font-size:13px;color:var(--accent)}.small{font-size:12px!important;color:var(--dim)!important}.drop-area{border:1px dashed #667752;border-radius:6px;display:flex;position:relative;flex-direction:column;align-items:center;text-align:center;padding:28px 12px;margin:25px 0 16px;gap:8px;cursor:pointer;background:#293321}.drop-area strong{font-weight:500}.drop-area>span:not(.drop-icon){font-size:12px;color:var(--dim)}.drop-icon{color:var(--accent);margin-bottom:8px}.drop-icon svg{width:28px;height:28px}.drop-area input{opacity:0;position:absolute;inset:0;width:100%;height:100%;cursor:pointer}.drop-area:focus-within{outline:2px solid var(--accent)}.drop-area.drag-over{background:#384927;border-color:var(--accent)}.external-link{display:inline-block;margin-top:10px}kbd{font-family:inherit;font-size:12px;border:1px solid #59634b;padding:2px 5px;border-radius:3px}.link-separator{margin:0 12px;color:var(--dim)}#toast{position:fixed;bottom:calc(var(--player-height) + 18px);left:50%;transform:translateX(-50%);z-index:90;background:#d4f794;color:#1b2612;padding:12px 18px;border-radius:6px;font-size:13px;line-height:1.5;max-width:90vw;box-shadow:0 8px 50px #0007}.mobile-only,.mobile-context{display:none}.source-facts{border-top:1px solid var(--line);padding-top:12px;margin-top:18px}.source-facts a{overflow-wrap:anywhere}body:has(dialog[open]){overflow:hidden}
@media(min-width:1601px){.album-panel{left:calc((100vw - 1600px)/2)}}
@media(max-width:1200px){.workspace{grid-template-columns:232px minmax(350px,1fr)}.album-panel{width:232px;padding-left:20px;padding-right:20px}.context-panel{display:none}.context-panel.open{display:block;z-index:35;background:#20261a;top:var(--head);right:0;width:330px;box-shadow:-30px 0 90px #0008}.mobile-context{display:inline-flex}main{padding-left:55px;padding-right:55px}.context-heading{margin-bottom:20px}.edition{display:none}.player{gap:20px}.audio-quality{display:none!important}}
@media(max-width:960px){:root{--head:0px;--player-height:133px}.masthead{padding:0 16px;gap:8px}.wordmark{font-size:22px;letter-spacing:-1.2px;flex:1}.wordmark span{display:none}.masthead-actions{gap:7px}.connect-button{font-size:12px;padding:8px 10px}.masthead-actions #info-button{width:28px}.mobile-only{display:inline-flex}.workspace{display:block}.album-panel{display:none}.album-panel.open{display:block;left:0;top:var(--head);bottom:var(--player-height);z-index:25;background:var(--bg);width:min(320px,90vw);padding:22px;box-shadow:30px 0 100px #000a}.album-panel .album-art{width:130px}.album-heading h2{font-size:21px}.track-row .track-name{font-size:15px}.track-row .num,.track-row .track-time{font-size:12px}.track-row{padding:13px 12px}.tracklist-heading{font-size:12px}main{padding:30px 28px calc(var(--player-height) + 30px)}.song-top h1{font-size:46px;letter-spacing:-2px}.song-top .eyebrow{font-size:12px}.song-byline{font-size:13px}.reader-toolbar{margin-top:24px;gap:10px}.language-control button{font-size:12px;padding:7px 10px}.follow-button{font-size:12px}.draft-label{font-size:12px}.lyrics{margin-top:24px}.lyric-line .english{font-size:21px}.lyric-line .chinese{font-size:14px}.lyric-line{margin-bottom:8px;padding:9px 0 11px}.lyric-line .line-time{display:none}.context-panel.open{top:auto;left:0;right:0;bottom:var(--player-height);width:100%;max-height:60vh;border-top:1px solid #59684a;border-radius:14px 14px 0 0;padding:14px 26px 28px;box-shadow:0 -30px 150px #000c}.context-panel p{font-size:15px}.context-heading{margin-bottom:15px}.context-panel h2{font-size:25px}.player{grid-template-columns:1fr auto;grid-template-rows:49px 34px;gap:3px 8px;padding:12px 18px calc(12px + env(safe-area-inset-bottom));height:calc(var(--player-height) + env(safe-area-inset-bottom))}.now-playing{grid-column:1;grid-row:1;gap:11px}.now-playing img{width:40px;height:40px}.now-playing strong{font-size:13px}.now-playing span{font-size:12px}.transport{display:contents}.transport-buttons{grid-column:2;grid-row:1;gap:4px}.transport-buttons .icon-button{width:30px}.play-button{width:38px;height:38px;margin:0 5px}.repeat{display:none}.timeline{grid-column:1 / -1;grid-row:2;margin:0;gap:9px}.player-options{display:none}.song-end{margin-top:35px}.reader-footnote{margin-top:32px}dialog{padding:22px}.drop-area{padding:25px 10px}.dialog-heading{margin-bottom:18px}dialog h2{font-size:30px}.reader-toolbar{top:var(--head)}.note-marker{min-width:27px;min-height:27px}.lyric-line.active:before{left:-14px}.next-song strong{font-size:16px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}

.language-control button,.follow-button,.connect-button{font-size:14px}.track-row .track-name{font-size:14px}
/* Reading edition: notes appear only when requested. */
.workspace{grid-template-columns:256px minmax(0,1fr);max-width:1380px}main{width:100%;max-width:900px;justify-self:center;padding-left:clamp(42px,7vw,100px);padding-right:clamp(42px,7vw,100px)}.album-panel{left:max(0px,calc((100vw - 1380px)/2))}.song-byline .text-button{font-size:13px;white-space:nowrap}.draft-label{font-size:12px}.album-footer a{display:inline-block;font-size:13px;letter-spacing:0;line-height:1.8;margin-bottom:10px}.bandcamp-listen{display:none;font-size:14px;color:var(--accent);text-decoration:none;border:1px solid #4e6138;padding:10px 16px;border-radius:5px;text-align:center;white-space:nowrap}body.reading-only{--player-height:88px}.reading-only .player{grid-template-columns:minmax(180px,1fr) auto auto;gap:26px}.reading-only .transport{display:block}.reading-only #play,.reading-only #repeat,.reading-only .timeline,.reading-only .player-options,.reading-only .audio-quality{display:none!important}.reading-only .transport-buttons{gap:16px}.reading-only .bandcamp-listen{display:block}.reading-only .line-time{display:none}
#note-popover{position:fixed;margin:0;padding:22px 26px 26px;width:min(440px,calc(100vw - 32px));max-height:calc(100dvh - var(--head) - var(--player-height) - 36px);overflow-y:auto;border:1px solid #576846;border-radius:10px;background:#252d1f;color:var(--text);box-shadow:0 16px 70px #0009;inset:auto;scrollbar-width:thin}#note-popover:not(:popover-open):not([open]){display:none}#note-popover::backdrop{background:transparent}.note-header{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:12px}.note-header>span{font-size:12px;letter-spacing:1.1px;text-transform:uppercase;color:var(--accent)}.note-header .icon-button{margin:-8px -10px -8px 0}#note-popover h2{font-family:'Manrope',sans-serif;font-size:23px;line-height:1.35;font-weight:550;letter-spacing:-.6px;margin:0 0 16px}#note-popover p{font-size:16px;line-height:1.75;color:#e2e6d9;margin:0 0 18px}#note-popover .note-original{font-size:18px;line-height:1.6;color:var(--accent);padding-left:14px;border-left:2px solid #788e5d}.note-sources{font-size:13px;color:var(--muted);border-top:1px solid #45533a;padding-top:14px;margin-top:22px}.note-sources summary{cursor:pointer;width:fit-content;padding:2px 0;font-size:14px}.note-sources a{display:block;line-height:1.6;margin-top:10px;overflow-wrap:anywhere}.note-credits{display:grid;grid-template-columns:80px 1fr;gap:12px;font-size:14px;line-height:1.6}.note-credits dt{color:var(--muted)}.note-credits dd{margin:0}.song-note-list{margin:22px 0}.song-note-list button{display:flex;align-items:baseline;gap:12px;border-top:1px solid #45533a;width:100%;text-align:left;font-size:15px;padding:12px 0;line-height:1.5}.song-note-list span{color:var(--accent);font-size:12px}.note-credit-link{font-size:13px;color:var(--muted)}
@media(max-width:1200px){.workspace{grid-template-columns:232px minmax(0,1fr)}main{padding-left:clamp(42px,6vw,80px);padding-right:clamp(42px,6vw,80px)}}
@media(max-width:960px){.workspace{display:block}main{padding:30px 28px calc(var(--player-height) + 30px)}.album-panel{left:0}.song-byline .text-button{font-size:13px}.reader-toolbar{gap:8px}.language-control button,.follow-button{font-size:13px}.masthead .connect-button{font-size:12px}.reading-only .player{grid-template-columns:minmax(95px,1fr) auto;grid-template-rows:auto;height:var(--player-height);padding:12px 18px;gap:12px}.reading-only .now-playing{grid-column:1;grid-row:1}.reading-only .transport{display:none}.reading-only .bandcamp-listen{grid-column:2;grid-row:1;font-size:13px;padding:10px}.reading-only .now-playing img{width:34px;height:34px}#note-popover{left:12px;bottom:calc(var(--player-height) + 12px);top:auto;width:calc(100% - 24px);max-height:min(62dvh,calc(100dvh - var(--head) - var(--player-height) - 24px));border-radius:12px;padding:20px 23px 25px;box-shadow:0 -15px 80px #0008}.note-header{margin-bottom:16px}.note-marker{min-width:30px;min-height:30px}}

.lyrics[data-language=both] .same-text .chinese{display:none}.lyric-line.lyric-section{padding:24px 0 5px;margin-bottom:8px}.lyric-line.lyric-section .english,.lyrics[data-language=zh] .lyric-line.lyric-section .chinese{font-size:13px;letter-spacing:.7px;font-weight:600;color:var(--accent)}.lyric-line p{overflow-wrap:anywhere}

/* Parallel reading: a lyric stays paired, while annotations belong to phrases. */
.workspace{max-width:1480px}main{max-width:1120px;padding-left:clamp(34px,4vw,64px);padding-right:clamp(34px,4vw,64px)}.album-panel{left:max(0px,calc((100vw - 1480px)/2))}
.column-labels{display:none;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:38px;color:var(--dim);font-size:13px;letter-spacing:.3px;margin-top:30px;padding-bottom:12px;border-bottom:1px solid var(--line)}
#reader[data-language=both] .column-labels{display:grid}.lyrics{margin-top:24px}
.lyrics[data-language=both] .lyric-line{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);column-gap:38px;align-items:baseline;padding:12px 0;margin-bottom:10px}
.lyrics[data-language=both] .chinese{grid-column:1;font-size:21px;line-height:1.75;color:#e1e4d9;margin:0;letter-spacing:.1px}
.lyrics[data-language=both] .english{grid-column:2;font-size:21px;line-height:1.75;margin:0;font-weight:400}
.lyrics[data-language=both] .same-text .english{grid-column:1 / -1;max-width:850px}
.lyrics[data-language=both] .lyric-section{margin-top:16px;margin-bottom:0;padding:10px 0}
.lyrics[data-language=both] .lyric-section .chinese,.lyrics[data-language=both] .lyric-section .english{font-size:13px;letter-spacing:.7px;color:var(--accent);font-weight:600}
.lyrics[data-language=both] .lyric-line.active .chinese{color:var(--accent)}
.phrase-note{display:inline;appearance:none;font:inherit;font-weight:inherit;letter-spacing:inherit;line-height:inherit;text-align:inherit;vertical-align:baseline;white-space:normal;padding:0;margin:0;border:0;border-radius:2px;color:inherit;background:transparent;text-decoration:underline;text-decoration-style:dotted;text-decoration-color:#91ad68;text-decoration-thickness:1px;text-underline-offset:5px;box-decoration-break:clone;-webkit-box-decoration-break:clone;cursor:pointer}
.phrase-note:hover,.phrase-note.is-related,.phrase-note[aria-expanded=true]{color:#e6ffc3;background:#384b2570;text-decoration-style:solid;text-decoration-color:var(--accent)}.phrase-note:focus-visible{outline:2px solid var(--accent);outline-offset:4px}
#note-popover .note-phrase-pair{border-left:2px solid #788e5d;padding-left:14px;margin:0 0 18px}#note-popover .note-phrase-pair .note-original{padding:0;border:0;margin:0;color:var(--accent);font-size:20px}#note-popover .note-translation{color:#c3cdb7;font-size:15px;margin:7px 0 0;line-height:1.6}
@media(max-width:1100px) and (min-width:961px){.workspace{grid-template-columns:220px minmax(0,1fr)}.album-panel{width:220px;padding:24px 18px 0}.column-labels,.lyrics[data-language=both] .lyric-line{column-gap:26px}.lyrics[data-language=both] .chinese,.lyrics[data-language=both] .english{font-size:19px}main{padding-left:32px;padding-right:32px}}
@media(max-width:960px){main{padding:30px 22px calc(var(--player-height) + 30px)}.album-panel{left:0}.column-labels{gap:20px;margin-top:25px;font-size:12px}.lyrics[data-language=both] .lyric-line{column-gap:20px;padding:11px 0;margin-bottom:9px}.lyrics[data-language=both] .chinese,.lyrics[data-language=both] .english{font-size:17px;line-height:1.75}.lyrics[data-language=both] .same-text .english{font-size:19px}.draft-label{gap:20px;align-items:baseline;line-height:1.6}.draft-label .text-button{flex-shrink:0}.lyrics{margin-top:14px}.lyrics[data-language=both] .lyric-line.active:before{left:-11px}.phrase-note{padding:2px 0;text-underline-offset:4px}}

/* Touch layout: one safe-area-aware dock, with native modal sheets above it. */
:root{--dock-height:calc(var(--player-height) + env(safe-area-inset-bottom,0px));--header-height:calc(var(--head) + env(safe-area-inset-top,0px))}
html{scroll-padding-top:calc(var(--header-height) + 72px);scroll-padding-bottom:calc(var(--dock-height) + 16px)}
.masthead{height:var(--header-height);padding-top:env(safe-area-inset-top,0px)}
.workspace{margin-top:var(--header-height)}.album-panel{top:var(--header-height);bottom:var(--dock-height)}
.reader-toolbar{top:var(--header-height)}main{padding-bottom:calc(var(--dock-height) + 36px)}
.player{height:var(--dock-height);padding-bottom:calc(14px + env(safe-area-inset-bottom,0px))}
#toast{bottom:calc(var(--dock-height) + 14px)}.mobile-copy{display:none}
.icon-button{width:44px;height:44px}.connect-button{min-height:44px}.language-control button,.follow-button{min-height:44px}.text-button{min-height:36px}
.timeline input{height:44px;margin:0;background:transparent;--rail:linear-gradient(to right,var(--accent) var(--progress,0%),#444c3c var(--progress,0%))}
.timeline input::-webkit-slider-runnable-track{height:4px;border-radius:2px;background:var(--rail)}
.timeline input::-webkit-slider-thumb{width:16px;height:16px;margin-top:-6px}
.timeline input::-moz-range-track{height:4px;border-radius:2px;background:var(--rail)}
.timeline input::-moz-range-thumb{width:16px;height:16px}
.timeline{margin-top:0}button,input[type=range]{touch-action:manipulation}
dialog{max-height:calc(100dvh - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px) - 32px);overflow-y:auto;overscroll-behavior:contain}
dialog p{font-size:16px}dialog .dialog-heading{position:sticky;top:-30px;background:#22271d;z-index:2;padding:8px 0;margin-top:-8px}
#note-popover{max-height:calc(100dvh - var(--header-height) - var(--dock-height) - 32px);overscroll-behavior:contain}
#note-popover::backdrop{backdrop-filter:none}
#note-popover .note-header{position:sticky;top:-22px;background:#252d1f;z-index:2;padding:8px 0;margin-top:-8px}
#note-popover .note-header .icon-button{margin:-6px -8px -6px 0}
#track-dialog{width:min(560px,calc(100% - 20px));padding:16px 20px 20px;max-height:calc(100dvh - var(--header-height) - 16px)}
#track-dialog>.dialog-heading{top:-16px;margin-bottom:16px;padding:8px 0}
#track-dialog-title{font-size:22px;letter-spacing:-.5px;margin:0}
#track-dialog .album-panel{display:block;position:static;width:auto;padding:0;border:0;overflow:visible}
#track-dialog .album-art{width:60px;float:left;margin-right:16px}#track-dialog .art-tag{display:none}
#track-dialog .album-heading{margin:0 0 22px;min-height:60px;padding-top:4px}
#track-dialog .album-heading h2{font-size:19px}#track-dialog .tracklist-heading{clear:both;margin-top:16px}
#track-dialog .track-row{min-height:48px;color:var(--text)}#track-dialog .track-row.active{color:var(--accent)}#track-dialog .track-name{white-space:normal;overflow-wrap:anywhere;line-height:1.45}
@media(min-width:961px){
 #track-dialog[open]{display:flex;flex-direction:column;width:560px;max-width:calc(100vw - 64px);height:min(720px,calc(100dvh - 64px));max-height:calc(100dvh - 64px);padding:0;overflow:hidden}
 #track-dialog>.dialog-heading{position:static;flex-shrink:0;margin:0;padding:12px 24px;border-bottom:1px solid var(--line)}
 #track-dialog .album-panel{min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:20px 24px 24px}
}
#about-button,#manage-audio{display:flex;margin-top:12px;letter-spacing:0;font-size:14px;color:var(--muted)}
@media(min-width:961px){.player{padding-top:10px}.transport-buttons{gap:14px}}
@media(max-width:960px){
 :root{--head:0px;--player-height:116px}body.reading-only{--player-height:80px}
 .masthead{padding-left:max(12px,env(safe-area-inset-left,0px));padding-right:max(12px,env(safe-area-inset-right,0px));gap:4px}
 .wordmark{font-size:21px;min-width:0}.masthead-actions{gap:4px}.masthead-actions #info-button{width:44px}
 .masthead .connect-button{font-size:14px;padding:8px 10px;white-space:nowrap}.desktop-copy{display:none}.mobile-copy{display:inline}
 main{padding:26px max(18px,env(safe-area-inset-right,0px)) calc(var(--dock-height) + 28px) max(18px,env(safe-area-inset-left,0px))}
 .song-top h1{font-size:clamp(36px,9vw,46px)}.song-byline{align-items:flex-start;flex-wrap:wrap;gap:4px 12px;font-size:14px}.song-byline>span{flex:1;min-width:150px}.song-byline .text-button{font-size:14px;min-height:36px}
 .reader-toolbar{margin-top:18px;gap:6px;padding:8px 0 10px;flex-wrap:wrap}.language-control{gap:0}.language-control button{font-size:14px;padding:6px 10px}.follow-button{font-size:14px;padding:6px 2px}
 .draft-label{gap:8px 14px;flex-wrap:wrap;font-size:13px;padding-top:10px}.draft-label .text-button{font-size:14px;min-height:40px}
 .column-labels{margin-top:16px;gap:16px;font-size:13px}.lyrics[data-language=both] .lyric-line{column-gap:16px}
 body:not(.reading-only) .lyrics,body:not(.reading-only) .column-labels{padding-left:34px}
 body:not(.reading-only) .lyric-line .line-time{display:flex;align-items:center;justify-content:center;left:-44px;top:6px;width:44px;height:44px;opacity:1;font-size:12px;border-radius:6px}
 .lyric-line.active:before,.lyrics[data-language=both] .lyric-line.active:before{left:-5px;width:2px}
 .lyrics[data-language=both] .chinese,.lyrics[data-language=both] .english{font-size:17px;line-height:1.8}
 .lyrics[data-language=both] .same-text .english{font-size:18px}.phrase-note{padding:3px 0}
 .player{grid-template-columns:minmax(0,1fr) auto;grid-template-rows:52px 44px;padding:10px max(12px,env(safe-area-inset-right,0px)) calc(10px + env(safe-area-inset-bottom,0px)) max(12px,env(safe-area-inset-left,0px));gap:0 8px}
 .transport-buttons{gap:0}.transport-buttons .icon-button{width:44px;height:44px}.play-button{width:48px;height:48px;margin:0 2px}
 .now-playing{gap:8px}.now-playing img{width:36px;height:36px}.now-playing strong{font-size:14px}.now-playing span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
 .timeline{gap:8px}.reading-only .player{height:var(--dock-height);grid-template-rows:1fr;padding:10px max(12px,env(safe-area-inset-right,0px)) calc(10px + env(safe-area-inset-bottom,0px)) max(12px,env(safe-area-inset-left,0px));grid-template-columns:minmax(0,1fr) auto}
 .bandcamp-listen,.reading-only .bandcamp-listen{min-height:44px;display:flex;align-items:center;justify-content:center;font-size:14px}.player>.bandcamp-listen{display:none}.reading-only .player>.bandcamp-listen{display:flex}
 dialog{position:fixed;inset:auto 0 0;margin:0 auto;width:100%;max-width:560px;max-height:calc(100dvh - var(--header-height) - 12px);border-radius:18px 18px 0 0;padding:18px 22px calc(24px + env(safe-area-inset-bottom,0px))}
 dialog>.dialog-heading{top:-18px;padding:6px 0 10px;margin-bottom:14px}dialog h2{font-size:29px}dialog a{font-size:14px}dialog .small{font-size:14px!important;line-height:1.65}
 .drop-area{padding:22px 12px;margin-top:20px}.drop-area>span:not(.drop-icon){font-size:14px}.keyboard-help{display:none}
 #note-popover{inset:auto 8px calc(var(--dock-height) + 8px);width:calc(100% - 16px);max-width:560px;margin:0 auto;max-height:calc(100dvh - var(--header-height) - var(--dock-height) - 24px);padding:18px 20px 24px;border-radius:16px}
 #note-popover::backdrop{background:#080b0770;backdrop-filter:none}#note-popover .note-header{top:-18px;margin-bottom:14px}
 #note-popover h2{font-size:22px}#note-popover p{font-size:16px;line-height:1.7}
 #track-dialog{inset:auto 0 0;width:100%;padding:16px 20px calc(20px + env(safe-area-inset-bottom,0px));max-height:calc(100dvh - var(--header-height) - 12px)}
}
@media(max-width:380px){.masthead-actions #info-button{display:none}.language-control button{padding-left:9px;padding-right:9px}.follow-button{font-size:13px}}
@media(max-width:360px){
 #reader[data-language=both] .column-labels{display:none}.lyrics[data-language=both] .lyric-line{display:block;padding:14px 0;margin-bottom:12px}
 .lyrics[data-language=both] .chinese{font-size:18px}.lyrics[data-language=both] .english{font-size:17px;color:#c5cdba;margin-top:5px}.lyrics[data-language=both] .same-text .english{margin-top:0}
 .lyrics[data-language=both] .lyric-section{padding-bottom:4px}.lyrics[data-language=both] .lyric-section .english{font-size:13px;color:var(--accent)}
}
@media(min-width:600px) and (max-width:960px){main{max-width:800px;margin:auto;padding-left:32px;padding-right:32px}.lyrics[data-language=both] .chinese,.lyrics[data-language=both] .english{font-size:20px}}
@media(max-height:500px) and (max-width:960px){
 :root{--head:0px;--player-height:76px}body.reading-only{--player-height:68px}
 body:not(.reading-only) .player{grid-template-columns:minmax(90px,1fr) auto minmax(140px,1.5fr);grid-template-rows:1fr;gap:12px}
 .timeline{grid-column:3;grid-row:1}.song-top h1{font-size:36px}.song-top{padding-top:0}main{padding-top:20px}
}

body{--dock-height:calc(var(--player-height) + env(safe-area-inset-bottom,0px))}

@media(max-width:960px){.song-byline .text-button,.draft-label .text-button{min-height:44px}.note-sources summary{min-height:44px;display:flex;align-items:center}.note-sources a{min-height:44px;padding:8px 0}.lyric-line .line-time{font-size:13px}}

@media(max-width:960px){.song-top h1{letter-spacing:-1.2px}}
@media(max-width:360px){.draft-label>span{display:none}.reader-toolbar{margin-top:14px}.song-top h1{margin:12px 0}}

@media(max-width:380px){.follow-detail{display:none}.reader-toolbar{flex-wrap:nowrap}.follow-button{gap:4px}.language-control button{font-size:13px;padding-left:8px;padding-right:8px}}

/* The explanation is the note: no category, generated heading, or repeated lyric. */
#note-popover.phrase-context .note-header{margin-bottom:0;min-height:26px;justify-content:flex-end}
#note-popover.phrase-context #note-content>p:first-child{padding-right:12px;margin-top:4px}
.track-row,.next-song,.album-heading a{text-decoration:none}
#song-original-title{color:var(--muted);margin:0 0 14px;font-size:20px}
.static-notes{border-top:1px solid var(--line);margin-top:36px;padding-top:22px;color:var(--muted);line-height:1.8}
.static-notes h2{font-size:20px;font-weight:500}.static-notes details{border-bottom:1px solid var(--line);padding:12px 0}.static-notes summary{cursor:pointer;color:var(--text)}
.static-notes a{color:var(--accent)}.enhanced .static-notes{display:none}
html:not(.enhanced) #follow-button,html:not(.enhanced) #song-notes-toggle,html:not(.enhanced) #source-button{visibility:hidden}
html:not(.enhanced) .lyric-line .line-time{display:none}
@media(max-width:960px){.wordmark{font-size:20px;letter-spacing:-1px}.masthead .connect-button{padding:8px}.song-original-title{font-size:17px}}
@media(max-width:380px){.wordmark{font-size:18px}}

/* The listening surface starts at the song; navigation and audio live in the dock. */
.track-picker{display:flex;align-items:center;gap:12px;min-width:0;min-height:44px;flex:0 1 auto;max-width:100%;color:inherit;text-decoration:none;border-radius:4px}
.track-picker:hover{color:var(--accent)}.now-playing .track-identity{flex:1;min-width:0;margin:0;color:var(--text)}.track-picker-icon{width:16px;height:16px;flex-shrink:0;color:var(--dim)}
.player>.connect-button{white-space:nowrap;color:var(--accent);border-color:#596b40;padding:10px 18px}
.reading-only .player>.connect-button{grid-column:3;grid-row:1}
html:not(.enhanced) .player .transport,html:not(.enhanced) .player>.connect-button{display:none}
@media(max-width:960px){
 .track-picker{gap:8px}.track-picker-icon{width:12px;height:12px}.reading-only .player>.connect-button{grid-column:2;padding:10px 14px;font-size:14px}
}

/* A named track-list control replaces the mobile artwork, using the same space. */
.now-playing .track-picker-entry{display:none}
@media(max-width:960px){
 .track-picker>img,.track-picker-icon{display:none}
 .now-playing .track-picker-entry{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;width:44px;height:44px;flex-shrink:0;margin:0;border:1px solid #59634b;border-radius:6px;color:var(--text);background:#262c20}
 .track-picker-entry svg{width:18px;height:18px}
 .now-playing .track-picker-entry>span{margin:0;color:inherit;font-size:12px;font-weight:500;line-height:14px}
 .track-picker:hover .track-picker-entry,.track-picker:focus-visible .track-picker-entry{border-color:var(--accent);color:var(--accent)}
}
