.rc-article-pagehead{background:var(--blog-bg-tint);padding:calc(var(--blog-space-3) + 38px + var(--blog-space-10)) var(--blog-margin-x) var(--blog-space-9);--blog-col-w:calc((100vw - 2 * var(--blog-margin-x) - 11 * 36px) / 12);text-align:center}.rc-article-pagehead .rc-article-header{max-width:calc(8 * var(--blog-col-w) + 7 * 36px);margin:0 auto;padding-left:calc(var(--blog-col-w) / 2);padding-right:calc(var(--blog-col-w) / 2)}.rc-article-pagehead .rc-article-tags{justify-content:center;margin-bottom:8px}.rc-article-frame{display:grid;grid-template-columns:repeat(12,1fr);-moz-column-gap:36px;column-gap:36px;padding:16px var(--blog-margin-x) 0;align-items:start;--blog-col-w:calc((100vw - 2 * var(--blog-margin-x) - 11 * 36px) / 12)}.rc-article-rail-left{grid-column:1/span 2}.rc-article-content-container{grid-column:3/span 8;min-width:0;padding-left:calc(var(--blog-col-w) / 2);padding-right:calc(var(--blog-col-w) / 2)}.rc-article-content-container .qmd-toc{display:none}.rc-article-content>section:first-of-type{border-left:3px solid var(--blog-text-brand);padding-left:var(--blog-space-6);margin-bottom:var(--blog-space-9)}.rc-article-rail-right{grid-column:11/span 2;min-width:250px}.rc-article-rail-left,.rc-article-rail-right{position:relative;top:auto;align-self:start;display:flex;flex-direction:column;gap:var(--blog-space-6);max-height:calc(100vh - 64px);overflow-y:auto;padding-top:var(--blog-space-9);padding-right:var(--blog-space-3)}.rc-article-frame.is-past-pagehead .rc-article-rail-left,.rc-article-frame.is-past-pagehead .rc-article-rail-right{position:sticky;top:calc(38px + var(--blog-space-3))}.rc-article-rail-block{display:flex;flex-direction:column;gap:6px}.rc-article-rail-label,.rc-article-toc-label{margin:0;font-family:var(--blog-font-mono);font-size:12px;font-weight:500;line-height:1.3;color:var(--blog-text-tertiary)}.rc-article-rail-meta{display:inline-flex;margin:0;font-family:var(--blog-font-sans);font-size:var(--blog-fs-small);font-weight:400;color:var(--blog-text-primary)}.rc-article-author,.rc-article-rail-meta{align-items:center;gap:var(--blog-space-3)}.rc-article-author{display:flex}.rc-article-author-avatar{width:28px;height:28px;border-radius:50%;flex-shrink:0;-o-object-fit:cover;object-fit:cover;background:var(--blog-divider);display:block}.rc-article-author-name{font-family:var(--blog-font-sans);font-size:var(--blog-fs-small);font-weight:500;color:var(--blog-text-primary);line-height:1.3}.rc-article-toc ul{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:4px;border-left:1px solid var(--blog-divider)}.rc-article-toc li{margin:0}.rc-article-toc a{display:block;padding:4px var(--blog-space-4);margin-left:-2px;border-left:2px solid transparent;border-radius:0 4px 4px 0;font-family:var(--blog-font-sans);font-size:var(--blog-fs-small);line-height:1.4;letter-spacing:.14px;color:var(--blog-text-tertiary);text-decoration:none;transition:color var(--blog-duration-fast) var(--blog-ease-out),border-color var(--blog-duration-fast) var(--blog-ease-out)}.rc-article-toc a.is-active,.rc-article-toc a:hover{color:var(--blog-text-primary)}.rc-article-toc a.is-active{border-left-color:var(--blog-text-brand);font-weight:500}.rc-article-share{display:inline-flex;gap:var(--blog-space-3);flex-wrap:wrap}.rc-article-share-link{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:50%;background:rgba(0,0,0,.04);border:1px solid var(--blog-neutral-20);color:var(--blog-text-primary);text-decoration:none;transition:background-color var(--blog-duration-fast) var(--blog-ease-out)}.rc-article-share-link svg{width:18px;height:18px}.rc-article-share-link[aria-label="Copy link"] svg,.rc-article-share-link[aria-label="Share on X"] svg{width:12px;height:12px}.rc-article-share-link:hover{background:var(--blog-text-brand);color:var(--blog-neutral-0);border-color:var(--blog-text-brand)}.rc-share-toast{position:fixed;bottom:28px;left:50%;transform:translateX(-50%) translateY(6px);background:var(--blog-text-primary);color:var(--blog-neutral-0);font-family:var(--blog-font-sans);font-size:var(--blog-fs-small);font-weight:500;padding:9px 18px;border-radius:100px;opacity:0;pointer-events:none;transition:opacity .18s ease,transform .18s ease;z-index:9999;white-space:nowrap}.rc-share-toast.is-visible{opacity:1;transform:translateX(-50%) translateY(0)}.rc-article-header{display:flex;flex-direction:column;gap:var(--blog-space-4)}.rc-article-title,.rc-prose .rc-article-title{margin:0;font-family:var(--blog-font-sans);font-size:48px;font-weight:500;line-height:1.1;letter-spacing:-.6px;color:var(--blog-text-primary)}.rc-article-subcopy,.rc-prose .rc-article-subcopy{margin:4px 0 0;font-family:var(--blog-font-sans);font-size:20px;font-weight:400;line-height:1.4;color:var(--blog-text-primary);max-width:65ch}.rc-article-pagehead .rc-article-subcopy{display:none}.rc-article-deck{margin:0 0 var(--blog-space-9);font-family:var(--blog-font-sans);font-size:20px;font-weight:400;line-height:1.4;color:var(--blog-text-secondary);max-width:65ch}.rc-article-tags{display:flex;align-items:center;flex-wrap:wrap;gap:4px;margin:0}.rc-article-tag{font-family:var(--blog-font-mono);font-size:16px;font-weight:400;line-height:1;color:var(--blog-text-brand)}.rc-article-tag:before{content:"["}.rc-article-tag:after{content:"]"}.rc-prose{font-family:var(--blog-font-sans);color:var(--blog-text-primary)}.rc-prose p{margin:0 0 24px;font-family:var(--blog-font-sans)}.rc-prose li,.rc-prose p{font-size:var(--blog-fs-body);line-height:1.5;color:var(--blog-text-primary)}.rc-prose li{margin:0 0 4px;padding-left:6px}.rc-prose li:last-child{margin-bottom:0}.rc-prose li::marker{color:var(--blog-text-tertiary);font-size:.9em}.rc-prose li>p{margin:0 0 4px}.rc-prose li>ol,.rc-prose li>ul{margin:4px 0 0}.rc-prose strong{color:var(--blog-text-primary);font-weight:500}.rc-prose em{font-style:italic}.rc-prose li>br,.rc-prose p>br{content:"";display:block;margin-top:12px}.rc-prose h1,.rc-prose h2,.rc-prose h3,.rc-prose h4,.rc-prose h5,.rc-prose h6{font-family:var(--blog-font-sans);color:var(--blog-text-primary);scroll-margin-top:calc(38px + var(--blog-space-7))}.rc-prose h1{margin:var(--blog-space-9) 0 var(--blog-space-3);font-size:var(--blog-fs-h1);letter-spacing:-.3px}.rc-prose h1,.rc-prose h2{font-weight:500;line-height:1.3}.rc-prose h2{margin:var(--blog-space-9) 0 var(--blog-space-5);font-size:var(--blog-fs-h2);letter-spacing:-.2px}.rc-prose h3{margin:var(--blog-space-7) 0 var(--blog-space-3);font-size:var(--blog-fs-h3);font-weight:500;line-height:1.3;letter-spacing:-.1px}.rc-prose>section>h2{font-size:var(--blog-fs-h1);letter-spacing:-.3px}.rc-prose>section>section{padding-left:0}.rc-prose section section>h2{font-size:20px;letter-spacing:-.2px;margin-top:var(--blog-space-8);margin-bottom:8px;padding-left:28px;text-indent:-28px}.rc-prose section section>blockquote,.rc-prose section section>ol,.rc-prose section section>p,.rc-prose section section>ul{padding-left:24px}.rc-prose section section>.cell,.rc-prose section section>.sourceCode,.rc-prose section section>table{margin-left:24px}.rc-prose section section:first-of-type>h2{margin-top:var(--blog-space-3)}.rc-prose h4,.rc-prose h5,.rc-prose h6{margin:var(--blog-space-5) 0 var(--blog-space-3);font-size:var(--blog-fs-body);font-weight:500;line-height:1.3}.rc-prose a{color:var(--blog-text-brand);text-decoration:none;border-bottom:1px solid transparent;transition:border-color var(--blog-duration-fast) var(--blog-ease-out)}.rc-prose a:hover{border-bottom-color:var(--blog-text-brand)}.rc-prose ol,.rc-prose ul{margin:0 0 24px;padding-left:28px}.rc-prose code:not(pre code){font-family:var(--blog-font-mono);font-size:.88em;padding:1px 5px;border-radius:var(--blog-radius-sm);background:var(--blog-bg-tint);color:var(--blog-text-primary);white-space:pre-wrap}.rc-prose blockquote{margin:24px 0;padding:4px var(--blog-space-5);border-left:2px solid var(--blog-text-brand);color:var(--blog-text-primary);font-style:italic}.rc-prose blockquote p{margin-bottom:6px}.rc-prose blockquote p:last-child{margin-bottom:0}.rc-prose hr{border:none;border-top:1px solid var(--blog-divider-soft);margin:24px 0}.rc-prose table{width:100%;border-collapse:collapse;margin:24px 0;font-size:var(--blog-fs-small);line-height:1.5}.rc-prose td,.rc-prose th{text-align:left;padding:var(--blog-space-3) var(--blog-space-4) var(--blog-space-3) 0;border-bottom:1px solid var(--blog-divider);vertical-align:top}.rc-prose th{font-family:var(--blog-font-mono);font-size:var(--blog-fs-meta);font-weight:500;letter-spacing:.4px;text-transform:uppercase;color:var(--blog-text-primary);border-bottom-color:var(--blog-divider-soft)}.rc-prose figure{margin:0;padding:0;display:block}.rc-prose figure>p{margin:0}.rc-prose figure.figure{overflow:auto;margin:24px 0}.rc-prose figure.figure>.code-fold{padding:6px 16px;border-bottom:1px solid rgba(255,255,255,.06)}.rc-prose figure.figure>.code-fold>summary{color:var(--blog-neutral-40);cursor:pointer;font-family:var(--blog-font-mono);font-size:var(--blog-fs-small);-webkit-user-select:none;-moz-user-select:none;user-select:none;list-style:none}.rc-prose figure.figure>.code-fold>summary::-webkit-details-marker{display:none}.rc-prose figure.figure>.code-fold>pre,.rc-prose figure.figure>pre.mermaid{border:none;border-radius:0;margin:0}.rc-prose figure.figure>pre.mermaid{background:transparent}.rc-prose img{display:block;max-width:100%;height:auto;margin:0 auto;border-radius:var(--blog-radius-md)}.rc-prose figcaption{margin-top:6px;font-family:var(--blog-font-mono);font-size:11px;letter-spacing:.4px;text-transform:uppercase;color:var(--blog-text-tertiary);text-align:center}.rc-prose .math.display,.rc-prose .math.inline{font-family:var(--blog-font-sans)}.rc-prose .math.display{display:block;margin:16px auto;text-align:center;overflow-x:auto;overflow-y:hidden}.rc-prose p:has(>.math.display){margin:0}.rc-prose p:has(+p>.math.display){margin-bottom:0}.rc-prose mjx-container[display=true]{margin:0 auto!important;padding:0!important;max-width:100%;font-size:22px!important}.rc-prose mjx-container[display=false]{margin:0!important}.rc-prose .cell{margin:24px 0;position:relative}.rc-prose .sourceCode,.rc-prose pre{background:var(--blog-bg-dark-soft);color:var(--blog-text-primary-dark);border-radius:var(--blog-radius-sm);padding:var(--blog-space-4) var(--blog-space-5);margin:0;overflow-x:auto;border:1px solid var(--blog-neutral-90)}.rc-prose .sourceCode pre code,.rc-prose pre code{font-family:var(--blog-font-mono);font-size:var(--blog-fs-small);line-height:1.5;background:transparent;border:none;color:var(--blog-text-primary-dark);padding:0;white-space:pre}.rc-prose .code-copy-button,.rc-prose .sourceCode a[aria-hidden=true]{display:none}.rc-prose .sourceCode,.rc-prose .sourceCode code,.rc-prose .sourceCode pre,.rc-prose .sourceCode span{color:var(--blog-neutral-10)}.rc-prose .sourceCode .cf,.rc-prose .sourceCode .im,.rc-prose .sourceCode .kw{color:var(--blog-blue-30);font-weight:500}.rc-prose .sourceCode .bu,.rc-prose .sourceCode .dt,.rc-prose .sourceCode .ot{color:var(--blog-blue-20)}.rc-prose .sourceCode .fu{color:var(--blog-neutral-0)}.rc-prose .sourceCode .at,.rc-prose .sourceCode .va{color:var(--blog-neutral-10)}.rc-prose .sourceCode .ch,.rc-prose .sourceCode .ss,.rc-prose .sourceCode .st,.rc-prose .sourceCode .vs{color:var(--blog-yellow-50)}.rc-prose .sourceCode .co,.rc-prose .sourceCode .cv,.rc-prose .sourceCode .do{color:var(--blog-neutral-40);font-style:italic}.rc-prose .sourceCode .bn,.rc-prose .sourceCode .cn,.rc-prose .sourceCode .dv,.rc-prose .sourceCode .fl{color:#ffb86c}.rc-prose .sourceCode .op,.rc-prose .sourceCode .sc{color:var(--blog-neutral-30)}.rc-prose .sourceCode .al,.rc-prose .sourceCode .er,.rc-prose .sourceCode .pp{color:#ff5e5e}.rc-prose p:has(>.math.display)+p{margin-top:0}.rc-prose h1+.cell,.rc-prose h1+blockquote,.rc-prose h1+figure,.rc-prose h1+ol,.rc-prose h1+pre,.rc-prose h1+table,.rc-prose h1+ul,.rc-prose h2+.cell,.rc-prose h2+blockquote,.rc-prose h2+figure,.rc-prose h2+ol,.rc-prose h2+pre,.rc-prose h2+table,.rc-prose h2+ul,.rc-prose h3+.cell,.rc-prose h3+blockquote,.rc-prose h3+figure,.rc-prose h3+ol,.rc-prose h3+pre,.rc-prose h3+table,.rc-prose h3+ul{margin-top:0}.rc-prose .cell+p,.rc-prose blockquote+p,.rc-prose figure+p,.rc-prose ol+p,.rc-prose pre+p,.rc-prose table+p,.rc-prose ul+p{margin-top:28px}.related-posts{padding-top:240px;padding-bottom:var(--blog-space-11);display:flex;flex-direction:column;gap:56px}.related-posts-header{display:flex;align-items:center;justify-content:space-between;gap:var(--blog-space-5);flex-wrap:wrap}.related-posts-header .resources-heading{margin:0}.related-posts-cta{display:inline-flex;align-items:center;justify-content:center;height:36px;padding:0 var(--blog-space-6);border-radius:var(--blog-radius-pill);background:var(--blog-bg-dark);color:var(--blog-text-primary-dark);font-family:var(--blog-font-sans);font-size:var(--blog-fs-button);letter-spacing:.3px;text-decoration:none;flex-shrink:0;transition:background-color var(--blog-duration-fast) var(--blog-ease-out)}.related-posts-cta:hover{background:var(--blog-text-brand)}@media (max-width:1180px){.rc-article-frame{position:relative;grid-template-columns:1fr;grid-template-rows:auto 1fr;justify-content:center;-moz-column-gap:0;column-gap:0}.rc-article-content-container{grid-column:1/-1}.rc-article-rail-left{flex-direction:row;justify-content:space-between;align-items:start;flex-wrap:wrap}.rc-article-rail-block{height:-webkit-fill-available;height:-moz-available;height:stretch}.rc-article-frame.is-past-pagehead .rc-article-rail-left{position:relative!important}.rc-article-rail-right{display:none}}.rc-article-page{background:var(--blog-bg);color:var(--blog-text-primary);min-height:100vh}