:where(.vb-root){--vb-fg:var(--foreground,currentColor);--vb-muted:var(--muted-foreground,color-mix(in oklab, currentColor 60%, transparent));--vb-border:var(--border,color-mix(in oklab, currentColor 14%, transparent));--vb-surface:var(--muted,color-mix(in oklab, currentColor 5%, transparent));--vb-link:var(--primary,currentColor);--vb-ring:var(--ring,var(--vb-fg));--vb-radius:var(--radius,.625rem);--vb-width:41rem;--vb-gutter:1.5rem;--vb-sidebar-width:15rem;--vb-sticky-top:2rem;--vb-mono:var(--font-mono,ui-monospace, SFMono-Regular, Menlo, Consolas, monospace);--sh-identifier:var(--vb-fg);--sh-sign:color-mix(in oklab, var(--vb-fg) 55%, transparent);--sh-comment:var(--vb-muted);--sh-keyword:#e94554;--sh-string:#3ca368;--sh-class:#2f8adc;--sh-property:#8675d4;--sh-entity:#00a3aa;--sh-jsxliterals:#8675d4;box-sizing:border-box;width:100%;max-width:calc(var(--vb-width) + 2 * var(--vb-gutter));padding:4rem var(--vb-gutter) 6rem;color:var(--vb-fg);margin-inline:auto}@supports (color:lab(0% 0 0)){:where(.vb-root){--sh-keyword:lab(54.9607% 64.1357 30.2491);--sh-string:lab(59.9298% -41.4374 21.3638);--sh-class:lab(55.2086% -4.94954 -50.4575);--sh-property:lab(54.0754% 23.684 -47.2345);--sh-entity:lab(60.5555% -37.4904 -15.3679);--sh-jsxliterals:lab(54.0754% 23.684 -47.2345)}}.vb-root *,.vb-root :before,.vb-root :after{box-sizing:border-box}.vb-header{margin-bottom:3rem}.vb-title{letter-spacing:-.03em;text-wrap:balance;margin:0;font-size:clamp(2rem,1.4rem + 2.4vw,2.75rem);font-weight:650;line-height:1.1}.vb-description{color:var(--vb-muted);text-wrap:pretty;margin:.875rem 0 0;font-size:1.0625rem;line-height:1.6}.vb-list{border-bottom:1px solid var(--vb-border);margin:0;padding:0;list-style:none}.vb-item>a{border-top:1px solid var(--vb-border);color:inherit;grid-template-columns:9.5rem 1fr;gap:.25rem 1.5rem;padding:1.375rem 0;text-decoration:none;display:grid}.vb-item time{white-space:nowrap;color:var(--vb-muted);font-variant-numeric:tabular-nums;padding-top:.15rem;font-size:.875rem}.vb-item-title{letter-spacing:-.01em;text-underline-offset:4px;flex-wrap:wrap;align-items:center;gap:.5rem;font-size:1.125rem;font-weight:600;line-height:1.4;text-decoration-thickness:1px;display:inline-flex}.vb-item>a:hover .vb-item-title,.vb-item>a:focus-visible .vb-item-title{text-decoration-line:underline}.vb-item-desc{color:var(--vb-muted);text-wrap:pretty;margin:.375rem 0 0;font-size:.9375rem;line-height:1.55}.vb-empty{color:var(--vb-muted)}.vb-footer{margin-top:2rem;font-size:.875rem}.vb-footer a{color:var(--vb-muted);text-decoration:none}.vb-footer a:hover{color:var(--vb-fg)}@media (max-width:640px){:where(.vb-root){padding-top:2.5rem}.vb-item>a{grid-template-columns:1fr}}:where(.vb-root.vb-post){max-width:none}.vb-post-grid{grid-template-columns:minmax(0, var(--vb-width));justify-content:center;display:grid}.vb-sidebar-heading{color:var(--vb-fg);margin:0 0 .75rem;font-size:.8125rem;font-weight:600}.vb-sidebar ul{margin:0;padding:0;list-style:none}.vb-toc{display:none}.vb-more{border-top:1px solid var(--vb-border);margin-top:4rem;padding-top:2rem}.vb-more li+li{margin-top:.25rem}.vb-more a{color:inherit;flex-direction:column;gap:.125rem;padding:.5rem 0;text-decoration:none;display:flex}.vb-more a span{text-underline-offset:3px;font-size:.9375rem;font-weight:500;line-height:1.4;text-decoration-thickness:1px}.vb-more a:hover span{text-decoration-line:underline}.vb-more time{color:var(--vb-muted);font-variant-numeric:tabular-nums;font-size:.8125rem}.vb-toc ul{border-left:1px solid var(--vb-border)}.vb-toc a{color:var(--vb-muted);border-left:2px solid #0000;margin-left:-1px;padding:.3125rem 0 .3125rem .875rem;font-size:.8125rem;line-height:1.45;text-decoration:none;transition:color .15s,border-color .15s;display:block}.vb-toc li[data-depth="3"] a{padding-left:1.75rem}.vb-toc a:hover{color:var(--vb-fg)}.vb-toc a[aria-current]{border-left-color:var(--vb-fg);color:var(--vb-fg);font-weight:500}@media (min-width:64rem){.vb-post-grid{grid-template-columns:minmax(0, 1fr) minmax(0, var(--vb-width)) minmax(13rem, 1fr);column-gap:4rem}.vb-article{grid-column:2}.vb-sidebar{grid-column:3}.vb-sidebar-inner{top:var(--vb-sticky-top);max-width:var(--vb-sidebar-width);max-height:calc(100vh - 2 * var(--vb-sticky-top));overscroll-behavior:contain;flex-direction:column;gap:2.5rem;display:flex;position:sticky;overflow-y:auto}.vb-toc{display:block}.vb-more{border-top:0;margin-top:0;padding-top:0}.vb-more ul{border-left:1px solid var(--vb-border)}.vb-more li+li{margin-top:0}.vb-more a{padding:.3125rem 0 .3125rem .875rem}.vb-more a span{color:var(--vb-muted);font-size:.8125rem;font-weight:400}.vb-more a:hover span{color:var(--vb-fg)}.vb-more time{font-size:.75rem}}.vb-back{color:var(--vb-muted);margin-bottom:2.5rem;font-size:.875rem;text-decoration:none;display:inline-block}.vb-back:hover{color:var(--vb-fg)}.vb-post-header{margin-bottom:2.5rem}.vb-meta{color:var(--vb-muted);font-variant-numeric:tabular-nums;flex-wrap:wrap;align-items:center;gap:.5rem;margin-top:1rem;font-size:.875rem;display:flex}.vb-badge{border:1px solid var(--vb-border);color:var(--vb-muted);letter-spacing:0;border-radius:999px;padding:.0625rem .5rem;font-size:.75rem;font-weight:500}.vb-cover{border:1px solid var(--vb-border);border-radius:var(--vb-radius);width:100%;height:auto;margin-bottom:2.5rem;display:block}.vb-prose{overflow-wrap:break-word;font-size:1.0625rem;line-height:1.75}.vb-prose :where(p,ul,ol,blockquote,figure,hr,.vb-code,.vb-table,.vb-callout,img){margin:1.25em 0}.vb-prose>:first-child{margin-top:0}.vb-prose :where(.vb-code,.vb-callout,.vb-table)+:where(.vb-code,.vb-callout){margin-top:1.75em}.vb-prose :where(h2,h3,h4){text-wrap:balance;scroll-margin-top:5rem;line-height:1.3}.vb-prose :where(h2){letter-spacing:-.02em;margin:2.25em 0 .75em;font-size:1.5em;font-weight:650}.vb-prose :where(h3){letter-spacing:-.01em;margin:1.875em 0 .5em;font-size:1.25em;font-weight:600}.vb-prose :where(h4){margin:1.5em 0 .5em;font-size:1em;font-weight:600}.vb-prose :where(a){color:var(--vb-link);text-decoration-line:underline;text-decoration-thickness:1px;-webkit-text-decoration-color:color-mix(in oklab, currentColor 35%, transparent);text-decoration-color:color-mix(in oklab, currentColor 35%, transparent);text-underline-offset:3px}.vb-prose :where(a):hover{text-decoration-color:currentColor}.vb-prose .vb-anchor{color:inherit;text-decoration:none}.vb-prose :where(strong){font-weight:600}.vb-prose :where(ul){padding-left:1.5em;list-style:outside}.vb-prose :where(ol){padding-left:1.5em;list-style:decimal}.vb-prose :where(li){margin:.375em 0;padding-left:.25em}.vb-prose :where(li)::marker{color:var(--vb-muted)}.vb-prose :where(li>ul,li>ol){margin:.375em 0}.vb-prose :where(.contains-task-list){padding-left:.25em;list-style:none}.vb-prose :where(.task-list-item input){vertical-align:middle;margin:0 .5em 0 0}.vb-prose :where(blockquote){border-left:2px solid var(--vb-border);color:var(--vb-muted);padding-left:1.25em}.vb-prose :where(hr){border:0;border-top:1px solid var(--vb-border);margin:3em 0}.vb-prose :where(img){border-radius:var(--vb-radius);max-width:100%;height:auto;display:block}.vb-prose :where(:not(pre)>code){border:1px solid var(--vb-border);background:var(--vb-surface);font-family:var(--vb-mono);border-radius:.375rem;padding:.125em .375em;font-size:.85em}.vb-code{border:1px solid var(--vb-border);border-radius:var(--vb-radius);background:var(--vb-surface);margin-inline:0;overflow:hidden}.vb-code-bar{border-bottom:1px solid var(--vb-border);background:color-mix(in oklab, var(--vb-fg) 4%, transparent);min-height:2.25rem;color:var(--vb-muted);font-family:var(--vb-mono);align-items:center;gap:.5rem;padding:.125rem .375rem .125rem 1.25rem;font-size:.75rem;line-height:1.4;display:flex}.vb-code-title{min-width:0;color:var(--vb-fg);text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.vb-code-lang{letter-spacing:.02em;-webkit-user-select:none;user-select:none;margin-left:auto}.vb-copy{border-radius:calc(var(--vb-radius) * .6);width:1.875rem;height:1.875rem;color:var(--vb-muted);cursor:pointer;background:0 0;border:0;flex:none;justify-content:center;align-items:center;padding:0;transition:color .15s,background-color .15s;display:inline-flex}.vb-copy:hover{background:color-mix(in oklab, var(--vb-fg) 8%, transparent);color:var(--vb-fg)}.vb-copy:focus-visible{outline:2px solid var(--vb-ring);outline-offset:-2px}.vb-copy[data-copied]{color:#2c965d;color:lab(55.2848% -41.5517 21.4388)}.vb-copy-status{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.vb-code pre{font-family:var(--vb-mono);tab-size:2;margin:0;padding:1rem 1.25rem;font-size:.875rem;line-height:1.7;overflow-x:auto}.vb-code[data-lang=shell]{--sh-sign:var(--sh-identifier);--sh-property:var(--sh-identifier)}.vb-table{overflow-x:auto}.vb-table table{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%;font-size:.9375em}.vb-table :where(th,td){vertical-align:top;border-bottom:1px solid var(--vb-border);text-align:left;padding:.5em .75em}.vb-table :where(th){border-bottom-color:color-mix(in oklab, var(--vb-fg) 30%, transparent);font-weight:600}.vb-table :where(th:first-child,td:first-child){padding-left:0}.vb-table :where(th:last-child,td:last-child){padding-right:0}.vb-callout{--vb-accent:var(--vb-muted);border:1px solid color-mix(in oklab, var(--vb-accent) 35%, transparent);border-radius:var(--vb-radius);background:color-mix(in oklab, var(--vb-accent) 8%, transparent);padding:.875rem 1.125rem;font-size:.9375em}.vb-callout[data-type=tip]{--vb-accent:#2c965d}@supports (color:lab(0% 0 0)){.vb-callout[data-type=tip]{--vb-accent:lab(55.2848% -41.5517 21.4388)}}.vb-callout[data-type=warning]{--vb-accent:#d98b09}@supports (color:lab(0% 0 0)){.vb-callout[data-type=warning]{--vb-accent:lab(64.8649% 24.5976 68.6789)}}.vb-callout>:first-child{margin-top:0}.vb-callout>:last-child{margin-bottom:0}.vb-callout-title{margin:0 0 .25em;font-weight:600}.vb-callout-title+*{margin-top:0}.vb-callout :where(code){border-color:color-mix(in oklab, var(--vb-accent) 30%, transparent);background:color-mix(in oklab, var(--vb-accent) 10%, transparent)}.vb-cta{border:1px solid color-mix(in oklab, var(--vb-fg) 16%, transparent);border-radius:var(--vb-radius);background:var(--vb-surface);flex-wrap:wrap;align-items:center;gap:1rem 1.5rem;margin-top:3.5rem;padding:1.25rem 1.5rem;display:flex}.vb-cta-copy{flex-direction:column;flex:18rem;gap:.25rem;display:flex}.vb-cta-title{letter-spacing:-.01em;text-wrap:balance;margin:0;font-size:1.1875rem;font-weight:650;line-height:1.35}.vb-cta-text{color:var(--vb-muted);text-wrap:pretty;margin:0;font-size:.9375rem;line-height:1.55}.vb-cta-button{border-radius:calc(var(--vb-radius) * .8);background:var(--vb-cta-bg,var(--vb-fg));min-height:2.5rem;color:var(--vb-cta-fg,var(--background,#fff));flex:none;align-items:center;padding:.5rem 1rem;font-size:.9375rem;font-weight:500;text-decoration:none;transition:opacity .15s;display:inline-flex}.vb-cta-button:hover{opacity:.88}.vb-cta-button:focus-visible{outline:2px solid var(--vb-ring);outline-offset:2px}.vb-prose :where(.footnotes){color:var(--vb-muted);margin-top:3em;font-size:.875em}.vb-prose .sr-only{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}
