/* reading.css — typography for chapters, workpapers, home, membership */
*{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }
@media (prefers-reduced-motion: reduce){ html{ scroll-behavior:auto; } }
body{
  margin:0; background:var(--paper); color:var(--ink);
  font-family:"Lora", Georgia, serif; font-size:18px; line-height:1.75;
}
::selection{ background:var(--brass); color:var(--paper); }
.read{ max-width:42rem; margin:0 auto; padding:3rem clamp(1.1rem,5vw,2rem) 1rem; }
.read.is-wide{ max-width:60rem; }
.read-head{ margin-bottom:2.25rem; padding-bottom:1.25rem; border-bottom:3px double var(--ink); }
.read-code{ font-family:"Fraunces", Georgia, serif; font-style:italic; color:var(--brass-ink, #7A5620); font-size:1.15rem; margin:0 0 .2rem; }
.read h1{ font-family:"Fraunces", Georgia, serif; font-weight:600; font-size:clamp(2rem, 5vw, 2.8rem); line-height:1.12; margin:0; letter-spacing:-.015em; }
.read h2{ font-family:"Fraunces", Georgia, serif; font-weight:600; font-size:1.6rem; line-height:1.25; margin:2.75rem 0 .75rem; }
.read h3{ font-family:"Fraunces", Georgia, serif; font-weight:500; font-size:1.25rem; margin:2rem 0 .5rem; }
.read p, .read li{ max-width:65ch; }
.read p{ margin:0 0 1.1rem; }
.read ul, .read ol{ padding-left:1.4rem; margin:0 0 1.2rem; }
.read li{ margin:.3rem 0; }
.read a{ color:var(--ink); text-decoration:underline; text-decoration-color:var(--brass); text-underline-offset:3px; }
.read a:hover{ color:var(--brass); }
.read a:focus-visible, .read button:focus-visible, .read input:focus-visible{ outline:2px solid var(--focus); outline-offset:2px; }
.read em{ color:var(--ink-soft); }
.read > p:first-of-type > em:only-child, .read .scope{ display:block; font-size:.98rem; }
.read blockquote{ margin:1.5rem 0; padding:.25rem 0 .25rem 1.25rem; border-left:3px solid var(--brass); color:var(--ink-soft); }
.read code{ font-family:"IBM Plex Mono", ui-monospace, monospace; font-size:.86em; background:var(--paper-deep); padding:.1em .35em; border-radius:var(--radius); }
.read pre{ background:var(--paper-deep); border:1px solid var(--line); border-radius:var(--radius); padding:1rem 1.2rem; overflow-x:auto; line-height:1.5; }
.read pre code{ background:none; padding:0; }
.read hr{ border:0; border-top:1px solid var(--line); margin:2.5rem 0; }

/* Worksheet tables: ruled like ledger paper, room to write in */
.table-wrap{ overflow-x:auto; margin:1.25rem 0 1.75rem; }
.read table{ width:100%; border-collapse:collapse; font-size:.95rem; line-height:1.45; }
.read th{ text-align:left; font-weight:600; padding:.5rem .6rem; border-bottom:3px double var(--ink); vertical-align:bottom; }
.read td{ padding:.55rem .6rem; border-bottom:1px solid var(--line); height:2.4rem; vertical-align:top; }
.read td + td, .read th + th{ border-left:1px dotted var(--line); }

/* Home */
.home-hero{ padding:1rem 0 2.25rem; border-bottom:3px double var(--ink); }
.home-hero h1{ font-size:clamp(2.4rem, 7vw, 4rem); max-width:12ch; }
.home-hero .lede{ font-size:1.25rem; line-height:1.6; max-width:34rem; margin:1.25rem 0 .75rem; }
.home-hero .fine{ font-size:.92rem; color:var(--ink-soft); margin:0; }
.path{ list-style:none; padding:0; margin:2rem 0 0; display:grid; gap:0; counter-reset:step; }
.path li{ counter-increment:step; display:grid; grid-template-columns:2.5rem 1fr; gap:.75rem; padding:1rem 0; border-bottom:1px dotted var(--line); max-width:none; margin:0; }
.path li::before{ content:counter(step); font-family:"Fraunces", Georgia, serif; font-size:1.6rem; line-height:1; color:var(--brass); }
.path a{ font-family:"Fraunces", Georgia, serif; font-size:1.15rem; font-weight:600; }
.path p{ margin:.2rem 0 0; font-size:.98rem; color:var(--ink-soft); }
.member-strip{ margin:3rem 0 1rem; padding:1.5rem 0; border-top:1px solid var(--ink); display:flex; flex-wrap:wrap; gap:1rem 2rem; align-items:center; justify-content:space-between; }
.member-strip p{ margin:0; max-width:34rem; }

/* Membership page */
.included h3{ font-size:1.15rem; margin:1.5rem 0 .25rem; }
.included ul{ margin:0; }
.included .tol-note{ color:var(--ink-soft); font-size:.92rem; }
.steps{ padding-left:1.4rem; }

@media print{
  body{ font-size:12pt; }
  .read{ max-width:none; padding:0; }
  .read a{ text-decoration:none; }
}

/* the book: "what's yours / what isn't" side by side, and a small try-this line */
.read .two-col{ display:grid; gap:1rem; grid-template-columns:1fr 1fr; margin:1rem 0 1.2rem; }
@media (max-width:560px){ .read .two-col{ grid-template-columns:1fr; } }
.read .two-col > div{ padding:.75rem 1rem; border-radius:14px; background:rgba(127,178,224,.1); border:1px solid rgba(127,178,224,.32); }
.read .two-col h3{ margin:.1rem 0 .4rem; font-size:1.05rem; }
.read .two-col ul{ margin:0; padding-left:1.1rem; }
.read p.tol-try{ padding:.7rem 1rem; border-left:4px solid #E3B15C; background:rgba(255,241,207,.5); border-radius:8px; }

/* the book: Back / Contents / Next under each Part Three chapter, the "Last updated" line,
   and the whole book in reading order (contents pages and the book at a glance) */
.read nav.p3-nav{ display:flex; flex-wrap:wrap; gap:.6rem; margin:1.6rem 0 1rem; padding:.9rem 0 0; border-top:1px solid var(--line); }
.read nav.p3-nav a{ display:inline-flex; align-items:center; min-height:44px; padding:.35rem .9rem; border:1px solid var(--line); border-radius:999px; background:var(--paper-deep, rgba(0,0,0,.03)); text-decoration:none; line-height:1.3; max-width:100%; overflow-wrap:anywhere; }
.read nav.p3-nav a[rel="next"]{ margin-left:auto; font-weight:600; border-color:var(--brass); }
@media (max-width:560px){ .read nav.p3-nav a{ flex:1 1 100%; } .read nav.p3-nav a[rel="next"]{ margin-left:0; } }
.read p.last-updated{ margin:1rem 0 .5rem; font-size:.9rem; color:var(--ink-soft); }
.read ol.book-order{ list-style:none; padding:.6rem 1.1rem .9rem !important; background:var(--paper); border:1px solid var(--line); border-radius:18px; }
.read ol.book-order > li{ margin:.9rem 0 0; }
.read ol.book-order > li > strong{ display:block; font-family:"Fraunces", Georgia, serif; font-size:1.08rem; }
.read ol.book-order ol{ margin:.2rem 0 0; padding-left:1.3rem; }
.read ol.book-order ol li{ margin:.15rem 0; }
@media print{ .read nav.p3-nav{ display:none; } }
.read p.book-start{ font-size:.95rem; }
.read p.book-next{ font-weight:600; }

/* the book on its own: end-of-chapter box (next chapter, contents, use it in the program) */
.read aside.book-end{ margin:2rem 0 1rem; padding:0; border-top:1px solid var(--line); }
.read .book-end-use{ margin:1.1rem 0; padding:.85rem 1.1rem; border-radius:14px; background:rgba(62,107,76,.07); border:1px solid rgba(62,107,76,.25); }
.read .book-end-use p{ margin:.2rem 0; }
.read .book-end-use p.book-end-k{ font-weight:600; font-family:"Fraunces", Georgia, serif; }
.read .book-end-use ul{ margin:.4rem 0 .1rem; padding-left:1.1rem; }
.read nav.book-end-nav{ display:flex; flex-direction:column; gap:.7rem; }
.read a.book-end-next{ display:block; padding:.9rem 1.1rem; border-radius:16px; border:2px solid var(--brass); background:var(--paper-deep, rgba(0,0,0,.03)); text-decoration:none; font-weight:600; line-height:1.35; color:var(--ink); }
.read a.book-end-next span{ display:block; font-weight:400; font-size:.9rem; color:var(--ink-soft); }
.read a.book-end-next:hover{ background:var(--paper); }
.read .book-end-row{ display:flex; flex-wrap:wrap; gap:.5rem; }
.read .book-end-row a{ display:inline-flex; align-items:center; min-height:44px; padding:.3rem .9rem; border:1px solid var(--line); border-radius:999px; text-decoration:none; }
@media (max-width:560px){ .read .book-end-row a{ flex:1 1 100%; } }

/* the book's home (/book/) */
.bk-home .bk-sub{ margin:.3rem 0 0; font-size:1.05rem; color:var(--ink-soft); }
.bk-home .bk-start{ display:flex; flex-wrap:wrap; gap:.6rem; margin:1.2rem 0; }
.bk-home .bk-start .bk-go{ font-size:1.05rem; }
.bk-home ul.bk-how{ padding-left:1.1rem; }
.bk-home ul.bk-how li{ margin:.35rem 0; }
.bk-home .bk-part{ margin:1.8rem 0 0; }
.bk-home .bk-part h2{ margin-bottom:.2rem; }
.bk-home .bk-part h2 span{ display:block; font-size:.85rem; font-family:"IBM Plex Mono", monospace; letter-spacing:.06em; text-transform:uppercase; color:var(--brass-ink); }
.bk-home .bk-part-note{ margin:.2rem 0 .7rem; color:var(--ink-soft); }
.bk-home ol.bk-list{ list-style:none; margin:0; padding:0 !important; display:grid; gap:.55rem; }
.bk-home ol.bk-list li{ margin:0; max-width:none; }
.bk-home a.bk-ch{ display:grid; grid-template-columns:5.6rem 1fr; gap:.1rem .8rem; padding:.7rem .9rem; border:1px solid var(--line); border-radius:14px 14px 0 0; text-decoration:none; color:var(--ink); background:var(--paper); }
.bk-home a.bk-ch:hover{ border-color:var(--brass); }
.bk-home .bk-ch-n{ grid-row:span 2; font-family:"IBM Plex Mono", monospace; font-size:.85rem; color:var(--brass-ink); padding-top:.15rem; }
.bk-home .bk-ch-t{ font-weight:600; line-height:1.3; }
.bk-home .bk-ch-d{ font-size:.92rem; color:var(--ink-soft); line-height:1.35; }
.bk-home .bk-ch-m{ display:block; padding:.25rem .9rem .35rem 7.3rem; font-size:.85rem; color:var(--ink-soft); border:1px solid var(--line); border-top:0; border-radius:0 0 14px 14px; }
@media (max-width:560px){
  .bk-home a.bk-ch{ grid-template-columns:1fr; }
  .bk-home .bk-ch-n{ grid-row:auto; }
  .bk-home .bk-ch-m{ padding-left:.9rem; }
}

/* the whole book on one page */
.read.whole .whole-actions{ display:flex; flex-wrap:wrap; gap:.6rem; margin:1rem 0; }
.read.whole nav.whole-toc{ margin:1.2rem 0 2rem; padding:.6rem 1.1rem 1rem; background:var(--paper); border:1px solid var(--line); border-radius:18px; }
.read.whole nav.whole-toc ol{ padding-left:1.2rem; }
.read.whole nav.whole-toc > ol > li{ margin:.7rem 0 0; }
.read.whole h2.whole-part{ margin:3rem 0 1rem; padding-top:1rem; border-top:3px double var(--ink); font-size:1.6rem; }
.read.whole article.whole-ch{ margin:0 0 2.5rem; padding-top:1.2rem; border-top:1px solid var(--line); }
.read.whole article.whole-ch .read-head h1{ font-size:1.55rem; }
.read.whole p.whole-top{ font-size:.9rem; color:var(--ink-soft); }
@media print{
  .no-print, .read.whole .whole-actions, .read.whole p.whole-top, .read a.dig, .tol-chbar, .tol-pager, aside.book-end{ display:none !important; }
  .read.whole article.whole-ch{ break-before:page; border-top:0; }
  .read.whole h2.whole-part{ break-before:page; border-top:0; }
  .read.whole nav.whole-toc{ border:0; break-after:page; }
}

/* Book view: on chapters (and the book's own pages) the page reads like a book. The extras come back with
   "Show the extras" in the chapter bar. */
html.tol-bookview :is(.tol-offer, .depth-bar, .tol-depth-q, .tol-depth-opts, .tol-depth-more, .tol-book-audio, .tol-mp, .tol-gentle, .tol-cheer, .tol-fbs-wrap, .tol-pud-card, .tol-tip, .tol-fp-note, .cb-nx, .tol-read-host, .tol-garden-bg, .tol-garden-veil, .bkb, .lp-card, .lp-trail, .tsc-perch, .tol-quiet-extras){ display:none !important; }
.tol-chbar .tol-chbar-x{ font:inherit; font-size:.88rem; min-height:2.2rem; padding:.2rem .75rem; border:1px solid var(--line); border-radius:999px; background:transparent; color:var(--ink-soft); cursor:pointer; }
.tol-chbar .tol-chbar-x:hover{ color:var(--ink); border-color:var(--brass); }
@media (max-width:560px){ .tol-chbar-nav{ flex-wrap:wrap; gap:.5rem 1rem; } }
/* "The book at a glance": the version switch stays in place (it covered the reading-order list when sticky),
   and the reading order shows the book's own chapter labels without extra list numbers ("2. Chapter I") */
.read .bt-switch{ position:static; }
.read ol.book-order ol{ list-style:none; padding-left:.4rem; }

/* the book's PDF downloads (/book/download.html) */
.bk-dl .bk-dl-gate{ margin:1.2rem 0 1.6rem; padding:1rem 1.15rem; border:2px solid var(--brass); border-radius:16px; background:var(--paper-deep, rgba(0,0,0,.03)); }
.bk-dl .bk-dl-gate h2{ margin-top:.1rem; }
.bk-dl .bk-dl-form label{ display:block; font-weight:600; margin:.6rem 0 .3rem; }
.bk-dl .bk-dl-row{ display:flex; flex-wrap:wrap; gap:.5rem; }
.bk-dl .bk-dl-row input{ flex:1 1 14rem; min-height:44px; font:inherit; padding:.4rem .7rem; border:1px solid var(--line); border-radius:10px; background:#fff; color:#2B2620; }
.bk-dl .bk-dl-msg{ min-height:1.2em; margin:.5rem 0 0; font-size:.95rem; }
.bk-dl .bk-dl-msg.is-error{ color:#8B2B1E; } .bk-dl .bk-dl-msg.is-warn{ color:#7A5620; } .bk-dl .bk-dl-msg.is-ok{ color:var(--credit); }
.bk-dl .bk-dl-small{ font-size:.88rem; color:var(--ink-soft); }
.bk-dl .bk-dl-cards{ display:grid; gap:1rem; }
@media (min-width:760px){ .bk-dl .bk-dl-cards{ grid-template-columns:1fr 1fr; } }
.bk-dl .bk-dl-card{ padding:.9rem 1.1rem; border:1px solid var(--line); border-radius:16px; background:var(--paper); }
.bk-dl .bk-dl-card h2{ margin:.1rem 0 .3rem; font-size:1.25rem; }
.bk-dl ul.bk-dl-list{ list-style:none; padding:0 !important; margin:.5rem 0 0; display:grid; gap:.5rem; }
.bk-dl ul.bk-dl-list li{ margin:0; max-width:none; }
.bk-dl a.bk-dl-file{ display:inline-flex; flex-direction:column; min-height:44px; padding:.45rem .9rem; border:2px solid var(--brass); border-radius:12px; text-decoration:none; color:var(--ink); font-weight:600; }
.bk-dl a.bk-dl-file .bk-dl-m{ font-weight:400; font-size:.85rem; color:var(--ink-soft); }
.bk-dl a.bk-dl-file[aria-disabled="true"]::after{ content:" (enter your email above)"; font-weight:400; font-size:.8rem; color:var(--ink-soft); }
.bk-dl a.bk-dl-read{ font-size:.9rem; margin-left:.4rem; }

/* ---------- the book's design on screen (made by tools/book/build_book.py; the print edition is book-print.css) ----------
   part colours: Part One green, Part Two brass, Part Three blue, the back of the book rust */
.read [data-part="1"], .bk-home [data-part="1"]{ --pc:#3E6B4C; --pt:#E2F0E6; }
.read [data-part="2"], .bk-home [data-part="2"]{ --pc:#8A5F1C; --pt:#F6ECD2; }
.read [data-part="3"], .bk-home [data-part="3"]{ --pc:#2B5B8C; --pt:#E1ECF7; }
.read [data-part="4"], .bk-home [data-part="4"]{ --pc:#96412B; --pt:#F6E2D9; }
.pe-only{ display:none !important; }
@media print{ .book-open{ display:none !important; } }

/* the chapter-opener band above each chapter's title */
.read .book-open{ display:flex; align-items:flex-end; gap:.8rem; margin:0 0 .4rem; padding:0 0 .45rem; border-bottom:3px solid var(--pc); max-width:none; }
.read .book-open-n{ font-family:"Fraunces", Georgia, serif; font-weight:600; font-size:clamp(2.4rem, 1.8rem + 2.6vw, 3.4rem); line-height:.9; color:var(--pc); }
.read .book-open-p{ font-family:"IBM Plex Mono", monospace; font-size:.74rem; letter-spacing:.14em; text-transform:uppercase; color:var(--pc); padding-bottom:.3rem; }

/* figures: full width of the phone, tap to open the picture on its own */
.read figure.book-fig{ margin:1.2rem 0 1.4rem; max-width:none; }
.read figure.book-fig a.book-fig-zoom{ display:block; text-decoration:none; cursor:zoom-in; }
.read figure.book-fig img{ display:block; width:100%; height:auto; max-width:600px; margin:0 auto; }
.read figure.book-fig figcaption{ max-width:600px; margin:.5rem auto 0; font-size:.9rem; line-height:1.45; color:var(--ink-soft); }
.read .book-fig-n{ font-family:"IBM Plex Mono", monospace; font-size:.74rem; letter-spacing:.1em; text-transform:uppercase; color:var(--brass-ink); margin-right:.35rem; }
@media (max-width:560px){
  /* the figure takes the phone's whole width (16px each side), even inside an idea card */
  .read figure.book-fig{ width:calc(100vw - 32px); margin-left:calc((100% - (100vw - 32px)) / 2); margin-right:0; }
  .read figure.book-fig figcaption{ padding:0 .2rem; }
}

/* the end of every chapter: what to remember, and what it connects to */
.read .book-end-grid{ display:grid; gap:1rem; margin:1.2rem 0 0; }
@media (min-width:760px){ .read .book-end-grid{ grid-template-columns:1fr 1fr; } }
.read .book-end-grid > section{ padding:.85rem 1.1rem; border-radius:14px; border:1px solid var(--line); background:var(--paper); }
.read .book-end-grid > section.book-end-rem{ background:var(--pt, var(--paper-deep)); border-color:transparent; border-left:4px solid var(--pc, var(--brass)); border-radius:4px 14px 14px 4px; }
.read .book-end-grid h2.book-end-k{ margin:0 0 .45rem; padding:0; font-size:.78rem; font-family:"IBM Plex Mono", monospace; font-weight:500; letter-spacing:.12em; text-transform:uppercase; color:var(--pc, var(--brass-ink)); border:0; }
.read ul.book-end-list{ list-style:none; margin:0; padding:0 !important; }
.read ul.book-end-list li{ margin:.35rem 0; max-width:none; line-height:1.45; }
.read .book-end-rem li{ padding-left:1.3rem; position:relative; }
.read .book-end-rem li::before{ content:""; position:absolute; left:.15rem; top:.42em; width:.55rem; height:.3rem; border-left:2px solid var(--pc, var(--credit)); border-bottom:2px solid var(--pc, var(--credit)); transform:rotate(-45deg); }
.read .book-end-links li a{ font-weight:600; }
.read .book-end-links li span{ display:block; font-size:.9rem; color:var(--ink-soft); }

/* the book's home: the cover at the top, part colours in the contents */
.bk-home .bk-cover{ display:grid; grid-template-columns:1fr; gap:.4rem; margin:0 0 1.2rem; padding:1.1rem 1.2rem 1rem 1.6rem; border-radius:18px; background:#F7F1E1; border:1px solid var(--line); position:relative; overflow:hidden;
  background-image:repeating-linear-gradient(to bottom, transparent 0 27px, rgba(205,191,152,.45) 27px 28px); }
.bk-home .bk-cover::before{ content:""; position:absolute; left:.85rem; top:0; bottom:0; border-left:1px solid #96412B; box-shadow:3px 0 0 -2px #96412B; }
.bk-home .bk-cover-brand{ margin:0; font-family:"IBM Plex Mono", monospace; font-size:.72rem; letter-spacing:.16em; text-transform:uppercase; color:#96412B; }
.bk-home .bk-cover-k{ display:none; }
.bk-home .bk-cover h1{ margin:.35rem 0 .2rem; font-size:clamp(2rem, 1.5rem + 2.4vw, 3rem); line-height:1.04; }
.bk-home .bk-cover .bk-sub{ font-style:italic; }
.bk-home .bk-cover-by{ margin:.6rem 0 0; font-family:"Lora", Georgia, serif; font-style:italic; font-size:.95rem; letter-spacing:.02em; text-transform:none; }
.bk-home .bk-cover-art svg{ display:block; width:100%; max-width:340px; height:auto; margin:0 auto; }
@media (min-width:700px){ .bk-home .bk-cover{ grid-template-columns:1.25fr 1fr; align-items:center; } }
.bk-home .bk-part h2{ border-top:3px solid var(--pc); padding-top:.6rem; }
.bk-home .bk-part h2 span{ color:var(--pc); }
.bk-home .bk-part .bk-ch-n{ color:var(--pc); }
.bk-home .bk-part a.bk-ch{ border-left:4px solid var(--pc); }
.bk-home .bk-part .bk-ch-m{ border-left:4px solid var(--pc); }
.bk-home .bk-toc figure.book-fig{ margin:1rem 0 .5rem; }

/* the downloads: a small cover on each card */
.bk-dl .bk-dl-card{ display:grid; grid-template-columns:7.2rem 1fr; gap:1rem; align-items:start; }
.bk-dl .bk-dl-cover{ display:flex; flex-direction:column; gap:.3rem; aspect-ratio:170 / 240; padding:.5rem .45rem; border-radius:6px; background:#F7F1E1; border:1px solid var(--line); border-top:10px solid var(--acc); }
.bk-dl .bk-dl-cover-t{ font-family:"Fraunces", Georgia, serif; font-weight:600; font-size:.82rem; line-height:1.05; }
.bk-dl .bk-dl-cover svg{ width:100%; height:auto; background:var(--tint); border-radius:50%; }
.bk-dl .bk-dl-cover-p{ margin-top:auto; font-size:.66rem; font-weight:600; color:var(--acc); line-height:1.2; }
@media (max-width:420px){ .bk-dl .bk-dl-card{ grid-template-columns:5.4rem 1fr; gap:.8rem; } }

/* the one-page books on screen: part openers, chapter openers and chapter ends */
.read.whole section.pe-part{ margin:3rem 0 1.5rem; padding:1.1rem 1.2rem 1rem; border-radius:16px; background:var(--pt); border-left:8px solid var(--pc); }
.read.whole section.pe-part .pe-rules, .read.whole .pe-mark{ display:none; }
.read.whole .pe-part-k{ margin:0; font-family:"IBM Plex Mono", monospace; font-size:.78rem; letter-spacing:.16em; text-transform:uppercase; color:var(--pc); }
.read.whole h1.pe-part-h{ margin:.2rem 0 .3rem; font-size:clamp(1.8rem, 1.4rem + 2vw, 2.4rem); }
.read.whole .pe-part-b{ margin:0 0 .6rem; font-style:italic; color:var(--ink-soft); }
.read.whole .pe-part-art{ display:none; }
.read.whole .pe-part-l{ margin:.6rem 0 .3rem; font-size:.78rem; font-family:"IBM Plex Mono", monospace; letter-spacing:.12em; text-transform:uppercase; color:var(--pc); }
.read.whole ol.pe-part-list{ margin:0; padding-left:0 !important; list-style:none; }
.read.whole ol.pe-part-list li{ margin:.25rem 0; max-width:none; }
.read.whole ol.pe-part-list a span{ font-family:"IBM Plex Mono", monospace; font-size:.8rem; color:var(--pc); margin-right:.3rem; }
.read.whole .pe-pg:empty{ display:none; }
.read.whole ol.pe-part-list .pe-pg{ display:none; }
.read.whole ol.pe-part-list b{ font-weight:inherit; }
.read.whole article.pe-ch{ border-top:0; padding-top:.5rem; }
.read.whole header.ch-open{ margin:0 0 1.2rem; padding:0 0 .9rem; border-bottom:1px solid var(--line); }
.read.whole header.ch-open::before{ content:""; display:block; width:5rem; border-top:4px solid var(--pc); margin:0 0 .7rem; }
.read.whole .ch-num{ margin:0; font-family:"Fraunces", Georgia, serif; font-weight:600; font-size:clamp(2.4rem, 1.8rem + 2.6vw, 3.2rem); line-height:.95; color:var(--pc); }
.read.whole .ch-kicker{ margin:.35rem 0 .2rem; font-family:"IBM Plex Mono", monospace; font-size:.76rem; letter-spacing:.14em; text-transform:uppercase; color:var(--pc); }
.read.whole h2.ch-title{ margin:0 0 .5rem; font-size:clamp(1.45rem, 1.2rem + 1.2vw, 1.85rem); line-height:1.2; }
.read.whole .ch-intro{ font-style:italic; font-size:1.06rem; color:var(--ink-soft); }
.read.whole .ch-in{ padding:.7rem 1rem; border-radius:12px; background:var(--pt); }
.read.whole .ch-in-k{ margin:0 0 .3rem; font-family:"IBM Plex Mono", monospace; font-size:.74rem; letter-spacing:.12em; text-transform:uppercase; color:var(--pc); }
.read.whole ol.ch-in-list{ margin:0; padding-left:1.3rem; font-size:.94rem; }
@media (min-width:700px){ .read.whole ol.ch-in-list{ columns:2; column-gap:1.6rem; } }
.read.whole ol.ch-in-list li{ margin:.15rem 0; break-inside:avoid; }
.read.whole aside.pe-end{ margin:2rem 0 1rem; padding:1rem 0 0; border-top:4px double var(--pc); display:grid; gap:1rem; }
@media (min-width:760px){ .read.whole aside.pe-end{ grid-template-columns:1fr 1fr; } .read.whole .pe-end-use{ grid-column:1 / -1; } }
.read.whole .pe-end > div{ padding:.8rem 1rem; border-radius:14px; border:1px solid var(--line); background:var(--paper); }
.read.whole .pe-end > .pe-end-rem{ background:var(--pt); border-color:transparent; }
.read.whole h3.pe-end-k{ margin:0 0 .4rem; font-size:.76rem; font-family:"IBM Plex Mono", monospace; font-weight:500; letter-spacing:.12em; text-transform:uppercase; color:var(--pc); }
.read.whole ul.pe-end-list, .read.whole ul.pe-end-conn, .read.whole ul.pe-use{ list-style:none; margin:0; padding:0 !important; }
.read.whole .pe-end li{ margin:.35rem 0; max-width:none; }
.read.whole .pe-conn-l, .read.whole .pe-conn-w, .read.whole .pe-use-t a, .read.whole .pe-use-d{ display:block; }
.read.whole .pe-conn-w, .read.whole .pe-use-d{ font-size:.9rem; color:var(--ink-soft); }
.read.whole .pe-conn-p, .read.whole .pe-use-u, .read.whole .pe-qr{ display:none; }
.read.whole section.pe-back{ margin:3rem 0 1rem; padding-top:1rem; border-top:4px solid #96412B; }
.read.whole dl.pe-gloss-list .pe-gl{ margin:0 0 .8rem; }
.read.whole dl.pe-gloss-list dt{ font-weight:600; font-family:"Fraunces", Georgia, serif; }
.read.whole dl.pe-gloss-list dd{ margin:0; }
.read.whole .pe-gl-ex{ display:block; color:var(--ink-soft); font-size:.92rem; }
.read.whole .pe-notes-h span{ display:block; font-family:"IBM Plex Mono", monospace; font-size:.74rem; letter-spacing:.12em; text-transform:uppercase; color:#96412B; }
.read.whole ul.pe-refs{ padding-left:1.1rem; font-size:.94rem; }
.read.whole .pe-ref-u{ display:block; overflow-wrap:anywhere; font-size:.85rem; }
.read.whole ol.pe-lof-list{ padding-left:0 !important; list-style:none; }
.read.whole .pe-lof-n{ font-family:"IBM Plex Mono", monospace; font-size:.8rem; color:#96412B; margin-right:.4rem; }
.read.whole .pe-lof-list .pe-toc-dots{ display:none; }
