/* ============================================================
   TIMBREL — Blog / long-form reading layer.
   Rides on top of timbrel.css (tokens, nav, footer, buttons).
   ============================================================ */

.article-wrap{max-width:var(--w-narrow);margin:0 auto;padding:0 var(--gut)}

/* ---------- post header ---------- */
.post-head{padding:128px 0 26px;text-align:center}
.post-eyebrow{font-family:var(--mono);font-size:.72rem;letter-spacing:.18em;
  text-transform:uppercase;color:var(--gold-deep)}
.post-title{font-size:clamp(2.4rem,5.4vw,4rem);font-weight:400;line-height:1.02;
  margin:18px 0 22px;max-width:18ch;margin-inline:auto}
.post-dek{font-family:var(--serif);font-style:italic;font-size:clamp(1.15rem,2vw,1.4rem);
  color:var(--t2);line-height:1.45;max-width:40ch;margin:0 auto}
.post-meta{display:flex;gap:18px;justify-content:center;align-items:center;flex-wrap:wrap;
  margin-top:26px;font-size:.86rem;color:var(--t3)}
.post-meta .dot{width:4px;height:4px;border-radius:50%;background:var(--line-2)}
.post-meta b{color:var(--t2);font-weight:600}

/* ---------- hero figure ---------- */
.post-hero{margin:40px auto 8px;max-width:var(--w);padding:0 var(--gut)}
.post-hero img{width:100%;height:auto;aspect-ratio:16/9;display:block;border-radius:var(--r-lg);box-shadow:var(--sh-lg)}
.post-hero figcaption,.figure figcaption{font-size:.8rem;color:var(--t3);
  margin-top:12px;text-align:center;font-style:italic}

/* ---------- prose ---------- */
.prose{font-size:1.18rem;line-height:1.72;color:var(--t1)}
.prose>p{margin:0 0 1.35em}
.prose>p:first-of-type{font-size:1.32rem;line-height:1.6}
.prose>p:first-of-type::first-letter{font-family:var(--serif);float:left;font-size:3.4rem;
  line-height:.82;padding:6px 12px 0 0;color:var(--mint-deep)}
.prose h2{font-size:clamp(1.6rem,3vw,2.15rem);margin:1.9em 0 .55em;letter-spacing:-.015em}
.prose h2 .num{font-family:var(--mono);font-size:.9rem;color:var(--gold-deep);
  letter-spacing:.1em;display:block;margin-bottom:.35em;font-weight:500}
.prose h3{font-size:1.28rem;font-family:var(--serif);margin:1.5em 0 .4em;color:var(--t1)}
.prose a{color:var(--mint-deep);text-decoration:underline;text-decoration-color:var(--mint-soft);
  text-underline-offset:3px;text-decoration-thickness:2px;transition:color .2s,text-decoration-color .2s}
.prose a:hover{color:var(--ink);text-decoration-color:var(--mint-deep)}
.prose strong{font-weight:600;color:var(--ink)}
.prose em{font-style:italic}
.prose ul,.prose ol{margin:0 0 1.35em;padding-left:1.3em}
.prose li{margin:.4em 0}
.prose li::marker{color:var(--mint-deep)}

/* pull quote */
.pull{font-family:var(--serif);font-size:clamp(1.5rem,3.2vw,2.1rem);line-height:1.28;
  color:var(--ink);margin:1.6em 0;padding:.1em 0 .1em 28px;
  border-left:3px solid var(--mint-deep);font-weight:400}

/* inline figure (SVG diagrams etc.) */
.figure{margin:2.2em 0}
.figure .frame{background:var(--white);border:1px solid var(--line);border-radius:var(--r-md);
  padding:30px 26px;box-shadow:var(--sh-sm)}

/* the voice-file callout */
.vfile{background:var(--ink);color:var(--on-ink);border-radius:var(--r-md);
  padding:24px 26px;margin:2em 0;font-family:var(--mono);font-size:.82rem;line-height:1.7;
  overflow-x:auto;box-shadow:var(--sh-md)}
.vfile .c{color:var(--on-ink-2)}
.vfile .g{color:var(--mint)}
.vfile .gold{color:var(--gold)}

/* tells table */
.tells{border:1px solid var(--line);border-radius:var(--r-md);overflow:hidden;margin:1.8em 0;background:var(--white)}
.tells .row{display:grid;grid-template-columns:1fr 1.2fr;gap:0;border-top:1px solid var(--line)}
.tells .row:first-child{border-top:none;background:var(--sage);font-family:var(--mono);
  font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;color:var(--t2)}
.tells .row>div{padding:13px 18px}
.tells .row>div:first-child{border-right:1px solid var(--line);font-weight:600;color:var(--ink)}
.tells .row .tell{font-family:var(--mono);font-size:.82rem;color:var(--gold-deep)}

/* colophon */
.colophon{margin:3em 0 0;padding:30px;border-radius:var(--r-lg);background:var(--sage);
  border:1px solid var(--line);display:flex;gap:22px;align-items:center;flex-wrap:wrap}
.colophon .swirl{width:96px;height:96px;flex:none}
.colophon .swirl img{width:100%;height:100%;object-fit:contain}
.colophon .body{flex:1;min-width:240px}
.colophon h4{font-family:var(--serif);font-size:1.2rem;margin-bottom:.3em;color:var(--ink)}
.colophon p{font-size:.98rem;color:var(--t2);line-height:1.6;margin-bottom:1em}

/* end CTA */
.post-cta{text-align:center;padding:64px 0 96px}
.post-cta h2{font-size:clamp(1.8rem,3.6vw,2.6rem);margin-bottom:14px}
.post-cta p{color:var(--t2);max-width:42ch;margin:0 auto 26px}

/* back link */
.post-back{display:inline-flex;align-items:center;gap:8px;font-family:var(--mono);
  font-size:.78rem;letter-spacing:.06em;color:var(--t3);margin-top:8px}
.post-back:hover{color:var(--mint-deep)}

/* ---------- blog index ---------- */
.blog-hero{padding:128px 0 30px;text-align:center}
.blog-hero h1{font-size:clamp(2.4rem,5vw,3.6rem);margin:16px 0 16px}
.blog-hero p{color:var(--t2);max-width:46ch;margin:0 auto;font-size:1.1rem}
.post-list{max-width:880px;margin:30px auto 110px;padding:0 var(--gut);
  display:grid;gap:22px}
.post-card{display:grid;grid-template-columns:260px 1fr;gap:0;background:var(--white);
  border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden;
  box-shadow:var(--sh-sm);transition:box-shadow .25s,transform .25s}
.post-card:hover{box-shadow:var(--sh-md);transform:translateY(-2px)}
.post-card .thumb{background:var(--sage);overflow:hidden}
.post-card .thumb img{width:100%;height:100%;object-fit:cover;object-position:28% center}
.post-card .pc-body{padding:26px 28px}
.post-card .pc-tag{font-family:var(--mono);font-size:.7rem;letter-spacing:.12em;
  text-transform:uppercase;color:var(--gold-deep)}
.post-card h2{font-size:1.55rem;margin:10px 0 10px}
.post-card p{color:var(--t2);font-size:.98rem;line-height:1.55;margin-bottom:14px}
.post-card .pc-meta{font-size:.82rem;color:var(--t3)}

@media(max-width:760px){
  .tells .row{grid-template-columns:1fr}
  .tells .row>div:first-child{border-right:none;border-bottom:1px solid var(--line)}
  .post-card{grid-template-columns:1fr}
  .post-card .thumb{height:170px}
  .prose>p:first-of-type::first-letter{font-size:2.8rem}
}
