/* 麒麟颂歌 · song list page (Claude, 2026-09-29).
   Same papers as the 影录长卷 page: 影妹's list uses the present paper (rose scallops, brown title bar),
   影哥's list the past paper (rice paper, copper frame). The list switch and the copy notice use the site's warm glass. */
.songlist-page .hub-intro{background-image:linear-gradient(90deg,#3a2527f2,#3a252794 52%,#3a252714),url('assets/opt/hero/voice-flower.webp?v=40247e33c5');background-position:center,right 34%}
.song-sr{position:absolute!important;width:1px;height:1px;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}

/* ---------- switch between the two lists ---------- */
.song-switch{position:relative;display:grid;grid-template-columns:1fr 1fr;gap:4px;width:min(640px,100%);margin:4px auto 0;padding:5px;border:1px solid #ffffff33;border-radius:20px;background:linear-gradient(160deg,#ffffff1c,#ffffff06 55%,#ffffff0d),#2a2320c7;-webkit-backdrop-filter:blur(24px) saturate(145%) brightness(.85);backdrop-filter:blur(24px) saturate(145%) brightness(.85);box-shadow:inset 0 1px 0 #fff2,inset 0 -1px 0 #ffffff0d,0 14px 34px #1e120e59;scroll-margin-top:130px}
.song-switch button{display:grid;gap:3px;justify-items:center;align-content:center;min-height:66px;padding:10px 14px;border:0;border-radius:15px;background:transparent;color:#e7d3c0;font:inherit;cursor:pointer;transition:background-color .2s,box-shadow .2s,color .2s}
.song-switch strong{font-family:var(--serif);font-weight:800;font-size:19px;letter-spacing:.14em;line-height:1.3}
.song-switch small{font-size:12px;letter-spacing:.08em;opacity:.78}
.song-switch button:hover{background-color:#ffffff14}
.song-switch button[aria-selected="true"]{color:var(--gold);background:linear-gradient(#8456418c,#4c282b9e),url('assets/art/silk-pattern.webp?v=ce71f709ec') center/cover;box-shadow:inset 0 0 0 1px #e2c39873,inset 0 1px 0 #ffffff1f,0 2px 8px #1e120e4d}
.song-switch button[aria-selected="true"] small{opacity:.95}
.song-switch button:focus-visible{outline:2px solid var(--gold);outline-offset:2px}
@supports not ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){.song-switch,.song-toast{background-color:#2a2320f2}}
.catalog-page .songbook.era-section[data-era]{margin-top:22px;scroll-margin-top:130px}

/* ---------- line under the title: counts, rules, links ---------- */
.songbook .song-stats{margin-bottom:14px}
.songbook .song-demo{display:inline-block;margin:-6px 0 12px;padding:3px 12px;border-radius:999px;font-size:12px;letter-spacing:.06em}
.songbook[data-era="present"] .song-demo{background:var(--p-crimson);color:#fff4f1}
.songbook[data-era="past"] .song-demo{background:var(--o-red);color:#fff5e6}
.song-links{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 22px}
.song-link[hidden]{display:none}
.song-link{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:34px;padding:4px 16px;border-radius:999px;font:13px/1.6 var(--sans);letter-spacing:.04em;text-decoration:none;cursor:pointer;transition:background-color .2s,color .2s,border-color .2s,transform .2s}
.song-link:hover,.song-link:focus-visible{transform:translateY(-2px)}
.songbook[data-era="present"] .song-link{background:#fffdfb;border:1.5px solid var(--p-brown);color:var(--p-brown)}
.songbook[data-era="present"] .song-link:hover,.songbook[data-era="present"] .song-link:focus-visible{background:var(--p-brown);color:#fbf1ea}
.songbook[data-era="past"] .song-link{background:#fffaf0;border:1.5px solid var(--o-copper);color:var(--o-deep)}
.songbook[data-era="past"] .song-link:hover,.songbook[data-era="past"] .song-link:focus-visible{background:var(--o-red);border-color:var(--o-red);color:#fff5e6}
.song-link:focus-visible,.song-random:focus-visible,.song-views button:focus-visible,.song-cats button:focus-visible,.song-group:focus-visible{outline:2px solid currentColor;outline-offset:2px}

/* ---------- search, random pick ---------- */
.song-toolbar{display:flex;gap:10px;align-items:stretch}
.song-search{position:relative;flex:1;min-width:0;display:block}
.song-search-icon{position:absolute;left:17px;top:50%;margin-top:-9px;pointer-events:none}
.song-search input{width:100%;box-sizing:border-box;height:50px;padding:0 48px 0 46px;border-radius:999px;font:16px var(--sans);-webkit-appearance:none;appearance:none;transition:border-color .2s,box-shadow .2s,background-color .2s}
.song-search input::-webkit-search-cancel-button{-webkit-appearance:none;appearance:none}
.song-search kbd{position:absolute;right:15px;top:50%;transform:translateY(-50%);min-width:22px;height:22px;display:grid;place-items:center;border-radius:6px;font:12px/1 var(--sans);pointer-events:none}
.song-search input:focus{outline:none}
.song-search input:not(:placeholder-shown)+kbd,.song-search input:focus+kbd{opacity:0}
.songbook[data-era="present"] .song-search input{background:#fffdfb;border:1.5px solid #7c6462;color:var(--p-ink)}
.songbook[data-era="present"] .song-search input::placeholder{color:#9c8581}
.songbook[data-era="present"] .song-search input:focus{border-color:var(--p-crimson);background:#fff;box-shadow:0 0 0 3px #a8323f22}
.songbook[data-era="present"] .song-search-icon{color:var(--p-muted)}
.songbook[data-era="present"] .song-search kbd{border:1px solid #cdb3aa;color:var(--p-muted);background:var(--p-blush)}
.songbook[data-era="past"] .song-search input{background:#fffdf6;border:1.5px solid #d69260;color:var(--o-ink)}
.songbook[data-era="past"] .song-search input::placeholder{color:#a88470}
.songbook[data-era="past"] .song-search input:focus{border-color:var(--o-red);background:#fff;box-shadow:0 0 0 3px #b8472d22}
.songbook[data-era="past"] .song-search-icon{color:var(--o-muted)}
.songbook[data-era="past"] .song-search kbd{border:1px solid #e3b98a;color:var(--o-muted);background:#fbeedb}
.song-random{display:inline-flex;align-items:center;justify-content:center;gap:8px;flex:none;min-height:50px;padding:0 22px;border-radius:999px;font:15px var(--sans);letter-spacing:.06em;cursor:pointer;transition:background-color .2s,border-color .2s,color .2s,transform .2s}
.song-random:hover,.song-random:focus-visible{transform:translateY(-2px)}
.song-random-mark{font-size:14px}
.songbook[data-era="present"] .song-random{background:var(--p-brown);border:1.5px solid var(--p-brown);color:#fbf1ea}
.songbook[data-era="present"] .song-random .song-random-mark{color:#f2c6bd}
.songbook[data-era="present"] .song-random:hover,.songbook[data-era="present"] .song-random:focus-visible{background:var(--p-crimson);border-color:var(--p-crimson)}
.songbook[data-era="past"] .song-random{background:linear-gradient(#c4553a,#a93f2a);border:1.5px solid var(--o-red);color:#fff5e6}
.songbook[data-era="past"] .song-random .song-random-mark{color:#f3c98d}
.songbook[data-era="past"] .song-random:hover,.songbook[data-era="past"] .song-random:focus-visible{background:linear-gradient(#d06244,#b8472d)}

/* ---------- views, category filter (影妹: 全部 / 练习中 / SC歌单), sort ---------- */
.song-controls{display:flex;flex-wrap:wrap;gap:10px 14px;align-items:center;margin:16px 0 0}
.song-views,.song-cats{display:inline-flex;gap:3px;padding:3px;border-radius:999px}
.song-cats[hidden]{display:none}
.song-views button,.song-cats button{min-height:32px;padding:3px 15px;border:0;border-radius:999px;background:transparent;font:14px/1.5 var(--sans);letter-spacing:.04em;cursor:pointer;transition:background-color .2s,color .2s}
.song-sort{display:inline-flex;align-items:center;gap:8px;margin-left:auto;font-size:13px;white-space:nowrap}
.song-sort select{min-height:36px;padding:0 34px 0 14px;border-radius:999px;font:14px var(--sans);cursor:pointer;-webkit-appearance:none;appearance:none;background-repeat:no-repeat;background-position:right 13px center;background-size:10px 6px}
.song-sort select:focus-visible{outline:2px solid currentColor;outline-offset:2px}
.songbook[data-era="present"] .song-views,.songbook[data-era="present"] .song-cats{background:#efe2dc;box-shadow:inset 0 0 0 1px #e1cbc2}
.songbook[data-era="present"] .song-views button,.songbook[data-era="present"] .song-cats button{color:var(--p-muted)}
.songbook[data-era="present"] .song-views button:hover,.songbook[data-era="present"] .song-cats button:hover{color:var(--p-ink);background:#ffffff99}
.songbook[data-era="present"] .song-views button[aria-pressed="true"],.songbook[data-era="present"] .song-cats button[aria-pressed="true"]{background:var(--p-brown);color:#fbf1ea}
.songbook[data-era="present"] .song-sort{color:var(--p-muted)}
.songbook[data-era="present"] .song-sort select{background-color:#fffdfb;border:1.5px solid #cdb3aa;color:var(--p-ink);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 6'%3E%3Cpath d='M1 1l4 4 4-4' fill='none' stroke='%23604f4e' stroke-width='1.6' stroke-linecap='round'/%3E%3C/svg%3E")}
.songbook[data-era="past"] .song-views,.songbook[data-era="past"] .song-cats{background:#f6e2c6;box-shadow:inset 0 0 0 1px #efc98f}
.songbook[data-era="past"] .song-views button,.songbook[data-era="past"] .song-cats button{color:#74503c}
.songbook[data-era="past"] .song-views button:hover,.songbook[data-era="past"] .song-cats button:hover{color:var(--o-deep);background:#fffaf0b3}
.songbook[data-era="past"] .song-views button[aria-pressed="true"],.songbook[data-era="past"] .song-cats button[aria-pressed="true"]{background:var(--o-red);color:#fff5e6}
.songbook[data-era="past"] .song-sort{color:var(--o-muted)}
.songbook[data-era="past"] .song-sort select{background-color:#fffdf6;border:1.5px solid #e3b98a;color:var(--o-ink);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 6'%3E%3Cpath d='M1 1l4 4 4-4' fill='none' stroke='%237c2c1b' stroke-width='1.6' stroke-linecap='round'/%3E%3C/svg%3E")}
.song-hint{margin:14px 0 0;font-size:13px;letter-spacing:.04em}
.song-hint[hidden]{display:none}
.songbook[data-era="present"] .song-hint{color:var(--p-muted)}
.songbook[data-era="past"] .song-hint{color:var(--o-muted)}

/* ---------- random pick card ---------- */
.song-pick{display:flex;flex-wrap:wrap;align-items:center;gap:8px 18px;margin:16px 0 0;padding:14px 16px 14px 22px;border-radius:20px}
.song-pick[hidden]{display:none}
.song-pick-label{margin:0;font-size:12px;letter-spacing:.14em}
.song-pick-title{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 12px;margin:0;flex:1;min-width:180px}
.song-pick-title strong{font:20px/1.5 var(--sans);overflow-wrap:anywhere}
.song-pick-title span{font-size:14px}
.song-pick-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.song-pick-close{width:34px;height:34px;border-radius:50%;border:0;background:transparent;font:20px/1 sans-serif;cursor:pointer}
.songbook[data-era="present"] .song-pick{background:linear-gradient(120deg,#fffdfb,#f7e9e4);border:1.5px dashed var(--p-rose-deep)}
.songbook[data-era="present"] .song-pick-label{color:var(--p-crimson)}
.songbook[data-era="present"] .song-pick-title strong{color:var(--p-ink)}
.songbook[data-era="present"] .song-pick-title span,.songbook[data-era="present"] .song-pick-close{color:var(--p-muted)}
.songbook[data-era="past"] .song-pick{background:linear-gradient(120deg,#fffdf6,#fbe9cf);border:1.5px dashed var(--o-copper)}
.songbook[data-era="past"] .song-pick-label{color:var(--o-red)}
.songbook[data-era="past"] .song-pick-title strong{color:var(--o-ink)}
.songbook[data-era="past"] .song-pick-title span,.songbook[data-era="past"] .song-pick-close{color:var(--o-muted)}
.song-pick-close:hover,.song-pick-close:focus-visible{background:#0000000f}

/* ---------- list body; grouped views get a side list of singers or tags ---------- */
.song-body{margin-top:18px}
.song-body.is-grouped{display:grid;grid-template-columns:minmax(150px,210px) minmax(0,1fr);gap:22px;align-items:start}
.song-groups{position:sticky;top:120px;max-height:calc(100svh - 150px);overflow:auto;overscroll-behavior:contain;display:grid;align-content:start;gap:3px;padding:6px;border-radius:16px}
.song-groups[hidden]{display:none}
.song-group{display:flex;justify-content:space-between;align-items:baseline;gap:10px;min-height:36px;padding:6px 12px;border:0;border-radius:10px;background:transparent;font:14px/1.5 var(--sans);text-align:left;cursor:pointer;transition:background-color .2s,color .2s}
.song-group-name{overflow-wrap:anywhere}
.song-group-count{font-size:12px;opacity:.75;font-variant-numeric:tabular-nums}
.songbook[data-era="present"] .song-groups{background:#f4ebe6e6;box-shadow:inset 0 0 0 1px #e3cfc5}
.songbook[data-era="present"] .song-group{color:var(--p-ink)}
.songbook[data-era="present"] .song-group:hover{background:#fffdfb}
.songbook[data-era="present"] .song-group[aria-pressed="true"]{background:var(--p-brown);color:#fbf1ea}
.songbook[data-era="past"] .song-groups{background:#fbeedbe6;box-shadow:inset 0 0 0 1px #efc98f}
.songbook[data-era="past"] .song-group{color:var(--o-ink)}
.songbook[data-era="past"] .song-group:hover{background:#fffaf0}
.songbook[data-era="past"] .song-group[aria-pressed="true"]{background:var(--o-red);color:#fff5e6}
.song-found{margin:0 0 10px;font-size:13px;letter-spacing:.04em}
.song-found[hidden]{display:none}
.songbook[data-era="present"] .song-found{color:var(--p-muted)}
.songbook[data-era="past"] .song-found{color:var(--o-muted)}

/* ---------- song rows: one compact panel with thin dividers, two columns when there is room (2026-09-29) ---------- */
.songbook .song-list{list-style:none;margin:0;padding:4px 0;display:grid;gap:0;grid-template-columns:repeat(auto-fill,minmax(min(100%,400px),1fr));border-radius:18px;overflow:hidden}
.song-list:empty{display:none}
.song-row{position:relative;display:grid;grid-template-columns:30px minmax(0,1fr) auto;align-items:center;gap:12px;min-height:54px;padding:7px 16px;border-bottom:1px solid var(--row-line);box-shadow:1px 0 var(--row-line);transition:background-color .15s}
.song-no{font:13px/1 var(--serif);font-variant-numeric:tabular-nums;text-align:right}
.song-text{min-width:0}
.song-name{margin:0;font:16px/1.45 var(--sans);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;transition:color .15s}
.songbook .song-title{display:inline;margin:0;padding:0;border:0;background:none;color:inherit;font:inherit;text-align:left;cursor:pointer}
.songbook .song-title:after{content:"";position:absolute;inset:0}
.songbook .song-title:focus-visible{outline:none}
.songbook .song-row:has(.song-title:focus-visible){outline:2px solid currentColor;outline-offset:-3px;border-radius:10px}
.song-meta{margin:1px 0 0;font-size:12px;line-height:1.5;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.song-meta>span+span:before{content:" · ";opacity:.55}
.song-side{display:flex;align-items:center;gap:8px;font-size:12px;white-space:nowrap;pointer-events:none}
.song-cat{padding:0 9px;border-radius:999px;font-size:11px;line-height:19px;letter-spacing:.06em}
.song-cat[data-cat="练习中"]{background:#f6d9a8;color:#6f3d0e;box-shadow:inset 0 0 0 1px #e0a55a}
.song-cat[data-cat="SC"]{background:linear-gradient(#f6dc9c,#e7b95f);color:#5e3508;box-shadow:inset 0 0 0 1px #d49a3c}
.song-count{font-variant-numeric:tabular-nums}
.song-copy-icon{opacity:.5;transition:opacity .2s,transform .2s}
.song-row:hover .song-copy-icon,.song-row:focus-within .song-copy-icon{opacity:1;transform:scale(1.08)}
.songbook[data-era="present"] .song-list{--row-line:#efe2dc;background:#fffdfb;box-shadow:inset 0 0 0 1.5px #dcc3b9}
.songbook[data-era="present"] .song-row:hover{background:var(--p-blush)}
.songbook[data-era="present"] .song-no,.songbook[data-era="present"] .song-meta{color:var(--p-muted)}
.songbook[data-era="present"] .song-name{color:var(--p-ink)}
.songbook[data-era="present"] .song-row:hover .song-name{color:var(--p-crimson)}
.songbook[data-era="present"] .song-side{color:var(--p-crimson)}
.songbook[data-era="past"] .song-list{--row-line:#f3dcc0;background:#fffdf6;box-shadow:inset 0 0 0 1.5px #e3b98a}
.songbook[data-era="past"] .song-row:hover{background:#fbeedb}
.songbook[data-era="past"] .song-no,.songbook[data-era="past"] .song-meta{color:var(--o-muted)}
.songbook[data-era="past"] .song-name{color:var(--o-ink)}
.songbook[data-era="past"] .song-row:hover .song-name{color:var(--o-red)}
.songbook[data-era="past"] .song-side{color:var(--o-red)}
.song-row.is-picked{animation:song-picked 1.7s ease}
.songbook[data-era="present"] .song-row{--pick:#a8323f;--pick-bg:#f4e2dc}
.songbook[data-era="past"] .song-row{--pick:#b8472d;--pick-bg:#fbe1c3}
@keyframes song-picked{0%,60%{background-color:var(--pick-bg);box-shadow:inset 0 0 0 2px var(--pick)}100%{box-shadow:1px 0 var(--row-line)}}

/* ---------- empty state ---------- */
.songbook .song-empty{margin:4px 0 0;padding:34px 20px;text-align:center;border:1.5px dashed;border-radius:22px;line-height:1.9}
.songbook .song-empty[hidden]{display:none}
.songbook .song-empty p{margin:0}
.songbook .song-empty .song-link{margin-top:14px}
.songbook[data-era="present"] .song-empty{border-color:#d7bba9;color:var(--p-muted);background:#fffdfb99}
.songbook[data-era="past"] .song-empty{border-color:#d69260;color:var(--o-muted);background:#fffaf099}

/* ---------- copy notice (warm glass, like the loading notice) ---------- */
.song-toast{position:fixed;left:50%;bottom:30px;z-index:60;max-width:calc(100vw - 32px);margin:0;padding:10px 20px;border:1px solid #ffffff33;border-radius:999px;background:linear-gradient(160deg,#ffffff1c,#ffffff06 55%),#2a2320c7;-webkit-backdrop-filter:blur(24px) saturate(145%) brightness(.85);backdrop-filter:blur(24px) saturate(145%) brightness(.85);box-shadow:inset 0 1px 0 #fff2,0 10px 30px #1e120e59;color:var(--gold);font-size:14px;line-height:1.6;text-align:center;overflow-wrap:anywhere;opacity:0;transform:translate(-50%,14px);pointer-events:none;transition:opacity .2s,transform .32s var(--ync-glide,ease)}
.song-toast.is-shown{opacity:1;transform:translate(-50%,0)}

/* ---------- request rules dialog (present paper, like the character dialogs) ---------- */
.hub-dialog.song-notice{width:min(620px,calc(100% - 32px));max-height:88svh;padding:44px clamp(20px,4vw,42px) 30px;border:3px solid var(--p-rose);border-radius:20px;color:var(--p-ink);background:url('assets/era/p-scallop-top.webp?v=d4cb595145') 0 0/auto 46px repeat-x local,url('assets/era/p-peony-clear.webp?v=ab850e89ad') right -6px bottom -6px/200px auto no-repeat local,var(--p-paper);box-shadow:0 30px 120px #1d0f0acc}
.hub-dialog.song-notice::backdrop{background:#20150fcc;backdrop-filter:blur(10px)}
.hub-dialog.song-notice .hub-dialog-close{background:var(--p-brown);border:2px solid var(--p-paper);color:#fbf1ea;box-shadow:0 0 0 1.5px var(--p-brown);top:10px;margin:10px 12px -54px 0}
.hub-dialog.song-notice .hub-dialog-close:hover,.hub-dialog.song-notice .hub-dialog-close:focus-visible{background:var(--p-crimson);box-shadow:0 0 0 1.5px var(--p-crimson)}
.hub-dialog.song-notice h2{margin:8px 0 18px;font:800 24px/1.5 var(--serif);letter-spacing:.4em;text-align:center;color:var(--p-ink)}
.song-notice-body h3{margin:18px 0 8px;font:15px/1.6 var(--sans);letter-spacing:.08em;color:var(--p-crimson)}
.song-notice-body h3:first-child{margin-top:0}
.song-notice-body ul{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.song-notice-body li{padding:10px 16px;border-radius:14px;background:#fffdfb;box-shadow:inset 0 0 0 1.5px #e6cdc6;line-height:1.8;overflow-wrap:anywhere}
.hub-dialog.song-notice .song-notice-empty{margin:0;padding:20px;text-align:center;color:var(--p-muted);border:1.5px dashed #d7bba9;border-radius:16px;line-height:1.8}
.hub-dialog.song-notice .song-notice-actions{margin:22px 0 0}
.song-notice-ok{display:block;width:100%;min-height:46px;border:0;border-radius:999px;background:var(--p-brown);color:#fbf1ea;font:15px var(--sans);letter-spacing:.4em;cursor:pointer;transition:background-color .2s}
.song-notice-ok:hover,.song-notice-ok:focus-visible{background:var(--p-crimson)}
.song-notice-ok:focus-visible{outline:2px solid var(--p-crimson);outline-offset:3px}

@media(max-width:760px){
 .song-switch{border-radius:18px}
 .song-switch button{min-height:58px;padding:8px 6px;border-radius:13px}
 .song-switch strong{font-size:16px;letter-spacing:.06em}
 .song-switch small{font-size:11px;letter-spacing:.02em}
 .song-links{margin-bottom:18px}
 .song-toolbar{gap:8px}
 .song-search input{height:46px;padding-right:16px}
 .song-search kbd{display:none}
 .song-random{min-height:46px;padding:0 16px}
 .song-controls{gap:10px}
 .song-views,.song-cats{display:flex;width:100%;box-sizing:border-box}
 .song-views button,.song-cats button{flex:1;padding-inline:6px}
 .song-sort{margin-left:0;width:100%;justify-content:space-between}
 .song-sort select{flex:1;max-width:220px}
 .song-body.is-grouped{grid-template-columns:1fr;gap:12px}
 .song-groups{position:static;max-height:none;display:flex;gap:6px;overflow-x:auto;padding:6px;border-radius:14px;scrollbar-width:none}
 .song-groups::-webkit-scrollbar{display:none}
 .song-group{flex:none;white-space:nowrap;border-radius:999px}
 .song-row{grid-template-columns:24px minmax(0,1fr) auto;gap:10px;min-height:52px;padding:6px 12px}
 .song-no{font-size:12px}
 .song-name{font-size:15.5px}
 .song-pick{padding:12px 12px 12px 16px}
 .song-toast{bottom:88px}
 .hub-dialog.song-notice{padding:40px 18px 22px}
 .hub-dialog.song-notice h2{font-size:21px;letter-spacing:.3em}
}
@media(max-width:420px){.song-random-label{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.song-random{padding:0 15px}.song-random-mark{font-size:16px}}
@media(prefers-reduced-motion:reduce){.song-link,.song-random,.song-switch button,.song-toast,.song-copy-icon,.song-row,.song-name{transition:none}.song-row.is-picked{animation:none;box-shadow:inset 0 0 0 2px var(--pick)}}
.motion-paused .song-link,.motion-paused .song-random,.motion-paused .song-toast{transition:none}
.motion-paused .song-row.is-picked{animation:none;box-shadow:inset 0 0 0 2px var(--pick)}
/* Intro line above each list (2026-09-29): text from 歌单/影妹的歌单-简介.txt and 歌单/影哥想听-简介.txt. */
.songbook .song-intro{margin:0 0 16px;padding:14px 20px;border-radius:16px;font:15px/1.95 var(--sans);letter-spacing:.03em;white-space:pre-line;overflow-wrap:anywhere}
.songbook .song-intro[hidden]{display:none}
.songbook[data-era="present"] .song-intro{background:#fffdfbd9;color:var(--p-ink);box-shadow:inset 0 0 0 1.5px #e6cdc6}
.songbook[data-era="past"] .song-intro{background:#fffaf0d9;color:var(--o-ink);box-shadow:inset 0 0 0 1.5px #efc98f}
.song-views button[hidden]{display:none}
