.article-page,.blog-index{--article-gutter:clamp(20px, 3.4vw, 48px);--article-measure:68ch;--article-ink:var(--bc-text);--article-muted:var(--bc-text-muted);--article-line:var(--bc-line);--article-teal:var(--bc-accent);--article-sticky-top:108px;color:var(--bc-text)}.visually-hidden{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.author-face{border-radius:var(--bc-radius-pill);object-fit:cover;box-shadow:0 0 0 1px var(--bc-line);flex-shrink:0;display:inline-block}.author-face-small{width:24px;height:24px}.author-face-medium{width:40px;height:40px}.author-face-initials{background:var(--bc-action);color:var(--bc-action-text);font:600 10px / 1 var(--bc-font-display);letter-spacing:.02em;place-items:center;display:inline-grid}.author-face-medium.author-face-initials{font-size:14px}.author-face-large{width:48px;height:48px}.author-face-large.author-face-initials{font-size:16px}.author-byline{color:var(--bc-text-muted);text-align:left;flex-wrap:wrap;align-items:center;gap:2px 8px;font-size:13px;line-height:1.35;display:inline-flex;position:relative}.author-byline-line{flex-wrap:wrap;align-items:center;gap:0 6px;display:inline-flex}.author-hover{display:inline-flex;position:relative}.author-trigger{border-radius:var(--bc-radius-control);color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;align-items:center;gap:8px;margin:-2px -4px;padding:2px 4px;display:inline-flex}.author-byline-name{color:var(--bc-text);text-underline-offset:3px;font-weight:500;text-decoration:underline #0000;transition:text-decoration-color .15s}.author-hover:hover .author-byline-name,.author-hover[data-open] .author-byline-name{text-decoration-color:var(--bc-line)}.author-byline-role:before{content:"·";margin-right:6px}.author-byline-medium{align-content:center;justify-items:start;gap:2px;min-height:40px;padding-left:50px;display:inline-grid}.author-byline-medium .author-hover{position:static}.author-byline-medium .author-trigger .author-face{position:absolute;top:50%;left:0;translate:0 -50%}.author-card{z-index:30;border:1px solid var(--bc-line);border-radius:var(--bc-radius-panel);background:var(--bc-raised);width:max-content;min-width:240px;max-width:min(300px,100vw - 32px);box-shadow:var(--bc-shadow-overlay);color:var(--bc-text);text-align:left;cursor:default;opacity:0;visibility:hidden;transform-origin:0 0;gap:12px;padding:14px;transition:opacity .14s 80ms,transform .14s 80ms,visibility 0s linear .22s;display:grid;position:absolute;top:calc(100% + 10px);left:-4px;transform:translateY(-4px)scale(.98)}.author-card:before{content:"";height:11px;position:absolute;bottom:100%;left:0;right:0}.author-byline-medium .author-card{left:0}.author-hover[data-open] .author-card,.author-hover:has(:focus-visible) .author-card{opacity:1;visibility:visible;transition:opacity .18s,transform .22s cubic-bezier(.23,1,.32,1),visibility;transform:none}@media (hover:hover){.author-hover:hover .author-card{opacity:1;visibility:visible;transition:opacity .18s .3s,transform .22s cubic-bezier(.23,1,.32,1) .3s,visibility 0s linear .3s;transform:none}}.author-card-person{align-items:center;gap:12px;display:flex}.author-card-text{gap:2px;display:grid}.author-card-name{font:600 15px / 1.3 var(--bc-font-display);letter-spacing:-.01em}.author-card-role{color:var(--bc-text-muted);font-size:13px;line-height:1.4}.author-card-links{border-top:1px solid var(--bc-line);gap:2px;padding-top:8px;display:grid}.author-card-link{border-radius:var(--bc-radius-control);color:var(--bc-text);align-items:center;gap:8px;margin:0 -6px;padding:6px;font-size:13px;font-weight:500;text-decoration:none;transition:color .15s;display:flex}.author-card-link:hover{background:var(--bc-neutral-bg)}.author-card-count{color:var(--bc-text-muted);font-weight:400}.author-card-link svg{flex-shrink:0;width:16px;height:16px}.author-card-link-arrow{color:var(--bc-text-muted);margin-left:auto;transition:color .15s,transform .15s}.author-card-link:hover,.author-card-link:hover .author-card-link-arrow{color:var(--bc-accent)}.author-card-link:hover .author-card-link-arrow{transform:translate(1px,-1px)}@media (prefers-reduced-motion:reduce){.author-card,.author-hover[data-open] .author-card,.author-hover:has(:focus-visible) .author-card{transform:none}}@media (prefers-reduced-motion:reduce) and (hover:hover){.author-hover:hover .author-card{transform:none}}.framed-image{border:1px solid var(--bc-line);border-radius:var(--bc-radius-card);background:var(--bc-surface);padding:8px;display:block}.framed-image-clip{border-radius:calc(var(--bc-radius-card) - 8px);background:var(--bc-neutral-bg);display:block;position:relative;overflow:hidden}.framed-image-clip:after{border-radius:inherit;box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--bc-text) 10%, transparent);content:"";pointer-events:none;position:absolute;inset:0}.framed-image img{width:100%;height:auto;display:block}.framed-image-wide img{aspect-ratio:16/9;object-fit:cover}.article-header{max-width:1040px;padding:clamp(48px, 7vw, 88px) var(--article-gutter) 0;text-align:center;justify-items:center;gap:20px;margin:0 auto;display:grid}.article-breadcrumbs ol{color:var(--bc-text-muted);flex-wrap:wrap;justify-content:center;gap:8px;margin:0;padding:0;font-size:13px;list-style:none;display:flex}.article-breadcrumbs li+li:before{color:var(--bc-line);content:"/";margin-right:8px}.article-breadcrumbs a{color:inherit;text-decoration:none}.article-breadcrumbs a:hover{color:var(--bc-text)}.article-label,.article-list-label,.article-section-number{color:var(--bc-accent);font:400 11px / 1.4 var(--bc-font-mono);letter-spacing:.1em;text-transform:uppercase;margin:0}.article-title{max-width:22ch;font:600 clamp(34px, 4.6vw, 58px) / 1.04 var(--bc-font-display);letter-spacing:-.045em;text-wrap:balance;margin:0}.article-summary{max-width:60ch;color:var(--bc-text-muted);text-wrap:pretty;margin:0;font-size:18px;line-height:1.6}.article-cover{width:100%;margin-top:20px}.article-header-rule{background:var(--bc-line);width:min(100%,720px);height:1px;margin-top:16px;display:block}.article-layout{grid-template-columns:200px minmax(0, var(--article-measure));max-width:1240px;padding:clamp(56px, 7vw, 88px) var(--article-gutter) 0;justify-content:center;gap:clamp(40px,5vw,72px);margin:0 auto;display:grid}.article-layout-single{grid-template-columns:minmax(0, var(--article-measure))}.chapters{top:var(--article-sticky-top);max-height:calc(100vh - var(--article-sticky-top) - 24px);align-self:start;position:sticky;overflow-y:auto}.chapters-list{gap:2px;margin:0;padding:0;list-style:none;display:grid}.chapters-list a{border-left:2px solid var(--bc-line);color:var(--bc-text-muted);gap:10px;padding:7px 12px;font-size:13.5px;line-height:1.4;text-decoration:none;transition:color .15s,border-color .15s;display:flex}.chapters-list a:hover{color:var(--bc-text)}.chapters-list a[aria-current]{border-left-color:var(--bc-accent);color:var(--bc-text);font-weight:500}.chapters-number{color:inherit;font:400 10.5px / 1.4 var(--bc-font-mono);opacity:.8;padding-top:2px}.chapters-mobile{display:none}.article-body{min-width:0;font-size:17px;line-height:1.7}.article-section{scroll-margin-top:var(--article-sticky-top)}.article-section+.article-section{margin-top:56px}.article-section-title{font:600 clamp(26px, 2.6vw, 32px) / 1.15 var(--bc-font-display);letter-spacing:-.035em;text-wrap:balance;margin:8px 0 20px}.article-body>.article-section>p,.article-body p{margin:0 0 1.15em}.article-body a{color:var(--bc-accent);text-underline-offset:4px;text-decoration:underline 1px}.article-body a:hover{color:var(--bc-accent-hover)}.article-body strong{font-weight:600}.article-heading{scroll-margin-top:var(--article-sticky-top);font-family:var(--bc-font-display);text-wrap:balance;margin:36px 0 14px;font-weight:600}h2.article-heading{letter-spacing:-.03em;font-size:24px;line-height:1.2}h3.article-heading{letter-spacing:-.02em;font-size:19px;line-height:1.3}.article-list{margin:0 0 1.15em;padding-left:1.3em}.article-list li+li{margin-top:.4em}.article-list li::marker{color:var(--bc-text-muted)}.article-quote{border-left:2px solid var(--bc-accent);margin:32px 0;padding:4px 0 4px 22px}.article-quote p{font:500 21px / 1.45 var(--bc-font-display);letter-spacing:-.02em;margin:0 0 10px}.article-quote footer{color:var(--bc-text-muted);font-size:13px;display:grid}.article-quote-name{color:var(--bc-text);font-weight:500}.article-figure{margin:32px 0}.article-figure a{display:block}.article-figure figcaption{color:var(--bc-text-muted);text-align:center;margin-top:10px;font-size:13px;line-height:1.5}.article-image-grid{grid-template-columns:repeat(var(--columns,2), minmax(0, 1fr));gap:14px;margin:32px 0;display:grid}.article-image-grid .article-figure{margin:0}.article-code{border:1px solid var(--bc-line);border-radius:var(--bc-radius-tile);background:var(--bc-surface);margin:28px 0;overflow:hidden}.article-code figcaption{border-bottom:1px solid var(--bc-line);color:var(--bc-text-muted);font:400 12px / 1.4 var(--bc-font-mono);padding:9px 16px}.article-code pre{font:400 13px / 1.65 var(--bc-font-mono);margin:0;padding:16px 18px;overflow-x:auto;background:var(--bc-surface)!important}:root[data-theme=dark] .article-code .astro-code,:root[data-theme=dark] .article-code .astro-code span{color:var(--shiki-dark)!important}.article-actions{flex-wrap:wrap;gap:10px;display:flex}.article-body .article-action{border-radius:var(--bc-radius-control);background:var(--bc-action);color:var(--bc-action-text);border:1px solid #0000;align-items:center;gap:8px;padding:9px 15px;font-size:14px;line-height:1.4;text-decoration:none;transition:background .15s;display:inline-flex}.article-body .article-action:hover{background:var(--bc-action-hover);color:var(--bc-action-text)}.article-body .article-action-secondary{border:1px solid var(--bc-line-strong);background:var(--bc-surface);color:var(--bc-text);transition:border-color var(--bc-duration-colour) ease}.article-body .article-action-secondary:hover{border-color:var(--bc-text-faint);background:var(--bc-surface);color:var(--bc-text)}.article-body .article-action-secondary svg{color:var(--bc-text-muted)}.article-action svg{width:16px;height:16px}.article-divider{border:0;border-top:1px solid var(--bc-line);margin:40px 0}.article-callout{border:1px solid var(--bc-line);border-radius:var(--bc-radius-tile);background:var(--bc-surface);margin:28px 0;padding:18px 20px;font-size:15.5px;line-height:1.65}.article-body .article-callout p{margin:0}.article-body .article-notice{margin:0 0 40px}.article-body .article-callout-action{justify-items:start;gap:14px;display:grid}.article-body .article-callout .article-callout-title{font:600 16px / 1.35 var(--bc-font-display);letter-spacing:-.015em;margin-bottom:6px}.article-checks{border:1px solid color-mix(in srgb, var(--bc-accent) 25%, transparent);border-radius:var(--bc-radius-tile);background:var(--bc-accent-tint);margin:28px 0;padding:16px 20px}.article-body .article-checks-title{color:var(--bc-accent);font:600 15px / 1.3 var(--bc-font-display);align-items:center;gap:8px;margin:0 0 10px;display:flex}.article-checks ul{flex-wrap:wrap;gap:8px 20px;margin:0;padding:0;list-style:none;display:flex}.article-checks li{color:var(--bc-accent);font:400 11.5px / 1.4 var(--bc-font-mono);letter-spacing:.08em;text-transform:uppercase;align-items:center;gap:6px;display:inline-flex}.article-checks li svg{width:15px;height:15px}.article-checks .article-check-failed{color:var(--bc-negative)}.article-clip{border:1px solid var(--bc-line);border-radius:var(--bc-radius-panel);background:var(--bc-surface);margin:28px 0;font-size:13px;line-height:1.4;overflow:hidden}.article-clip-scroll{position:relative;overflow-x:auto}.article-clip-table{border-collapse:collapse;white-space:nowrap;width:100%}.article-clip-table th{border-bottom:1px solid var(--bc-line);background:var(--bc-subtle);color:var(--bc-text-muted);font:400 10.5px / 1.4 var(--bc-font-mono);letter-spacing:.08em;text-align:left;text-transform:uppercase;padding:9px 14px}.article-clip-table td{border-bottom:1px solid var(--bc-line);vertical-align:middle;padding:10px 14px}.article-clip-table tr:last-child td{border-bottom:0}.article-clip-amount{font-variant-numeric:tabular-nums;text-align:right!important}.article-clip-strong{font-weight:500;display:block}.article-clip-muted{color:var(--bc-text-muted);font-size:12px;display:block}.article-clip-muted-cell{color:var(--bc-text-muted)}.article-clip-bank{border-radius:var(--bc-radius-control);color:#163300;width:30px;height:30px;font:700 9px / 1 var(--bc-font-body);background:#9fe870;place-items:center;display:inline-grid}.article-clip-pill{border-radius:var(--bc-radius-pill);background:var(--bc-positive-bg);box-shadow:inset 0 0 0 1px var(--bc-positive-ring);color:var(--bc-positive);padding:2px 9px;font-size:12px;display:inline-flex}.article-clip-coded{align-items:center;gap:6px;display:inline-flex}.article-clip-coded svg,.article-clip-coded img{width:13px;height:13px;color:var(--bc-accent)}.article-clip-card{gap:16px;padding:22px;display:flex}.article-clip-icon{border-radius:var(--bc-radius-tile);background:var(--bc-accent-tint);width:40px;height:40px;color:var(--bc-accent);flex-shrink:0;place-items:center;display:grid}.article-clip-icon svg{width:20px;height:20px}.article-clip-card-body{flex:1;gap:6px;display:grid}.article-body .article-clip-card-body p{margin:0}.article-body .article-clip-label{color:var(--bc-accent);font:400 11px / 1.4 var(--bc-font-mono);letter-spacing:.08em;text-transform:uppercase}.article-body .article-clip-title{font:600 19px / 1.3 var(--bc-font-display);letter-spacing:-.02em}.article-clip-card-footer{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding-top:8px;display:flex}.article-clip-button{border-radius:var(--bc-radius-control);background:var(--bc-action);color:var(--bc-action-text);align-items:center;gap:8px;padding:8px 14px;font-size:13px;display:inline-flex}.article-clip-button svg{width:15px;height:15px}.article-channels{font:500 20px / 1.4 var(--bc-font-display);letter-spacing:-.02em;flex-wrap:wrap;gap:6px 18px;margin:24px 0;display:flex}.article-channels span{align-items:center;gap:8px;display:inline-flex}.article-channels svg{width:20px;height:20px;color:var(--bc-accent)}.article-product-banner{border:1px solid var(--bc-line);border-radius:var(--bc-radius-card);background:var(--bc-surface);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px 24px;margin:32px 0;padding:18px 22px;display:flex}.article-product-lockup{color:var(--bc-text);font:400 22px / 1 var(--bc-font-display);align-items:baseline;gap:8px;display:inline-flex}.article-product-lockup svg{width:auto;height:20px}.article-product-note{color:var(--bc-text-muted);align-items:center;gap:8px;font-size:13px;display:inline-flex}.article-roles{border-top:1px solid var(--bc-line);margin-top:64px;padding-top:32px}.article-roles h2{font:600 26px / 1.2 var(--bc-font-display);letter-spacing:-.03em;margin:0 0 16px}.article-roles ul{gap:10px;margin:0;padding:0;list-style:none;display:grid}.article-body .article-roles a{border:1px solid var(--bc-line);border-radius:var(--bc-radius-tile);background:var(--bc-surface);color:var(--bc-text);flex-wrap:wrap;align-items:center;gap:6px 14px;padding:16px 18px;text-decoration:none;transition:border-color .15s;display:flex}.article-body .article-roles a:hover{border-color:var(--bc-accent)}.article-role-title{font:600 17px / 1.3 var(--bc-font-display);letter-spacing:-.015em}.article-role-tags{color:var(--bc-text-muted);flex:1;font-size:13px}.article-roles svg{width:18px;height:18px;color:var(--bc-text-muted)}.related-articles{max-width:1240px;padding:40px var(--article-gutter) 0;margin:clamp(80px,9vw,120px) auto 0}.related-articles>h2{font:600 24px / 1.2 var(--bc-font-display);letter-spacing:-.03em;margin:0 0 24px}.related-articles ul{border-top:1px solid var(--bc-line);grid-template-columns:repeat(3,minmax(0,1fr));gap:28px;margin:0;padding:28px 0 0;list-style:none;display:grid}.related-article{align-content:start;gap:10px;display:grid;position:relative}.related-article h3 a:after{content:"";position:absolute;inset:0}.related-article .author-hover{z-index:1}.related-article .framed-image{transition:transform var(--bc-duration-base) var(--bc-ease)}.related-article h3{font:600 18px / 1.3 var(--bc-font-display);letter-spacing:-.02em;text-wrap:balance;margin:0}.related-article h3 a{color:var(--bc-text);text-decoration:none}.related-article:hover:not(:has(.author-hover:hover)) h3 a{color:var(--bc-accent)}.related-article:hover:not(:has(.author-hover:hover)) .framed-image{transform:translateY(-2px)}.article-breakout{width:min(960px, 100vw - 2 * var(--article-gutter));position:relative;left:50%;translate:-50%}.article-tabs{margin:28px 0 36px}.article-tabs-list{grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;display:grid}.article-tabs:not([data-ready]) .article-tabs-list{display:none}.article-tab{border:0;border-top:2px solid var(--bc-line);color:var(--bc-text-muted);font:inherit;text-align:left;cursor:pointer;transition:color var(--bc-duration-colour) ease, border-color var(--bc-duration-colour) ease;background:0 0;align-content:start;gap:10px;padding:16px 0 20px;display:grid}.article-tab:hover{border-top-color:var(--bc-line-strong);color:var(--bc-text)}.article-tab[aria-selected=true]{border-top-color:var(--bc-accent);color:var(--bc-text)}.article-tab:focus-visible{outline:2px solid var(--bc-accent);outline-offset:4px;border-radius:var(--bc-radius-control)}.article-tab-number,.article-tab-panel-title span{color:var(--bc-text-faint);font:400 11.5px / 1.4 var(--bc-font-mono);letter-spacing:.08em}.article-tab[aria-selected=true] .article-tab-number{color:var(--bc-accent)}.article-tab-title{font:600 19px / 1.3 var(--bc-font-display);letter-spacing:-.025em;text-wrap:balance}.article-tab-panels{gap:16px;display:grid}.article-tab-panel{border-radius:var(--bc-radius-showcase);background:var(--bc-surface);box-shadow:inset 0 0 0 1px var(--bc-line), var(--bc-shadow-card);padding:clamp(24px,4vw,40px)}.article-tabs[data-ready] .article-tab-panel:not([data-selected]){display:none}.article-body .article-tab-panel p{margin:0 0 1em;font-size:16.5px;line-height:1.75}.article-body .article-tab-panel p:last-child{margin-bottom:0}.article-body .article-tab-panel .article-tab-panel-title{font:600 20px / 1.3 var(--bc-font-display);letter-spacing:-.025em;gap:6px;margin-bottom:14px;display:grid}.article-tabs[data-ready] .article-tab-panel-title{display:none}@media (prefers-reduced-motion:no-preference){.article-tabs[data-ready] .article-tab-panel[data-selected]>p{animation:article-tab-resolve var(--bc-duration-slow) var(--bc-ease) both}}@keyframes article-tab-resolve{0%{opacity:0;transform:translateY(4px)}}@media (width<=640px){.article-tabs-list{grid-template-columns:minmax(0,1fr);gap:0}.article-tab{border-top-width:1px;grid-template-columns:28px minmax(0,1fr);align-items:baseline;gap:8px;padding:14px 0}.article-tab[aria-selected=true]{box-shadow:inset 0 1px 0 var(--bc-accent)}.article-tab-title{font-size:17px}.article-tab-panels{margin-top:6px}}.person-mention .author-card{top:calc(100% + 8px);left:calc(-4px + var(--card-shift,0px));font-size:13px;line-height:1.35}.article-body .person-mention .author-card a{color:var(--bc-text);text-decoration:none}.article-body .person-mention .author-card a:hover{color:var(--bc-accent)}.article-page a:focus-visible,.blog-index a:focus-visible,.blog-index button:focus-visible,.blog-index summary:focus-visible,.author-trigger:focus-visible,.chapters-mobile summary:focus-visible{outline:2px solid var(--bc-accent);outline-offset:3px;border-radius:var(--bc-radius-control)}@media (width<=1000px){.article-layout{grid-template-columns:minmax(0, var(--article-measure))}.chapters{z-index:5;max-height:none;margin:0 calc(-1 * var(--article-gutter));padding:0 var(--article-gutter);top:92px;overflow:visible}.chapters-rail{display:none}.chapters-mobile{border:1px solid var(--bc-line);border-radius:var(--bc-radius-tile);background:color-mix(in srgb, var(--bc-surface) 92%, transparent);backdrop-filter:blur(12px);display:block}.chapters-mobile summary{cursor:pointer;align-items:baseline;gap:10px;padding:12px 14px;font-size:13.5px;list-style:none;display:flex}.chapters-mobile summary::-webkit-details-marker{display:none}.chapters-mobile-label{color:var(--bc-text-muted);font:400 10.5px / 1.4 var(--bc-font-mono);letter-spacing:.08em;text-transform:uppercase}.chapters-mobile-current{color:var(--bc-text);text-overflow:ellipsis;white-space:nowrap;font-weight:500;overflow:hidden}.chapters-mobile .chapters-list{padding:0 8px 10px}.related-articles ul{grid-template-columns:1fr}}@media (width<=640px){.article-body{font-size:16.5px}.article-image-grid{grid-template-columns:1fr}.article-clip-card{flex-direction:column}}
