:root{
  --accent:#b44cff;
  --accent-strong:#8f2fff;
  --accent-glow:#7c2cff;
  --bg:#06050a;
  --panel:#0b0911;
  --panel-2:#0f0b15;
  --text:#f7f5fa;
  --muted:#aaa2b1;
  --faint:#756e7d;
  --green:#22e780;
  --border:color-mix(in srgb,var(--accent) 36%, transparent);
  --shadow:0 18px 60px rgba(0,0,0,.42),0 0 24px color-mix(in srgb,var(--accent) 10%, transparent);
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  min-height:100vh;
  background:
    radial-gradient(circle at 4% 10%,color-mix(in srgb,var(--accent-glow) 16%, transparent),transparent 27%),
    radial-gradient(circle at 98% 72%,color-mix(in srgb,var(--accent) 12%, transparent),transparent 32%),
    #050409;
  color:var(--text);
  font-family:Inter,system-ui,sans-serif;
  overflow-x:hidden;
  padding-bottom:124px;
  transition:background .45s ease;
}
button,input{font:inherit}
button{cursor:pointer}
.ambient{position:fixed;z-index:-1;pointer-events:none;border-radius:50%;filter:blur(120px);opacity:.14}
.ambient-left{width:420px;height:420px;left:-180px;top:-80px;background:var(--accent-glow)}
.ambient-right{width:500px;height:500px;right:-200px;bottom:-160px;background:var(--accent)}

.topbar{
  width:min(1510px,calc(100% - 58px));
  height:116px;
  margin:auto;
  display:flex;align-items:center;justify-content:space-between;
}
.brand{position:relative;display:flex;align-items:center;text-decoration:none;color:white;min-width:260px}
.brand-ring{
  position:absolute;left:0;width:94px;height:86px;border:3px solid var(--accent);border-right-color:transparent;border-radius:50%;
  filter:drop-shadow(0 0 12px color-mix(in srgb,var(--accent) 75%,transparent));
}
.brand-copy{position:relative;margin-left:26px;z-index:1}
.brand-title{font:800 2.55rem/.9 Orbitron,Inter,sans-serif;font-style:italic;letter-spacing:-.05em}
.brand-title b{color:var(--accent);text-shadow:0 0 15px color-mix(in srgb,var(--accent) 60%,transparent)}
.brand-sub{display:block;margin:7px 0 0 72px;font-size:.66rem;font-weight:800;letter-spacing:.38em}

