.copy-page[data-astro-cid-vhd6ejnl]{position:relative}.trigger[data-astro-cid-vhd6ejnl]{align-items:center;gap:var(--spacing-8);height:36px;padding-inline:var(--spacing-16);border:1px solid var(--color-border);border-radius:var(--radius-button);background:var(--surface-canvas);color:var(--color-text-primary);font-size:var(--text-body-sm);line-height:var(--leading-body-sm);letter-spacing:var(--tracking-body-sm);white-space:nowrap;cursor:pointer;transition:border-color var(--motion-hover) var(--ease-out), background-color var(--motion-hover) var(--ease-out), transform var(--motion-press) var(--ease-out);display:inline-flex}@media (hover:hover) and (pointer:fine){.trigger[data-astro-cid-vhd6ejnl]:hover{border-color:var(--color-text-primary)}}.trigger[data-astro-cid-vhd6ejnl]:active{transform:scale(.97)}.trigger[data-astro-cid-vhd6ejnl][aria-expanded=true]{border-color:var(--color-text-primary);background:var(--surface-warm-cream)}.icon[data-astro-cid-vhd6ejnl]{flex-shrink:0;width:16px;height:16px}.chevron[data-astro-cid-vhd6ejnl]{transition:transform var(--motion-swap) var(--ease-out)}.trigger[data-astro-cid-vhd6ejnl][aria-expanded=true] .chevron[data-astro-cid-vhd6ejnl]{transform:rotate(180deg)}.icon-done[data-astro-cid-vhd6ejnl],.trigger[data-astro-cid-vhd6ejnl][data-copied] .icon-copy[data-astro-cid-vhd6ejnl]{display:none}.trigger[data-astro-cid-vhd6ejnl][data-copied] .icon-done[data-astro-cid-vhd6ejnl]{display:block}.menu[data-astro-cid-vhd6ejnl]{z-index:20;width:min(20rem, calc(100vw - 2 * var(--page-margin)));border:1px solid var(--color-border);border-radius:var(--radius-nav-element);background:var(--surface-canvas);transform-origin:100% 0;transition:opacity var(--motion-swap) var(--ease-out), transform var(--motion-swap) var(--ease-out), display var(--motion-swap) allow-discrete;padding:4px;position:absolute;inset-block-start:calc(100% + var(--spacing-8));inset-inline-end:0}.menu[data-astro-cid-vhd6ejnl][hidden]{opacity:0;display:none;transform:translateY(-4px)scale(.98)}@starting-style{.menu[data-astro-cid-vhd6ejnl]:not([hidden]){opacity:0;transform:translateY(-4px)scale(.98)}}@media (prefers-reduced-motion:reduce){.menu[data-astro-cid-vhd6ejnl][hidden]{transform:none}@starting-style{.menu[data-astro-cid-vhd6ejnl]:not([hidden]){transform:none}}.chevron[data-astro-cid-vhd6ejnl]{transition:none}}.item[data-astro-cid-vhd6ejnl]{align-items:flex-start;gap:var(--spacing-16);width:100%;padding:var(--spacing-8) var(--spacing-16);border-radius:var(--radius-small-ui);color:var(--color-text-primary);font:inherit;text-align:start;cursor:pointer;transition:background-color var(--motion-hover) var(--ease-out);background:0 0;border:0;text-decoration:none;display:flex}.item[data-astro-cid-vhd6ejnl]:focus-visible{outline-offset:-2px}.item[data-astro-cid-vhd6ejnl]:focus-visible,.item[data-astro-cid-vhd6ejnl]:hover{background:var(--surface-warm-cream)}.item-icon[data-astro-cid-vhd6ejnl]{height:calc(var(--text-body-sm) * var(--leading-body-sm));flex-shrink:0;align-items:center;display:flex}.item-icon[data-astro-cid-vhd6ejnl] svg[data-astro-cid-vhd6ejnl]{width:16px;height:16px}.item-words[data-astro-cid-vhd6ejnl]{flex-direction:column;gap:2px;min-width:0;display:flex}.item-label[data-astro-cid-vhd6ejnl]{font-size:var(--text-body-sm);line-height:var(--leading-body-sm);letter-spacing:var(--tracking-body-sm);align-items:center;gap:4px;display:inline-flex}.away[data-astro-cid-vhd6ejnl]{width:12px;height:12px;color:var(--color-text-caption)}.item-note[data-astro-cid-vhd6ejnl]{color:var(--color-text-secondary);font-size:var(--text-caption);line-height:var(--leading-caption);letter-spacing:var(--tracking-caption)}.author-card[data-astro-cid-2tgtkdc7]{align-items:flex-start;gap:var(--spacing-24);padding:var(--spacing-32);border-radius:var(--radius-card);background:var(--surface-warm-cream);display:flex}.avatar[data-astro-cid-2tgtkdc7]{border:1px solid var(--color-border);border-radius:var(--radius-full);background:var(--surface-canvas);width:64px;height:64px;font-family:var(--font-display);flex-shrink:0;justify-content:center;align-items:center;font-size:28px;line-height:1;display:flex;overflow:hidden}.avatar[data-astro-cid-2tgtkdc7] img[data-astro-cid-2tgtkdc7]{object-fit:cover;width:100%;height:100%}.avatar-brand[data-astro-cid-2tgtkdc7]{border-color:var(--color-action-fill);background:var(--color-action-fill);color:var(--color-action-text)}.words[data-astro-cid-2tgtkdc7]{gap:var(--spacing-8);flex-direction:column;min-width:0;display:flex}.name[data-astro-cid-2tgtkdc7]{font-size:var(--text-subheading);font-weight:var(--font-weight-bold);line-height:var(--leading-subheading);letter-spacing:var(--tracking-subheading)}.role[data-astro-cid-2tgtkdc7],.bio[data-astro-cid-2tgtkdc7]{color:var(--color-text-secondary);font-size:var(--text-body-sm);line-height:var(--leading-body-sm);letter-spacing:var(--tracking-body-sm)}.link[data-astro-cid-2tgtkdc7]{font-size:var(--text-body-sm);line-height:var(--leading-body-sm);letter-spacing:var(--tracking-body-sm);margin-block-start:var(--spacing-8)}.away[data-astro-cid-2tgtkdc7]{margin-inline-start:4px}@media (width<=48rem){.author-card[data-astro-cid-2tgtkdc7]{padding:var(--card-padding);flex-direction:column}}.cb-mark{border-radius:var(--radius-full);background:color-mix(in srgb, var(--surface-canvas) 82%, transparent);backdrop-filter:blur(10px);width:40px;height:40px;color:var(--color-text-primary);font-size:var(--text-subheading);justify-content:center;align-items:center;display:inline-flex;position:relative}.cb-rail{display:none}@media (width>=80rem){article.post.has-cb-rail{grid-template-columns:minmax(calc(var(--rail) + var(--spacing-40)), 1fr) minmax(0, var(--measure)) minmax(calc(var(--rail) + var(--spacing-40)), 1fr)}.cb-rail{top:calc(var(--bar-height,4.0625rem) + var(--spacing-32));width:calc(var(--rail) + var(--spacing-40));padding-block:4px;padding-inline:4px var(--spacing-40);grid-area:1/1/3;place-self:start end;display:block;position:sticky}}.cb-rail[hidden]{display:none}.cb-rail-card{padding:var(--spacing-8);border:1px solid var(--color-border);border-radius:var(--radius-card);background:var(--surface-canvas);position:relative}.cb-rail-ground.cb-rail-ground{aspect-ratio:16/10;border-radius:var(--radius-xl);place-items:center;display:grid;overflow:hidden}.cb-rail-card .cb-dismiss{top:var(--spacing-16);right:var(--spacing-16);z-index:2;position:absolute}.cb-rail-words{gap:var(--spacing-8);padding:var(--spacing-16);flex-direction:column;display:flex}.cb-rail-title{font-family:var(--font-display);font-size:var(--text-heading-sm);font-weight:var(--font-weight-regular);line-height:var(--leading-heading-sm);letter-spacing:var(--tracking-heading-sm);color:var(--color-text-primary);text-wrap:balance;margin:0}.cb-rail-desc{font-size:var(--text-body-sm);line-height:var(--leading-body-sm);letter-spacing:var(--tracking-body-sm);color:var(--color-text-secondary);margin:0}.cb-rail-words .btn{width:100%;margin-block-start:var(--spacing-8)}.cb-dismiss{border-radius:var(--radius-full);background:color-mix(in srgb, var(--surface-canvas) 82%, transparent);backdrop-filter:blur(8px);width:28px;height:28px;color:var(--color-text-secondary);cursor:pointer;transition:background-color var(--motion-hover) var(--ease-out), color var(--motion-hover) var(--ease-out);border:0;justify-content:center;align-items:center;padding:0;display:inline-flex}@media (hover:hover){.cb-dismiss:hover{background:var(--surface-canvas);color:var(--color-text-primary)}}.cb-dismiss svg{width:14px;height:14px}.cb-flow{margin-block:var(--spacing-40) 0;inline-size:100%}.cb-banner{border:1px solid var(--color-border);border-radius:var(--radius-card);background:var(--surface-canvas);color:var(--color-text-primary);font-size:var(--text-body);line-height:var(--leading-body);letter-spacing:var(--tracking-body)}.cb-banner.cb-banner :is(p,dl,dt,dd,ul,li,blockquote,figure,figcaption){margin:0}.cb-feature{gap:var(--spacing-8);padding:var(--spacing-8);display:grid}.cb-copy{gap:var(--spacing-16);flex-direction:column;min-width:0;display:flex}.cb-feature .cb-copy{padding:var(--spacing-24) var(--spacing-24) var(--spacing-16)}.cb-banner.cb-banner .cb-headline{font-family:var(--font-display);font-size:var(--text-heading);font-weight:var(--font-weight-regular);line-height:var(--leading-heading-sm);letter-spacing:var(--tracking-heading);text-wrap:balance}.cb-banner.cb-banner .cb-body{color:var(--color-text-secondary);font-size:var(--text-body);line-height:var(--leading-body)}.cb-banner.cb-banner .cb-actions{gap:var(--spacing-16);flex-wrap:wrap;margin-block-start:var(--spacing-8);display:flex}.cb-actions .btn{white-space:normal;text-align:center}.cb-ground.cb-ground{min-height:14rem;padding:clamp(var(--spacing-16), 5.5%, var(--spacing-40));border-radius:var(--radius-xl);display:grid;overflow:hidden}@media (width>=48rem){.cb-feature{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.cb-feature .cb-copy{padding:var(--spacing-32) var(--spacing-16) var(--spacing-32) var(--spacing-32);justify-content:center}}.cb-shot{justify-content:center;gap:var(--spacing-8);width:100%;padding:clamp(var(--spacing-16), 7%, var(--spacing-32));border:1px solid var(--color-border);border-radius:var(--radius-xl);background:var(--surface-canvas);color:var(--color-text-primary);flex-direction:column;display:flex;position:relative}.cb-shot-panel{border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--surface-canvas);overflow:hidden}.cb-shot-head{justify-content:space-between;align-items:center;gap:var(--spacing-8);padding:var(--spacing-8) var(--spacing-16);display:flex}.cb-banner.cb-banner .cb-shot-title{font-size:var(--text-body-sm);font-weight:var(--font-weight-bold);line-height:var(--leading-body-sm);letter-spacing:var(--tracking-body-sm)}.cb-banner.cb-banner .cb-shot-meta,.cb-banner.cb-banner .cb-shot-note,.cb-pill,.cb-code{font-family:var(--font-mono);font-size:var(--text-caption);font-weight:var(--font-weight-regular);line-height:var(--leading-caption);letter-spacing:0;color:var(--color-text-caption)}.cb-pill{padding:2px var(--spacing-8);border:1px solid var(--color-border);border-radius:var(--radius-tag);color:var(--color-text-secondary);white-space:nowrap;flex:none}.cb-banner.cb-banner .cb-shot-note{padding-inline:2px}.cb-banner.cb-banner .cb-rows{flex-direction:column;padding:0;list-style:none;display:flex}.cb-banner.cb-banner .cb-rows li{align-items:center;column-gap:var(--spacing-8);padding:var(--spacing-8) var(--spacing-16);border-block-start:1px solid var(--color-border);grid-template-columns:auto minmax(0,1fr);display:grid}.cb-banner.cb-banner .cb-rows li:before,.cb-banner.cb-banner .cb-logos li:before{content:none}.cb-tick,.cb-code{grid-row:span 2}.cb-tick{border-radius:var(--radius-full);background:var(--color-action-fill);width:18px;height:18px;color:var(--color-action-text);place-items:center;display:grid}.cb-tick svg{width:11px;height:11px}.cb-code{min-width:2.2em}.cb-row-name{font-size:var(--text-body-sm);line-height:var(--leading-body-sm)}.cb-row-detail{font-size:var(--text-caption);line-height:var(--leading-caption);color:var(--color-text-secondary)}.cb-stats{border-block-start:1px solid var(--color-border);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.cb-stat{padding:var(--spacing-8) var(--spacing-16);flex-direction:column;gap:4px;display:flex}.cb-stat+.cb-stat{border-inline-start:1px solid var(--color-border)}.cb-banner.cb-banner .cb-stat-num{font-family:var(--font-display);font-size:var(--text-heading-sm);order:1;line-height:1}.cb-banner.cb-banner .cb-stat-label{font-size:var(--text-caption);line-height:var(--leading-caption);color:var(--color-text-secondary);order:2}.cb-stars{color:var(--color-text-primary);gap:2px;display:flex}.cb-stars svg{width:16px;height:16px}.cb-banner.cb-banner .cb-logos{grid-template-columns:1fr 1fr;padding:0;list-style:none;display:grid}.cb-banner.cb-banner .cb-logos li{padding:var(--spacing-8) var(--spacing-16);border-block-start:1px solid var(--color-border);font-size:var(--text-body-sm);font-weight:var(--font-weight-bold);letter-spacing:var(--tracking-body-sm)}.cb-banner.cb-banner .cb-logos li:nth-child(2n){border-inline-start:1px solid var(--color-border)}.cb-banner.cb-banner blockquote{border:0;padding:0}.cb-banner.cb-banner .cb-quote-text{font-family:var(--font-display);font-size:var(--text-heading-sm);line-height:var(--leading-heading-sm);letter-spacing:var(--tracking-heading-sm);text-wrap:pretty}.cb-cite{color:var(--color-text-secondary);font-size:var(--text-body-sm);font-style:normal;line-height:var(--leading-body-sm)}.cb-cite strong{color:var(--color-text-primary);font-weight:var(--font-weight-bold)}.cb-strip{align-items:center;gap:var(--spacing-16);padding:var(--spacing-8) var(--spacing-16) var(--spacing-8) var(--spacing-8);flex-wrap:wrap;display:flex}.cb-orb.cb-orb{border-radius:var(--radius-xl);flex:none;place-items:center;width:72px;height:72px;display:grid;overflow:hidden}.cb-orb .cb-mark{width:32px;height:32px;font-size:var(--text-body-sm)}.cb-banner.cb-banner .cb-strip-title{font-size:var(--text-subheading);font-weight:var(--font-weight-bold);line-height:var(--leading-subheading);letter-spacing:var(--tracking-subheading);flex:14rem}@media (width<=30rem){.cb-strip{padding:var(--spacing-8) var(--spacing-8) var(--spacing-16)}.cb-strip .btn{width:100%;margin-inline:var(--spacing-8)}}.read-progress[data-astro-cid-jo55ryrt]{inset-inline:0;z-index:51;background:var(--color-text-primary);transform-origin:0;opacity:0;height:2px;transition:opacity var(--motion-swap) var(--ease-out);pointer-events:none;position:fixed;top:0;transform:scaleX(0)}.read-progress[data-astro-cid-jo55ryrt][data-live]{opacity:1}.post[data-astro-cid-jo55ryrt]{--measure:44rem;--rail:13rem}.hero[data-astro-cid-jo55ryrt]{align-items:flex-start;gap:var(--spacing-24);min-width:0;max-width:var(--measure);flex-direction:column;margin-inline:auto;display:flex}.breadcrumb[data-astro-cid-jo55ryrt]{max-width:100%;color:var(--color-text-caption);font-size:var(--text-body-sm);line-height:var(--leading-body-sm);letter-spacing:var(--tracking-body-sm)}.breadcrumb[data-astro-cid-jo55ryrt] ol[data-astro-cid-jo55ryrt]{align-items:center;gap:var(--spacing-8);margin:0;padding:0;list-style:none;display:flex}.breadcrumb[data-astro-cid-jo55ryrt] li[data-astro-cid-jo55ryrt]+li[data-astro-cid-jo55ryrt]:before{content:"/";color:var(--color-text-muted);margin-inline-end:var(--spacing-8)}.breadcrumb[data-astro-cid-jo55ryrt] [data-astro-cid-jo55ryrt][aria-current]{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.title[data-astro-cid-jo55ryrt]{max-width:22ch;font-family:var(--font-display);font-size:var(--text-title);line-height:var(--leading-title);letter-spacing:var(--tracking-title)}.lede[data-astro-cid-jo55ryrt]{max-width:60ch;color:var(--color-text-secondary);font-size:var(--text-subheading);line-height:var(--leading-subheading);letter-spacing:var(--tracking-subheading)}.byline[data-astro-cid-jo55ryrt]{align-items:center;gap:var(--spacing-16) var(--spacing-24);flex-wrap:wrap;display:flex}.stamp[data-astro-cid-jo55ryrt]{align-items:center;gap:var(--spacing-8);color:var(--color-text-secondary);font-size:var(--text-body-sm);line-height:var(--leading-body-sm);letter-spacing:var(--tracking-body-sm);flex-wrap:wrap;display:flex}.dot[data-astro-cid-jo55ryrt]{color:var(--color-text-muted)}@media (width>=48rem){.author[data-astro-cid-jo55ryrt]+.stamp[data-astro-cid-jo55ryrt]{border-inline-start:1px solid var(--color-border);padding-inline-start:var(--spacing-24)}}.author[data-astro-cid-jo55ryrt]{align-items:center;gap:var(--spacing-16);display:flex}.avatar[data-astro-cid-jo55ryrt]{border:1px solid var(--color-border);border-radius:var(--radius-full);background:var(--surface-warm-cream);width:48px;height:48px;font-family:var(--font-display);font-size:var(--text-heading-sm);flex-shrink:0;justify-content:center;align-items:center;line-height:1;display:inline-flex;overflow:hidden}.avatar[data-astro-cid-jo55ryrt] img[data-astro-cid-jo55ryrt]{object-fit:cover;width:100%;height:100%}.avatar-brand[data-astro-cid-jo55ryrt]{border-color:var(--color-action-fill);background:var(--color-action-fill);color:var(--color-action-text)}.author-words[data-astro-cid-jo55ryrt]{flex-direction:column;gap:2px;display:flex}.author-name[data-astro-cid-jo55ryrt]{font-weight:var(--font-weight-bold)}.author-role[data-astro-cid-jo55ryrt]{color:var(--color-text-secondary);font-size:var(--text-body-sm);line-height:var(--leading-body-sm);letter-spacing:var(--tracking-body-sm)}.column[data-astro-cid-jo55ryrt]{max-width:var(--measure);min-width:0;margin-block-start:var(--spacing-40);margin-inline:auto}.rail[data-astro-cid-jo55ryrt]{max-width:var(--measure);margin-block-start:var(--spacing-40);margin-inline:auto}@media (width>=64rem){.post[data-astro-cid-jo55ryrt]{grid-template-columns:minmax(0, 1fr) minmax(0, var(--measure)) minmax(calc(var(--rail) + var(--spacing-40)), 1fr);align-items:start;display:grid}.hero[data-astro-cid-jo55ryrt]{grid-area:1/2;margin-inline:0}.column[data-astro-cid-jo55ryrt]{margin:var(--spacing-24) 0 0;border-block-start:1px solid var(--color-border);grid-area:2/2;padding-block-start:var(--spacing-24)}.rail[data-astro-cid-jo55ryrt]{top:calc(var(--bar-height,4.0625rem) + var(--spacing-32));max-width:none;max-height:calc(100vh - var(--bar-height,4.0625rem) - var(--spacing-56));padding-block:4px;padding-inline:var(--spacing-40) 4px;overscroll-behavior:contain;scrollbar-width:thin;grid-area:1/3/3;margin:0;position:sticky;overflow-y:auto}.rail[data-astro-cid-jo55ryrt][data-more-below]{mask-image:linear-gradient(to bottom, black calc(100% - var(--spacing-56)), transparent)}.rail[data-astro-cid-jo55ryrt][data-more-above]{mask-image:linear-gradient(to top, black calc(100% - var(--spacing-56)), transparent)}.rail[data-astro-cid-jo55ryrt][data-more-above][data-more-below]{mask-image:linear-gradient(to bottom, transparent, black var(--spacing-56), black calc(100% - var(--spacing-56)), transparent)}.rail[data-astro-cid-jo55ryrt] .toc{border-block:0;padding-block:0}.rail[data-astro-cid-jo55ryrt] .sections{border-inline-start:1px solid var(--color-border);padding-inline-start:0}.rail[data-astro-cid-jo55ryrt] .sections>li:before{content:none}.rail[data-astro-cid-jo55ryrt] .sections>li+li{margin-block-start:var(--spacing-8)}.rail[data-astro-cid-jo55ryrt] .toc a{font-size:var(--text-body-sm);line-height:var(--leading-body-sm);letter-spacing:var(--tracking-body-sm);transition:color var(--motion-hover) var(--ease-out), border-color var(--motion-hover) var(--ease-out);border-inline-start:2px solid #0000;margin-inline-start:-1px;padding-block:2px;padding-inline-start:var(--spacing-16);display:block}.rail[data-astro-cid-jo55ryrt] .toc a[aria-current]{border-inline-start-color:var(--color-text-primary);font-weight:var(--font-weight-regular)}}.column[data-astro-cid-jo55ryrt] .prose .table-flow,.column[data-astro-cid-jo55ryrt] .prose .cta-flow,.column[data-astro-cid-jo55ryrt] .prose .terminal-flow{--breakout:100%;inline-size:var(--breakout);margin-inline:0}.column[data-astro-cid-jo55ryrt] .prose .table-flow{justify-content:flex-start}.end[data-astro-cid-jo55ryrt],.column[data-astro-cid-jo55ryrt] .faqs{margin-block-start:var(--spacing-56)}.column[data-astro-cid-jo55ryrt] .faqs h2{font-weight:var(--font-weight-bold)}.hero-wash[data-astro-cid-jo55ryrt]{aspect-ratio:5;border:1px solid var(--color-border);border-radius:var(--radius-image);align-self:stretch;margin-block-start:var(--spacing-8);overflow:hidden}@media (width<=48rem){.hero-wash[data-astro-cid-jo55ryrt]{aspect-ratio:3}}.hero-wash[data-astro-cid-jo55ryrt] img{object-fit:cover;width:100%;height:100%;display:block}.share-top[data-astro-cid-jo55ryrt] .copy-page{position:static}@media (width<=26rem){.share-top[data-astro-cid-jo55ryrt] .share .label{display:none}}.share-top[data-astro-cid-jo55ryrt]{justify-content:space-between;align-items:center;gap:var(--spacing-16);flex-wrap:wrap;margin-block-start:calc(var(--spacing-8) * -1);margin-block-end:var(--spacing-40);display:flex;position:relative}.end-row[data-astro-cid-jo55ryrt]{border-block-start:1px solid var(--color-border);justify-content:flex-start;align-items:center;padding-block-start:var(--spacing-24);display:flex}.column[data-astro-cid-jo55ryrt] .faqs+.end[data-astro-cid-jo55ryrt] .end-row[data-astro-cid-jo55ryrt]{border-block-start:0;padding-block-start:0}.end[data-astro-cid-jo55ryrt] .author-card{margin-block-start:var(--spacing-24)}.related[data-astro-cid-jo55ryrt]{margin-block:var(--section-gap)}.related-head[data-astro-cid-jo55ryrt]{justify-content:space-between;align-items:flex-end;gap:var(--spacing-16);flex-wrap:wrap;display:flex}.related-list[data-astro-cid-jo55ryrt]{gap:var(--spacing-32) var(--grid-gutter);margin:var(--spacing-32) 0 0;padding:0;list-style:none;display:grid}@media (width>=48rem){.related-list[data-astro-cid-jo55ryrt]{grid-template-columns:repeat(3,minmax(0,1fr))}}
