:is(h1,h2,h3,h4,h5,h6){font:300 var(--font-serif);margin:0 0 var(--space-3);scroll-margin-top:6rem}h1{font-size:3rem}h2{font-size:2.5rem}h3{font-size:1.875rem}h4{font-size:1.625rem}h5{font-size:1.25rem}h6{font-size:1.125rem}.blog-post-layout{--article-column-max-width:70ch;--article-shell-max-width:88rem;--toc-rail-width:13.5rem;--toc-rail-gap:clamp(1rem, 1.4vw, 1.75rem)}.article-shell{width:100%;max-width:var(--article-shell-max-width);margin-inline:auto}.article-main{width:min(100%, var(--article-column-max-width));min-width:0;margin-inline:auto}.article-toc-wrap{min-width:0}@media (width>=1360px){.article-shell.has-toc{grid-template-columns:minmax(0, var(--toc-rail-width)) minmax(0, var(--article-column-max-width)) minmax(0, var(--toc-rail-width));column-gap:var(--toc-rail-gap);justify-content:center;align-items:start;display:grid}.article-main{grid-column:2;max-width:100%}.article-toc-wrap{grid-column:1;align-self:start;margin-left:-.5rem;position:sticky;top:8.75rem}}.article-content{flex:1;min-width:0;& .katex-display{scrollbar-width:thin;scrollbar-color:var(--color-border) transparent;padding-block:.1em;overflow:auto hidden}& .katex-display::-webkit-scrollbar{height:2px}& .katex-display::-webkit-scrollbar-track{background:0 0}& .katex-display::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:2px}& table{scrollbar-width:thin;scrollbar-color:var(--color-border) transparent;width:fit-content;max-width:100%;display:block;overflow-x:auto}& table::-webkit-scrollbar{height:2px}& table::-webkit-scrollbar-track{background:0 0}& table::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:2px}&>:first-child{margin-top:0}& a{color:var(--article-link-color);word-break:normal;overflow-wrap:anywhere;text-decoration:none}& a:hover,& a:focus-visible{color:var(--article-link-hover);text-underline-offset:.12em;text-decoration:underline .06em;text-decoration-color:var(--color-header-divider)}& :is(h2,h3,h4,h5,h6){position:relative}& .heading-anchor{padding-right:var(--space-2);color:var(--color-text-secondary);opacity:0;pointer-events:none;justify-content:center;align-items:center;font-weight:300;line-height:1;text-decoration:none;transition:opacity .18s,color .18s;display:inline-flex;position:absolute;top:0;right:100%}& :is(h2,h3,h4,h5,h6):focus-within .heading-anchor{opacity:.5;pointer-events:auto}@media (hover:hover) and (pointer:fine){& :is(h2,h3,h4,h5,h6):hover .heading-anchor{opacity:.5;pointer-events:auto}}& .heading-anchor:focus-visible{opacity:1;pointer-events:auto;color:var(--article-link-color);text-decoration:none}@media (hover:hover) and (pointer:fine){& .heading-anchor:hover{opacity:1;pointer-events:auto;color:var(--article-link-color);text-decoration:none}}@media (hover:none) and (pointer:coarse){& .heading-anchor{opacity:0;pointer-events:none}& :is(h2,h3,h4,h5,h6):active .heading-anchor{opacity:.5;pointer-events:auto}}@media (width<=768px){& h1{font-size:2.5rem}& h2{font-size:2rem}& h3{font-size:1.5rem}& h4{font-size:1.25rem}& :is(h1,h2,h3,h4,h5,h6){scroll-margin-top:5rem}}}.article-content.body-text{color:var(--color-text);font-size:1.05rem;line-height:1.84;&>*+*{margin-top:var(--space-4)}& :is(p,li){text-wrap:pretty}& :is(h1,h2,h3,h4,h5,h6){color:var(--color-text);letter-spacing:-.012em;margin-bottom:var(--space-3);line-height:1.28}& h2{font-size:clamp(1.9rem,1.6rem + 1vw,2.2rem)}& h3{font-size:clamp(1.55rem,1.35rem + .7vw,1.8rem)}& h4{font-size:clamp(1.25rem,1.15rem + .4vw,1.45rem)}& h5{font-size:1.1rem}& h6{font-size:1rem}& :is(h2,h3,h4,h5,h6){margin-top:var(--space-8)}&>:is(h2,h3,h4,h5,h6):first-child{margin-top:0}& :is(h3,h4,h5,h6){margin-top:var(--space-6)}& p{color:var(--color-text);margin-bottom:0}& :is(ul,ol){margin-bottom:0;padding-left:1.35em}& li+li,& li :is(ul,ol){margin-top:.45em}& :is(pre,.expressive-code,.admonition,table,blockquote){margin-block:var(--space-6)}& .admonition{margin-block:var(--space-4)}& blockquote{padding:var(--space-3) var(--space-4);border-left:2px solid var(--color-header-divider);background:var(--color-surface);color:var(--color-text-secondary);border-radius:2px;display:block}& blockquote:before,& blockquote:after{content:none}& img{margin:var(--space-8) auto}& hr{margin:var(--space-8) 0}@media (width<=768px){font-size:1rem;line-height:1.76;& :is(h2,h3,h4,h5,h6){margin-top:var(--space-6)}}}p{margin-bottom:var(--space-4)}ul,ol{margin-bottom:var(--space-4);padding-left:var(--space-4)}img{margin:var(--space-6) auto;border-radius:6px;display:block}table{margin:var(--space-6) 0;border-collapse:collapse;border:1px solid var(--color-border);width:100%;font-size:1rem}th,td{padding:.75em var(--space-3);border-bottom:1px solid var(--color-border)}th{background:var(--color-surface-elevated);color:var(--color-text)}tbody tr:nth-child(2n){background:var(--color-surface)}tbody tr:last-child td{border-bottom:0}hr{margin:var(--space-12) 0;border:0;border-top:1px solid var(--color-header-divider)}strong{font-weight:600}blockquote{padding:var(--space-4) var(--space-6) var(--space-4) var(--space-4);margin:var(--space-6) 0;display:inline-block;position:relative;&:before,&:after{color:var(--color-text-secondary);opacity:.3;font-size:3em;line-height:1;position:absolute}&:before{content:"“";top:-.2em;left:-.1em}&:after{content:"”";bottom:-.3em;right:.1em}&>:last-child{margin-bottom:0}}.post-card{text-align:left;margin:10px 0;display:block;&:hover .post-title{color:var(--article-link-color)}}.post-title-row{align-items:baseline;gap:var(--space-3);margin-bottom:var(--space-1);flex-wrap:wrap;display:flex}.post-title{font:300 1.375rem var(--font-serif);margin-bottom:0}.post-meta{color:var(--color-text-muted);margin-top:var(--space-1);font-size:.875rem}.post-description{color:var(--color-text-muted);-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:1rem;display:-webkit-box;overflow:hidden}.blog-post-item{padding-left:80px;position:relative}.blog-date{width:70px;font:1rem var(--font-mono);color:var(--color-text-muted);position:absolute;top:2.5px;left:0}.tag-container{gap:var(--space-1);flex-wrap:wrap;align-items:baseline;display:inline-flex}.tag-small{font:.875rem var(--font-mono);color:var(--color-text-muted)}.tag{font:1rem var(--font-mono);color:var(--color-text-secondary);padding:var(--space-1) var(--space-2)}.article-header{max-width:min(100%, var(--article-column-max-width,var(--max-width)));margin:0 auto var(--space-6);text-align:center}.article-meta-container{align-items:center;gap:var(--space-3);color:var(--color-text-secondary);flex-direction:column;font-size:1rem;display:flex;@media (width>=640px){flex-direction:row;justify-content:center}}
