/* Shared section pattern used by PLO, About, POOLtracks, POOLcast, POOLzine index */
.page-wrap{ max-width:var(--max); margin:0 auto; padding:0 var(--gap) }

.section{
  padding:clamp(3rem, 6vw, 5rem) 0;
  border-top:1px solid var(--line);
}
.section:first-of-type{
  border-top:none;
  padding-top:clamp(2rem, 4vw, 3.5rem);
}
.section-head{
  display:grid; grid-template-columns:120px 1fr;
  gap:clamp(24px, 4vw, 60px);
  align-items:baseline;
  margin-bottom:2.5rem;
}
.section-num{
  font-family:var(--font-mono); font-size:.7rem; letter-spacing:.22em;
  color:var(--accent); text-transform:uppercase;
  padding-top:.5rem;
}
.section-title{
  font-family:var(--font-display); font-weight:900;
  font-size:clamp(2.2rem, 5vw, 3.8rem); line-height:.95;
  letter-spacing:-.01em; text-transform:uppercase;
}
.section-body{
  display:grid; grid-template-columns:120px 1fr;
  gap:clamp(24px, 4vw, 60px);
  align-items:start;
}
.section-kicker{
  font-family:var(--font-mono); font-size:.65rem; letter-spacing:.2em;
  color:var(--text-light); text-transform:uppercase;
  padding-top:.35rem;
}

/* Manifest block (PLO/About § 01) */
.manifest{
  font-family:var(--font-display); font-weight:400;
  font-size:clamp(1.7rem, 3vw, 2.4rem); line-height:1.15;
  letter-spacing:-.005em; max-width:820px; text-wrap:balance;
}
.manifest em{ font-style:italic; color:var(--accent); font-weight:500 }
.prose{
  max-width:640px; margin-top:2rem;
  columns:2; column-gap:clamp(24px, 3vw, 40px);
}
.prose p{
  font-size:.95rem; color:var(--text-mid); line-height:1.75;
  margin-bottom:1rem; break-inside:avoid;
}

/* Essay block */
.essay{ max-width:640px }
.essay p{
  font-size:1rem; color:var(--text-mid); line-height:1.85;
  margin-bottom:1.2rem; text-wrap:pretty;
}
.essay blockquote{
  font-family:var(--font-display); font-weight:400; font-style:italic;
  font-size:clamp(1.5rem, 2.6vw, 2rem); line-height:1.25;
  padding:1.5rem 0 1.5rem 1.5rem;
  border-left:2px solid var(--accent);
  color:var(--text); margin:1.5rem 0; text-wrap:balance;
}
.essay cite{
  display:block; margin-top:.6rem;
  font-family:var(--font-mono); font-size:.7rem; font-style:normal;
  letter-spacing:.15em; color:var(--text-light); text-transform:uppercase;
}

/* Contact */
.contact{
  display:grid; grid-template-columns:1fr 1fr;
  gap:clamp(24px,4vw,60px); align-items:start;
}
.contact-statement{
  font-family:var(--font-display); font-weight:400;
  font-size:clamp(1.4rem,2.4vw,1.9rem); line-height:1.25;
  text-wrap:balance;
}
.contact-block dt{
  font-family:var(--font-mono); font-size:.65rem; letter-spacing:.2em;
  color:var(--text-light); text-transform:uppercase; margin-bottom:.3rem;
}
.contact-block dd{
  font-family:var(--font-display); font-weight:700; font-size:1.1rem;
  letter-spacing:.04em; margin-bottom:1.3rem;
}
.contact-block dd a{
  border-bottom:1px solid transparent;
  transition:border-color .15s, color .15s;
}
.contact-block dd a:hover{ color:var(--accent); border-color:var(--accent) }

/* Recordings list (PLO § 03, POOLtracks releases) */
.rec-list{ display:flex; flex-direction:column; gap:1.5rem }
.rec{
  display:grid; grid-template-columns:minmax(0,1fr); gap:0;
  padding-bottom:1.5rem; border-bottom:1px solid var(--line);
}
.rec:last-child{ border-bottom:none; padding-bottom:0 }
.rec-meta{
  display:flex; justify-content:space-between; align-items:baseline;
  margin-bottom:.8rem; gap:1rem; flex-wrap:wrap;
}
.rec-title{
  font-family:var(--font-display); font-weight:900;
  font-size:clamp(1.2rem, 2vw, 1.7rem); letter-spacing:.02em;
  text-transform:uppercase; line-height:1;
}
.rec-date{
  font-family:var(--font-mono); font-size:.68rem; letter-spacing:.18em;
  color:var(--text-light); text-transform:uppercase; white-space:nowrap;
}
.rec iframe{ display:block; background:var(--bg); border:0; width:100% }
.rec-sub{
  font-family:var(--font-body); font-size:.85rem; color:var(--text-mid);
  margin-top:.6rem; max-width:620px;
}
.rec-more{
  display:inline-flex; align-items:center; gap:.4rem;
  font-family:var(--font-display); font-size:.8rem; letter-spacing:.14em;
  text-transform:uppercase; color:var(--accent); margin-top:.8rem;
  transition:opacity .15s;
}
.rec-more:hover{ opacity:.7 }

