*,*:before,*:after{box-sizing:border-box;margin:0}:root{--bg: #ffffff;--ink: #111111;--ink-soft: #444444;--ink-faint: #767676;--rule: #e4e4e4;--rule-strong: #111111;--code-bg: #f5f5f5;--selection: #111111;--selection-ink: #ffffff;--font-serif: "Charter", "Bitstream Charter", "Sitka Text", "Iowan Old Style", Cambria, Georgia, "Times New Roman", serif;--font-sans: ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-mono: ui-monospace, "SF Mono", SFMono-Regular, Menlo, Consolas, "Liberation Mono", monospace;--measure: 66ch;--page-pad: clamp(1.25rem, 4vw, 2.5rem)}[data-theme=sepia]{--bg: #f4ecd9;--ink: #2f2517;--ink-soft: #5b4a36;--ink-faint: #8a7a64;--rule: #e0d3b8;--rule-strong: #2f2517;--code-bg: #ebe0c8;--selection: #2f2517;--selection-ink: #f4ecd9}[data-theme=dark]{--bg: #0d0d0d;--ink: #e8e8e8;--ink-soft: #b4b4b4;--ink-faint: #8a8a8a;--rule: #2a2a2a;--rule-strong: #e8e8e8;--code-bg: #1a1a1a;--selection: #e8e8e8;--selection-ink: #0d0d0d}::selection{background:var(--selection);color:var(--selection-ink)}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;overflow-y:scroll}body{background:var(--bg);color:var(--ink);font-family:var(--font-serif);font-size:clamp(1.0625rem,1rem + .25vw,1.1875rem);line-height:1.7;font-kerning:normal;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;min-height:100dvh;display:flex;flex-direction:column}.shell{width:100%;max-width:calc(var(--measure) + 2 * var(--page-pad));margin-inline:auto;padding-inline:var(--page-pad)}main.shell{flex:1;padding-block:clamp(2rem,6vw,4rem)}.site-header{border-bottom:1px solid var(--rule)}.site-header .shell{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;padding-block:1.25rem}.brand{font-family:var(--font-sans);font-weight:700;font-size:1rem;letter-spacing:.08em;text-transform:uppercase;text-decoration:none;color:var(--ink)}.site-nav{display:flex;align-items:baseline;gap:1.25rem;font-family:var(--font-sans);font-size:.875rem}.site-nav a,.topic-menu summary{color:var(--ink-soft);text-decoration:none}.site-nav a:hover,.site-nav a[aria-current=page],.topic-menu summary:hover,.topic-menu summary[aria-current=page],.topic-menu[open] summary{color:var(--ink);text-decoration:underline;text-underline-offset:.35em}.topic-menu{position:relative}.topic-menu summary{display:inline-flex;align-items:baseline;gap:.35rem;list-style:none;cursor:pointer}.topic-menu summary::-webkit-details-marker{display:none}.topic-menu summary:after{content:"";width:.42em;height:.42em;border-right:1px solid currentColor;border-bottom:1px solid currentColor;transform:translateY(-.14em) rotate(45deg)}.topic-menu[open] summary:after{transform:translateY(.08em) rotate(225deg)}.topic-menu-panel{position:absolute;top:calc(100% + .75rem);left:0;z-index:20;min-width:13rem;padding:.35rem 0;background:var(--bg);border:1px solid var(--rule-strong);border-radius:6px;box-shadow:0 6px 28px #00000024}.topic-menu-panel a{display:block;padding:.45rem .75rem;color:var(--ink-soft);text-decoration:none;white-space:nowrap}.topic-menu-panel a:hover,.topic-menu-panel a:focus-visible{color:var(--ink);background:var(--code-bg);text-decoration:none;outline:none}.site-footer{border-top:1px solid var(--rule);font-family:var(--font-sans);font-size:.8125rem;color:var(--ink-faint)}.site-footer .shell{padding-block:1.5rem;display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap}.site-footer a{color:inherit}.theme-toggle{appearance:none;background:none;border:1px solid var(--rule);border-radius:999px;color:var(--ink-soft);font-family:var(--font-sans);font-size:.75rem;letter-spacing:.05em;padding:.25rem .75rem;cursor:pointer;min-width:4.25rem;text-align:center}.theme-toggle:hover{border-color:var(--rule-strong);color:var(--ink)}.prose>*+*{margin-top:1.25em}.prose h1,.prose h2,.prose h3{font-family:var(--font-serif);font-weight:700;line-height:1.25;letter-spacing:-.01em;text-wrap:balance}.prose h1{font-size:clamp(1.875rem,1.5rem + 1.8vw,2.625rem)}.prose h2{font-size:1.4375rem;margin-top:2.25em}.prose h3{font-size:1.1875rem;margin-top:1.75em}.prose p{hanging-punctuation:first}.prose a{color:var(--ink);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.2em;text-decoration-color:var(--ink-faint)}.prose a:hover{text-decoration-thickness:2px;text-decoration-color:var(--ink)}.prose blockquote{border-left:2px solid var(--rule-strong);padding-left:1.25rem;font-style:italic;color:var(--ink-soft)}.prose ul,.prose ol{padding-left:1.5rem}.prose li+li{margin-top:.5em}.prose hr{border:none;text-align:center;margin-block:2.5rem}.prose hr:after{content:"···";letter-spacing:.75em;color:var(--ink-faint)}.prose code{font-family:var(--font-mono);font-size:.875em;background:var(--code-bg);padding:.125em .375em;border-radius:3px}.prose pre{background:var(--code-bg);border:1px solid var(--rule);border-radius:6px;padding:1rem 1.25rem;overflow-x:auto;line-height:1.55}.prose pre code{background:none;padding:0;font-size:.8125em}.prose img{display:block;max-width:100%;height:auto;filter:grayscale(1)}.prose figcaption{font-family:var(--font-sans);font-size:.8125rem;color:var(--ink-faint);text-align:center;margin-top:.5rem}.article-meta{font-family:var(--font-sans);font-size:.8125rem;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-faint);display:flex;gap:.75rem;align-items:baseline}.article-meta:before{content:""}.article-header{margin-bottom:2.5rem}.article-header .article-meta{margin-top:1rem}.article-header .lede{margin-top:1rem;font-size:1.1875em;color:var(--ink-soft);font-style:italic;text-wrap:pretty}.page-intro{margin-bottom:3rem}.page-intro h1{font-size:clamp(1.875rem,1.5rem + 1.8vw,2.625rem);line-height:1.2;letter-spacing:-.01em}.page-intro p{margin-top:.75rem;color:var(--ink-soft)}.article-list{list-style:none;padding:0}.article-list li{border-top:1px solid var(--rule);padding-block:1.75rem}.article-list li:last-child{border-bottom:1px solid var(--rule)}.article-list h2{font-size:1.375rem;line-height:1.3;letter-spacing:-.01em}.article-list h2 a{color:var(--ink);text-decoration:none}.article-list h2 a:hover{text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:.15em}.article-list .excerpt{margin-top:.5rem;color:var(--ink-soft)}.article-list .article-meta{margin-top:.625rem}.topic-empty{border-block:1px solid var(--rule);padding-block:1.75rem;color:var(--ink-faint);font-style:italic}.prose .term{border-bottom:1px dotted var(--ink-faint);text-decoration:none;cursor:help;-webkit-tap-highlight-color:transparent}.prose .term:hover,.prose .term:focus-visible{border-bottom-color:var(--ink);outline:none}@media(pointer:coarse){.prose .term{-webkit-user-select:none;user-select:none}}.prose .term em{font-style:italic}.glossary-popover{position:fixed;z-index:20;max-width:19rem;background:var(--bg);color:var(--ink);border:1px solid var(--rule-strong);border-radius:6px;padding:.75rem .875rem;box-shadow:0 6px 28px #00000029;font-family:var(--font-sans);font-size:.8125rem;line-height:1.5}.glossary-popover .gloss-word{font-weight:700;font-size:.875rem;letter-spacing:.01em}.glossary-popover .gloss-meaning{margin-top:.3rem;color:var(--ink-soft)}.glossary-popover .gloss-example{margin-top:.6rem;padding-top:.6rem;border-top:1px solid var(--rule);font-family:var(--font-serif);font-style:italic;color:var(--ink-faint)}.glossary-popover .gloss-more{appearance:none;background:none;border:none;padding:0;margin-top:.7rem;font-family:var(--font-sans);font-size:.8125rem;font-weight:600;letter-spacing:.01em;color:var(--ink);cursor:pointer;text-decoration:underline;text-underline-offset:.2em;text-decoration-color:var(--ink-faint)}.glossary-popover .gloss-more:hover,.glossary-popover .gloss-more:focus-visible{text-decoration-color:var(--ink);outline:none}.drawer-backdrop{position:fixed;inset:0;z-index:30;display:flex;justify-content:flex-end;background:#0000006b;animation:drawer-fade .24s ease both}[data-theme=dark] .drawer-backdrop{background:#0000009e}.drawer{width:min(26rem,92vw);height:100%;overflow-y:auto;background:var(--bg);color:var(--ink);border-left:1px solid var(--rule-strong);box-shadow:-6px 0 44px #00000038;padding:clamp(1.5rem,4vw,2.5rem);animation:drawer-in .26s cubic-bezier(.22,1,.36,1) both;transition:width .28s cubic-bezier(.22,1,.36,1)}.drawer.is-expanded{width:100%;border-left:none}.drawer.is-expanded .drawer-head,.drawer.is-expanded .drawer-lede,.drawer.is-expanded .drawer-body{max-width:42rem;margin-inline:auto}@media(max-width:640px){.drawer{width:100%;border-left:none}}.drawer-head{display:flex;align-items:center;gap:.75rem;padding-bottom:1rem;margin-bottom:1.5rem;border-bottom:1px solid var(--rule)}.drawer-expand{appearance:none;background:none;border:none;display:inline-flex;color:var(--ink-faint);cursor:pointer;padding:.35rem;border-radius:4px}.drawer-expand:hover{color:var(--ink)}.drawer-expand:focus-visible{outline:2px solid var(--rule-strong);outline-offset:2px}@media(max-width:640px){.drawer-expand{display:none}}.drawer-head h2{flex:1;font-family:var(--font-serif);font-size:clamp(1.5rem,1.3rem + 1vw,1.875rem);font-weight:700;letter-spacing:-.01em}.drawer-close{appearance:none;background:none;border:none;flex:none;font-size:1.5rem;line-height:1;color:var(--ink-faint);cursor:pointer;padding:.1rem .35rem;border-radius:4px}.drawer-close:hover{color:var(--ink)}.drawer-close:focus-visible{outline:2px solid var(--rule-strong);outline-offset:2px}.drawer-lede{font-family:var(--font-sans);font-size:.9375rem;line-height:1.55;color:var(--ink-soft);margin-bottom:1.5rem}.drawer-body.prose{font-size:1.0625rem}@keyframes drawer-in{0%{transform:translate(100%)}to{transform:translate(0)}}@keyframes drawer-fade{0%{opacity:0}to{opacity:1}}@media(prefers-reduced-motion:reduce){.drawer-backdrop,.drawer{animation:none}.drawer{transition:none}}.reading-progress{position:fixed;top:0;left:0;height:2px;width:100%;transform-origin:0 50%;background:var(--ink);z-index:10;pointer-events:none}.article-footer{margin-top:4rem;padding-top:1.5rem;border-top:1px solid var(--rule);font-family:var(--font-sans);font-size:.875rem}.article-footer a{color:var(--ink-soft);text-decoration:none}.article-footer a:hover{color:var(--ink);text-decoration:underline;text-underline-offset:.35em}.succession-page{--node-gap: clamp(1rem, 3vw, 1.5rem)}.succession-map{margin-top:2.5rem;font-family:var(--font-sans)}.succession-root{display:grid;justify-items:center;gap:.5rem}.succession-kicker{font-size:.75rem;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-faint)}.succession-node{width:100%;border:1px solid var(--rule-strong);border-radius:6px;padding:.75rem .875rem;background:var(--bg);color:var(--ink);line-height:1.35}.succession-root .succession-node{width:min(100%,24rem);text-align:center}.succession-node strong{display:block;font-size:.95rem}.succession-node span{display:block;margin-top:.2rem;font-size:.76rem;color:var(--ink-soft)}.succession-node-root{border-width:2px;padding-block:1rem}.succession-node-strong{background:var(--ink);color:var(--bg)}.succession-node-strong span{color:var(--selection-ink);opacity:.78}.succession-connector{width:1px;height:2rem;margin-inline:auto;background:var(--rule-strong)}.succession-split{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--node-gap);position:relative}.succession-split:before{content:"";position:absolute;top:0;left:25%;right:25%;height:1px;background:var(--rule-strong)}.succession-branch{display:grid;align-content:start;gap:1rem;padding-top:1rem;position:relative}.succession-branch:before{content:"";position:absolute;top:0;left:50%;width:1px;height:1rem;background:var(--rule-strong)}.succession-step,.succession-ladder{display:grid;gap:.625rem}.succession-node-list,.succession-note-list{margin:0;padding:.75rem .875rem .75rem 1.85rem;border:1px solid var(--rule);border-radius:6px;color:var(--ink-soft);font-size:.82rem;line-height:1.5}.succession-node-list li+li,.succession-note-list li+li{margin-top:.45rem}.succession-footnotes{margin-top:3rem;padding-top:1.5rem;border-top:1px solid var(--rule)}@media(max-width:760px){.succession-split{grid-template-columns:1fr}.succession-split:before{display:none}.succession-branch:before{left:1rem}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
