/* The serial reader: paper, measure, nothing else. The page is paper from the mast to the foot; the dark chrome stays around it.
   The firm reading rules hold in .episode-body: 38rem, 18 to 21px at 1.6, left-aligned, no indents. Docs: docs/truemage-reader.md.
   On the episode page every colour token below the mast is remapped to its paper twin, so the cards, the field and the links
   inside need no second set of rules. The plates keep their own ink on art-black. */
main:has(.episode-body){background:var(--paper);--bone:var(--ink);--bone-dim:var(--muted);--ash:var(--muted);--rule-d:var(--line-paper);--line:var(--line-paper);--void:var(--paper);--panel:var(--paper);--panel-2:var(--paper);--crimson-2:var(--read-accent)}
main:has(.episode-body) .plate{--bone:var(--chalk);color:var(--chalk)}
.chaptercard{position:relative;color:var(--bone);padding:var(--s-6) 0 var(--s-2)}
.chaptercard .speed{display:none}
.chaptercard .rel{max-width:var(--measure);margin:0 auto}
.chaptercard .rel:not(.wrap){max-width:calc(var(--measure) + 2 * var(--pad-x));padding-inline:var(--pad-x)}
.chaptercard .wrap.rel{max-width:48rem}
.chaptercard .topnav{display:flex;align-items:center;justify-content:flex-start;gap:var(--s-2);margin:0 0 var(--s-5) calc(var(--s-3) * -1)}
.chaptercard .topnav a,.chaptercard .topnav span{display:inline-flex;align-items:center;justify-content:center;min-height:44px;min-width:44px;padding:0 var(--s-3)}
.chaptercard .topnav a{color:var(--bone);text-decoration:none}
.chaptercard .topnav a:hover,.chaptercard .topnav a:focus-visible{text-decoration:underline;text-underline-offset:.35em}
.chaptercard .topnav .off{color:var(--ash)}
.chaptercard .ep-tag{font:700 var(--fs-micro)/1.3 var(--mono);letter-spacing:.06em;color:var(--ash)}
.chaptercard h1{margin:var(--s-3) 0 0;font:600 clamp(1.75rem, 1.4rem + 1.6vw, 2.5rem)/1.1 var(--disp);letter-spacing:0;color:var(--bone)}
.chaptercard .lede{margin:var(--s-3) 0 0;max-width:36rem;font:400 var(--fs-lede)/1.5 var(--serif);color:var(--bone-dim)}
.chaptercard .by{margin-top:var(--s-4)}
.chaptercard .cta{display:flex;margin-top:var(--s-5)}
.episode-body{max-width:var(--measure);margin:0 auto;padding:var(--s-5) var(--pad-x) 0;background:var(--paper);color:var(--ink);font:400 var(--fs-read)/1.6 var(--serif);text-align:left;hyphens:none;box-sizing:content-box}
.episode-body p{margin:0 0 1.35em;text-indent:0}
.episode-body strong{font-weight:600}
.episode-body a{color:inherit;text-decoration-color:var(--line-paper)}
.episode-body blockquote{margin:1.6em 0;padding-left:var(--s-4);border-left:1px solid var(--line-paper);color:var(--muted);font-style:italic}
.episode-body h2,.episode-body h3{font-family:var(--disp);font-weight:600;letter-spacing:0;line-height:1.15;margin:1.8em 0 .5em}
.episode-body h2{font-size:1.375rem}.episode-body h3{font-size:1.125rem}
/* the scene break: an author's "* * *" becomes three quiet marks */
.episode-body hr{border:0;margin:2.6em auto;height:auto;text-align:center;line-height:1}
.episode-body hr::before{content:"\25C6  \25C6  \25C6";display:block;font:700 var(--fs-micro)/1 var(--mono);letter-spacing:.7em;color:var(--muted);text-indent:.7em}
.epnav{display:flex;align-items:center;justify-content:space-between;gap:var(--s-3);max-width:var(--measure);margin:var(--s-6) auto 0;padding:var(--s-3) var(--pad-x);background:var(--paper);box-sizing:content-box;border-top:1px solid var(--line-paper);font:500 1rem/1 var(--disp);letter-spacing:.01em}
.epnav a,.epnav span{display:inline-flex;align-items:center;min-height:44px;min-width:44px}
.epnav a{color:var(--ink);text-decoration:none}
.epnav a:hover,.epnav a:focus-visible{text-decoration:underline;text-underline-offset:.35em}
.epnav .off{color:var(--muted)}
.incodex{padding-block:var(--s-6) 0;max-width:48rem}
.incodex h2{color:var(--ash)}
.caughtup{position:relative;max-width:var(--measure);margin:var(--s-6) auto 0;padding:var(--s-5) var(--pad-x) 0;box-sizing:content-box;border-top:1px solid var(--line-paper);color:var(--bone);text-align:left}
.caughtup h2{margin:0 0 var(--s-2);font:600 1.25rem/1.2 var(--disp);letter-spacing:0}
.caughtup p{margin:0 0 var(--s-4);max-width:42ch;color:var(--bone-dim)}
.caughtup .door{margin:0;padding:0;border:0;text-align:left}
.eplist ol{list-style:none;margin:0;padding:0}
.eplist li a{display:grid;grid-template-columns:1fr;gap:2px;min-height:72px;padding:var(--s-3) 0;border-bottom:1px solid var(--rule-d);color:var(--bone);text-decoration:none}
.eplist li a:hover b,.eplist li a:focus-visible b{text-decoration:underline;text-underline-offset:.2em}
.eplist li b{font:500 1.1875rem/1.2 var(--disp);letter-spacing:.01em}
@media (min-width:48rem){.eplist li a{grid-template-columns:7rem 1fr auto;align-items:baseline;gap:var(--s-4)}}
@media print{.chaptercard{background:#fff;color:#000;border:0}.chaptercard h1{color:#000}.chaptercard .speed,.caughtup,.epnav{display:none}.episode-body{padding:0}}
