/* REBEL.REBEL — v1
   Ink surfaces carry the argument. Paper surfaces carry the evidence.
   The two registers are not decorated alike. */

:root{
  /* INK — the House */
  --ink:        #14120E;
  --ink-raised: #1C1913;
  --cream:      #EFE6D2;
  --cream-mut:  #C6BBA2;
  --gold:       #B08D4F;
  --hair-dark:  #3A342A;

  /* PAPER — the Lab */
  --paper:      #F7F5F0;
  --paper-card: #FFFFFF;
  --paper-ink:  #211E19;
  --paper-mut:  #6E6350;
  --paper-hair: #CFC7B6;

  --sans: "Montserrat", "Helvetica Neue", Arial, sans-serif;
  --serif: "Cormorant Garamond", "Cormorant", Georgia, serif;

  --measure: 34rem;
  --gutter: clamp(1.25rem, 5vw, 4.5rem);
  --step: clamp(4.5rem, 9vw, 8rem);
}

*,*::before,*::after{ box-sizing:border-box; }

html{ -webkit-text-size-adjust:100%; }

body{
  margin:0;
  background:var(--ink);
  color:var(--cream);
  font-family:var(--serif);
  font-size:clamp(1.0625rem,0.4vw + 1rem,1.1875rem);
  line-height:1.6;
  font-weight:400;
  -webkit-font-smoothing:antialiased;
}

a{ color:inherit; text-decoration:none; }
a:focus-visible,button:focus-visible{
  outline:1px solid var(--gold);
  outline-offset:4px;
}

/* ─── shared type roles ─────────────────────────────── */

.label{
  font-family:var(--sans);
  font-size:0.6rem;
  font-weight:500;
  letter-spacing:0.22em;
  text-transform:uppercase;
  color:var(--gold);
  margin:0 0 1.5rem;
}

.statement{
  font-family:var(--serif);
  font-weight:400;
  font-size:clamp(1.9rem,4.4vw,3.1rem);
  line-height:1.14;
  letter-spacing:-0.005em;
  margin:0;
  max-width:32ch;
}

.statement--wide{ max-width:44ch; }

.lede{
  max-width:var(--measure);
  color:var(--cream-mut);
  margin:1.75rem 0 0;
}

.gold-line{
  font-style:italic;
  color:var(--gold);
  max-width:58ch;
  font-size:1.06rem;
}

.hair{
  border:0;
  border-top:1px solid var(--hair-dark);
  margin:0;
}

/* ─── layout ────────────────────────────────────────── */

.wrap{
  max-width:70rem;
  margin:0 auto;
  padding:0 var(--gutter);
}

section{ padding:var(--step) 0; }

/* ─── nav ───────────────────────────────────────────── */

.nav{
  position:sticky; top:0; z-index:40;
  background:color-mix(in srgb, var(--ink) 92%, transparent);
  backdrop-filter:blur(8px);
  border-bottom:1px solid var(--hair-dark);
}
.nav__in{
  display:flex; align-items:baseline; justify-content:space-between;
  gap:1.5rem; padding:1.1rem var(--gutter);
  max-width:70rem; margin:0 auto;
}
.wordmark{
  font-family:var(--sans);
  font-size:0.72rem; font-weight:600;
  letter-spacing:0.3em; color:var(--cream);
  white-space:nowrap;
}
.nav__links{
  display:flex; flex-wrap:wrap; gap:clamp(0.9rem,2.4vw,2rem);
  font-family:var(--sans);
  font-size:0.6rem; font-weight:400;
  letter-spacing:0.16em; text-transform:uppercase;
  color:var(--cream-mut);
}
.nav__links .nav__pair{ display:inline-flex; gap:clamp(0.9rem,2.4vw,2rem); }
.nav__links a{ padding:0.2rem 0; border-bottom:1px solid transparent; transition:color .18s, border-color .18s; }
.nav__links a:hover{ color:var(--cream); border-color:var(--gold); }
.nav__links a[aria-current="page"]{ color:var(--cream); border-color:var(--gold); }

