:root{--blog-bg:rgb(247,246,245);--blog-fg:rgb(0,0,0);--blog-primary:rgb(34,0,255);--blog-border:rgba(0,0,0,0.06);--blog-color-001:rgb(89,89,89);--blog-color-002:rgb(74,74,74);--blog-color-003:rgb(26,26,26);--blog-color-005:rgb(74,74,74);--blog-clr-0:oklab(0 0 0/0);--blog-clr-13:oklab(0.213404 0.00000968575 0.00000427663/0.280392);--blog-clr-14:rgb(237,236,235);--blog-clr-15:rgb(250,80,80);--blog-clr-16:rgb(243,243,243);--blog-clr-17:rgb(255,255,255);--blog-clr-18:oklab(0.213404 0.00000968575 0.00000427663/0.448627);--blog-font-body:"STK Bureau Serif","stkBureauSerif",Georgia,serif;--blog-font-ui:"NB International Pro","nbInternational",system-ui,sans-serif;--blog-font-mono:"Geist Mono",ui-monospace,SFMono-Regular,"Roboto Mono",Menlo,Monaco,monospace}.blog-page{background:var(--blog-bg);color:var(--blog-fg)}.blog-article h1,.blog-page{font-family:var(--blog-font-body)}.blog-article h1{font-size:2rem;font-weight:300;line-height:2.375rem;letter-spacing:-.64px;text-wrap:balance}.blog-article h2{font-size:1.375rem;line-height:1.8125rem}.blog-article h2,.blog-article h3{font-family:var(--blog-font-ui);font-weight:400;text-wrap:balance}.blog-article h3{font-size:1.1875rem;line-height:1.5625rem}.blog-article h4{font-family:var(--blog-font-ui);font-size:1.125rem;line-height:1.4375rem;font-weight:500;text-wrap:balance}.blog-article p{font-family:var(--blog-font-body);font-size:.9375rem;line-height:1.4375rem;text-wrap:pretty}.blog-article .blog-meta{font-family:var(--blog-font-mono);font-size:.75rem;line-height:1rem;letter-spacing:-.12px;color:var(--blog-color-001)}.blog-article a{color:var(--blog-primary);text-decoration:underline;text-decoration-style:dotted}.blog-article a:hover{background:var(--blog-primary);color:var(--blog-bg);border-color:var(--blog-bg);outline-color:var(--blog-bg);text-decoration-color:var(--blog-bg)}.blog-article code{font-family:var(--blog-font-mono);font-size:.875rem;line-height:1.125rem;background:var(--blog-border);padding:.125rem .25rem;border-radius:.125rem}.blog-article strong{font-weight:600}.blog-article .blog-highlight{text-decoration:underline;background-image:repeating-linear-gradient(-60deg,var(--blog-border) 0,var(--blog-border) 1px,var(--blog-clr-0) 1px,var(--blog-clr-0) 2px)}.blog-nav-link{font-family:var(--blog-font-ui);font-size:.9375rem;line-height:1.25rem}.blog-nav-link:hover{border-color:var(--blog-primary);outline-color:var(--blog-primary);text-decoration-color:var(--blog-primary)}.blog-nav-link-active,.blog-nav-link:hover{color:var(--blog-primary)}.blog-footer-link{font-family:var(--blog-font-mono);font-size:.75rem;line-height:1rem;letter-spacing:-.12px;color:var(--blog-color-001)}.blog-footer-link:hover{background:var(--blog-primary)}.blog-figure{border:1px solid var(--blog-border);padding:1.25rem}.blog-tag{font-family:var(--blog-font-mono);font-size:.625rem;line-height:.9375rem;letter-spacing:.2px;text-transform:lowercase;background:var(--blog-border);color:var(--blog-color-001);padding:.125rem .5rem;white-space:nowrap}.blog-bullet{width:4px;height:4px;border-radius:50%;background:var(--blog-color-001);flex-shrink:0;margin-top:.6rem}.blog-heading-anchor{position:relative;cursor:pointer}.blog-heading-anchor .blog-hash{opacity:0;margin-left:.5rem;color:var(--blog-clr-13)}.blog-heading-anchor:hover .blog-hash{opacity:1}.blog-index-card{border:1px solid var(--blog-border);background:var(--blog-bg);transition:border-color .2s ease}.blog-index-card:hover{border-color:var(--blog-fg)}.blog-index-card:hover .blog-index-title{color:var(--blog-primary)}.blog-index-title{font-family:var(--blog-font-body);font-size:1.5rem;line-height:1.75rem;font-weight:300;letter-spacing:-.02em;text-wrap:balance;transition:color .2s ease}.blog-index-summary{font-family:var(--blog-font-body);font-size:.9375rem;line-height:1.4375rem;color:var(--blog-color-001);text-wrap:pretty}.blog-index-date{font-family:var(--blog-font-mono);font-size:.75rem;line-height:1rem;letter-spacing:-.12px;color:var(--blog-color-001)}.blog-index-category{font-family:var(--blog-font-mono);font-size:.6875rem;line-height:1.0625rem;letter-spacing:.5px;text-transform:uppercase;color:var(--blog-color-005)}