.blog-root{--blog-col:39rem;--blog-wide:61rem;--blog-title-w:56rem;--blog-gutter:1.5rem;--blog-size-caption:0.8125rem;--blog-size-axis:0.6875rem;--blog-size-label:0.8125rem;--blog-size-meta:0.9375rem;--blog-size-body:1.0625rem;--blog-size-lede:1.375rem;--blog-size-h3:1.0625rem;--blog-size-h2:1.5rem;--blog-size-quote:1.625rem;--blog-size-stat:3.5rem;--blog-size-title:3rem;--blog-leading-body:1.6;--blog-display:var(--title-family);--blog-display-weight:var(--title-weight,600);--blog-mono:ui-monospace,"Cascadia Code","SF Mono",Menlo,Consolas,monospace;--blog-ink:rgb(var(--color-text-primary));--blog-ink-body:rgb(var(--color-text-primary)/0.86);--blog-ink-2:rgb(var(--color-text-secondary));--blog-ink-3:rgb(var(--color-text-tertiary));--blog-hair:rgb(var(--color-text-primary)/0.08);--blog-hair-strong:rgb(var(--color-text-primary)/0.14);--blog-fill:rgb(var(--color-text-primary)/0.035);--blog-fill-2:rgb(var(--color-text-primary)/0.07);--blog-accent:rgb(var(--color-accent));--blog-primary:rgb(var(--color-primary));--blog-on-primary:rgb(var(--color-text-on-primary));--blog-chart-accent:rgb(var(--color-accent));--blog-chart-muted:rgb(var(--color-text-primary)/0.34);--blog-chart-line-2:rgb(var(--color-text-primary));--blog-chart-grid:rgb(var(--color-text-primary)/0.06);--blog-chart-axis:rgb(var(--color-text-primary)/0.18);--blog-chart-ground:rgb(var(--color-bg-app));--blog-p-gap:1.25rem;--blog-fig-gap:3rem;--blog-h2-top:3.5rem;--blog-h3-top:1.75rem;--blog-radius:1rem;--blog-radius-sm:0.5rem;--blog-nav-h:4.25rem;font-family:var(--type-text-stack);background:rgb(var(--color-bg-app));color:var(--blog-ink)}.blog-root .blog-index,.blog-root .blog-post{padding-top:calc(var(--blog-nav-h) + clamp(3rem, 4cqw, 5rem));padding-bottom:clamp(3rem,4cqw,5rem)}.blog-root .blog-col{width:min(var(--blog-col),100% - 2 * var(--blog-gutter));margin-inline:auto}.blog-root .blog-wide{width:min(var(--blog-wide),100% - 2 * var(--blog-gutter));margin-inline:auto}.blog-root .blog-body .blog-col{width:100%}.blog-root .blog-head{text-align:center}.blog-root .blog-crumbs{display:flex;justify-content:center;align-items:center;gap:.5rem;margin:0 0 2rem;font-size:var(--blog-size-label);line-height:1.5;color:var(--blog-ink-3)}.blog-root .blog-crumbs a{color:inherit;text-decoration:none}.blog-root .blog-crumbs a:hover{color:var(--blog-ink)}.blog-root .blog-crumbs-sep{color:rgb(var(--color-text-primary)/.28)}.blog-root .blog-title{width:min(var(--blog-title-w),100% - 2 * var(--blog-gutter));margin:0 auto;font-family:var(--blog-display);font-weight:var(--blog-display-weight);font-size:var(--blog-size-title);line-height:1.04;letter-spacing:-.03em;text-wrap:balance;color:var(--blog-ink)}.blog-root .blog-cover-slot{margin-top:3rem}.blog-root .blog-meta{display:flex;justify-content:center;align-items:center;gap:.625rem;margin:1.5rem 0 0;font-size:var(--blog-size-meta);line-height:1.6;color:var(--blog-ink-3)}.blog-root .blog-meta-dot{color:rgb(var(--color-text-primary)/.28)}.blog-root .blog-cover{position:relative;overflow:hidden;container-type:inline-size;aspect-ratio:var(--blog-cover-ratio,2.44);border-radius:var(--blog-radius);border:1px solid var(--blog-hair);background:var(--blog-fill)}.blog-root .blog-cover[data-kind=brand]{border-color:transparent;background:var(--blog-primary);color:var(--blog-on-primary)}.blog-root .blog-cover>img,.blog-root .blog-cover>svg{position:absolute;inset:0;width:100%;height:100%;display:block}.blog-root .blog-cover>img{object-fit:cover}.blog-root .blog-cover-lines .blog-cover-line{stroke:rgb(var(--color-text-primary)/.3);stroke-width:1;vector-effect:non-scaling-stroke;shape-rendering:crispEdges}.blog-root .blog-cover-lines .blog-cover-line[data-lit]{stroke:var(--blog-accent);stroke-width:1.5;shape-rendering:auto}.blog-root .blog-cover[data-tile] .blog-cover-line{stroke-width:1;shape-rendering:auto}.blog-root .blog-cover-brand{position:absolute;inset:0;display:flex;align-items:center;justify-content:center}.blog-root .blog-cover-brand .lp-lockup{--lp-h:clamp(1rem,5.75cqw,3.5rem);color:var(--blog-on-primary)}.blog-root .blog-cover-brand .blog-cover-mark{display:none;width:22%;height:auto;color:var(--blog-on-primary)}@container (max-width: 399px){.blog-root .blog-cover-brand .lp-lockup{display:none}.blog-root .blog-cover-brand .blog-cover-mark{display:block}}.blog-root .blog-cover[data-tile]{aspect-ratio:1;border-radius:var(--blog-radius-sm)}.blog-root .blog-cover[data-tile] .blog-cover-brand .blog-cover-mark{display:block;width:50%}.blog-root .blog-cover[data-tile] .blog-cover-brand .lp-lockup{display:none}.blog-root .blog-lede{margin:4.75rem auto 0;font-size:var(--blog-size-lede);line-height:1.4;font-weight:500;letter-spacing:-.012em;color:var(--blog-ink)}.blog-root .blog-lede p{margin:0}.blog-root .blog-lede p+p{margin-top:1rem}.blog-root .blog-facts{display:flex;flex-wrap:wrap;gap:1rem 3rem;margin:2rem auto 0;padding-top:1.5rem;border-top:1px solid var(--blog-hair)}.blog-root .blog-fact{display:flex;flex-direction:column;gap:.25rem;min-width:6rem}.blog-root .blog-fact-label{font-size:var(--blog-size-label);font-weight:500;line-height:1.4;color:var(--blog-ink)}.blog-root .blog-fact-value{margin:0;font-size:var(--blog-size-meta);line-height:1.4;color:var(--blog-ink-3);font-variant-numeric:tabular-nums}.blog-root .blog-fact-value a{color:inherit;text-decoration:none}.blog-root .blog-fact-value a:hover{color:var(--blog-ink)}.blog-root .blog-toc{margin:2rem auto 0;padding-top:1.5rem;border-top:1px solid var(--blog-hair)}.blog-root .blog-toc-title{margin:0 0 .625rem;font-size:var(--blog-size-label);font-weight:500;line-height:1.4;color:var(--blog-ink)}.blog-root .blog-toc ol{margin:0;padding-left:1.5rem;column-count:2;column-gap:2.5rem;list-style:decimal;font-size:var(--blog-size-meta);line-height:1.6;color:var(--blog-ink-3)}.blog-root .blog-toc li{padding-left:.25rem;break-inside:avoid}.blog-root .blog-toc li::marker{color:var(--blog-ink-3);font-variant-numeric:tabular-nums}.blog-root .blog-toc a{color:var(--blog-ink-body);text-decoration:none}.blog-root .blog-toc a:hover{color:var(--blog-ink);text-decoration:underline;text-decoration-color:rgb(var(--color-text-primary)/.32);text-underline-offset:.2em}.blog-root .blog-body .blog-fact-value a,.blog-root .blog-body .blog-toc a{color:var(--blog-ink-body);text-decoration:none}.blog-root .blog-body .blog-fact-value a{color:inherit}.blog-root .blog-body .blog-fact-value a:hover,.blog-root .blog-body .blog-toc a:hover{color:var(--blog-ink)}.blog-root .blog-body .blog-toc a:hover{text-decoration:underline;text-decoration-color:rgb(var(--color-text-primary)/.32)}.blog-root .blog-body>:is(.blog-facts,.blog-toc){margin-top:2rem}.blog-root .blog-body>:is(.blog-facts,.blog-toc):first-child{margin-top:-1rem}.blog-root .blog-body>:is(.blog-facts,.blog-toc)+*{margin-top:3rem}.blog-root .blog-body>.blog-facts+.blog-toc{margin-top:2rem}.blog-root .blog-body{margin-top:3rem;font-size:var(--blog-size-body);line-height:var(--blog-leading-body);color:var(--blog-ink-body)}.blog-root .blog-body>*{margin-block:0}.blog-root .blog-body>*+*{margin-top:var(--blog-p-gap)}.blog-root .blog-body h2{margin-top:var(--blog-h2-top);margin-bottom:0;font-family:var(--blog-display);font-weight:var(--blog-display-weight);font-size:var(--blog-size-h2);line-height:1.33;letter-spacing:-.015em;color:var(--blog-ink);scroll-margin-top:calc(var(--blog-nav-h) + 1.5rem)}.blog-root .blog-body h2+*{margin-top:1rem}.blog-root .blog-body h3,.blog-root .blog-body h4{margin-top:var(--blog-h3-top);font-family:var(--blog-display);font-weight:var(--blog-display-weight);font-size:var(--blog-size-h3);line-height:1.4;letter-spacing:-.015em;color:var(--blog-ink);scroll-margin-top:calc(var(--blog-nav-h) + 1.5rem)}.blog-root .blog-body h3+*,.blog-root .blog-body h4+*{margin-top:.5rem}.blog-root .blog-body a{color:var(--blog-ink);text-decoration:underline;text-decoration-color:rgb(var(--color-text-primary)/.32);text-decoration-thickness:1px;text-underline-offset:.2em;transition:text-decoration-color .15s ease}.blog-root .blog-body a:hover{text-decoration-color:var(--blog-ink)}.blog-root .blog-body strong{font-weight:600;color:var(--blog-ink)}.blog-root .blog-body em{font-style:italic}.blog-root .blog-body ul{list-style:disc;padding-left:1.5rem}.blog-root .blog-body ol{list-style:decimal;padding-left:1.5rem}.blog-root .blog-body li{padding-left:.25rem}.blog-root .blog-body li+li,.blog-root .blog-body li>ol,.blog-root .blog-body li>ul{margin-top:.5rem}.blog-root .blog-body li::marker{color:var(--blog-ink-3);font-variant-numeric:tabular-nums}.blog-root .blog-body kbd{display:inline-block;padding:0 .4em;border:solid var(--blog-hair-strong);border-width:1px 1px 2px;border-radius:.3em;font-family:inherit;font-size:.8125em;font-weight:500;line-height:1.5;color:var(--blog-ink);vertical-align:.06em}.blog-root .blog-body code{font-size:.875em;padding:.1em .3em;border:1px solid var(--blog-hair);border-radius:.3em;background:var(--blog-fill-2)}.blog-root .blog-body code,.blog-root .blog-body pre{font-family:var(--blog-mono);color:var(--blog-ink-body)}.blog-root .blog-body pre{margin-block:1.5rem;padding:1.125rem 1.25rem;overflow-x:auto;border:1px solid var(--blog-hair);border-radius:var(--blog-radius-sm);background:rgb(var(--color-bg-base)/.55);font-size:.8125rem;line-height:1.65;tab-size:2}.blog-root .blog-body pre code{padding:0;border:0;border-radius:0;background:none;font-size:inherit;color:inherit}.blog-root .blog-body blockquote{margin:1.5rem 0;padding-left:1.25rem;border-left:1px solid var(--blog-hair-strong);color:var(--blog-ink-2)}.blog-root .blog-body>p>img{display:block;width:100%;height:auto;margin-block:var(--blog-fig-gap);border:1px solid var(--blog-hair);border-radius:var(--blog-radius)}.blog-root .blog-body table{width:100%;margin-block:1.5rem;border-collapse:collapse;font-size:.9375rem;line-height:1.5;font-variant-numeric:tabular-nums}.blog-root .blog-body th{padding:0 .75rem .625rem 0;text-align:left;font-size:var(--blog-size-label);font-weight:500;color:var(--blog-ink-3);border-bottom:1px solid var(--blog-hair-strong)}.blog-root .blog-body td{padding:.6875rem .75rem .6875rem 0;vertical-align:top;border-bottom:1px solid var(--blog-hair);color:var(--blog-ink-body)}.blog-root .blog-body td:first-child{color:var(--blog-ink)}.blog-root .blog-body td:last-child,.blog-root .blog-body th:last-child{padding-right:0}.blog-root .blog-body td+td,.blog-root .blog-body th+th{padding-left:1.5rem}.blog-root .blog-body td[align=right],.blog-root .blog-body td[style*="text-align: right"],.blog-root .blog-body th[align=right],.blog-root .blog-body th[style*="text-align: right"]{text-align:right}.blog-root .blog-body td[align=center],.blog-root .blog-body th[align=center]{text-align:center}.blog-root .blog-body hr{width:4rem;margin:2.5rem auto;border:0;border-top:1px solid var(--blog-hair-strong)}.blog-root .blog-fn{font-size:.7em;line-height:0;vertical-align:.6em;margin-left:.1em}.blog-root .blog-body a.blog-fn,.blog-root .blog-fn{color:var(--blog-ink-3);text-decoration:none}.blog-root .blog-footnotes{margin-top:3rem;padding-top:1.25rem;border-top:1px solid var(--blog-hair);font-size:var(--blog-size-caption);line-height:1.55;color:var(--blog-ink-3)}.blog-root .blog-footnotes ol{margin:0;padding-left:1.25rem}.blog-root .blog-footnotes li+li{margin-top:.375rem}.blog-root .blog-quote{margin-block:2.5rem}.blog-root .blog-quote p{margin:0;font-family:var(--blog-display);font-weight:500;font-size:var(--blog-size-quote);line-height:1.3;letter-spacing:-.014em;color:var(--blog-ink);text-indent:-.42em}.blog-root .blog-quote-by{margin-top:.875rem;font-size:var(--blog-size-meta);line-height:1.5;color:var(--blog-ink-3)}.blog-root .blog-figure{margin:0}.blog-root .blog-body>.blog-figure{margin-block:var(--blog-fig-gap)}.blog-root .blog-figure[data-size=wide]{--blog-w:min(var(--blog-wide),100cqw - 2 * var(--blog-gutter));width:var(--blog-w);margin-inline:calc(50% - var(--blog-w) / 2)}.blog-root .blog-figure[data-size=body]{width:100%}.blog-root .blog-frame{position:relative;overflow:hidden;border:1px solid var(--blog-hair);border-radius:var(--blog-radius);background:rgb(var(--color-bg-base)/.3)}.blog-root .blog-frame[data-pad]{padding:1.5rem 1.75rem 1.375rem}.blog-root .blog-frame>img,.blog-root .blog-frame>video{display:block;width:100%;height:auto}.blog-root .blog-figure-stage{position:relative;width:100%;overflow:hidden}.blog-root .blog-figure-overlay{position:absolute;inset:0;pointer-events:none}.blog-root .blog-caption{width:min(var(--blog-col),100%);margin:.8125rem auto 0;font-size:var(--blog-size-caption);line-height:1.5;color:var(--blog-ink-3)}.blog-root .blog-caption strong{font-weight:500;color:var(--blog-ink-2)}.blog-root .blog-sample{position:absolute;top:.75rem;right:.875rem;z-index:1;padding:.1875rem .5rem;border:1px solid rgb(var(--color-warning)/.5);border-radius:999px;font-size:var(--blog-size-axis);line-height:1.3;font-weight:500;letter-spacing:.01em;color:rgb(var(--color-warning));background:rgb(var(--color-bg-app)/.7);pointer-events:none}.blog-root .blog-figure[data-bare]{position:relative}.blog-root .blog-chart{font-variant-numeric:tabular-nums}.blog-root .blog-chart svg{display:block;width:100%;overflow:visible}.blog-root .blog-chart text{font-family:inherit}.blog-root .blog-chart .blog-axis-label,.blog-root .blog-chart text{fill:var(--blog-ink-3);font-size:var(--blog-size-axis)}.blog-root .blog-chart .blog-grid{stroke:var(--blog-chart-grid);stroke-width:1;shape-rendering:crispEdges}.blog-root .blog-chart .blog-axis{stroke:var(--blog-chart-axis);stroke-width:1;shape-rendering:crispEdges}.blog-root .blog-chart .blog-series-line{fill:none;stroke-width:2;stroke-linejoin:round;stroke-linecap:round}.blog-root .blog-chart .blog-series-line[data-role=accent]{stroke:var(--blog-chart-accent)}.blog-root .blog-chart .blog-series-line[data-role=neutral]{stroke:var(--blog-chart-line-2);stroke-width:1.5}.blog-root .blog-chart .blog-series-area[data-role=accent]{fill:url(#blog-area-accent)}.blog-root .blog-chart .blog-series-area[data-role=neutral]{fill:rgb(var(--color-text-primary)/.06)}.blog-root .blog-chart .blog-end-dot{stroke:var(--blog-chart-ground);stroke-width:2}.blog-root .blog-chart .blog-end-dot[data-role=accent]{fill:var(--blog-chart-accent)}.blog-root .blog-chart .blog-end-dot[data-role=neutral]{fill:var(--blog-chart-line-2)}.blog-root .blog-chart .blog-end-label{font-size:var(--blog-size-caption);font-weight:500;fill:var(--blog-ink)}.blog-root .blog-chart .blog-end-detail{font-size:.75rem;font-weight:400;fill:var(--blog-ink-3)}.blog-root .blog-chart .blog-leader{stroke:var(--blog-chart-axis);stroke-width:1}.blog-root .blog-chart .blog-bar[data-role=accent]{fill:var(--blog-chart-accent)}.blog-root .blog-chart .blog-bar[data-role=neutral]{fill:var(--blog-chart-muted)}.blog-root .blog-legend{display:flex;flex-wrap:wrap;align-items:center;gap:.375rem 1.125rem;margin-top:1rem;font-size:var(--blog-size-caption);line-height:1.4;color:var(--blog-ink-3)}.blog-root .blog-legend-item{display:inline-flex;align-items:center;gap:.5rem;color:var(--blog-ink);font-weight:500}.blog-root .blog-legend-item small{font-size:inherit;font-weight:400;color:var(--blog-ink-3)}.blog-root .blog-swatch{width:.5rem;height:.5rem;border-radius:999px;flex:none}.blog-root .blog-swatch[data-role=accent]{background:var(--blog-chart-accent)}.blog-root .blog-swatch[data-role=neutral]{background:var(--blog-chart-muted)}.blog-root .blog-swatch[data-role=neutral][data-kind=line]{background:var(--blog-chart-line-2)}.blog-root .blog-key{display:grid;gap:.5rem;margin-top:1rem}.blog-root .blog-key-item{display:grid;grid-template-columns:auto 1fr;column-gap:.625rem;align-items:baseline;font-size:var(--blog-size-caption);line-height:1.4}.blog-root .blog-key-item .blog-swatch{position:relative;top:-.0625rem}.blog-root .blog-key-item b{font-weight:500;color:var(--blog-ink)}.blog-root .blog-key-item span,.blog-root .blog-steps{color:var(--blog-ink-3)}.blog-root .blog-steps{padding:1.25rem 1.375rem 1.125rem;border:1px solid var(--blog-hair);border-radius:var(--blog-radius);background:rgb(var(--color-bg-base)/.3);font-size:var(--blog-size-caption);line-height:1.4}.blog-root .blog-steps-head{display:grid;gap:.375rem;padding-bottom:1rem;margin-bottom:.875rem;border-bottom:1px solid var(--blog-hair)}.blog-root .blog-steps-title{display:flex;align-items:baseline;gap:.5rem;font-weight:500;color:var(--blog-ink)}.blog-root .blog-steps-title small{font-size:inherit;font-weight:400;color:var(--blog-ink-3)}.blog-root .blog-steps-meta{display:flex;gap:.375rem}.blog-root .blog-steps-meta b{font-weight:500;color:var(--blog-ink-2)}.blog-root .blog-step{display:grid;grid-template-columns:minmax(0,9.5rem) minmax(0,1fr) 3.25rem;column-gap:.75rem;align-items:center;min-height:1.625rem}.blog-root .blog-step+.blog-step{margin-top:.125rem}.blog-root .blog-step-label{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;color:var(--blog-ink-body)}.blog-root .blog-step-track{position:relative;height:.625rem}.blog-root .blog-step-bar{position:absolute;top:0;bottom:0;left:var(--x);width:max(var(--w),2px);border-radius:2px;background:var(--blog-chart-accent)}.blog-root .blog-step-value{text-align:right;color:var(--blog-ink-3)}.blog-root .blog-twoup{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.blog-root .blog-stat-row{display:grid;grid-template-columns:repeat(var(--blog-stat-n,1),minmax(0,1fr));gap:1.5rem 2rem}.blog-root .blog-stat{display:grid;gap:.375rem;font-variant-numeric:normal}.blog-root .blog-stat-value{font-family:var(--blog-display);font-weight:var(--blog-display-weight);font-size:var(--blog-size-stat);line-height:1;letter-spacing:-.03em;color:var(--blog-ink)}.blog-root .blog-stat-value small{font-size:.5em;font-weight:500;letter-spacing:-.01em;margin-left:.16em;color:var(--blog-ink-2)}.blog-root .blog-stat-label{font-size:var(--blog-size-meta);line-height:1.4;font-weight:500;color:var(--blog-ink)}.blog-root .blog-stat-note{font-size:var(--blog-size-caption);line-height:1.5;color:var(--blog-ink-3)}.blog-root .blog-bars-sub{margin-bottom:1.125rem;font-size:var(--blog-size-label);font-weight:500;line-height:1.4;color:var(--blog-ink-3)}.blog-root .blog-bars{--blog-bars-label-w:9.5rem;--blog-bars-h:0.75rem;font-size:var(--blog-size-caption);line-height:1.4;color:var(--blog-ink-3)}.blog-root .blog-bars-row{display:grid;grid-template-columns:minmax(0,var(--blog-bars-label-w)) minmax(0,1fr) auto;align-items:center;min-height:2.5rem}.blog-root .blog-bars[data-grouped] .blog-bars-row{min-height:2.75rem}.blog-root .blog-bars-row[data-axis]{min-height:1.25rem;align-items:start}.blog-root .blog-bars-label{display:grid;padding-right:.75rem;line-height:1.3;color:var(--blog-ink-body)}.blog-root .blog-bars-label,.blog-root .blog-bars-label small{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.blog-root .blog-bars-row[data-role=accent] .blog-bars-label{font-weight:500;color:var(--blog-ink)}.blog-root .blog-bars-label small{font-size:.75rem;font-weight:400;color:var(--blog-ink-3)}.blog-root .blog-bars-track{position:relative;align-self:stretch;display:flex;flex-direction:column;justify-content:center;gap:.1875rem;padding-block:.5rem}.blog-root .blog-bars-rules{position:absolute;inset:0;pointer-events:none}.blog-root .blog-bars-rules[data-first]{top:-.25rem}.blog-root .blog-bars-rules[data-last]{bottom:-.25rem}.blog-root .blog-bars-rule{position:absolute;top:0;bottom:0;width:1px;background:var(--blog-chart-grid)}.blog-root .blog-bars-rule[data-zero]{background:var(--blog-chart-axis)}.blog-root .blog-bars-lane{position:relative;height:var(--blog-bars-h)}.blog-root .blog-bars-bar{position:absolute;top:0;bottom:0;left:0;min-width:2px;border-radius:0 3px 3px 0}.blog-root .blog-bars-bar[data-role=accent]{background:var(--blog-chart-accent)}.blog-root .blog-bars-bar[data-role=neutral]{background:var(--blog-chart-muted)}.blog-root .blog-bars-value{position:absolute;top:50%;translate:0 -50%;padding-left:.5rem;white-space:nowrap;line-height:1}.blog-root .blog-bars-sizer{padding-left:.5rem;white-space:nowrap;visibility:hidden;pointer-events:none}.blog-root .blog-bars-sizer b,.blog-root .blog-bars-value b{font-weight:500;color:var(--blog-ink-2)}.blog-root .blog-bars-row[data-role=accent] .blog-bars-value b,.blog-root .blog-bars[data-grouped] .blog-bars-value b{color:var(--blog-ink)}.blog-root .blog-bars-sizer small,.blog-root .blog-bars-value small{margin-left:.2em;font-size:inherit;font-weight:400;color:var(--blog-ink-3)}.blog-root .blog-bars-axis{position:relative;height:1.25rem}.blog-root .blog-bars-tick{top:.375rem;translate:-50% 0;white-space:nowrap;font-variant-numeric:tabular-nums;color:var(--blog-ink-3)}.blog-root .blog-bars-tick,.blog-root .blog-marker{position:absolute;font-size:var(--blog-size-axis);line-height:1}.blog-root .blog-marker{display:inline-flex;align-items:center;justify-content:center;width:1.375rem;height:1.375rem;translate:-50% -50%;border-radius:999px;background:var(--blog-accent);box-shadow:0 0 0 2px rgb(var(--color-bg-app));font-weight:600;font-variant-numeric:tabular-nums;color:var(--blog-on-primary)}.blog-root .blog-marker[data-inline]{position:static;flex:none;width:1.125rem;height:1.125rem;translate:none;box-shadow:none;font-size:.625rem}.blog-root .blog-key-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.375rem 1.5rem;width:min(var(--blog-col),100%);margin:.625rem auto 0;padding:0;list-style:none;font-size:var(--blog-size-caption);line-height:1.5;color:var(--blog-ink-3)}.blog-root .blog-key-list li{display:flex;align-items:flex-start;gap:.5rem;padding:0}.blog-root .blog-key-list .blog-marker{margin-top:.0625rem}.blog-root .blog-compare-pane{display:grid;gap:.625rem}.blog-root .blog-compare-label{font-size:var(--blog-size-label);font-weight:500;line-height:1.4;color:var(--blog-ink)}.blog-root .blog-body>.blog-table-wrap{--blog-w:min(var(--blog-wide),100cqw - 2 * var(--blog-gutter));width:var(--blog-w);margin-block:1.5rem;margin-inline:calc(50% - var(--blog-w) / 2);overflow-x:auto;-webkit-overflow-scrolling:touch}.blog-root .blog-table-wrap table{margin-block:0}.blog-root .blog-callout{margin-block:1.75rem;padding:1rem 1.25rem 1.0625rem;border:1px solid var(--blog-hair);border-radius:var(--blog-radius-sm);background:var(--blog-fill);font-size:.9375rem;line-height:1.55;color:var(--blog-ink-body)}.blog-root .blog-callout-title{display:flex;align-items:center;gap:.5rem;margin:0 0 .375rem;font-size:var(--blog-size-label);font-weight:500;line-height:1.4;color:var(--blog-ink)}.blog-root .blog-callout-title:before{content:"";width:.375rem;height:.375rem;border-radius:999px;background:var(--blog-accent)}.blog-root .blog-callout p{margin:0}.blog-root .blog-callout p+p{margin-top:.5rem}.blog-root .blog-prevnext{display:flex;justify-content:space-between;gap:1.5rem;margin-top:4rem;padding-top:2.5rem;border-top:1px solid var(--blog-hair)}.blog-root .blog-pn{display:flex;align-items:center;gap:1rem;max-width:48%;text-decoration:none;color:inherit}.blog-root .blog-pn[data-dir=next]{flex-direction:row-reverse;text-align:right}.blog-root .blog-pn-tile{flex:none;width:3rem}.blog-root .blog-pn-dir{font-size:var(--blog-size-meta);line-height:1.4;color:var(--blog-ink-3)}.blog-root .blog-pn-title{display:block;margin-top:.125rem;font-family:var(--blog-display);font-size:var(--blog-size-body);line-height:1.35;font-weight:500;letter-spacing:-.01em;color:var(--blog-ink)}.blog-root .blog-pn:hover .blog-pn-title{text-decoration:underline;text-decoration-color:rgb(var(--color-text-primary)/.32);text-underline-offset:.2em}.blog-root .blog-index-title{margin:0;font-family:var(--blog-display);font-weight:var(--blog-display-weight);font-size:var(--blog-size-title);line-height:1.04;letter-spacing:-.03em;color:var(--blog-ink)}.blog-root .blog-index-bar{display:flex;flex-wrap:wrap;align-items:center;gap:1rem 2rem;margin-top:1.5rem}.blog-root .blog-index-tabs{display:flex;flex-wrap:wrap;gap:0 1.25rem}.blog-root .blog-index-tab{padding:0;border:0;background:none;font:inherit;font-size:var(--blog-size-label);line-height:2rem;color:var(--blog-ink-2);cursor:pointer;transition:color .12s ease}.blog-root a.blog-index-tab{display:inline-block;text-decoration:none}.blog-root .blog-index-tab:hover,.blog-root .blog-index-tab[aria-current=page],.blog-root .blog-index-tab[aria-pressed=true]{color:var(--blog-ink)}.blog-root .blog-index-tab:focus-visible{outline:2px solid var(--blog-accent);outline-offset:2px;border-radius:2px}.blog-root .blog-index-search{display:flex;align-items:center;gap:.5rem;width:14rem;height:2rem;margin-left:auto;padding-inline:.75rem;border:1px solid var(--blog-hair);border-radius:999px;background:var(--blog-fill);color:var(--blog-ink-3);transition:border-color .12s ease}.blog-root .blog-index-search:focus-within{border-color:var(--blog-hair-strong)}.blog-root .blog-index-search svg{flex:none}.blog-root .blog-index-search input{flex:1;min-width:0;height:100%;padding:0;border:0;outline:0;background:none;font:inherit;font-size:var(--blog-size-label);color:var(--blog-ink)}.blog-root .blog-index-search input::placeholder{color:var(--blog-ink-3)}.blog-root .blog-index-search input::-webkit-search-cancel-button{-webkit-appearance:none}.blog-root .blog-index-grid{--blog-index-gap:3rem;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:3.5rem var(--blog-index-gap);margin-top:2.5rem;padding:0;list-style:none}.blog-root .blog-index-card{position:relative;min-width:0}.blog-root .blog-index-card:before{content:"";position:absolute;top:0;bottom:0;left:calc(var(--blog-index-gap) / -2);border-left:1px solid var(--blog-hair)}.blog-root .blog-index-card:nth-child(3n+1):before{display:none}.blog-root .blog-index-link{display:flex;flex-direction:column;height:100%;color:inherit;text-decoration:none}.blog-root .blog-index-cover{display:block}.blog-root .blog-index-cover .blog-cover{border-radius:var(--blog-radius-sm)}.blog-root .blog-index-h{margin-top:1.25rem;font-family:var(--blog-display);font-weight:var(--blog-display-weight);font-size:1.0625rem;line-height:1.3;letter-spacing:-.01em;color:var(--blog-ink);text-wrap:pretty}.blog-root .blog-index-link:hover .blog-index-h{text-decoration:underline;text-decoration-color:rgb(var(--color-text-primary)/.32);text-underline-offset:.2em}.blog-root .blog-index-desc{margin-top:.5rem;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;overflow:hidden;font-size:var(--blog-size-meta);line-height:1.5;color:var(--blog-ink-2)}.blog-root .blog-index-meta{display:flex;align-items:center;gap:.375rem;margin-top:auto;padding-top:1.5rem;font-size:var(--blog-size-label);line-height:1.5;color:var(--blog-ink-3)}.blog-root .blog-index-empty{margin-top:3rem;font-size:var(--blog-size-meta);color:var(--blog-ink-3)}@container (max-width: 899px){.blog-root .blog-index-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.blog-root .blog-index-card:nth-child(3n+1):before{display:block}.blog-root .blog-index-card:nth-child(odd):before{display:none}}@container (max-width: 719px){.blog-root .blog-stat-row,.blog-root .blog-twoup{grid-template-columns:minmax(0,1fr)}.blog-root .blog-body>.blog-table-wrap{background:linear-gradient(to right,rgb(var(--color-bg-app)) 40%,rgb(var(--color-bg-app)/0)) 0 /2.5rem 100% no-repeat local,linear-gradient(to left,rgb(var(--color-bg-app)) 40%,rgb(var(--color-bg-app)/0)) 100% /2.5rem 100% no-repeat local,linear-gradient(to right,rgb(var(--color-text-primary)/.07),rgb(var(--color-text-primary)/0)) 0 /1rem 100% no-repeat scroll,linear-gradient(to left,rgb(var(--color-text-primary)/.07),rgb(var(--color-text-primary)/0)) 100% /1rem 100% no-repeat scroll}.blog-root .blog-table-wrap table{min-width:44rem}}@container (max-width: 639px){.blog-root{--blog-size-title:2rem;--blog-size-body:0.9375rem;--blog-size-lede:1.1875rem;--blog-size-h2:1.25rem;--blog-size-h3:1rem;--blog-size-quote:1.3125rem;--blog-size-stat:2.75rem;--blog-fig-gap:2rem;--blog-h2-top:2.75rem;--blog-cover-ratio:1.85}.blog-root .blog-index-title,.blog-root .blog-title{line-height:1.125}.blog-root .blog-cover-slot{margin-top:2rem}.blog-root .blog-lede{margin-top:3rem}.blog-root .blog-facts{gap:1rem 2rem}.blog-root .blog-toc ol{column-count:1}.blog-root .blog-frame[data-pad]{padding:1.125rem 1rem 1rem}.blog-root .blog-steps{padding:1rem 1rem .875rem}.blog-root .blog-step{grid-template-columns:minmax(0,7.5rem) minmax(0,1fr) 3rem;column-gap:.5rem}.blog-root .blog-key-list{grid-template-columns:minmax(0,1fr)}.blog-root .blog-bars{--blog-bars-label-w:6.5rem;--blog-bars-h:0.625rem}.blog-root .blog-marker{width:1.25rem;height:1.25rem;font-size:.625rem}.blog-root .blog-prevnext{flex-direction:column;gap:1.25rem;margin-top:3rem;padding-top:2rem}.blog-root .blog-pn{max-width:none}.blog-root .blog-pn[data-dir=next]{flex-direction:row;text-align:left}.blog-root .blog-body pre{font-size:.75rem}.blog-root .blog-body table{font-size:.875rem}.blog-root .blog-body td:first-child{white-space:nowrap}.blog-root .blog-body td+td,.blog-root .blog-body th+th{padding-left:1rem}.blog-root .blog-index-tabs{flex:0 0 calc(100% + 2 * var(--blog-gutter));flex-wrap:nowrap;margin-inline:calc(-1 * var(--blog-gutter));padding-inline:var(--blog-gutter);overflow-x:auto;scrollbar-width:none}.blog-root .blog-index-tabs::-webkit-scrollbar{display:none}.blog-root .blog-index-tab{flex:none}.blog-root .blog-index-search{width:100%;margin-left:0}.blog-root .blog-index-grid{grid-template-columns:minmax(0,1fr);row-gap:2.5rem}.blog-root .blog-index-card:nth-child(n):before{display:none}}.blog-root .blog-log{--blog-log-when:15rem;--blog-log-dot:0.4375rem;position:relative;margin-top:3.5rem;padding:0;list-style:none}.blog-root .blog-log:before{content:"";position:absolute;top:.5rem;bottom:0;left:calc(var(--blog-log-dot) / 2 - .5px);width:1px;background:var(--blog-hair-strong)}.blog-root .blog-log-entry{display:grid;grid-template-columns:var(--blog-log-when) minmax(0,var(--blog-col));column-gap:3rem;scroll-margin-top:calc(var(--blog-nav-h) + 1.5rem)}.blog-root .blog-log-entry+.blog-log-entry{margin-top:6rem}.blog-root .blog-log-when{position:sticky;top:calc(var(--blog-nav-h) + 1.5rem);align-self:start;display:flex;flex-direction:column;gap:.125rem;margin:0;padding-left:calc(var(--blog-log-dot) + .875rem);font-size:var(--blog-size-label);line-height:1.4;color:var(--blog-ink)}.blog-root .blog-log-when:before{content:"";position:absolute;top:calc(.7em - var(--blog-log-dot) / 2);left:0;width:var(--blog-log-dot);height:var(--blog-log-dot);border-radius:999px;background:var(--blog-ink-3);box-shadow:0 0 0 4px rgb(var(--color-bg-app))}.blog-root .blog-log-entry[data-latest] .blog-log-when:before{background:var(--blog-accent)}.blog-root .blog-log-version{color:var(--blog-ink-3);font-variant-numeric:tabular-nums}.blog-root .blog-log-title{margin:0;font-family:var(--blog-display);font-weight:var(--blog-display-weight);font-size:var(--blog-size-quote);line-height:1.25;letter-spacing:-.02em;color:var(--blog-ink)}.blog-root .blog-log-title a{color:inherit;text-decoration:none}.blog-root .blog-log-body{margin-top:1.5rem}.blog-root .blog-log-body>:first-child{margin-top:0}@container (max-width: 767px){.blog-root .blog-log{margin-top:2.5rem}.blog-root .blog-log:before{display:none}.blog-root .blog-log-entry{grid-template-columns:minmax(0,1fr)}.blog-root .blog-log-entry+.blog-log-entry{margin-top:4rem}.blog-root .blog-log-when{position:relative;top:auto;flex-direction:row;flex-wrap:wrap;gap:0 .75rem;margin-bottom:.75rem}.blog-root .blog-log-title{font-size:var(--blog-size-h2)}}@media (prefers-reduced-motion:reduce){.blog-root *{transition:none!important}}