@font-face{font-family:BookSerif;src:url('../fonts/EBGaramond-Regular.woff2')} 
@font-face{font-family:BookSerif;src:url('../fonts/EBGaramond-Bold.woff2');font-weight:700}
@font-face{font-family:BookSerif;src:url('../fonts/EBGaramond-Italic.woff2');font-style:italic}
*{box-sizing:border-box}
@page{size:6in 9in;margin:.65in .65in .7in;@bottom-center{content:counter(page);font:9pt BookSerif;color:#555}}
@page cover{margin:0;@bottom-center{content:none}}
html{color:#20221f;background:#fff;font-family:BookSerif,Georgia,serif;font-size:12pt;line-height:1.38;font-variant-ligatures:none}
body{margin:0}a{color:#315245;text-decoration:underline;text-underline-offset:.12em;overflow-wrap:anywhere}
p{margin:0 0 .72em;orphans:3;widows:3;text-align:left}
h1,h2,h3,h4{line-height:1.18;break-after:avoid;font-weight:700}
h1{font-size:23pt;margin:0 0 .7em}h2{font-size:17pt;margin:1.1em 0 .55em}h3{font-size:13.5pt;margin:1em 0 .5em}h4{font-size:12pt}
ul,ol{padding-left:1.2em}li{margin:.25em 0;orphans:2;widows:2}
blockquote{margin:1em 0;padding:.3em 0 .3em 1em;border-left:2px solid #aa9052}
blockquote p:last-child{margin-bottom:0}hr{border:0;border-top:1px solid #bdb6a6;margin:1.3em 0}
pre{font:9pt/1.4 monospace;white-space:pre-wrap;overflow-wrap:anywhere;border:1px solid #ccc;padding:.7em}
code{font:9pt monospace;overflow-wrap:anywhere}table{width:100%;border-collapse:collapse;font-size:10pt;margin:1em 0;table-layout:fixed}
th,td{border-bottom:1px solid #ccc;text-align:left;padding:.35em;vertical-align:top;overflow-wrap:anywhere}tr{break-inside:avoid}thead{display:table-header-group}
.cover{page:cover;width:6in;height:9in;break-after:page;background:var(--cover-color,#182622);color:#f5ebd3;padding:.55in;display:flex;flex-direction:column;justify-content:space-between;position:relative;text-align:center;overflow:hidden}
.cover:before{content:"";position:absolute;inset:.23in;border:1px solid #bca364;pointer-events:none}
.cover p{text-align:center;margin:0}.cover .author{font-size:13pt;letter-spacing:0;text-transform:uppercase}.cover .ornament{font-size:38pt;color:#d0b670}
.cover h1{font-size:35pt;font-weight:400;line-height:1.07;margin:.15in 0 .3in}.cover .subtitle{font-size:15pt;line-height:1.3}.cover .edition{font-size:10pt;letter-spacing:.09em;text-transform:uppercase}
.frontmatter,.contents,.chapter{break-before:page}.frontmatter h1{font-size:24pt}.frontmatter .imprint{margin-top:2em;font-size:10pt;color:#555}
.eyebrow{font-size:10pt;letter-spacing:.12em;text-transform:uppercase;color:#5d624f;margin-bottom:.5em}.chapter-title{margin-bottom:1em}
.contents ol{list-style:none;padding:0}.contents li{margin:0 0 .45em;break-inside:avoid}.contents a{color:inherit;text-decoration:none}
.web-nav{font:16px/1.5 system-ui;padding:16px;display:flex;gap:24px;flex-wrap:wrap;background:#f0eee5}
@media screen{html{background:#e8e7e0}body{max-width:900px;margin:auto;background:white;box-shadow:0 0 30px #0001}.cover{margin:auto;max-width:100%}.frontmatter,.contents,.chapter{padding:40px 60px}.chapter+.chapter{border-top:1px solid #ddd}.chapter{overflow-wrap:anywhere}}
@media screen and (max-width:600px){.frontmatter,.contents,.chapter{padding:28px 22px}.cover{width:100%;height:auto;min-height:680px;padding:44px 36px;gap:40px}.cover h1{font-size:32pt}}
@media print{.web-nav{display:none}html{-webkit-print-color-adjust:exact;print-color-adjust:exact}.cover a{color:inherit}}
/* Expanded reference edition: navigation and figures remain readable at book scale. */
.expanded-trader .chapter img{display:block;width:100%;height:auto;max-height:5.2in;object-fit:contain;break-inside:avoid;margin:1em auto}
.expanded-trader th:first-child,.expanded-trader td:first-child{width:32%}
.expanded-trader .cover .edition{font-size:9pt;letter-spacing:.055em}
@media screen{.expanded-trader{font-size:18px;line-height:1.55}.expanded-trader .web-nav{position:sticky;top:0;z-index:5;gap:12px 20px;border-bottom:1px solid #c5c8bd}.expanded-trader :is(.contents,.chapter,h2,h3){scroll-margin-top:110px}.expanded-trader .chapter table{font-size:14px}.expanded-trader a:focus-visible{outline:2px solid #315245;outline-offset:4px}}
@media screen and (max-width:600px){.expanded-trader .chapter table{font-size:12px}.expanded-trader .web-nav{font-size:14px}}

/* ============================================================
   Geometric treatise: a dedicated typographic system for The
   Spinozan Trader. Every rule below is scoped to .expanded-trader
   so the other four editions render exactly as before.
   ============================================================ */
@font-face{font-family:TraderDisplay;src:url('../fonts/IMFeFC-roman.woff2');font-weight:400}
@font-face{font-family:TraderDisplay;src:url('../fonts/IMFeFC-italic.woff2');font-style:italic}
.expanded-trader{--ink:#20221f;--ink-soft:#4a4c44;--gold:#9a723c;--gold-soft:#c7a361;--moss:#55624f;--rule:#ddd8c8;--paper-tint:#f8f5ea}
.expanded-trader :is(.chapter-title,.part-banner-title,.frontmatter h1,.prop-tag,.cover h1){font-family:TraderDisplay,BookSerif,Georgia,serif}
.expanded-trader{font-variant-numeric:oldstyle-nums proportional-nums;font-feature-settings:"onum" 1,"pnum" 1}
.expanded-trader .chapter table,.expanded-trader .chapter table *{font-variant-numeric:lining-nums tabular-nums;font-feature-settings:"lnum" 1,"tnum" 1}
.expanded-trader .chapter>p{text-align:justify;hyphens:auto;-webkit-hyphens:auto}

/* Cover: a geometric construction stands in for the plain ornament. */
.expanded-trader .cover .cover-mark{margin:0 auto}
.expanded-trader .cover .cover-mark svg{width:210px;height:auto;display:block;margin:0 auto}
@media screen and (max-width:600px){.expanded-trader .cover .cover-mark svg{width:160px}}

/* Contents: group chapters under their part. */
.expanded-trader .contents .toc-part{list-style:none;margin:1.1em 0 .35em;padding-top:.5em;border-top:1px solid var(--rule)}
.expanded-trader .contents .toc-part:first-child{border-top:none;margin-top:0;padding-top:0}
.expanded-trader .contents .toc-part a{font-family:TraderDisplay,BookSerif,Georgia,serif;font-size:1.05em;font-weight:400;color:var(--ink)}
.expanded-trader .contents li:not(.toc-part){padding-left:1.1em}

/* Chapter openers. */
.expanded-trader .chapter-eyebrow{font-size:9.5pt;text-transform:uppercase;color:var(--gold);margin:0 0 .35em;font-style:normal}
.expanded-trader .chapter-title{border-bottom:1px solid var(--rule);padding-bottom:.35em}

/* Part banners: begin a fresh page but share it with the chapter that follows. */
.expanded-trader .part-banner{break-before:page;break-after:avoid;text-align:center;padding-top:.3in}
.expanded-trader .part-banner+.chapter{break-before:avoid}
.expanded-trader .part-banner-mark{display:flex;justify-content:center}
.expanded-trader .part-banner-mark svg{width:90px;height:auto}
.expanded-trader .part-banner-eyebrow{font-size:11pt;text-transform:uppercase;color:var(--gold);margin:.4em 0 .1em}
.expanded-trader .part-banner-title{font-weight:400;font-size:22pt;margin:0 0 .4em;padding-bottom:.35em;border-bottom:1px solid var(--rule);display:inline-block}
@media screen{.expanded-trader .part-banner{padding-top:2.2em}.expanded-trader .part-banner-title{font-size:2rem}}

/* Propositions: a numeral tag and a statement, framed like a displayed claim. */
.expanded-trader .chapter h1.proposition,.expanded-trader .chapter h2.proposition,.expanded-trader .chapter h3.proposition,.expanded-trader .chapter h4.proposition{
 font-weight:400;line-height:1.25;margin:1.15em 0 .5em;padding:.5em .8em;background:var(--paper-tint);
 border:1px solid var(--rule);border-left:3px solid var(--gold);break-inside:avoid}
.expanded-trader .chapter h1.chapter-title.proposition{margin-top:0;border-bottom:none}
.expanded-trader .prop-tag{display:block;font-size:.62em;text-transform:uppercase;color:var(--gold);margin-bottom:.2em;hyphens:none}
.expanded-trader .prop-statement{font-style:italic}

/* The italic dependency line under a proposition. */
.expanded-trader .prop-deps{font-size:.86em;color:var(--moss);text-align:left;margin:-.2em 0 .7em;padding-left:.9em;border-left:3px solid transparent}

/* Labeled paragraphs: the proof apparatus (Demonstration, Scholium, ...) and
   the indicator-glossary entries share one structured treatment. The label
   itself is real text (see build_books.py), not generated content, so it
   stays present in the PDF's text and accessibility layer. */
.expanded-trader .chapter p.labeled{text-align:left}
.expanded-trader .chapter p.labeled .label-run{font-size:.86em;font-weight:700;color:var(--gold);hyphens:none}

.expanded-trader .qed-mark{color:var(--gold);font-weight:700;margin-left:.15em}

/* Figures: a printed plate with a hairline frame and a numbered caption.
   The "Figure N." prefix is written as real text in build_books.py. */
.expanded-trader .chapter p:has(>img){border:1px solid var(--rule);background:var(--paper-tint);padding:.4em .4em .15em;break-inside:avoid}
.expanded-trader .chapter p:has(>img)+p{text-align:left;font-size:.85em;color:var(--moss);padding:0 .3em;margin-top:-.2em}
.expanded-trader .chapter p:has(>img)+p em{font-style:italic}
.expanded-trader .chapter p:has(>img)+p em strong{font-style:normal;color:var(--ink);hyphens:none}

/* Tables: a quieter rule set with a gold header underline. */
.expanded-trader .chapter table{font-size:.82em;border:1px solid var(--rule)}
.expanded-trader .chapter thead th{border-bottom:2px solid var(--gold);color:var(--ink);font-weight:700}
.expanded-trader .chapter tbody tr:nth-child(even){background:var(--paper-tint)}

/* Running foot, scoped to this book only via the same named-page mechanism
   the cover already uses: .cover further overrides `page` back to `cover`. */
.expanded-trader{page:trader}
@page trader{@bottom-left{content:"The Spinozan Trader";font:8pt BookSerif;letter-spacing:.06em;color:#8a8672}}
.expanded-trader.consent-edition{page:consent}
@page consent{@bottom-left{content:"The Geometry of Consent";font:8pt BookSerif;letter-spacing:.06em;color:#8a8672}}
.expanded-trader.truth-edition{page:truth}
@page truth{@bottom-left{content:"The Brutal Truth";font:8pt BookSerif;letter-spacing:.06em;color:#8a8672}}

/* ============================================================
   Illuminated edition: The Way of Necessity. Verse, not prose, so
   the measure is narrow and the line breaks are authored in the
   manuscript. Every rule is scoped to body.way-of-necessity, and
   the named page `way` carries margin:0 so the dark ground bleeds
   to the trim edge (a non-zero page margin leaves the html canvas
   white, because Chromium paints the root background only inside
   the content box). Nothing here affects the other editions.
   ============================================================ */
@font-face{font-family:WayDisplay;src:url('../fonts/CormorantGaramond-Regular.woff2');font-weight:400}
@font-face{font-family:WayDisplay;src:url('../fonts/CormorantGaramond-Italic.woff2');font-style:italic}

@page way{size:6in 9in;margin:0}

body.way-of-necessity{page:way;background:#0d0a06;color:#f4e4c1;
  --ink:#f4e4c1;--ink-soft:#e8d5ae;--gold:#c9a961;--gold-soft:#a08050;
  --moss:#a08050;--rule:#3a2a1a;--paper-tint:#14100c}
html:has(body.way-of-necessity){background:#0d0a06}

/* Trim: the dark ground runs to the edge, so the text needs its own margin. */
@media print{body.way-of-necessity :is(.frontmatter,.contents,.chapter,.part-banner){padding:.72in .72in .8in}}
@media screen{body.way-of-necessity .web-nav{background:#110d08;color:#c9a961}
  body.way-of-necessity .web-nav a{color:#c9a961}
  body.way-of-necessity :is(.frontmatter,.contents,.chapter){border-top:1px solid #1e1812}}

/* Front matter and contents. */
body.way-of-necessity .eyebrow{color:var(--gold-soft)}
body.way-of-necessity :is(.frontmatter h1,.contents h1){font-family:WayDisplay,BookSerif,Georgia,serif;font-weight:400;color:var(--gold)}
body.way-of-necessity .frontmatter .imprint{color:#8a7452}
body.way-of-necessity .contents a{color:#d4b878}
body.way-of-necessity .contents .toc-part a{font-family:WayDisplay,BookSerif,Georgia,serif;font-weight:400;color:var(--gold)}

/* Chapter openers: the number is already in the heading, so the eyebrow goes. */
body.way-of-necessity .chapter-eyebrow{display:none}
body.way-of-necessity .chapter-title{font-family:WayDisplay,BookSerif,Georgia,serif;font-weight:400;
  font-size:16pt;letter-spacing:.02em;color:var(--gold);text-align:center;
  border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);
  padding:.42em 0;margin:0 0 1.6em}

/* Verse: authored line breaks, no hyphens, a narrow centred measure. */
body.way-of-necessity .chapter{font-size:11pt;line-height:1.62}
body.way-of-necessity .chapter>p{max-width:4.05in;margin:0 auto .8em;text-align:left;hyphens:none}
body.way-of-necessity .chapter>p:last-child{margin-bottom:0}

/* Part banners. */
body.way-of-necessity .part-banner{padding-top:2.9in}
body.way-of-necessity .part-banner-mark svg{width:70px}
body.way-of-necessity .part-banner-eyebrow{color:var(--gold-soft);letter-spacing:.24em}
body.way-of-necessity .part-banner-title{font-family:WayDisplay,BookSerif,Georgia,serif;font-weight:400;
  font-size:24pt;color:var(--gold);border-bottom:1px solid var(--rule)}