/* ─── hero ──────────────────────────────────────────── */

.hero{ padding:clamp(4rem,11vw,9rem) 0 var(--step); }
.hero__kicker{
  font-family:var(--sans); font-size:0.62rem; font-weight:400;
  letter-spacing:0.24em; text-transform:uppercase;
  color:var(--cream-mut); margin:0 0 2.4rem;
}
.hero .statement{ font-size:clamp(2.1rem,5.6vw,3.9rem); }
.actions{ display:flex; flex-wrap:wrap; gap:2rem; margin-top:3rem; }
.action{
  font-family:var(--sans); font-size:0.64rem; font-weight:500;
  letter-spacing:0.2em; text-transform:uppercase;
  color:var(--cream); border-bottom:1px solid var(--gold);
  padding-bottom:0.4rem; transition:color .18s, border-color .18s;
}
.action:hover{ color:var(--gold); }

/* ─── two-column score / pair blocks ────────────────── */

.pair{
  display:grid; gap:clamp(2rem,5vw,4rem);
  grid-template-columns:repeat(auto-fit,minmax(17rem,1fr));
}
.score__name{
  font-family:var(--sans); font-size:0.66rem; font-weight:500;
  letter-spacing:0.24em; text-transform:uppercase;
  color:var(--gold); margin:0 0 0.9rem;
}
.score__q{
  font-family:var(--serif); font-size:clamp(1.5rem,3vw,2rem);
  line-height:1.2; margin:0 0 1rem;
}
.score__body{ color:var(--cream-mut); margin:0; }

/* ─── steps (the loop) ──────────────────────────────── */

.steps{
  display:grid; gap:clamp(1.75rem,4vw,3rem);
  grid-template-columns:repeat(auto-fit,minmax(13rem,1fr));
  align-items:start;
  margin:0; padding:0; list-style:none;
  counter-reset:none;
}
.steps__name{
  font-family:var(--sans); font-size:0.62rem; font-weight:500;
  letter-spacing:0.2em; text-transform:uppercase;
  color:var(--cream); margin:0 0 0.75rem;
}
.steps__body{ color:var(--cream-mut); margin:0; font-size:1rem; }

/* ─── the name ──────────────────────────────────────── */

.name{ display:grid; gap:0.4rem; }
.name p{
  margin:0;
  font-size:clamp(1.4rem,3.2vw,2.1rem);
  line-height:1.3;
}
.name b{ font-weight:600; }
.name__note{
  margin:2.25rem 0 0; color:var(--cream-mut); font-style:italic;
  max-width:52ch; font-size:1.05rem;
}

/* ═══ PAPER — the Lab ═══════════════════════════════════
   Cold ground, technical labels, specimen numbering.       */

.paper{
  background:var(--paper);
  color:var(--paper-ink);
}
.paper .label{ color:var(--paper-mut); }
.paper .statement{ color:var(--paper-ink); }
.paper .lede{ color:var(--paper-mut); }
.paper .hair{ border-top-color:var(--paper-hair); }

.specimen{
  font-family:var(--sans);
  font-size:0.58rem; font-weight:400;
  letter-spacing:0.16em; text-transform:uppercase;
  color:var(--paper-mut);
}

