/* Home / Episode detail view (POOLcast split layout) */
.episode-layout{
  max-width:var(--max); margin:0 auto; padding:0 var(--gap);
  display:grid; grid-template-columns:240px 1fr;
  gap:clamp(32px, 5vw, 72px);
  min-height:calc(100vh - var(--nav-h));
}
.episode-sidebar{ padding:2.5rem 0 3rem }
.sidebar-division{
  margin-bottom:2.2rem; padding-bottom:2.2rem;
  border-bottom:1px solid var(--line);
}
.sidebar-division-head{
  display:block;
  font-family:var(--font-display); font-weight:900; font-size:1.75rem;
  letter-spacing:.02em; text-transform:uppercase; color:var(--accent);
  line-height:1; margin-bottom:.6rem;
}
.sidebar-division-desc{
  font-size:.78rem; color:var(--text-mid); line-height:1.55;
  margin:0; max-width:220px;
}
.sidebar-channel + .sidebar-channel{
  margin-top:2.2rem; padding-top:2.2rem; border-top:1px solid var(--line);
}
.sidebar-channel.disabled{ opacity:.45 }
.sidebar-head{
  font-family:var(--font-display); font-weight:900; font-size:1.35rem;
  letter-spacing:.02em; text-transform:uppercase; color:var(--accent);
  line-height:1; margin-bottom:.5rem;
}
.sidebar-channel.disabled .sidebar-head{ color:var(--text-light) }
.sidebar-badge{
  font-family:var(--font-mono); font-size:.55rem; letter-spacing:.18em;
  color:var(--text-light); text-transform:uppercase;
  display:inline-block; margin-left:.4rem; vertical-align:middle;
  border:1px solid var(--line-strong); padding:1px 5px;
}
.sidebar-desc{
  font-size:.78rem; color:var(--text-mid); line-height:1.55;
  margin-bottom:1.25rem; max-width:220px;
}
.sidebar-count{
  font-family:var(--font-mono); font-size:.65rem; letter-spacing:.15em;
  color:var(--text-light); margin:0 0 .9rem;
}
.sidebar-grid{
  display:grid; grid-template-columns:repeat(4,1fr); gap:2px;
}
.sidebar-tile{
  aspect-ratio:1; position:relative; display:block;
  background:var(--surface);
  overflow:hidden; transition:transform .25s, opacity .2s;
  opacity:.55;
}
.sidebar-tile:hover{ opacity:.95 }
.sidebar-tile.active{ opacity:1; box-shadow:inset 0 0 0 2px var(--accent); }
.sidebar-tile::before{
  content:''; position:absolute; inset:0;
  background:linear-gradient(135deg,#d4cfc5 0%,#b8b2a6 100%);
}
.sidebar-tile img{
  position:absolute; inset:0; width:100%; height:100%;
  object-fit:cover; z-index:1;
}
.sidebar-tile.active::before{
  background:linear-gradient(135deg,
    color-mix(in oklab, var(--accent) 70%, #000) 0%,
    var(--accent) 100%);
}

/* Detail column */
.episode-detail{ padding:2.5rem 0 4rem; min-width:0 }

.meta-row{
  font-family:var(--font-mono); font-size:.68rem; letter-spacing:.22em;
  color:var(--accent); text-transform:uppercase;
  display:flex; gap:1.2rem; margin-bottom:8px;
  align-items:baseline;
}
.meta-special{ margin-left:auto }
.artist-links:empty{ display:none }
.episode-name{
  font-family:var(--font-display); font-weight:900;
  font-size:clamp(3rem,7vw,5.5rem); line-height:.92;
  letter-spacing:-.01em; text-transform:uppercase;
  margin-bottom:24px;
}
.artist-links{
  display:flex; flex-wrap:wrap; gap:.4rem 1.6rem;
  margin-bottom:24px; align-items:baseline;
}
.artist-row{
  display:inline-flex; flex-wrap:wrap; gap:.3rem .6rem;
  align-items:baseline;
}
.artist-sep{
  font-family:var(--font-body); font-weight:300; font-size:.78rem;
  letter-spacing:.04em; color:var(--text);
  user-select:none; visibility:hidden;
}
.artist-name{
  font-family:var(--font-body); font-weight:700; font-size:.78rem;
  letter-spacing:.04em; color:var(--text);
  margin-right:.3rem;
}
.artist-links a{
  font-family:var(--font-body); font-weight:300; font-size:.78rem;
  letter-spacing:.04em; color:var(--accent); transition:opacity .15s;
}
.artist-links a::before{ content:"↗ "; opacity:.7 }
.artist-links a:hover{ opacity:.65 }

.cover{ position:relative; margin-bottom:2rem }
.cover img{ display:block; width:100%; height:auto; aspect-ratio:1; object-fit:cover }
.cover .player{
  position:absolute; right:32px; bottom:32px; left:auto;
  width:min(400px, calc(100% - 64px)); margin:0;
}
.video{ margin-bottom:2rem }
.video[hidden]{ display:none }
.video iframe{ display:block; width:100%; aspect-ratio:16/9; border:0; background:#000 }

.player{ padding:0; margin-bottom:1.5rem }
.player iframe{ display:block; background:var(--bg); width:100% }

.episode-body{
  display:grid; grid-template-columns:minmax(220px,1fr) minmax(0,1.6fr);
  gap:clamp(24px,4vw,72px);
  margin-bottom:32px; align-items:start;
}
.episode-copy{
  max-width:58ch; order:2;
  text-align:justify; hyphens:auto; -webkit-hyphens:auto;
}
.episode-aside{ order:1 }
.episode-body p{
  font-size:.98rem; color:var(--text-mid); line-height:1.8;
  margin-bottom:1rem; text-wrap:pretty;
}
.episode-aside{
  display:grid; grid-template-columns:auto 1fr; gap:0 1.5rem;
  align-items:start;
}
.episode-aside .meta-grid{
  grid-column:2; grid-row:1;
  display:flex; flex-direction:column;
  text-align:right;
}
.episode-aside .meta-item{ margin-bottom:24px; text-align:right }
.episode-aside .meta-item.right{ text-align:right }
.episode-aside dt{
  font-family:var(--font-mono); font-size:.65rem; letter-spacing:.2em;
  color:var(--text-light); text-transform:uppercase; margin-bottom:.25rem;
}
.episode-aside dd{
  font-family:var(--font-display); font-weight:700; font-size:.95rem;
  letter-spacing:.04em; margin:0;
}
.platforms{
  grid-column:1; grid-row:1;
  display:flex; flex-direction:column; gap:.3rem; margin:0;
}
.platforms a{
  font-family:var(--font-body); font-weight:300; font-size:.78rem;
  color:var(--text-light); transition:color .15s;
}
.platforms a::before{ content:"↗ "; opacity:.6 }
.platforms a:hover{ color:var(--accent) }

.episode-aside .tracklist{
  grid-column:1 / -1; grid-row:2;
  margin:1.5rem 0 0; padding:0;
}
.tracklist-head{
  font-family:var(--font-mono); font-size:.65rem; letter-spacing:.2em;
  color:var(--text-light); text-transform:uppercase;
  margin:0 0 .8rem; font-weight:400;
}
.tracklist ol{
  list-style:none; padding:0; margin:0;
  counter-reset:tl;
  font-family:var(--font-body); color:var(--text-mid);
}
.tracklist li{
  display:grid;
  grid-template-columns:auto 1fr;
  column-gap:.8rem;
  padding:.5rem 0;
  counter-increment:tl;
  align-items:center;
}
.tracklist li::before{
  content:counter(tl, decimal-leading-zero);
  grid-column:1; grid-row:1;
  font-family:var(--font-mono); font-size:.7rem;
  color:var(--text-light); letter-spacing:.08em;
}
.tl-row{
  grid-column:2; grid-row:1;
  display:grid; grid-template-columns:1fr auto;
  column-gap:.8rem; row-gap:0;
  text-decoration:none; color:inherit;
  transition:color .15s;
}
a.tl-row{ cursor:pointer }
a.tl-row:hover .tl-credits{ color:var(--accent) }
a.tl-row:hover .tl-title  { color:var(--text) }
.tl-credits{
  grid-column:1; grid-row:1;
  font-family:var(--font-display); font-weight:700;
  font-size:.8rem; letter-spacing:.03em; color:var(--text);
  transition:color .15s;
}
.tl-title{
  grid-column:1; grid-row:2;
  font-weight:300; font-size:.78rem; color:var(--text-mid);
  line-height:1.35;
  transition:color .15s;
}
.page-pooltracks .tl-title{ color:var(--accent) }
.page-pooltracks a.tl-row:hover .tl-title{ color:var(--accent) }
.page-pooltracks .tracklist-head{ color:var(--accent) }
.tl-title::after{ content:'' }
a.tl-row .tl-title::after{
  content:' ↗'; opacity:.5; font-size:.7rem;
}
.tl-duration{
  grid-column:2; grid-row:1 / span 2;
  align-self:center;
  font-family:var(--font-mono); font-size:.7rem;
  color:var(--text-light); letter-spacing:.04em;
  text-align:right; min-width:40px;
}

.episode-nav{
  display:grid; grid-template-columns:1fr 1fr;
  align-items:center; gap:2rem;
  padding-top:2rem; border-top:1px solid var(--line);
  font-family:var(--font-display); font-size:.75rem;
  letter-spacing:.15em; text-transform:uppercase;
}
.episode-nav a{
  color:var(--text-light); transition:color .15s;
  display:flex; align-items:center; gap:.8rem;
}
.episode-nav a:hover{ color:var(--text) }
.episode-nav a.next{ justify-content:flex-end }
.nav-num{ font-family:var(--font-mono); font-size:.7rem; opacity:.7 }
.nav-artist{ font-weight:700; font-size:.85rem }

@media (max-width:820px){
  .episode-layout{ grid-template-columns:1fr }
  .episode-body{ grid-template-columns:1fr }
  .episode-aside{ padding:0 }
  .sidebar-grid{ grid-template-columns:repeat(8,1fr) }
}
