:root{
  --bg:#141414;--surface:#1e1e1e;--line:#383838;--text:#eeeeee;--muted:#bdbdbd;--green:#d8d8d8;--control-border:#797979;
  --text-body:1.125rem;--text-ui:1rem;--text-secondary:.9375rem;--text-caption:.875rem;
  --ease-out:cubic-bezier(.25,1,.5,1);
  color-scheme:dark;font-family:"Avenir Next",Avenir,"Segoe UI",sans-serif;font-size:100%;font-kerning:normal;
}
*{box-sizing:border-box}
[hidden]{display:none!important}
html{scroll-behavior:smooth;scroll-padding-top:24px}
body{margin:0;background:var(--bg);color:var(--text);font-size:var(--text-body);line-height:1.65}
a{color:inherit;text-decoration:none}
button,input,select{font:inherit;color:inherit}
button{cursor:pointer}
button,a,input,select,summary{-webkit-tap-highlight-color:transparent}
:where(button,a,input,select,summary,[tabindex]):focus-visible{outline:2px solid var(--green);outline-offset:4px}
button:disabled{cursor:not-allowed;opacity:.45}
p{margin:0;max-width:65ch;overflow-wrap:anywhere}
h1,h2,h3{margin:0;font-weight:600;line-height:1.25;letter-spacing:-.025em;overflow-wrap:anywhere}
h1{font-size:clamp(2.75rem,6vw,4.75rem);line-height:1.1}
h1 span{color:var(--green)}
h2{font-size:clamp(1.625rem,3vw,2.125rem)}
h3{font-size:1.375rem}
main,.topbar,footer{width:100%;max-width:1160px;margin-inline:auto;padding-inline:40px}
.topbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px 24px;min-height:88px;padding-block:20px;border-bottom:1px solid var(--line)}
.brand{font-size:1.25rem;font-weight:600;letter-spacing:-.025em;overflow-wrap:anywhere}
.brand-mark{color:var(--green);margin-right:8px}
.brand-sub,.private-label{color:var(--muted);font-size:var(--text-caption);font-weight:400;letter-spacing:normal}
.private-label{display:flex;gap:8px;align-items:center}
.private-label i{width:5px;height:5px;background:var(--green);border-radius:50%;flex-shrink:0}
.eyebrow{font-size:var(--text-caption);letter-spacing:.08em;line-height:1.6;text-transform:uppercase;color:var(--muted);font-weight:600;margin:0 0 10px}
.subtle,.footnote,.detail-label,.stat-extra{color:var(--muted);font-size:var(--text-secondary);line-height:1.6}
.footnote{margin-top:18px}
.content-filter{padding-block:28px;border-bottom:1px solid var(--line)}
.content-filter h2{font-size:1.375rem}
.content-filter fieldset{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;border:0;padding:0;margin:20px 0 0}
.content-filter label{position:relative;cursor:pointer;min-width:0}
.content-filter input{position:absolute;opacity:0;width:1px;height:1px}
.content-filter label span{display:flex;align-items:center;justify-content:center;min-height:48px;height:100%;padding:10px 12px;border:1px solid var(--control-border);border-radius:5px;text-align:center;font-size:var(--text-ui);line-height:1.5;font-weight:600;overflow-wrap:anywhere;transition:background-color 180ms var(--ease-out),color 180ms var(--ease-out)}
.content-filter input:checked+span{background:var(--green);border-color:var(--green);color:var(--bg)}
.content-filter input:focus-visible+span{outline:2px solid var(--green);outline-offset:4px}
.intro{padding-block:48px}
.intro-content{max-width:54rem;min-width:0}
.intro-copy{font-size:var(--text-body);line-height:1.7;max-width:48ch;margin-top:22px;color:var(--muted)}
.text-link{display:inline-flex;gap:20px;align-items:center;min-height:44px;margin-top:20px;font-size:var(--text-ui)}
.text-link span{color:var(--green)}
.section-nav{display:flex;flex-wrap:wrap;gap:0 28px;border-block:1px solid var(--line)}
.section-nav a{display:flex;align-items:center;min-height:52px;padding-block:10px;color:var(--muted);font-size:var(--text-ui)}
.section{padding-block:48px;border-bottom:1px solid var(--line);min-width:0}
.section-heading{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:16px 24px;margin-bottom:28px}
.section-heading>div{min-width:0}
.section-heading>.subtle{flex-basis:100%}
.stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;padding-block:8px 16px}
.stat{min-width:0;padding-right:16px;border-right:1px solid var(--line)}
.stat:nth-child(even){border:0}
.stat-number{font-size:clamp(2rem,3.5vw,2.75rem);line-height:1.2;font-weight:600;letter-spacing:-.025em;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.stat:first-child .stat-number{color:var(--green)}
.stat-label{font-size:var(--text-ui);line-height:1.5;font-weight:600;margin-top:12px}
.stat-extra{margin-top:6px}
.insight-strip{display:flex;gap:16px;align-items:flex-start;padding:20px;background:var(--surface);margin-top:28px;border-radius:5px}
.insight-index{font-size:1.625rem;line-height:1.3;color:var(--green)}
.insight-strip p{font-size:var(--text-ui);line-height:1.7;color:var(--muted)}
.select-label{display:grid;gap:8px;width:100%;max-width:28rem;font-size:var(--text-secondary);color:var(--muted);min-width:0}
select{min-height:48px;max-width:100%;width:100%;border:1px solid var(--control-border);border-radius:5px;background:var(--surface);padding:10px 32px 10px 12px;font-size:var(--text-ui);color:var(--text)}
.metric-control{position:relative;min-width:0}
.metric-trigger{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;min-height:48px;padding:12px 14px;border:1px solid var(--control-border);border-radius:5px;background:var(--surface);font-size:var(--text-ui);line-height:1.5;text-align:left}
.metric-trigger span:first-child{min-width:0;overflow-wrap:anywhere}
.metric-trigger svg{width:18px;height:18px;flex-shrink:0;transition:transform 180ms var(--ease-out)}
.metric-trigger[aria-expanded=true] svg{transform:rotate(180deg)}
.metric-menu{position:absolute;z-index:10;inset:calc(100% + 8px) 0 auto;margin:0;padding:6px;list-style:none;border:1px solid var(--control-border);border-radius:6px;background:var(--surface);box-shadow:0 12px 30px #0005;max-height:min(24rem,60dvh);overflow-y:auto;overscroll-behavior:contain}
.metric-control.open-up .metric-menu{inset:auto 0 calc(100% + 8px)}
.metric-menu button{display:block;width:100%;min-height:48px;text-align:left;padding:12px;border:0;border-radius:3px;background:transparent;font-size:var(--text-ui);line-height:1.5;overflow-wrap:anywhere}
.metric-menu button[aria-selected=true]{background:var(--line);color:var(--green);font-weight:600}
.metric-menu button:not(:disabled):hover,.metric-menu button:focus-visible{background:var(--line)}
.chart-panel,.heat-panel{min-width:0;padding:24px;background:var(--surface);border-radius:6px}
.chart-top{display:flex;flex-wrap:wrap;justify-content:space-between;gap:10px 20px;font-size:var(--text-ui);margin-bottom:20px}
.year-chart{display:grid;grid-template-columns:repeat(13,minmax(0,1fr));gap:12px;padding-top:12px;min-width:0}
.year-item{display:contents}
.year-bar{grid-row:1;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;min-width:0;padding:4px 0;background:none;border:0}
.bar-track{display:flex;align-items:flex-end;width:100%;height:11rem;border-bottom:1px solid var(--control-border)}
.bar-fill{display:block;width:100%;height:100%;background:#759460;border-radius:3px 3px 0 0;transform:scaleY(var(--scale,1));transform-origin:center bottom;transition:transform 460ms var(--ease-out),background-color 180ms var(--ease-out)}
.year-bar[aria-pressed=true] .bar-fill,.year-bar:hover .bar-fill{background:var(--green)}
.year-bar.partial .bar-fill{background:linear-gradient(135deg,#759460 25%,#4b603e 25%,#4b603e 50%,#759460 50%,#759460 75%,#4b603e 75%);background-size:20px 20px}
.year-bar.partial[aria-pressed=true] .bar-fill{background:linear-gradient(135deg,#a5cf87 25%,#708c5f 25%,#708c5f 50%,#a5cf87 50%,#a5cf87 75%,#708c5f 75%);background-size:20px 20px}
.bar-year{font-size:var(--text-caption);color:var(--muted);padding-top:12px;line-height:1.5}
.bar-value{display:none;font-size:var(--text-caption);font-variant-numeric:tabular-nums}
.year-bar[aria-pressed=true] .bar-year{color:var(--text);font-weight:600}
.chart-legend{display:flex;flex-wrap:wrap;gap:8px 20px;margin-top:20px;font-size:var(--text-secondary);color:var(--muted)}
.chart-legend span{display:flex;align-items:center;gap:7px}
.chart-legend i{width:10px;height:10px;background:#759460;flex-shrink:0}
.chart-legend .partial{background:repeating-linear-gradient(135deg,#759460 0,#759460 2px,#4b603e 2px,#4b603e 4px)}
.year-detail{display:block;border-top:1px solid var(--line);padding-top:22px;margin-top:22px}
.year-detail>div{min-width:0}
.detail-value{display:block;font-size:1.375rem;line-height:1.5;font-weight:600;overflow-wrap:anywhere}
.detail-label{display:block;margin-top:6px}
.tabs{display:flex;flex-wrap:wrap;gap:0 24px;border-bottom:1px solid var(--line)}
.tabs button{min-height:48px;padding:12px 0;border:0;border-bottom:2px solid transparent;background:none;font-size:var(--text-ui);font-weight:600;line-height:1.5;color:var(--muted)}
.tabs button[aria-selected=true]{border-color:var(--green);color:var(--green)}
.ranking-tools{display:grid;grid-template-columns:minmax(0,1fr) minmax(16rem,22rem);align-items:center;gap:16px;padding-block:22px}
.ranking-tools p{font-size:var(--text-secondary);color:var(--muted);line-height:1.6}
.search{display:grid;grid-template-columns:20px minmax(0,1fr);align-items:center;gap:12px;min-height:48px;width:100%;min-width:0;padding:0 14px;border:1px solid var(--control-border);border-radius:5px;color:var(--muted)}
.search>span{display:grid;place-items:center;line-height:1;font-size:1.25rem}
.search svg{width:20px;height:20px}
.search input{display:block;min-width:0;min-height:48px;width:100%;padding:10px 0;border:0;outline:none;background:none;color:var(--text);font-size:var(--text-ui);line-height:1.5}
.search input::placeholder{color:var(--muted);opacity:1}
.search:focus-within{outline:2px solid var(--green);outline-offset:3px}
.rank-row{position:relative;display:grid;grid-template-columns:2rem minmax(0,1fr) auto;gap:16px;align-items:start;min-height:90px;padding:20px 4px;border-bottom:1px solid var(--line)}
.rank-num{font-size:var(--text-secondary);line-height:1.8;color:var(--muted);font-variant-numeric:tabular-nums}
.rank-name{min-width:0}
.rank-name strong{display:block;font-size:var(--text-body);line-height:1.5;font-weight:600;overflow-wrap:anywhere}
.rank-name small,.rank-value small{display:block;font-size:var(--text-secondary);line-height:1.6;color:var(--muted);margin-top:6px;overflow-wrap:anywhere}
.rank-value{text-align:right;max-width:9rem;font-variant-numeric:tabular-nums;min-width:0}
.rank-value strong{font-size:var(--text-body);line-height:1.5;font-weight:600}
#ranking>.rank-row:first-child .rank-num,#ranking>.rank-row:first-child .rank-value strong,.rank-item:first-child .rank-num,.rank-item:first-child .rank-value strong{color:var(--green)}
.rank-meter{position:absolute;left:3rem;bottom:0;width:var(--width);max-width:calc(100% - 3rem);height:3px;background:#779b63;transform-origin:left center}
.more-button{width:100%;min-height:48px;margin-top:22px;padding:12px 16px;border:1px solid var(--control-border);border-radius:5px;background:transparent;font-size:var(--text-ui);line-height:1.5}
.more-button span{margin-left:12px}
.empty{padding-block:28px;color:var(--muted);font-size:var(--text-ui)}
.heat-top{display:flex;flex-wrap:wrap;justify-content:space-between;gap:16px;margin-bottom:24px}
.heat-top p{font-size:var(--text-ui);max-width:44ch}
.heat-top .subtle{font-size:var(--text-secondary)}
.heat-scroll{min-width:0;padding:4px}
.heatmap{display:grid;grid-template-columns:2.25rem repeat(24,minmax(0,1fr));gap:4px;min-width:0;align-items:center}
.heat-cell{display:block;width:100%;min-width:0;min-height:24px;aspect-ratio:1;background:var(--cell);border:0;border-radius:2px;padding:0}
.heat-cell[aria-pressed=true]{outline:2px solid var(--green);outline-offset:1px}
.heat-label,.heat-hour{font-size:var(--text-caption);line-height:1.5;color:var(--muted);text-align:center}
.heat-label{text-align:left}
.heat-legend{display:flex;flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:5px;margin-top:20px;font-size:var(--text-secondary);color:var(--muted)}
.heat-legend i{width:12px;height:12px;border-radius:2px;background:#283425}
.heat-legend i:nth-of-type(2){background:#42573a}.heat-legend i:nth-of-type(3){background:#688a51}.heat-legend i:nth-of-type(4){background:#a5cf87}
.heat-legend span{margin-inline:5px}
.mobile-hint{font-size:var(--text-secondary);color:var(--muted);margin-bottom:16px}
.observations,.quirks-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px 40px;margin-top:32px}
.observations article,.quirks-grid article{min-width:0}
.observations h3,.quirks-grid h3{margin-bottom:10px}
.observations p:last-child,.quirks-grid p{font-size:var(--text-ui);line-height:1.7;color:var(--muted)}
.quirks-grid article{padding-top:20px;border-top:1px solid var(--line)}
.quirk-value{display:block;color:var(--green);font-size:2rem;font-weight:600;line-height:1.3;margin-bottom:10px;font-variant-numeric:tabular-nums}
.genres-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin-bottom:24px}
.genres-summary strong{display:block;font-size:1.75rem;font-weight:600;color:var(--green);line-height:1.4;font-variant-numeric:tabular-nums}
.genres-summary span{font-size:var(--text-secondary);color:var(--muted)}
.genre-row{position:relative;width:100%;text-align:left;color:var(--text);background:none;border:0;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;padding:18px 0;border-bottom:1px solid var(--line)}
.genre-row strong{font-size:var(--text-ui);font-weight:600;overflow-wrap:anywhere}
.genre-row small{display:block;font-size:var(--text-secondary);color:var(--muted);line-height:1.6}
.genre-value{text-align:right;font-variant-numeric:tabular-nums}
.genre-track{grid-column:1/-1;display:block;height:12px;background:var(--line);border-radius:3px;overflow:hidden}
.genre-meter{display:block;width:var(--width);height:100%;background:#759460;border-radius:3px}
.data-section{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);gap:48px;border-bottom:0}
.data-section>div{min-width:0}.data-section h2{margin-bottom:18px}
.data-section .subtle{font-size:var(--text-ui);line-height:1.7}
details{border-bottom:1px solid var(--line)}
details:last-child{border-bottom:0}
summary{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:64px;padding-block:16px;cursor:pointer;list-style:none;font-size:var(--text-ui);font-weight:600;line-height:1.5;overflow-wrap:anywhere}
summary::-webkit-details-marker{display:none}
summary:after{content:'+';flex-shrink:0;color:var(--muted);font-size:1.375rem}
details[open]>summary:after{content:'−'}
details p{font-size:var(--text-ui);line-height:1.75;color:var(--muted);margin-bottom:20px}
footer{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px 24px;padding-block:28px;border-top:1px solid var(--line);font-size:var(--text-caption);color:var(--muted)}
footer .brand{font-size:var(--text-ui)}
.skip{position:absolute;top:-100px;left:20px;background:var(--surface);padding:12px;z-index:20}.skip:focus{top:10px}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
noscript p{padding:24px}
.number-roll{position:relative;display:inline-block;max-width:100%;white-space:nowrap}
.number-reserve{visibility:hidden}.number-live{position:absolute;inset:0;display:block}
@keyframes settle-in{from{translate:0 3px}to{translate:0 0}}
@media(prefers-reduced-motion:no-preference){details[open]>p{animation:settle-in 200ms var(--ease-out)}}
.fact-highlight{position:relative}
.fact-highlight::after{content:"";position:absolute;inset:-6px;pointer-events:none;border:1px solid rgb(165 207 135 / .32);border-radius:4px;background:rgb(165 207 135 / .055);opacity:0;animation:fact-accent 650ms var(--ease-out)}
@keyframes fact-accent{0%,100%{opacity:0}35%,65%{opacity:1}}
.motion-paused *,.motion-paused *::after{animation-play-state:paused!important}
@media(hover:hover) and (pointer:fine){
  .section-nav a:hover,footer a:hover,.text-link:hover{color:var(--green)}
  .rank-row:hover,.more-button:hover{background:var(--surface)}
  .heat-cell:hover{outline:1px solid var(--green);outline-offset:1px}
}
@media(max-width:900px){
  .stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:28px 20px}.stat:nth-child(2){border-right:0}
  .data-section{grid-template-columns:minmax(0,1fr);gap:24px}
}
@media(max-width:700px){
  main,.topbar,footer{padding-inline:20px}.topbar{min-height:76px}
  .private-label{font-size:var(--text-caption)}
  .content-filter fieldset{grid-template-columns:repeat(2,minmax(0,1fr))}
  .intro{padding-block:36px}.intro h1{font-size:clamp(2.5rem,10.5vw,3.5rem)}
  .section-nav{gap:0 20px}.section-nav a{font-size:var(--text-secondary)}
  .section{padding-block:36px}.section-heading{gap:14px;margin-bottom:22px}
  .stat-number{font-size:clamp(1.75rem,7vw,2.25rem)}
  .chart-panel,.heat-panel{padding:18px 14px}
  .chart-top{font-size:var(--text-secondary);margin-bottom:12px}
  .year-chart{grid-template-columns:minmax(0,1fr);gap:3px;padding-top:0}
  .year-bar{grid-row:auto}
  .year-bar{display:grid;grid-template-columns:2.75rem minmax(0,1fr) 4rem;gap:10px;align-items:center;min-height:40px;padding:5px 0}
  .bar-year{order:-1;padding:0;text-align:left;writing-mode:horizontal-tb}
  .bar-track{height:12px;border:0;background:var(--line);border-radius:3px}
  .bar-fill{transform:scaleX(var(--scale,1));transform-origin:left center;border-radius:3px}
  .bar-value{display:block;text-align:right;line-height:1.5}
  .detail-value{font-size:1.25rem}
  .ranking-tools{grid-template-columns:minmax(0,1fr);gap:12px;padding-block:18px}
  .tabs{gap:0 20px}.tabs button{font-size:var(--text-secondary)}
  .rank-row{grid-template-columns:1.75rem minmax(0,1fr);gap:10px 12px;padding-block:18px}
  .rank-value{grid-column:2;text-align:left;max-width:none;display:flex;flex-wrap:wrap;gap:4px 8px;align-items:baseline}.rank-value small{margin:0}
  .rank-meter{left:2.75rem;max-width:calc(100% - 2.75rem)}
  .heatmap{grid-template-columns:2rem repeat(7,minmax(0,1fr));gap:3px}
  .heat-cell{aspect-ratio:auto;min-height:24px;height:24px}
  .heat-hour,.heat-label{font-size:var(--text-caption);line-height:24px}
  .heat-legend{justify-content:flex-start}.heat-scroll{padding:2px}
  .observations,.quirks-grid{grid-template-columns:minmax(0,1fr);gap:24px}
  .genres-summary{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.genres-summary>div:last-child{grid-column:1/-1}
  footer{gap:12px}footer .brand{width:100%}
}
@media(max-width:360px){
  main,.topbar,footer{padding-inline:16px}
  .content-filter fieldset{grid-template-columns:repeat(2,minmax(0,1fr))}
  .stats{gap:24px 12px}.stat{padding-right:6px}
  .stat-number{font-size:1.625rem}
  .heatmap{gap:2px}.heat-scroll{padding:0}
  .year-bar{grid-template-columns:2.5rem minmax(0,1fr) 3.5rem;gap:8px}
}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation:none!important;transition:none!important}
}

.section-heading{position:relative;z-index:2}
@media(min-width:701px) and (max-width:900px){.heatmap{grid-template-columns:2rem repeat(7,minmax(0,1fr));gap:3px}.heat-cell{aspect-ratio:auto;min-height:24px;height:24px}.heat-hour,.heat-label{line-height:24px}}

.year-bar.todo .bar-fill{background:var(--muted);opacity:.35}
@keyframes year-hatching{to{background-position:20px 0}}
@media(prefers-reduced-motion:no-preference){
  .year-bar.current-year.partial .bar-fill{animation:year-hatching 2s linear infinite;animation-play-state:paused}
  .year-bar.current-year.partial.motion-in-view .bar-fill{animation-play-state:running}
}

.year-overview{margin-bottom:24px}.year-overview h3{margin-bottom:6px}
.year-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px 20px;margin-bottom:28px}
.year-metrics>div{min-width:0}.year-metrics small{display:block;color:var(--muted);font-size:var(--text-secondary);margin-top:4px}
.year-highlights,.year-tops{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;margin:24px 0}
.year-highlights article,.year-top{min-width:0;padding-top:18px;border-top:1px solid var(--line)}
.year-detail h4,.year-top h4{margin:0 0 12px;font-size:var(--text-ui);line-height:1.5;font-weight:600}
.year-highlights strong{font-size:1.25rem}.year-highlights p{font-size:var(--text-ui);color:var(--muted)}
.year-top ol{margin:0;padding-left:1.5rem}.year-top li{padding:10px 0 10px 4px}
.year-top-line{display:flex;justify-content:space-between;align-items:start;gap:16px;font-size:var(--text-ui)}
.year-top-line>span:first-child{min-width:0;overflow-wrap:anywhere}.year-top-line strong{font-weight:600}
.year-top-line small{display:block;color:var(--muted);font-size:var(--text-secondary);margin-top:4px}
.year-top-value{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}
@media(max-width:900px){.year-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.year-tops,.year-highlights{grid-template-columns:minmax(0,1fr)}}

.genre-toggle{display:inline-block;min-width:1rem;margin-left:6px;color:var(--green);font-weight:400}
.genre-row[aria-expanded=true]{border-bottom:0}.genre-row[aria-expanded=true] .genre-meter{background:var(--green)}
.genre-detail{padding:16px 16px 4px;background:var(--surface);border:1px solid var(--line);border-radius:4px;margin-bottom:12px}
.year-selected{margin-top:12px;font-size:var(--text-ui)}
@media(prefers-reduced-motion:no-preference){.genre-detail:not([hidden]){animation:settle-in 300ms var(--ease-out)}}

.section-jump>summary{min-height:44px;padding-block:10px;font-size:var(--text-ui)}
.method-note{margin-top:16px;border-bottom:0}.method-note>summary{min-height:44px;font-size:var(--text-secondary)}
.method-note p{margin-bottom:12px}.method-note .footnote{margin-top:8px}
@media(max-width:700px){
  .topbar{min-height:64px;padding-block:14px;gap:8px 12px}.brand-sub{display:none}
  .content-filter{padding-block:16px}.content-filter fieldset{margin-top:12px}.content-filter label span{padding-inline:8px}
  .content-filter .footnote{margin-top:10px}.intro{padding-block:20px}.intro h1{font-size:2rem;line-height:1.2}.intro .eyebrow{margin-bottom:6px}
  .section{padding-block:28px}.section-heading{margin-bottom:18px}.section-heading>.subtle{flex-basis:auto}
  .section-nav{gap:0 16px}.section-nav a{min-height:44px}
  .year-bar{min-height:44px}.chart-top #chart-title{display:none}
  .tabs{gap:0}.tabs button{flex:1;min-width:0;padding-inline:4px}
  .rank-row{padding-block:14px}.genre-row{padding-block:14px}
  .genres-summary>div:last-child{display:flex;align-items:baseline;gap:8px}.genres-summary>div:last-child strong{font-size:1.125rem}
  .observations,.quirks-grid{gap:20px}.quirks-grid article{padding-top:16px}.quirk-value{margin-bottom:6px}
  .data-section{gap:20px}.year-metrics{gap:18px 12px}.year-overview{margin-bottom:18px}
  .year-highlights,.year-tops{gap:18px;margin-block:18px}.year-top li{padding-block:8px}
}

.rank-toggle{width:100%;text-align:left;color:inherit;background:none;border:0;border-bottom:1px solid var(--line)}
.artist-toggle{display:inline-block;margin-left:6px;color:var(--green);font-weight:400}
.artist-detail{margin-bottom:14px;padding:16px;background:var(--surface);border:1px solid var(--line);border-radius:4px}
.artist-detail .footnote{margin-top:0}.artist-detail .year-top h4{margin-top:14px}
.rank-toggle[aria-expanded=true]{border-bottom:0}.rank-toggle[aria-expanded=true] .rank-meter{background:var(--green)}

.song-link{text-decoration:underline;text-decoration-color:var(--control-border);text-underline-offset:3px}
.song-link span{color:var(--green);font-size:var(--text-secondary)}.song-link:hover{color:var(--green)}
.artist-inline{border:0}.artist-inline>summary{cursor:pointer;min-height:44px;padding-block:6px}
.artist-inline>summary .year-top-line{display:flex;flex:1;min-width:0;width:auto}
.artist-inline[open]{padding-bottom:12px}.artist-inline>.year-top{margin-top:12px;padding:12px;border:1px solid var(--line);border-radius:4px}
.list-count{font-size:var(--text-secondary);color:var(--muted);margin-top:10px}
.year-top>.more-button{margin-top:12px}.artist-inline .year-top-line strong{font-size:var(--text-ui)}

/* Keep the entry focused on facts; filters remain one tap away. */
.site-title{margin:0;font-size:1.25rem;line-height:1.3;letter-spacing:-.02em}
.site-title a{color:var(--text);text-decoration:none}
.site-period{font-size:var(--text-secondary);color:var(--muted);white-space:nowrap}
.content-filter{padding-block:0}
.content-filter>summary{min-height:48px;padding-block:10px;font-size:var(--text-ui);gap:12px}
.content-filter>summary strong{margin-left:auto;color:var(--green);font-weight:600}
.content-filter fieldset{margin-top:4px}
.content-filter .footnote{margin-block:12px 16px}
#ueberblick{padding-top:24px}
@media(max-width:700px){
  .topbar{min-height:56px;padding-block:12px;flex-wrap:nowrap}
  .content-filter{padding-block:0}
  #ueberblick{padding-top:20px}
  #ueberblick .section-heading{margin-bottom:14px}
  #ueberblick .section-heading>.subtle{display:none}
}

/* Use the same fact-first hierarchy throughout the mobile page. */
.ranking-tools-search{grid-template-columns:minmax(0,1fr)}
.ranking-tools-search>.search{max-width:28rem;justify-self:end}
.method-note .chart-legend{margin-block:0 12px}
@media(max-width:700px){
  .section{padding-block:24px}
  .section-heading{gap:10px;margin-bottom:14px}
  .section-heading .context-label{display:none}
  .stats{gap:20px 16px;padding-bottom:4px}
  .stat-label{margin-top:6px}
  .stat-extra{display:block}
  .insight-strip{padding:12px 14px;margin-top:16px;gap:10px}
  .chart-panel,.heat-panel{padding:14px 10px}
  .chart-top{margin-bottom:8px}
  .ranking-tools{padding-block:12px;gap:8px}
  .rank-row{min-height:72px;padding-block:12px;gap:4px 10px}
  .rank-name small{margin-top:2px}
  .more-button{margin-top:14px}
  .method-note{margin-top:12px}
  .method-note>summary{padding-block:10px;min-height:44px}
  .heat-top{gap:4px;margin-bottom:12px}
  .heat-legend{margin-top:12px}
  .genres-summary{gap:12px;margin-bottom:12px}
  .genres-summary span{display:block;line-height:1.4}
  .genre-row{padding-block:12px;gap:6px 10px}
  .genre-track{height:8px}
  .artist-detail,.genre-detail{padding:12px 10px}
  .year-top h4{margin-bottom:8px}
  .year-highlights,.year-tops{margin-block:14px;gap:14px}
  .observations,.quirks-grid{margin-top:14px;gap:18px}
  .quirks-grid article{padding-top:14px}
  .quirks-grid h3{font-size:1.125rem;margin-bottom:4px}
  .quirk-value{font-size:1.75rem;margin-bottom:4px}
  .data-section{gap:12px}
  .data-section h2{margin-bottom:8px}
  .data-section summary{min-height:48px;padding-block:12px}
  footer{padding-block:20px;gap:8px 16px}
}

html.year-modal-open{overflow:hidden}
.year-modal{position:fixed;inset:0;width:calc(100% - 24px);height:calc(100dvh - 24px);max-width:none;max-height:none;margin:auto;padding:0;border:1px solid var(--control-border);border-radius:8px;background:var(--bg);color:var(--text);overflow:hidden}
.year-modal[open]{display:flex;flex-direction:column}
.year-modal::backdrop{background:#141414a6;backdrop-filter:blur(2px)}
.year-modal-header{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-shrink:0;padding:12px 24px;border-bottom:1px solid var(--line)}
.year-modal-header h2{font-size:1.25rem}
.year-modal-close{display:grid;place-items:center;flex-shrink:0;width:48px;height:48px;padding:0;border:1px solid var(--control-border);border-radius:4px;background:var(--surface);color:var(--text);font-size:2rem;line-height:1}
.year-modal>.year-detail{flex:1;min-height:0;margin:0;padding:24px;border:0;overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable}
@media(max-width:700px){.year-modal{width:calc(100% - 16px);height:calc(100dvh - 16px)}.year-modal-header{padding:8px 12px}.year-modal>.year-detail{padding:16px 12px}}

/* Topic headings double as the compact page navigation. */
.topic.section{padding:0;border-bottom:1px solid var(--line)}
.topic>summary{display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:16px;row-gap:4px;padding-block:18px;min-height:76px}
.topic>summary h2{font-size:1.375rem;line-height:1.3;grid-column:1;grid-row:1}
.topic>summary:after{grid-column:2;grid-row:1 / 3;align-self:center;font-size:1.5rem}
.topic-preview{grid-column:1;grid-row:2;min-width:0;font-size:var(--text-secondary);line-height:1.5;font-weight:400;color:var(--muted);overflow-wrap:anywhere}
.topic[open]>summary h2{color:var(--green)}
.topic-body{padding-bottom:24px;min-width:0}
.topic-body>.section-heading:empty{display:none}
.topic-body .method-note{border-bottom:0}
#daten .topic-body>div{min-width:0}
html.content-modal-open{overflow:hidden}
@media(max-width:700px){
 .topic>summary{padding-block:14px;min-height:76px}
 .topic>summary h2{font-size:1.25rem}
 .topic-body{padding-bottom:20px}
 .topic .ranking-tools{padding-top:0}
 .topic .genres-summary{padding-top:4px}
}

.topic#daten{border-bottom:0}
.source-switch{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px;border:1px solid var(--control-border);border-radius:5px;padding:4px;margin:16px 0 4px;min-width:0}
.source-switch label{position:relative;min-width:0;cursor:pointer}
.source-switch input{position:absolute;opacity:0;width:1px;height:1px}
.source-switch span{display:flex;align-items:center;justify-content:center;min-height:44px;padding:8px;font-size:var(--text-ui);font-weight:600;border-radius:3px;line-height:1.4;text-align:center}
.source-switch input:checked+span{background:var(--green);color:var(--bg)}
.source-switch input:focus-visible+span{outline:2px solid var(--text);outline-offset:2px}
html[data-source=spotify]{--green:#a5cf87}
html[data-source=youtube]{--green:#f3a39f}
.youtube-overview{padding-top:20px}
.youtube-note{margin-top:12px}
.youtube-years{grid-template-columns:repeat(var(--years),minmax(0,1fr));max-width:100%}
.youtube-years .bar-fill{background:var(--green)}
.youtube-years .bar-track{background:var(--surface)}
.youtube-years .bar-value{display:block}
.youtube-heatmap{grid-template-columns:2rem repeat(7,minmax(0,1fr));gap:3px}
.youtube-heatmap .heat-cell{aspect-ratio:auto;min-height:24px;height:24px}
.youtube-library{padding-left:24px;margin:0}
.youtube-library li{padding-block:10px;border-bottom:1px solid var(--line)}
.youtube-library small{display:block;color:var(--muted);font-size:var(--text-secondary)}
#youtube-view .topic-body>h3{margin-block:24px 8px}
#youtube-view .topic-body>p+p{margin-top:16px}
#youtube-view .topic:last-child{border-bottom:0}
@media(max-width:700px){.source-switch{margin-top:12px}.youtube-years{grid-template-columns:minmax(0,1fr)}.youtube-overview{padding-top:20px}}
.youtube-years{grid-template-columns:minmax(0,1fr);gap:8px}
.youtube-years .year-bar{display:grid;grid-template-columns:3rem minmax(0,1fr) 4rem;align-items:center;gap:12px;min-height:44px}
.youtube-years .bar-year{order:-1;padding:0;text-align:left}
.youtube-years .bar-track{height:12px;border:0;border-radius:3px}
.youtube-years .bar-fill{transform:scaleX(var(--scale,1));transform-origin:left center;border-radius:3px}
.youtube-years .bar-value{text-align:right}
/* musictrace: a local-first import service, using the established readable report UI. */
.brand{display:inline-flex;align-items:center;gap:10px;font-size:1.5rem}.brand svg{color:var(--green)}
.header-note{font-size:var(--text-secondary);color:var(--muted)}
#welcome{padding-block:44px 24px}.welcome-copy{max-width:48rem}.welcome-copy h1{font-size:clamp(2.6rem,6vw,4.5rem);line-height:1.08}.welcome-copy>p:last-child{margin-top:20px;color:var(--muted);max-width:38ch}
.provider-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;margin-top:36px}.provider-card{display:flex;flex-direction:column;gap:12px;min-width:0;padding:26px;text-align:left;border:1px solid var(--control-border);border-radius:8px;background:var(--surface);color:var(--text);transition:border-color 180ms,transform 180ms}
.provider-label{font-size:.875rem;font-weight:600;letter-spacing:.08em;color:var(--green)}.provider-card>strong{font-size:1.625rem;line-height:1.3}.provider-card>span:not(.provider-label):not(.provider-action){font-size:1rem;color:var(--muted)}.provider-action{display:flex;justify-content:space-between;gap:12px;margin-top:14px;font-weight:600;color:var(--green);font-size:1rem}.privacy-promise{font-size:1rem;color:var(--muted);margin-top:24px;max-width:60ch}
#import{padding-block:24px}#import-title{font-size:2rem;margin-bottom:20px}#import .eyebrow{margin-block:20px 12px;font-size:.875rem;letter-spacing:0;text-transform:none}.text-button{display:inline-flex;align-items:center;min-height:44px;padding:8px 0;border:0;background:none;color:var(--muted);font:inherit;font-size:1rem}.guide-link{display:inline-flex;align-items:center;min-height:48px;color:var(--green);font-weight:600;text-decoration:underline;text-underline-offset:4px}.guide-steps{padding-left:22px;font-size:1rem;color:var(--muted)}.guide-steps li{margin-block:10px}.file-zone{padding:24px;margin-block:24px 12px;border:1px dashed var(--control-border);border-radius:8px;background:var(--surface)}.file-zone label{display:flex;flex-direction:column;gap:6px;cursor:pointer}.file-zone label span{font-size:1rem;color:var(--muted)}.file-zone input{display:block;max-width:100%;width:100%;font-size:1rem;margin-block:18px 10px}.file-zone input::file-selector-button{min-height:44px;padding:8px 12px;border:1px solid var(--control-border);background:var(--bg);border-radius:4px;color:var(--text);font:inherit;margin-right:10px}.file-zone p{overflow-wrap:anywhere}
.primary-button,.danger-button{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:12px 20px;border:1px solid var(--green);border-radius:5px;background:var(--green);color:var(--bg);font-size:1rem;font-weight:600;line-height:1.5;text-align:center}.danger-button{background:none;border-color:#db9892;color:#f3a39f;width:100%;margin-top:18px}.import-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:20px}.import-actions .more-button{width:auto;margin:0}progress{width:100%;height:12px;accent-color:var(--green)}#progress-area{margin-top:24px}#progress-label{font-size:1rem;color:var(--muted)}.error-message{padding:16px;border:1px solid #9b6b68;background:var(--surface);color:#f3a39f;margin-block:20px;font-size:1rem}
#result{padding-top:24px}.result-heading{display:flex;justify-content:space-between;align-items:start;flex-wrap:wrap;gap:12px}.result-heading h1{font-size:clamp(1.75rem,4vw,2.5rem)}.quality-note{margin-block:16px;color:var(--muted);font-size:1rem}.report-overview{padding-block:22px}.publish-panel{margin-block:28px;padding:24px;border:1px solid var(--control-border);border-radius:8px;background:var(--surface)}.publish-panel h2{font-size:1.5rem;margin-bottom:12px}.publish-panel>p{font-size:1rem;color:var(--muted)}.share-sections{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 16px;border:0;padding:0;margin:20px 0}.share-sections legend{font-size:1rem;font-weight:600;margin-bottom:8px}.share-sections label,.consent{display:flex;align-items:start;gap:10px;min-height:44px;padding-block:8px;font-size:1rem;cursor:pointer}.share-sections input,.consent input{flex-shrink:0;accent-color:var(--green);width:20px;height:20px;margin-top:3px}.consent a{text-decoration:underline;text-underline-offset:3px}.publish-panel>.primary-button{width:100%;margin-top:12px}.field-label{display:block;margin-top:20px;font-size:1rem;color:var(--muted)}#share-link,#delete-link{display:block;width:100%;min-width:0;min-height:48px;margin-top:8px;padding:10px;border:1px solid var(--control-border);border-radius:4px;background:var(--bg);color:var(--text);font-size:1rem}#publish-status{margin-top:12px}#retention-note{margin-top:16px}.privacy-section{margin-top:24px}.privacy-section details{border-bottom:0}.privacy-section p+p{margin-top:14px}#operator{padding-block:12px}#unavailable{padding-block:48px}#unavailable h1{font-size:2rem}#unavailable p{margin-block:20px}.list-actions{display:flex;gap:12px;flex-wrap:wrap}.report-search{margin-block:14px;width:100%;min-height:48px;padding:10px 12px;border:1px solid var(--control-border);border-radius:4px;background:var(--surface);font-size:1rem;color:var(--text)}.year-table{display:grid;gap:6px}.year-row{display:grid;grid-template-columns:3rem minmax(0,1fr) 5rem;align-items:center;gap:12px;min-height:44px;width:100%;border:0;background:none;color:var(--text);font-size:1rem;text-align:left;padding:6px 0}.year-meter{height:12px;border-radius:3px;background:var(--line);overflow:hidden}.year-meter i{display:block;height:100%;background:var(--green)}.year-row>strong{text-align:right;font-variant-numeric:tabular-nums;font-size:1rem}.year-row .year-meter i{width:var(--width)}.report-heat{display:grid;grid-template-columns:2rem repeat(7,minmax(0,1fr));gap:3px}.report-heat button{height:24px;min-width:0;border:0;border-radius:2px;background:var(--cell);padding:0}.report-heat span{font-size:.875rem;color:var(--muted);line-height:24px;text-align:center}.report-heat button[aria-pressed=true]{outline:2px solid var(--green);outline-offset:1px}.result-meta{font-size:.9375rem;color:var(--muted);margin-top:12px}.empty{padding-block:16px}.rank-row strong{text-align:inherit}.rank-value{font-size:1rem}.simple-list{padding-left:22px}.simple-list li{padding-block:10px}.simple-list small{display:block;color:var(--muted);font-size:.9375rem}.year-top-value small{display:block;color:var(--muted);font-size:.9375rem}.data-note{margin-top:16px;font-size:1rem;color:var(--muted)}
@media(hover:hover){.provider-card:hover{border-color:var(--green);transform:translateY(-2px)}.year-row:hover,.rank-toggle:hover{background:var(--surface)}}
@media(max-width:700px){.header-note{display:none}#welcome{padding-top:28px}.welcome-copy h1{font-size:2.6rem}.welcome-copy>p:last-child{font-size:1rem;margin-top:16px}.provider-grid{grid-template-columns:minmax(0,1fr);margin-top:24px;gap:12px}.provider-card{padding:20px;gap:8px}.provider-card>strong{font-size:1.375rem}.provider-action{margin-top:10px}.privacy-promise{margin-top:18px}.file-zone,.publish-panel{padding:18px}.share-sections{grid-template-columns:minmax(0,1fr)}.result-heading .text-button{padding-block:0}.result-heading{gap:4px}.year-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.rank-row{grid-template-columns:1.5rem minmax(0,1fr)}.stat-extra{display:block}.report-overview{padding-block:16px}.site-title{font-size:1.25rem}.year-modal{width:calc(100% - 16px);height:calc(100dvh - 16px)}}
@media(prefers-reduced-motion:reduce){.provider-card{transition:none}.provider-card:hover{transform:none}}

/* All providers share neutral surfaces; only their accent changes. */
html[data-source=base] .error-message,html[data-source=base] .danger-button{background:var(--surface);border-color:var(--control-border);color:var(--text)}


@keyframes music-level{from{transform:scaleY(.4)}to{transform:scaleY(1)}}
@media(prefers-reduced-motion:no-preference){
  .brand svg line{transform-box:fill-box;transform-origin:center bottom;animation:music-level 1.1s ease-in-out infinite alternate}
  .brand svg line:nth-child(2){animation-duration:.8s;animation-delay:-.35s}
  .brand svg line:nth-child(3){animation-duration:1.3s;animation-delay:-.8s}
  .brand svg line:nth-child(4){animation-duration:.95s;animation-delay:-.5s}
}

.file-zone{transition:border-color 160ms ease,background-color 160ms ease}
.file-zone.drag-over{border-style:solid;border-color:var(--green);background:var(--line)}
.file-zone:focus-within{border-color:var(--green)}
.file-zone #drop-help{font-size:1rem;color:var(--muted);margin-top:8px}
.file-zone #pick-files{width:auto;margin-top:18px}
.file-zone #file-summary{margin-top:12px}
@media(prefers-reduced-motion:reduce){.file-zone{transition:none}}

.result-cta{margin-block:28px 8px;padding-block:28px}
.result-cta h2{font-size:1.5rem;line-height:1.3}
.result-cta>p{max-width:48ch;margin-top:12px;color:var(--muted);font-size:1rem}
.result-cta .primary-button{margin-top:20px}
@media(max-width:700px){.result-cta .primary-button{width:100%}}

.heat-grid-row{display:contents}
.report-heat [role=gridcell]{min-width:0}
.report-heat button{display:block;width:100%;min-height:24px;border:1px solid var(--control-border)}
.report-heat{margin-top:16px}
#heat-help{margin-block:12px}
.year-modal :focus-visible{outline-offset:2px}
#detail-body:focus-visible{outline-offset:-3px}
#detail-title{min-width:0}
footer>a{display:inline-flex;align-items:center;min-height:44px}
@media(forced-colors:active){
 .report-heat button{border:1px solid ButtonText}
 .year-meter,.genre-track{border:1px solid CanvasText}
 .year-meter i,.genre-meter{background:Highlight}
 .report-heat button[aria-pressed=true]{outline:2px solid Highlight}
}

.report-heat [role=rowheader],.report-heat [role=columnheader]{display:flex;align-items:center;justify-content:center;line-height:1.5;min-height:24px}
.report-heat button{height:100%}

/* The heading receives reading focus; interactive controls keep their focus ring. */
#result-title:focus{outline:none}

:root{--heat-0:#242424;--heat-1:#353535;--heat-2:#5a5a5a;--heat-3:#888888;--heat-4:#bcbcbc;--heat-5:#eeeeee}
html[data-source=spotify]{--heat-1:#183d2d;--heat-2:#2e6947;--heat-3:#60a565;--heat-4:#a1d28a;--heat-5:#e2f5bc}
html[data-source=youtube]{--heat-1:#49252b;--heat-2:#864149;--heat-3:#c46966;--heat-4:#ec9d8a;--heat-5:#ffe0c4}
.heat-scale-title{font-size:var(--text-secondary);color:var(--muted);margin-top:16px}
.rhythm-legend{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px 16px;padding:0;margin:12px 0;list-style:none}
.rhythm-legend li{display:flex;align-items:center;gap:8px;min-width:0;font-size:var(--text-caption);color:var(--muted);overflow-wrap:anywhere}
.rhythm-legend i{width:18px;height:18px;flex-shrink:0;border:1px solid var(--control-border);border-radius:2px}
.legal-copy{padding-block:40px}.legal-copy h1{margin-bottom:24px}.legal-copy p+p{margin-top:16px}
@media(max-width:360px){.rhythm-legend{grid-template-columns:repeat(2,minmax(0,1fr))}}

.language-switch{display:flex;gap:.25rem;margin-left:auto;flex-shrink:0}
.language-switch button{display:grid;place-items:center;min-width:44px;min-height:44px;padding:.4rem;background:transparent;border:1px solid transparent;border-radius:.5rem;font-size:1.3rem;line-height:1}
.language-switch button[aria-pressed="true"]{background:var(--surface,#242424);border-color:#787878}
.language-switch button:hover{background:#303030}
.header-note{margin-left:auto}.topbar{flex-wrap:nowrap}
@media(max-width:700px){.language-switch{gap:.125rem}.language-switch button{min-width:44px}}

.language-flag{display:block;border-radius:2px;outline:1px solid #777;outline-offset:-1px;overflow:hidden}

.icon-external{display:inline-block;width:1em;height:1em;vertical-align:-.125em;flex-shrink:0;pointer-events:none}
.text-button,.guide-link{gap:.4em}.provider-action .icon-external{align-self:center}
