/* ============================================================
   THE ROUTE MAP · v2.1.2 — BLOG
   "Food for thought" — the client's own name for it.

   The blog is the one Read surface on this site, so it is the
   plainest thing here: no map, no plate, no night ground. Paper,
   one column, serif, and the itinerary register doing the index.

   Everything below is the same system as index.html — the tokens
   are copied verbatim, and the rail and footer are the same
   components. Only .post-* and .prose are new.
   ============================================================ */

:root{
  --cream:#f4efe6;
  --cream-deep:#eae2d4;
  --indigo:#1b075e;
  --indigo-mid:#4b3a8f;
  --blue:#8ac2d4;        /* the disc's upper stop */
  --violet:#6f5ade;      /* the disc's lower stop */
  --violet-ink:#4b39a8;  /* the same violet dropped far enough to read on cream */
  --ink:#241f1c;
  --night:#16123a;
  --mute:#6f6862;
  --hair:#dbd3c6;
  --pad:clamp(1.25rem,5vw,5rem);
}

*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{
  margin:0;background:var(--cream);color:var(--ink);
  font-family:"Petrona",Georgia,serif;
  font-size:clamp(1rem,.95rem + .22vw,1.1rem);
  line-height:1.62;
  -webkit-font-smoothing:antialiased;
}
img{display:block;max-width:100%}
a{color:inherit}
h1,h2,h3{margin:0;font-weight:600;letter-spacing:-.02em}
p{margin:0 0 1.1rem}

/* ---------- the cream rail (same component as the home page) ---------- */
.rail{
  position:sticky;top:0;z-index:40;
  display:flex;align-items:center;gap:clamp(1rem,3vw,2.5rem);
  padding:.85rem var(--pad);
  background:var(--cream);
  border-bottom:1px solid var(--hair);
}
.lockup{display:block;flex:0 0 auto;width:clamp(158px,15vw,198px)}
/* height:auto is load-bearing — the img carries a height attribute */
.lockup img{display:block;width:100%;height:auto}
.rail nav{margin-left:auto;display:flex;gap:clamp(.9rem,2.2vw,1.9rem)}
.rail nav a{
  font-family:"Archivo",sans-serif;font-stretch:80%;text-transform:uppercase;
  /* .75rem, not .7rem — the system's own 12px floor applies to the nav too */
  letter-spacing:.16em;font-size:.75rem;font-weight:600;color:var(--mute);
  text-decoration:none;padding:.35rem 0;border-bottom:1px solid transparent;
}
.rail nav a:hover{color:var(--indigo);border-bottom-color:var(--violet)}
.rail nav a[aria-current="page"]{color:var(--indigo);border-bottom-color:var(--violet)}
.rail .pill{padding:.62rem 1.2rem}
/* Seven nav items plus the pill stop fitting here — see index.html */
@media (max-width:1080px){.rail .pill{display:none}}

/* the index link at the foot of every post */
.all-notes{
  display:inline-block;text-decoration:none;
  font-family:"Archivo",sans-serif;font-stretch:80%;text-transform:uppercase;
  letter-spacing:.14em;font-size:.68rem;font-weight:700;color:var(--violet-ink);
  border-bottom:1px solid var(--hair);padding-bottom:2px;
}
.all-notes:hover{border-bottom-color:var(--violet-ink)}

