:root{
  --bg:#070709; --panel:#101014; --panel2:#16161c; --text:#f4f4f0; --muted:#9999a2;
  --line:#2d2d35; --pink:#df39ad; --cyan:#2cc2e8; --max:1280px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;background:var(--bg)}
body{margin:0;background:var(--bg);color:var(--text);font-family:Arial,Helvetica,sans-serif}
a{color:inherit;text-decoration:none}
button,input,select{font:inherit}
.shell{width:min(calc(100% - 48px),var(--max));margin:0 auto}
.nav{position:sticky;top:0;z-index:50;background:rgba(7,7,9,.9);backdrop-filter:blur(12px);border-bottom:1px solid rgba(255,255,255,.06)}
.nav-inner{height:76px;display:flex;align-items:center;justify-content:space-between}
.brand{display:flex;align-items:center;width:146px;height:48px;overflow:hidden}
.brand img{width:100%;height:auto;display:block}
.nav-links{display:flex;gap:28px;align-items:center}
.nav-links a{font-size:13px;font-weight:700;letter-spacing:.08em;color:var(--muted)}
.nav-links a:hover,.nav-links a.active{color:var(--pink)}
.hero{min-height:82vh;padding:100px 0 82px;position:relative;overflow:hidden}
.hero-grid{display:grid;grid-template-columns:1.08fr .92fr;gap:90px;align-items:center}
.kicker{font-size:13px;letter-spacing:.12em;font-weight:800;color:var(--pink);text-transform:uppercase}
h1,h2,h3,p{margin-top:0}
.hero-title{font-size:clamp(72px,10vw,146px);line-height:.81;letter-spacing:-.065em;margin:24px 0 34px;font-weight:900}
.tagline{font-size:clamp(19px,2vw,29px);line-height:1.35;color:#e1e1e4;max-width:760px}
.hero-copy{max-width:700px;color:#b8b8c0;font-size:19px;line-height:1.62;margin:24px 0 28px}
.hero-logo-wrap{min-height:540px;border:1px solid var(--line);background:radial-gradient(circle at 45% 45%,#17171d 0,#0a0a0d 58%,#070709 100%);display:flex;flex-direction:column;justify-content:center;align-items:center;padding:55px;position:relative}
.hero-logo{width:min(100%,620px);filter:drop-shadow(0 25px 50px rgba(0,0,0,.45))}
.hero-logo-caption{position:absolute;bottom:24px;left:28px;color:#74747f;font-size:11px;letter-spacing:.08em;text-transform:uppercase}
.section{padding:95px 0;border-top:1px solid var(--line)}
.section-head{display:flex;justify-content:space-between;gap:40px;align-items:flex-end;margin-bottom:50px}
.section-title{font-size:clamp(46px,7vw,98px);line-height:.9;letter-spacing:-.055em;margin:12px 0;font-weight:900}
.timeline-sub{font-size:22px;color:#a9a9b2;margin:18px 0 0}
.section-copy{max-width:590px;color:#c5c5cb;font-size:20px;line-height:1.55}
.timeline-item{display:grid;grid-template-columns:.9fr 1.1fr;gap:70px;align-items:center;min-height:700px;padding:60px 0;border-top:1px solid var(--line)}
.timeline-year{font-size:clamp(110px,17vw,235px);line-height:.8;letter-spacing:-.075em;font-weight:900}
.timeline-meta{font-size:18px;color:#d8d8dc;margin:28px 0 22px;line-height:1.65}
.data-line{color:#8d8d97;font-size:15px;text-transform:uppercase;letter-spacing:.055em}
.highlight-names{color:#e9e9eb;font-size:18px}
.cta{display:inline-flex;align-items:center;gap:10px;font-weight:800;font-size:14px;letter-spacing:.08em;color:var(--cyan);text-transform:uppercase}
.timeline-art{width:100%;height:570px;object-fit:contain;background:#0d0d11;border:1px solid var(--line);padding:18px}
.placeholder-art{height:570px;border:1px solid var(--line);display:flex;align-items:center;justify-content:center;color:#60606b;font-size:64px;font-weight:900;background:linear-gradient(145deg,#0a0a0d,#17171d)}
.progress{display:flex;gap:10px;flex-wrap:wrap;margin-top:35px}.progress a{font-size:12px;color:#6f6f78;padding:8px 9px;border:1px solid #26262d}.progress a:hover{color:var(--text);border-color:#777}
.grid{display:grid;grid-template-columns:repeat(4,1fr);gap:24px}.card{background:var(--panel);border:1px solid var(--line);transition:.2s transform,.2s border-color}.card:hover{transform:translateY(-3px);border-color:#64646f}.card img,.card-placeholder{display:block;width:100%;aspect-ratio:3/4;object-fit:cover;background:#15151a}.card-placeholder{display:flex;align-items:center;justify-content:center;font-size:50px;font-weight:900;color:#4c4c55}.card-body{padding:18px 18px 20px}.card-year{font-size:31px;font-weight:900}.card-sub{margin-top:7px;color:var(--muted);font-size:13px;line-height:1.4}
.big-links{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}.big-link{min-height:190px;padding:26px;border:1px solid var(--line);background:var(--panel);display:flex;flex-direction:column;justify-content:space-between}.big-link:hover,.profile-card:hover{border-color:#666672}.big-link strong{font-size:30px}.big-link span{color:var(--cyan);font-size:13px;font-weight:800;letter-spacing:.08em}.voice{padding:58px;border:1px solid var(--line);background:linear-gradient(135deg,#121217,#0a0a0c)}.voice .quote{font-size:clamp(34px,5vw,72px);line-height:1.05;letter-spacing:-.04em;font-weight:900;max-width:1000px}.help{display:grid;grid-template-columns:1fr 1fr;gap:75px}.pills{display:flex;flex-wrap:wrap;gap:12px}.pill{border:1px solid var(--line);padding:12px 15px;color:#d0d0d5}.footer{padding:55px 0;color:#777780;border-top:1px solid var(--line);font-size:13px}
.page-head{padding:80px 0 55px}.page-title{font-size:clamp(64px,10vw,140px);line-height:.85;letter-spacing:-.065em;font-weight:900;margin:15px 0 30px}.toolbar{display:flex;gap:12px;flex-wrap:wrap;margin:20px 0 36px}.search,.select{background:#101014;border:1px solid var(--line);color:var(--text);padding:14px 16px;min-height:48px}.search{min-width:min(100%,420px);flex:1}.table{border-top:1px solid var(--line)}.row{display:grid;grid-template-columns:90px 1.5fr 140px 160px 45px;gap:18px;align-items:center;padding:19px 12px;border-bottom:1px solid #24242a}.row:hover{background:#101014}.row .year{font-weight:900;color:var(--pink)}.row .artist{font-weight:800;font-size:21px}.row .small{font-size:13px;color:var(--muted)}
.edition-hero{display:grid;grid-template-columns:1fr .8fr;gap:70px;align-items:start;padding:70px 0 60px}.edition-poster{width:100%;max-height:760px;object-fit:contain;border:1px solid var(--line);background:#0d0d11;padding:15px}.edition-intro{max-width:620px;color:#aaaab3;font-size:17px;line-height:1.6}.stats{display:flex;gap:35px;flex-wrap:wrap;margin:30px 0}.stat b{display:block;font-size:35px}.stat span{font-size:11px;color:var(--muted);letter-spacing:.08em;text-transform:uppercase}.artist-cloud{display:flex;flex-wrap:wrap;gap:10px}.artist-chip{border:1px solid var(--line);padding:9px 12px;color:#d7d7dc;font-size:14px}.artist-chip:hover{border-color:var(--pink);color:#fff}
.set-list .set-card{display:grid;grid-template-columns:70px 1fr auto;gap:22px;align-items:center;padding:22px;border:1px solid var(--line);background:var(--panel);margin-bottom:12px}.play{width:52px;height:52px;border-radius:50%;background:var(--pink);color:#08080a;font-weight:900;display:flex;align-items:center;justify-content:center}.set-card h3{margin:0 0 6px;font-size:26px}.set-card p{margin:0;color:var(--muted)}.set-detail{padding:70px 0}.embedded-player{border:1px solid var(--line);background:var(--panel);padding:24px;margin:35px 0 0}.embed-frame{width:100%;display:block;border:0}.embed-frame.mixcloud{height:120px}.embed-frame.soundcloud{height:166px}.native-audio audio{width:100%}.player-fallback{padding:35px}.wave{height:74px;background:repeating-linear-gradient(90deg,#555560 0 2px,transparent 2px 8px);mask:linear-gradient(to bottom,transparent 5%,#000 30%,#000 70%,transparent 95%)}.source-line{display:flex;justify-content:space-between;gap:20px;align-items:center;border:1px solid var(--line);border-top:0;padding:14px 20px;color:#83838d;font-size:13px}.meta-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:var(--line);border:1px solid var(--line);margin:40px 0}.meta{background:var(--bg);padding:20px}.meta label{display:block;color:var(--muted);font-size:11px;letter-spacing:.09em;text-transform:uppercase;margin-bottom:7px}.meta strong{font-size:20px}.backline{display:flex;justify-content:space-between;gap:15px;flex-wrap:wrap;padding:40px 0;border-top:1px solid var(--line)}.note{font-size:13px;color:#777781;line-height:1.5}.empty{border:1px dashed #33333a;padding:50px;color:#80808a;text-align:center}
.archive-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px;margin-top:38px}.archive-object{margin:0;border:1px solid var(--line);background:#0d0d11;padding:18px}.archive-object img{width:100%;height:620px;object-fit:contain;display:block}.archive-object figcaption{color:#878790;font-size:12px;text-transform:uppercase;letter-spacing:.07em;padding:14px 2px 0}
.featured-profiles{margin-top:70px;padding-top:70px;border-top:1px solid var(--line)}.profile-heading{font-size:clamp(42px,6vw,80px);line-height:.95;letter-spacing:-.05em;margin:12px 0}.profile-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.profile-card{min-height:180px;padding:24px;border:1px solid var(--line);background:var(--panel);display:flex;flex-direction:column}.profile-card strong{font-size:25px;line-height:1.05}.profile-card p{color:#8f8f99;line-height:1.4;margin:16px 0 auto}.profile-card span{color:var(--cyan);font-size:12px;font-weight:800;letter-spacing:.07em;text-transform:uppercase;margin-top:26px}.artist-index{margin-top:90px;padding-top:70px;border-top:1px solid var(--line)}.artist-index-card{min-height:138px}.artist-index-card strong{font-size:21px}.artist-name-title{max-width:1100px}.artist-profile-copy{max-width:820px;font-size:clamp(22px,3vw,36px);line-height:1.35;color:#d2d2d6}.artist-summary{margin-top:28px;color:#8f8f98;font-size:13px;text-transform:uppercase;letter-spacing:.08em}.appearance-grid{grid-template-columns:repeat(4,1fr)}
@media(max-width:900px){
  .nav-links{display:none}.hero-grid,.timeline-item,.edition-hero,.help{grid-template-columns:1fr}.hero-logo-wrap{min-height:390px}.grid,.big-links,.appearance-grid{grid-template-columns:repeat(2,1fr)}.profile-grid{grid-template-columns:repeat(2,1fr)}.timeline-art,.placeholder-art{height:460px}.row{grid-template-columns:70px 1fr 80px}.row .source,.row .arrow{display:none}.archive-object img{height:480px}
}
@media(max-width:560px){
  .shell{width:min(calc(100% - 28px),var(--max))}.hero{padding-top:55px}.hero-logo-wrap{min-height:300px;padding:30px}.brand{width:120px}.grid,.big-links,.appearance-grid,.profile-grid,.archive-grid{grid-template-columns:1fr}.section{padding:70px 0}.timeline-item{gap:28px;min-height:auto}.timeline-art,.placeholder-art{height:380px}.row{grid-template-columns:58px 1fr}.row .duration{display:none}.meta-grid{grid-template-columns:1fr}.voice{padding:30px}.source-line{align-items:flex-start;flex-direction:column}.archive-object img{height:auto;max-height:560px}
}


/* v0.3 artist profiles + local playback */
.artist-scene{margin:14px 0 26px;color:var(--cyan);font-family:var(--mono);font-size:13px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}
.profile-editorial{max-width:860px;font-size:20px;line-height:1.65;color:#e8e6e0}
.profile-editorial p{margin:0 0 20px}
.artist-summary{margin-top:32px;padding-top:18px;border-top:1px solid #2a2a2a;color:#aaa;font-family:var(--mono);font-size:14px}
.local-player-warning{border:1px solid #444;padding:28px;background:#111;max-width:900px}
.local-player-warning strong{font-size:20px;color:#fff}.local-player-warning p{color:#bbb;line-height:1.6;margin-bottom:0}
.embed-frame{display:block;width:100%;border:0;background:#111}
.embed-frame.mixcloud{height:120px}.embed-frame.soundcloud{height:166px}
.native-audio audio{width:100%;margin:16px 0}


/* v0.4 — persistent 10 Days Off Radio */
.hero-actions,.set-actions{display:flex;align-items:center;gap:18px;flex-wrap:wrap}.hero-actions{margin-top:24px}.set-actions{margin-top:28px}
.radio-hero{border:0;background:var(--pink);color:#09090b;font:inherit;font-size:13px;font-weight:900;letter-spacing:.08em;text-transform:uppercase;padding:15px 18px;cursor:pointer}.radio-hero:hover{filter:brightness(1.06)}
.archive-radio{position:fixed;left:0;right:0;bottom:0;z-index:1000;background:#09090c;border-top:1px solid #313139;box-shadow:0 -12px 40px rgba(0,0,0,.45)}
.radio-panel{width:min(calc(100% - 44px),var(--max));margin:auto;padding:14px 0 12px}.radio-topline{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:10px}.radio-kicker{font-size:11px;font-weight:900;letter-spacing:.13em;color:var(--pink);margin-right:13px}.radio-slogan{font-size:12px;color:#7e7e88}.radio-skip{font:inherit;cursor:pointer;border:1px solid #35353d;background:#111116;color:#eee}.radio-main{display:grid;grid-template-columns:44px minmax(0,1fr) 44px;gap:11px;align-items:center}.radio-skip{height:44px}.radio-now{min-width:0}.radio-artist{display:block;font-weight:900;font-size:18px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.radio-year{color:var(--cyan);font-size:12px;font-weight:800}.radio-duration{color:#777781;font-size:12px}.radio-embed-wrap{margin-top:10px}.radio-provider{display:block;width:100%;border:0;background:#111}.radio-provider.mixcloud{height:60px}.radio-provider.soundcloud{height:80px}.radio-native{width:100%}.radio-error{padding:12px;border:1px dashed #444;color:#8b8b95}.radio-active{padding-bottom:178px}
@media(max-width:650px){.radio-panel{width:min(calc(100% - 24px),var(--max))}.radio-slogan{display:none}.radio-main{grid-template-columns:42px minmax(0,1fr) 42px}.radio-artist{font-size:15px}.radio-duration{display:none}.radio-provider.mixcloud{height:60px}.radio-provider.soundcloud{height:80px}.radio-active{padding-bottom:170px}}


/* v0.5 — local reactions */
.reaction-bar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:28px 0 8px}.reaction-btn{min-width:78px;min-height:48px;border:1px solid #34343c;background:#111116;color:#c9c9cf;padding:8px 12px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:8px;font:inherit}.reaction-btn span{font-size:20px;line-height:1}.reaction-btn small{font-size:11px;font-weight:800;letter-spacing:.05em;text-transform:uppercase}.reaction-btn:hover{border-color:#676772;color:#fff}.reaction-btn.is-selected{border-color:var(--pink);background:rgba(223,57,173,.12);color:#fff}.reaction-note{font-size:11px;color:#686873;margin-left:4px}.filter-toggle{min-height:44px;border:1px solid var(--line);background:#111116;color:#aaa;padding:0 15px;font:inherit;font-size:12px;font-weight:800;letter-spacing:.05em;text-transform:uppercase;cursor:pointer}.filter-toggle.is-active{border-color:var(--pink);color:#fff;background:rgba(223,57,173,.10)}
@media(max-width:560px){.reaction-bar{gap:7px}.reaction-btn{min-width:58px;padding:8px}.reaction-btn small{display:none}.reaction-note{width:100%;margin:3px 0 0}.toolbar .filter-toggle{width:100%}}

/* v0.6 — About + contact */
.footer-inner{display:flex;justify-content:space-between;gap:20px;align-items:center;flex-wrap:wrap}.footer a{color:inherit;text-decoration:none;border-bottom:1px solid currentColor}.contact-line{margin-top:28px;line-height:1.8}.contact-line span{opacity:.65;font-size:13px}.about-heading{font-size:44px;line-height:1.05;margin:10px 0 0}.about-story{max-width:880px;margin-top:34px;font-size:20px;line-height:1.7}.about-story p{margin:0 0 26px}.why-archive{border-top:1px solid var(--line,rgba(255,255,255,.14))}.contact-section{border-top:1px solid var(--line,rgba(255,255,255,.14))}@media(max-width:700px){.about-heading{font-size:34px}.about-story{font-size:18px}.footer-inner{align-items:flex-start;flex-direction:column}}


/* v0.7 — richer artist archive profiles */
.artist-facts{
  margin:42px 0 0;
  display:grid;
  grid-template-columns:repeat(4,1fr);
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
}
.artist-facts>div{
  padding:24px 22px 24px 0;
  min-width:0;
}
.artist-facts>div+div{
  padding-left:22px;
  border-left:1px solid var(--line);
}
.artist-facts span{
  display:block;
  color:#777780;
  text-transform:uppercase;
  font-size:10px;
  letter-spacing:.12em;
  font-weight:800;
  margin-bottom:9px;
}
.artist-facts strong{
  display:block;
  font-size:clamp(18px,2.2vw,30px);
  line-height:1.1;
}
.artist-history{
  max-width:920px;
  margin-top:58px;
}
.artist-history-title{
  margin:10px 0 18px;
  font-size:clamp(32px,4vw,58px);
  line-height:1;
  letter-spacing:-.04em;
}
.artist-history p{
  color:#b8b8bf;
  font-size:17px;
  line-height:1.75;
  max-width:820px;
}
.visual-appearance-grid{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:18px;
}
.appearance-card{
  position:relative;
  min-height:300px;
  overflow:hidden;
  border:1px solid var(--line);
  background:#111116;
  isolation:isolate;
}
.appearance-card img{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  filter:saturate(.92) contrast(1.02);
  transition:transform .35s ease, filter .35s ease;
}
.appearance-shade{
  position:absolute;
  inset:0;
  z-index:1;
  background:linear-gradient(180deg,rgba(4,4,6,.08),rgba(4,4,6,.30) 44%,rgba(4,4,6,.94) 100%);
}
.appearance-content{
  position:absolute;
  inset:0;
  z-index:2;
  display:flex;
  flex-direction:column;
  justify-content:flex-end;
  padding:22px;
  color:#fff;
}
.appearance-content strong{
  font-size:42px;
  line-height:.95;
  letter-spacing:-.04em;
  text-shadow:0 2px 16px rgba(0,0,0,.6);
}
.appearance-content>span{
  margin-top:7px;
  color:#d8d8dc;
  font-size:12px;
  font-weight:800;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.appearance-content em{
  margin-top:18px;
  color:var(--cyan);
  font-style:normal;
  font-size:12px;
  font-weight:900;
  letter-spacing:.07em;
}
.appearance-card:not(.has-image)::before{
  content:"10 DAYS OFF";
  position:absolute;
  top:18px;
  right:-22px;
  color:#1d1d24;
  font-size:46px;
  font-weight:950;
  transform:rotate(90deg);
  transform-origin:center;
  letter-spacing:-.06em;
}
@media (hover:hover) and (pointer:fine){
  .appearance-card:hover img{transform:scale(1.035);filter:saturate(1.08) contrast(1.04)}
  .appearance-card:hover{border-color:#6a6a73}
}
@media(max-width:900px){
  .artist-facts{grid-template-columns:repeat(2,1fr)}
  .artist-facts>div:nth-child(3){border-left:0;border-top:1px solid var(--line);padding-left:0}
  .artist-facts>div:nth-child(4){border-top:1px solid var(--line)}
  .visual-appearance-grid{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:560px){
  .artist-facts{grid-template-columns:1fr}
  .artist-facts>div,.artist-facts>div+div{padding:18px 0;border-left:0;border-top:1px solid var(--line)}
  .artist-facts>div:first-child{border-top:0}
  .visual-appearance-grid{grid-template-columns:1fr}
  .appearance-card{min-height:360px}
}


/* v0.8 — full master line-ups, Pioneer/DJsounds video, History */
.lineup-days{display:grid;gap:18px}
.lineup-day{border-top:1px solid var(--line);padding-top:16px}
.lineup-day-head{display:flex;justify-content:space-between;gap:20px;align-items:baseline;margin-bottom:10px}
.lineup-day-head strong{font-size:20px}
.lineup-day-head span{font-size:12px;color:#81818a}
.lineup-rows{display:grid}
.lineup-row{display:grid;grid-template-columns:minmax(180px,1.4fr) minmax(100px,1fr) auto;gap:16px;align-items:center;padding:10px 0;border-top:1px solid rgba(255,255,255,.06)}
.lineup-row>a{font-weight:800}
.lineup-detail{font-size:12px;color:#9999a2}
.lineup-confidence{font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:#8d8d96}
.lineup-confidence.verified{color:var(--cyan)}
.lineup-confidence.probable{color:#b7b7c0}
.video-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}
.video-card{border:1px solid var(--line);background:#0d0d12;min-width:0}
.video-frame{position:relative;aspect-ratio:16/9;background:#000}
.video-frame iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.video-body{padding:18px}
.video-body h3{margin:8px 0 10px;font-size:18px;line-height:1.25}
.video-artists{font-size:13px;line-height:1.6}
.video-artists a{color:var(--cyan)}
.history-page{padding-bottom:80px}
.history-section{max-width:900px;margin:80px 0 0}
.history-section p,.podcast-block p{max-width:820px;color:#c2c2c9;font-size:17px;line-height:1.78}
.history-section .kicker{margin-bottom:14px}
.podcast-block{max-width:900px;margin:80px 0;padding:28px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.podcast-block h2{font-size:clamp(28px,4vw,52px);line-height:1.05;margin:10px 0 16px}
.spotify-episode{width:100%;height:232px;border:0;margin-top:18px}
.history-sources{margin-top:80px;padding-top:24px;border-top:1px solid var(--line)}
.history-sources a{color:var(--cyan)}
@media(max-width:760px){
  .video-grid{grid-template-columns:1fr}
  .lineup-row{grid-template-columns:1fr;gap:4px}
  .lineup-confidence{margin-top:2px}
}


/* v0.8.2 — mobile navigation */
.mobile-menu-toggle{
  display:none;
  width:46px;
  height:46px;
  padding:0;
  border:1px solid var(--line);
  background:#0b0b0f;
  align-items:center;
  justify-content:center;
  flex-direction:column;
  gap:5px;
  cursor:pointer;
}
.mobile-menu-toggle span{
  width:20px;
  height:2px;
  background:#f2f2f4;
  display:block;
  transition:transform .2s ease, opacity .2s ease;
}
.mobile-menu-toggle[aria-expanded="true"] span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.mobile-menu-toggle[aria-expanded="true"] span:nth-child(2){opacity:0}
.mobile-menu-toggle[aria-expanded="true"] span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
.mobile-menu{
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
  background:#09090d;
}
.mobile-menu[hidden]{display:none}
.mobile-menu-inner{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:0;
  padding-top:8px;
  padding-bottom:8px;
}
.mobile-menu-inner a{
  min-height:52px;
  display:flex;
  align-items:center;
  padding:0 4px;
  border-bottom:1px solid rgba(255,255,255,.06);
  font-size:13px;
  font-weight:900;
  letter-spacing:.08em;
}
.mobile-menu-inner a:nth-child(odd){border-right:1px solid rgba(255,255,255,.06);padding-right:16px}
.mobile-menu-inner a:nth-child(even){padding-left:16px}
.mobile-menu-inner a.active{color:var(--cyan)}
@media(max-width:820px){
  .desktop-nav{display:none!important}
  .mobile-menu-toggle{display:flex}
  .nav-inner{min-height:68px}
  .brand img{max-width:150px}
  .nav{position:sticky;top:0;z-index:1000;background:#07070a}
  body.menu-open{overflow:hidden}
}
@media(max-width:420px){
  .mobile-menu-inner{grid-template-columns:1fr}
  .mobile-menu-inner a:nth-child(odd),
  .mobile-menu-inner a:nth-child(even){
    border-right:0;
    padding-left:0;
    padding-right:0;
  }
}


/* v0.8.4 — poster / archive lightbox */
.lightbox-image{cursor:zoom-in}
.lightbox{
  position:fixed;
  inset:0;
  z-index:5000;
  background:rgba(3,3,6,.96);
  display:grid;
  grid-template-columns:64px minmax(0,1fr) 64px;
  align-items:center;
  padding:28px;
}
.lightbox[hidden]{display:none}
body.lightbox-open{overflow:hidden}
.lightbox-figure{
  grid-column:2;
  margin:0;
  min-width:0;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
}
.lightbox-main{
  max-width:100%;
  max-height:calc(100vh - 120px);
  width:auto;
  height:auto;
  object-fit:contain;
}
.lightbox-caption{
  margin-top:14px;
  color:#c5c5cc;
  font-size:12px;
  line-height:1.5;
  text-align:center;
}
.lightbox-close{
  position:absolute;
  top:18px;
  right:18px;
  width:46px;
  height:46px;
  border:1px solid rgba(255,255,255,.2);
  background:#0b0b10;
  color:#fff;
  font-size:30px;
  line-height:1;
  cursor:pointer;
}
.lightbox-nav{
  width:46px;
  height:72px;
  border:1px solid rgba(255,255,255,.15);
  background:#0b0b10;
  color:#fff;
  font-size:42px;
  line-height:1;
  cursor:pointer;
}
.lightbox-prev{grid-column:1}
.lightbox-next{grid-column:3}
@media(max-width:700px){
  .lightbox{
    grid-template-columns:1fr;
    padding:64px 12px 20px;
  }
  .lightbox-figure{grid-column:1}
  .lightbox-main{max-height:calc(100vh - 130px)}
  .lightbox-nav{
    position:absolute;
    top:50%;
    transform:translateY(-50%);
    width:42px;
    height:58px;
    background:rgba(8,8,12,.78);
  }
  .lightbox-prev{left:8px}
  .lightbox-next{right:8px}
  .lightbox-close{top:10px;right:10px}
}


/* v0.9 — Press Archive */
.press-toolbar{display:flex;gap:10px;flex-wrap:wrap;margin-top:28px}
.press-page{padding-top:10px}
.press-group{margin-bottom:54px}
.press-group-head{display:flex;align-items:end;justify-content:space-between;border-bottom:1px solid var(--line);padding-bottom:12px;margin-bottom:18px}
.press-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
.press-edition-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.press-card{border:1px solid var(--line);background:#0a0a0e;display:flex;flex-direction:column;min-width:0}
.press-card.compact{display:grid;grid-template-columns:150px 1fr}
.press-thumb{width:100%;aspect-ratio:4/3;object-fit:cover;object-position:top;background:#17171c;border-bottom:1px solid var(--line)}
.press-card.compact .press-thumb,.press-card.compact .press-source-tile{height:100%;aspect-ratio:auto;border-bottom:0;border-right:1px solid var(--line)}
.press-source-tile{aspect-ratio:4/3;display:flex;flex-direction:column;justify-content:space-between;padding:18px;background:linear-gradient(145deg,#111118,#08080b);border-bottom:1px solid var(--line);text-transform:uppercase;letter-spacing:.08em}
.press-source-tile span{font-size:12px;color:var(--muted)}
.press-source-tile strong{font-size:36px;font-weight:900}
.press-card-body{padding:16px;display:flex;flex-direction:column;gap:8px;flex:1}
.press-meta{display:flex;gap:10px;flex-wrap:wrap;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--cyan)}
.press-meta span+span{color:var(--muted)}
.press-type{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:#df39ad}
.press-card h3{font-size:20px;line-height:1.08;margin:3px 0 8px}
.press-actions{margin-top:auto;display:flex;gap:14px;align-items:center;flex-wrap:wrap;font-size:11px;text-transform:uppercase;letter-spacing:.06em}
.press-actions a{color:inherit}
.press-action{appearance:none;border:1px solid var(--cyan);background:transparent;color:var(--cyan);font:inherit;padding:8px 10px;cursor:pointer;text-transform:uppercase;letter-spacing:.06em}
.radio-live{display:inline-flex;margin-left:10px;border:1px solid var(--cyan);color:var(--cyan);padding:2px 5px;font-size:9px;letter-spacing:.12em;vertical-align:middle}
@media(max-width:1050px){.press-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.press-edition-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){.press-grid,.press-edition-grid{grid-template-columns:1fr}.press-card.compact{grid-template-columns:110px 1fr}.press-card h3{font-size:18px}.press-toolbar{display:grid;grid-template-columns:1fr}.press-toolbar .select{width:100%}}


/* v0.9.1 — radio provider prewarm
   Keep the embedded provider rendered while the drawer is closed so Mixcloud
   and SoundCloud are ready when the visitor explicitly presses Play Radio. */





/* v0.9.2 — press source wordmarks */
.press-source-tile.press-brand{
  position:relative;
  min-height:230px;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:28px;
  overflow:hidden;
  background:
    linear-gradient(135deg,rgba(255,255,255,.018),rgba(255,255,255,0) 55%),
    #0d0d12;
  border-bottom:1px solid var(--line);
}
.press-brand-mark{
  position:relative;
  z-index:1;
  max-width:92%;
  text-align:center;
  color:#f4f4f6;
  font-size:clamp(24px,2.6vw,44px);
  line-height:.98;
  letter-spacing:-.04em;
  font-weight:900;
}
.press-brand-rule{
  position:absolute;
  left:28px;
  right:28px;
  bottom:27px;
  height:1px;
  background:rgba(255,255,255,.14);
}
.press-brand-guardian .press-brand-mark{
  font-family:Georgia,"Times New Roman",serif;
  font-weight:700;
  letter-spacing:-.06em;
  text-transform:none;
  font-size:clamp(30px,3vw,50px);
}
.press-brand-vpro .press-brand-mark{
  letter-spacing:.04em;
  font-weight:900;
}
.press-brand-ra .press-brand-mark{
  letter-spacing:.02em;
  font-weight:800;
}
.press-brand-gonzo .press-brand-mark{
  font-style:italic;
  letter-spacing:.01em;
}
.press-brand-demorgen .press-brand-mark{
  font-family:Georgia,"Times New Roman",serif;
  font-weight:700;
  letter-spacing:-.045em;
}
.press-brand-vrtnws .press-brand-mark{
  letter-spacing:.08em;
}
.press-card.compact .press-source-tile.press-brand{
  min-height:150px;
  padding:20px;
}
.press-card.compact .press-brand-mark{
  font-size:clamp(19px,2vw,30px);
}
@media(max-width:700px){
  .press-source-tile.press-brand{min-height:170px}
  .press-brand-mark{font-size:clamp(24px,8vw,38px)}
}


/* v0.10 — stories / voices */
.voice-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:16px;
}
.voice-card{
  border:1px solid var(--line);
  background:#0d0d12;
  overflow:hidden;
}
.voice-video{
  position:relative;
  display:block;
  aspect-ratio:16/9;
  overflow:hidden;
  background:#111;
}
.voice-video img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
  filter:grayscale(.25);
}
.voice-play{
  position:absolute;
  left:16px;
  bottom:16px;
  width:42px;
  height:42px;
  border-radius:50%;
  display:grid;
  place-items:center;
  background:#f4f4f6;
  color:#09090c;
  font-size:15px;
}
.voice-card-body{padding:18px}
.voice-card h3{margin:10px 0 12px;font-size:22px}
.voice-card h3 a{text-decoration:none;color:inherit}
.voice-card blockquote{
  margin:0 0 18px;
  font-size:19px;
  line-height:1.45;
  color:#e7e7eb;
  font-family:Georgia,"Times New Roman",serif;
}
.voice-topics{display:flex;flex-wrap:wrap;gap:7px;margin:0 0 18px}
.voice-topics span{
  border:1px solid #33333c;
  padding:5px 8px;
  font-size:9px;
  text-transform:uppercase;
  letter-spacing:.08em;
  color:#9d9da7;
}
.story-card{
  display:grid;
  grid-template-columns:minmax(180px,.35fr) 1fr;
  border:1px solid var(--line);
  color:inherit;
  text-decoration:none;
  min-height:310px;
  background:#0b0b10;
}
.story-year{
  display:flex;
  align-items:flex-end;
  padding:28px;
  font-size:clamp(70px,10vw,150px);
  line-height:.8;
  font-weight:900;
  color:#17171e;
  border-right:1px solid var(--line);
}
.story-card-body{
  display:flex;
  flex-direction:column;
  justify-content:center;
  padding:42px;
}
.story-card h2{font-size:clamp(42px,6vw,86px);line-height:.9;margin:12px 0 24px}
.story-people{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:30px}
.story-people span{border:1px solid #33333c;padding:7px 9px;font-size:10px;text-transform:uppercase;letter-spacing:.08em}
.story-hero{
  display:grid;
  grid-template-columns:1fr minmax(280px,.55fr);
  gap:60px;
  align-items:center;
  padding:72px 0 36px;
}
.story-poster{width:100%;max-height:520px;object-fit:contain;cursor:zoom-in}
.story-quote-list{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:16px;
}
.story-quote{
  border:1px solid var(--line);
  padding:28px;
  background:#0d0d12;
}
.story-quote-meta{
  display:flex;
  justify-content:space-between;
  gap:20px;
  margin-bottom:26px;
  text-transform:uppercase;
  font-size:10px;
  letter-spacing:.1em;
  color:#8e8e99;
}
.story-quote-meta a{color:var(--cyan);text-decoration:none}
.story-quote blockquote{
  margin:0 0 24px;
  font-family:Georgia,"Times New Roman",serif;
  font-size:clamp(24px,3vw,42px);
  line-height:1.2;
}
.set-youtube iframe{width:100%;aspect-ratio:16/9;border:0}
@media(max-width:900px){
  .voice-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .story-hero{grid-template-columns:1fr;gap:28px}
  .story-poster{max-height:420px}
}
@media(max-width:650px){
  .voice-grid,.story-quote-list{grid-template-columns:1fr}
  .story-card{grid-template-columns:1fr}
  .story-year{min-height:150px;border-right:0;border-bottom:1px solid var(--line)}
  .story-card-body{padding:28px}
}

/* v0.14 — archive cleanup */
.card img{
  object-fit:contain;
  object-position:center;
  padding:12px;
  background:#0d0d11;
}
.press-brand-logo{
  display:block;
  max-width:86%;
  max-height:125px;
  width:auto;
  height:auto;
  object-fit:contain;
}
.press-card.compact .press-brand-logo{
  max-width:80%;
  max-height:92px;
}
.press-brand-demorgen .press-brand-logo,
.press-brand-vrtnws .press-brand-logo{
  max-width:74%;
  max-height:90px;
}
.story-poster-tile{
  min-height:310px;
  display:grid;
  place-items:center;
  padding:24px;
  border-right:1px solid var(--line);
  background:#09090d;
  overflow:hidden;
}
.story-poster-tile img{
  display:block;
  width:100%;
  height:100%;
  max-height:360px;
  object-fit:contain;
}
.artists-intro{max-width:none}
@media(min-width:1000px){
  .artists-intro{white-space:nowrap}
}
@media(max-width:650px){
  .story-poster-tile{min-height:240px;border-right:0;border-bottom:1px solid var(--line)}
  .story-poster-tile img{max-height:300px}
}
.press-brand-guardian,
.press-brand-vpro,
.press-brand-gonzo,
.press-brand-demorgen,
.press-brand-vrtnws{background:#f5f5f3}
.press-brand-ra{background:#000}

@media(max-width:650px){
  
  
}

body{padding-bottom:178px}
@media(max-width:650px){body{padding-bottom:170px}}

/* v0.16 audio polish */
.set-provider{
  display:block;
  width:100%;
  max-width:none;
  border:0;
}
.set-provider.mixcloud{height:120px}
.set-provider.soundcloud{height:166px}
.embedded-player{
  width:100%;
  box-sizing:border-box;
}
.provider-badge{
  display:flex;
  align-items:center;
  justify-content:flex-start;
  min-width:120px;
}
.provider-badge img{
  display:block;
  width:auto;
  max-width:118px;
  height:22px;
  object-fit:contain;
  object-position:left center;
}
.provider-badge.soundcloud-badge img{
  height:26px;
  max-width:52px;
}
@media(max-width:700px){
  .provider-badge{min-width:48px}
  .provider-badge.mixcloud-badge img{height:18px;max-width:96px}
  .provider-badge.soundcloud-badge img{height:23px;max-width:46px}
}

/* v0.17 provider badge */
.provider-badge.youtube-badge{
  width:max-content;
  min-width:0;
  padding:3px 8px;
  border-radius:5px;
  background:#fff;
}
.provider-badge.youtube-badge img{
  height:24px;
  max-width:100px;
}
@media(max-width:700px){
  .provider-badge.youtube-badge img{height:20px;max-width:84px}
}



/* v0.20 — R2 archive, reactions, compact persistent radio */
.card img{object-fit:contain;padding:10px}
.reaction-bar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:22px 0}
.reaction-btn{min-width:58px;min-height:42px;border:1px solid #34343c;background:#111116;color:#c9c9cf;padding:7px 10px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:7px;font:inherit}
.reaction-btn:hover,.reaction-btn.reacted{border-color:var(--pink);color:#fff;background:rgba(223,57,173,.10)}
.reaction-emoji{font-size:20px;line-height:1}.reaction-count{font-size:11px!important;font-weight:800;color:#8d8d97}.reaction-btn.reacted .reaction-count{color:#fff}
.edition-reactions,.artist-reactions{margin-top:30px}
.archive-audio{width:100%}
.radio-window-controls{display:flex;gap:6px;align-items:center}.radio-window-controls button{width:30px;height:28px;border:1px solid #34343c;background:#111116;color:#aaa;cursor:pointer}.radio-window-controls button:hover{color:#fff;border-color:#666}
.radio-reopen{display:none;position:fixed;right:18px;bottom:18px;z-index:1001;border:1px solid #34343c;background:#09090c;color:var(--pink);font-size:10px;font-weight:900;letter-spacing:.12em;padding:11px 13px;cursor:pointer}
.archive-radio.is-minimized .radio-embed-wrap{display:none}.archive-radio.is-minimized .radio-panel{padding-bottom:10px}.archive-radio.is-minimized .radio-reactions{display:none}.archive-radio.is-minimized [data-radio-minimize]{display:none}
.archive-radio:not(.is-minimized) [data-radio-restore]{display:none}
.archive-radio.is-closed{background:transparent;border:0;box-shadow:none;pointer-events:none}.archive-radio.is-closed .radio-panel{display:none}.archive-radio.is-closed .radio-reopen{display:block;pointer-events:auto}
.archive-radio.is-minimized~*{}
.radio-reactions .reaction-bar{margin:8px 0 0}.radio-reactions .reaction-btn{min-width:45px;min-height:34px;padding:4px 7px}.radio-reactions .reaction-emoji{font-size:16px}.radio-reactions .reaction-count{font-size:10px!important}
body.radio-active{padding-bottom:230px}body.radio-active.radio-minimized{padding-bottom:105px}
@media(max-width:650px){body.radio-active{padding-bottom:225px}body.radio-active.radio-minimized{padding-bottom:100px}.archive-radio.is-minimized .radio-slogan{display:none}.radio-window-controls button{width:28px}.radio-reactions{overflow-x:auto}.radio-reactions .reaction-bar{flex-wrap:nowrap}}


/* Private archive statistics */
.stats-login{
  max-width:720px;
  border:1px solid rgba(255,255,255,.14);
  padding:28px;
  background:rgba(255,255,255,.025)
}
.stats-login label{
  display:block;
  font-size:.76rem;
  letter-spacing:.12em;
  text-transform:uppercase;
  margin-bottom:10px;
  opacity:.7
}
.stats-login-row{
  display:flex;
  gap:12px;
  align-items:stretch
}
.stats-login input{
  flex:1;
  min-width:0;
  background:#0d0d0d;
  color:#fff;
  border:1px solid rgba(255,255,255,.2);
  padding:14px 16px;
  font:inherit
}
.stats-status{
  min-height:1.3em;
  margin:12px 0 0;
  color:#ff7c7c
}
.stats-loading{
  padding:40px 0;
  opacity:.6
}
.stats-toolbar{
  display:flex;
  justify-content:space-between;
  gap:24px;
  align-items:end;
  margin-bottom:28px
}
.stats-title{
  font-size:clamp(2rem,5vw,4.5rem);
  margin:4px 0 0;
  line-height:.95
}
.stats-actions{
  display:flex;
  gap:10px;
  flex-wrap:wrap
}
.stats-actions .cta{
  background:none;
  color:inherit;
  cursor:pointer
}
.stats-cards{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:12px;
  margin-bottom:32px
}
.stats-cards article{
  border:1px solid rgba(255,255,255,.12);
  padding:20px;
  min-height:120px;
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  background:rgba(255,255,255,.025)
}
.stats-cards span{
  font-size:.76rem;
  text-transform:uppercase;
  letter-spacing:.1em;
  opacity:.65
}
.stats-cards strong{
  font-size:clamp(2rem,5vw,4rem);
  line-height:1
}
.stats-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:16px;
  margin-bottom:16px
}
.stats-panel{
  border:1px solid rgba(255,255,255,.12);
  padding:22px;
  background:rgba(255,255,255,.018)
}
.stats-table{margin-top:14px}
.stats-row{
  display:grid;
  grid-template-columns:28px minmax(0,1fr) auto;
  gap:10px;
  padding:10px 0;
  border-bottom:1px solid rgba(255,255,255,.08);
  align-items:center
}
.stats-row:last-child{border-bottom:0}
.stats-rank{opacity:.38}
.stats-label{
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis
}
.stats-empty{
  padding:18px 0;
  opacity:.45
}
.stats-daily{margin-bottom:16px}
.stats-daily-list{margin-top:16px}
.stats-daily-list>div{
  display:grid;
  grid-template-columns:105px minmax(0,1fr) 60px;
  gap:12px;
  align-items:center;
  padding:7px 0
}
.stats-daily-list b{
  height:8px;
  background:currentColor;
  opacity:.35;
  width:var(--w);
  min-width:4px
}
.stats-daily-list strong{text-align:right}
.stats-recent{
  margin-top:14px;
  overflow:auto
}
.stats-recent>div{
  display:grid;
  grid-template-columns:165px 150px 90px minmax(140px,1fr);
  gap:12px;
  padding:9px 0;
  border-bottom:1px solid rgba(255,255,255,.08);
  font-size:.86rem
}
.stats-recent time{opacity:.5}
.stats-recent span{opacity:.72}
.stats-cloudflare{
  margin:20px 0 0;
  opacity:.5;
  font-size:.86rem
}
@media(max-width:900px){
  .stats-cards{grid-template-columns:repeat(2,minmax(0,1fr))}
  .stats-grid{grid-template-columns:1fr}
  .stats-toolbar{
    align-items:flex-start;
    flex-direction:column
  }
  .stats-recent>div{
    grid-template-columns:145px 125px 75px minmax(120px,1fr)
  }
}
@media(max-width:560px){
  .stats-login-row{flex-direction:column}
  .stats-cards{grid-template-columns:1fr 1fr}
  .stats-cards article{
    min-height:100px;
    padding:16px
  }
  .stats-daily-list>div{
    grid-template-columns:88px minmax(0,1fr) 44px
  }
  .stats-recent>div{
    grid-template-columns:135px 115px 70px 160px
  }
}


/* v0.21 — Archive source badge */
.archive-provider-badge{
  min-width:116px;
}
.archive-provider-badge img{
  height:32px;
  max-width:116px;
}
@media(max-width:700px){
  .archive-provider-badge{min-width:72px}
  .archive-provider-badge img{height:28px;max-width:96px}
}

/* v0.21 — Custom Archive player */
.embedded-player:has(.archive-deck){
  border:0;
  background:transparent;
  padding:0;
}
.archive-deck{
  position:relative;
  display:grid;
  grid-template-columns:180px 92px minmax(0,1fr) 180px;
  gap:28px;
  align-items:center;
  width:100%;
  min-height:220px;
  padding:28px;
  box-sizing:border-box;
  border:1px solid var(--line);
  background:linear-gradient(100deg,#08090c 0%,#0a0b0f 45%,#0d0e12 100%);
}
.archive-deck audio{display:none}
.archive-deck-art{
  position:relative;
  height:164px;
  overflow:hidden;
  border:1px solid #292a31;
  background:#090a0d;
}
.archive-deck-art>img:first-child{
  width:100%;
  height:100%;
  object-fit:cover;
  filter:grayscale(1) contrast(1.08) brightness(.72);
}
.archive-deck-badge{
  position:absolute;
  left:12px;
  bottom:12px;
  width:112px;
  height:auto;
  box-shadow:0 4px 20px rgba(0,0,0,.45);
}
.archive-deck-play{
  width:82px;
  height:82px;
  border-radius:50%;
  border:2px solid var(--pink);
  background:#0a0b0e;
  color:#fff;
  cursor:pointer;
  display:grid;
  place-items:center;
  box-shadow:0 0 22px rgba(223,57,173,.12);
}
.archive-deck-play span{
  font-size:27px;
  line-height:1;
  transform:translateX(2px);
}
.archive-deck-play.is-playing span{
  transform:none;
  font-size:23px;
  letter-spacing:-4px;
}
.archive-deck-play:hover{
  background:rgba(223,57,173,.08);
}
.archive-deck-main{min-width:0}
.archive-deck-title{
  font-size:clamp(24px,3vw,38px);
  line-height:1;
  font-weight:800;
  color:#f4f4f5;
}
.archive-deck-meta{
  margin-top:11px;
  color:#858690;
  font-size:15px;
  letter-spacing:.02em;
}
.archive-deck-progress-row{margin-top:30px}
.archive-deck-progress,
.archive-deck-volume input{
  appearance:none;
  -webkit-appearance:none;
  width:100%;
  height:4px;
  border-radius:999px;
  background:linear-gradient(90deg,var(--pink) 0 0,#32343b 0 100%);
  cursor:pointer;
}
.archive-deck-progress::-webkit-slider-thumb,
.archive-deck-volume input::-webkit-slider-thumb{
  appearance:none;
  -webkit-appearance:none;
  width:16px;
  height:16px;
  border-radius:50%;
  border:0;
  background:var(--pink);
}
.archive-deck-progress::-moz-range-thumb,
.archive-deck-volume input::-moz-range-thumb{
  width:16px;
  height:16px;
  border-radius:50%;
  border:0;
  background:var(--pink);
}
.archive-deck-times{
  display:flex;
  justify-content:space-between;
  margin-top:9px;
  color:#aaaab2;
  font-variant-numeric:tabular-nums;
  font-size:13px;
}
.archive-deck-volume{
  display:grid;
  grid-template-columns:24px minmax(0,1fr);
  gap:12px;
  align-items:center;
}
.archive-deck-volume span{font-size:18px}
.archive-deck-volume input{height:4px}

@media(max-width:900px){
  .archive-deck{
    grid-template-columns:140px 70px minmax(0,1fr);
  }
  .archive-deck-art{height:132px}
  .archive-deck-play{width:64px;height:64px}
  .archive-deck-volume{
    grid-column:3;
    width:170px;
    justify-self:end;
  }
}
@media(max-width:620px){
  .archive-deck{
    grid-template-columns:92px 56px minmax(0,1fr);
    gap:14px;
    min-height:0;
    padding:16px;
  }
  .archive-deck-art{height:92px}
  .archive-deck-badge{width:70px;left:6px;bottom:6px}
  .archive-deck-play{width:50px;height:50px}
  .archive-deck-play span{font-size:20px}
  .archive-deck-title{font-size:20px}
  .archive-deck-meta{font-size:11px;margin-top:6px}
  .archive-deck-progress-row{margin-top:18px}
  .archive-deck-volume{display:none}
}

/* v0.21 — Privacy and consent */
.footer-links{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:18px;
  flex-wrap:wrap;
}
.footer-links button{
  appearance:none;
  border:0;
  padding:0;
  background:transparent;
  color:inherit;
  font:inherit;
  cursor:pointer;
  text-decoration:underline;
}
.consent-backdrop{
  position:fixed;
  inset:0;
  z-index:3000;
  display:flex;
  align-items:flex-end;
  justify-content:center;
  padding:24px;
  background:rgba(0,0,0,.58);
  box-sizing:border-box;
}
.consent-panel{
  width:min(760px,100%);
  padding:28px;
  border:1px solid #363740;
  background:#0b0c10;
  box-shadow:0 22px 80px rgba(0,0,0,.55);
}
.consent-panel h2{
  margin:5px 0 10px;
  font-size:clamp(28px,5vw,48px);
}
.consent-panel p{
  margin:0;
  max-width:680px;
  color:#a7a8b0;
  line-height:1.55;
}
.consent-actions{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  margin-top:24px;
}
.consent-actions button,
.external-media-blocked button{
  min-height:44px;
  border:1px solid #3b3c45;
  background:#111217;
  color:#e7e7e9;
  padding:10px 15px;
  font:inherit;
  font-size:12px;
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.06em;
  cursor:pointer;
}
.consent-actions .consent-primary{
  border-color:var(--pink);
  background:var(--pink);
  color:#08080a;
}
.consent-privacy-link{
  display:inline-block;
  margin-top:18px;
  color:#aaaab2;
  font-size:12px;
}
.external-media-blocked{
  min-height:130px;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  justify-content:center;
  gap:8px;
  padding:24px;
  border:1px solid var(--line);
  background:#0b0c10;
  box-sizing:border-box;
}
.external-media-blocked strong{
  font-size:20px;
}
.external-media-blocked span{
  color:#8e8f98;
}
.privacy-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:1px;
  padding-bottom:80px;
  background:var(--line);
  border:1px solid var(--line);
}
.privacy-card{
  background:var(--bg);
  padding:28px;
}
.privacy-card h2{
  margin:0 0 12px;
  font-size:24px;
}
.privacy-card p{
  color:#a2a2aa;
  line-height:1.65;
  margin:0;
}
.privacy-settings-button{
  margin-top:20px;
  background:transparent;
  color:inherit;
  cursor:pointer;
}
@media(max-width:700px){
  .consent-backdrop{padding:12px}
  .consent-panel{padding:22px}
  .consent-actions{display:grid}
  .consent-actions button{width:100%}
  .footer-inner{align-items:flex-start}
  .footer-links{justify-content:flex-start}
  .privacy-grid{grid-template-columns:1fr}
}

/* v0.22 canonical artist cleanup */
.lineup-artist-cell{display:flex;flex-direction:column;align-items:flex-start;gap:3px;min-width:0}
.lineup-billing{font-weight:700;color:var(--text)}
.lineup-canonical-links{font-size:11px;color:var(--muted);letter-spacing:.02em}
.lineup-canonical-links a{color:inherit;text-decoration:none}
.lineup-canonical-links a:hover{color:var(--pink)}

/* v0.23 share links */
.detail-actions{display:flex;align-items:center;gap:10px;margin:20px 0 8px}
.set-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.share-button{
  appearance:none;background:transparent;color:var(--text);border:1px solid rgba(255,255,255,.25);
  border-radius:999px;padding:10px 16px;font:inherit;font-size:12px;font-weight:700;
  letter-spacing:.08em;text-transform:uppercase;cursor:pointer
}
.share-button:hover,.share-button:focus-visible{border-color:var(--text);outline:none}

/* Offline v0.24 preview — History oral-history modules + agreed data refresh.
   Uses existing palette variables only; no new visual colour system. */
.highlight-names a:hover{color:var(--cyan)}
.lineup-cancelled{display:inline-block;margin-left:10px;color:var(--muted);font-size:11px;font-style:normal;text-transform:uppercase;letter-spacing:.08em}
.set-part-label,.set-part-heading{color:var(--muted);font-size:.55em;font-weight:700;letter-spacing:.04em;text-transform:uppercase}
.row .artist small{color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.06em}
.history-listen{max-width:900px;margin:80px 0;padding:28px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.history-listen p{max-width:820px;color:#c2c2c9;font-size:17px;line-height:1.78}
.history-listen h2{font-size:clamp(28px,4vw,52px);line-height:1.05;margin:10px 0 16px}
.organiser-module{max-width:900px;margin:44px 0 52px;padding:28px;border:1px solid var(--line);background:var(--panel)}
.organiser-module h3{font-size:clamp(28px,4vw,48px);line-height:1;margin:10px 0 8px}
.organiser-subtitle{color:var(--muted)!important;margin-bottom:22px}
.organiser-video{margin:22px 0 24px}
.organiser-quotes{max-width:800px}
.organiser-quotes blockquote{margin:0;padding:18px 0;border-top:1px solid var(--line);font-size:20px;line-height:1.55;color:var(--text)}
.organiser-quotes blockquote:first-child{border-top:0;padding-top:0}
.translation-note{margin:18px 0 0!important;color:var(--muted)!important;font-size:12px!important;text-transform:uppercase;letter-spacing:.08em}
/* The radio reuses the same Archive deck, only scaled to fit its existing fixed panel. */
.radio-embed-wrap .archive-deck{grid-template-columns:92px 52px minmax(0,1fr) 120px;gap:14px;min-height:112px;padding:12px}
.radio-embed-wrap .archive-deck-art{height:88px}
.radio-embed-wrap .archive-deck-badge{width:64px;left:6px;bottom:6px}
.radio-embed-wrap .archive-deck-play{width:46px;height:46px}
.radio-embed-wrap .archive-deck-play span{font-size:19px}
.radio-embed-wrap .archive-deck-title{font-size:18px}
.radio-embed-wrap .archive-deck-meta{font-size:10px;margin-top:5px}
.radio-embed-wrap .archive-deck-progress-row{margin-top:12px}
.radio-embed-wrap .archive-deck-times{font-size:10px;margin-top:5px}
.radio-embed-wrap .archive-deck-volume{grid-template-columns:18px minmax(0,1fr);gap:8px}
body.radio-active{padding-bottom:335px}
@media(max-width:700px){
  .organiser-module{padding:20px;margin:34px 0 42px}
  .organiser-quotes blockquote{font-size:17px}
  .radio-embed-wrap .archive-deck{grid-template-columns:76px 44px minmax(0,1fr);gap:10px;padding:10px}
  .radio-embed-wrap .archive-deck-art{height:72px}
  .radio-embed-wrap .archive-deck-play{width:40px;height:40px}
  .radio-embed-wrap .archive-deck-volume{display:none}
  .radio-embed-wrap .archive-deck-title{font-size:15px}
  body.radio-active{padding-bottom:320px}
}
.set-card-part{color:var(--muted);font-size:11px;letter-spacing:.07em;text-transform:uppercase}

/* v0.25: visible archive-player backend errors instead of silent failures */
.archive-deck-error{grid-column:1/-1;margin-top:2px;padding:10px 12px;border:1px solid rgba(255,255,255,.16);font-size:12px;line-height:1.45;color:var(--muted);background:rgba(255,255,255,.035)}
.archive-deck-error[hidden]{display:none}


/* v0.27 — homepage voice slider + restored story video embeds */
.home-voice-slider{position:relative;overflow:hidden;padding-left:92px;padding-right:92px}
.home-voice-content{transition:opacity .18s ease,transform .18s ease}
.home-voice-content.is-changing{opacity:0;transform:translateY(4px)}
.home-voice-meta{margin-top:28px}
.home-voice-nav{position:absolute;top:50%;transform:translateY(-50%);width:50px;height:50px;border-radius:50%;border:1px solid var(--cyan);background:rgba(8,8,12,.72);color:var(--cyan);font:300 35px/1 Arial,sans-serif;display:grid;place-items:center;cursor:pointer;z-index:2;transition:border-color .18s ease,background .18s ease,transform .18s ease;box-shadow:0 0 18px rgba(0,229,255,.08)}
.home-voice-nav:hover,.home-voice-nav:focus-visible{background:rgba(0,229,255,.07);outline:none;box-shadow:0 0 22px rgba(0,229,255,.16)}
.home-voice-nav:active{transform:translateY(-50%) scale(.96)}
.home-voice-prev{left:24px}.home-voice-next{right:24px}
.story-video{margin:-2px -2px 22px;aspect-ratio:16/9;background:#050506;overflow:hidden}
.story-video iframe{width:100%;height:100%;border:0;display:block}
@media(max-width:700px){
  .home-voice-slider{padding:72px 30px 30px}
  .home-voice-nav{top:24px;transform:none;width:40px;height:40px;font-size:29px}
  .home-voice-nav:active{transform:scale(.96)}
  .home-voice-prev{left:30px}.home-voice-next{left:80px;right:auto}
}