.exhibit{
  display:grid; gap:clamp(1rem,2.5vw,1.75rem);
  grid-template-columns:repeat(auto-fit,minmax(18rem,1fr));
  margin-top:2.75rem;
}
.card{
  background:var(--paper-card);
  border:1px solid var(--paper-hair);
  padding:clamp(1.35rem,2.5vw,1.9rem);
}
.card--held{ border-color:var(--gold); border-width:1px; }
.card__label{
  font-family:var(--sans); font-size:0.56rem; font-weight:500;
  letter-spacing:0.18em; text-transform:uppercase;
  color:var(--paper-mut); margin:0 0 1.1rem;
}
.card--held .card__label{ color:var(--gold); }
.card__answer{
  margin:0 0 1.6rem; font-size:1.06rem; line-height:1.5;
}
.card dl{ margin:0; display:grid; gap:0.5rem; }
.card .row{ display:flex; gap:0.75rem; align-items:baseline; }
.card dt{
  font-family:var(--sans); font-size:0.54rem; font-weight:500;
  letter-spacing:0.16em; text-transform:uppercase;
  color:var(--paper-mut); min-width:5.2rem;
}
.card--held dt{ color:var(--gold); }
.card dd{ margin:0; font-style:italic; font-size:0.98rem; color:var(--paper-ink); }
.card:not(.card--held) dd{ color:var(--paper-mut); }

.verdict{
  margin:2.5rem 0 0; font-style:italic;
  font-size:clamp(1.1rem,2.2vw,1.35rem);
  max-width:52ch;
}
.disclaimer{
  font-family:var(--sans); font-size:0.56rem; letter-spacing:0.14em;
  text-transform:uppercase; color:var(--paper-mut);
  margin:1.4rem 0 0;
}

/* ─── index grid — replaces the blog roll ───────────── */

.filters{
  display:flex; flex-wrap:wrap; gap:1.5rem; margin:0 0 3rem;
  padding:0; list-style:none;
}
.filters button{
  font-family:var(--sans); font-size:0.6rem; font-weight:500;
  letter-spacing:0.18em; text-transform:uppercase;
  background:none; border:0; border-bottom:1px solid transparent;
  color:var(--paper-mut); padding:0.3rem 0; cursor:pointer;
  transition:color .18s, border-color .18s;
}
.filters button:hover{ color:var(--paper-ink); }
.filters button[aria-pressed="true"]{ color:var(--paper-ink); border-color:var(--gold); }

.index{
  display:grid; gap:0; align-items:start;
  grid-template-columns:repeat(auto-fill,minmax(19rem,1fr));
  border-top:1px solid var(--paper-hair);
}
.entry{
  display:block;
  padding:clamp(1.75rem,3.5vw,2.5rem) clamp(1rem,2vw,1.75rem) clamp(2rem,4vw,2.75rem) 0;
  border-bottom:1px solid var(--paper-hair);
}
.entry__title{
  font-family:var(--serif); font-weight:400;
  font-size:clamp(1.35rem,2.4vw,1.75rem);
  line-height:1.2; margin:0 0 1.1rem;
  max-width:22ch;
  transition:color .18s;
}
.entry:hover .entry__title{ color:var(--gold); }
.entry__note{ margin:0.9rem 0 0; color:var(--paper-mut); font-size:0.98rem; max-width:32ch; }
.status{
  display:inline-block; margin-left:0.5rem;
  font-family:var(--sans); font-size:0.5rem; font-weight:500;
  letter-spacing:0.16em; text-transform:uppercase;
  color:var(--gold); border:1px solid var(--gold);
  padding:0.2rem 0.45rem; vertical-align:0.15em;
}

/* ─── claims-stop ───────────────────────────────────── */

.claims{
  border:1px solid var(--hair-dark);
  padding:clamp(1.5rem,3vw,2.25rem);
  max-width:56rem;
}
.claims p{ margin:0; color:var(--cream-mut); font-size:1.02rem; }
.claims p + p{ margin-top:0.85rem; }
.claims strong{ color:var(--cream); font-weight:400; }

/* ─── footer ────────────────────────────────────────── */

