.blog-body{padding-block:var(--sp-7) var(--section-y)}.blog-index{gap:var(--sp-6);display:grid}.blog-filter{gap:var(--sp-3);display:grid}.blog-status{font-variant-numeric:tabular-nums}.blog-list{border-block-end:1px solid var(--line);margin:0;padding:0;list-style:none;display:grid}.blog-list>li{border-block-start:1px solid var(--line);max-inline-size:none}.blog-list .article-card{gap:var(--sp-2);padding-block:var(--sp-5);border-block-start:0}.blog-list .article-title{font-size:1.5rem;line-height:1.4}.blog-list .article-desc{text-wrap:wrap;max-inline-size:36em}@media (min-width:47.5em){.blog-list .article-card{column-gap:var(--gap);row-gap:var(--sp-2);padding-block:var(--sp-6);grid-template-columns:repeat(12,minmax(0,1fr));align-items:start}.blog-list .article-meta{grid-area:1/1/auto/span 3;padding-block-start:.3rem}.blog-list .article-tags{grid-area:2/1/auto/span 3}.blog-list .article-title{grid-area:1/4/auto/span 8}.blog-list .article-desc{grid-area:2/4/auto/span 8}}.blog-rss{margin:0}.blog-rss .tlink{gap:var(--sp-2);font-size:var(--fs-ui)}.blog-rss svg{flex:none;block-size:1rem;inline-size:1rem}.blog-rss circle{fill:currentColor}.blog-rss path{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round}html.blog-vt::view-transition-old(root){animation:none}html.blog-vt::view-transition-new(root){animation:none}html.blog-vt::view-transition-group(*){animation-duration:.25s;animation-timing-function:var(--ease-out)}.read-progress{display:none}@media (prefers-reduced-motion:no-preference){@supports (animation-timeline:scroll()){.read-progress{z-index:49;background:var(--accent);pointer-events:none;transform-origin:0;block-size:2px;animation:linear both zl-read;animation-timeline:scroll(root);display:block;position:fixed;inset-block-start:var(--head-h);inset-inline:0;transform:scaleX(0)}}}@media (max-height:31.25rem){.read-progress{inset-block-start:0}}@keyframes zl-read{to{transform:scaleX(1)}}.post-head{gap:var(--sp-4);justify-items:start;padding-block-start:clamp(1.5rem,4vw,3rem);display:grid}.post-head>*{min-inline-size:0;max-inline-size:100%}@media (min-width:47.5em){.post-head{column-gap:var(--gap);grid-template-columns:repeat(12,minmax(0,1fr))}.post-head>*{grid-column:1/span 9}}.post-head .crumbs{inline-size:100%;margin-block-end:calc(var(--sp-3) * -1)}.post-head .crumbs ol{flex-wrap:nowrap}.post-head .crumbs li{flex:none}.post-head .crumbs li:last-child{flex:0 auto;min-inline-size:0}.post-head .crumbs [aria-current]{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.post-meta{flex-wrap:wrap;align-items:baseline;display:flex}.post-meta-item{white-space:nowrap}.post-meta a{color:inherit}@media (hover:hover) and (pointer:fine){.post-meta a:hover{color:var(--ink)}}.post-head h1{font-size:var(--fs-h1-post);margin:0;line-height:1.25}.post-lead{color:var(--ink-2);font-size:var(--fs-lead);text-wrap:wrap;max-inline-size:34em;margin:0;line-height:1.85}.post-body{padding-block:var(--sp-7) var(--section-y);grid-template-columns:minmax(0,1fr);align-items:start;display:grid}.post-main{min-inline-size:0;max-inline-size:var(--w-read);font-size:var(--fs-lead)}@media (min-width:73.75em){.post-body.has-toc{column-gap:var(--gap);grid-template-columns:repeat(12,minmax(0,1fr))}.post-body.has-toc>.post-main{grid-area:1/1/auto/span 8}.post-body.has-toc>.post-toc-d{grid-area:1/9/auto/-1}}.post-toc-list{font-size:var(--fs-small);counter-reset:none;margin:0;padding:0;line-height:1.6;list-style:none;display:grid}.post-toc-list>li{max-inline-size:none}.post-toc-list a{gap:var(--sp-2);color:var(--ink-2);grid-template-columns:1.5em minmax(0,1fr);padding-block:.625rem;text-decoration:none;display:grid}.post-toc-list .num{color:var(--ink-2)}@media (hover:hover) and (pointer:fine){.post-toc-list a:hover{color:var(--ink);text-decoration-line:underline;text-decoration-thickness:1px}}.post-toc-m{border-block:1px solid var(--line);margin-block-end:var(--sp-6)}.post-toc-m>summary{min-block-size:52px;font-size:var(--fs-ui);cursor:pointer;align-items:center;padding-inline-end:44px;font-weight:700;line-height:1.4;list-style:none;display:flex;position:relative}.post-toc-m>summary::-webkit-details-marker{display:none}.post-toc-m>summary:before,.post-toc-m>summary:after{content:"";block-size:2px;inline-size:14px;transition:rotate var(--dur-pop) var(--ease-out);background:currentColor;margin-block-start:-1px;position:absolute;inset-block-start:50%;inset-inline-end:6px}.post-toc-m>summary:after{rotate:90deg}.post-toc-m[open]>summary:after{rotate:0deg}.post-toc-m[open]>.post-toc-list{animation:zl-fade-in var(--dur-pop) var(--ease-out);padding-block-end:var(--sp-3)}.post-toc-d{display:none}@media (min-width:73.75em){.post-toc-m{display:none}.post-toc-d{gap:var(--sp-2);max-block-size:calc(100svh - var(--head-h) - var(--sp-6) * 2);overscroll-behavior:contain;border-inline-start:1px solid var(--line);align-self:start;padding-inline-start:var(--sp-5);display:grid;position:sticky;inset-block-start:calc(var(--head-h) + var(--sp-6));overflow-y:auto}.post-toc-title{color:var(--ink);font-size:var(--fs-small);margin:0;font-weight:700;line-height:1.6}}@media (max-height:31.25rem){.post-toc-d{max-block-size:none;position:static}}.prose{font-size:var(--fs-lead);line-height:1.85}.prose>*{margin-block:0}.prose>*+*{margin-block-start:1em}.prose p,.prose li{text-wrap:wrap;max-inline-size:none}.prose h2{font-size:var(--fs-h3);margin-block-start:clamp(2.75rem,1.75rem + 2.5vw,4rem);line-height:1.4}.prose h3{font-size:var(--fs-h4);margin-block-start:2.25em;line-height:1.5}.prose :is(h2,h3)+*{margin-block-start:var(--sp-3)}.prose h2+h3{margin-block-start:var(--sp-5)}.prose :is(ul,ol){padding-inline-start:1.5em}.prose ul{list-style:outside}.prose ol{list-style:decimal}.prose li+li,.prose li>:is(ul,ol){margin-block-start:.5em}.prose li::marker{color:var(--ink-2)}.prose ol>li::marker{font-family:var(--font-num);font-variant-numeric:tabular-nums lining-nums;font-weight:600}.prose strong{font-weight:700}.prose a{text-decoration-thickness:1px}.prose hr{margin-block:2.5em}.prose img{border-radius:var(--r-m)}.prose-quote{border-inline-start:2px solid var(--ink);color:var(--ink-2);margin-inline:0;padding-inline-start:1.25em}.prose-quote>*{margin:0}.prose-quote>*+*{margin-block-start:.75em}.prose-scroll{overscroll-behavior-x:contain;max-inline-size:100%;overflow-x:auto}.prose-scroll:focus-visible{outline-offset:2px}.prose-table table{border-collapse:collapse;inline-size:100%;font-size:var(--fs-body);font-variant-numeric:tabular-nums;line-height:1.65}.prose-table :is(th,td){border-block-end:1px solid var(--line);text-align:start;vertical-align:top;padding:.75em 1.25em .75em 0}.prose-table :is(th,td):last-child{padding-inline-end:0}.prose-table thead :is(th,td){color:var(--ink-2);font-size:var(--fs-small);border-block-end-color:var(--line-strong);white-space:nowrap;padding-block-start:0;font-weight:700}.prose-table tbody :is(th,td):first-child{white-space:nowrap;font-weight:700}@media (max-width:39.99em){.prose-table table{min-inline-size:30rem}}.prose-table{background:linear-gradient(to left, var(--bg) 40%, transparent) right / 24px 100% no-repeat local, linear-gradient(to left, color-mix(in oklch, var(--ink) 18%, transparent), transparent) right / 10px 100% no-repeat scroll}.prose :not(pre)>code{border-radius:var(--r-s);background:var(--bg-2);padding:.1em .35em;font-size:.875em}.prose-code{border-radius:var(--r-m);background:var(--bg-2)}.prose-code pre{inline-size:max-content;min-inline-size:100%;padding:var(--sp-4) var(--sp-5);font-size:var(--fs-small);margin:0;line-height:1.7}.post-end{gap:var(--sp-7);border-block-start:1px solid var(--line);font-size:var(--fs-body);margin-block-start:var(--sp-8);padding-block-start:var(--sp-6);line-height:1.8;display:grid}.post-related h2{margin:0 0 var(--sp-2);font-size:var(--fs-h3);line-height:1.3}.post-related ul{gap:0 var(--sp-6);flex-wrap:wrap;margin:0;padding:0;list-style:none;display:flex}.post-related li{max-inline-size:none}.post-pager{gap:var(--sp-3);display:grid}@media (min-width:40em){.post-pager{grid-template-columns:repeat(2,minmax(0,1fr))}.post-pager .is-newer{grid-column:2}}.post-pager-link{align-content:start;gap:var(--sp-1);min-block-size:44px;padding:var(--sp-4) var(--sp-5);border-radius:var(--r-m);background:var(--bg-2);color:var(--ink);transition:background-color var(--dur-hover) var(--ease-out);text-decoration:none;display:grid}.post-pager-link.is-newer{text-align:end;justify-items:end}.post-pager-term{color:var(--ink-2);font-size:var(--fs-small);line-height:1.6}.post-pager-title{font-family:var(--font-display);font-synthesis:none;letter-spacing:.02em;text-wrap:balance;font-size:1.25rem;font-weight:700;line-height:1.45}@media (hover:hover) and (pointer:fine){.post-pager-link:hover{background:var(--hover)}.post-pager-link:hover .post-pager-title{text-underline-offset:.3em;text-decoration-line:underline;text-decoration-thickness:1.5px}}
