/* v1.6: Artwork / typography / carousels. Body uses an open-source Anybody Variable font served by Google Fonts, never a redistributed font file. */
:root{--font-display:"Anybody", "Arial Black", system-ui,sans-serif;--font-body:"Anybody",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
body,button,input,select,textarea{font-family:var(--font-body);font-stretch:100%}
.hero h1,.pagehead h1,.tm-hero h1,.tm-hero h1 i,.chapter h2,.chapter .big,.rate-albumname,.kpi b,.tm-stage h2,.tm-snapshot h2,.tm-sectionhead h2,.title2,.bootmark,.wordmark,.merit-feature h2,.rate-score-value{font-family:var(--font-display)!important;font-weight:750;font-stretch:122%;font-style:normal;letter-spacing:-.045em}
.hero h1{font-size:clamp(48px,9.5vw,100px);line-height:.88;letter-spacing:-.062em}.hero h1 span{font-weight:350;font-stretch:123%}
.tm-hero h1{font-size:clamp(55px,11vw,90px);letter-spacing:-.06em;line-height:.91}.tm-hero h1 i{font-weight:350;color:#405966}
.pagehead h1{font-stretch:120%;font-weight:750;line-height:1.01}
.chapter h2{font-weight:760;line-height:1.06}.rate-albumname{font-stretch:110%;font-weight:680}
.listrow .meta b,.tm-albumline b{font-size:13px}
/* The selected album remains the hero; neighbours become navigable sculpture. */
.floating-gallery{padding-bottom:37px;touch-action:pan-y;-webkit-user-select:none;user-select:none}
.floating-gallery .gallery-navigation{position:absolute;bottom:0;left:50%;transform:translateX(-50%);z-index:15;display:flex;align-items:center;justify-content:center;gap:12px;min-width:208px;max-width:85%;pointer-events:auto}
.gallery-navigation button{border:1px solid #82745a88;background:#f3e7dcd9;color:#3b332b;width:30px;height:30px;border-radius:50%;display:grid;place-items:center;box-shadow:0 2px 9px #40352716;font-size:17px}
.gallery-navigation span{color:#463a2f;font-size:9px;letter-spacing:.09em;font-weight:750;white-space:nowrap;text-shadow:0 1px 8px #e9dfd1}
.tm-hero .gallery-navigation span{color:#213743;text-shadow:0 1px 9px #d0e5ea}
.floating-gallery .float-item{will-change:transform}
.floating-gallery .float-item-1 .float-caption{max-width:152px;overflow:hidden;text-overflow:ellipsis}
.hero .floating-gallery{height:242px;margin-bottom:8px}.tm-hero-art .floating-gallery{height:210px}
@media(max-width:390px){.hero .floating-gallery{height:230px}.tm-hero-art .floating-gallery{height:191px}.pagehead h1{font-size:clamp(32px,9.5vw,48px)}}
/* Albums and artist portraits load into the places their names are already visible. */
.tm-albumline .tm-album-art{width:43px;height:43px;min-width:43px;flex:none;position:relative;border-radius:7px;overflow:hidden;padding:0;box-shadow:0 3px 7px #21180f29}
.tm-albumline .tm-album-art .cover-fallback{font-size:7px;line-height:1.12;letter-spacing:0;padding:4px;max-width:100%;overflow-wrap:break-word;text-align:center}
.tm-ranked .artist-photo{width:27px;height:27px;min-width:27px;border-radius:50%}.tm-ranked .artist-photo-fallback{font-size:10px}
.artist-photo{width:43px;height:43px;min-width:43px;aspect-ratio:1;display:grid;place-items:center;position:relative;overflow:hidden;background:linear-gradient(135deg,#9ba994,#807262);border-radius:50%;color:#faf2e4;box-shadow:0 4px 10px #2b1c1024}
.artist-photo-fallback{font-family:var(--font-display);font-size:15px;font-stretch:110%;font-weight:700}
.artist-photo-img{width:100%;height:100%;object-fit:cover;position:absolute;inset:0;z-index:2;opacity:0;transition:opacity .25s ease}
.has-artist-photo .artist-photo-img{opacity:1}.has-artist-photo .artist-photo-fallback{opacity:0}
@media(prefers-reduced-motion:reduce){.floating-gallery .float-item,.artist-photo-img{animation:none!important;transition:none!important}}
