:root{
  --paper:#F7F5F0;
  --ink:#141412;
  --body-ink:#242320;
  --ledger:#7A2222;
  --ledger-bg:#F1E3E0;
  --rule:#B8B2A2;
  --counter:#4A4A46;
  --counter-bg:#EDEBE5;
}
*{box-sizing:border-box;}
body{
  margin:0;
  background:var(--paper);
  color:var(--body-ink);
  font-family:Georgia,"Times New Roman",serif;
  line-height:1.5;
  text-align:justify;
}
.wrap{max-width:760px;margin:0 auto;padding:0 24px;}

header.masthead{border-bottom:4px solid var(--ink);padding:48px 0 24px;}
.eyebrow{
  font-family:"Courier New",monospace;font-size:13px;font-weight:700;
  letter-spacing:0.1em;text-transform:uppercase;color:var(--ledger);margin:0 0 12px;
  text-align:left;
}
h1.title{margin:0;font-size:46px;font-weight:700;letter-spacing:-0.01em;color:var(--ink);text-align:left;}
.strapline{margin:14px 0 0;color:var(--body-ink);font-size:18px;max-width:56ch;text-align:left;}
.meta-row{
  display:flex;gap:18px;margin-top:24px;font-family:"Courier New",monospace;
  font-size:13px;font-weight:700;color:var(--ink);text-align:left;
}

nav.toc{padding:22px 0;border-bottom:1px solid var(--rule);text-align:left;}
nav.toc a{
  font-family:"Courier New",monospace;font-size:13px;font-weight:700;letter-spacing:0.06em;
  text-transform:uppercase;color:var(--ink);text-decoration:none;border-bottom:1px solid var(--ink);
  margin-right:20px;
}
nav.toc a:hover{color:var(--ledger);border-color:var(--ledger);}

main{padding:36px 0 80px;}

.entry{padding:28px 0;border-bottom:1px solid var(--rule);}
.entry:first-of-type{padding-top:0;}

.stamp{
  display:block;background:var(--ledger);color:var(--paper);font-family:"Courier New",monospace;
  font-size:13px;font-weight:700;letter-spacing:0.03em;padding:10px 14px;margin-bottom:14px;line-height:1.5;
  text-align:left;
}
.stamp .label{display:block;font-size:10px;letter-spacing:0.16em;opacity:0.85;margin-bottom:3px;}

.entry h2{margin:0 0 8px;font-size:25px;font-weight:700;color:var(--ink);text-align:left;}
.entry h2 a{color:var(--ink);text-decoration:none;}
.entry h2 a:hover{color:var(--ledger);}

.source-line{font-size:14px;color:var(--ink);font-style:italic;font-weight:600;margin:0 0 12px;text-align:left;}
.dek{margin:0;font-size:17px;text-align:left;}

footer{
  border-top:4px solid var(--ink);padding:28px 0 60px;font-family:"Courier New",monospace;
  font-size:13px;color:var(--ink);text-align:left;
}
footer a{color:var(--ledger);}
footer p{font-family:Georgia,serif;font-size:15px;line-height:1.5;text-align:left;}