.foot{ border-top:1px solid var(--hair-dark); padding:var(--step) 0 3.5rem; }
.foot__grid{
  display:grid; gap:2.5rem;
  grid-template-columns:repeat(auto-fit,minmax(12rem,1fr));
  margin-bottom:4.5rem;
}
.foot__col h3{
  font-family:var(--sans); font-size:0.58rem; font-weight:500;
  letter-spacing:0.2em; text-transform:uppercase;
  color:var(--gold); margin:0 0 1.1rem;
}
.foot__col ul{ list-style:none; margin:0; padding:0; display:grid; gap:0.6rem; }
.foot__col a{ color:var(--cream-mut); font-size:1rem; }
.foot__col a:hover{ color:var(--cream); }
.tagline{
  font-family:var(--serif); font-style:italic;
  font-size:clamp(1.05rem,2.4vw,1.35rem);
  color:var(--gold); margin:0;
  text-transform:lowercase;
}
.foot__rule{ margin:0 0 2.25rem; }
.foot__meta{
  font-family:var(--sans); font-size:0.56rem; letter-spacing:0.16em;
  text-transform:uppercase; color:var(--paper-mut); margin:1.75rem 0 0;
}

/* ─── motion + responsive floor ─────────────────────── */

@media (prefers-reduced-motion:reduce){
  *{ transition:none !important; animation:none !important; }
  html{ scroll-behavior:auto; }
}

@media (max-width:36rem){
  .nav__in{ flex-direction:column; gap:0.9rem; }
  .entry{ padding-right:0; }
}

/* ═══ ADDED 17 AUG 2026 — components the five new pages need ═══
   Same tokens, same idiom. No new colours, no new faces.        */

/* ─── comparison table — clarification, not takedown ────────
   Column labels stay visible. No winner checkmarks. The House
   column is emphasised by type, never coloured like a winner. */

.compare{
  width:100%; border-collapse:collapse; text-align:left;
  font-size:0.98rem; line-height:1.5; margin-top:2.75rem;
}
.compare th,.compare td{
  padding:1.1rem 1.25rem 1.1rem 0;
  border-bottom:1px solid var(--paper-hair);
  vertical-align:top;
}
.compare thead th{
  font-family:var(--sans); font-size:0.56rem; font-weight:500;
  letter-spacing:0.18em; text-transform:uppercase;
  color:var(--paper-mut); padding-bottom:0.9rem;
}
.compare tbody th{
  font-family:var(--sans); font-size:0.56rem; font-weight:500;
  letter-spacing:0.18em; text-transform:uppercase;
  color:var(--gold); width:10rem;
}
.compare td{ color:var(--paper-mut); }
.compare .own{ color:var(--paper-ink); }
.compare thead th.own{ color:var(--paper-ink); border-bottom:1px solid var(--gold); }

@media (max-width:52rem){
  .compare,.compare tbody,.compare tr,.compare td,.compare th{ display:block; width:auto; }
  .compare thead{ display:none; }
  .compare tr{ padding:1.4rem 0; border-bottom:1px solid var(--paper-hair); }
  .compare th,.compare td{ border:0; padding:0 0 0.8rem; }
  .compare tbody th{ width:auto; padding-bottom:0.9rem; }
  .compare td::before{
    content:attr(data-col); display:block;
    font-family:var(--sans); font-size:0.52rem; font-weight:500;
    letter-spacing:0.18em; text-transform:uppercase;
    color:var(--paper-mut); margin-bottom:0.3rem;
  }
}

/* ─── definition rows — dispositions, architecture, routing ── */

.defs{ margin-top:2.5rem; border-top:1px solid var(--hair-dark); }
.paper .defs{ border-top-color:var(--paper-hair); }
.defs__row{
  display:grid; grid-template-columns:minmax(8rem,14rem) 1fr;
  gap:clamp(0.8rem,3vw,2.5rem);
  padding:1.35rem 0; border-bottom:1px solid var(--hair-dark);
  align-items:baseline;
}
.paper .defs__row{ border-bottom-color:var(--paper-hair); }
.defs__k{
  font-family:var(--sans); font-size:0.6rem; font-weight:500;
  letter-spacing:0.18em; text-transform:uppercase;
  color:var(--gold); margin:0;
}
.defs__v{ margin:0; color:var(--cream-mut); max-width:46rem; font-size:1.02rem; }
.paper .defs__v{ color:var(--paper-mut); }
@media (max-width:36rem){ .defs__row{ grid-template-columns:1fr; gap:0.5rem; } }

