@charset "UTF-8";

@font-face { font-family: 'Jost'; font-style: normal; font-weight: 400 700; font-display: swap; src: url('../fonts/font-1.woff2') format('woff2'); }

:root {
  --paper: #f5f4f0;
  --white: #faf9f6;
  --ink: #1C1C1C;
  --muted: #6b6b6b;
  --accent: #5874a0;
  --wash: #eeede8;
  --line: rgba(28, 28, 28, .14);
  --card: #faf9f6;
  --max: 1520px;
  --sans: Futura, 'Futura PT', Jost, 'Avenir Next', 'Hiragino Sans', 'Hiragino Kaku Gothic ProN', 'Yu Gothic', sans-serif;
  --display: var(--sans);
  font-family: var(--sans);
  color: var(--ink);
  background: var(--paper);
  font-synthesis: none;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 150px; }
body { margin: 0; color: var(--ink); background: var(--paper); font-size: 15px; line-height: 1.8; -webkit-font-smoothing: antialiased; }
button, input, select, textarea { font: inherit; }
button, a, input, select, summary { touch-action: manipulation; -webkit-tap-highlight-color: transparent; }
button { cursor: pointer; color: inherit; background: transparent; border: 1px solid var(--line); border-radius: 0; }
a { color: inherit; text-decoration: none; text-underline-offset: 4px; }
button, a { transition: background .16s, color .16s, border-color .16s; }
button:disabled { cursor: default; opacity: .45; }
:focus-visible { outline: 3px solid var(--accent); outline-offset: 4px; }
::selection { background: #dce2ec; color: var(--ink); }
svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; vertical-align: middle; flex-shrink: 0; }
[hidden] { display: none !important; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.shell { width: min(var(--max), calc(100% - 92px)); margin-inline: auto; }
.skip-link { position: fixed; top: -100px; left: 20px; z-index: 100; background: var(--ink); color: var(--paper); padding: 10px 18px; font-size: 13px; }
.skip-link:focus { top: 10px; }

.topbar { border-bottom: 1px solid var(--line); background: var(--paper); }
.topbar-inner { display: flex; justify-content: space-between; align-items: center; gap: 25px; min-height: 93px; padding-block: 18px; }
.brand { font-family: var(--sans); font-size: 25px; font-weight: 700; letter-spacing: -1px; line-height: 1.2; white-space: nowrap; }
.brand small { display: block; margin-top: 7px; font: 500 9px/1.5 var(--sans); letter-spacing: 3px; }
.top-nav { display: flex; align-items: center; justify-content: flex-end; gap: 25px; flex-wrap: wrap; font-size: 12px; }
.top-nav > a { padding: 9px 0; border-bottom: 1px solid transparent; }
.top-nav > a:hover { border-color: var(--ink); }
.top-nav > a[aria-current=page] { border-color: var(--ink); font-weight: 700; }
.nav-save { display: flex; align-items: center; gap: 9px; min-height: 40px; padding: 6px 0 6px 20px; border: 0; border-left: 1px solid var(--line); font-size: 12px; }
.nav-save:hover { color: #836318; }
.nav-save svg { width: 16px; height: 16px; }
.mini-count { display: inline-grid; place-items: center; min-width: 25px; height: 25px; background: var(--wash); font: 500 14px/1 var(--sans); }

.issue-cover { position: relative; margin: 28px 0 38px; padding: 24px 34px 30px; background: var(--wash); overflow: hidden; border: 1px solid #ffffff88; border-radius: 2px 2px 28px 2px; box-shadow: 0 9px 0 -6px var(--ink); }
.issue-meta { display: flex; align-items: baseline; justify-content: space-between; gap: 20px; padding-bottom: 12px; border-bottom: 1px solid currentColor; font-size: 10px; line-height: 1.7; letter-spacing: 2px; }
.issue-main { display: grid; grid-template-columns: 1.08fr 1fr; align-items: end; gap: 40px; padding-top: 22px; }
.issue-main > * { min-width: 0; }
.issue-word { margin: 12px 0 10px; font-family: var(--display); font-stretch: normal; font-weight: 600; font-size: clamp(110px, 13vw, 178px); line-height: .85; letter-spacing: -5px; overflow-wrap: anywhere; text-shadow: none; }
.cover-year { display: block; margin-top: 14px; font-family: var(--sans); font-size: clamp(19px, 2vw, 27px); font-weight: 400; font-style: normal; letter-spacing: -.04em; line-height: 1.1; text-shadow: none; }
.issue-copy { padding-bottom: 3px; }
.issue-copy .folio { display: block; margin-bottom: 11px; font-family: var(--sans); font-size: 17px; font-style: normal; line-height: 1.5; }
.issue-copy h1 { margin: 0 0 14px; font-family: var(--sans); font-size: clamp(29px, 3.2vw, 46px); font-weight: 700; line-height: 1.35; letter-spacing: .025em; }
.issue-copy p { max-width: 36em; margin: 0; font-size: 13px; line-height: 1.9; }
.issue-bottom { display: flex; align-items: center; justify-content: space-between; gap: 25px; margin-top: 28px; padding-top: 16px; border-top: 1px solid currentColor; font-size: 12px; }
.cover-links { display: flex; align-items: center; flex-wrap: wrap; gap: 16px 25px; }
.cover-links a { display: inline-flex; align-items: baseline; gap: 9px; padding-bottom: 2px; border-bottom: 1px solid transparent; }
.cover-links a:hover { border-color: var(--ink); }
.cover-links a b { font: 500 23px/1.2 var(--sans); }
.cover-stats { display: flex; align-items: baseline; gap: 9px; white-space: nowrap; }
.cover-stats strong { font: 500 35px/1 var(--sans); }
.cover-stats span { font-size: 12px; }

.workspace { display: block; padding-block: 12px 65px; }
.content { min-width: 0; }
.section-heading { display: flex; align-items: center; justify-content: space-between; gap: 24px; margin-bottom: 23px; }
.section-heading h2 { margin: 0 0 7px; font-family: var(--sans); font-size: 30px; font-weight: 700; line-height: 1.4; letter-spacing: .015em; }
.section-heading p { margin: 0; color: var(--muted); font-size: 12px; line-height: 1.8; }
.section-heading .micro-title { margin-bottom: 8px; font-size: 10px; letter-spacing: 2px; }
.section-actions { display: flex; align-items: center; gap: 9px; flex-wrap: wrap; }
.action-button { display: inline-flex; align-items: center; justify-content: center; gap: 7px; min-height: 40px; padding: 8px 13px; border: 1px solid var(--line); font-size: 12px; line-height: 1.6; white-space: nowrap; }
.action-button:hover { background: var(--wash); }
.action-button svg { width: 15px; height: 15px; }

.artist-index, .contents-index { margin: 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); scroll-margin-top: 24px; }
.artist-index + .contents-index, .contents-index + .artist-index { border-top: 0; }
.artist-index summary, .contents-index summary { display: flex; align-items: center; justify-content: space-between; gap: 15px; padding: 15px 0; list-style: none; cursor: pointer; font-size: 13px; font-weight: 600; }
.artist-index summary::-webkit-details-marker, .contents-index summary::-webkit-details-marker { display: none; }
.artist-index summary > span, .contents-index summary > span { display: flex; align-items: center; gap: 15px; }
.index-label { font-size: 10px; font-weight: 400; letter-spacing: 2px; color: var(--muted); }
.artist-index summary > svg, .contents-index summary > svg { width: 16px; height: 16px; }
.artist-index[open] summary > svg, .contents-index[open] summary > svg { transform: rotate(180deg); }
.artist-chips { display: flex; flex-wrap: wrap; gap: 9px; padding: 4px 0 15px; }
.artist-chip { display: inline-flex; align-items: center; gap: 14px; min-height: 39px; padding: 8px 12px; background: var(--white); border: 1px solid var(--line); font-size: 12px; text-align: left; }
.artist-chip small { color: var(--muted); font: 500 14px/1 var(--sans); }
.artist-chip:hover { background: var(--wash); }
.artist-chip[aria-pressed=true] { color: var(--paper); background: var(--ink); border-color: var(--ink); }
.artist-chip[aria-pressed=true] small { color: var(--paper); }
.artists-note { margin: 0 0 17px; color: var(--muted); font-size: 12px; line-height: 1.8; }
.jump-nav { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0 28px; padding: 0 0 19px; }
.jump-nav a { display: flex; align-items: baseline; gap: 12px; padding: 10px 0; border-bottom: 1px solid var(--line); font-size: 12px; line-height: 1.65; }
.jump-nav a span:first-child { min-width: 45px; color: var(--muted); font: 500 15px/1.6 var(--sans); }
.jump-nav a:hover { color: #836318; background: var(--wash); }

.filters { position: sticky; top: 0; z-index: 10; padding: 18px 0 0; background: var(--paper); border-bottom: 1px solid var(--line); }
.filter-inputs { display: grid; grid-template-columns: minmax(0, 1fr) 265px; gap: 20px; }
.search-wrap { position: relative; display: flex; align-items: center; border-bottom: 1px solid var(--line); background: #ffffff90; }
.search-wrap > svg { position: absolute; left: 13px; width: 19px; height: 19px; color: var(--muted); pointer-events: none; }
.search-wrap input { width: 100%; min-width: 0; height: 49px; padding: 10px 45px 10px 44px; border: 0; border-radius: 0; background: transparent; color: var(--ink); font-size: 16px; }
.search-wrap input::-webkit-search-cancel-button { -webkit-appearance: none; }
.search-wrap input::placeholder { color: #788075; opacity: 1; }
.clear-search { position: absolute; top: 7px; right: 6px; display: grid; place-items: center; width: 35px; height: 35px; padding: 0; border: 0; }
.clear-search:hover { background: var(--wash); }
.clear-search svg { width: 16px; height: 16px; }
.select-wrap { position: relative; }
.select-wrap select { width: 100%; min-width: 0; height: 50px; padding: 10px 36px 10px 12px; border: 0; border-bottom: 1px solid var(--line); border-radius: 0; appearance: none; -webkit-appearance: none; background: #ffffff90; color: var(--ink); font-size: 13px; cursor: pointer; }
.select-wrap > svg { position: absolute; top: 18px; right: 13px; width: 14px; height: 14px; pointer-events: none; }
.filter-bottom { display: flex; align-items: center; justify-content: space-between; gap: 20px; min-height: 73px; }
.filter-tabs { display: flex; align-items: center; flex-wrap: wrap; gap: 5px; padding-block: 12px; }
.filter-tab { display: inline-flex; align-items: center; justify-content: center; gap: 7px; min-height: 42px; padding: 9px 14px; border: 0; color: var(--muted); font-size: 12px; font-weight: 600; line-height: 1.6; white-space: nowrap; }
.filter-tab:hover { color: var(--ink); background: var(--wash); }
.filter-tab[aria-pressed=true] { color: var(--paper); background: var(--ink); }
.filter-tab svg { width: 15px; height: 15px; }
.tab-count { display: inline-grid; place-items: center; min-width: 20px; padding: 1px 4px; background: var(--wash); color: var(--muted); font: 500 12px/1.4 var(--sans); }
.filter-tab[aria-pressed=true] .tab-count { background: #ffffff22; color: var(--paper); }
.result-total { white-space: nowrap; color: var(--muted); font-size: 12px; }
.result-total strong { margin-right: 4px; font: 500 23px/1 var(--sans); color: var(--ink); }
.filter-status { display: flex; align-items: center; flex-wrap: wrap; gap: 10px 16px; min-height: 28px; margin: 16px 0 33px; }
.filter-hint { flex: 1; min-width: 210px; margin: 0; color: var(--muted); font-size: 12px; line-height: 1.9; }
.reset-button { padding: 3px 0; border: 0; text-decoration: underline; text-underline-offset: 4px; font-size: 12px; }
.reset-button:hover { color: #836318; }
.active-artist { display: inline-flex; align-items: center; gap: 7px; max-width: 100%; padding-left: 10px; background: var(--wash); border: 1px solid var(--line); font-size: 12px; line-height: 1.6; }
.active-artist button { display: grid; place-items: center; width: 30px; height: 30px; padding: 0; border: 0; }
.active-artist svg { width: 13px; height: 13px; }

.song-section { margin-bottom: 40px; scroll-margin-top: 160px; }
.group-heading { display: flex; align-items: baseline; justify-content: space-between; gap: 20px; padding: 0 0 16px; background: transparent; }
.group-heading > div { display: flex; align-items: baseline; gap: 17px; min-width: 0; }
.group-heading h3 { margin: 0; font-family: var(--sans); font-size: 27px; font-weight: 700; line-height: 1.45; letter-spacing: .015em; overflow-wrap: anywhere; }
.group-index { color: #9a7b3e; font: 500 29px/1 var(--sans); }
.group-count { flex-shrink: 0; color: var(--muted); font-size: 12px; }
.song-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
.song-row { display: grid; grid-template-columns: 30px minmax(0, 1fr) 34px; align-items: start; gap: 13px; padding: 23px 22px 25px; border-top: 3px solid var(--ink); border-bottom: 1px solid var(--line); background: var(--card); }
.song-grid > .song-row:only-child { grid-column: 1 / -1; }
.song-row:hover { background: #fff5e2; }
.song-number { padding-top: 4px; color: #8a794f; font: 500 18px/1.2 var(--sans); font-variant-numeric: tabular-nums; }
.song-content { min-width: 0; }
.song-title-line { display: flex; align-items: center; flex-wrap: wrap; gap: 7px 10px; }
.song-title { margin: 0; font-family: var(--sans); font-size: 25px; font-weight: 700; line-height: 1.4; letter-spacing: -.01em; overflow-wrap: anywhere; }
.song-artists { margin: 7px 0 0; color: var(--muted); font-size: 13px; line-height: 1.9; overflow-wrap: anywhere; }
.song-artists .artist-link { display: inline; padding: 0; border: 0; background: transparent; color: inherit; font: inherit; line-height: inherit; text-align: left; }
.song-artists .artist-link:hover { text-decoration: underline; text-underline-offset: 4px; }
.artist-separator { padding-inline: 5px; color: #a49c86; }


.photo-badge { display: inline-flex; align-items: center; gap: 4px; padding: 3px 7px; border: 1px solid #1C1C1C; border-radius: 6px; background: #1C1C1C; color: #FFFFFF; font-family: var(--sans); font-size: 11px; font-weight: 500; line-height: 1.6; white-space: nowrap; }
.photo-badge svg { width: 12px; height: 12px; }
.bookmark-button { display: grid; place-items: center; width: 34px; height: 34px; margin-top: 1px; padding: 0; border: 1px solid var(--line); border-radius: 50%; color: #827d69; background: transparent; }
.bookmark-button svg { width: 16px; height: 16px; }
.bookmark-button:hover { border-color: var(--ink); color: var(--ink); background: var(--wash); }
.bookmark-button[aria-pressed=true] { border-color: var(--ink); background: var(--ink); color: var(--paper); }
.bookmark-button[aria-pressed=true] svg { fill: currentColor; }

.empty-state { margin: 32px 0; padding: 52px 24px 58px; border: 1px dashed var(--line); background: var(--white); text-align: center; }
.empty-state > svg { width: 37px; height: 37px; margin-bottom: 16px; color: #a29670; stroke-width: 1.2; }
.empty-state h3 { margin: 0 0 12px; font: 700 25px/1.5 var(--sans); }
.empty-state p { margin: 0 0 24px; color: var(--muted); font-size: 13px; line-height: 1.9; }
.empty-state button { padding: 10px 18px; background: var(--ink); border-color: var(--ink); color: var(--paper); font-size: 13px; }
.page-footer { border-top: 1px solid var(--line); color: var(--ink); background: var(--paper); }
.footer-inner { display: flex; align-items: center; justify-content: space-between; gap: 25px; min-height: 119px; padding-block: 24px; }
.footer-wordmark { font-family: var(--sans); font-size: 25px; font-weight: 700; line-height: 1.25; letter-spacing: -.03em; }
.footer-wordmark span { display: block; margin-top: 7px; font: 500 9px/1.6 var(--sans); letter-spacing: 2px; }
.footer-credit { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding-block: 0 24px; font-family: var(--sans); font-size: 11px; font-weight: 500; line-height: 1.8; color: var(--muted); letter-spacing: 1px; }
.back-top { display: inline-flex; align-items: center; gap: 9px; font-size: 12px; white-space: nowrap; }
.back-top:hover { text-decoration: underline; }
.back-top svg { width: 15px; height: 15px; }
.toast { position: fixed; left: 50%; bottom: 26px; z-index: 50; transform: translateX(-50%); width: max-content; max-width: calc(100vw - 32px); padding: 12px 20px; background: var(--ink); color: var(--paper); font-size: 13px; line-height: 1.8; text-align: center; opacity: 0; pointer-events: none; transition: opacity .16s; }
.toast.show { opacity: 1; }
.copy-dialog { width: min(670px, calc(100vw - 32px)); padding: 28px; border: 1px solid var(--line); border-radius: 2px; background: var(--paper); color: var(--ink); }
.copy-dialog::backdrop { background: #172b22aa; }
.dialog-heading { display: flex; align-items: center; justify-content: space-between; gap: 20px; margin-bottom: 12px; }
.dialog-heading h2 { margin: 0; font: 700 25px/1.4 var(--sans); }
.dialog-heading button { width: 38px; height: 38px; padding: 0; border: 0; }
.copy-dialog p { margin: 0 0 15px; color: var(--muted); font-size: 13px; line-height: 1.8; }
.copy-dialog textarea { width: 100%; height: 360px; max-height: 52vh; padding: 15px; border: 1px solid var(--line); border-radius: 0; resize: vertical; background: var(--white); color: var(--ink); font-size: 13px; line-height: 1.8; }
.print-only { display: none; }
.no-js-note { padding: 12px 16px; background: var(--wash); font-size: 13px; }
.js-control { visibility: hidden; }
.is-ready .js-control { visibility: visible; }

@media (min-width: 1550px) {
  .issue-main { grid-template-columns: 1.1fr 1fr; }
  .song-row { padding: 27px 28px 29px; }
}
@media (max-width: 1150px) {
  .shell { width: calc(100% - 50px); }
  .top-nav { gap: 18px; }
  .issue-cover { padding: 24px 28px 28px; }
  .issue-main { gap: 30px; }
  .issue-word { font-size: clamp(102px, 12.5vw, 148px); }
  .cover-links { gap: 13px 18px; }
  .song-grid { gap: 20px; }
  .song-row { grid-template-columns: 25px minmax(0, 1fr) 32px; gap: 10px; padding: 22px 18px; }
  .song-title { font-size: 23px; }
  .bookmark-button { width: 32px; height: 32px; }
}
@media (max-width: 760px) {
  html { scroll-padding-top: 210px; }
  .shell { width: calc(100% - 36px); }
  .topbar-inner { display: block; min-height: 0; padding-block: 18px 12px; }
  .brand { display: inline-block; font-size: 23px; }
  .brand small { margin-top: 5px; }
  .top-nav { justify-content: flex-start; flex-wrap: nowrap; gap: 21px; margin-top: 12px; overflow-x: auto; font-size: 12px; }
  .top-nav > a { flex-shrink: 0; padding: 8px 0; }
  .nav-save { flex-shrink: 0; gap: 7px; padding-left: 17px; font-size: 12px; }
  .issue-cover { margin: 20px 0 31px; padding: 20px; }
  .issue-meta { gap: 12px; font-size: 9px; letter-spacing: 1.2px; }
  .issue-main { grid-template-columns: 1fr; gap: 25px; padding-top: 18px; }
  .issue-word { font-size: clamp(90px, 23vw, 140px); line-height: .85; letter-spacing: -4px; margin: 10px 0 0; }
  .cover-year { margin-top: 12px; font-size: 22px; }
  .issue-copy { padding: 0; }
  .issue-copy .folio { margin-bottom: 9px; font-size: 16px; }
  .issue-copy h1 { font-size: 30px; margin-bottom: 12px; }
  .issue-copy p { font-size: 12px; }
  .issue-bottom { flex-wrap: wrap; gap: 18px; margin-top: 22px; padding-top: 16px; }
  .cover-links { gap: 12px 18px; font-size: 12px; }
  .cover-links a { gap: 7px; }
  .cover-links a b { font-size: 20px; }
  .cover-stats { margin-left: auto; }
  .cover-stats strong { font-size: 30px; }
  .workspace { padding-block: 9px 40px; }
  .section-heading { align-items: flex-start; flex-wrap: wrap; gap: 17px; margin-bottom: 20px; }
  .section-heading h2 { font-size: 26px; }
  .section-heading p { font-size: 12px; }
  .section-actions { gap: 8px; }
  .action-button { min-height: 39px; padding: 8px 11px; font-size: 12px; }
  .artist-index summary, .contents-index summary { font-size: 13px; padding-block: 14px; }
  .index-label { display: none; }
  .artist-chips { gap: 8px; }
  .artist-chip { min-height: 39px; padding: 8px 10px; font-size: 12px; gap: 11px; }
  .artists-note { font-size: 12px; }
  .jump-nav { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 20px; padding-bottom: 16px; }
  .jump-nav a { font-size: 12px; gap: 8px; }
  .jump-nav a span:first-child { min-width: 40px; font-size: 14px; }
  .filters { padding-top: 14px; }
  .filter-inputs { grid-template-columns: 1fr; gap: 9px; }
  .search-wrap input { height: 47px; font-size: 16px; }
  .select-wrap select { height: 44px; font-size: 16px; }
  .select-wrap > svg { top: 15px; }
  .filter-bottom { min-height: 65px; gap: 8px; }
  .filter-tabs { flex: 1; flex-wrap: nowrap; justify-content: space-between; gap: 3px; padding-block: 11px; }
  .filter-tab { min-height: 42px; gap: 5px; padding: 9px 8px; font-size: 12px; }
  .filter-tab svg { width: 13px; height: 13px; }
  .tab-count { min-width: 17px; padding-inline: 3px; font-size: 11px; }
  .result-total { display: none; }
  .filter-status { margin: 14px 0 28px; gap: 10px; }
  .filter-hint, .reset-button, .active-artist { font-size: 12px; }
  .filter-hint { min-width: 200px; }
  .song-section { margin-bottom: 32px; scroll-margin-top: 210px; }
  .group-heading { gap: 14px; padding-bottom: 13px; }
  .group-heading > div { gap: 12px; }
  .group-heading h3 { font-size: 23px; }
  .group-index { font-size: 25px; }
  .group-count { font-size: 12px; }
  .song-grid { grid-template-columns: 1fr; gap: 15px; }
  .song-row { grid-template-columns: 24px minmax(0, 1fr) 32px; gap: 10px; padding: 21px 17px 22px; }
  .song-number { font-size: 17px; padding-top: 3px; }
  .song-title { font-size: 20px; line-height: 1.45; }
  .song-title-line { gap: 7px 8px; }
  .song-artists { font-size: 12px; line-height: 1.9; }

  .artist-separator { padding-inline: 4px; }
  .photo-badge { font-size: 11px; }
  .footer-inner { flex-wrap: wrap; gap: 20px; min-height: 109px; padding-block: 24px; }
  .footer-wordmark { font-size: 23px; }
  .footer-credit { font-size: 11px; order: 3; width: 100%; }
  .back-top { font-size: 12px; margin-left: auto; }
  .toast { font-size: 12px; padding: 11px 16px; bottom: 19px; }
  .copy-dialog { padding: 20px; }
  .dialog-heading h2 { font-size: 23px; }
  .copy-dialog p { font-size: 12px; }
  .copy-dialog textarea { font-size: 16px; }
  .empty-state { padding: 38px 18px 44px; }
  .empty-state h3 { font-size: 22px; }
  .empty-state p { font-size: 12px; }
}
@media (max-width: 390px) {
  html { scroll-padding-top: 267px; }
  .song-section { scroll-margin-top: 267px; }
  .shell { width: calc(100% - 28px); }
  .issue-cover { padding: 18px; }
  .issue-meta { letter-spacing: .7px; font-size: 8px; }
  .issue-word { font-size: 87px; }
  .cover-year { font-size: 20px; }
  .issue-copy h1 { font-size: 28px; }
  .cover-links { gap: 10px 15px; }
  .top-nav { gap: 16px; }
  .nav-save { padding-left: 12px; }
  .filter-tabs { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 5px; width: 100%; }
  .filter-tab { gap: 3px; padding-inline: 5px; font-size: 12px; }
  .filter-tab svg { width: 12px; height: 12px; }
  .tab-count { min-width: 16px; font-size: 10px; }
  .jump-nav { grid-template-columns: 1fr; }
  .song-row { padding-inline: 13px; grid-template-columns: 22px minmax(0, 1fr) 32px; gap: 8px; }
  .group-heading h3 { font-size: 21px; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}
@media print {
  @page { size: A4; margin: 14mm; }
  body { background: white; color: black; font-size: 10px; }
  .shell { width: 100%; max-width: none; }
  .topbar, .issue-meta, .issue-copy .folio, .issue-copy p, .issue-bottom, .section-actions, .artist-index, .contents-index, .filters, .filter-status, .bookmark-button, .page-footer, .toast, .copy-dialog, .no-js-note, .empty-state { display: none !important; }
  .issue-cover { margin: 0; padding: 0 0 14px; border: 0; border-bottom: 1px solid #777; border-radius: 0; background: white; box-shadow: none; overflow: visible; }
  .issue-main { display: block; padding: 0; }
  .issue-word { margin: 0; font-size: 38px; line-height: 1; letter-spacing: -1px; text-shadow: none; }
  .cover-year { display: inline-block; margin: 0 0 0 12px; font-size: 18px; }
  .issue-copy { margin-top: 10px; }
  .issue-copy h1 { margin: 0; font-size: 16px; line-height: 1.4; }
  .issue-copy h1 br { display: none; }
  .workspace { padding: 18px 0; }
  .section-heading { margin-bottom: 12px; }
  .section-heading h2 { font-size: 18px; margin-bottom: 4px; }
  .section-heading p { font-size: 10px; }
  .print-only { display: block; margin: 8px 0; font-size: 10px; }
  .song-section { margin-bottom: 17px; }
  .group-heading { padding-bottom: 7px; gap: 12px; break-after: avoid; }
  .group-heading > div { gap: 10px; }
  .group-heading h3 { font-size: 14px; }
  .group-index { font-size: 18px; color: #555; }
  .group-count { font-size: 10px; color: #555; }
  .song-grid { display: block; }
  .song-row { display: grid; grid-template-columns: 25px minmax(0, 1fr); gap: 8px; padding: 8px 0; border-top: 0; border-bottom: 1px solid #ddd; background: white; break-inside: avoid; }
  .song-number { font-size: 12px; padding-top: 2px; color: #555; }
  .song-title { font-size: 13px; line-height: 1.4; }
  .song-artists { margin-top: 3px; font-size: 10px; color: #444; line-height: 1.6; }

  .photo-badge { padding: 0 4px; background: white; border-color: #999; color: black; font-size: 8px; }
  .photo-badge svg { width: 9px; height: 9px; }
}


:root { --band-ink: #24382f; --band-accent: #887344; --band-wash: #f4eddc; }
[data-theme="teal"] { --band-ink: #163e48; --band-accent: #277986; --band-wash: #c5e0de; }
[data-theme="rose"] { --band-ink: #672e2c; --band-accent: #ad4941; --band-wash: #f4beb0; }
[data-theme="blue"] { --band-ink: #243957; --band-accent: #4a6599; --band-wash: #c6d1e9; }
[data-theme="violet"] { --band-ink: #45385b; --band-accent: #7a609c; --band-wash: #dcd2ed; }
[data-theme="green"] { --band-ink: #2d4535; --band-accent: #69814c; --band-wash: #d3dfb9; }
[data-theme="amber"] { --band-ink: #583c21; --band-accent: #a66d27; --band-wash: #eed198; }
[data-theme="lilac"] { --band-ink: #4d4055; --band-accent: #887192; --band-wash: #e6dce9; }
[data-theme="slate"] { --band-ink: #2e434e; --band-accent: #668395; --band-wash: #d7e1e5; }
[data-theme="coral"] { --band-ink: #713a2a; --band-accent: #a75b41; --band-wash: #f0c8b6; }
[data-theme="sky"] { --band-ink: #264753; --band-accent: #447f9e; --band-wash: #cee2ef; }
[data-theme="olive"] { --band-ink: #3d4824; --band-accent: #6f813c; --band-wash: #c5d49f; }
[data-theme="plum"] { --band-ink: #543547; --band-accent: #936482; --band-wash: #dbc3d8; }
[data-theme="sand"] { --band-ink: #594b33; --band-accent: #8e794b; --band-wash: #e2d5b5; }
[data-theme="mint"] { --band-ink: #28483d; --band-accent: #518b76; --band-wash: #c8e6d7; }
[data-theme="ochre"] { --band-ink: #614924; --band-accent: #ad893c; --band-wash: #ebd995; }
.workspace { display: grid; grid-template-columns: 220px minmax(0, 1fr); align-items: start; gap: 34px; padding-top: 10px; }
.sidebar { min-width: 0; position: sticky; top: 20px; }
.sidebar .contents-index { border-top: 1px solid var(--ink); border-bottom: 1px solid var(--line); }
.sidebar .contents-index summary { gap: 10px; padding: 13px 0; font-size: 12px; }
.sidebar .contents-index summary > span { gap: 10px; }
.sidebar .index-label { display: inline; font-size: 10px; }
.sidebar .jump-nav { display: flex; flex-direction: column; gap: 0; max-height: calc(100vh - 116px); overflow-y: auto; padding: 0 5px 10px 0; scrollbar-width: thin; scrollbar-color: #c1bda9 transparent; }
.jump-nav a[data-theme] { border-left: 4px solid var(--band-accent); color: var(--ink); }
.sidebar .jump-nav a { align-items: baseline; min-height: 34px; gap: 8px; padding: 7px 8px; font-size: 11px; line-height: 1.5; }
.sidebar .jump-nav a span:first-child { flex-shrink: 0; min-width: 37px; color: inherit; opacity: .72; font-size: 12px; }
.jump-nav a[data-theme]:hover, .jump-nav a[data-theme][aria-current] { background: var(--band-wash); color: var(--band-ink); }
.artist-chip[data-theme] { border-left: 4px solid var(--band-accent); color: var(--ink); }
.artist-chip[data-theme]:hover, .artist-chip[data-theme][aria-pressed=true] { background: var(--band-wash); border-color: var(--band-accent); color: var(--band-ink); }
.artist-chip[data-theme][aria-pressed=true] { box-shadow: inset 0 0 0 1px var(--band-ink); font-weight: 600; }
.artist-chip[data-theme]:hover small, .artist-chip[data-theme][aria-pressed=true] small { color: var(--band-ink); }
.section-heading { margin-bottom: 18px; }
.section-heading h2 { font-size: 28px; }
.filters { padding-top: 12px; }
.filter-inputs { grid-template-columns: minmax(0, 1fr) 235px; gap: 16px; }
.filter-bottom { min-height: 62px; gap: 12px; }
.filter-tabs { gap: 3px; padding-block: 10px; }
.filter-tab { min-height: 39px; padding: 8px 10px; }
.filter-status { margin: 12px 0 22px; }
.song-section { margin-bottom: 27px; }
.group-heading { align-items: center; gap: 14px; padding: 12px 16px; border-top: 3px solid var(--band-ink); border-bottom: 1px solid var(--line); background: var(--band-wash); color: var(--band-ink); }
.group-heading > div { align-items: baseline; gap: 13px; }
.group-heading h3 { font-size: 23px; line-height: 1.4; }
.group-index { color: var(--band-ink); opacity: .74; font-size: 25px; }
.group-count { color: var(--band-ink); opacity: .8; }
.song-grid { display: block; }
.song-row { display: grid; grid-template-columns: 31px minmax(0, 1fr) 34px; gap: 12px; padding: 14px 15px; border-top: 0; border-bottom: 1px solid var(--line); background: var(--white); }
.song-row:hover { background: #f7f1e3; }
.song-title { font-size: 22px; line-height: 1.4; }
.song-number { padding-top: 3px; font-size: 17px; }
.song-artists { margin-top: 3px; font-size: 12px; line-height: 1.8; }

.bookmark-button { align-self: center; }
@media (max-width: 1150px) {
  .workspace { grid-template-columns: 200px minmax(0, 1fr); gap: 26px; }
  .filter-inputs { grid-template-columns: minmax(0, 1fr) 195px; gap: 12px; }
  .filter-tab { padding-inline: 8px; gap: 5px; }
  .song-row { grid-template-columns: 27px minmax(0, 1fr) 32px; gap: 10px; padding: 14px 13px; }
  .song-title { font-size: 21px; }
}
@media (min-width: 851px) {
  .sidebar .contents-index summary { cursor: default; }
  .sidebar .contents-index summary > svg { display: none; }
}
@media (max-width: 850px) {
  html { scroll-padding-top: 215px; }
  .workspace { display: block; padding-top: 10px; }
  .sidebar { position: static; margin-bottom: 25px; }
  .sidebar .contents-index summary { padding-block: 14px; font-size: 13px; }
  .sidebar .contents-index summary > svg { display: block; }
  .sidebar .jump-nav { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 15px; max-height: 330px; padding: 0 0 12px; }
  .sidebar .jump-nav a { min-height: 38px; font-size: 12px; padding: 8px; }
  .filter-inputs { grid-template-columns: 1fr; gap: 8px; }
  .select-wrap select { font-size: 16px; height: 44px; }
  .select-wrap > svg { top: 15px; }
  .search-wrap input { font-size: 16px; }
  .filter-bottom { min-height: 62px; }
  .filter-tabs { flex: 1; flex-wrap: nowrap; justify-content: space-between; gap: 4px; }
  .filter-tab { min-height: 40px; padding: 8px 10px; font-size: 12px; }
  .result-total { display: none; }
  .song-section { scroll-margin-top: 215px; }
}
@media (max-width: 760px) {
  .section-heading h2 { font-size: 26px; }
  .group-heading { padding: 11px 12px; }
  .group-heading h3 { font-size: 21px; }
  .group-heading > div { gap: 10px; }
  .group-index { font-size: 24px; }
  .song-grid { display: block; }
  .song-row { grid-template-columns: 24px minmax(0, 1fr) 32px; gap: 9px; padding: 14px 12px; }
  .song-title { font-size: 20px; }
  .song-artists { font-size: 12px; }
  .filter-tab { padding-inline: 8px; gap: 5px; }
}
@media (max-width: 390px) {
  html { scroll-padding-top: 255px; }
  .sidebar .jump-nav { grid-template-columns: 1fr; }
  .filter-tabs { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 5px; width: 100%; padding-block: 9px; }
  .filter-tab { width: 100%; min-width: 0; min-height: 39px; padding: 8px; font-size: 12px; }
  .filter-bottom { min-height: 0; }
  .tab-count { font-size: 11px; }
  .song-section { scroll-margin-top: 255px; }
  .song-row { grid-template-columns: 21px minmax(0, 1fr) 32px; gap: 7px; padding-inline: 10px; }
  .group-heading h3 { font-size: 20px; }
}
@media print {
  .workspace { display: block; padding: 18px 0; }
  .sidebar { display: none !important; }
  .group-heading { padding: 7px 9px; border-top: 1px solid #555; border-bottom: 1px solid #bbb; background: #eee; color: black; -webkit-print-color-adjust: exact; print-color-adjust: exact; }
  .group-heading h3 { font-size: 14px; }
  .group-index { font-size: 18px; color: #555; }
  .group-count { color: #555; }
  .song-grid { display: block; }
  .song-row { grid-template-columns: 25px minmax(0, 1fr); gap: 8px; padding: 8px 0; background: white; border-top: 0; border-bottom: 1px solid #ddd; }
  .song-title { font-size: 13px; }
  .song-number { font-size: 12px; }
  .song-artists { font-size: 10px; }

}
.issue-cover[data-theme] { background: var(--band-wash); color: var(--band-ink); box-shadow: 0 9px 0 -6px var(--band-ink); }
#song-list { margin-top: 24px; }
@media print {
  .issue-cover[data-theme] { background: white; color: black; box-shadow: none; }
  #song-list { margin-top: 12px; }
}


.day-nav { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin: 26px 0 0; border: 1px solid var(--line); background: var(--white); }
.day-link { display: flex; align-items: center; justify-content: center; gap: 16px; min-width: 0; min-height: 62px; padding: 10px 18px; border-bottom: 3px solid transparent; color: var(--muted); }
.day-link + .day-link { border-left: 1px solid var(--line); }
.day-link:hover { background: var(--wash); color: var(--ink); }
.day-link[aria-current="page"] { border-bottom-color: #d6d6d6; background: var(--ink); color: #FFFFFF; }
.day-label { font-family: var(--display); font-size: 24px; font-weight: 700; line-height: 1.1; letter-spacing: .025em; white-space: nowrap; }
.day-date { display: inline-flex; align-items: baseline; gap: 7px; font: 500 17px/1.3 var(--sans); font-variant-numeric: tabular-nums; white-space: nowrap; }
.day-date small { font: 500 9px/1.3 var(--sans); letter-spacing: .08em; }
.day-nav + .issue-cover { margin-top: 14px; }

.cover-wordmark { min-width: 0; }
.issue-word[data-name-size] { max-width: 100%; margin: 6px 0 10px; font-size: var(--cover-fit-font-size, var(--cover-base-font-size)); line-height: 1.06; letter-spacing: -.035em; white-space: nowrap; overflow-wrap: normal; word-break: normal; text-wrap: nowrap; }
.issue-word[data-name-size="short"] { --cover-base-font-size: clamp(48px, 10.5vw, 150px); }
.issue-word[data-name-size="medium"] { --cover-base-font-size: clamp(32px, 6.8vw, 108px); }
.issue-word[data-name-size="long"] { --cover-base-font-size: clamp(24px, 5.4vw, 84px); }
.issue-word[data-name-size="xlong"] { --cover-base-font-size: clamp(21px, 4.4vw, 68px); line-height: 1.15; letter-spacing: -.02em; }
@supports (font-size: 1cqw) {
  .cover-wordmark { container-type: inline-size; }
  .issue-word[data-name-size="short"] { --cover-base-font-size: clamp(48px, 25cqw, 150px); }
  .issue-word[data-name-size="medium"] { --cover-base-font-size: clamp(32px, 17cqw, 108px); }
  .issue-word[data-name-size="long"] { --cover-base-font-size: clamp(24px, 13cqw, 84px); }
  .issue-word[data-name-size="xlong"] { --cover-base-font-size: clamp(21px, 10.5cqw, 68px); }
}
.issue-bottom, .cover-links { min-width: 0; }

.workspace.is-pending { grid-template-columns: minmax(0, 1fr); }
.day-pending { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 14px; min-height: 235px; padding: 48px 24px 54px; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); text-align: center; }
.pending-day { color: var(--muted); font: 500 20px/1.2 var(--sans); letter-spacing: .04em; }
.day-pending h3 { margin: 0; max-width: 100%; font-family: var(--sans); font-size: clamp(21px, 3vw, 28px); font-weight: 700; line-height: 1.6; overflow-wrap: anywhere; }

@media (max-width: 760px) {
  .day-nav { margin-top: 20px; }
  .day-link { flex-direction: column; gap: 4px; min-height: 66px; padding: 10px 12px; }
  .day-label { font-size: 21px; }
  .day-date { gap: 6px; font-size: 13px; }
  .day-date small { font-size: 8px; }
  .issue-word[data-name-size] { margin-top: 4px; }
  .day-pending { min-height: 190px; padding: 34px 18px 40px; }
  .pending-day { font-size: 18px; }
}
@media print {
  .day-nav { display: none !important; }
  .day-nav + .issue-cover { margin-top: 0; }
  .cover-wordmark { container-type: normal; }
  .issue-word[data-name-size] { margin: 0; font-size: 38px; line-height: 1.12; letter-spacing: -.025em; }
  .day-pending { min-height: 0; padding: 26px 0; }
  .pending-day { font-size: 14px; }
  .day-pending h3 { font-size: 18px; }
}


:root {
  --shadow-raised: 5px 5px 12px rgba(44, 43, 38, .10), -4px -4px 10px rgba(255, 255, 255, .94);
  --shadow-inset: inset 3px 3px 7px rgba(44, 43, 38, .10), inset -3px -3px 7px rgba(255, 255, 255, .88);
}
.brand, .footer-wordmark { font-weight: 600; letter-spacing: .02em; }
.brand small, .footer-wordmark span { font-weight: 500; letter-spacing: .18em; }
.top-nav { font-weight: 500; }
.nav-save:hover, .reset-button:hover { color: var(--ink); }
.mini-count { border-radius: 8px; font-weight: 600; }
.issue-cover, .issue-cover[data-theme] { --day-mark-size: clamp(168px, 25vw, 360px); --day-mark-inset: clamp(14px, 3vw, 40px); --day-mark-width: calc(var(--day-mark-size) * 1.25); --landmark-gap: clamp(16px, 2vw, 28px); border: 1px solid rgba(28, 28, 28, .06); border-radius: 20px; box-shadow: var(--shadow-raised); isolation: isolate; }

.cover-landmarks { position: absolute; z-index: 0; top: 64px; bottom: 54px; left: clamp(20px, 3vw, 42px); right: calc(var(--day-mark-inset) + var(--day-mark-width) + var(--landmark-gap)); color: inherit; opacity: .075; pointer-events: none; user-select: none; }
.cover-landmark { position: absolute; display: none; width: 100%; height: 100%; max-width: 100%; max-height: 100%; color: inherit; fill: currentColor; stroke: none; }
.issue-cover[data-day="day1"] [data-cover-day="day1"], .issue-cover[data-day="day2"] [data-cover-day="day2"], .issue-cover[data-day="day3"] [data-cover-day="day3"] { display: block; }
.cover-landmark[data-cover-day="day1"] { left: 0; bottom: 0; height: 76%; }
.cover-landmark[data-cover-day="day2"] { right: 0; bottom: 0; width: 100%; height: 80%; }
.cover-landmark[data-cover-day="day3"] { left: 0; bottom: 0; width: 80%; height: 97%; }
.day-watermark { position: absolute; z-index: 0; top: 50%; right: var(--day-mark-inset); width: var(--day-mark-width); transform: translateY(-48%); color: currentColor; opacity: .07; font-family: var(--display); font-size: var(--day-mark-size); font-weight: 700; font-variant-numeric: tabular-nums; line-height: .9; letter-spacing: -.07em; text-align: right; white-space: nowrap; text-shadow: none; pointer-events: none; user-select: none; }
.issue-cover > .issue-meta, .issue-cover > .issue-main, .issue-cover > .issue-bottom { position: relative; z-index: 1; }
.cover-date { display: block; font-family: var(--sans); font-size: 14px; font-weight: 500; line-height: 1.5; letter-spacing: .13em; white-space: nowrap; }
.issue-meta { font-weight: 500; letter-spacing: .13em; }
.issue-word, .issue-word[data-name-size] { font-family: var(--sans); font-weight: 600; text-shadow: 1px 2px 0 #ffffff77, 3px 5px 0 #00000012, 5px 7px 0 #0000000d; }
.cover-year { font-weight: 500; letter-spacing: .17em; line-height: 1.35; }
.issue-copy h1 { font-weight: 600; letter-spacing: .035em; line-height: 1.45; }
.cover-links a b { font-size: 16px; font-weight: 500; letter-spacing: .02em; }
.cover-stats strong { font-weight: 600; letter-spacing: -.02em; }
.section-heading h2, .group-heading h3, .song-title, .day-pending h3 { font-weight: 600; }
.section-heading h2 { letter-spacing: .025em; }
.section-heading .micro-title, .index-label { font-weight: 500; letter-spacing: .15em; }
.group-heading { border-top: 0; border-radius: 12px 12px 0 0; }
.group-heading h3 { font-family: var(--sans); font-weight: 600; letter-spacing: .025em; }
.group-index { font-size: 20px; font-weight: 500; letter-spacing: .02em; }
.song-row:hover { background: #f0efeb; }
.song-row:last-child { border-radius: 0 0 12px 12px; }
.song-title { letter-spacing: .005em; }
.song-number { color: #787771; font-size: 14px; font-weight: 500; }
.song-artists { letter-spacing: .01em; }
.artist-separator { color: #aaa9a2; }
.artist-chip { border-radius: 9px; font-weight: 500; }
.artist-chip small, .tab-count, .result-total strong { font-weight: 500; }
.active-artist { border-radius: 8px; }
.sidebar .jump-nav { scrollbar-color: #cecdc6 transparent; }
.sidebar .jump-nav a { border-radius: 0 7px 7px 0; }

.day-nav { gap: 6px; padding: 6px; border: 1px solid rgba(28, 28, 28, .04); border-radius: 18px; background: var(--paper); box-shadow: var(--shadow-inset); }
.day-link { min-height: 60px; padding: 10px 16px; border: 1px solid transparent; border-radius: 12px; }
.day-link + .day-link { border-left: 1px solid transparent; }
.day-link:not([aria-current="page"]):hover { background: var(--white); color: var(--ink); }
.day-link[aria-current="page"] { border-color: #353535; background: #1C1C1C; color: #FFFFFF; box-shadow: inset 0 1px 0 rgba(255, 255, 255, .16), 4px 4px 9px rgba(28, 28, 28, .20); }
.day-link:active { box-shadow: var(--shadow-inset); }
.day-link[aria-current="page"]:active { box-shadow: inset 2px 2px 5px rgba(0, 0, 0, .30), inset -1px -1px 3px rgba(255, 255, 255, .10); }
.day-label { font-size: 22px; font-weight: 600; letter-spacing: .06em; }
.day-date { font-size: 14px; font-weight: 500; letter-spacing: .025em; }

.action-button, .bookmark-button { border: 1px solid rgba(255, 255, 255, .80); background: var(--paper); color: var(--ink); box-shadow: var(--shadow-raised); transition: background .16s, color .16s, border-color .16s, box-shadow .16s; }
.action-button { border-radius: 11px; font-weight: 500; }
.action-button:hover, .bookmark-button:hover { border-color: rgba(255, 255, 255, .95); background: var(--white); color: var(--ink); }
.action-button:active, .bookmark-button:active { box-shadow: var(--shadow-inset); }
.action-button:disabled { box-shadow: none; }
.bookmark-button[aria-pressed=true] { border-color: #353535; background: #1C1C1C; color: #FFFFFF; box-shadow: inset 0 1px 0 rgba(255, 255, 255, .16), 2px 2px 6px rgba(28, 28, 28, .20); }
.search-wrap, .select-wrap select { border: 1px solid rgba(28, 28, 28, .04); border-radius: 12px; background: var(--paper); box-shadow: var(--shadow-inset); }
.search-wrap input { border-radius: 12px; }
.search-wrap input::placeholder { color: #77766f; }
.clear-search { border-radius: 9px; }
.filter-tab { border-radius: 9px; }
.filter-tab[aria-pressed=true] { background: #1C1C1C; color: #FFFFFF; box-shadow: inset 0 1px 0 rgba(255, 255, 255, .15), 2px 2px 5px rgba(28, 28, 28, .12); }
.tab-count { border-radius: 4px; }
.copy-dialog { border-radius: 18px; }
.copy-dialog::backdrop { background: rgba(28, 28, 28, .55); }
.copy-dialog textarea { border-radius: 12px; }
.dialog-heading button, .empty-state button { border-radius: 10px; }
.toast { border-radius: 12px; }

@media (max-width: 760px) {
  .day-link { min-height: 61px; padding: 9px 8px; }
  .day-label { font-size: 20px; letter-spacing: .045em; }
  .day-date { font-size: 13px; }
  .issue-cover, .issue-cover[data-theme] { --day-mark-size: clamp(120px, 38vw, 210px); --day-mark-inset: 14px; min-height: calc(232px + var(--day-mark-size) * .9); border-radius: 16px; }
  .issue-cover[data-day="day2"] .issue-main, .issue-cover[data-day="day3"] .issue-main { row-gap: 80px; }
  .cover-landmarks { top: 58px; left: 20px; right: 20px; bottom: calc(54px + var(--day-mark-size) * .9 + 20px); opacity: .06; }
  .cover-landmark[data-cover-day="day1"] { width: 92%; height: 100%; }
  .cover-landmark[data-cover-day="day2"] { left: auto; right: 0; top: auto; bottom: 0; width: 60%; height: min(100%, clamp(100px, 18.5vw, 140px)); }
  .cover-landmark[data-cover-day="day3"] { left: auto; right: 0; top: auto; bottom: 0; width: 100%; height: 100%; }
  .day-watermark { top: auto; bottom: 54px; transform: none; opacity: .045; }
  .cover-date { font-size: 13px; letter-spacing: .11em; }
  .group-index { font-size: 18px; }
}
@media print {
  *, *::before, *::after { box-shadow: none !important; text-shadow: none !important; }
  .issue-cover, .issue-cover[data-theme] { min-height: 0; border: 0; border-bottom: 1px solid #777; border-radius: 0; background: white; color: black; }
  .day-watermark, .cover-landmarks { display: none !important; }
  .cover-date { display: block; margin-top: 4px; font-size: 11px; letter-spacing: .06em; }
  .group-heading, .song-row:last-child { border-radius: 0; }
  .group-heading { border-top: 1px solid #555; }
  .group-index { font-size: 18px; }
  .song-number { font-size: 12px; }
}


.song-details { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 14px; min-width: 0; margin-top: 3px; }
.song-details .song-artists { flex: 1 1 auto; min-width: 0; margin: 0; }
.ppv-timestamp { display: inline-flex; align-items: baseline; flex: 0 0 auto; gap: 6px; margin-left: auto; color: var(--muted); font-family: var(--sans); font-size: 12px; font-weight: 500; line-height: 1.8; white-space: nowrap; font-variant-numeric: tabular-nums; }
.ppv-label { font-size: 9px; font-weight: 600; letter-spacing: .09em; }
.ppv-timestamp time { font: inherit; font-variant-numeric: tabular-nums; }
@media print {
  .song-details { gap: 2px 8px; margin-top: 2px; }
  .ppv-timestamp { color: #555; font-size: 9px; line-height: 1.6; }
  .ppv-label { font-size: 7px; }
}

[data-theme="sky-hi"] { --band-wash: #661318; --band-ink: #FFFFFF; --band-accent: #661318; }
[data-theme="novel-core"] { --band-wash: #FD2996; --band-ink: #000000; --band-accent: #FD2996; }
[data-theme="aile-the-shota"] { --band-wash: #FFFFFF; --band-ink: #000000; --band-accent: #FFFFFF; }
[data-theme="be-first"] { --band-wash: #006DBA; --band-ink: #FFFFFF; --band-accent: #006DBA; }
[data-theme="mazzel"] { --band-wash: #ba252d; --band-ink: #FFFFFF; --band-accent: #ba252d; }
[data-theme="starglow"] { --band-wash: #A9DF03; --band-ink: #000000; --band-accent: #A9DF03; }
[data-theme="edhiii-boi"] { --band-wash: #FF0000; --band-ink: #000000; --band-accent: #FF0000; }
[data-theme="hana"] { --band-wash: #F98620; --band-ink: #000000; --band-accent: #F98620; }
[data-theme="fumino"] { --band-wash: #9F9BCA; --band-ink: #000000; --band-accent: #9F9BCA; }
[data-theme="takara"] { --band-wash: #EED728; --band-ink: #000000; --band-accent: #EED728; }
[data-theme="ayumu-imazu"] { --band-wash: #56CCF2; --band-ink: #000000; --band-accent: #56CCF2; }
[data-theme="reiko"] { --band-wash: #754E9D; --band-ink: #FFFFFF; --band-accent: #754E9D; }
[data-theme="bmsg-posse"] { --band-wash: #39FF14; --band-ink: #000000; --band-accent: #39FF14; }
[data-theme="sms"] { --band-wash: #3F4C9C; --band-ink: #FFFFFF; --band-accent: #3F4C9C; }
[data-theme="salu"] { --band-wash: #97743B; --band-ink: #000000; --band-accent: #97743B; }
[data-theme="bmsg"] { --band-wash: #1C1C1C; --band-ink: #FFFFFF; --band-accent: #1C1C1C; }
[data-theme="special-collab"] { --band-wash: #A0A0A0; --band-ink: #000000; --band-accent: #A0A0A0; }
[data-theme="dance-selection"] { --band-wash: #A0A0A0; --band-ink: #000000; --band-accent: #A0A0A0; }
[data-theme="maekawa-ippa"] { --band-wash: #A0A0A0; --band-ink: #000000; --band-accent: #A0A0A0; }
[data-theme="bmsg-nine"] { --band-wash: #A0A0A0; --band-ink: #000000; --band-accent: #A0A0A0; }
[data-theme="first-team-c"] { --band-wash: #A0A0A0; --band-ink: #000000; --band-accent: #A0A0A0; }
[data-theme="salu-sky-hi"] { --band-wash: #A0A0A0; --band-ink: #000000; --band-accent: #A0A0A0; }.float-title { display: inline-block; max-width: 100%; padding-bottom: 4px; border-bottom: 3px solid var(--float-color); }
.cover-group { display: inline-block; margin-left: 1.1em; font-size: .65em; letter-spacing: .08em; vertical-align: baseline; }
.cover-group[hidden] { display: none; }
.song-artists .artist-link, .song-artists .artist-link:hover, .song-artists .artist-link:focus-visible, .song-artists .artist-link[aria-pressed="true"] { color: var(--muted); }
.mc-row { display: flex; align-items: center; gap: 16px; padding: 18px 24px; border-bottom: 1px solid var(--line); background: var(--white); }
.mc-row[hidden] { display: none; }


.year-area{margin-top:28px}.switch-label{font:600 10px/1.4 var(--sans);letter-spacing:.16em;color:var(--muted);margin:0 0 10px;display:flex;justify-content:space-between}.year-nav{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}.year-nav a{color:var(--muted);text-decoration:none;text-align:center;padding:13px 4px;border-radius:10px;font:700 22px/1.2 var(--display);background:var(--wash);border:1px solid var(--line)}.year-nav a[aria-current]{background:var(--ink);color:white}.year-nav a:hover{box-shadow:var(--shadow-raised)}.performance-label{margin-top:22px;margin-bottom:0}.day-nav{margin-top:8px!important}.mock-note{font:400 12px/1.8 var(--sans);color:var(--muted);margin:0 0 28px}.venue-line{display:block;font-size:11px;letter-spacing:.02em;margin-top:7px}.issue-cover[data-archive] .cover-landmarks{opacity:.075}.archive-landmark-tall{max-width:36%;left:22%!important}.archive-landmark{position:absolute;inset:auto 0 0;width:100%;height:90%;opacity:1;color:var(--band-ink);pointer-events:none}.day-nav{display:grid;grid-template-columns:repeat(var(--performances,3),minmax(0,1fr))}.day-link{min-width:0}.year-nav a:focus-visible{outline:3px solid var(--ink);outline-offset:3px}@media(max-width:760px){.year-area{margin-top:20px}.year-nav{gap:5px}.year-nav a{font-size:18px;padding:12px 0}.day-nav{grid-template-columns:repeat(2,minmax(0,1fr))}.day-nav[data-count="3"]{grid-template-columns:repeat(3,minmax(0,1fr))}.day-label{font-size:18px}.day-nav[data-count="4"] .day-label{font-size:clamp(14px,4vw,18px)}.switch-label{font-size:9px}.performance-label{margin-top:18px}.mock-note{font-size:11px}.venue-line{font-size:10px;max-width:175px}.issue-cover[data-archive] .cover-landmarks{opacity:.06}.archive-landmark-tall{max-width:40%;left:10%!important}}@media print{.year-area,.performance-label,.mock-note{display:none}}


.year-nav{gap:12px;padding:8px;border-radius:18px;background:var(--paper);box-shadow:var(--shadow-inset)}
.year-nav a,.day-nav .day-link{background:var(--paper);color:var(--muted);border:1px solid rgba(255,255,255,.45);box-shadow:var(--shadow-raised);transition:box-shadow .18s ease,color .18s ease}
.year-nav a[aria-current="page"],.day-nav .day-link[aria-current="page"]{background:var(--paper);color:var(--ink);border-color:rgba(28,28,28,.04);box-shadow:var(--shadow-inset)}
.year-nav a[aria-current="page"]::after{content:"";display:block;width:16px;height:3px;margin:5px auto -8px;border-radius:3px;background:var(--ink)}
.day-nav .day-link[aria-current="page"] .day-label{font-weight:800}
.year-nav a:not([aria-current]):hover,.day-nav .day-link:not([aria-current="page"]):hover{background:var(--paper);color:var(--ink);box-shadow:3px 3px 7px rgba(44,43,38,.12),-3px -3px 7px rgba(255,255,255,.95)}
.year-nav a:active,.day-nav .day-link:active{box-shadow:var(--shadow-inset)}
.day-nav{gap:12px;padding:8px}.day-nav .day-link+.day-link{border-left-color:rgba(255,255,255,.45)}
.day-nav .day-link:focus-visible{outline:2px solid var(--ink);outline-offset:3px}
@media(max-width:760px){.year-nav{gap:7px;padding:7px}.day-nav{gap:9px;padding:7px}.year-nav a{border-radius:9px}}
@media(prefers-reduced-motion:reduce){.year-nav a,.day-nav .day-link{transition:none}}



[data-theme="bmsg-allstars"]{--band-wash:#1c1c1c;--band-ink:#ffffff;--band-accent:#1c1c1c}
