:root{
  --ink:#f5f5f2;
  --paper:#0a0a0a;
  --hairline:rgba(255,255,255,0.14);
  --muted:#8f8f89;
  --card-bg:#161616;
}

*{box-sizing:border-box; margin:0; padding:0;}

html,body{
  background:var(--paper);
  color:var(--ink);
  font-family:'Questrial', sans-serif;
  -webkit-font-smoothing:antialiased;
}

/* respect reduced motion */
@media (prefers-reduced-motion: reduce){
  *{animation-duration:0.001ms !important; animation-iteration-count:1 !important; transition-duration:0.001ms !important;}
}

h1,h2,h3, .display{
  font-family:'Gloock', serif;
  font-weight:400;
  letter-spacing:0.01em;
}

a{ color:inherit; text-decoration:none; }

/* ---------- custom cursor (hidden on touch devices) ---------- */
.cursor-heart{ position:fixed; top:0; left:0; display:none; pointer-events:none; }
@media (hover:hover) and (pointer:fine){ .cursor-heart{ display:block; } }
@media (hover:hover) and (pointer:fine){
  * { cursor:none !important; }

  .cursor-heart{
    position:fixed;
    top:0; left:0;
    font-size:22px;
    line-height:1;
    color:#ffffff;
    mix-blend-mode:difference;
    transform:translate(-50%,-50%);
    pointer-events:none;
    z-index:10000;
    transition:transform 0.18s cubic-bezier(.2,1.4,.4,1), opacity 0.2s ease;
    will-change:transform;
    user-select:none;
  }
  .cursor-heart.active{
    transform:translate(-50%,-50%) scale(1.7) rotate(-10deg);
  }
  .cursor-heart.clicked{
    transform:translate(-50%,-50%) scale(2.1) rotate(-16deg);
  }
}

/* ---------- nav ---------- */
header{
  position:fixed;
  top:0; left:0; right:0;
  z-index:500;
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:24px 6vw;
  background:linear-gradient(to bottom, rgba(0,0,0,0.75), transparent);
  background-origin:border-box;
  background-repeat:no-repeat;
  border-bottom:1px solid transparent;
  transition:background 0.35s ease, border-color 0.35s ease, padding 0.35s ease;
}
header.scrolled, header.solid{
  background:rgba(10,10,10,0.92);
  backdrop-filter:blur(10px);
  border-bottom:1px solid var(--hairline);
  padding:16px 6vw;
}
.logo{
  font-family:'Gloock', serif;
  font-size:20px;
  letter-spacing:0.14em;
}
nav ul{
  list-style:none;
  display:flex;
  gap:clamp(16px, 3vw, 40px);
  font-size:13px;
  letter-spacing:0.08em;
  text-transform:uppercase;
}
nav a{
  position:relative;
  padding-bottom:4px;
}
nav a::after{
  content:'';
  position:absolute;
  left:0; bottom:0;
  width:0%;
  height:1px;
  background:var(--ink);
  transition:width 0.25s ease;
}
nav a:hover::after{ width:100%; }
nav a.current{ color:var(--muted); }
nav a.current::after{ display:none; }

@media (max-width:720px){
  nav ul{ gap:14px; font-size:11px; flex-wrap:wrap; justify-content:flex-end; }
  header{ flex-direction:column; align-items:flex-start; gap:16px; }
}

/* ---------- hero ---------- */
.hero{
  position:relative;
  min-height:92vh;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  text-align:center;
  padding:120px 6vw 80px;
  overflow:hidden;
}
.hero-watermark{
  position:absolute;
  top:50%; left:50%;
  width:min(1400px, 160vw);
  height:auto;
  transform:translate(-50%,-50%);
  opacity:0.07;
  filter:grayscale(1) contrast(1.1);
  pointer-events:none;
  z-index:0;
}
.hero::after{
  content:'';
  position:absolute;
  inset:0;
  background:radial-gradient(ellipse at center, transparent 35%, var(--paper) 88%);
  z-index:1;
}
.hero > *{
  position:relative;
  z-index:2;
}
.hero .eyebrow{
  font-size:12px;
  letter-spacing:0.22em;
  text-transform:uppercase;
  color:var(--muted);
  margin-bottom:22px;
}
.hero h1{
  font-size:clamp(2.8rem, 8vw, 6rem);
  line-height:1.02;
}
.hero p{
  max-width:520px;
  margin:26px auto 0;
  font-size:16px;
  line-height:1.7;
  color:var(--muted);
}
.hero .cta-row{
  display:flex;
  gap:14px;
  justify-content:center;
  flex-wrap:wrap;
  margin-top:40px;
}
.hero .cta{
  display:inline-block;
  padding:16px 40px;
  font-size:12px;
  letter-spacing:0.18em;
  text-transform:uppercase;
  transition:background 0.25s ease, color 0.25s ease, opacity 0.25s ease;
}
.hero .cta.primary{
  background:var(--ink);
  color:var(--paper);
  border:1px solid var(--ink);
}
.hero .cta.primary:hover{ opacity:0.82; }
.hero .cta.ghost{
  border:1px solid var(--hairline);
  color:var(--ink);
}
.hero .cta.ghost:hover{
  border-color:var(--ink);
}

/* ---------- simple page header (non-hero pages) ---------- */
.page-header{
  padding:150px 6vw 60px;
  text-align:center;
}
.page-header .eyebrow{
  font-size:12px;
  letter-spacing:0.22em;
  text-transform:uppercase;
  color:var(--muted);
  margin-bottom:18px;
}
.page-header h1{
  font-size:clamp(2.4rem, 6vw, 4.2rem);
  line-height:1.05;
}
.page-header p{
  max-width:520px;
  margin:20px auto 0;
  font-size:15px;
  line-height:1.7;
  color:var(--muted);
}