/* single post page */
.backlink{
  display:block;padding:20px 0;font-family:"Courier New",monospace;font-size:13px;
  font-weight:700;letter-spacing:0.06em;text-transform:uppercase;color:var(--ink);text-decoration:none;
  text-align:left;
}
.backlink:hover{color:var(--ledger);}
.post-header{border-bottom:4px solid var(--ink);padding-bottom:0;margin-bottom:32px;}
.mapping-bar{
  background:var(--ledger);color:var(--paper);padding:14px 18px;margin-bottom:22px;
  font-family:"Courier New",monospace;font-size:14px;font-weight:700;letter-spacing:0.03em;line-height:1.5;
  text-align:left;
}
.mapping-bar .label{display:block;font-size:10px;letter-spacing:0.16em;opacity:0.85;margin-bottom:4px;}
.post-header h1{font-size:32px;margin:0 0 10px;font-weight:700;letter-spacing:-0.01em;color:var(--ink);padding-bottom:20px;text-align:left;}
article h3{
  font-family:"Courier New",monospace;font-size:13px;letter-spacing:0.1em;text-transform:uppercase;
  color:var(--ledger);margin:36px 0 14px;font-weight:700;border-bottom:2px solid var(--ledger);padding-bottom:6px;
  text-align:left;
}
article p{font-size:18px;margin:0 0 20px;color:var(--body-ink);text-align:justify;}
.mapping-citation{
  background:var(--ledger-bg);border-left:5px solid var(--ledger);padding:16px 20px;margin:40px 0 20px;font-size:15px;
  text-align:left;
}
.mapping-citation .label{
  display:block;font-family:"Courier New",monospace;font-size:11px;letter-spacing:0.12em;
  text-transform:uppercase;color:var(--ledger);font-weight:700;margin-bottom:8px;
}
.mapping-citation strong{color:var(--ink);}

/* =========================================================
   QUOTATIONS — SOURCE-LABELLED
   ---------------------------------------------------------
   CRITICAL: a blockquote's label must match where the words
   actually came from. Previously a single rule stamped
   "From the manuscript" onto EVERY blockquote on the site,
   including Brief-layout pull-quotes taken from news
   articles or written for the site. That mislabelled
   non-manuscript text as the author's own book and is the
   bug this section exists to prevent recurring.

   Base .wrap blockquote carries NO label. A label appears
   only when an explicit class is applied:
     .quote--manuscript  -> "From the manuscript"
     .quote--article     -> "From the source article"
     (no class)          -> unlabelled pull-quote
   ========================================================= */
.wrap blockquote{
  background:var(--ledger-bg);
  border:2px solid var(--ledger);
  border-radius:2px;
  padding:18px 22px;
  margin:26px 0;
  font-style:italic;
  font-size:17px;
  line-height:1.55;
  color:var(--body-ink);
  text-align:left;
  position:relative;
}
.wrap blockquote p{
  margin:0;
}

/* Manuscript excerpts. Deep Read posts write these in Markdown as
   "> *text*"; the deep-read layout wraps article content in a
   container carrying .manuscript-quotes so the label applies to
   markdown-generated blockquotes without needing a class on each. */
.wrap blockquote.quote--manuscript::before,
.manuscript-quotes blockquote::before{
  content:"From the manuscript";
  display:block;
  font-family:"Courier New",monospace;
  font-style:normal;
  font-size:10px;
  font-weight:700;
  letter-spacing:0.12em;
  text-transform:uppercase;
  color:var(--ledger);
  margin-bottom:8px;
}

/* Verbatim quotation from the source news article. Visually
   distinct from manuscript excerpts (slate, dashed) so the two
   can never be confused at a glance. */
.wrap blockquote.quote--article{
  background:var(--counter-bg);
  border:2px dashed var(--counter);
}
.wrap blockquote.quote--article::before{
  content:"From the source article";
  display:block;
  font-family:"Courier New",monospace;
  font-style:normal;
  font-size:10px;
  font-weight:700;
  letter-spacing:0.12em;
  text-transform:uppercase;
  color:var(--counter);
  margin-bottom:8px;
}

/* Inline citation line inside a quote box (chapter ref, or
   publication + date for article quotes). */
.wrap blockquote .cite{
  display:block;
  margin-top:10px;
  font-family:"Courier New",monospace;
  font-style:normal;
  font-size:11px;
  letter-spacing:0.06em;
  color:var(--ledger);
}
.wrap blockquote.quote--article .cite{
  color:var(--counter);
}

/* chapter index page */
.chapter-group{margin-bottom:36px;}
.chapter-group h2{
  font-family:"Courier New",monospace;font-size:16px;text-transform:uppercase;letter-spacing:0.06em;
  color:var(--ledger);border-bottom:2px solid var(--ledger);padding-bottom:8px;margin-bottom:16px;
  text-align:left;
}
.chapter-group ul{list-style:none;padding:0;margin:0;}
.chapter-group li{margin-bottom:10px;}
.chapter-group a{color:var(--ink);font-size:17px;text-decoration:none;}
.chapter-group a:hover{color:var(--ledger);}