/* Gallery grid */
.gallery{
  display:grid; grid-template-columns:repeat(12, 1fr); gap:4px;
}
.gallery figure{
  position:relative; overflow:hidden; background:var(--surface);
  aspect-ratio:4/3; cursor:zoom-in;
}
.gallery figure:nth-child(1){ grid-column:span 7; aspect-ratio:16/9 }
.gallery figure:nth-child(2){ grid-column:span 5; aspect-ratio:4/3 }
.gallery figure:nth-child(3){ grid-column:span 4; aspect-ratio:3/4 }
.gallery figure:nth-child(4){ grid-column:span 4; aspect-ratio:3/4 }
.gallery figure:nth-child(5){ grid-column:span 4; aspect-ratio:3/4 }
.gallery figure:nth-child(6){ grid-column:span 6; aspect-ratio:4/3 }
.gallery figure:nth-child(7){ grid-column:span 6; aspect-ratio:4/3 }
.gallery-img{
  position:absolute; inset:0; width:100%; height:100%; object-fit:cover;
  transition:transform .5s ease, filter .3s;
  filter:grayscale(25%);
}
.gallery figure:hover .gallery-img{ transform:scale(1.04); filter:grayscale(0) }
.gallery figcaption{
  position:absolute; bottom:0; left:0; right:0;
  padding:.6rem .8rem;
  font-family:var(--font-mono); font-size:.62rem; letter-spacing:.15em;
  color:#fff; text-transform:uppercase;
  background:linear-gradient(to top, rgba(0,0,0,.7), transparent);
  opacity:0; transition:opacity .25s;
}
.gallery figure:hover figcaption{ opacity:1 }

/* Upcoming shows / session list */
.upcoming{ display:flex; flex-direction:column; gap:0 }
.show{
  display:grid; grid-template-columns:120px 1fr 160px auto;
  gap:1.5rem; align-items:baseline;
  padding:1.2rem 0; border-top:1px solid var(--line);
}
.show:first-child{ border-top:none; padding-top:0 }
.show-date{
  font-family:var(--font-mono); font-size:.72rem; letter-spacing:.15em;
  color:var(--accent); text-transform:uppercase;
}
.show-title{
  font-family:var(--font-display); font-weight:700; font-size:1.15rem;
  letter-spacing:.04em; text-transform:uppercase;
}
.show-venue{ font-family:var(--font-body); font-size:.82rem; color:var(--text-mid) }
.show-link{
  font-family:var(--font-display); font-size:.75rem; letter-spacing:.15em;
  text-transform:uppercase; color:var(--text-light); transition:color .15s;
}
.show-link:hover{ color:var(--accent) }

/* Card (home division latest + article/release/zine/session cards) */
.card{
  background:var(--bg); padding:clamp(24px, 3vw, 40px);
  border-top:1px solid var(--accent);
  display:flex; flex-direction:column; gap:.8rem;
  transition:background .2s;
  min-height:200px;
}
.card:hover{ background:var(--surface) }
.card-kicker{
  font-family:var(--font-mono); font-size:.65rem; letter-spacing:.22em;
  text-transform:uppercase; color:var(--text-light);
}
.card-title{
  font-family:var(--font-display); font-weight:900;
  font-size:clamp(1.4rem, 2.2vw, 1.8rem); line-height:1;
  text-transform:uppercase; letter-spacing:-.005em;
}
.card-body{ font-size:.95rem; color:var(--text-mid); line-height:1.55; flex:1 }
.card-meta{
  font-family:var(--font-mono); font-size:.62rem; letter-spacing:.18em;
  color:var(--text-light); text-transform:uppercase;
}

@media (max-width:780px){
  .section-head, .section-body{ grid-template-columns:1fr; gap:1rem }
  .section-num, .section-kicker{ font-size:.62rem }
  .contact{ grid-template-columns:1fr }
  .gallery{ grid-template-columns:repeat(2,1fr) }
  .gallery figure{ grid-column:span 1 !important; aspect-ratio:1/1 !important }
  .prose{ columns:1 }
  .show{ grid-template-columns:1fr; gap:.3rem }
}