.header-actions{display:flex;align-items:center;gap:18px}
.online-pill{display:flex;align-items:center;gap:9px;padding:11px 14px;border:1px solid rgba(255,255,255,.08);border-radius:999px;background:rgba(255,255,255,.02);font-size:.7rem;font-weight:800;color:#aaa1b1}
.online-dot,.health-dot,.green-dot{width:8px;height:8px;border-radius:50%;background:var(--green);box-shadow:0 0 10px var(--green)}
.listen-btn{
  border:1px solid color-mix(in srgb,var(--accent) 85%,white 15%);
  color:white;background:linear-gradient(180deg,color-mix(in srgb,var(--accent) 75%,#3b0a55),color-mix(in srgb,var(--accent) 45%,#22042e));
  padding:16px 26px;border-radius:15px;font-weight:800;box-shadow:0 0 22px color-mix(in srgb,var(--accent) 35%,transparent)
}

.shell{width:min(1510px,calc(100% - 58px));margin:auto}
.panel{
  background:linear-gradient(180deg,rgba(13,10,20,.94),rgba(7,6,11,.97));
  border:1px solid var(--border);border-radius:20px;
  box-shadow:var(--shadow);
  transition:border-color .35s ease,box-shadow .35s ease;
}
.top-grid{display:grid;grid-template-columns:minmax(0,2.2fr) minmax(330px,.82fr);gap:28px}
.now-card{display:grid;grid-template-columns:390px 1fr;gap:32px;padding:28px;min-height:500px}
.cover-frame{width:100%;aspect-ratio:1;border-radius:18px;overflow:hidden;border:1px solid rgba(255,255,255,.08);box-shadow:0 20px 45px rgba(0,0,0,.38)}
.cover-frame img{width:100%;height:100%;object-fit:cover;display:block;transition:opacity .25s ease,transform .25s ease}
.now-copy{display:flex;flex-direction:column;justify-content:center;min-width:0}
.badges{display:flex;gap:9px}
.badge{padding:7px 12px;border-radius:999px;font-size:.68rem;font-weight:800;letter-spacing:.03em}
.now-badge{background:color-mix(in srgb,var(--accent) 10%,transparent);border:1px solid color-mix(in srgb,var(--accent) 25%,transparent);color:var(--accent)}
.mode-badge{background:#210a15;border:1px solid rgba(255,46,88,.35)}
.now-copy h1{margin:22px 0 8px;font:700 clamp(3rem,4vw,4.9rem)/.95 "Space Grotesk",sans-serif;letter-spacing:-.045em;overflow-wrap:anywhere}
.now-copy>p{margin:0;color:var(--accent);font-size:1.55rem;font-weight:600}
.dj-line{margin-top:24px;color:#c6bfcb;font-size:.93rem}
.dj-line strong{color:var(--accent)}
.waveform{display:flex;align-items:center;gap:4px;overflow:hidden}
.main-wave{height:60px;margin-top:24px}
.waveform i{display:block;width:4px;height:12px;border-radius:99px;background:linear-gradient(180deg,color-mix(in srgb,var(--accent) 90%,white 10%),var(--accent-strong));box-shadow:0 0 8px color-mix(in srgb,var(--accent) 45%,transparent);opacity:.88}
body.is-playing .waveform i{animation:wave 1s ease-in-out infinite}
body.is-playing .waveform i:nth-child(2n){animation-delay:-.18s}
body.is-playing .waveform i:nth-child(3n){animation-delay:-.37s}
body:not(.is-playing) .waveform i:nth-child(4n+1){height:20px}
body:not(.is-playing) .waveform i:nth-child(4n+2){height:32px}
body:not(.is-playing) .waveform i:nth-child(4n+3){height:15px}
body:not(.is-playing) .waveform i:nth-child(4n){height:25px}
@keyframes wave{0%,100%{height:10px}50%{height:48px}}

.progress-line{display:grid;grid-template-columns:auto 1fr auto auto;align-items:center;gap:12px;color:#bfb6c7;font-size:.8rem}
.progress{height:7px;border-radius:99px;background:#1a1621;overflow:hidden;box-shadow:inset 0 1px 3px rgba(0,0,0,.45)}
.progress span{display:block;width:0;height:100%;background:linear-gradient(90deg,var(--accent-strong),var(--accent));box-shadow:0 0 8px color-mix(in srgb,var(--accent) 50%,transparent)}
.live-indicator{white-space:nowrap}.live-indicator b{display:inline-block;width:7px;height:7px;border-radius:50%;background:#ff3453;margin-left:4px}
.stats-line{display:grid;grid-template-columns:1.2fr 1fr 1fr .9fr;align-items:center;gap:14px;margin-top:24px;padding-top:20px;border-top:1px solid rgba(255,255,255,.05)}
.mode-status{display:flex;align-items:center;gap:8px;color:var(--accent);font-weight:800}.mode-status span{width:8px;height:8px;border-radius:50%;background:var(--accent);box-shadow:0 0 8px var(--accent)}
.stat-block{text-align:center}.stat-block strong{display:block;font-size:1.32rem}.stat-block span{display:block;font-size:.68rem;color:#a89eaf;letter-spacing:.05em;margin-top:4px}
.health{display:flex;align-items:center;justify-content:flex-end;gap:8px;font-size:.68rem;color:#aaa0af;font-weight:800}

.onair-card{padding:28px;text-align:center;min-height:500px}
.onair-title{text-align:left;color:var(--accent);font-weight:800}
.dj-photo-shell{position:relative;width:220px;height:220px;margin:26px auto 12px}
.dj-photo-glow{position:absolute;inset:18px;border-radius:50%;background:var(--accent);filter:blur(30px);opacity:.28}
.dj-photo{position:relative;z-index:2;width:100%;height:100%;object-fit:cover;border-radius:50%;border:1px solid var(--accent);box-shadow:0 0 24px color-mix(in srgb,var(--accent) 35%,transparent);transition:.3s ease}
.onair-card h2{font:700 2rem "Space Grotesk",sans-serif;margin:9px 0 13px}
.host-pill{display:inline-flex;align-items:center;gap:9px;padding:8px 16px;border-radius:999px;border:1px solid color-mix(in srgb,var(--accent) 28%,transparent);background:color-mix(in srgb,var(--accent) 9%,transparent);font-weight:800;font-size:.78rem}.host-pill span:first-child{width:8px;height:8px;border-radius:50%;background:var(--accent)}
.onair-card p{color:#b4acb8;line-height:1.55;max-width:250px;margin:14px auto}.dj-tagline{margin:12px auto 0;color:var(--accent);font-size:.78rem;font-weight:850;letter-spacing:.04em;max-width:260px}
.social-row{display:flex;justify-content:center;gap:20px;margin-top:14px}.social-row button{border:0;background:transparent;color:var(--accent);font-size:1.25rem}

.recent-panel{margin-top:18px;padding:18px 22px 20px}
.section-head{display:flex;justify-content:space-between;align-items:center}.section-head h3{margin:0;color:var(--accent);font-size:.95rem}.section-head span{color:var(--accent);font-weight:800;font-size:.72rem}
.recent-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-top:16px}
.recent-item{display:grid;grid-template-columns:76px 1fr;gap:13px;align-items:center;min-height:98px;padding:11px 12px;border:1px solid rgba(255,255,255,.05);border-radius:14px;background:rgba(255,255,255,.018)}
.recent-item.active{border-color:var(--accent);box-shadow:0 0 16px color-mix(in srgb,var(--accent) 11%,transparent)}
.recent-item img{width:76px;height:76px;object-fit:cover;border-radius:10px}
.recent-copy{min-width:0}.recent-copy strong,.recent-copy span{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.recent-copy strong{font-size:.84rem}.recent-copy span{font-size:.75rem;color:#afa5b3;margin-top:5px}.recent-copy small{display:block;color:var(--accent);font-size:.67rem;margin-top:12px}

.theme-section{margin-top:20px;padding-bottom:14px}
.theme-heading{text-align:center;color:var(--accent);font-weight:800;font-size:.92rem;letter-spacing:.03em}
.theme-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:10px;margin-top:10px}
.theme-card{border:1px solid color-mix(in srgb,var(--card-color) 55%,transparent);border-radius:12px;background:linear-gradient(180deg,color-mix(in srgb,var(--card-color) 9%,#08060d),#08060d);padding:10px;transition:transform .15s ease,box-shadow .15s ease;cursor:pointer}
.theme-card:hover{transform:translateY(-2px);box-shadow:0 0 18px color-mix(in srgb,var(--card-color) 20%,transparent)}
.theme-card-visual{height:90px;border-radius:9px;background:radial-gradient(circle at 30% 35%,color-mix(in srgb,var(--card-color) 50%,transparent),transparent 34%),#09070d;display:grid;place-items:center;font-size:2rem;color:var(--card-color);overflow:hidden}.theme-card-visual img{width:72px;height:72px;border-radius:50%;object-fit:cover;border:2px solid var(--card-color);box-shadow:0 0 18px color-mix(in srgb,var(--card-color) 35%,transparent)}
.theme-card-footer{display:flex;justify-content:space-between;align-items:center;margin-top:9px}.theme-card-footer strong{font-size:.8rem}.theme-card-footer span{font-size:.62rem;color:var(--card-color);padding:4px 7px;border-radius:999px;background:color-mix(in srgb,var(--card-color) 10%,transparent)}
.theme-caption{text-align:center;color:var(--accent);margin-top:8px;font-weight:700;font-size:.78rem}

.player-dock{
  position:fixed;left:50%;bottom:40px;transform:translateX(-50%);z-index:50;
  width:min(1550px,calc(100% - 26px));height:90px;padding:10px 16px;
  display:grid;grid-template-columns:70px minmax(190px,1fr) auto 205px auto auto auto 210px 125px auto auto auto;gap:14px;align-items:center;
  border-color:color-mix(in srgb,var(--accent) 70%,transparent);
  box-shadow:0 0 28px color-mix(in srgb,var(--accent) 18%,transparent),0 12px 40px rgba(0,0,0,.48)
}
.player-dock>img{width:66px;height:66px;border-radius:10px;object-fit:cover}
.mini-meta{min-width:0}.mini-meta strong,.mini-meta span,.mini-meta small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mini-meta strong{font-size:1rem}.mini-meta span{color:var(--accent);font-size:.82rem;margin-top:3px}.mini-meta small{color:var(--accent);font-size:.65rem;margin-top:6px}
.heart-btn,.skip-btn,.dock-icon{border:0;background:transparent;color:white;font-size:1.15rem}.heart-btn{color:var(--accent);font-size:1.35rem}
.vol{display:flex;align-items:center;gap:10px}.vol input{width:100%;accent-color:var(--accent)}
.main-play{width:62px;height:62px;border-radius:50%;border:1px solid color-mix(in srgb,var(--accent) 80%,white 20%);background:radial-gradient(circle at 50% 38%,color-mix(in srgb,var(--accent) 90%,white 10%),color-mix(in srgb,var(--accent) 45%,#21052c));color:white;font-size:1.18rem;box-shadow:0 0 20px color-mix(in srgb,var(--accent) 35%,transparent)}
.dock-wave{height:40px;justify-content:center}
.dock-listeners{display:flex;align-items:center;gap:10px;border-left:1px solid rgba(255,255,255,.07);padding-left:18px}.dock-listeners strong,.dock-listeners small{display:block}.dock-listeners small{font-size:.62rem;color:#9e94a4}

footer{position:fixed;left:0;right:0;bottom:0;height:34px;padding:0 24px;display:flex;align-items:center;justify-content:space-between;background:#050409;border-top:1px solid rgba(255,255,255,.04);color:#7d7483;font-size:.66rem;z-index:45}footer b{color:#3d7cff}

.loading{color:#aaa1af}

.track-changing #trackTitle,.track-changing #trackArtist,.track-changing #miniTitle,.track-changing #miniArtist{opacity:.1;transform:translateY(4px)}
#trackTitle,#trackArtist,#miniTitle,#miniArtist,#coverArt,#miniCover{transition:opacity .25s ease,transform .25s ease}

@media(max-width:1150px){
  .top-grid{grid-template-columns:1fr}
  .theme-grid{grid-template-columns:repeat(3,1fr)}
  .player-dock{grid-template-columns:58px minmax(0,1fr) auto auto auto 120px}
  .player-dock>img{width:54px;height:54px}
  .heart-btn,.vol,.skip-btn:first-of-type,.skip-btn:last-of-type,.dock-icon{display:none}
}
@media(max-width:760px){
  body{padding-bottom:104px}
  .topbar,.shell{width:calc(100% - 20px)}
  .topbar{height:88px}
  .brand{transform:scale(.78);transform-origin:left center;min-width:190px}
  .online-pill{display:none}.listen-btn{padding:12px 14px;font-size:.72rem}
  .now-card{grid-template-columns:1fr;padding:18px}.cover-column{max-width:330px;margin:auto}
  .now-copy h1{font-size:2.55rem}.now-copy>p{font-size:1.2rem}
  .stats-line{grid-template-columns:1fr 1fr}.health{grid-column:1/-1;justify-content:flex-start}
  .recent-grid{grid-template-columns:1fr}.theme-grid{grid-template-columns:repeat(2,1fr)}
  .player-dock{height:72px;bottom:32px;grid-template-columns:50px minmax(0,1fr) auto;padding:8px 10px}.player-dock>img{width:48px;height:48px}.dock-wave,.dock-listeners{display:none}
  footer{font-size:.58rem;padding:0 8px}.footer div:first-child{display:none}
}

/* v6 — resilient live-player controls */
.mute-btn,.reconnect-btn{
  border:0;background:transparent;color:white;display:grid;place-items:center;
}
.mute-btn{font-size:1rem;padding:4px;border-radius:8px}
.mute-btn:hover,.reconnect-btn:hover{color:var(--accent);background:color-mix(in srgb,var(--accent) 9%,transparent)}
.reconnect-btn{width:38px;height:38px;border-radius:50%;font-size:1.3rem;border:1px solid rgba(255,255,255,.08)}
.stream-state{
  display:flex;align-items:center;justify-content:center;gap:7px;white-space:nowrap;
  min-width:112px;padding:8px 11px;border-radius:999px;border:1px solid rgba(255,255,255,.08);
  background:rgba(255,255,255,.025);font-size:.62rem;font-weight:800;letter-spacing:.045em;color:#aaa2b1;
}
.stream-state-dot{width:7px;height:7px;border-radius:50%;background:#7c7482;box-shadow:0 0 0 transparent}
.stream-state[data-state="playing"]{color:var(--green);border-color:color-mix(in srgb,var(--green) 28%,transparent)}
.stream-state[data-state="playing"] .stream-state-dot{background:var(--green);box-shadow:0 0 9px color-mix(in srgb,var(--green) 60%,transparent)}
.stream-state[data-state="connecting"],.stream-state[data-state="buffering"],.stream-state[data-state="reconnecting"]{color:var(--accent);border-color:color-mix(in srgb,var(--accent) 30%,transparent)}
.stream-state[data-state="connecting"] .stream-state-dot,.stream-state[data-state="buffering"] .stream-state-dot,.stream-state[data-state="reconnecting"] .stream-state-dot{background:var(--accent);animation:statePulse 1s ease-in-out infinite;box-shadow:0 0 9px color-mix(in srgb,var(--accent) 55%,transparent)}
.stream-state[data-state="offline"],.stream-state[data-state="error"]{color:#ff627c;border-color:rgba(255,80,110,.28)}
.stream-state[data-state="offline"] .stream-state-dot,.stream-state[data-state="error"] .stream-state-dot{background:#ff3b5b}
@keyframes statePulse{50%{opacity:.25;transform:scale(.72)}}
body.is-buffering .main-play{animation:playerPulse 1.1s ease-in-out infinite}
@keyframes playerPulse{50%{box-shadow:0 0 35px color-mix(in srgb,var(--accent) 55%,transparent)}}

/* Replace the old skip-control spacing with meaningful live-stream controls. */
.player-dock{
  grid-template-columns:70px minmax(190px,1fr) auto minmax(150px,205px) auto auto auto 210px 125px auto auto auto;
}

@media(max-width:1150px){
  .player-dock{grid-template-columns:58px minmax(0,1fr) auto auto auto 120px}
  .vol,.stream-state,.reconnect-btn,.dock-icon{display:none}
}
@media(max-width:760px){
  .player-dock{grid-template-columns:50px minmax(0,1fr) auto}
  .stream-state,.reconnect-btn{display:none}
}

/* v6.1 — cleaner dock: fewer controls, compact volume popover, stronger hierarchy */
body{padding-bottom:126px}
.player-dock{
  grid-template-columns:minmax(260px,1.45fr) auto minmax(150px,.7fr) auto auto;
  gap:18px;
  height:86px;
  padding:10px 18px;
}
.dock-track{display:flex;align-items:center;min-width:0;gap:13px}
.dock-track>img{width:64px;height:64px;border-radius:11px;object-fit:cover;flex:0 0 auto;border:1px solid rgba(255,255,255,.06)}
.mini-meta{min-width:0}
.mini-meta strong{font-size:.95rem}
.mini-meta span{font-size:.78rem}
.mini-meta small{font-size:.61rem;opacity:.9}

.dock-control-cluster{display:flex;align-items:center;gap:10px}
.stream-state{min-width:102px;padding:7px 10px}
.main-play{width:58px;height:58px;flex:0 0 58px;transition:transform .16s ease,box-shadow .2s ease,filter .2s ease}
.main-play:hover{transform:scale(1.045);filter:brightness(1.08)}
.main-play:active{transform:scale(.97)}
.reconnect-btn{width:36px;height:36px;flex:0 0 36px;transition:transform .18s ease,color .18s ease,background .18s ease}
.reconnect-btn:hover{transform:rotate(22deg)}

.dock-wave{min-width:140px;max-width:230px;width:100%;opacity:.92}
.dock-listeners{padding-left:16px;min-width:92px}
.dock-listeners strong{font-size:1rem;line-height:1}

.volume-control{position:relative;display:flex;align-items:center;justify-content:center}
.mute-btn{
  width:40px;height:40px;border:1px solid rgba(255,255,255,.08);border-radius:12px;
  background:rgba(255,255,255,.025);font-size:1rem;transition:.18s ease;
}
.mute-btn:hover,.volume-control.open .mute-btn{border-color:color-mix(in srgb,var(--accent) 42%,transparent);background:color-mix(in srgb,var(--accent) 10%,transparent);box-shadow:0 0 16px color-mix(in srgb,var(--accent) 13%,transparent)}
.volume-popover{
  position:absolute;right:0;bottom:52px;width:220px;
  display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:10px;
  padding:12px 13px;border:1px solid color-mix(in srgb,var(--accent) 34%,transparent);border-radius:13px;
  background:rgba(10,8,15,.98);box-shadow:0 14px 34px rgba(0,0,0,.52),0 0 20px color-mix(in srgb,var(--accent) 10%,transparent);
  opacity:0;transform:translateY(7px) scale(.98);pointer-events:none;transition:.16s ease;
}
.volume-control.open .volume-popover{opacity:1;transform:translateY(0) scale(1);pointer-events:auto}
.volume-label{font-size:.56rem;font-weight:800;letter-spacing:.09em;color:#8f8796}
.volume-popover input{width:100%;accent-color:var(--accent)}
.volume-percent{font-size:.63rem;font-weight:800;color:var(--accent);min-width:30px;text-align:right}

/* Remove legacy controls if an older browser has cached markup styles. */
.heart-btn,.dock-icon,.vol{display:none!important}

@media(max-width:1150px){
  .player-dock{grid-template-columns:minmax(220px,1fr) auto auto auto;height:82px}
  .dock-wave{display:none}
  .dock-track>img{width:58px;height:58px}
  .stream-state{min-width:94px}
}
@media(max-width:820px){
  body{padding-bottom:106px}
  .player-dock{bottom:32px;height:72px;grid-template-columns:minmax(0,1fr) auto auto;padding:8px 10px;gap:9px}
  .dock-track{gap:9px}.dock-track>img{width:50px;height:50px;border-radius:9px}
  .mini-meta small{display:none}.mini-meta strong{font-size:.82rem}.mini-meta span{font-size:.7rem;margin-top:2px}
  .stream-state,.reconnect-btn,.dock-listeners{display:none}
  .main-play{width:50px;height:50px;flex-basis:50px}
  .dock-control-cluster{gap:0}
  .mute-btn{width:38px;height:38px}
  .volume-popover{right:-4px;bottom:48px;width:205px}
}
@media(max-width:520px){
  .player-dock{width:calc(100% - 12px);border-radius:16px}
  .volume-popover{position:fixed;left:12px;right:12px;bottom:112px;width:auto}
}

/* v6.2 — keep final theme content clear of the fixed player/footer */
.theme-section{padding-bottom:118px}
@media(max-width:820px){.theme-section{padding-bottom:96px}}

/* v6.3 — fixed dock clearance: move the final host-theme section fully above the player */
.theme-section{
  padding-bottom:14px;
  margin-bottom:122px;
}
@media(max-width:820px){
  .theme-section{padding-bottom:14px;margin-bottom:102px}
}
@media(max-width:560px){
  .theme-section{margin-bottom:96px}
}


/* v6.4 — remove the developer theme-preview section from the public layout.
   Automatic host colour switching remains active via config.js/app.js. */
main{padding-bottom:112px}
@media(max-width:820px){main{padding-bottom:92px}}


/* v6.5 — restore the public DJ vibe cards, but keep the whole strip clear of the fixed player.
   Extra top spacing prevents the heading peeking out from behind the dock on the initial viewport. */
.theme-section{
  margin-top:96px;
  margin-bottom:132px;
  padding-bottom:0;
}
@media(max-width:820px){
  .theme-section{margin-top:74px;margin-bottom:108px;padding-bottom:0}
}
@media(max-width:560px){
  .theme-section{margin-top:58px;margin-bottom:102px}
}

/* v7.0 — requests & shoutouts */
.request-btn{
  height:48px;padding:0 18px;border-radius:14px;border:1px solid color-mix(in srgb,var(--accent) 35%,rgba(255,255,255,.08));
  background:color-mix(in srgb,var(--accent) 9%,rgba(8,7,13,.88));color:#f8f6fb;font:800 .7rem/1 Inter,sans-serif;
  letter-spacing:.035em;box-shadow:0 0 20px color-mix(in srgb,var(--accent) 8%,transparent);transition:.18s ease;cursor:pointer
}
.request-btn:hover{transform:translateY(-1px);border-color:color-mix(in srgb,var(--accent) 70%,transparent);background:color-mix(in srgb,var(--accent) 15%,rgba(8,7,13,.9));box-shadow:0 0 24px color-mix(in srgb,var(--accent) 16%,transparent)}
.request-modal{position:fixed;inset:0;z-index:200;display:grid;place-items:center;padding:20px;opacity:0;pointer-events:none;transition:opacity .18s ease}
.request-modal.open{opacity:1;pointer-events:auto}
.request-backdrop{position:absolute;inset:0;background:rgba(1,2,7,.76);backdrop-filter:blur(12px)}
.request-dialog{position:relative;width:min(680px,100%);max-height:min(820px,calc(100vh - 36px));overflow:auto;border:1px solid color-mix(in srgb,var(--accent) 42%,rgba(255,255,255,.08));border-radius:24px;padding:30px;background:linear-gradient(145deg,rgba(13,10,20,.985),rgba(5,7,13,.99));box-shadow:0 30px 90px rgba(0,0,0,.7),0 0 45px color-mix(in srgb,var(--accent) 12%,transparent);transform:translateY(12px) scale(.985);transition:transform .18s ease}
.request-modal.open .request-dialog{transform:translateY(0) scale(1)}
.request-close{position:absolute;right:18px;top:16px;width:38px;height:38px;border-radius:12px;border:1px solid rgba(255,255,255,.08);background:rgba(255,255,255,.03);color:#bcb6c4;font-size:1.5rem;cursor:pointer}.request-close:hover{color:#fff;border-color:color-mix(in srgb,var(--accent) 45%,transparent)}
.request-kicker{color:var(--accent);font-size:.65rem;font-weight:900;letter-spacing:.12em;margin-bottom:8px}.request-dialog h2{font-family:"Space Grotesk",Inter,sans-serif;font-size:clamp(1.8rem,4vw,2.5rem);margin:0 0 7px}.request-intro{margin:0 0 22px;color:#9e97a7}.request-intro strong{color:var(--accent)}
.request-tabs{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:20px;padding:5px;border-radius:15px;background:rgba(255,255,255,.025);border:1px solid rgba(255,255,255,.06)}
.request-tab{height:42px;border:0;border-radius:11px;background:transparent;color:#8e8797;font-size:.7rem;font-weight:850;letter-spacing:.04em;cursor:pointer}.request-tab.active{color:#fff;background:color-mix(in srgb,var(--accent) 16%,rgba(255,255,255,.03));box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--accent) 35%,transparent),0 0 18px color-mix(in srgb,var(--accent) 8%,transparent)}
.request-two-col{display:grid;grid-template-columns:1fr 1fr;gap:12px}.request-field{display:grid;gap:7px;margin-bottom:14px}.request-field>span{font-size:.61rem;font-weight:900;letter-spacing:.085em;color:#8d8696}.request-field small{font-weight:700;color:#5f5967}.request-field input,.request-field textarea{width:100%;box-sizing:border-box;border:1px solid rgba(255,255,255,.08);border-radius:12px;background:rgba(255,255,255,.025);color:#fff;padding:13px 14px;font:500 .86rem/1.4 Inter,sans-serif;outline:none;resize:vertical;transition:.16s ease}.request-field input:focus,.request-field textarea:focus{border-color:color-mix(in srgb,var(--accent) 60%,transparent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 9%,transparent)}
.request-context{display:grid;grid-template-columns:auto 1fr;gap:2px 10px;align-items:center;margin:5px 0 15px;padding:12px 14px;border-radius:12px;background:color-mix(in srgb,var(--accent) 7%,rgba(255,255,255,.015));border:1px solid color-mix(in srgb,var(--accent) 18%,rgba(255,255,255,.06))}.request-context span{grid-row:1/3;font-size:.58rem;font-weight:900;letter-spacing:.08em;color:var(--accent)}.request-context strong{font-size:.78rem}.request-context small{font-size:.68rem;color:#817a8a;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.request-feedback{min-height:20px;margin:0 2px 10px;font-size:.75rem;font-weight:700}.request-feedback.success{color:#55eb91}.request-feedback.error{color:#ff647d}.request-submit{width:100%;height:50px;border:1px solid color-mix(in srgb,var(--accent) 70%,transparent);border-radius:14px;background:linear-gradient(180deg,color-mix(in srgb,var(--accent) 80%,#fff 7%),color-mix(in srgb,var(--accent) 66%,#000 15%));color:#fff;font-size:.72rem;font-weight:900;letter-spacing:.055em;cursor:pointer;box-shadow:0 0 24px color-mix(in srgb,var(--accent) 20%,transparent);transition:.18s ease}.request-submit:hover{filter:brightness(1.08);transform:translateY(-1px)}.request-submit:disabled{opacity:.55;cursor:wait;transform:none}.request-honeypot{position:absolute!important;left:-9999px!important;width:1px!important;height:1px!important;opacity:0!important}
body.request-open{overflow:hidden}
@media(max-width:900px){.request-btn{display:none}}
@media(max-width:620px){.request-dialog{padding:24px 18px 20px;border-radius:20px}.request-two-col{grid-template-columns:1fr}.request-tabs{grid-template-columns:1fr}.request-tab{height:39px}}

/* v8 weekly show schedule */
.schedule-strip{margin-top:18px;padding:18px 22px;display:grid;grid-template-columns:1fr 1px 1fr;gap:22px;align-items:center;overflow:hidden;position:relative}
.schedule-strip:before{content:"";position:absolute;inset:0 auto 0 0;width:3px;background:var(--accent);box-shadow:0 0 18px var(--accent)}
.schedule-now,.schedule-next{display:grid;gap:5px;min-width:0}.schedule-label{font-size:.62rem;letter-spacing:.12em;font-weight:900;color:var(--accent)}
.schedule-strip strong{font-size:1.08rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.schedule-strip small{color:var(--muted);font-size:.76rem}.schedule-divider{height:46px;background:rgba(255,255,255,.08)}
@media(max-width:700px){.schedule-strip{grid-template-columns:1fr;gap:14px}.schedule-divider{height:1px;width:100%}}
