@font-face {
  font-display: swap;
  font-family: "Spore Numberpile Reversed";
  font-style: normal;
  font-weight: 400;
  src: url("numberpile-reversed.woff2") format("woff2");
}

:root {
  color-scheme: light;
  --edition-paper: #f4eddf;
  --edition-ink: #292923;
  --edition-muted: #716d64;
  --edition-accent: #a54839;
  --edition-rule: #d5c8b2;
  --edition-surface: #ece2d2;
  --edition-reading-font: Iowan Old Style, Palatino Linotype, Book Antiqua, Georgia, serif;
  --edition-interface-font: Montserrat, Avenir Next, Helvetica Neue, Arial, sans-serif;
  --edition-code-font: ui-monospace, SFMono-Regular, Consolas, monospace;
  --edition-math-font: "STIX Two Math", "Cambria Math", "Latin Modern Math", serif;
  --edition-code-surface: #1a1b26;
  --edition-code-ink: #c0caf5;
  --edition-code-muted: #565f89;
  --edition-code-rule: #3b4261;
  font-family: var(--edition-reading-font);
  line-height: 1.72;
}

:root[data-edition-appearance="paper"] {
  color-scheme: light;
  --edition-paper: #fcfcfa;
  --edition-ink: #20252b;
  --edition-muted: #66727d;
  --edition-accent: #1f5f8b;
  --edition-rule: #c9d8e2;
  --edition-surface: #f2f6f8;
}

:root[data-edition-appearance="night"] {
  color-scheme: dark;
  --edition-paper: #1a1b26;
  --edition-ink: #c0caf5;
  --edition-muted: #9aa5ce;
  --edition-accent: #7aa2f7;
  --edition-rule: #3b4261;
  --edition-surface: #24283b;
  --edition-code-surface: #16161e;
  --edition-code-ink: #c0caf5;
  --edition-code-muted: #737aa2;
  --edition-code-rule: #3b4261;
}