/* ---------- filter tabs ---------- */
.filter-tabs{
  max-width:1400px;
  margin:0 auto;
  padding:0 6vw 10px;
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  justify-content:center;
}
.filter-tabs button{
  font-family:'Questrial', sans-serif;
  background:transparent;
  border:1px solid var(--hairline);
  color:var(--muted);
  padding:10px 22px;
  font-size:12px;
  letter-spacing:0.1em;
  text-transform:uppercase;
  transition:border-color 0.2s ease, color 0.2s ease, background 0.2s ease;
}
.filter-tabs button:hover{
  border-color:var(--ink);
  color:var(--ink);
}
.filter-tabs button.active{
  background:var(--ink);
  color:var(--paper);
  border-color:var(--ink);
}

/* ---------- archive grid (full list, wraps instead of scrolling) ---------- */
.archive-grid{
  max-width:1400px;
  margin:0 auto;
  padding:40px 6vw 60px;
  display:grid;
  grid-template-columns:repeat(4, 1fr);
  gap:clamp(20px,3vw,36px);
}
@media (max-width:1080px){
  .archive-grid{ grid-template-columns:repeat(3,1fr); }
}
@media (max-width:760px){
  .archive-grid{ grid-template-columns:repeat(2,1fr); }
}
@media (max-width:480px){
  .archive-grid{ grid-template-columns:1fr; }
}
.archive-grid .card{ width:100%; }
.archive-grid .card.is-hidden{ display:none; }

/* ---------- pagination ---------- */
.pagination{
  max-width:1400px;
  margin:0 auto;
  padding:0 6vw 110px;
  display:flex;
  gap:8px;
  justify-content:center;
  flex-wrap:wrap;
}
.pagination button{
  font-family:'Questrial', sans-serif;
  background:transparent;
  border:1px solid var(--hairline);
  color:var(--muted);
  min-width:40px;
  padding:9px 14px;
  font-size:12px;
  letter-spacing:0.06em;
  transition:border-color 0.2s ease, color 0.2s ease, background 0.2s ease;
}
.pagination button:hover:not(:disabled){
  border-color:var(--ink);
  color:var(--ink);
}
.pagination button.active{
  background:var(--ink);
  color:var(--paper);
  border-color:var(--ink);
}
.pagination button:disabled{
  opacity:0.35;
  cursor:default;
}

/* ---------- inline subscribe form ---------- */
.subscribe-form{
  display:flex;
  gap:10px;
  max-width:400px;
  margin:16px auto 0;
  flex-wrap:wrap;
  justify-content:center;
}
.subscribe-form input[type="email"]{
  flex:1 1 200px;
  background:transparent;
  border:1px solid var(--hairline);
  color:var(--ink);
  padding:14px 16px;
  font-family:'Questrial', sans-serif;
  font-size:13px;
  outline:none;
}
.subscribe-form input[type="email"]::placeholder{
  color:var(--muted);
}
.subscribe-form input[type="email"]:focus{
  border-color:var(--ink);
}
.subscribe-form button{
  padding:14px 26px;
  background:var(--ink);
  color:var(--paper);
  border:none;
  font-family:'Questrial', sans-serif;
  font-size:12px;
  letter-spacing:0.14em;
  text-transform:uppercase;
  white-space:nowrap;
  transition:opacity 0.2s ease;
}
.subscribe-form button:hover{ opacity:0.82; }
.subscribe-form .form-note{
  width:100%;
  text-align:center;
  font-size:12px;
  margin-top:10px;
  color:var(--muted);
  display:none;
}
.subscribe-form.submitted input,
.subscribe-form.submitted button{ display:none; }
.subscribe-form.submitted .form-note{ display:block; }

