:root{--paper:#f2ece0;--panel:#ece4d4;--panel-line:#d8cdb8;--ink:#2b2a26;--ink-soft:#6b6557;--ink-faint:#9a917f;--rust:#b8543a;--ochre:#c79a3e;--sage:#5f7d6b;--tag-bg:#e6ddc9;--serif:"Newsreader",Georgia,"Times New Roman",serif;--mono:"JetBrains Mono",ui-monospace,"SF Mono",Menlo,monospace;--measure:44rem}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;background:var(--paper);background-image:radial-gradient(circle at 20% 30%,rgba(0,0,0,.012) 0 1px,transparent 1px),radial-gradient(circle at 70% 60%,rgba(0,0,0,.012) 0 1px,transparent 1px);background-size:7px 7px,11px 11px;color:var(--ink);font-family:var(--serif);font-size:19px;line-height:1.62;font-optical-sizing:auto;-webkit-font-smoothing:antialiased}.wrap{max-width:var(--measure);margin:0 auto;padding:0 1.6rem 6rem}header.masthead{padding:3.4rem 0 1.4rem}.kicker{font-family:var(--mono);font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-faint);margin:0 0 .7rem}.kicker a{color:inherit;text-decoration:none}.kicker a:hover{color:var(--rust)}.site-title{font-family:var(--serif);font-weight:600;font-size:2.7rem;line-height:1.05;letter-spacing:-.015em;margin:0}.site-title a{color:inherit;text-decoration:none}.bio{margin:.9rem 0 0;color:var(--ink-soft);font-size:1.02rem;max-width:34rem}nav.topnav{margin-top:1.5rem;padding:.55rem 0;border-top:1px solid var(--panel-line);border-bottom:1px solid var(--panel-line);display:flex;gap:1.4rem;flex-wrap:wrap;font-family:var(--mono);font-size:.74rem;letter-spacing:.12em;text-transform:uppercase}nav.topnav a{color:var(--ink-soft);text-decoration:none;position:relative;transition:color .15s ease}nav.topnav a::after{content:"";position:absolute;left:0;right:0;bottom:-3px;height:1.5px;background:var(--rust);transform:scaleX(0);transform-origin:left;transition:transform .2s ease}nav.topnav a:hover{color:var(--rust)}nav.topnav a:hover::after{transform:scaleX(1)}.section-head{display:flex;align-items:baseline;justify-content:space-between;margin:3.2rem 0 1.2rem}.section-head .label{font-family:var(--mono);font-size:.74rem;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-soft)}.section-head .count{font-family:var(--mono);font-size:.74rem;color:var(--ink-faint);letter-spacing:.1em}ul.posts{list-style:none;margin:0;padding:0}ul.posts li{padding:1.05rem 0;border-bottom:1px solid var(--panel-line);display:flex;align-items:baseline;gap:1.1rem}ul.posts li:first-child{border-top:1px solid var(--panel-line)}ul.posts time{flex:0 0 6.2rem;font-family:var(--mono);font-size:.78rem;color:var(--ink-faint);letter-spacing:.04em;padding-top:.18rem}ul.posts a.title{color:var(--ink);text-decoration:none;font-size:1.18rem;font-weight:500;line-height:1.3;transition:color .15s ease}ul.posts a.title:hover{color:var(--rust)}ul.posts .excerpt{display:block;font-size:.96rem;color:var(--ink-soft);margin-top:.2rem}.chip{display:inline-block;font-family:var(--mono);font-size:.66rem;font-weight:500;color:var(--paper);background:var(--rust);padding:.08rem .42rem;border-radius:2px;vertical-align:.12em;margin-right:.5rem;letter-spacing:.05em}.tags{margin-top:.55rem;display:flex;gap:.45rem;flex-wrap:wrap}.tag{font-family:var(--mono);font-size:.66rem;letter-spacing:.06em;color:var(--ink-soft);background:var(--tag-bg);border:1px solid var(--panel-line);border-radius:999px;padding:.12rem .6rem;text-decoration:none}.tag:hover{color:var(--rust);background:#f6e7e1}article header.post-head{padding:2.8rem 0 1.6rem}.post-head .meta{font-family:var(--mono);font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-faint);display:flex;gap:.9rem;align-items:center;margin-bottom:1rem}.post-head .meta .dot{color:var(--panel-line)}.post-head h1{font-family:var(--serif);font-weight:600;font-size:2.45rem;line-height:1.08;letter-spacing:-.015em;margin:0}.post-head h1 code,ul.posts a.title code,.post-foot a code{font-family:var(--mono);font-size:.72em;font-weight:500;letter-spacing:0;background:var(--panel);border:1px solid var(--panel-line);border-radius:3px;padding:.03em .24em}.post-head .tags{margin-top:1.1rem}hr.rule{border:0;border-top:1px solid var(--panel-line);margin:0}.prose{padding-top:1.8rem}.prose p{margin:0 0 1.3rem}.prose>p.lede::first-letter,.prose>p:first-of-type::first-letter{font-size:3.1rem;line-height:.8;font-weight:600;float:left;padding:.18rem .6rem .1rem 0;color:var(--rust)}.prose h2{font-family:var(--serif);font-weight:600;font-size:1.5rem;letter-spacing:-.01em;margin:2.6rem 0 .9rem;line-height:1.2}.prose h3{font-family:var(--mono);font-size:.82rem;font-weight:500;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-soft);margin:1.8rem 0 .7rem}.prose a{color:var(--rust);text-decoration:none;border-bottom:1px solid #e3c4ba;overflow-wrap:anywhere}.prose a:hover{background:#f6e7e1}.prose strong{font-weight:600}.prose em{font-style:italic}.prose ul,.prose ol{margin:0 0 1.3rem;padding-left:1.4rem}.prose li{margin:.35rem 0}.prose li::marker{color:var(--rust)}.about-links{display:flex;flex-wrap:wrap;gap:.45rem;margin:.2rem 0 1.4rem}.about-links a,.about-links span{display:inline-block;font-family:var(--mono);font-size:.66rem;letter-spacing:.06em;color:var(--ink-soft);background:var(--tag-bg);border:1px solid var(--panel-line);border-radius:999px;padding:.12rem .6rem;text-decoration:none}.about-links a:hover{color:var(--rust);background:#f6e7e1}.prose code{font-family:var(--mono);font-size:.82em;background:var(--panel);border:1px solid var(--panel-line);border-radius:3px;padding:.08em .4em}.prose pre{font-family:var(--mono);font-size:.8rem;line-height:1.6;background:var(--panel);border:1px solid var(--panel-line);border-left:3px solid var(--rust);border-radius:4px;padding:1rem 1.1rem;overflow-x:auto;margin:0 0 1.4rem}.prose pre code{background:0 0;border:0;padding:0}.prose .highlight{margin:0 0 1.4rem}.prose .highlight pre{margin:0}.prose mjx-container{font-size:1.02em;color:var(--ink)}.prose p:has(>mjx-container[display=true]){margin:.8rem 0 1.05rem}.prose mjx-container[display=true]{display:block;width:100%;margin:0!important;padding:0;text-align:center;overflow:visible}.formula-card{margin:1.15rem 0 1.55rem;padding:.85rem 1rem .9rem;background:#eee6d5;border-left:4px solid var(--rust)}.formula-card p{margin:0;text-align:center}.formula-card mjx-container[display=true]{margin:0!important}.prose blockquote{margin:0 0 1.4rem;padding:.2rem 0 .2rem 1.2rem;border-left:3px solid var(--sage);color:var(--ink-soft);font-style:italic}.prose blockquote.twitter-tweet{color:var(--ink);font-style:normal}.prose blockquote.twitter-tweet p{color:var(--ink)}.callout{background:var(--panel);border:1px solid var(--panel-line);border-radius:5px;padding:1.1rem 1.2rem;margin:0 0 1.5rem}.callout .ctitle{font-family:var(--mono);font-size:.68rem;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-faint);margin:0 0 .5rem}.callout p{margin:0;font-size:.96rem}.reference-panel{background:var(--panel);border:1px solid var(--panel-line);border-radius:5px;margin:0 0 1.35rem;padding:.72rem .9rem}.reference-panel summary{cursor:pointer;font-family:var(--mono);font-size:.72rem;font-weight:500;letter-spacing:.12em;text-transform:uppercase;color:var(--ink)}.reference-panel p{margin:.75rem 0 0;color:var(--ink-soft);font-size:.96rem}.reference-panel .cite-block{margin:.85rem 0 .1rem;background:var(--paper)}.reference-panel .cite-block code{font-size:.78rem}.post-foot{margin-top:3rem;padding-top:1.3rem;border-top:1px solid var(--panel-line);display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;font-family:var(--mono);font-size:.74rem;letter-spacing:.06em}.post-foot a{color:var(--ink-soft);text-decoration:none}.post-foot a:hover{color:var(--rust)}footer.foot{margin-top:4rem;padding-top:1.3rem;border-top:1px solid var(--panel-line);font-family:var(--mono);font-size:.72rem;letter-spacing:.08em;color:var(--ink-faint);display:flex;justify-content:space-between;flex-wrap:wrap;gap:.8rem}footer.foot a{color:var(--ink-soft);text-decoration:none}footer.foot a:hover{color:var(--rust)}@keyframes rise{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.masthead,.section-head,ul.posts li,article header.post-head,.prose,footer.foot{animation:rise .5s cubic-bezier(.2,.7,.3,1)both}ul.posts li:nth-child(1){animation-delay:.05s}ul.posts li:nth-child(2){animation-delay:.1s}ul.posts li:nth-child(3){animation-delay:.15s}ul.posts li:nth-child(4){animation-delay:.2s}ul.posts li:nth-child(5){animation-delay:.25s}.prose{animation-delay:.08s}@media(max-width:620px){.site-title{font-size:2.1rem}.post-head h1{font-size:1.9rem}.prose mjx-container[display=true]{font-size:.9em}.formula-card{padding:.75rem .75rem .8rem}ul.posts li{flex-direction:column;gap:.25rem}ul.posts time{flex-basis:auto}}.highlight .hl{background:#e3d9c4;display:block}.highlight .ln{color:var(--ink-faint);margin-right:.6em}.highlight .k,.highlight .kd,.highlight .kn,.highlight .kr{color:var(--rust)}.highlight .kc,.highlight .kt{color:var(--rust)}.highlight .s,.highlight .s1,.highlight .s2,.highlight .sb,.highlight .sc{color:var(--sage)}.highlight .nf,.highlight .fm{color:var(--ochre)}.highlight .nb,.highlight .bp{color:var(--ochre)}.highlight .c,.highlight .c1,.highlight .cm,.highlight .cs{color:var(--ink-faint);font-style:italic}.highlight .o,.highlight .ow{color:var(--ink)}.highlight .m,.highlight .mi,.highlight .mf{color:var(--rust)}.highlight .n,.highlight .nx{color:var(--ink)}.highlight .nt{color:var(--rust)}.highlight .na{color:var(--ochre)}.highlight .err{color:var(--rust)}