/* ─── FAQ — accordion, deep-linkable ─────────────────────── */

.faq{ margin-top:2.5rem; border-top:1px solid var(--paper-hair); }
.faq details{ border-bottom:1px solid var(--paper-hair); }
.faq summary{
  cursor:pointer; list-style:none; position:relative;
  padding:1.3rem 2rem 1.3rem 0;
  font-family:var(--serif); font-size:clamp(1.1rem,2vw,1.32rem);
  line-height:1.3; color:var(--paper-ink); transition:color .18s;
}
.faq summary::-webkit-details-marker{ display:none; }
.faq summary:hover{ color:var(--gold); }
.faq summary::after{
  content:"+"; position:absolute; right:0; top:1.25rem;
  font-family:var(--sans); font-size:0.95rem; color:var(--gold);
}
.faq details[open] summary::after{ content:"\2212"; }
.faq__a{
  margin:0; padding:0 0 1.7rem; max-width:46rem;
  color:var(--paper-mut); font-size:1.02rem; line-height:1.65;
}

/* ─── form — decision first, no budget, no package ───────── */

.field{ display:grid; gap:0.55rem; margin-bottom:1.9rem; }
.field label{
  font-family:var(--sans); font-size:0.58rem; font-weight:500;
  letter-spacing:0.2em; text-transform:uppercase; color:var(--gold);
}
.field input,.field textarea,.field select{
  font-family:var(--serif); font-size:1.05rem; color:var(--cream);
  background:transparent; border:0; border-bottom:1px solid var(--hair-dark);
  padding:0.65rem 0; width:100%; transition:border-color .18s;
}
.field textarea{ min-height:6rem; resize:vertical; line-height:1.55; }
.field input:focus,.field textarea:focus,.field select:focus{
  outline:none; border-bottom-color:var(--gold);
}
.field select option{ background:var(--ink); color:var(--cream); }
button.action{ background:none; border:0; border-bottom:1px solid var(--gold); cursor:pointer; }

/* ─── press shelf + status chips on ink ──────────────────── */

.shelf{
  display:grid; gap:0; align-items:start;
  grid-template-columns:repeat(auto-fill,minmax(17rem,1fr));
  border-top:1px solid var(--paper-hair);
  margin-top:2.75rem;
}
.shelf .entry{ border-bottom:1px solid var(--paper-hair); }
.status--quiet{ color:var(--paper-mut); border-color:var(--paper-hair); }

/* ─── accessibility fixes ────────────────────────────────── */
/* foot__meta was --paper-mut (#6E6350) on the ink ground: 3.0:1.
   Raised to --cream-mut for AA on small text. */
.foot__meta{ color:var(--cream-mut); }

.skip{
  position:absolute; left:-9999px; background:var(--gold); color:var(--ink);
  font-family:var(--sans); font-size:0.6rem; letter-spacing:0.16em;
  text-transform:uppercase; padding:0.75rem 1.2rem; z-index:99;
}
.skip:focus{ left:1rem; top:1rem; }


/* ═══ THE LAB GOES COLD — brief §6 receipts convention ═══════
   Paper column, verbatim: "Cold near-white. Ink text. Gold used
   once or not at all." and "Hairline rules, specimen numbering,
   monospace run references."

   Gold now appears on a paper surface exactly ONCE: the
   retrieved-with-fidelity specimen on the Assay page, which is the
   evidence object the whole argument turns on. Everywhere else the
   Lab is ink, hairline and monospace. The dark speaks. The light
   proves. Nothing is styled to look like the other.              */

:root{ --mono: "SFMono-Regular","SF Mono",Menlo,Consolas,"Liberation Mono",monospace; }

/* The run reference is the specimen number. Monospace, as a batch
   number is. The rest of the label line stays Montserrat micro-caps. */