@media (max-width:600px){
  h1.title{font-size:34px;}
  .wrap{padding:0 18px;}
}

/* =========================================================
   BRIEF FORMAT ADDITIONS
   ========================================================= */

.brief-tag{
  display:inline-block;
  font-family:"Courier New",monospace;
  font-size:11px;
  font-weight:700;
  letter-spacing:0.14em;
  text-transform:uppercase;
  color:var(--ledger);
  border:1px solid var(--ledger);
  padding:3px 8px;
  margin-bottom:14px;
}

.mapping-bar--brief{
  background:transparent;
  color:var(--ink);
  border-left:4px solid var(--ledger);
  padding:6px 0 6px 14px;
  margin-bottom:18px;
  font-family:"Courier New",monospace;
  font-size:13px;
  font-weight:700;
  text-align:left;
}

.brief-header h1{
  font-size:26px;
}

/* Brief post body copy ("The story" / "The reframe") uses the same
   article h3 / article p rules as standard and deep-read posts, so no
   .brief-gist / .brief-angle rules are needed here any more. */

.mapping-citation--brief{
  background:var(--ledger-bg);
  border-left:5px solid var(--ledger);
  padding:14px 18px;
  margin:28px 0 20px;
}
/* --- brief homepage list row --- */
.entry.entry--brief{
  padding:18px 0;
  border-bottom:1px dashed var(--rule);
}

.entry.entry--brief .stamp{
  display:inline-block;
  background:transparent;
  color:var(--ledger);
  border:1px solid var(--ledger);
  padding:3px 9px;
  font-family:"Courier New",monospace;
  font-size:0;
  font-weight:700;
  letter-spacing:0.1em;
  text-transform:uppercase;
  margin-bottom:10px;
}
.entry.entry--brief .stamp .label{
  display:none;
}
.entry.entry--brief .stamp::before{
  content:"Brief — Ch. " attr(data-chapter);
  font-size:10px;
}

.entry.entry--brief h2{
  font-size:20px;
  margin:0 0 6px;
}

.entry.entry--brief .source-line{
  font-size:13px;
  margin:0 0 8px;
}

.entry.entry--brief .dek{
  font-size:15px;
  display:block;
}

/* =========================================================
   Deep-read homepage marker
   ========================================================= */
.entry .deep-read-tag{
  display:inline-block;
  background:var(--ink);
  color:var(--paper);
  font-family:"Courier New",monospace;
  font-size:10px;
  font-weight:700;
  letter-spacing:0.1em;
  text-transform:uppercase;
  padding:3px 9px;
  margin-bottom:8px;
}

.deep-read-badge{
  display:inline-block;
  background:var(--ink);
  color:var(--paper);
  font-family:"Courier New",monospace;
  font-size:11px;
  font-weight:700;
  letter-spacing:0.1em;
  text-transform:uppercase;
  padding:4px 10px;
  margin-bottom:10px;
}

/* book_reference sentence, rendered inside the mapping-citation box */
.book-reference-note{
  margin:10px 0 0;
  font-size:15px;
  font-style:italic;
  color:var(--body-ink);
}
/* =========================================================
   DATE DIVIDERS
   ========================================================= */

.date-divider{
  border:none;
  border-top:2px solid var(--ink);
  margin:36px 0 24px;
}

.date-heading{
  font-family:"Courier New",monospace;
  font-size:13px;
  font-weight:700;
  letter-spacing:0.1em;
  text-transform:uppercase;
  color:var(--ledger);
  margin:0 0 18px;
  text-align:left;
}

main .wrap > .date-heading:first-of-type{
  margin-top:0;
}