body { background: var(--edition-paper); color: var(--edition-ink); margin: 0; }
.spore-appearance-picker { display: none; }
:root[data-edition-appearance-ready="true"] .spore-appearance-picker { --edition-appearance-step: 2.75rem; display: block; height: 2.75rem; opacity: .48; position: fixed; right: max(0rem, env(safe-area-inset-right)); top: max(0rem, env(safe-area-inset-top)); transition: opacity 180ms ease; width: 2.75rem; z-index: 10; }
:root[data-edition-appearance-ready="true"] .spore-appearance-picker[data-edition-appearance-open="true"] { opacity: 1; }
.spore-appearance-swatch { --edition-swatch-fill: var(--edition-paper); --edition-swatch-border: var(--edition-accent); appearance: none; background: transparent; border: 0; border-radius: 50%; box-sizing: border-box; cursor: pointer; height: 2.75rem; left: 0; margin: 0; padding: 0; position: absolute; top: 0; transform: translateY(0); transition: opacity 180ms ease, transform 180ms cubic-bezier(.2, .8, .2, 1), visibility 0s linear 180ms; width: 2.75rem; }
.spore-appearance-swatch::before { background: var(--edition-swatch-fill); border: 1px solid var(--edition-swatch-border); border-radius: 50%; box-shadow: 0 .12rem .4rem rgb(0 0 0 / .12); content: ""; display: block; height: 1.75rem; margin: auto; width: 1.75rem; }
.spore-appearance-swatch--parchment { --edition-swatch-fill: #f4eddf; --edition-swatch-border: #a54839; }
.spore-appearance-swatch--paper { --edition-swatch-fill: #fcfcfa; --edition-swatch-border: #1f5f8b; }
.spore-appearance-swatch--night { --edition-swatch-fill: #1a1b26; --edition-swatch-border: #7aa2f7; }
.spore-appearance-swatch[data-edition-appearance-slot="0"] { opacity: 1; transform: translateY(0); visibility: visible; z-index: 3; }
.spore-appearance-swatch[data-edition-appearance-slot="1"], .spore-appearance-swatch[data-edition-appearance-slot="2"] { opacity: 0; pointer-events: none; visibility: hidden; z-index: 2; }
.spore-appearance-picker[data-edition-appearance-open="true"] .spore-appearance-swatch { pointer-events: auto; transition-delay: 0s; visibility: visible; }
.spore-appearance-picker[data-edition-appearance-open="true"] .spore-appearance-swatch[data-edition-appearance-slot="1"] { opacity: 1; transform: translateY(var(--edition-appearance-step)); }
.spore-appearance-picker[data-edition-appearance-open="true"] .spore-appearance-swatch[data-edition-appearance-slot="2"] { opacity: 1; transform: translateY(calc(var(--edition-appearance-step) * 2)); }
.spore-page, .spore-book { margin: auto; max-width: 47rem; padding: 3rem 1.5rem 5rem; }
.spore-header, .spore-document-navigation { font-family: var(--edition-interface-font); letter-spacing: .04em; margin: auto; max-width: 66rem; padding: 1rem 1.5rem; text-transform: uppercase; }
.spore-header { border-bottom: 1px solid var(--edition-rule); } .spore-document-navigation { border-top: 1px solid var(--edition-rule); display: grid; gap: .35rem; grid-template-columns: repeat(3, 2.5rem); justify-content: center; }
.spore-document-navigation a { align-items: center; display: flex; font-size: 1.1rem; justify-content: center; min-height: 2.5rem; text-decoration: none; }
.spore-document-navigation .spore-previous { grid-column: 1; }
.spore-document-navigation .spore-up { grid-column: 2; }
.spore-document-navigation .spore-next { grid-column: 3; }
.spore-skip-nav { left: -9999px; position: absolute; } .spore-skip-nav:focus { background: var(--edition-paper); color: var(--edition-ink); left: 1rem; padding: .5rem; top: 1rem; z-index: 1; }

h1, h2, h3, h4, h5, h6 { font-family: var(--edition-interface-font); letter-spacing: -.02em; line-height: 1.15; margin: 3.5rem 0 1rem; text-wrap: balance; }
h1 { font-size: clamp(2.5rem, 7vw, 4.75rem); } h2 { font-size: 2rem; } h3 { font-size: 1.35rem; }
.spore-chapter + .spore-chapter, .spore-section + .spore-section, .spore-subsection + .spore-subsection { margin-top: 4rem; }
.spore-subtitle { color: var(--edition-muted); font-family: var(--edition-interface-font); font-size: 1rem; letter-spacing: .03em; }
.spore-breadcrumb { font-family: var(--edition-interface-font); font-size: .72rem; font-weight: 700; letter-spacing: .06em; margin: 0 0 1.25rem; text-transform: uppercase; }
.spore-breadcrumb ol { display: flex; flex-wrap: wrap; list-style: none; margin: 0; padding: 0; }
.spore-breadcrumb li::before { content: none; }
.spore-breadcrumb li + li::before { color: var(--edition-muted); content: "/"; margin: 0 .45rem; }
.spore-breadcrumb a, .spore-breadcrumb [aria-current="page"] { color: var(--edition-ink); text-decoration: none; }
.spore-breadcrumb + h1, .spore-breadcrumb + .spore-page h1 { margin-top: 1.25rem; }
a { color: var(--edition-accent); text-decoration-thickness: .08em; text-underline-offset: .12em; }
blockquote { border-left: 1px solid var(--edition-accent); font-size: 1.08em; margin: 2rem 0; padding-left: 1.25rem; }
.spore-epigraph { color: var(--edition-muted); font-size: 1.15em; font-style: italic; margin: 3rem 8% 3rem 20%; }
.spore-small-caps { font-variant-caps: all-small-caps; letter-spacing: .05em; }
pre, code { font-family: var(--edition-code-font); } pre { background: var(--edition-code-surface); border: 1px solid var(--edition-code-rule); color: var(--edition-code-ink); font-size: .88em; margin: 1.5rem 0; max-width: 100%; overflow-x: auto; padding: 1rem; white-space: pre; } pre code { color: var(--edition-code-ink); }
.spore-math { font-family: var(--edition-math-font); font-size: 1em; line-height: 1; vertical-align: -.08em; }
.spore-equation { break-inside: avoid; margin: 3rem 0; max-width: 100%; overflow-x: auto; text-align: center; }
.spore-math--display { display: block; margin: 0 auto; min-width: max-content; vertical-align: 0; width: max-content; }
.spore-equation > figcaption { margin-top: 1rem; text-align: center; }
.spore-chem { display: inline-block; white-space: nowrap; }
.spore-chem-display, .spore-reaction { background: var(--edition-surface); border-top: 1px solid var(--edition-rule); border-bottom: 1px solid var(--edition-rule); margin: 2rem -1.5rem; max-width: 100%; overflow-x: auto; padding: 1rem 1.5rem; text-align: center; white-space: nowrap; }
.spore-reaction-arrow { color: var(--edition-accent); margin: 0 .45rem; }
.spore-score { background: var(--edition-surface); border-top: 1px solid var(--edition-rule); border-bottom: 1px solid var(--edition-rule); margin: 3rem -4rem; max-width: 100%; padding: 1.5rem 2rem; }
.spore-score-notation { max-width: 100%; overflow-x: auto; }
.spore-score-notation > svg { display: block; height: auto; max-width: none; }
.spore-score--snippet .spore-score-notation > svg { max-width: 100%; }
ol, ul, dl { padding-left: 1.5rem; } dt { font-family: var(--edition-interface-font); font-weight: 700; } dd { margin: 0 0 1rem; }
.spore-book :where(ol.spore-numberpile) { counter-reset: spore-list-item; list-style: none; padding-left: 2.6rem; }
.spore-book :where(ol.spore-numberpile > li) { counter-increment: spore-list-item; margin-bottom: .5rem; position: relative; }
.spore-book :where(ol.spore-numberpile > li)::before { content: "(" counter(spore-list-item) ")"; font-family: "Spore Numberpile Reversed"; font-size: 1.35rem; font-variant-ligatures: common-ligatures; left: -2.6rem; line-height: 1; position: absolute; text-align: center; top: .18rem; width: 1.8rem; }
.spore-breadcrumb li::before { font-family: inherit; font-size: inherit; font-variant-ligatures: normal; left: auto; line-height: inherit; position: static; text-align: initial; top: auto; width: auto; }
figure { margin: 3rem 0; } figure img { display: block; height: auto; max-width: 100%; width: 100%; } figcaption { color: var(--edition-muted); font-family: var(--edition-interface-font); font-size: .78rem; letter-spacing: .04em; line-height: 1.5; margin-top: .75rem; text-transform: uppercase; }
table { border-collapse: collapse; display: block; max-width: 100%; overflow-x: auto; } th { font-family: var(--edition-interface-font); letter-spacing: .04em; text-transform: uppercase; } th, td { border-bottom: 1px solid var(--edition-rule); padding: .65rem .75rem; text-align: left; }
.spore-note, .spore-warning { background: var(--edition-surface); border-top: 1px solid var(--edition-rule); border-bottom: 1px solid var(--edition-rule); margin: 2rem 0; padding: 1rem 1.25rem; }
.spore-warning { border-color: var(--edition-accent); }
.spore-footnote-reference { color: var(--edition-accent); font-family: var(--edition-interface-font); font-size: .72em; font-weight: 700; margin-left: .15em; vertical-align: super; }
.spore-footnote-backref { color: var(--edition-accent); font-family: var(--edition-interface-font); font-size: .8em; font-weight: 700; margin-left: .35em; text-decoration: none; }
.spore-sidenote-reference { color: var(--edition-accent); font-family: var(--edition-interface-font); font-size: .72em; font-weight: 700; margin-left: .15em; vertical-align: super; }
.spore-sidenote { border-top: 1px solid var(--edition-rule); color: var(--edition-muted); font-family: var(--edition-interface-font); font-size: .76rem; letter-spacing: .025em; line-height: 1.55; margin: 1rem 0 2rem; padding-top: .65rem; text-transform: uppercase; }
.spore-sidenote::before { content: "Sidenote " attr(number); display: block; font-size: .8em; font-weight: 700; letter-spacing: .07em; margin-bottom: .35rem; }
.spore-footnotes, .spore-bibliography { border-top: 1px solid var(--edition-rule); font-size: .9em; margin-top: 4rem; padding-top: 1.5rem; }
.spore-footnotes::before { color: var(--edition-ink); content: "Notes"; display: block; font-family: var(--edition-interface-font); font-size: 1.25rem; font-weight: 700; letter-spacing: -.02em; line-height: 1.15; margin: 0 0 1rem -1.5rem; }
.spore-bibliography::before { color: var(--edition-ink); content: "Bibliography"; display: block; font-family: var(--edition-interface-font); font-size: 1.25rem; font-weight: 700; letter-spacing: -.02em; line-height: 1.15; margin: 0 0 1rem -1.5rem; }
.spore-bibliography { list-style: none; padding-left: 1.5rem; }
.spore-bibliography > li { text-indent: -1.5rem; }
.spore-bibliography-author, .spore-bibliography-title { margin-right: .35rem; }
.spore-bibliography-backlinks { margin-left: .35em; white-space: nowrap; }
.spore-bibliography-backlink { color: var(--edition-accent); font-family: var(--edition-interface-font); font-size: .8em; font-weight: 700; text-decoration: none; }
.spore-bibliography-backlink + .spore-bibliography-backlink { margin-left: .3em; }
cite { font-style: normal; }
cite > a { color: var(--edition-accent); font-family: var(--edition-interface-font); font-size: .85em; font-weight: 700; text-decoration: none; }
.spore-toc { font-family: var(--edition-interface-font); margin: 2rem 0; }
.spore-toc a { color: var(--edition-ink); text-decoration: none; }
.spore-toc > ol { margin: 0; }
.spore-toc:not(.spore-toc-page):not(.spore-toc-part):not(.spore-toc-book) > ol { display: flex; flex-wrap: wrap; gap: .5rem 1.25rem; list-style: none; padding: 0; }
.spore-toc-page { border-left: 1px solid var(--edition-accent); padding-left: 1rem; }
.spore-toc-page > ol { list-style: none; padding: 0; }
.spore-toc-page li { margin: .35rem 0; }
.spore-toc-part > ol { column-count: 2; column-fill: balance; column-gap: 3.5rem; list-style: decimal; padding-left: 1.5rem; }
.spore-toc-part li { break-inside: avoid; font-family: var(--edition-interface-font); font-size: .72rem; letter-spacing: .06em; padding: .55rem 0; position: relative; text-transform: uppercase; }
.spore-toc-part li::before { content: none; }
.spore-toc-part li::after { border-top: 1px solid var(--edition-rule); content: ""; left: -1.5rem; position: absolute; right: 0; top: 0; }
.spore-toc-part li::marker { content: counter(list-item) "  "; font-family: inherit; font-size: inherit; font-weight: inherit; }
.spore-toc-part .spore-current { font-weight: 700; }
.spore-toc-book { border-top: 1px solid var(--edition-rule); padding-top: 1.5rem; }
.spore-toc-part-entry + .spore-toc-part-entry { margin-top: 2rem; }
.spore-toc-part-entry > h2 { font-size: 1rem; letter-spacing: .04em; margin: 0 0 .75rem; text-transform: uppercase; }
.spore-toc-part-entry > ol { margin: 0; padding-left: 1.5rem; }
.spore-toc-part-entry li { margin: .35rem 0; }
.spore-index { border-top: 1px solid var(--edition-rule); margin-top: 4rem; padding-top: 1.5rem; }
.spore-glossary { border-top: 1px solid var(--edition-rule); margin-top: 4rem; padding-top: 1.5rem; }
.spore-glossary-occurrences { display: flex; flex-wrap: wrap; gap: .35rem .75rem; }
.spore-book[data-prose-alignment="justify"] p { text-align: justify; text-justify: inter-word; }
:focus-visible { outline: .18rem solid var(--edition-accent); outline-offset: .18rem; }

@media (min-width: 76rem) {
  .spore-book { margin-left: clamp(8rem, calc((100vw - 57rem) / 2 + 4rem), 29rem); margin-right: 2rem; max-width: 57rem; }
  .spore-book > :not(.spore-sidenote-anchor, .spore-score) { max-width: 39rem; }
  .spore-page { margin-left: 0; margin-right: 0; padding: 0; }
  .spore-sidenote-anchor { align-items: start; column-gap: 2rem; display: grid; grid-template-columns: minmax(0, 39rem) minmax(12rem, 14rem); max-width: none; width: 57rem; }
  .spore-sidenote-anchor > :first-child { grid-column: 1; }
  .spore-sidenote-anchor > .spore-sidenote { border-top: 1px solid var(--edition-rule); color: var(--edition-muted); font-family: var(--edition-interface-font); font-size: .72rem; grid-column: 2; letter-spacing: .025em; line-height: 1.55; margin: 0; padding-top: .65rem; text-transform: uppercase; }
  .spore-sidenote-reference { color: var(--edition-accent); font-family: var(--edition-interface-font); font-size: .72em; font-weight: 700; margin-left: .15em; vertical-align: super; }
}

@media (max-width: 58rem) { figure, .spore-score { margin-left: 0; margin-right: 0; } }
@media (max-width: 40rem) { .spore-book { padding: 2rem 1rem 4rem; } .spore-header, .spore-document-navigation { padding: .9rem 1rem; } .spore-epigraph { margin-left: 0; } .spore-equation { margin: 2rem 0; } .spore-equation > figcaption { text-align: left; } .spore-chem-display, .spore-reaction { margin-left: 0; margin-right: 0; padding-left: 1rem; padding-right: 1rem; } .spore-score { padding: 1rem; } .spore-toc-part > ol { column-count: 1; } }
@media (prefers-reduced-motion: reduce) { :root[data-edition-appearance-ready="true"] .spore-appearance-picker, .spore-appearance-swatch { transition-duration: .01ms; } }
@media print { :root, :root[data-edition-appearance] { color-scheme: light; --edition-paper: #fff; --edition-ink: #292923; --edition-muted: #716d64; --edition-accent: #292923; --edition-rule: #292923; --edition-surface: #fff; --edition-code-surface: #fff; --edition-code-ink: #292923; --edition-code-muted: #716d64; --edition-code-rule: #292923; } .spore-skip-nav, .spore-header, .spore-document-navigation { display: none; } :root[data-edition-appearance-ready="true"] .spore-appearance-picker { display: none; } body { background: var(--edition-paper); } .spore-book { max-width: none; padding: 0; } figure, .spore-score { margin-left: 0; margin-right: 0; } a { color: inherit; text-decoration: none; } pre { background: var(--edition-code-surface); border-color: var(--edition-ink); color: var(--edition-ink); overflow: visible; white-space: pre-wrap; } pre code { color: var(--edition-ink); } .spore-equation { break-inside: avoid; overflow: visible; } .spore-math--display { min-width: 0; } .spore-chem-display, .spore-reaction { background: var(--edition-paper); border: 1px solid var(--edition-ink); margin-left: 0; margin-right: 0; overflow: visible; white-space: normal; } .spore-score { background: var(--edition-paper); border: 1px solid var(--edition-ink); overflow: visible; padding: 1rem; } .spore-score-notation { overflow: visible; } }
@media print { .spore-sidenote-anchor { display: block; width: auto; } .spore-sidenote-anchor > .spore-sidenote { margin: 1rem 0 2rem; text-transform: none; } }
@media print { .spore-toc-part > ol { column-count: 1; } .spore-toc-part li { break-inside: avoid; } .spore-toc-part .spore-current { font-weight: 700; } }