.specimen .ref{
  font-family:var(--mono);
  font-size:0.95em;
  letter-spacing:0.04em;
  color:var(--paper-ink);
}
.ink .specimen .ref{ color:var(--cream); }

/* Status chips: factual metadata, not gamification, not gold. */
.status{
  color:var(--paper-mut);
  border-color:var(--paper-hair);
}

/* Definition keys, comparison keys, filters, FAQ furniture:
   ink and hairline on paper. Gold survives on ink surfaces only. */
.paper .defs__k{ color:var(--paper-mut); }
.compare tbody th{ color:var(--paper-mut); }
.compare thead th.own{ border-bottom:1px solid var(--paper-ink); }
.filters button[aria-pressed="true"]{
  color:var(--paper-ink);
  border-color:var(--paper-ink);
}
.faq summary:hover{ color:var(--paper-mut); }
.faq summary::after{ color:var(--paper-mut); }

/* Index tiles: the hover signal is a rule, not a colour change.
   A specimen label does not glow. */
.entry:hover .entry__title{
  color:var(--paper-ink);
  box-shadow:inset 0 -1px 0 var(--paper-ink);
}

/* THE ONE PERMITTED USE. The fidelity specimen keeps its gold. */
.card--held{ border-color:var(--gold); }
.card--held .card__label{ color:var(--gold); }
.card--held dt{ color:var(--gold); }

/* Rules between ROWS, not under each tile. `align-items:start` was
   stopping tiles stretching to their row height, so every hairline
   landed at a different y and the grid read as broken rather than
   ruled. Stretch the tiles; hold the content at the top. */
.index,.shelf{ align-items:stretch; }
.index .entry,.shelf .entry{ display:flex; flex-direction:column; }
.index .entry__note,.shelf .entry__note{ margin-top:auto; padding-top:0.9rem; }

/* ═══ CONTRAST + REGISTER LEAKS — found by walking every text node
   against its painted background. Three classes of bug.          ═══ */

/* 1. Ink-register action on a paper ground: cream on near-white was
      1.14:1. Effectively invisible. */
.paper .action{ color:var(--paper-ink); border-bottom-color:var(--paper-ink); }
.paper .action:hover{ color:var(--paper-mut); border-bottom-color:var(--paper-mut); }

/* 2. The one permitted gold now marks the specimen and nothing else.
      Gold text at label size was 3.1:1 on white. The FRAME carries the
      signal; the label furniture stays ink. More Le Labo, and it passes:
      a specimen is identified by its frame and its number, not by
      coloured type. */
.card--held .card__label{ color:var(--paper-ink); }
.card--held dt{ color:var(--paper-ink); }

/* 3. Paper tokens leaking onto ink sections: --paper-mut on the ink
      ground was 3.17:1. Specimen lines and status chips take the cream
      register wherever they sit outside a .paper section. */
section:not(.paper) .specimen,
.hero .specimen{ color:var(--cream-mut); }
section:not(.paper) .specimen .ref,
.hero .specimen .ref{ color:var(--cream); }
section:not(.paper) .status{ color:var(--cream-mut); border-color:var(--hair-dark); }

/* ═══ FEATURED COMPARISON — RAG / GEO / THE ASSAY ═══════════
   Given its own screen and real scale. The House column is held
   in a hairline gold frame — the single permitted use of gold on
   a paper surface on this page — and is emphasised by type, never
   coloured like a sales winner. Column labels stay visible; there
   are no winner checkmarks. */

