/* Permanent episode pages share the approved After Hours identity. */
.episode-page [hidden] { display:none!important; }
.episode-shell { max-width:1340px; min-height:100svh; padding:0 5%; margin:auto; display:flex; flex-direction:column; }
.episode-header { display:flex; align-items:center; justify-content:space-between; gap:24px; min-height:110px; border-bottom:1px solid var(--line); }
.episode-brand { display:block; width:82px; flex-shrink:0; margin-left:-12px; }
.episode-back { display:flex; align-items:center; min-height:44px; font-size:.9375rem; }
.episode-back:hover,.episode-mixcloud:hover,.episode-archive a:hover { text-decoration:underline; text-underline-offset:5px; }
.episode-page main { display:block; flex:1; }
.episode-hero { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:8%; align-items:center; padding:72px 0 64px; }
.episode-identity,.episode-information { min-width:0; }
.episode-kicker { font-family:Menlo,Consolas,monospace; font-size:.8125rem; line-height:1.5; letter-spacing:.06em; margin:0; color:var(--muted); }
.episode-identity .episode-kicker { color:var(--orange); }
.episode-artwork { display:block; width:100%; max-width:520px; height:auto; aspect-ratio:1; object-fit:contain; margin:22px 0; }
.episode-signature { color:var(--orange); font-family:Menlo,Consolas,monospace; font-size:.875rem; line-height:1.5; letter-spacing:.18em; margin:28px 0 0; }
.episode-information h1 { font-size:clamp(2.5rem,4.5vw,4rem); font-weight:700; line-height:1.03; letter-spacing:-.05em; margin:24px 0; }
.episode-description { font-size:1.0625rem; line-height:1.6; max-width:35ch; margin:0 0 22px; }
.episode-release { font-size:.875rem; line-height:1.6; color:var(--muted); margin:0; }
.episode-listening { margin-top:30px; padding-top:24px; border-top:1px solid var(--line); }
.episode-status { color:var(--orange); font-size:1rem; font-weight:600; line-height:1.5; margin:0 0 16px; }
.episode-player .primary-link { width:100%; justify-content:center; }
.episode-player iframe { display:block; width:100%; height:180px; border:0; }
.episode-player-note,.episode-link-note { font-size:.875rem; color:var(--muted); line-height:1.6; margin:12px 0; }
.episode-mixcloud { display:inline-flex; align-items:center; min-height:44px; font-size:.9375rem; line-height:1.5; }
.episode-link-note { margin-top:0; }
.episode-playlist { border-top:1px solid var(--line); padding:36px 0 28px; }
.playlist-heading { display:flex; align-items:baseline; justify-content:space-between; gap:12px 24px; flex-wrap:wrap; margin-bottom:24px; }
.playlist-heading h2 { font-size:clamp(2rem,3vw,2.75rem); line-height:1.1; letter-spacing:-.04em; margin:0; }
.episode-tracklist { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); grid-template-rows:repeat(var(--playlist-rows),auto); grid-auto-flow:column; column-gap:8%; list-style:none; padding:0; margin:0; }
.episode-tracklist li { display:grid; grid-template-columns:2ch minmax(0,1fr); align-content:start; gap:18px; min-width:0; padding:18px 0; border-top:1px solid var(--line); font-size:1rem; line-height:1.65; overflow-wrap:anywhere; }
.track-number { color:var(--orange); font-family:Menlo,Consolas,monospace; font-size:.8125rem; line-height:2; }
.episode-archive { display:flex; justify-content:space-between; align-items:center; gap:12px 24px; padding:20px 0 28px; flex-wrap:wrap; font-size:.9375rem; line-height:1.5; }
.episode-archive span { color:var(--muted); }
.episode-archive a { display:flex; align-items:center; min-height:44px; }
@media(max-width:760px) {
  .episode-shell { padding:0 6%; }
  .episode-header { min-height:88px; gap:16px; }
  .episode-brand { width:70px; margin-left:-10px; }
  .episode-back { font-size:.875rem; }
  .episode-hero { grid-template-columns:minmax(0,1fr); gap:40px; padding:42px 0 30px; }
  .episode-artwork { margin:18px 0; }
  .episode-signature { margin-top:18px; }
  .episode-information h1 { font-size:clamp(2.5rem,10vw,3.5rem); margin:18px 0; }
  .episode-description { max-width:none; }
  .episode-listening { margin-top:24px; }
  .episode-playlist { padding:28px 0 18px; }
  .playlist-heading { margin-bottom:20px; }
  .episode-tracklist { grid-template-columns:minmax(0,1fr); grid-template-rows:none; grid-auto-flow:row; }
  .episode-tracklist li { gap:16px; padding:16px 0; }
  .episode-archive { padding-bottom:24px; }
}
