/* ============================================================
   Cyber Safety Simulation — Oxford-style Print Handbook
   ------------------------------------------------------------
   Cream stock · burgundy accents · EB Garamond throughout ·
   classical hairlines · drop caps · centred chapter openers.
   Designed for Puppeteer-rendered A4 portrait PDF.
   ============================================================ */

/* ---------- Screen-only toolbar ---------- */
.print-toolbar { position: sticky; top: 0; z-index: 100; background: #2a1f15; color: #fdfaf2; padding: 12px 0; box-shadow: 0 2px 12px rgba(0,0,0,0.3); font-family: 'Inter', system-ui, sans-serif; }
.print-toolbar .ptb-inner { display: flex; justify-content: space-between; align-items: center; gap: 16px; flex-wrap: wrap; }
.print-toolbar .ptb-text { color: #fdfaf2; }
.print-toolbar .ptb-text small { display: block; opacity: 0.75; font-weight: 400; margin-top: 2px; }
.print-toolbar .ptb-actions { display: flex; gap: 10px; }

@media print {
  .print-toolbar, .no-print, header, footer, nav, .top-bar { display: none !important; }
  body { background: #fff; margin: 0; padding: 0; }
}

/* ============================================================
   PAGE SETUP — A4 portrait, generous Oxford margins
   ============================================================ */
@page {
  size: A4 portrait;
  margin: 0;
}

.book {
  background: #f1ece1;   /* on-screen backdrop only */
  font-family: 'EB Garamond', Garamond, 'Crimson Pro', Georgia, 'Times New Roman', serif;
  color: #1f1815;
  font-size: 12.5pt;     /* comfortable screen-reading size */
  line-height: 1.6;
  padding: 24px 0;
}

@media print {
  .book { padding: 0 !important; background: #fff !important; }
}

/* Targeted reset — only neutralise the school's site-wide footer/header/nav
   styles in case they cascade into book pages. Do NOT use a wildcard reset
   on `section` — that would erase the cover's burgundy fill. */
.book > footer, .book > header, .book > nav,
.book .epigraph footer, .book blockquote footer {
  background: transparent !important;
  color: inherit !important;
  padding: 0 !important;
  margin: 0 !important;
}

/* ---------- Page (white sheet for ink-saving) ---------- */
.page {
  width: 210mm;
  min-height: 297mm;
  padding: 22mm 24mm 26mm;
  margin: 0 auto 12px;
  background: #ffffff;        /* white — ink-saving */
  position: relative;
  page-break-after: always;
  break-after: page;
  box-shadow: 0 2px 14px rgba(31, 24, 21, 0.10);
  box-sizing: border-box;
}
@media print {
  .page { box-shadow: none; margin: 0 auto; }
}
.page:last-child { page-break-after: auto; break-after: auto; }

/* ============================================================
   COVER (white sheet, classical Oxford typography, ink-light)
   ============================================================ */
.page-cover {
  background: #ffffff;
  color: #2a1f15;
  padding: 0;
  display: flex; align-items: center; justify-content: center;
}
.cover-frame {
  border: 0.4mm solid #6b1f1f;       /* burgundy hairline frame */
  margin: 14mm;
  padding: 18mm 16mm 14mm;
  width: 100%; min-height: calc(297mm - 28mm);
  display: flex; flex-direction: column; align-items: center; justify-content: space-between;
  text-align: center;
  position: relative;
  box-sizing: border-box;
}
.cover-rule { width: 60%; height: 0.3mm; background: #6b1f1f; opacity: 0.55; }
.cover-rule-top, .cover-rule-bottom { margin: 0 auto; }
.cover-rule-mid { margin: 6mm auto; }
.cover-eyebrow {
  font-family: 'EB Garamond', serif;
  font-size: 10pt; letter-spacing: 0.35em;
  color: #6e5e4e; margin: 4mm 0 1mm;
  font-variant: small-caps;
}
.cover-imprint {
  font-size: 8.5pt; letter-spacing: 0.5em;
  color: #6e5e4e; margin: 0 0 10mm;
  font-variant: small-caps;
}
.cover-mark { margin: 4mm 0; }
.cover-mark img {
  width: 26mm; height: 26mm;
  /* sepia / desaturated black-on-white impression — minimal ink */
  filter: grayscale(1) contrast(1.15) brightness(0.45);
  opacity: 0.85;
}
.cover-title {
  font-family: 'Cormorant Garamond', 'EB Garamond', serif;
  font-weight: 500;
  font-size: 48pt;
  line-height: 1.05;
  letter-spacing: 0.02em;
  color: #2a1f15;
  margin: 6mm 0 4mm;
}
.cover-amp {
  font-style: italic;
  font-size: 36pt;
  color: #6b1f1f;
  font-weight: 400;
  display: inline-block;
  margin: 1mm 0;
}
.cover-subtitle {
  font-size: 13pt; color: #4a3a2a;
  margin: 3mm 0 1mm;
  font-style: italic;
}
.cover-subtitle-hi {
  font-family: 'Noto Sans Devanagari', serif;
  font-size: 11pt; color: #6e5e4e;
  margin: 0 0 6mm;
}
.cover-author { margin: 4mm 0 6mm; max-width: 130mm; }
.cover-author p { margin: 1.5mm 0; line-height: 1.5; }
.ca-eyebrow {
  font-size: 9pt; letter-spacing: 0.3em;
  color: #6e5e4e; font-variant: small-caps;
  margin-bottom: 3mm;
}
.ca-name {
  font-size: 19pt; font-weight: 500;
  color: #6b1f1f; font-family: 'Cormorant Garamond', serif;
}
.ca-name small { font-size: 11pt; color: #6e5e4e; letter-spacing: 0.1em; }
.ca-role { font-size: 11pt; color: #4a3a2a; font-style: italic; }
.ca-event { font-size: 10pt; color: #6e5e4e; margin-top: 2mm; font-variant: small-caps; letter-spacing: 0.15em; }
.cover-foot {
  width: 100%;
  display: flex; justify-content: space-between;
  font-size: 9pt; letter-spacing: 0.4em;
  color: #6e5e4e; font-variant: small-caps;
  margin-top: 4mm;
}

/* ============================================================
   HALF-TITLE & TITLE PAGE
   ============================================================ */
.page-half-title {
  display: flex; align-items: center; justify-content: center;
}
.half-title {
  font-family: 'Cormorant Garamond', serif;
  font-weight: 500; font-size: 28pt;
  text-align: center; color: #2a1f15;
  line-height: 1.25;
  letter-spacing: 0.02em;
}

.page-title {
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  text-align: center; padding-top: 40mm;
}
.tp-mark { margin-bottom: 14mm; }
.tp-mark img {
  width: 28mm; height: 28mm; opacity: 0.85;
  filter: sepia(0.4) saturate(0.5) brightness(0.8);
}
.tp-title {
  font-family: 'Cormorant Garamond', serif;
  font-weight: 500; font-size: 36pt; color: #2a1f15;
  margin: 0 0 6mm; line-height: 1.15;
}
.tp-sub {
  font-size: 13pt; color: #6e5e4e; font-style: italic;
  margin: 0 0 2mm;
}
.tp-sub-hi {
  font-family: 'Noto Sans Devanagari', serif;
  font-size: 11pt; color: #6e5e4e;
  margin: 0 0 12mm;
}
.tp-rule {
  width: 50mm; height: 0.4mm; background: #6b1f1f;
  margin: 6mm auto;
}
.tp-rule-thin { width: 30mm; height: 0.2mm; background: #c9b9a0; }
.tp-credit-eyebrow {
  font-size: 9pt; letter-spacing: 0.25em;
  color: #6e5e4e; font-variant: small-caps; margin: 4mm 0 2mm;
}
.tp-credit-name {
  font-size: 16pt; font-weight: 500;
  letter-spacing: 0.08em; color: #6b1f1f;
  margin: 0;
}
.tp-credit-name small { font-size: 10pt; color: #6e5e4e; letter-spacing: 0.1em; }
.tp-credit-role {
  font-size: 11pt; font-style: italic;
  color: #6e5e4e; margin: 2mm 0 0;
}
.tp-publisher {
  font-size: 10pt; letter-spacing: 0.3em;
  color: #2a1f15; font-variant: small-caps;
  margin: 8mm 0 1mm; font-weight: 600;
}
.tp-publisher-sub {
  font-size: 8.5pt; letter-spacing: 0.4em;
  color: #6e5e4e; font-variant: small-caps;
  margin: 0 0 6mm;
}
.tp-year {
  font-family: 'Cormorant Garamond', serif;
  font-size: 14pt; color: #6b1f1f;
  letter-spacing: 0.3em;
}

/* ============================================================
   IMPRINT / COPYRIGHT
   ============================================================ */
.page-imprint { padding-top: 60mm; }
.imprint-block {
  max-width: 130mm; margin: 0 auto;
  text-align: center;
  font-size: 9.5pt; line-height: 1.65; color: #4a3a2a;
}
.imprint-line { margin: 1.5mm 0; }
.imprint-line strong { color: #1f1815; }
.imprint-rule {
  width: 30mm; height: 0.2mm; background: #c9b9a0;
  margin: 6mm auto;
}
.imprint-note {
  font-size: 8.5pt; line-height: 1.6;
  color: #6e5e4e; font-style: italic;
  text-align: justify; margin: 4mm 0;
}
.imprint-motto {
  font-style: italic; color: #6b1f1f; font-size: 11pt;
  margin-top: 4mm; letter-spacing: 0.04em;
}

/* ============================================================
   PRINCIPAL'S FOREWORD signature
   ============================================================ */
.foreword .ch-sub { font-family: 'Noto Sans Devanagari', serif; }
.forewordsig {
  margin: 12mm 0 0; padding-top: 6mm;
  text-align: right;
  page-break-inside: avoid; break-inside: avoid;
}
.fs-name {
  font-family: 'Cormorant Garamond', serif;
  font-style: italic; font-weight: 500;
  font-size: 22pt; color: #2a1f15;
  margin: 0 0 2mm; text-indent: 0;
  letter-spacing: 0.02em;
}
.fs-rule {
  width: 60mm; height: 0.25mm;
  background: #6b1f1f; margin: 0 0 3mm auto;
}
.fs-role { margin: 0; font-size: 11pt; color: #2a1f15; text-indent: 0; }
.fs-role strong { font-variant: small-caps; letter-spacing: 0.08em; color: #6b1f1f; }
.fs-school { margin: 0; font-style: italic; font-size: 10pt; color: #4a3a2a; text-indent: 0; }
.fs-date { margin: 4mm 0 0; font-size: 9pt; color: #6e5e4e; font-variant: small-caps; letter-spacing: 0.15em; text-indent: 0; }

/* ============================================================
   EPIGRAPH
   ============================================================ */
.page-epigraph {
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  padding-top: 50mm;
}
.epigraph {
  max-width: 140mm; margin: 14mm auto;
  font-family: 'EB Garamond', serif; font-style: italic;
  text-align: center; color: #2a1f15;
  font-size: 15pt; line-height: 1.65;
  background: transparent !important;
  border: 0 !important;
}
.epigraph p { margin: 2mm 0; text-indent: 0; text-align: center; }
.epigraph .ep-en { font-size: 13pt; color: #6e5e4e; margin-top: 4mm; }
.epigraph .ep-source {
  background: transparent !important; color: #6e5e4e !important;
  padding: 0 !important; margin: 5mm 0 0 !important;
  font-style: normal; font-size: 11pt;
  letter-spacing: 0.08em; font-variant: small-caps;
  text-indent: 0;
}

/* ============================================================
   CHAPTER OPENERS — typography, drop caps, hairlines
   ============================================================ */
.chapter, .walk-page {
  /* nothing extra — just inherits .page */
}
.ch-eyebrow {
  font-size: 9pt; letter-spacing: 0.3em;
  font-variant: small-caps; color: #6e5e4e;
  text-align: center; margin: 4mm 0 6mm;
}
.ch-title {
  font-family: 'Cormorant Garamond', 'EB Garamond', serif;
  font-weight: 500; font-size: 30pt;
  text-align: center; color: #2a1f15;
  margin: 0 0 4mm; letter-spacing: 0.01em; line-height: 1.15;
}
.ch-sub {
  text-align: center; font-style: italic;
  color: #6e5e4e; font-size: 12pt; margin: 0 0 4mm;
}
.ch-rule {
  width: 30mm; height: 0.4mm;
  background: #6b1f1f;
  margin: 6mm auto 10mm;
}
.ch-rule::before {
  content: ""; display: block;
  width: 4mm; height: 4mm;
  background: #6b1f1f; transform: rotate(45deg);
  margin: -2.2mm auto 0;
}

/* ---------- Body paragraphs ---------- */
.page p {
  text-align: justify;
  text-indent: 6mm;
  margin: 0 0 0;
  hyphens: auto;
}
.page p + p { text-indent: 6mm; margin-top: 0; }
.page p.lede { text-indent: 0; }
.page .lede { font-size: 11pt; line-height: 1.6; }

/* Drop cap — Oxford style: 4-line, rises slightly above x-height */
.dropcap {
  font-family: 'Cormorant Garamond', 'EB Garamond', serif;
  float: left;
  font-size: 50pt;
  line-height: 0.85;
  padding: 1mm 2mm 0 0;
  margin: 0.8mm 1.2mm -1mm 0;
  color: #6b1f1f;
  font-weight: 500;
}

/* ---------- Stats row (in editor's note) ---------- */
.stats-row {
  display: flex; gap: 4mm;
  margin: 8mm 0; justify-content: space-between;
}
.stat {
  flex: 1; padding: 4mm 5mm;
  border-top: 0.4mm solid #6b1f1f;
  border-bottom: 0.2mm solid #c9b9a0;
  text-align: center;
}
.stat-num {
  font-family: 'Cormorant Garamond', serif;
  font-size: 28pt; color: #6b1f1f; line-height: 1;
  letter-spacing: 0.02em; font-weight: 500;
}
.stat-num .stat-unit {
  font-size: 14pt; color: #6e5e4e; letter-spacing: 0;
}
.stat-cap {
  font-size: 8pt; color: #4a3a2a;
  margin-top: 3mm; line-height: 1.4;
  font-style: italic;
}

/* ---------- "How to use" list ---------- */
.how-list {
  counter-reset: how;
  list-style: none; padding: 0; margin: 4mm 0 0;
}
.how-list li {
  counter-increment: how;
  position: relative; padding-left: 12mm;
  margin-bottom: 4mm;
  text-align: justify; line-height: 1.6;
}
.how-list li::before {
  content: counter(how, lower-roman) ".";
  position: absolute; left: 0; top: 0;
  width: 10mm; text-align: right;
  font-style: italic; color: #6b1f1f;
  font-size: 12pt;
}
.how-list li strong { color: #2a1f15; }

/* ============================================================
   PERSONA OVERVIEW SPREAD
   ============================================================ */
.persona-spread { padding-top: 24mm; }
.ph2 {
  font-family: 'Cormorant Garamond', serif;
  font-weight: 500; font-size: 16pt; color: #2a1f15;
  text-align: center; margin: 0 0 8mm;
  letter-spacing: 0.02em;
}
.persona-grid {
  display: grid; grid-template-columns: 1fr 1fr; gap: 4mm 6mm;
  margin-top: 6mm;
}
.persona-card {
  display: flex; gap: 4mm; align-items: flex-start;
  padding: 4mm 0;
  border-top: 0.3mm solid #c9b9a0;
  page-break-inside: avoid; break-inside: avoid;
}
.persona-card:nth-last-child(-n+2) { border-bottom: 0.3mm solid #c9b9a0; }
.pc-icon { font-size: 16pt; line-height: 1; flex-shrink: 0; opacity: 0.8; }
.pc-meta h3 {
  font-family: 'Cormorant Garamond', serif;
  font-weight: 600; font-size: 13pt;
  color: #2a1f15; margin: 0 0 1mm;
  letter-spacing: 0.01em;
}
.pc-meta .pc-hi {
  font-family: 'Noto Sans Devanagari', sans-serif;
  font-size: 10.5pt; color: #6e5e4e;
  margin: 0 0 1.5mm; font-style: normal;
  text-indent: 0;
}
.pc-meta .pc-tag {
  font-size: 10pt; color: #6e5e4e; font-style: italic;
  line-height: 1.5; margin: 0;
  text-indent: 0; text-align: left;
}

/* ============================================================
   INDEX OF SCENARIOS
   ============================================================ */
.index-block {
  margin-bottom: 7mm;
  page-break-inside: avoid; break-inside: avoid;
}
.ib-title {
  font-family: 'Cormorant Garamond', serif;
  font-weight: 600; font-size: 12.5pt;
  color: #6b1f1f;
  border-bottom: 0.3mm solid #c9b9a0;
  padding-bottom: 1.5mm; margin: 0 0 3mm;
}
.ib-icon { margin-right: 2mm; opacity: 0.8; }
.ib-title small {
  font-family: 'Noto Sans Devanagari', sans-serif;
  font-style: normal; color: #6e5e4e;
  font-size: 10pt; font-weight: 400;
}
.ib-list {
  list-style: none; padding: 0; margin: 0;
  counter-reset: ibl;
}
.ib-list li {
  counter-increment: ibl;
  position: relative; padding: 2mm 0 2mm 12mm;
  font-size: 11.5pt; line-height: 1.5;
}
.ib-list li::before {
  content: counter(ibl, lower-roman) ".";
  position: absolute; left: 0; top: 1.5mm;
  width: 10mm; text-align: right;
  font-style: italic; color: #6e5e4e;
  font-size: 10pt;
}
.ib-channel {
  display: inline-block; font-size: 7pt; font-weight: 700;
  letter-spacing: 0.18em; padding: 0.3mm 1.5mm; margin-right: 2mm;
  background: transparent; color: #6b1f1f;
  border: 0.2mm solid #6b1f1f; border-radius: 0.5mm;
  vertical-align: 0.4mm; font-family: 'Inter', sans-serif;
}
.ib-name { font-weight: 500; color: #2a1f15; font-style: italic; }
.ib-sub {
  display: block; color: #6e5e4e;
  font-size: 10pt; margin-top: 0.5mm;
  font-style: italic;
}

/* ============================================================
   WALKTHROUGH PAGES
   ============================================================ */
.walk-title {
  font-family: 'Cormorant Garamond', serif;
  font-weight: 500; font-size: 22pt;
  text-align: center; color: #2a1f15;
  margin: 0 0 1mm; line-height: 1.2;
  letter-spacing: 0.01em;
}
.walk-hi {
  font-family: 'Noto Sans Devanagari', serif;
  text-align: center; color: #6e5e4e;
  font-size: 11pt; margin: 0;
  text-indent: 0;
}
.walk-sub {
  text-align: center; color: #6e5e4e;
  font-size: 10pt; margin: 1mm 0 0;
  font-style: italic;
  text-indent: 0;
}

/* Section heads inside walkthrough */
.sh {
  font-family: 'EB Garamond', serif;
  font-style: italic; font-weight: 400;
  font-size: 12pt; color: #6b1f1f;
  margin: 6mm 0 2mm; padding-bottom: 1mm;
  border-bottom: 0.15mm solid #c9b9a0;
  letter-spacing: 0.02em;
}
.sh-warn { color: #6b1f1f; }
.sh-good { color: #2d5016; }

/* Scene transcript — ink-light: only a hairline rule, no tint */
.scene { margin: 0 0 4mm; padding: 4mm 6mm; background: transparent; border-left: 0.3mm solid #6b1f1f; border-top: 0.15mm solid #c9b9a0; border-bottom: 0.15mm solid #c9b9a0; }
.scn-narr { font-style: italic; color: #4a3a2a; font-size: 11.5pt; margin: 0 0 2mm; line-height: 1.6; text-indent: 0; }
.scn-chat { font-size: 12pt; color: #2a1f15; margin: 0 0 1.5mm; line-height: 1.6; padding-left: 6mm; text-indent: 0; }
.scn-chat strong { font-style: italic; font-weight: 500; color: #6b1f1f; }

/* Decision */
.decision-q {
  text-align: center; font-size: 11.5pt;
  color: #2a1f15; margin: 3mm 0 3mm;
  text-indent: 0;
}
.choices {
  list-style: none; padding: 0; margin: 0 0 6mm;
  counter-reset: ch;
}
.choices li {
  position: relative; padding: 2.5mm 4mm 2.5mm 12mm;
  margin-bottom: 1mm; font-size: 10.5pt;
  line-height: 1.5; border-bottom: 0.15mm solid #ece2d0;
}
.choices li::before { content: ""; position: absolute; }
.choice-letter {
  position: absolute; left: 4mm; top: 2.5mm;
  font-style: italic; color: #6e5e4e; font-size: 11pt;
}
.choice-text { color: #2a1f15; }
.choice-mark {
  display: inline-block; margin-left: 4mm;
  font-size: 8pt; letter-spacing: 0.18em; font-variant: small-caps;
  font-weight: 600; vertical-align: 0.5mm;
}
.choice-safe .choice-mark { color: #2d5016; }
.choice-trapped .choice-mark { color: #6b1f1f; }
.choice-safe { background: rgba(45, 80, 22, 0.025); }
.choice-trapped { background: rgba(107, 31, 31, 0.025); }

/* Anatomy list */
.anatomy {
  counter-reset: an; list-style: none; padding: 0; margin: 2mm 0 4mm;
}
.anatomy li {
  counter-increment: an;
  position: relative; padding: 2.5mm 0 2.5mm 10mm;
  font-size: 11.5pt; line-height: 1.6; color: #2a1f15;
  border-bottom: 0.15mm dotted #c9b9a0;
}
.anatomy li:last-child { border-bottom: 0; }
.anatomy li::before {
  content: counter(an) ".";
  position: absolute; left: 0; top: 2mm;
  width: 8mm; text-align: right;
  font-style: italic; color: #6b1f1f; font-size: 11pt;
}
.money-trail {
  font-size: 11.5pt; line-height: 1.6;
  padding: 3.5mm 5mm; margin: 5mm 0 6mm;
  border-top: 0.4mm solid #6b1f1f;
  border-bottom: 0.15mm solid #c9b9a0;
  text-indent: 0;
  font-style: italic; color: #4a3a2a;
}
.money-trail strong { font-style: normal; color: #6b1f1f; font-variant: small-caps; letter-spacing: 0.05em; }

/* Two-column flags + corrections */
.two-col {
  display: grid; grid-template-columns: 1fr 1fr; gap: 8mm;
  margin-top: 4mm;
}
.two-col .col { page-break-inside: avoid; break-inside: avoid; }
.flags, .shoulds {
  list-style: none; padding: 0; margin: 0;
  font-size: 11pt; line-height: 1.6;
}
.flags li, .shoulds li {
  position: relative; padding: 1.5mm 0 1.5mm 5mm;
}
.flags li::before {
  content: "*";
  position: absolute; left: 0; top: 1.5mm;
  color: #6b1f1f; font-size: 11pt;
}
.shoulds li::before {
  content: "+";
  position: absolute; left: 0; top: 1.5mm;
  color: #2d5016; font-size: 11pt; font-weight: 700;
}

/* ============================================================
   JUSTICE PLAYBOOK
   ============================================================ */
.playbook { list-style: none; padding: 0; margin: 4mm 0 0; counter-reset: pb; }
.playbook li {
  counter-increment: pb;
  display: flex; gap: 5mm; padding: 4mm 0;
  border-bottom: 0.2mm solid #c9b9a0;
  page-break-inside: avoid; break-inside: avoid;
}
.playbook li:last-child { border-bottom: 0; }
.pb-num {
  flex-shrink: 0; width: 10mm; height: 10mm;
  border: 0.4mm solid #6b1f1f; color: #6b1f1f;
  display: flex; align-items: center; justify-content: center;
  font-family: 'Cormorant Garamond', serif;
  font-size: 14pt; font-weight: 500; border-radius: 50%;
}
.pb-body h4 {
  font-family: 'EB Garamond', serif; font-style: italic;
  font-weight: 500; font-size: 12pt; color: #6b1f1f;
  margin: 0 0 1.5mm; letter-spacing: 0.02em;
}
.pb-body p {
  margin: 0; font-size: 11.5pt; color: #2a1f15;
  line-height: 1.6; text-align: justify;
  text-indent: 0;
}
.pb-body h4 { font-size: 13pt; }

/* ============================================================
   HELPLINES TABLE
   ============================================================ */
.helplines {
  width: 100%; border-collapse: collapse;
  margin: 6mm 0; font-size: 11.5pt;
}
.helplines th, .helplines td {
  padding: 2.5mm 3mm; text-align: left;
  border-bottom: 0.15mm solid #c9b9a0;
}
.helplines thead th {
  font-family: 'EB Garamond', serif;
  font-style: italic; font-weight: 500;
  color: #6b1f1f; font-size: 10.5pt;
  border-bottom: 0.4mm solid #6b1f1f;
  border-top: 0.2mm solid #6b1f1f;
}
.helplines tbody td.num {
  font-family: 'EB Garamond', serif;
  font-weight: 500; color: #2a1f15;
  text-align: right; letter-spacing: 0.02em;
}
.src-note {
  font-size: 8.5pt; color: #6e5e4e;
  font-style: italic; margin-top: 4mm;
  text-indent: 0; text-align: justify;
}

/* ============================================================
   DLSA CARD
   ============================================================ */
.dlsa-card {
  margin: 8mm 0; padding: 8mm 10mm;
  border-top: 0.4mm solid #6b1f1f;
  border-bottom: 0.4mm solid #6b1f1f;
  text-align: center;
}
.dlsa-name {
  font-family: 'Cormorant Garamond', serif;
  font-weight: 500; font-size: 18pt;
  color: #6b1f1f; margin: 0 0 2mm;
  letter-spacing: 0.02em;
  text-indent: 0;
}
.dlsa-name small { font-size: 11pt; color: #6e5e4e; letter-spacing: 0.1em; }
.dlsa-role { font-style: italic; color: #4a3a2a; font-size: 11pt; margin: 0 0 1mm; text-indent: 0; }
.dlsa-role-hi { font-family: 'Noto Sans Devanagari', sans-serif; font-size: 10pt; color: #6e5e4e; margin: 0 0 6mm; text-indent: 0; }
.dlsa-table {
  margin: 4mm auto 0; border-collapse: collapse;
  font-size: 11pt;
}
.dlsa-table th {
  text-align: right; padding: 2mm 5mm 2mm 0;
  font-family: 'EB Garamond', serif;
  font-style: italic; font-weight: 400;
  color: #6e5e4e;
}
.dlsa-table td {
  text-align: left; padding: 2mm 0;
  font-family: 'EB Garamond', serif;
  font-weight: 500; color: #2a1f15;
  letter-spacing: 0.04em;
  border-left: 0.2mm solid #c9b9a0;
  padding-left: 5mm;
}

/* ============================================================
   CERTIFICATE SPECIMEN
   ============================================================ */
.cert-spec {
  margin: 6mm 0;
  padding: 14mm 12mm;
  border: 0.3mm solid #c9b9a0;
  position: relative; text-align: center;
  background: #fdfaf2;
}
.cert-rule { display: none; }
.cert-school {
  font-size: 8pt; letter-spacing: 0.2em;
  color: #2a1f15; font-weight: 600;
  margin-bottom: 1mm;
}
.cert-club {
  font-size: 7pt; letter-spacing: 0.2em;
  color: #6e5e4e;
  margin-bottom: 8mm;
}
.cert-title {
  font-family: 'Cormorant Garamond', serif;
  font-weight: 500; font-size: 26pt;
  color: #2a1f15; margin: 0 0 4mm;
  letter-spacing: 0.02em;
}
.cert-eye {
  font-size: 8pt; letter-spacing: 0.3em;
  color: #6e5e4e; font-variant: small-caps;
  margin-bottom: 4mm;
}
.cert-name {
  font-family: 'Cormorant Garamond', serif;
  font-style: italic; font-size: 22pt;
  color: #2a1f15; margin: 0 auto 6mm;
  padding: 0 8mm 2mm;
  border-bottom: 0.2mm solid #c9b9a0;
  display: inline-block;
}
.cert-body {
  font-size: 10pt; color: #4a3a2a;
  line-height: 1.6; max-width: 130mm;
  margin: 0 auto 8mm;
  text-indent: 0;
  font-style: italic;
}
.cert-foot {
  display: flex; justify-content: space-between; align-items: flex-end;
  margin-top: 14mm; font-size: 9pt; color: #4a3a2a;
  text-align: left;
}
.cert-issued small {
  font-size: 7pt; letter-spacing: 0.2em;
  color: #6e5e4e; font-variant: small-caps;
}
.cert-issued .mono {
  font-family: 'Courier New', monospace;
  color: #2a1f15; font-weight: 700;
}
.cert-sig { text-align: right; }
.cert-sig-name {
  font-family: 'Cormorant Garamond', serif;
  font-style: italic; font-size: 16pt;
  color: #2a1f15; margin: 0 0 2mm;
  text-indent: 0;
}
.cert-sig-rule {
  width: 50mm; height: 0.2mm; background: #c9b9a0;
  margin: 0 0 2mm auto;
}
.cert-sig p { margin: 0; text-indent: 0; }

/* ============================================================
   COLOPHON
   ============================================================ */
.page-colophon {
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  text-align: center; padding-top: 50mm;
}
.colophon { max-width: 130mm; }
.colophon p {
  text-align: center; text-indent: 0;
  font-size: 10.5pt; color: #4a3a2a;
  line-height: 1.7; margin: 4mm 0;
  font-style: italic;
}
.cf-line {
  font-size: 9pt; letter-spacing: 0.4em;
  color: #6e5e4e; font-variant: small-caps;
  margin-bottom: 8mm;
}
.cf-rule {
  width: 30mm; height: 0.3mm;
  background: #6b1f1f;
  margin: 8mm auto;
  padding: 0;
}
.cf-motto {
  font-style: italic; font-size: 14pt;
  color: #6b1f1f; line-height: 1.6;
  font-family: 'Cormorant Garamond', serif;
}
.cf-foot {
  font-style: normal; font-size: 9pt;
  letter-spacing: 0.3em; color: #2a1f15;
  font-variant: small-caps; line-height: 1.8;
  margin-top: 10mm;
}
.cf-foot small { font-size: 8pt; color: #6e5e4e; letter-spacing: 0; font-variant: normal; }

/* ============================================================
   CONTENTS — Oxford-style leader-dot list
   ============================================================ */
.ph1 {
  font-family: 'Cormorant Garamond', serif;
  font-weight: 500; font-size: 28pt;
  text-align: center; color: #2a1f15;
  margin: 0 0 6mm; letter-spacing: 0.01em;
}
.contents {
  list-style: none; padding: 0; margin: 8mm 0;
  font-size: 11pt;
}
.contents li {
  display: flex; align-items: baseline;
  gap: 4mm; padding: 3mm 0;
  border-bottom: 0.1mm dotted #c9b9a0;
}
.c-num {
  flex-shrink: 0; width: 12mm; text-align: right;
  font-style: italic; color: #6b1f1f; font-size: 12pt;
}
.c-title {
  flex: 1; color: #2a1f15;
  font-family: 'EB Garamond', serif;
}

/* ============================================================
   RESPONSIVE / SCREEN BACKDROP
   ============================================================ */
@media screen and (max-width: 768px) {
  .book { padding: 12px 0; }
  .page { width: 100%; padding: 12mm 14mm 18mm; box-shadow: none; }
  .stats-row { flex-direction: column; }
  .two-col { grid-template-columns: 1fr; }
  .persona-grid { grid-template-columns: 1fr; }
}
