.share-pill[data-astro-cid-23dal7dm3ho4s]{color:#1f2937;cursor:pointer;background:#fff;border:1px solid #e5e7eb;border-radius:9999px;align-items:center;gap:.5rem;padding:.625rem 1rem;font-size:.875rem;font-weight:500;transition:border-color .15s,box-shadow .15s,transform .15s;display:inline-flex;box-shadow:0 1px 2px #0000000d}.share-pill[data-astro-cid-23dal7dm3ho4s]:hover{border-color:#9ca3af;transform:translateY(-1px);box-shadow:0 4px 10px #00000014}.share-pill[data-astro-cid-23dal7dm3ho4s]:focus-visible{outline:2px solid var(--c-brand);outline-offset:2px}.share-cta--top[data-astro-cid-23dal7dm3ho4s]{padding-top:1.25rem;padding-bottom:1.25rem}.post-toc-list[data-astro-cid-m3uaby2r3ho4s]{counter-reset:post-toc;flex-direction:column;gap:.625rem;margin:0;padding:0;list-style:none;display:flex}.post-toc-list[data-astro-cid-m3uaby2r3ho4s]>li[data-astro-cid-m3uaby2r3ho4s]{counter-increment:post-toc;-moz-column-gap:.25rem;grid-template-columns:1.75rem 1fr;align-items:baseline;column-gap:.25rem;display:grid}.post-toc-list[data-astro-cid-m3uaby2r3ho4s]>li[data-astro-cid-m3uaby2r3ho4s]+li[data-astro-cid-m3uaby2r3ho4s]{border-top:1px solid var(--c-border,#00000014);padding-top:.625rem}.post-toc-list[data-astro-cid-m3uaby2r3ho4s]>li[data-astro-cid-m3uaby2r3ho4s]:before{content:counter(post-toc) ".";color:var(--c-brand);font-variant-numeric:tabular-nums;font-size:.8125rem;font-weight:600;line-height:1.4}.post-body .code-block{position:relative}.post-body .code-block>pre{margin-top:0;margin-bottom:0}.post-body .code-block+*{margin-top:1.5em}.post-body .code-copy{z-index:2;color:#e2e8f0;min-width:2.75rem;min-height:1.75rem;font:500 .75rem/1.2 var(--font-mono,ui-monospace, monospace);letter-spacing:.02em;cursor:pointer;opacity:.75;background:#0f172ad9;border:1px solid #ffffff2e;border-radius:.375rem;padding:.2rem .6rem;transition:opacity .15s,background .15s;position:absolute;top:.5rem;right:.5rem}.post-body .code-block:hover .code-copy,.post-body .code-copy:focus-visible{opacity:1}.post-body .code-copy:hover{background:#1e293bf2}.post-body .code-copy.is-done{background:var(--c-brand,#4f46e5);border-color:#0000}.post-body .code-copy:focus-visible{outline:2px solid var(--c-brand,#4f46e5);outline-offset:2px}@media (hover:none){.post-body .code-copy{opacity:1;min-width:3.25rem;min-height:2.25rem}}.post-body .code-block.is-scrollable:after{content:"";pointer-events:none;border-radius:inherit;background:linear-gradient(90deg,#0f172a00,#0f172ad9);width:3rem;transition:opacity .15s;position:absolute;top:0;bottom:0;right:0}.post-body .code-block.is-scrollable.is-scrolled-end:after{opacity:0}.post-body p,.post-body li{line-height:1.65}@media (width<=640px){.post-body .code-copy{opacity:1;min-width:3.25rem;min-height:2.25rem}#back-to-top{width:2.5rem;height:2.5rem;bottom:.875rem;right:.75rem}}.post-body :is(h2,h3)[id],article :is(h2,h3)[id]{scroll-margin-top:5rem}.post-body table{-webkit-overflow-scrolling:touch;width:max-content;min-width:100%;max-width:100%;display:block;overflow-x:auto}@media (width<=640px){.post-body table{font-size:.9rem}.post-body th,.post-body td{word-break:break-word;padding-left:.5rem;padding-right:.5rem}}.post-body :not(pre)>code{word-break:break-word;background:#0f172a0e;border:1px solid #0f172a14;border-radius:4px;padding:.12em .36em;font-family:JetBrains Mono,ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.85em;font-weight:500}.post-body figure{margin:2rem 0}.post-body figure img{border-radius:12px;width:100%;height:auto;display:block}.post-body figure figcaption{color:var(--c-text-muted,#64748b);text-align:center;margin-top:.5rem;font-size:.78rem;line-height:1.4}.post-body figure figcaption a{color:inherit;text-underline-offset:2px;text-decoration:underline}.post-body figure figcaption a:hover{color:var(--c-brand,#2563eb)}.post-body figure .pin-wrap{position:relative}.post-body figure .pin-it-btn{color:#fff;opacity:0;background:#e60023;border-radius:9999px;padding:.5rem .9rem;font-size:.8125rem;font-weight:600;text-decoration:none;transition:opacity .15s,transform .15s;position:absolute;top:.75rem;right:.75rem;transform:translateY(-4px);box-shadow:0 4px 12px #00000040}.post-body figure .pin-wrap:hover .pin-it-btn,.post-body figure .pin-wrap:focus-within .pin-it-btn{opacity:1;transform:translateY(0)}@media (hover:none){.post-body figure .pin-it-btn{opacity:.9;transform:none}}@media (prefers-reduced-motion:reduce){.post-body figure .pin-it-btn{transition:none}}#main-content>div{max-width:80rem;padding-top:var(--space-6);padding-bottom:var(--space-9)}#main-content>div>nav[aria-label=Breadcrumb]{max-width:calc(var(--toc-w) + var(--space-8) + var(--measure));margin-inline:auto;margin-bottom:var(--space-4);font-size:.875rem}#main-content>div>article{max-width:var(--measure);margin-inline:auto}@media (width>=1024px){#main-content>div>article:has(>nav[aria-label="Table of contents"]){grid-template-columns:var(--toc-w) minmax(0, var(--measure));-moz-column-gap:var(--space-8);column-gap:var(--space-8);justify-content:center;max-width:none;display:grid}#main-content>div>article:has(>nav[aria-label="Table of contents"])>*{grid-column:2;min-width:0}#main-content>div>article:has(>nav[aria-label="Table of contents"])>header{grid-column:1/-1}#main-content>div>article>nav[aria-label="Table of contents"]{grid-area:2/1/span 40;align-self:start;max-height:calc(100dvh - 7.5rem);margin-bottom:0;position:sticky;top:5.5rem;overflow-y:auto}}#main-content article>header{margin-bottom:var(--space-9)}#main-content article>header>h1{font-family:var(--font-display);font-size:var(--text-h1);line-height:var(--lh-h1);letter-spacing:var(--tracking-tight);text-wrap:balance;margin:0;font-weight:700}#main-content article>header>p{font-size:var(--text-body);line-height:var(--lh-body);margin-top:var(--space-3)}#main-content article>header>div{margin-top:var(--space-3);color:var(--c-text-muted);flex-wrap:wrap;row-gap:.25rem;font-size:1rem;font-weight:500}#main-content article>header>div>*{white-space:nowrap}#main-content article>header>img{margin-top:var(--space-4);border:1px solid var(--c-border);border-radius:var(--radius-card)}@media (width>=1024px){#main-content article>header{-moz-column-gap:var(--space-6);column-gap:var(--space-6);grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:center;display:grid}#main-content article>header>*{grid-column:1}#main-content article>header>img{grid-area:1/2/span 6;align-self:center;margin-top:0}}#main-content article>nav[aria-label="Table of contents"]{border-radius:var(--radius-card);padding:var(--space-3);margin-bottom:var(--space-6);border:1px solid var(--c-border)!important;background:0 0!important}#main-content article>nav[aria-label="Table of contents"]>p{font-family:var(--font-display);letter-spacing:var(--tracking-tight);text-transform:none;color:var(--c-text);margin-bottom:var(--space-2);font-size:1.375rem;font-weight:500}#main-content .post-toc-list{border-left:2px solid var(--c-border);padding-left:var(--space-3);gap:0}#main-content .post-toc-list>li{display:block}#main-content .post-toc-list>li:before{content:none}#main-content .post-toc-list>li+li{border-top:0;padding-top:0}#main-content .post-toc-list a{color:var(--c-text-muted);font-size:1rem;font-weight:500;line-height:1.5}#main-content .post-toc-list a:hover{color:var(--c-text)}#main-content .post-tldr{background:var(--c-surface);border-radius:var(--radius-card);margin-bottom:var(--space-6);padding:clamp(1.5rem,4vw,3rem)}#main-content .post-tldr>p:last-child{font-size:var(--text-body);line-height:var(--lh-body);color:var(--c-text)}#main-content .post-body{width:100%;max-width:none;font-size:var(--text-body);line-height:var(--lh-body);margin-inline:0}#main-content .post-body p,#main-content .post-body li{line-height:var(--lh-body)}#main-content .post-body p{margin-top:var(--space-3);margin-bottom:var(--space-3)}#main-content .post-body li{margin-top:var(--space-1);margin-bottom:var(--space-1)}#main-content .post-body :is(h2,h3){font-family:var(--font-display);letter-spacing:var(--tracking-tight);text-wrap:balance}#main-content .post-body h2{font-size:var(--text-h2);line-height:var(--lh-h2);margin-top:var(--space-9);margin-bottom:var(--space-4);font-weight:700}#main-content .post-body h3{font-size:var(--text-h3);line-height:var(--lh-h3);margin-top:var(--space-6);margin-bottom:var(--space-3);font-weight:500}#main-content .post-body h2+h3{margin-top:var(--space-4)}#main-content .post-body :is(h2,h3)[id]{scroll-margin-top:6rem}#main-content .post-body a{text-underline-offset:.25em;font-weight:500;text-decoration-thickness:1px}#main-content .post-body hr{margin-top:var(--space-8);margin-bottom:var(--space-8)}#main-content .post-body figure{margin:var(--space-6) 0}#main-content .post-body figure img{border-radius:var(--radius-card)}#main-content .post-body blockquote{font-size:var(--text-body);line-height:var(--lh-body);margin-top:var(--space-4);margin-bottom:var(--space-4)}#main-content .post-body pre{font-size:var(--text-code);line-height:var(--lh-code);padding:var(--space-3) 3.5rem var(--space-3) var(--space-3);border-radius:var(--radius-card);margin-top:var(--space-4);margin-bottom:var(--space-4)}#main-content .post-body .code-block{margin-top:var(--space-4);margin-bottom:var(--space-4)}#main-content .post-body .code-block>pre{margin:0}#main-content .post-body .code-block+*{margin-top:var(--space-4)}#main-content .post-body .code-copy{top:var(--space-2);right:var(--space-2)}#main-content .post-body :not(pre)>code{font-size:.875rem}#main-content .post-body .cd-takeaway{margin:var(--space-8) 0;padding:var(--space-3) 0 var(--space-3) var(--space-3);border-left:3px solid var(--c-brand,#6366f1);background:0 0;border-radius:0}#main-content .post-body .cd-takeaway__quote{border:0;margin:0;padding:0;font-style:normal}#main-content .post-body .cd-takeaway__quote p{font-family:var(--font-mono,ui-monospace, SFMono-Regular, Menlo, monospace);font-size:var(--text-body);line-height:var(--lh-body);color:var(--c-text,#e2e8f0);margin:0;font-weight:500}#main-content .post-body .cd-takeaway__foot{margin-top:var(--space-2);flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}#main-content .post-body .cd-takeaway__label{font-family:var(--font-mono,ui-monospace, monospace);letter-spacing:.14em;text-transform:uppercase;color:var(--c-text-muted,#94a3b8);font-size:.75rem}#main-content .post-body .cd-takeaway__label:before{content:"> "}#main-content .post-body .cd-takeaway__link{font-family:var(--font-mono,ui-monospace, monospace);color:var(--c-brand,#6366f1);border-bottom:1px solid #0000;align-items:center;gap:.4rem;font-size:.875rem;text-decoration:none;transition:border-color .15s;display:inline-flex}#main-content .post-body .cd-takeaway__link:hover,#main-content .post-body .cd-takeaway__link:focus-visible{border-bottom-color:currentColor}#main-content article>aside.post-sources,#main-content article>.share-cta,#main-content article>aside[data-nosnippet],#main-content article>section,#main-content article>aside{margin-top:var(--space-8);padding-top:var(--space-6)!important}#main-content article>aside.post-sources{border:0;border-top:1px solid var(--c-border);background:0 0;border-radius:0;padding-left:0;padding-right:0}#main-content article>:is(aside,section)>h2{font-family:var(--font-display);letter-spacing:var(--tracking-tight);color:var(--c-text);margin-bottom:var(--space-3);font-size:1.375rem;font-weight:500}#main-content article>section dl{gap:var(--space-3);display:grid}#main-content article>section dt{font-size:var(--text-body);line-height:1.4}#main-content article>section dd{line-height:var(--lh-body)}#main-content article>aside>.grid{gap:var(--space-3)}#main-content article>aside>.grid>a{border:2px solid var(--c-border);border-radius:var(--radius-card)}#main-content article>aside>.grid>a>div>p:first-of-type{font-family:var(--font-display);letter-spacing:var(--tracking-tight);font-weight:500;line-height:1.333}@media (prefers-reduced-motion:reduce){#main-content .post-body .cd-takeaway__link{transition:none}}.post-body .cd-guide-soon{vertical-align:baseline;font-family:var(--font-mono,ui-monospace, monospace);letter-spacing:.06em;text-transform:uppercase;white-space:nowrap;color:var(--c-text-secondary,#475569);background:var(--c-surface,#f0f0fa);border:1px solid var(--c-border,#e2e1f0);border-radius:9999px;padding:.05rem .5rem;font-size:.72rem;font-weight:600;display:inline-block}.post-body .cd-ad{border:1px solid var(--c-border,#e2e1f0);background:#fff;border-radius:14px;margin:2.75rem 0;transition:box-shadow .22s,transform .22s;overflow:hidden}.post-body .cd-ad:hover{transform:translateY(-3px);box-shadow:0 10px 36px -8px #0a0e1a21}.post-body .cd-ad-media{aspect-ratio:16/9;border-bottom:1px solid var(--c-border,#e2e1f0);background:#fff;justify-content:center;align-items:center;display:flex}.post-body .cd-ad-img{-o-object-fit:contain;object-fit:contain;width:auto;max-width:62%;height:100%;max-height:100%;padding:.9rem 0}.post-body .cd-ad-body{flex-direction:column;gap:.35rem;padding:1.25rem 1.25rem 1rem;display:flex}.post-body .cd-ad-label{font-family:var(--font-body,inherit);letter-spacing:.12em;text-transform:uppercase;color:var(--c-brand,#4f46e5);align-self:flex-start;padding-block:2px;font-size:.875rem;font-weight:700;display:inline-block}.post-body .cd-ad-title{font-family:var(--font-display,inherit);color:var(--c-text,#0d0e1a);margin:.1rem 0 0;font-size:1.1rem;font-weight:700;line-height:1.25}.post-body .cd-ad-note{font-family:var(--font-body,inherit);color:var(--c-text-secondary,#475569);margin:0;font-size:1rem;line-height:1.62}.post-body .cd-ad-footer{border-top:1px solid var(--c-border,#e2e1f0);align-items:center;margin-top:.75rem;padding-top:.75rem;display:flex}.post-body .cd-ad-cta{background:var(--c-brand-dark,#4338ca);color:#fff;border-radius:6px;align-items:center;gap:.3rem;min-height:44px;padding:.5rem .9rem;font-size:.9rem;font-weight:600;text-decoration:none;display:inline-flex}.post-body .cd-ad-cta:hover,.post-body .cd-ad-cta:focus-visible{background:var(--c-brand,#4f46e5)}.post-body .cd-ad-disclosure{color:var(--c-text-secondary,#475569);margin:.75rem 0 0;font-size:.78rem;line-height:1.5}.post-body .cd-ad-disclosure a{color:var(--c-brand-dark,#4338ca)}.post-body .cd-ad-sr{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@media (prefers-reduced-motion:reduce){.post-body .cd-ad{transition:none}.post-body .cd-ad:hover{transform:none}}@media (width<=640px){.post-body .cd-ad-media{aspect-ratio:3/2}.post-body .cd-ad-img{max-width:78%}}