.pill{
  display:inline-flex;align-items:center;gap:.7rem;background:var(--indigo);color:#fff;
  font-family:"Archivo",sans-serif;font-stretch:82%;text-transform:uppercase;
  letter-spacing:.13em;font-size:.74rem;font-weight:700;
  padding:.95rem 1.6rem;border-radius:999px;text-decoration:none;border:1px solid var(--indigo);
}
.pill:hover{background:#2b1080;border-color:#2b1080}
.pill--quiet{background:transparent;color:var(--indigo);border-color:var(--hair)}
.pill--quiet:hover{background:transparent;border-color:var(--indigo)}

.brow{
  display:flex;align-items:flex-start;gap:.7rem;margin:0 0 1.6rem;
  font-family:"Archivo",sans-serif;font-stretch:78%;text-transform:uppercase;
  letter-spacing:.2em;font-size:.68rem;font-weight:600;color:var(--mute);
}
.brow::before{content:"";flex:0 0 auto;margin-top:.42em;width:9px;height:9px;border-radius:50%;border:1.5px solid var(--violet)}
.lede{font-size:clamp(1.04rem,1.35vw,1.22rem);line-height:1.6;color:#4d453c;max-width:56ch}
.hr{height:1px;background:var(--hair);border:0;margin:0}

section{padding:clamp(3.5rem,7.5vw,7rem) var(--pad)}
h2{font-size:clamp(1.9rem,4.4vw,3.4rem);line-height:1.04;letter-spacing:-.03em;font-weight:600;max-width:17ch;color:var(--indigo)}
h2 em{font-style:italic;color:var(--ink)}

/* ---------- the masthead of both blog surfaces ---------- */
.head{padding:clamp(3rem,6vw,5rem) var(--pad) clamp(2rem,4vw,3rem)}
.head h1{
  font-size:clamp(2.1rem,5vw,3.7rem);line-height:1.02;letter-spacing:-.032em;
  color:var(--indigo);max-width:18ch;text-wrap:balance;
}
.head h1 em{font-style:italic;color:var(--ink)}
.head .lede{margin-top:1.4rem}

/* ---------- the index, as an itinerary ------------------------------------
   The same register the Expertise section uses: a date in the gutter with a
   connector line running between stops. A blog index IS a route through the
   thinking, so it gets the route component rather than a grid of cards.
-------------------------------------------------------------------------- */
.notes{padding:0 var(--pad) clamp(3.5rem,7vw,6rem)}
.reg{border-top:1px solid var(--ink)}
.note{
  display:grid;grid-template-columns:7rem minmax(0,1fr);gap:clamp(1.2rem,3vw,2.5rem);
  padding:clamp(1.6rem,3vw,2.4rem) 0;border-bottom:1px solid var(--hair);
}
.note .when{position:relative;padding-top:.5rem}
.note .when b{
  font-family:"Archivo",sans-serif;font-stretch:78%;letter-spacing:.14em;
  font-size:.68rem;font-weight:700;color:var(--violet-ink);text-transform:uppercase;
  font-variant-numeric:tabular-nums;
}
.note .when::after{
  content:"";position:absolute;left:0;top:2.5rem;bottom:calc(-1 * clamp(1.6rem,3vw,2.4rem) - 1px);
  width:1px;background:var(--hair);
}
.note:last-child .when::after{display:none}
.note h3{
  font-size:clamp(1.25rem,2.3vw,1.75rem);letter-spacing:-.026em;line-height:1.14;
  margin:0 0 .55rem;max-width:26ch;text-wrap:balance;
}
.note h3 a{
  text-decoration:none;color:var(--indigo);
  border-bottom:1px solid transparent;
  transition:border-color .18s ease,color .18s ease;
}
.note h3 a:hover{color:#2b1080;border-bottom-color:var(--violet)}
.note p{margin:0;color:#5b5248;max-width:62ch;font-size:1rem;line-height:1.58}
.note .more{
  display:inline-block;margin-top:.85rem;text-decoration:none;
  font-family:"Archivo",sans-serif;font-stretch:80%;text-transform:uppercase;
  letter-spacing:.14em;font-size:.66rem;font-weight:700;color:var(--violet-ink);
  border-bottom:1px solid var(--hair);padding-bottom:2px;
}
.note .more:hover{border-bottom-color:var(--violet-ink)}

/* ---------- the article ---------- */
.article{padding:clamp(2.4rem,5vw,4rem) var(--pad) clamp(3rem,6vw,5rem)}
.article-head{border-bottom:1px solid var(--hair);padding-bottom:clamp(1.6rem,3vw,2.4rem);margin-bottom:clamp(2rem,4vw,3rem)}
.article-head h1{
  font-size:clamp(1.95rem,4.6vw,3.3rem);line-height:1.05;letter-spacing:-.03em;
  color:var(--indigo);max-width:20ch;margin:0 0 1.2rem;text-wrap:balance;
}
.stamp{
  display:flex;flex-wrap:wrap;gap:.5rem 1.4rem;margin:0;
  font-family:"Archivo",sans-serif;font-stretch:80%;text-transform:uppercase;
  letter-spacing:.14em;font-size:.68rem;font-weight:600;color:var(--mute);
  font-variant-numeric:tabular-nums;
}
.stamp b{color:var(--violet-ink);font-weight:700}

/* One column, one measure. 68ch is the reading width; nothing on this surface
   is allowed to be wider than the argument itself. */
.prose{max-width:68ch}
.prose p{margin:0 0 1.35rem;color:#3d372f}
.prose > p:first-child{
  font-size:clamp(1.1rem,1.5vw,1.28rem);line-height:1.56;color:var(--ink);
}
.prose h3{
  margin:2.4rem 0 .9rem;color:var(--indigo);text-wrap:balance;
  font-size:clamp(1.2rem,2vw,1.5rem);letter-spacing:-.024em;line-height:1.2;
}
.prose ul,.prose ol{margin:0 0 1.35rem;padding:0;list-style:none;border-top:1px solid var(--hair)}
.prose li{
  padding:1rem 0 1rem 2.2rem;border-bottom:1px solid var(--hair);
  position:relative;color:#3d372f;
}
.prose ul li::before{
  content:"";position:absolute;left:.35rem;top:1.5rem;
  width:7px;height:7px;border-radius:50%;border:1.5px solid var(--violet-ink);
}
.prose ol{counter-reset:step}
.prose ol li{counter-increment:step}
.prose ol li::before{
  content:counter(step);position:absolute;left:0;top:1.05rem;
  font-family:"Archivo",sans-serif;font-stretch:78%;letter-spacing:.1em;
  font-size:.72rem;font-weight:700;color:var(--violet-ink);
  font-variant-numeric:tabular-nums;
}
.prose li b{color:var(--ink);font-weight:600}

/* the closing call, in the post's own words */
.callout{
  margin-top:clamp(2.4rem,5vw,3.6rem);padding-top:1.8rem;
  border-top:1px solid var(--ink);max-width:68ch;
}
.callout-h{
  margin:0 0 .9rem;color:var(--indigo);
  font-size:clamp(1.2rem,2vw,1.5rem);letter-spacing:-.024em;line-height:1.2;
}
.callout p{margin:0 0 1.3rem;color:var(--ink);font-size:clamp(1.05rem,1.4vw,1.2rem);line-height:1.5;max-width:44ch}

/* ---------- more notes ---------- */
.more-notes{background:var(--cream-deep);border-top:1px solid var(--hair)}
.more-notes h2{font-size:clamp(1.4rem,2.4vw,1.9rem);margin-bottom:1.8rem;max-width:none}
.more-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--hair);border:1px solid var(--hair)}
.more-grid a{
  display:block;background:var(--cream);padding:clamp(1.3rem,2.2vw,1.8rem);
  text-decoration:none;
}
.more-grid a:hover{background:#faf7f1}
.more-grid b{
  display:block;font-family:"Archivo",sans-serif;font-stretch:78%;
  text-transform:uppercase;letter-spacing:.15em;font-size:.66rem;font-weight:700;
  color:var(--violet-ink);margin-bottom:.7rem;font-variant-numeric:tabular-nums;
}
.more-grid h3{font-size:1.1rem;color:var(--indigo);letter-spacing:-.022em;line-height:1.2;text-wrap:balance}

/* ---------- footer (same component as the home page) ---------- */
footer{background:var(--cream-deep);color:#5b5248;padding:clamp(3rem,6vw,4.5rem) var(--pad) 2.5rem;border-top:1px solid var(--hair)}
footer .lockup{width:190px;margin-bottom:1.1rem}
.fgrid{display:grid;grid-template-columns:minmax(0,1.5fr) repeat(3,minmax(0,1fr));gap:2.5rem;padding-bottom:2.5rem;border-bottom:1px solid var(--hair)}
.fgrid h4{margin:0 0 1rem;font-family:"Archivo",sans-serif;font-stretch:78%;text-transform:uppercase;letter-spacing:.18em;font-size:.65rem;font-weight:700;color:var(--mute)}
/* overflow-wrap is load-bearing — the email address is one unbreakable token and
   the 4-up footer column is narrower than it between 1000 and 1080px */
.fgrid a{display:block;color:#453f39;text-decoration:none;padding:.26rem 0;font-size:.95rem;overflow-wrap:anywhere}
.fgrid a:hover{color:var(--violet-ink)}
.legal{padding-top:1.8rem;font-family:"Archivo",sans-serif;font-size:.8rem;color:var(--mute);display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:2rem}
.legal p{margin:0}
.legal strong{color:var(--indigo);font-weight:600}

/* ---------- responsive ---------- */
@media (max-width:1000px){
  .fgrid{grid-template-columns:1fr 1fr}
  .more-grid{grid-template-columns:1fr}
}
@media (max-width:760px){
  .rail nav{display:none}
  .note{grid-template-columns:1fr;gap:.5rem}
  .note .when{padding-top:0}
  .note .when::after{display:none}
}
@media (max-width:700px){
  /* the 12px floor — micro-type comes up rather than down on small screens */
  .brow,.stamp,.note .when b,.note .more,.all-notes,.more-grid b,.fgrid h4,.legal,.rail nav a{font-size:.8rem}
  .pill{min-height:44px;font-size:.76rem}
  .fgrid a{padding:.62rem 0}
  .lockup{min-height:44px;display:flex;align-items:center}
}
@media (max-width:660px){
  .fgrid{grid-template-columns:1fr;gap:1.8rem}
  .legal{grid-template-columns:1fr}
}