/* light-background variant */
.subscribe-form.on-light input[type="email"]{
  border-color:rgba(10,10,10,0.25);
  color:#0a0a0a;
}
.subscribe-form.on-light input[type="email"]::placeholder{ color:#8a8a84; }
.subscribe-form.on-light input[type="email"]:focus{ border-color:#0a0a0a; }
.subscribe-form.on-light button{
  background:#0a0a0a;
  color:#f5f5f2;
}
.subscribe-form.on-light .form-note{ color:#6b6b66; }

/* ---------- draw-in (mid-page second conversion moment) ---------- */
.draw-in{
  background:#f5f5f2;
  color:#0a0a0a;
  padding:100px 6vw;
  text-align:center;
}
.draw-in-inner{
  max-width:640px;
  margin:0 auto;
}
.draw-in h2{
  font-size:clamp(2rem, 4.6vw, 3.2rem);
  line-height:1.1;
  margin-bottom:18px;
}
.draw-in p{
  font-size:15.5px;
  line-height:1.7;
  color:#4a4a45;
  max-width:480px;
  margin:0 auto;
}
.draw-in .threads{
  display:flex;
  gap:14px;
  justify-content:center;
  flex-wrap:wrap;
  margin-top:34px;
}
.draw-in .threads span, .draw-in .threads .thread-link{
  border:1px solid rgba(10,10,10,0.25);
  padding:8px 18px;
  font-size:11px;
  letter-spacing:0.12em;
  text-transform:uppercase;
  color:#4a4a45;
}
.draw-in .threads .thread-link{
  background:transparent;
  font-family:inherit;
  cursor:pointer;
  transition:background 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}
.draw-in .threads .thread-link:hover, .draw-in .threads .thread-link.armed{
  background:#0a0a0a;
  color:#f5f5f2;
  border-color:#0a0a0a;
}
.thread-nudge{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:12px;
  justify-content:center;
  margin-top:16px;
  font-size:13px;
  color:#6a6a64;
}
.thread-nudge #threadNudgeGo{
  background:transparent;
  border:none;
  border-bottom:1px solid rgba(10,10,10,0.4);
  color:#0a0a0a;
  font-family:inherit;
  font-size:12px;
  letter-spacing:0.08em;
  text-transform:uppercase;
  padding:2px 0;
  cursor:pointer;
}

/* ---------- spotlight (light break) ---------- */
.spotlight{
  background:#f5f5f2;
  color:#0a0a0a;
  padding:100px 6vw;
}
.spotlight-inner{
  max-width:1100px;
  margin:0 auto;
  display:grid;
  grid-template-columns:0.9fr 1.1fr;
  gap:clamp(30px,5vw,80px);
  align-items:center;
}
.spotlight-cover{
  aspect-ratio:4/5;
  background:#e2e2dd;
  border:1px solid #d5d5cf;
}
.spotlight-text .eyebrow{
  font-size:12px;
  letter-spacing:0.2em;
  text-transform:uppercase;
  color:#6b6b66;
  margin-bottom:18px;
}
.spotlight-text h2{
  font-size:clamp(1.9rem, 3.6vw, 2.9rem);
  line-height:1.1;
  margin-bottom:20px;
}
.spotlight-text p{
  font-size:15.5px;
  line-height:1.75;
  color:#4a4a45;
  max-width:460px;
  margin-bottom:32px;
}
.spotlight-text .cta{
  display:inline-block;
  padding:15px 36px;
  background:#0a0a0a;
  color:#f5f5f2;
  font-size:12px;
  letter-spacing:0.16em;
  text-transform:uppercase;
  transition:opacity 0.25s ease;
}
.spotlight-text .cta:hover{ opacity:0.78; }

/* ---------- about page: prose + pull-quotes ---------- */
.prose-section{
  max-width:720px;
  margin:0 auto;
  padding:70px 6vw;
}
.prose-section .kicker{
  font-size:12px;
  letter-spacing:0.18em;
  text-transform:uppercase;
  color:var(--muted);
  margin-bottom:16px;
}
.prose-section h2{
  font-size:clamp(1.8rem, 4vw, 2.6rem);
  line-height:1.1;
  margin-bottom:28px;
}
.prose-section p{
  font-size:15.5px;
  line-height:1.85;
  color:#d8d8d4;
  margin-bottom:22px;
}
.pull-quote{
  max-width:640px;
  margin:0 auto;
  padding:50px 6vw;
  text-align:center;
  border-top:1px solid var(--hairline);
  border-bottom:1px solid var(--hairline);
}
.pull-quote p{
  font-family:'Gloock', serif;
  font-size:clamp(1.3rem, 2.8vw, 1.8rem);
  line-height:1.5;
  color:var(--ink);
}
.pull-quote cite{
  display:block;
  margin-top:18px;
  font-style:normal;
  font-size:12px;
  letter-spacing:0.1em;
  text-transform:uppercase;
  color:var(--muted);
}

/* book spotlight reuses .spotlight/.spotlight-inner from earlier */
.book-cover{
  aspect-ratio:2/3;
  background:#e2e2dd;
  border:1px solid #d5d5cf;
  display:flex;
  align-items:center;
  justify-content:center;
  color:#8f8f89;
  font-size:11px;
  letter-spacing:0.1em;
  text-transform:uppercase;
}

@media (max-width:760px){
  .spotlight-inner{ grid-template-columns:1fr; }
  .spotlight{ padding:70px 6vw; }
}

/* ---------- testimonial ---------- */
.testimonial{
  background:#f5f5f2;
  color:#0a0a0a;
  padding:90px 6vw;
}
.testimonial-inner{
  max-width:820px;
  margin:0 auto;
  text-align:center;
}
.testimonial blockquote{
  font-family:'Gloock', serif;
  font-size:clamp(1.4rem, 3.4vw, 2.1rem);
  line-height:1.4;
  font-style:normal;
  transition:opacity 0.4s ease;
}
.testimonial cite{
  display:block;
  margin-top:26px;
  font-style:normal;
  font-size:12px;
  letter-spacing:0.12em;
  text-transform:uppercase;
  color:#6b6b66;
  transition:opacity 0.4s ease;
}

/* ---------- episodes / rows ---------- */
.section-label{
  max-width:1400px;
  margin:0 auto;
  padding:0 6vw;
  display:flex;
  align-items:baseline;
  justify-content:space-between;
  border-top:1px solid var(--hairline);
  padding-top:60px;
}
.section-label h2{
  font-size:clamp(1.6rem,3vw,2.2rem);
}
.section-label span{
  font-size:12px;
  letter-spacing:0.1em;
  text-transform:uppercase;
  color:var(--muted);
}

.row{
  max-width:1400px;
  margin:0 auto;
  padding:36px 6vw 100px;
  display:flex;
  gap:22px;
  overflow-x:auto;
  scroll-snap-type:x proximity;
  scroll-padding-left:6vw;
  scroll-padding-right:6vw;
  overscroll-behavior-x:contain;
  scrollbar-width:none;
}
.row::-webkit-scrollbar{ display:none; }

/* ---------- slider (fixed-count row with arrow controls) ---------- */
.slider-wrap{
  max-width:1400px;
  margin:0 auto;
  padding:36px 6vw 100px;
  display:flex;
  align-items:center;
  gap:14px;
}
.slider-wrap .row{
  scroll-padding-left:0;
  scroll-padding-right:0;
  padding:22px 0;
  margin:-22px 0;
  flex:1;
  min-width:0;
}
.slider-arrow{
  flex:0 0 auto;
  width:44px;
  height:44px;
  border-radius:50%;
  border:1px solid var(--hairline);
  background:transparent;
  color:var(--ink);
  font-family:inherit;
  font-size:16px;
  display:flex;
  align-items:center;
  justify-content:center;
  transition:border-color 0.2s ease, background 0.2s ease, color 0.2s ease;
}
.slider-arrow.is-off{ opacity:0.3; cursor:default; }
.slider-arrow.is-off:hover{ background:transparent; border-color:var(--hairline); color:var(--ink); }
.slider-arrow:hover{
  border-color:var(--ink);
  background:var(--ink);
  color:var(--paper);
}
@media (max-width:640px){
  .slider-arrow{ width:36px; height:36px; font-size:14px; }
  .slider-wrap .card{ flex:0 0 100%; width:100%; }
}

.card{
  display:block;
  flex:0 0 auto;
  width:min(78vw, 260px);
  scroll-snap-align:start;
  transition:transform 0.35s cubic-bezier(.2,.8,.2,1);
}
.card:nth-child(3n+1) .cover{ transform:rotate(-1.6deg); }
.card:nth-child(3n+2) .cover{ transform:rotate(1.1deg); }
.card:nth-child(3n) .cover{ transform:rotate(-0.6deg); }
.card:hover{
  transform:translateY(-8px);
  z-index:2;
}
.card .cover{
  position:relative;
  background:#f2f0e9;
  border:1px solid rgba(0,0,0,0.06);
  padding:10px 10px 40px;
  display:flex;
  align-items:center;
  justify-content:center;
  color:#8f8f89;
  font-size:11px;
  letter-spacing:0.1em;
  text-transform:uppercase;
  margin-bottom:16px;
  box-shadow:0 10px 26px rgba(0,0,0,0.45);
  transition:box-shadow 0.35s ease, transform 0.35s ease;
}
.card .cover:not(:has(img)){
  aspect-ratio:1/1;
}
.card .cover img{
  width:100%;
  aspect-ratio:1/1;
  object-fit:cover;
  display:block;
  filter:sepia(0.1) saturate(1.05) contrast(1.03);
}
.card:hover .cover{
  box-shadow:0 26px 50px rgba(0,0,0,0.6);
  transform:rotate(0deg) scale(1.02);
}
.card .tag{
  font-size:11px;
  letter-spacing:0.12em;
  text-transform:uppercase;
  color:var(--muted);
  margin-bottom:8px;
}
.card .tag .lock{
  margin-left:6px;
  opacity:0.75;
  vertical-align:middle;
  position:relative;
  top:-1px;
}

/* ---------- poem hero (the writing itself, as the visual centerpiece) ---------- */
.poem-hero{
  padding:20px 6vw 80px;
  text-align:center;
}
.poem-hero .stat{
  font-size:12px;
  letter-spacing:0.18em;
  text-transform:uppercase;
  color:var(--muted);
  margin-bottom:34px;
}
.poem-hero blockquote{
  font-family:'Gloock', serif;
  font-size:clamp(1.1rem, 2.1vw, 1.55rem);
  line-height:1.75;
  max-width:520px;
  margin:0 auto;
  font-style:normal;
}
.poem-hero cite{
  display:block;
  margin-top:30px;
  font-style:normal;
  font-size:12px;
  letter-spacing:0.12em;
  text-transform:uppercase;
  color:var(--muted);
}
.poem-hero .read-link{
  display:inline-block;
  margin-top:18px;
  font-size:12px;
  letter-spacing:0.12em;
  text-transform:uppercase;
  text-decoration:underline;
  text-underline-offset:3px;
  color:var(--ink);
}

/* ---------- section sub-note (context line under a section label) ---------- */
.section-note{
  max-width:1400px;
  margin:14px auto 0;
  padding:0 6vw;
  font-size:13.5px;
  color:var(--muted);
  text-align:center;
}

/* ---------- reading page ---------- */
.read-header{
  max-width:720px;
  margin:0 auto;
  padding:150px 6vw 40px;
  text-align:center;
}
.read-header .tag-row{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  margin-bottom:22px;
}
.read-header .tag-row span{
  font-size:12px;
  letter-spacing:0.16em;
  text-transform:uppercase;
  color:var(--muted);
}
.read-header h1{
  font-size:clamp(2rem, 5vw, 3.4rem);
  line-height:1.08;
  margin-bottom:20px;
}
.read-header .dek{
  font-size:16px;
  line-height:1.6;
  color:var(--muted);
  max-width:560px;
  margin:0 auto 26px;
}
.read-header .byline{
  font-size:12px;
  letter-spacing:0.08em;
  text-transform:uppercase;
  color:var(--muted);
}
.read-header .byline .sep{ margin:0 8px; color:#4a4a45; }
.read-header .read-sub-line{
  margin-top:18px;
  font-size:12.5px;
  color:var(--muted);
  letter-spacing:0.01em;
}
.read-header .read-sub-line a{
  color:var(--ink);
  border-bottom:1px solid var(--hairline);
  padding-bottom:1px;
  transition:border-color 0.2s ease;
}
.read-header .read-sub-line a:hover{ border-color:var(--ink); }

.read-cover{
  max-width:900px;
  margin:0 auto 10px;
  padding:0 6vw;
}
.read-cover img{
  width:100%;
  height:auto;
  display:block;
  filter:sepia(0.08) saturate(1.05) contrast(1.03);
}

.read-body{
  max-width:680px;
  margin:0 auto;
  padding:50px 6vw 40px;
  font-size:16px;
  line-height:1.9;
  color:#e2e2de;
}
.read-body p{
  margin-bottom:26px;
}
.read-body p.stanza{
  text-align:center;
  color:var(--ink);
}
.read-body figure{
  margin:40px 0;
}
.read-body figure img{
  width:100%;
  height:auto;
  display:block;
}
.read-body hr{
  border:none;
  border-top:1px solid var(--hairline);
  margin:44px auto;
  width:60px;
}
.read-body h2, .read-body h3{
  font-size:1.3rem;
  margin:36px 0 18px;
  text-align:center;
}
.read-body em{ color:var(--muted); }
.read-body strong{ color:var(--ink); }
.read-body a{ text-decoration:underline; text-underline-offset:3px; }

/* paywall gate */
.read-gate-fade{
  max-width:680px;
  margin:0 auto;
  padding:0 6vw;
  height:80px;
  background:linear-gradient(to bottom, transparent, var(--paper));
  margin-top:-80px;
  position:relative;
  pointer-events:none;
}
.read-gate{
  max-width:560px;
  margin:0 auto;
  padding:44px 6vw 70px;
  text-align:center;
}
.read-gate .lock-big{
  margin-bottom:18px;
  opacity:0.8;
}
.read-gate h3{
  font-size:1.4rem;
  margin-bottom:12px;
}
.read-gate p{
  font-size:14.5px;
  color:var(--muted);
  margin-bottom:26px;
}

/* prev/next nav */
.read-nav{
  max-width:900px;
  margin:0 auto;
  padding:50px 6vw 100px;
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:20px;
  border-top:1px solid var(--hairline);
}
.read-nav a{
  display:block;
  padding:24px;
  border:1px solid var(--hairline);
  transition:border-color 0.2s ease;
}
.read-nav a:hover{ border-color:var(--ink); }
.read-nav .dir{
  font-size:11px;
  letter-spacing:0.12em;
  text-transform:uppercase;
  color:var(--muted);
  margin-bottom:8px;
}
.read-nav .next-wrap{ text-align:right; }
.read-nav .nav-tag{
  font-size:12px;
  letter-spacing:0.1em;
  text-transform:uppercase;
  color:var(--ink);
  margin-bottom:8px;
}
.read-nav h4{
  font-family:'Gloock', serif;
  font-size:1.05rem;
  font-weight:400;
}
.read-nav .placeholder{
  opacity:0.3;
  pointer-events:none;
}
@media (max-width:600px){
  .read-nav{ grid-template-columns:1fr; }
  .read-nav .next-wrap{ text-align:left; }
}
.card h3{
  font-size:1.15rem;
  line-height:1.25;
  margin-bottom:8px;
}
.card p{
  font-size:13.5px;
  line-height:1.6;
  color:var(--muted);
}

/* ---------- footer ---------- */
footer{
  background:#000;
  color:#fff;
  padding:80px 6vw 40px;
  text-align:center;
}
footer .portrait{
  width:130px;
  height:130px;
  border-radius:50%;
  overflow:hidden;
  margin:0 auto 44px;
  background:#1c1c1c;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:10px;
  letter-spacing:0.08em;
  text-transform:uppercase;
  color:#777;
}
footer .portrait img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}
footer .wordmark{
  font-family:'Gloock', serif;
  font-size:clamp(2.2rem, 7vw, 5.2rem);
  line-height:1;
  margin-bottom:64px;
  letter-spacing:0.01em;
}
.footer-cols{
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:40px;
  max-width:920px;
  margin:0 auto 64px;
}
.footer-cols h4{
  font-family:'Questrial', sans-serif;
  font-weight:400;
  font-size:13px;
  letter-spacing:0.1em;
  text-transform:uppercase;
  margin-bottom:18px;
  color:#fff;
}
.footer-cols a, .footer-cols p{
  display:block;
  font-size:14px;
  margin-bottom:10px;
  color:#fff;
}
.footer-cols a{
  text-decoration:underline;
  text-underline-offset:3px;
  text-decoration-color:transparent;
  transition:text-decoration-color 0.2s ease;
}
.footer-cols a:hover{
  text-decoration-color:rgba(255,255,255,0.85);
}
.footer-cols .menu a.current{
  color:#7a7a7a;
  text-decoration:none;
}
@media (max-width:720px){
  .footer-cols{ grid-template-columns:1fr; gap:36px; }
}
footer .fine-print{
  border-top:1px solid rgba(255,255,255,0.15);
  padding-top:26px;
  max-width:920px;
  margin:0 auto;
}
footer .fine-print a{
  color:#fff;
  font-size:12px;
  text-decoration:underline;
  text-underline-offset:3px;
  margin:0 8px;
}
footer .fine-print .copyright{
  display:block;
  margin-top:14px;
  font-size:11px;
  color:#8a8a8a;
}

/* body extras: script/text-message blocks, captions, small headings */
.read-body pre{
  white-space:pre-wrap;
  font-family:inherit;
  font-size:15px;
  line-height:1.8;
  margin:0 0 26px;
  padding:4px 0 4px 20px;
  border-left:1px solid var(--hairline);
  color:#cfcfca;
}
.read-body pre code{ font-family:inherit; }
.read-body figcaption{ margin-top:10px; font-size:13px; text-align:center; color:var(--muted); }
.read-body h4{ font-size:1.1rem; margin:30px 0 14px; text-align:center; }
.read-body blockquote{ margin:0 0 26px; padding-left:20px; border-left:1px solid var(--hairline); color:#cfcfca; }
.read-body ul, .read-body ol{ margin:0 0 26px 22px; }
.read-body li{ margin-bottom:8px; }

/* ---------- home hero: photo billboard ---------- */
.hero.hero-billboard{
  position:relative;
  display:flex;
  flex-direction:row;
  align-items:center;
  justify-content:flex-start;
  text-align:left;
  min-height:94vh;
  padding:120px 6vw 90px;
  overflow:hidden;
}
.hero.hero-billboard > .hero-bg{ position:absolute; inset:0; z-index:0; }
.hero-bg img{
  width:100%; height:100%;
  object-fit:cover;
  object-position:70% 28%;
  display:block;
}
.hero.hero-billboard::before{
  content:'';
  position:absolute; inset:0; z-index:1;
  background:linear-gradient(90deg, rgba(10,10,10,0.96) 0%, rgba(10,10,10,0.9) 28%, rgba(10,10,10,0.55) 52%, rgba(10,10,10,0) 78%);
}
.hero.hero-billboard::after{
  content:'';
  position:absolute; top:auto; left:0; right:0; bottom:0; height:30%; z-index:1;
  background:linear-gradient(0deg, var(--paper) 0%, rgba(10,10,10,0) 100%);
}
.hero-billboard > .hero-copy{ position:relative; z-index:3; max-width:620px; }
.hero-billboard .eyebrow{ margin-bottom:22px; line-height:1.6; }
.hero-billboard h1{ font-size:clamp(3rem,7.6vw,6.6rem); line-height:0.98; }
.hero-billboard .hero-tag{ margin-top:26px; font-size:clamp(1.05rem,1.8vw,1.35rem); line-height:1.4; color:var(--ink); }
.hero-billboard .hero-lede{ max-width:500px; margin:16px 0 0; font-size:17px; line-height:1.7; color:var(--ink); opacity:0.86; }
.hero-billboard .subscribe-form{ margin:34px 0 0; max-width:470px; justify-content:flex-start; }
.hero-billboard .hero-sub{ margin-top:14px; font-size:13px; color:var(--muted); line-height:1.55; }
.hero-billboard .hero-link{
  display:inline-block; margin-top:22px;
  font-size:12px; letter-spacing:0.16em; text-transform:uppercase;
  border-bottom:1px solid var(--hairline); padding-bottom:4px;
  transition:border-color .2s ease;
}
.hero-billboard .hero-link:hover{ border-color:var(--ink); }
@media (max-width:860px){
  .hero.hero-billboard{ align-items:flex-end; min-height:0; padding:0 6vw 50px; }
  .hero.hero-billboard > .hero-bg{ bottom:auto; height:72vh; }
  .hero-bg img{ object-position:64% 20%; }
  .hero.hero-billboard::before{ background:linear-gradient(0deg, var(--paper) 0%, var(--paper) 40%, rgba(10,10,10,0.6) 60%, rgba(10,10,10,0) 100%); }
  .hero.hero-billboard::after{ display:none; }
  .hero-billboard > .hero-copy{ padding-top:52vh; }
  .hero-billboard h1{ font-size:clamp(2.8rem,14vw,4.6rem); }
}

/* ---------- feature: photo + why subscribe (light break) ---------- */
.draw-in.draw-in-photo .draw-in-inner{
  max-width:1100px;
  display:grid;
  grid-template-columns:0.82fr 1.18fr;
  gap:clamp(30px,6vw,90px);
  align-items:center;
  text-align:left;
}
.draw-in-photo .feature-photo{
  margin:0;
  background:#fff;
  padding:14px 14px 52px;
  box-shadow:0 18px 50px rgba(0,0,0,0.22);
  transform:rotate(-2deg);
  transition:transform .35s ease;
}
.draw-in-photo .feature-photo:hover{ transform:rotate(0deg); }
.draw-in-photo .feature-photo img{ display:block; width:100%; height:auto; aspect-ratio:4/5; object-fit:cover; object-position:50% 12%; }
.draw-in-photo .feature-copy .subscribe-form{ margin-left:0; justify-content:flex-start; }
.draw-in-photo .feature-copy .threads{ justify-content:flex-start; }
.draw-in-photo .feature-copy .feature-line{ margin-top:14px; }
@media (max-width:760px){
  .draw-in.draw-in-photo .draw-in-inner{ grid-template-columns:1fr; }
  .draw-in-photo .feature-photo{ max-width:340px; margin:0 auto; }
}
.draw-in-photo .feature-copy p{ margin-left:0; margin-right:0; max-width:480px; }
.draw-in-photo .feature-copy h2{ margin-bottom:14px; }

/* ---------- poetry hero: the whole photo on the right, fading to black on the left ---------- */
.page-billboard{
  position:relative;
  display:flex;
  align-items:center;
  min-height:clamp(720px,100vh,940px);
  padding:120px 6vw 80px;
  overflow:hidden;
  background:var(--paper);
}
.pb-photo{
  width:100%; height:100%; object-fit:cover; object-position:50% 50%; display:block;
  -webkit-mask-image:linear-gradient(to right, transparent 0%, rgba(0,0,0,0.5) 9%, #000 24%), linear-gradient(to bottom, #000 0%, #000 90%, transparent 100%);
  -webkit-mask-composite:source-in;
          mask-image:linear-gradient(to right, transparent 0%, rgba(0,0,0,0.5) 9%, #000 24%), linear-gradient(to bottom, #000 0%, #000 90%, transparent 100%);
          mask-composite:intersect;
}
.pb-copy{ position:relative; z-index:3; max-width:min(520px,46vw); }
.pb-copy .eyebrow{ font-size:12px; letter-spacing:0.22em; text-transform:uppercase; color:rgba(245,245,242,0.75); margin-bottom:22px; line-height:1.6; }
.pb-copy h1{ font-size:clamp(3rem,8vw,7.4rem); line-height:0.98; }
.pb-copy p{ margin-top:24px; max-width:440px; font-size:17px; line-height:1.7; color:var(--ink); opacity:0.92; }
.pb-copy .pb-link{ display:inline-block; margin-top:30px; font-size:12px; letter-spacing:0.16em; text-transform:uppercase; border-bottom:1px solid rgba(245,245,242,0.4); padding-bottom:4px; transition:border-color .2s ease; }
.pb-copy .pb-link:hover{ border-color:var(--ink); }
@media (max-width:600px){
  .page-billboard{ display:block; min-height:0; padding:590px 6vw 46px; }
  .pb-copy{ max-width:none; }
}
.pb-copy h1, .pb-copy p, .pb-copy .eyebrow, .pb-copy .pb-link{ text-shadow:0 1px 14px rgba(0,0,0,0.75), 0 0 2px rgba(0,0,0,0.5); }

/* ---------- poetry hero: full photo stretched to fill the hero height, black shade easing into it ---------- */
.page-billboard.pb-real{ height:clamp(680px,100vh,900px); min-height:0; background:var(--paper); display:block; padding:0; position:relative; isolation:isolate; }
.pb-real .pb-bg{ position:absolute; inset:0; margin:0; overflow:hidden; }
.pb-real .pb-photo{ display:block; width:100%; height:100%; object-fit:cover; object-position:68% 40%; -webkit-mask-image:none; mask-image:none; }
.pb-real .pb-shade{ position:absolute; inset:0; z-index:2; pointer-events:none;
  background:linear-gradient(90deg,
    rgba(10,10,10,0.98) 0%, rgba(10,10,10,0.95) 15%, rgba(10,10,10,0.88) 26%,
    rgba(10,10,10,0.77) 34%, rgba(10,10,10,0.6) 42%, rgba(10,10,10,0.42) 49%,
    rgba(10,10,10,0.26) 56%, rgba(10,10,10,0.12) 64%, rgba(10,10,10,0) 73%);
}
.pb-real .pb-inner{ position:relative; z-index:3; height:100%; display:flex; align-items:center; padding:0 6vw; }
.pb-real .pb-copy{ max-width:480px; }
.pb-real .pb-copy h1, .pb-real .pb-copy p, .pb-real .pb-copy .eyebrow, .pb-real .pb-copy .pb-link{ text-shadow:0 1px 14px rgba(0,0,0,0.75), 0 0 2px rgba(0,0,0,0.5); }
@media (max-width:600px){
  .page-billboard.pb-real{ height:auto; padding:0; }
  .pb-real .pb-bg{ position:relative; inset:auto; height:560px; order:1; }
  .pb-real .pb-photo{ object-position:66% 34%; }
  .pb-real .pb-shade{ display:none; }
  .pb-real .pb-inner{ height:auto; padding:36px 6vw 50px; display:flex; flex-direction:column; }
  .pb-real .pb-copy{ order:2; padding-top:26px; }
}

/* ---------- about page: spotlight photo beside the opening bio text ---------- */
.about-spotlight{
  max-width:900px;
  margin:0 auto;
  padding:20px 6vw 70px;
  display:grid;
  grid-template-columns:0.85fr 1.15fr;
  gap:clamp(28px,5vw,64px);
  align-items:start;
}
.about-spotlight .as-photo{
  margin:0;
  background:#f5f5f2;
  padding:12px 12px 40px;
  box-shadow:0 20px 55px rgba(0,0,0,0.45);
  transform:rotate(-2deg);
  transition:transform .3s ease;
}
.about-spotlight .as-photo:hover{ transform:rotate(0deg); }
.about-spotlight .as-photo img{ display:block; width:100%; height:auto; aspect-ratio:4/3; object-fit:cover; object-position:42% 12%; }
.about-spotlight .as-text p{
  font-size:15.5px;
  line-height:1.85;
  color:#d8d8d4;
  margin-bottom:22px;
}
@media (max-width:760px){
  .about-spotlight{ grid-template-columns:1fr; }
  .about-spotlight .as-photo{ max-width:320px; margin:0 auto; }
}

/* ---------- paid-membership banner: full-bleed photo with the pitch over it ---------- */
.member-banner{ position:relative; overflow:hidden; background:#0a0a0a; min-height:clamp(520px,52vw,700px); display:flex; align-items:center; }
.member-banner .mb-photo{ position:absolute; top:0; bottom:0; right:0; left:auto; width:62%; height:100%; object-fit:cover; object-position:50% 18%; filter:grayscale(1); -webkit-mask-image:linear-gradient(90deg,transparent 0,#000 28%); mask-image:linear-gradient(90deg,transparent 0,#000 28%); }
.member-banner .mb-shade{ position:absolute; inset:0; background:linear-gradient(90deg, rgba(10,10,10,0.94) 0%, rgba(10,10,10,0.86) 28%, rgba(10,10,10,0.55) 46%, rgba(10,10,10,0.1) 66%, rgba(10,10,10,0) 80%); }
.member-banner .mb-copy{ position:relative; z-index:2; max-width:520px; padding:70px 6vw; margin-left:max(0px,calc((100vw - 1200px)/2)); color:#f5f5f2; }
.member-banner .eyebrow{ font-size:12px; letter-spacing:0.2em; text-transform:uppercase; color:#b9b9b3; margin-bottom:16px; }
.member-banner h2{ text-wrap:balance; font-family:'Gloock',serif; font-weight:400; font-size:clamp(30px,3.6vw,48px); line-height:1.1; margin:0 0 18px; }
.member-banner p{ font-size:16px; line-height:1.7; color:#dcdcd6; margin:0 0 28px; }
.member-banner .cta{ display:inline-block; background:#f5f5f2; color:#0a0a0a; padding:15px 28px; font-size:12px; letter-spacing:0.18em; text-transform:uppercase; text-decoration:none; }
.member-banner .cta:hover{ opacity:0.82; }
@media (max-width:760px){
  .member-banner{ min-height:660px; align-items:flex-end; }
  .member-banner .mb-photo{ left:0; width:100%; object-position:50% 12%; -webkit-mask-image:none; mask-image:none; }
  .member-banner .mb-shade{ background:linear-gradient(0deg, rgba(10,10,10,0.96) 0%, rgba(10,10,10,0.88) 45%, rgba(10,10,10,0.1) 80%); }
  .member-banner .mb-copy{ padding:40px 6vw 50px; }
}

/* ---------- keyboard focus: always visible ---------- */
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible{
  outline:2px solid #f5f5f2; outline-offset:3px;
}
.on-light a:focus-visible, .on-light button:focus-visible, .on-light input:focus-visible,
.spotlight a:focus-visible, .draw-in a:focus-visible, .draw-in button:focus-visible, .draw-in input:focus-visible{
  outline-color:#0a0a0a;
}

/* ---------- letter banner: full-width light banner that closes every post ---------- */
.letter-card{
  width:100%;
  margin:30px 0 0;
  padding:84px 6vw;
  background:#f5f5f2;
  color:#0a0a0a;
  text-align:center;
  transition:opacity 0.7s ease, transform 0.7s cubic-bezier(.2,.8,.2,1);
}
.letter-card.lc-pending{ opacity:0; transform:translateY(18px); }
.letter-card .lc-copy{ max-width:620px; margin:0 auto; }
.letter-card .eyebrow{ font-size:12px; letter-spacing:0.2em; text-transform:uppercase; color:#6f6f69; margin-bottom:16px; }
.letter-card h3{ font-family:'Gloock',serif; font-weight:400; font-size:clamp(30px,3.6vw,46px); line-height:1.1; margin:0 0 18px; color:#0a0a0a; text-wrap:balance; }
.letter-card p{ font-size:16px; line-height:1.7; color:#2b2b28; margin:0 0 28px; }
.letter-card .cta{ display:inline-block; background:#0a0a0a; color:#f5f5f2; padding:15px 28px; font-size:12px; letter-spacing:0.18em; text-transform:uppercase; text-decoration:none; }
.letter-card .cta:hover{ opacity:0.82; }
.letter-card .lc-price{ display:block; margin:16px 0 0; font-size:12px; letter-spacing:0.08em; color:#6f6f69; }
@media (max-width:760px){
  .letter-card{ padding:60px 6vw; }
}
@media (prefers-reduced-motion: reduce){
  .letter-card, .letter-card.lc-pending{ transition:none; opacity:1; transform:none; }
}

.contact a{ color:inherit; text-decoration:underline; text-underline-offset:3px; }
.contact a:hover{ opacity:0.7; }

/* one-line signup under the byline on every post */
.read-header .read-sub-form{ margin:14px auto 0; max-width:420px; flex-wrap:nowrap; gap:8px; }
.read-header .read-sub-form input[type="email"]{ flex:1 1 auto; min-width:0; padding:12px 14px; }
.read-header .read-sub-form button{ padding:12px 20px; }
.read-header .read-sub-form .form-note{ flex:1 0 100%; }

/* signup sits between the tag and the title */
.read-header .read-sub-line{ margin-top:16px; }
.read-header .read-sub-form{ margin-bottom:34px; }

/* quieter signup: underline field + text button, so it reads as part of the header */
.read-header .read-sub-line{ margin-top:14px; font-size:12px; letter-spacing:0.02em; }
.read-header .read-sub-form{ max-width:340px; margin:8px auto 38px; gap:0; border-bottom:1px solid var(--hairline); align-items:center; transition:border-color 0.2s ease; }
.read-header .read-sub-form:focus-within{ border-color:var(--ink); }
.read-header .read-sub-form input[type="email"]{ border:0; background:transparent; padding:10px 4px; font-size:13px; text-align:left; }
.read-header .read-sub-form input[type="email"]:focus{ border:0; }
.read-header .read-sub-form button{ background:transparent; color:var(--ink); padding:10px 4px 10px 12px; font-size:11px; letter-spacing:0.18em; }
.read-header .read-sub-form button::after{ content:" \2192"; }
.read-header .read-sub-form.submitted{ border-bottom-color:transparent; }
.read-header .read-sub-form .form-note{ margin:0; padding:10px 0; }

/* ---------- mailing address form (/mail) ---------- */
.address-wrap{ max-width:560px; margin:0 auto; padding:10px 6vw 110px; }
.address-form label{ display:block; margin-bottom:20px; font-size:12px; letter-spacing:0.14em; text-transform:uppercase; color:var(--muted); }
.address-form label .opt{ text-transform:none; letter-spacing:0.02em; }
.address-form input{ display:block; width:100%; margin-top:8px; background:transparent; border:1px solid var(--hairline); color:var(--ink); padding:14px 16px; font-family:'Questrial',sans-serif; font-size:15px; letter-spacing:0; text-transform:none; outline:none; border-radius:0; }
.address-form input:focus{ border-color:var(--ink); }
.address-form .two{ display:grid; grid-template-columns:1fr 1fr; gap:0 16px; align-items:end; }
.address-form .hp{ position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden; }
.address-form .cta-solid{ margin-top:10px; background:var(--ink); color:var(--paper); border:0; padding:16px 30px; font-family:'Questrial',sans-serif; font-size:12px; letter-spacing:0.18em; text-transform:uppercase; cursor:pointer; transition:opacity 0.2s ease; }
.address-form .cta-solid:hover{ opacity:0.82; }
.address-form .cta-solid:disabled{ opacity:0.5; cursor:default; }
.address-error{ margin-top:14px; font-size:14px; color:#e8a7a0; min-height:1em; }
.address-privacy{ margin-top:22px; font-size:13px; line-height:1.7; color:var(--muted); }
.address-done{ text-align:center; padding:30px 0 20px; }
.address-done h2{ font-size:clamp(1.6rem,4vw,2.2rem); line-height:1.15; margin-bottom:14px; }
.address-done p{ color:var(--muted); font-size:15px; line-height:1.7; }
.address-done[hidden], .address-form[hidden]{ display:none; }
@media (max-width:520px){ .address-form .two{ grid-template-columns:1fr; } }

/* ---------- home paid-member banner: light version ---------- */
.member-banner{ background:#f5f5f2; }
.member-banner .mb-photo{ -webkit-mask-image:linear-gradient(90deg,transparent 0,#000 30%); mask-image:linear-gradient(90deg,transparent 0,#000 30%); }
.member-banner .mb-shade{ background:linear-gradient(90deg, rgba(245,245,242,0.96) 0%, rgba(245,245,242,0.88) 28%, rgba(245,245,242,0.5) 46%, rgba(245,245,242,0.08) 66%, rgba(245,245,242,0) 80%); }
.member-banner .mb-copy{ color:#0a0a0a; }
.member-banner .eyebrow{ color:#6b6b66; }
.member-banner p{ color:#4a4a45; }
.member-banner .cta{ background:#0a0a0a; color:#f5f5f2; }
@media (max-width:760px){
  .member-banner{ min-height:740px; }
  .member-banner .mb-photo{ top:-40px; bottom:auto; height:auto; }
  .member-banner .mb-shade{ background:linear-gradient(0deg, rgba(245,245,242,1) 0%, rgba(245,245,242,0.97) 50%, rgba(245,245,242,0.6) 60%, rgba(245,245,242,0) 70%); }
}
