:root{--paper:#faf9f6;--ink:#262622;--muted:#62635c;--link:#315868;--rule:#dddcd5;--wash:#f0efe9;--measure:58rem;--contents-width:14rem;--contents-gap:3.5rem;--body-size:1.25rem;--leading:1.65;--ui-size:.9375rem;--meta-size:.875rem;--serif:"Source Serif 4", Georgia, "Times New Roman", serif;--sans:"Source Sans 3", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--mono:"SFMono-Regular", Consolas, "Liberation Mono", monospace}@font-face{font-family:"source serif 4";src:url(/fonts/source-serif/SourceSerif4Variable-Roman.woff2)format("woff2");font-style:normal;font-weight:200 900;font-display:swap}@font-face{font-family:"source serif 4";src:url(/fonts/source-serif/SourceSerif4Variable-Italic.woff2)format("woff2");font-style:italic;font-weight:200 900;font-display:swap}@font-face{font-family:"source sans 3";src:url(/fonts/source-sans/SourceSans3Variable-Upright.woff2)format("woff2");font-style:normal;font-weight:200 900;font-display:swap}*{box-sizing:border-box}html{background:var(--paper);color:var(--ink)}body{margin:0;font:var(--body-size)/var(--leading)var(--serif);font-synthesis:none;font-optical-sizing:auto}::selection{background:#dce7e8}a{color:var(--link);text-decoration-thickness:1px;text-underline-offset:.18em}a:hover{text-decoration-thickness:2px}:focus-visible{outline:2px solid var(--link);outline-offset:5px}[id]{scroll-margin-top:2rem}main:focus{outline:none}main,.site-header,.site-footer{width:min(var(--measure),calc(100% - 3rem));margin-inline:auto}main{min-height:65vh}.site-header{display:flex;align-items:baseline;justify-content:space-between;gap:1.5rem;padding-block:1.75rem 1.1rem;border-bottom:1px solid var(--rule);font:var(--ui-size)/1.5 var(--sans)}.site-name{color:var(--ink);font:500 1.375rem/1.3 var(--serif);letter-spacing:-.02em;text-decoration:none;white-space:nowrap}.site-header nav,.site-footer nav{display:flex;flex-wrap:wrap;column-gap:1.5rem;row-gap:.25rem}.site-header nav a,.site-footer nav a{display:inline-block;padding-block:.35rem}.site-header nav a,.site-footer a{color:var(--muted);text-decoration:none}.site-header a:hover,.site-footer a:hover,.site-header [aria-current]{color:var(--link);text-decoration:underline}.skip-link{position:absolute;top:-5rem;left:1rem;padding:.5rem 1rem;background:var(--paper);z-index:2}.skip-link:focus{top:1rem}.page-header{margin-block:4rem 2.5rem}.eyebrow,.section-label{font:600 .75rem/1.5 var(--sans);letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.eyebrow{margin:0 0 1rem}.eyebrow a{text-decoration:none}h1,h2,h3,h4{line-height:1.22;text-wrap:balance}h1{font-weight:400;font-size:clamp(2.15rem,4.6vw,3.1rem);letter-spacing:-.025em;margin:0 0 1rem}.dek{font-size:1.28rem;line-height:1.5;color:var(--muted);margin:0;max-width:40rem;text-wrap:balance}.home-header .dek{max-width:46rem}.article-meta,.entry-meta{font:var(--meta-size)/1.6 var(--sans);color:var(--muted)}.article-meta{margin:1.5rem 0 0}.contents{border-block:1px solid var(--rule);margin-block:0 2.5rem;padding-block:.6rem;font:var(--ui-size)/1.5 var(--sans)}.contents summary{cursor:pointer;color:var(--ink);font-weight:600;padding:.35rem 0}.contents nav{margin-block:.85rem .5rem}.contents ul{list-style:none;padding-left:1rem}.contents nav>ul{padding:0}.contents li{margin:.25rem 0}.contents a{display:block;padding-block:.3rem;text-decoration:none}.contents a:hover{text-decoration:underline}.contents-sidebar{display:none}.article-body{min-width:0}.prose{overflow-wrap:break-word}.prose>:first-child{margin-top:0}.prose p{margin-block:0 1.1em;text-wrap:pretty}.prose h2{font-size:1.7rem;font-weight:700;margin:2.7rem 0 1.1rem}.prose h3{font-size:1.35rem;font-weight:700;margin:2.1rem 0 .9rem}.prose h4{font-size:1.15rem;margin:1.6rem 0 .7rem}.heading-link{font:.75em var(--sans);text-decoration:none;margin-left:.5em;opacity:0;color:var(--muted)}:is(h2,h3,h4):hover .heading-link,.heading-link:focus{opacity:1}.prose ul,.prose ol{padding-left:1.4em;margin-block:.6em 1.2em}.prose li{margin-block:.4em;padding-left:.15em}.prose li>p{margin-block:.5em}.prose li>ul,.prose li>ol{margin-block:.3em .6em}.prose blockquote{border-left:2px solid var(--rule);margin:1.8rem 0;padding:.15rem 0 .15rem 1.4rem;color:var(--muted)}.prose blockquote>:last-child{margin-bottom:0}.prose hr{border:0;border-top:1px solid var(--rule);width:30%;margin:3rem auto}.prose img{display:block;max-width:100%;height:auto;margin:1.8rem auto}figure{margin:2rem 0}figcaption{font-size:.9em;color:var(--muted);margin-top:.65rem}.table-scroll{overflow-x:auto;margin-block:1.8rem 2rem}table{width:100%;border-collapse:collapse;font-size:.87em;line-height:1.45}th,td{padding:.75rem .7rem;vertical-align:top;text-align:left;min-width:7.5rem}th{border-top:1.5px solid var(--ink);border-bottom:1px solid var(--ink);font-weight:700}td{border-bottom:1px solid var(--rule)}tbody tr:last-child td{border-bottom:1.5px solid var(--ink)}.align-left{text-align:left}.align-center{text-align:center}.align-right{text-align:right}code,pre{font-family:var(--mono);font-size:.76em}code{background:var(--wash);padding:.1em .3em;border-radius:2px;overflow-wrap:anywhere}pre{line-height:1.65;background:var(--wash);padding:1.2rem;overflow-x:auto;tab-size:4;margin-block:1.4rem}pre code{padding:0;background:0 0;border-radius:0;font-size:1em;overflow-wrap:normal}.highlight{margin:1.4rem 0}.highlight pre{margin:0}.equation{overflow-x:auto;overflow-y:hidden;margin:1.5rem 0;padding-block:.4rem}.prose .katex{font-size:1.08em}.equation .katex-display{margin:.25rem 0;width:max-content;min-width:100%}.equation .katex-display>.katex{text-align:center}.footnotes{border-top:1px solid var(--rule);margin-top:3rem;padding-top:1rem;font-size:.85em}.footnotes hr{display:none}.footnote-ref{font-family:var(--sans);font-size:.75em}.footnote-backref{text-decoration:none}.article-footer{border-top:1px solid var(--rule);margin-top:3rem;padding-top:1.25rem;font:var(--meta-size)/1.6 var(--sans)}.article-tags{display:flex;align-items:baseline;flex-wrap:wrap;column-gap:1rem;row-gap:.15rem}.article-tags a{padding-block:.3rem;text-decoration:none}.article-tags a:hover{text-decoration:underline}.article-tags>span{color:var(--muted)}.article-end-nav{display:flex;justify-content:space-between;flex-wrap:wrap;gap:1rem;margin-top:1.5rem;font-size:var(--ui-size)}.article-end-nav a{padding-block:.4rem;text-decoration:none}.article-end-nav a:hover{text-decoration:underline}.site-footer{margin-top:4rem;padding:1.25rem 0 2rem;border-top:1px solid var(--rule);display:flex;align-items:baseline;justify-content:space-between;flex-wrap:wrap;column-gap:2rem;row-gap:.5rem;font:var(--meta-size)/1.6 var(--sans);color:var(--muted)}.subject-nav{display:flex;flex-wrap:wrap;gap:.65rem 1.5rem;padding-bottom:2rem;margin-bottom:2rem;border-bottom:1px solid var(--rule);font:var(--ui-size)/1.6 var(--sans)}.subject-nav a{text-decoration:none}.count{font-size:var(--meta-size);margin-left:.3rem;color:var(--muted)}.post-list{padding:0;margin:1.5rem 0 0;list-style:none}.post-list>li{padding:0 0 1.8rem;margin-bottom:1.8rem;border-bottom:1px solid var(--rule)}.post-list>li:last-child{border-bottom:0;margin-bottom:0}.entry-meta{display:flex;flex-wrap:wrap;gap:.5rem 1.1rem;margin-bottom:.55rem}.post-list h2,.post-list h3{font-size:1.55rem;line-height:1.3;font-weight:400;margin:0 0 .45rem;text-wrap:pretty}.post-list h2 a,.post-list h3 a{color:var(--ink);text-decoration:none}.post-list h2 a:hover,.post-list h3 a:hover{color:var(--link);text-decoration:underline}.post-list p{font-size:1.07rem;line-height:1.5;color:var(--muted);margin:0;text-wrap:pretty}.archive-year{margin-bottom:2.5rem}.topic-list{padding:0;list-style:none}.topic-list li{border-bottom:1px solid var(--rule);padding:1rem 0;display:flex;justify-content:space-between;gap:1rem}.topic-list span{font:var(--meta-size)/1.6 var(--sans);color:var(--muted);align-self:center}.search-form{font:var(--ui-size)/1.6 var(--sans)}.search-form label{display:block;margin-bottom:.6rem}.search-controls{display:flex;gap:.6rem}input,button{font:inherit;border:1px solid var(--rule);border-radius:3px}input[type=search]{width:100%;min-width:0;background:var(--paper);color:var(--ink);padding:.7rem;font-size:1rem}button{color:var(--paper);background:var(--link);border-color:var(--link);padding:.7rem 1rem;cursor:pointer}.search-status{font:var(--meta-size)/1.6 var(--sans);margin-top:1rem;color:var(--muted)}.chroma .c,.chroma .c1,.chroma .cm,.chroma .cs{color:#697269;font-style:italic}.chroma .k,.chroma .kd,.chroma .kn,.chroma .kp,.chroma .kr,.chroma .kt{color:#70405c}.chroma .s,.chroma .s1,.chroma .s2,.chroma .sb,.chroma .sc,.chroma .sd{color:#36634f}.chroma .nf,.chroma .nc,.chroma .nb{color:#315868}.chroma .m,.chroma .mi,.chroma .mf,.chroma .mh{color:#855331}@media screen and (min-width:1280px){.with-contents main,.with-contents .site-header,.with-contents .site-footer{width:min(calc(var(--measure) + var(--contents-width) + var(--contents-gap)),calc(100% - 4rem))}.with-contents .article-layout{display:grid;grid-template-columns:var(--contents-width)minmax(0,1fr);gap:var(--contents-gap);align-items:start}.contents-sidebar{display:block;position:sticky;top:2rem;max-height:calc(100dvh - 4rem);overflow-y:auto;margin:4rem 0 0;padding:0 1rem .5rem 0;border:0}.contents-label{margin:0 0 1rem;color:var(--ink);font-size:var(--meta-size);font-weight:600}.contents-sidebar nav{margin:0}.contents-sidebar nav>ul{margin:0;border-left:1px solid var(--rule)}.contents-sidebar li{margin:0 0 .5rem}.contents-sidebar li:last-child{margin-bottom:0}.contents-sidebar ul ul{margin-top:.25rem;padding-left:.75rem;font-size:var(--meta-size)}.contents-sidebar a{margin-left:-1px;padding:.3rem 0 .3rem .875rem;border-left:1px solid transparent;color:var(--muted)}.contents-sidebar a:hover,.contents-sidebar a:focus-visible{border-left-color:var(--link);color:var(--link)}.contents-sidebar a:focus-visible{outline-offset:-2px}.contents-inline{display:none}}@media(max-width:600px){:root{--body-size:1.125rem;--leading:1.65}main,.site-header,.site-footer{width:calc(100% - 2.25rem)}.site-header{flex-direction:column;gap:.6rem;padding-block:1.2rem .8rem}.site-header nav{column-gap:1.5rem}.site-header nav a,.site-footer nav a{padding-block:.5rem}.page-header{margin-top:2.5rem;margin-bottom:2rem}.dek{font-size:1.15rem}.prose h2{font-size:1.5rem;margin-top:2.3rem}.prose h3{font-size:1.25rem}.contents{margin-bottom:2rem}.heading-link{opacity:1;font-size:.65em}.table-scroll{font-size:1rem}pre{padding:1rem}.post-list h2,.post-list h3{font-size:1.4rem}.site-footer{margin-top:3rem}}@media print{@page{margin:18mm}:root{--paper:#fff;--ink:#000;--muted:#333;--body-size:11pt;--leading:1.45}body{background:#fff}main{width:100%;max-width:none}.site-header,.site-footer,.skip-link,.contents,.article-footer,.heading-link{display:none}.page-header{margin-top:0}h1{font-size:24pt}.dek{font-size:12pt}.prose h2{font-size:16pt}.prose h3{font-size:13pt}h1,h2,h3,h4{break-after:avoid}p{orphans:3;widows:3}a{color:inherit;text-decoration:none}.table-scroll,.equation{overflow:visible}table{font-size:9pt}th,td{min-width:0;padding:.4rem}tr,figure,.equation{break-inside:avoid}pre{white-space:pre-wrap;overflow-wrap:anywhere;overflow:visible;font-size:8pt}}