@font-face{font-family:Archivo;font-style:normal;font-weight:200 600;font-stretch:75% 125%;font-display:swap;src:url(/fonts/archivo-latin.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Archivo;font-style:normal;font-weight:200 600;font-stretch:75% 125%;font-display:swap;src:url(/fonts/archivo-latin-ext.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}:root{--paper:#f7f6f3;--ink:#16161a;--ink-64:#16161aa3;--ink-40:#16161a66;--ink-12:#16161a1f;--ink-06:#16161a0e;--accent:#2b3ea8;--sans:"Archivo", -apple-system, BlinkMacSystemFont, "Helvetica Neue", Arial, sans-serif;--mono:ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace;color-scheme:light}*{box-sizing:border-box}html{background:var(--paper)}body{background:var(--paper);color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased;margin:0;font-size:17px;font-weight:350;line-height:1.62;overflow-x:hidden}a{color:var(--accent);text-decoration:none}.prose a{text-underline-offset:3px;text-decoration:underline 1px}a:hover{opacity:.68}.skip{background:var(--ink);color:var(--paper);z-index:10;padding:12px 18px;position:absolute;left:-9999px}.skip:focus{top:16px;left:16px}.masthead{border-bottom:1px solid var(--ink-12);letter-spacing:.09em;text-transform:uppercase;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:20px;padding:26px clamp(20px,5vw,56px);font-size:13px;font-weight:500;display:flex}.masthead a{color:var(--ink-64)}.masthead a:hover{color:var(--accent);opacity:1}.masthead .stamp{color:var(--ink-40);letter-spacing:.04em;text-transform:none;font-weight:400}.masthead nav{gap:22px;display:flex}header.title{max-width:1180px;margin:0 auto;padding:clamp(44px,8vh,96px) clamp(20px,5vw,56px) 0}body.index header.title{text-align:center}body.index header.title h1{margin-inline:auto}.kicker{letter-spacing:.13em;text-transform:uppercase;color:var(--ink-40);margin:0 0 14px;font-size:12px;font-weight:500}h1{letter-spacing:-.02em;max-width:18ch;margin:0;font-size:clamp(32px,4.6vw,52px);font-weight:300;line-height:1.06}.wrap{grid-template-columns:minmax(0,1fr);gap:clamp(30px,5vw,72px);max-width:1180px;margin:0 auto;padding:clamp(34px,5vh,60px) clamp(20px,5vw,56px) 0;display:grid}body.index .wrap{grid-template-columns:minmax(0,68ch);justify-content:center}.column{min-width:0}@media (width>=1000px){.wrap{grid-template-columns:216px minmax(0,68ch);align-items:start}.toc{max-height:calc(100vh - 68px);position:sticky;top:34px;overflow-y:auto}}@media (width<=999px){.toc{border-top:1px solid var(--ink-12);order:2;padding-top:26px}.column{order:1}}.toc{font-size:13.5px;line-height:1.45}.toc-head{letter-spacing:.13em;text-transform:uppercase;color:var(--ink-40);margin:0 0 14px;font-size:11px;font-weight:500}.toc-head a{color:inherit}.toc-head a:hover{color:var(--accent);opacity:1}.toc ul{margin:0 0 18px;padding:0;list-style:none}.toc li{margin-bottom:7px}.toc a{color:var(--ink-64)}.toc a:hover{color:var(--accent);opacity:1}.toc li.here a{color:var(--accent);font-weight:500}.toc-part{color:var(--ink);letter-spacing:.06em;text-transform:uppercase;margin:0 0 9px;font-size:12px;font-weight:500}.prose{max-width:68ch}.prose>p{margin:0 0 22px}body.index .prose>p:first-child{color:var(--ink-64);margin-bottom:32px;font-size:19px}body.index .prose>p:first-child em{font-style:normal}.prose ul{margin:0 0 22px;padding-left:22px}.prose li{margin-bottom:8px}strong{font-weight:600}.prose>p>strong:first-child{margin-top:6px;display:inline-block}hr{border:0;border-top:1px solid var(--ink-12);margin:42px 0}.prose h2{border-top:1px solid var(--ink-12);letter-spacing:.13em;text-transform:uppercase;color:var(--ink-40);margin:46px 0 14px;padding-top:26px;font-size:11px;font-weight:500}code{font-family:var(--mono);background:var(--ink-06);overflow-wrap:break-word;border-radius:3px;padding:.12em .36em;font-size:.855em}.scroll{-webkit-overflow-scrolling:touch;margin:0 0 26px;overflow-x:auto}.scroll pre{background:var(--ink-06);border-radius:4px;margin:0;padding:18px 20px;font-size:13.5px;line-height:1.55}.scroll pre code{font-size:inherit;background:0 0;padding:0}table{border-collapse:collapse;width:100%;font-size:14.5px;line-height:1.5}th,td{text-align:left;vertical-align:top;border-bottom:1px solid var(--ink-12);padding:9px 16px 9px 0}th{letter-spacing:.11em;text-transform:uppercase;color:var(--ink-40);border-bottom-color:var(--ink-40);white-space:nowrap;font-size:11px;font-weight:500}td:first-child{white-space:nowrap;padding-right:26px}td code{background:0 0;padding:0}.index-list{margin-top:8px}h2.part{letter-spacing:.13em;text-transform:uppercase;color:var(--ink-40);border-bottom:1px solid var(--ink-40);margin:46px 0 4px;padding-bottom:12px;font-size:13px;font-weight:500}.entry{border-bottom:1px solid var(--ink-12);color:var(--ink);padding:16px 0;text-decoration:none;display:block}.entry:hover{opacity:1}.entry:hover .entry-title{color:var(--accent)}.entry-title{letter-spacing:-.005em;font-size:18px;font-weight:500;display:block}.entry-blurb{color:var(--ink-64);margin-top:2px;font-size:15px;line-height:1.5;display:block}.pager{border-top:1px solid var(--ink-12);flex-wrap:wrap;justify-content:space-between;gap:20px;max-width:68ch;margin-top:56px;padding-top:26px;display:flex}.pager a{max-width:46%;color:var(--ink);font-size:16px;font-weight:500;display:block}.pager a:hover{color:var(--accent);opacity:1}.pager .next{text-align:right;margin-left:auto}.pager span{letter-spacing:.13em;text-transform:uppercase;color:var(--ink-40);margin-bottom:3px;font-size:11px;font-weight:500;display:block}footer.end{border-top:1px solid var(--ink-12);max-width:1180px;color:var(--ink-64);flex-wrap:wrap;justify-content:space-between;gap:24px;margin:8vh auto 0;padding:36px clamp(20px,5vw,56px) 12vh;font-size:14px;display:flex}.scroll pre.astro-code{background:var(--ink-06)!important}.prose .astro-code span{background:0 0!important}.prose .katex-display{padding:4px 0;overflow:auto hidden}