.compare--feature{ margin-top:3.5rem; font-size:1.02rem; }
.compare--feature thead th{
  font-size:0.68rem; letter-spacing:0.2em; padding-bottom:1.5rem;
  color:var(--paper-mut);
}
.compare--feature thead th.own{
  color:var(--paper-ink); font-weight:600;
  border-bottom:0;
}
.compare--feature tbody th{
  font-size:0.62rem; letter-spacing:0.18em; width:11.5rem;
  color:var(--paper-mut); padding:1.6rem 1.25rem 1.6rem 0;
}
.compare--feature td{ padding:1.6rem 1.5rem; line-height:1.45; }
.compare--feature .own{
  color:var(--paper-ink);
  background:var(--paper-card);
  border-left:1px solid var(--rule-gold, rgba(176,141,79,.5));
  border-right:1px solid var(--rule-gold, rgba(176,141,79,.5));
}
.compare--feature thead th.own{
  background:var(--paper-card);
  border-top:1px solid rgba(176,141,79,.5);
  border-left:1px solid rgba(176,141,79,.5);
  border-right:1px solid rgba(176,141,79,.5);
  padding-top:1.5rem;
}
.compare--feature tbody tr:last-child .own{ border-bottom:1px solid rgba(176,141,79,.5); }
.compare--feature .own::before{ color:var(--paper-mut); }

.compare-note{
  font-family:var(--serif); font-style:italic;
  font-size:clamp(1.1rem,2.2vw,1.4rem); line-height:1.5;
  color:var(--paper-ink); max-width:52ch; margin:3rem 0 0;
}

@media (max-width:52rem){
  .compare--feature .own{ border:1px solid rgba(176,141,79,.5); margin-top:.4rem; }
  .compare--feature thead th.own{ border:0; }
}

/* ═══ THE SHELF — covers beside the specimen line ═══════════
   Art is evidence here, not atmosphere: these are the objects the
   imprint actually made. Type still carries the argument. */

.shelf--art{
  display:grid; gap:clamp(2.5rem,5vw,4rem);
  grid-template-columns:repeat(auto-fill,minmax(19rem,1fr));
  margin-top:3rem; border-top:0;
}
.book{ display:grid; grid-template-columns:8.5rem 1fr; gap:1.5rem; align-items:start; }
.book__art{
  width:100%; height:auto; display:block;
  border:1px solid var(--paper-hair);
  background:var(--paper-card);
}
.book__body{ min-width:0; }
.book__title{
  font-family:var(--serif); font-weight:400;
  font-size:clamp(1.25rem,2vw,1.55rem); line-height:1.15;
  margin:0 0 .7rem;
}
.book__excerpt{
  font-family:var(--serif); font-style:italic;
  font-size:1rem; line-height:1.45; color:var(--paper-ink);
  margin:.9rem 0 0; padding-left:1rem;
  border-left:1px solid var(--paper-hair);
}
.book__note{ margin:.55rem 0 0; font-size:.95rem; line-height:1.5; color:var(--paper-mut); }
.book__buy{
  display:inline-block; margin-top:1.1rem;
  font-family:var(--sans); font-size:.6rem; font-weight:500;
  letter-spacing:.2em; text-transform:uppercase;
  color:var(--paper-ink); border-bottom:1px solid var(--gold);
  padding-bottom:.35rem; transition:color .18s,border-color .18s;
}
.book__buy:hover{ color:var(--gold); }
.poster{ width:100%; height:auto; display:block; border:1px solid var(--paper-hair); }
.series-head{ display:grid; grid-template-columns:14rem 1fr; gap:clamp(1.5rem,4vw,3rem); align-items:start; }
@media (max-width:40rem){
  .book{ grid-template-columns:6.5rem 1fr; gap:1.1rem; }
  .series-head{ grid-template-columns:1fr; }
  .series-head .poster{ max-width:14rem; }
}

/* PDF beside each piece in the index — open, never gated. */
.pdf-link{
  align-self:start; margin-top:1rem;
  font-family:var(--sans); font-size:.55rem; font-weight:500;
  letter-spacing:.2em; text-transform:uppercase;
  color:var(--paper-mut); border-bottom:1px solid var(--paper-hair);
  padding-bottom:.3rem; transition:color .18s,border-color .18s;
}
.pdf-link:hover{ color:var(--paper-ink); border-bottom-color:var(--paper-ink); }