/* chapter index entries */
.chapter-group li{
  margin-bottom:18px;list-style:none;
}
.entry-row{
  display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;
  row-gap:4px;
}
.entry-row a{
  color:var(--ink);text-decoration:none;font-size:17px;font-weight:700;
}
.entry-row a:hover{color:var(--ledger);}
.entry-date{
  font-family:"Courier New",monospace;font-size:12px;color:var(--body-ink);opacity:0.75;
  white-space:nowrap;
}
.format-tag{
  display:inline-block;font-family:"Courier New",monospace;font-size:10px;font-weight:400;
  letter-spacing:0.1em;text-transform:uppercase;color:var(--body-ink);opacity:0.7;
  border:1px solid var(--rule);padding:2px 7px;white-space:nowrap;
}
.format-tag.deep-read{
  background:var(--ink);color:var(--paper);border-color:var(--ink);opacity:1;
}
.format-tag.brief{
  background:transparent;color:var(--ledger);border-color:var(--ledger);opacity:1;
}
.format-tag.counter{
  background:transparent;color:var(--counter);border-color:var(--counter);border-style:dashed;opacity:1;
}

/* =========================================================
   STANDARD-POST STAMP — homepage + individual post pages
   ========================================================= */
.standard-tag{
  display:inline-block;
  font-family:"Courier New",monospace;
  font-size:10px;
  font-weight:400;
  letter-spacing:0.1em;
  text-transform:uppercase;
  color:var(--body-ink);
  opacity:0.7;
  border:1px solid var(--rule);
  padding:3px 9px;
  margin-bottom:10px;
}

.post-header .standard-tag,
.post-header .deep-read-badge{
  margin-bottom:14px;
}

/* =========================================================
   COUNTER-READ — boundary-case entries
   A Counter-Read is still a Standard, Deep Read, or Brief in
   structure but carries an additional counter: true flag,
   marked with this slate-grey dashed badge.
   ========================================================= */
.counter-badge{
  display:inline-block;
  background:transparent;
  color:var(--counter);
  font-family:"Courier New",monospace;
  font-size:11px;
  font-weight:700;
  letter-spacing:0.1em;
  text-transform:uppercase;
  border:1px dashed var(--counter);
  padding:4px 10px;
  margin-bottom:10px;
  margin-right:8px;
}

.entry .counter-tag{
  display:inline-block;
  background:transparent;
  color:var(--counter);
  font-family:"Courier New",monospace;
  font-size:10px;
  font-weight:700;
  letter-spacing:0.1em;
  text-transform:uppercase;
  border:1px dashed var(--counter);
  padding:3px 9px;
  margin-bottom:8px;
  margin-right:6px;
}

article h3.counter-verdict{
  color:var(--counter);
  border-bottom-color:var(--counter);
}

.mapping-citation.mapping-citation--counter{
  background:var(--counter-bg);
  border-left-color:var(--counter);
}
.mapping-citation--counter .label{
  color:var(--counter);
}
/* =========================================================
   SEARCH PAGE
   ========================================================= */
.search-box{
  margin:8px 0 24px;
}
.search-input{
  width:100%;
  font-family:Georgia,"Times New Roman",serif;
  font-size:19px;
  padding:12px 14px;
  border:2px solid var(--ink);
  background:var(--paper);
  color:var(--body-ink);
  box-sizing:border-box;
}
.search-input:focus{
  outline:none;
  border-color:var(--ledger);
}
.search-filters{
  display:flex;
  flex-wrap:wrap;
  gap:16px;
  margin-top:14px;
  font-family:"Courier New",monospace;
  font-size:12px;
  font-weight:700;
  letter-spacing:0.06em;
  text-transform:uppercase;
  color:var(--ink);
}
.search-filters label{
  display:inline-flex;
  align-items:center;
  gap:6px;
  cursor:pointer;
}
.search-status{
  font-family:"Courier New",monospace;
  font-size:13px;
  font-weight:700;
  letter-spacing:0.06em;
  text-transform:uppercase;
  color:var(--ledger);
  margin:0 0 8px;
  text-align:left;
}
.search-result{
  padding:24px 0;
}