.lp .blog-nav{border-block-end:1px solid var(--lp-line)}.lp .blog-nav-in{justify-content:space-between;align-items:center;gap:var(--lp-gap);width:100%;padding-block:clamp(1rem,2vw,1.5rem);padding-inline:clamp(1rem,4vw,5rem);display:flex}.lp .blog-wrap{width:100%;padding-inline:clamp(1rem,4vw,5rem);padding-block:var(--lp-section-pad)}.lp .post-head>h1{max-inline-size:26ch;font-size:var(--lp-heading);margin-block-start:.6rem;line-height:1.05}.lp .blog-wrap>h1{max-inline-size:22ch;font-size:var(--lp-heading)}.lp .blog-wrap>h1+p{color:var(--lp-ink-muted);margin-block-start:var(--lp-gap)}.lp :is(.post-date,.blog-date){color:var(--lp-ink-muted);font-family:var(--font-mono);font-size:var(--lp-label);letter-spacing:.08em;text-transform:uppercase;display:block}.lp .post-toc{border-block:1px solid var(--lp-line);margin-block-start:clamp(2rem,4vw,3rem);padding-block:clamp(1rem,2vw,1.4rem)}.lp .post-toc ol{counter-reset:toc;margin:0;padding:0;list-style:none}.lp .post-toc li{counter-increment:toc;margin-block:.35rem}.lp .post-toc a{color:var(--lp-ink-muted);font-size:var(--lp-label);letter-spacing:.04em;text-decoration:none}.lp .post-toc a:before{content:counter(toc, decimal-leading-zero) "  ";color:var(--lp-structure);font-family:var(--font-mono)}.lp .post-toc a:hover{color:var(--lp-ink)}.lp .blog-body{border-block-start:1px solid var(--lp-line);margin-block-start:clamp(2.5rem,5vw,4rem);padding-block-start:clamp(2.5rem,5vw,4rem)}.lp .post-toc+.blog-body{border-block-start:0;margin-block-start:0}.lp .blog-body>:first-child{margin-block-start:0}.lp .blog-body h2{max-inline-size:44ch;margin-block:clamp(2.5rem, 4vw, 3.5rem) var(--lp-gap);font-size:clamp(1.5rem,1.6vw + 1.1rem,2.1rem);line-height:1.1}.lp .blog-body h3{color:var(--lp-ink);font-family:var(--font-mono);font-size:var(--lp-label);letter-spacing:.06em;text-transform:uppercase;margin-block:clamp(2rem,3vw,2.5rem) .6rem;font-weight:500}.lp .blog-body :is(p,ul,ol){margin-block:var(--lp-gap)}.lp .blog-body ul{list-style-type:disc}.lp .blog-body ol{list-style-type:decimal}.lp .blog-body :is(ul,ol){padding-inline-start:1.2rem}.lp .blog-body :is(ul,ol) :is(ul,ol){padding-inline-start:2rem}.lp .blog-body li{margin-block:.4rem}.lp .blog-body :is(p,li) a{color:var(--lp-ink);text-underline-offset:.25em;text-decoration:underline}.lp .blog-body :is(h2,h3) a{color:inherit;text-decoration:none}.lp .blog-body code{font-family:var(--font-mono);font-size:var(--lp-code)}.lp .blog-body pre{border:1px solid var(--lp-ink);background:var(--lp-raised);margin-block:clamp(1.5rem,3vw,2rem);padding:clamp(.9rem,1.5vw,1.25rem);overflow-x:auto}.lp .blog-body pre code{white-space:pre}.lp .blog-body figure.shiki{border:1px solid var(--lp-line);background:var(--lp-raised);margin-block:clamp(1.5rem,3vw,2rem)}.lp .blog-body figure.shiki>figcaption:first-child+div{border-block-start:1px solid var(--lp-line)}.lp .blog-body figure.shiki pre{background:0 0;border:0;margin:0;padding:0}.lp .blog-body figure.shiki>div[role=region]{padding-block:clamp(.9rem,1.5vw,1.25rem)}.lp .blog-body figure.shiki>div[role=region] pre{padding-inline:clamp(.9rem,1.5vw,1.25rem)}.lp .blog-body :where(div:has(>table)){margin-block:clamp(2rem,4vw,3rem);overflow-x:auto}.lp .blog-body table{border-collapse:collapse;width:100%;font-size:clamp(.85rem,.2vw + .8rem,.95rem)}.lp .blog-body :is(th,td){text-align:start;vertical-align:top;padding:.85rem 1.5rem .85rem 0}.lp .blog-body :is(th,td):last-child{padding-inline-end:0}.lp .blog-body th{border-block-end:1px solid var(--lp-line);color:var(--lp-ink-muted);font-family:var(--font-mono);font-size:var(--lp-label);letter-spacing:.06em;text-transform:uppercase;white-space:nowrap;font-weight:500}.lp .blog-body tbody tr+tr td{border-block-start:1px solid color-mix(in srgb, var(--lp-line) 35%, transparent)}.lp .blog-body td:first-child{color:var(--lp-ink)}.lp .blog-body td code{white-space:nowrap}.lp .blog-body figure{--blog-bleed:clamp(.5rem, 2vw, 2.5rem);margin-block:clamp(2rem,4vw,3rem);margin-inline:0}.lp .blog-body figure img{max-block-size:60dvh;max-inline-size:100%;object-fit:contain;border:1px solid var(--lp-line);height:auto;margin-inline:auto;display:block}.lp .blog-body .diagram{border:1px solid var(--lp-line);background:var(--lp-raised);justify-content:center;padding:clamp(1rem,3vw,2.5rem);display:flex}.lp .blog-body .diagram>span{display:contents}.lp .blog-body .diagram svg{width:auto;max-block-size:60dvh;max-inline-size:100%;height:auto}.lp .blog-body [data-reveal].diagram rect{animation:blog-diagram-box .32s var(--lp-ease-out) both}.lp .blog-body [data-reveal].diagram rect:nth-of-type(2){animation-delay:80ms}.lp .blog-body [data-reveal].diagram rect:nth-of-type(3){animation-delay:.16s}.lp .blog-body [data-reveal].diagram rect:nth-of-type(4){animation-delay:.24s}.lp .blog-body [data-reveal].diagram path{stroke-dasharray:1;stroke-dashoffset:1px;animation:blog-diagram-draw .52s var(--lp-ease-out) both;animation-delay:.3s}.lp .blog-body [data-reveal].diagram path.wire-ro{stroke-dasharray:5 4;stroke-dashoffset:0;animation-name:blog-diagram-fade}.lp .blog-body [data-reveal].diagram line{animation:blog-diagram-fade .4s var(--lp-ease-out) both;animation-delay:.32s}.lp .blog-body [data-reveal].diagram text{animation:blog-diagram-fade .3s var(--lp-ease-out) both;animation-delay:.42s}@keyframes blog-diagram-box{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}@keyframes blog-diagram-draw{to{stroke-dashoffset:0}}@keyframes blog-diagram-fade{0%{opacity:0}to{opacity:1}}@media (prefers-reduced-motion:reduce){.lp .blog-body [data-reveal].diagram :is(rect,path,line,text){stroke-dashoffset:0;animation:none}}.lp .blog-body figure.fig--wide{max-inline-size:none;margin-inline:calc(var(--blog-bleed) * -1)}.lp .blog-body figure.fig--wide figcaption{margin-inline-start:var(--blog-bleed)}.lp .blog-body figcaption{color:var(--lp-ink-muted);font-size:var(--lp-label);letter-spacing:.02em;margin-block-start:.7rem}.lp .blog-list{margin-block-start:clamp(2.5rem,5vw,4rem);padding:0;list-style:none}.lp .blog-list>li{border-block-start:1px solid var(--lp-line);padding-block:clamp(1.5rem,3vw,2.25rem)}.lp .blog-list>li:last-child{border-block-end:1px solid var(--lp-line)}.lp .blog-list h2{max-inline-size:40ch;margin:0;font-size:clamp(1.35rem,1.3vw + 1.05rem,1.9rem);line-height:1.1}.lp .blog-list h2 a{color:inherit;text-decoration:none}@media (hover:hover) and (pointer:fine){.lp .blog-list>li:hover h2 a{color:var(--lp-structure)}}.lp .blog-list p{color:var(--lp-ink-muted);margin:.6rem 0 0}.lp .blog-list time{color:var(--lp-ink-muted);font-family:var(--font-mono);font-size:var(--lp-label);letter-spacing:.06em;margin-block-start:.8rem;display:block}.lp .related-post{border-block-start:1px solid var(--lp-line);margin-block-start:var(--lp-section-pad);padding-block-start:clamp(2rem,4vw,3.5rem)}.lp .related-post h3{margin-block:.5rem .35rem;font-size:clamp(1.2rem,1.2vw + 1rem,1.6rem)}.lp .related-post h3 a{color:var(--lp-ink);text-decoration:none}@media (hover:hover) and (pointer:fine){.lp .related-post:hover h3 a{color:var(--lp-structure)}}.lp .related-post p{color:var(--lp-ink-muted);margin:0}
