/* Global player, generated playlist catalog and artist components. */
turbo-frame { display:block; }
.sr-only { position:absolute!important; width:1px!important; height:1px!important; padding:0!important; margin:-1px!important; overflow:hidden!important; clip:rect(0,0,0,0)!important; white-space:nowrap!important; border:0!important; }
.music-player { position:sticky; top:var(--music-header-height,79px); z-index:80; padding:10px 0; border-block:1px solid #262626; background:#000; color:var(--paper); }
.music-player__inner { display:grid; grid-template-columns:minmax(240px,.65fr) minmax(0,1.35fr); align-items:center; gap:2rem; }
.music-player__editorial { min-width:0; }
.music-player__now { display:block; margin-bottom:2px; color:#a9a9a9; font:700 .62rem/1.2 var(--sans); letter-spacing:.12em; text-transform:uppercase; }
.music-player__editorial h2 { margin:0; max-width:32ch; font:700 clamp(.9rem,1.5vw,1.15rem)/1.4 var(--serif); }
.music-player__phrase { margin:.15rem 0 0; color:#c7c7c7; font-size:.76rem; line-height:1.35; }
.music-player__actions { display:flex; align-items:center; gap:1.15rem; margin-top:4px; }
.music-player__actions a,.music-player__actions button { display:inline-flex; align-items:center; gap:.5rem; min-height:32px; padding:0; border:0; background:none; color:#c7c7c7; font:700 .73rem/1.3 var(--sans); text-decoration:underline; text-underline-offset:4px; cursor:pointer; }
.music-player__actions [hidden] { display:none; }
.music-player iframe { display:block; width:100%; height:80px; min-width:0; border:0; border-radius:12px; }
.music-player.is-stuck { box-shadow:0 7px 16px #00000033; }
.music-player.is-expanded iframe { height:min(352px,calc(100svh - var(--music-header-height,79px) - 100px)); min-height:152px; }
.music-player.is-expanded .music-player__inner { align-items:start; }
.music-player.is-expanded .music-player__editorial { padding-top:12px; }
.music-player__fallback { grid-column:2; margin:0; color:#c7c7c7; }
.playlist-page-hero,.playlist-catalog,.submission-section { scroll-margin-top:220px; }
.playlist-card-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:clamp(1rem,2vw,1.5rem); margin-top:2rem; }
.playlist-card { display:block; min-width:0; border:1px solid #3b3b3b; background:linear-gradient(145deg,#171717,#0e0e0e); }
.playlist-card__body { display:flex; flex-direction:column; min-height:100%; padding:clamp(1.35rem,3vw,2rem); }
.playlist-card__heading { display:flex; align-items:flex-start; justify-content:space-between; gap:1rem; }
.playlist-card__heading > div { min-width:0; }
.playlist-card__heading .eyebrow { margin:0 0 .55rem; color:#b2b2b2; }
.playlist-card__heading h3,.playlist-card__body h3 { margin:0; font:700 clamp(1.65rem,3vw,2.5rem)/1.08 var(--serif); }
.playlist-card__heading .button { flex:0 0 auto; min-height:42px; padding:.7rem .9rem; font-size:.68rem; }
.playlist-card__body > p { max-width:58ch; color:#c0c0c0; font-size:.88rem; line-height:1.65; }
.playlist-card__spotify { display:block; width:100%; height:152px; margin-top:1rem; border:0; border-radius:12px; background:#171717; }
.playlist-card__genres { color:#bdbdbd; font-size:.82rem; }
.playlist-card__cta { display:flex; margin-top:auto; padding-top:1.25rem; }
.playlist-card__cta .button { width:100%; }
.playlist-card .button-row,.playlist-promo .button-row { align-items:center; }
.playlist-card button.button,.playlist-promo button.button { font:inherit; cursor:pointer; }
.marketplace-playlist-card { display:flex; flex-direction:column; min-height:0; padding:clamp(1.2rem,2.4vw,1.7rem); background:linear-gradient(145deg,#191919,#101010); }
.marketplace-playlist-card .playlist-card__heading h3 { font-size:clamp(1.6rem,2.7vw,2.25rem); }
.marketplace-playlist-card__copy { color:#c3c3c3; font-size:.86rem; line-height:1.6; }
.marketplace-playlist-card__spotify { display:block; width:100%; height:152px; margin-top:.5rem; border:0; border-radius:12px; background:#171717; }
.marketplace-playlist-card .resource-card__foot { display:flex; margin-top:auto; padding:1.1rem 0 0; border:0; background:transparent; }
.marketplace-playlist-card .resource-card__foot .button { width:100%; }
.playlist-empty { padding:2rem; background:#111; }
.button:disabled,.submission-form button:disabled { opacity:.45; cursor:not-allowed; transform:none; }
/* Native scrolling keeps the cards useful with touch, keyboard or no JavaScript. */
.artist-strip { padding:28px 0; border-block:1px solid var(--line); background:#101010; }
.artist-strip__inner { display:grid; grid-template-columns:minmax(250px,.65fr) minmax(0,1.35fr); align-items:center; gap:3rem; }
.artist-strip__heading .eyebrow { margin-bottom:.5rem; }
.artist-strip__heading h2 { margin:0 0 1.25rem; max-width:17ch; font:700 clamp(1.35rem,2.5vw,2rem)/1.2 var(--serif); letter-spacing:-.035em; }
.artist-strip__heading .button { font-size:.8rem; }
.artist-strip__browse { min-width:0; }
.artist-strip__controls { display:flex; justify-content:flex-end; gap:.5rem; margin-bottom:8px; }
.artist-strip__controls[hidden] { display:none; }
.artist-strip__controls .carousel-button { width:36px; height:36px; }
.artist-strip__controls button:disabled { opacity:.3; cursor:default; }
.artist-track { display:flex; gap:16px; overflow-x:auto; padding:4px 4px 10px; scroll-snap-type:x mandatory; scroll-padding:4px; scrollbar-width:thin; scrollbar-color:#5c5c5c #161616; }
.artist-tile { position:relative; flex:0 0 54%; min-width:225px; height:176px; overflow:hidden; scroll-snap-align:start; color:#ffffff; background:#1c1c1c; text-decoration:none; }
.artist-tile img { width:100%; height:100%; object-fit:cover; }
.artist-tile:after { content:''; position:absolute; inset:0; background:linear-gradient(0deg,#000000ee, #00000011 85%); }
.artist-tile > div { position:absolute; z-index:1; inset:auto 16px 14px; }
.artist-tile span { font-size:.57rem; text-transform:uppercase; letter-spacing:.15em; }
.artist-tile h3 { margin:3px 0; font:700 1.4rem/1.2 var(--serif); }
.artist-tile b { font-size:.7rem; }
.artist-catalog-hero { padding-block:clamp(4rem,7vw,7rem); }
.artist-catalog { padding-bottom:5rem; }
.artist-entry { padding:3rem 0; border-top:1px solid var(--line); display:grid; grid-template-columns:260px minmax(0,1fr); gap:3rem; }
.artist-entry__heading h2 { font:700 clamp(1.7rem,3vw,2.5rem)/1.2 var(--serif); margin:0 0 1rem; }
.artist-entry__heading .text-link { color:#8B0000; font-size:.85rem; }
.artist-releases { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; align-items:start; }
.artist-release { text-decoration:none; background:#131313; border:1px solid var(--line); }
.artist-release img { width:100%; height:auto; aspect-ratio:16/9; object-fit:cover; }
.artist-release > div { padding:14px; }
.artist-release h3 { font:700 1rem/1.4 var(--serif); margin:0 0 8px; }
.artist-release span { font-size:.7rem; color:#bababa; }
@media(max-width:800px) {
 .artist-strip__inner { grid-template-columns:minmax(200px,.8fr) minmax(0,1.2fr); gap:1.5rem; }
 .artist-entry { grid-template-columns:1fr; gap:1.5rem; }
}
@media(max-width:620px) {
 .music-player { top:var(--music-header-height,67px); padding:6px 0; }
 .music-player__inner { width:calc(100% - 1rem); grid-template-columns:minmax(0,1fr); gap:7px; }
 .music-player__editorial { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:start; gap:10px; padding:0 4px; }
 .music-player__text { min-width:0; }
 .music-player__now { display:block; margin-bottom:2px; font-size:.55rem; }
 .music-player__editorial h2 { max-width:none; font-size:.82rem; line-height:1.3; white-space:normal; }
 .music-player__phrase { display:block; margin-top:3px; font-size:.68rem; line-height:1.35; }
 .music-player__actions { margin:0; gap:8px; flex-shrink:0; }
 .music-player__actions button,.music-player__actions a { font-size:.63rem; min-height:34px; }
 .music-player__actions a { display:none; }
 .music-player.is-expanded .music-player__editorial { padding-top:0; }
 .music-player.is-expanded iframe { height:min(352px,calc(100svh - var(--music-header-height,67px) - 100px)); }
 .artist-strip { padding:24px 0; }
 .artist-strip__inner { grid-template-columns:minmax(0,1fr); gap:12px; }
 .artist-strip__heading h2 { max-width:26ch; font-size:1.45rem; margin-bottom:12px; }
 .artist-strip__controls { margin:0 0 2px; }
 .artist-tile { flex-basis:78%; height:160px; }
 .artist-releases { grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
 .artist-release > div { padding:10px; }
 .artist-release h3 { font-size:.9rem; }
 .playlist-card-grid { grid-template-columns:1fr; }
 .playlist-card__heading { flex-direction:column; }
 .playlist-card__heading .button { width:100%; }
}
@media(max-width:360px) { .artist-releases { grid-template-columns:1fr; } }
@media(prefers-reduced-motion:reduce) { .artist-track { scroll-behavior:auto; } }
