.rc-article-pagehead{background:var(--blog-bg-tint);padding:calc(var(--blog-space-3) + 38px + 100px) var(--blog-margin-x) var(--blog-space-10);text-align:center}.rc-article-pagehead .rc-article-header{max-width:72rem;margin:0 auto}.rc-article-pagehead .rc-article-tags{justify-content:center;margin-bottom:var(--blog-space-3)}.rc-article-frame{display:grid;grid-template-columns:repeat(12,1fr);-moz-column-gap:84px;column-gap:84px;padding:var(--blog-space-7) var(--blog-margin-x) 0;align-items:start;--blog-col-w:calc((100vw - 2 * var(--blog-margin-x) - 11 * 84px) / 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) / 3);padding-right:calc(var(--blog-col-w) / 3);margin-top:var(--blog-space-9)}.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-content>.qmd-toc:first-child+*,.rc-article-content>.qmd-toc:first-child+*>:first-child,.rc-article-content>:first-child,.rc-article-content>:first-child>:first-child,.rc-article-content>:first-child>:first-child>:first-child,.rc-prose>.qmd-toc:first-child+*,.rc-prose>.qmd-toc:first-child+*>:first-child,.rc-prose>:first-child,.rc-prose>:first-child>:first-child{margin-top:0}.rc-article-rail-right{grid-column:11/span 2}.rc-article-rail-left,.rc-article-rail-right{--rail-top:calc(var(--blog-space-3) * 2 + 38px + var(--blog-space-5));position:sticky;top:var(--rail-top);align-self:start;display:flex;flex-direction:column;gap:var(--blog-space-5);margin-top:var(--blog-space-9);padding-right:var(--blog-space-3)}@media (min-width:1181px){.rc-article-frame.is-past-pagehead .rc-article-rail-left,.rc-article-frame.is-past-pagehead .rc-article-rail-right{max-height:calc(100vh - var(--rail-top) - var(--blog-space-5))}.rc-article-frame.is-past-pagehead .rc-article-toc{overflow-y:scroll;overscroll-behavior:contain;scrollbar-gutter:stable}}.rc-article-rail-block{display:flex;flex-direction:column;gap:0;min-height:0;flex:1 1 auto}.rc-article-views{font-family:var(--blog-font-mono);font-size:var(--blog-fs-meta);line-height:1;font-variant-numeric:tabular-nums}.rc-article-rail-label,.rc-article-toc-label,.rc-article-views{margin:0;letter-spacing:.1em;text-transform:uppercase;color:var(--blog-text-tertiary)}.rc-article-rail-label,.rc-article-toc-label{padding-bottom:var(--blog-space-4);border-bottom:1px solid var(--blog-divider);font-family:var(--blog-font-mono);font-size:var(--blog-fs-meta);font-weight:400;line-height:1.3}.rc-article-toc-label{color:var(--blog-neutral-40)}.rc-article-rail-meta{display:inline-flex;align-items:center;gap:var(--blog-space-3);color:var(--blog-text-primary)}.rc-article-rail-desc,.rc-article-rail-meta{margin:0;font-family:var(--blog-font-sans);font-size:var(--blog-fs-small);font-weight:400}.rc-article-rail-desc{line-height:1.5;color:var(--blog-text-muted)}.rc-article-author-avatar{width:30px;height:30px;border-radius:50%;flex-shrink:0;-o-object-fit:cover;object-fit:cover;background:var(--blog-bg-soft);box-shadow:inset 0 0 0 1px var(--blog-divider);display:block}.rc-article-author-avatar--float{align-self:flex-end;margin-bottom:var(--blog-space-3)}.rc-article-author-avatar--fallback{display:inline-flex;align-items:center;justify-content:center;font-family:var(--blog-font-mono);font-size:12px;font-weight:500;line-height:1;letter-spacing:0;text-transform:uppercase;color:var(--blog-text-secondary);background:linear-gradient(135deg,var(--blog-neutral-10),var(--blog-neutral-20))}.rc-article-toc{flex:1 1 auto;min-height:0;overflow-y:visible;padding-bottom:var(--blog-space-8);scrollbar-width:thin;scrollbar-color:var(--blog-divider-soft) transparent}.rc-article-toc::-webkit-scrollbar{width:6px;-webkit-appearance:none}.rc-article-toc::-webkit-scrollbar-track{background:var(--blog-divider);border-radius:var(--blog-radius-pill)}.rc-article-toc::-webkit-scrollbar-thumb{background:var(--blog-divider-soft);border-radius:var(--blog-radius-pill)}.rc-article-toc ul{list-style:none!important;padding:0;margin:0;display:flex;flex-direction:column}.rc-article-toc li{margin:0}.rc-article-toc li:not(:last-child){border-bottom:1px solid var(--blog-divider)}.rc-article-toc a{display:block;padding:var(--blog-space-3) 0;font-family:var(--blog-font-sans);font-size:var(--blog-fs-small);font-weight:400;line-height:1.4;letter-spacing:.02em;color:var(--blog-text-muted);text-decoration:none;transition:color var(--blog-duration-fast) var(--blog-ease-out)}.rc-article-toc a:hover{color:var(--blog-text-primary)}.rc-article-toc a.is-active{color:var(--blog-text-brand);font-weight:400}.rc-article-meta-list{list-style:none!important;padding:0;margin:0;display:flex;flex-direction:column}.rc-article-meta-list-item{margin:0;padding:var(--blog-space-4) 0;display:flex;flex-direction:column;gap:var(--blog-space-3)}.rc-article-meta-list-item:not(:last-child){border-bottom:1px solid var(--blog-divider)}.rc-article-meta-list-label{font-family:var(--blog-font-mono);font-size:var(--blog-fs-meta);line-height:1;letter-spacing:.1em;text-transform:uppercase;color:var(--blog-text-tertiary)}.rc-article-meta-list-value{font-family:var(--blog-font-sans);font-size:var(--blog-fs-small);line-height:1.4;letter-spacing:.02em;color:var(--blog-text-muted);font-variant-numeric:tabular-nums}.rc-article-author-row{display:inline-flex;align-items:center;gap:var(--blog-space-3);min-width:0}.rc-article-author-item{flex-direction:row;align-items:center;gap:var(--blog-space-3)}.rc-article-author-text{display:flex;flex-direction:column;gap:2px;min-width:0}.rc-article-author-kicker{font-family:var(--blog-font-mono);font-size:var(--blog-fs-meta);line-height:1;letter-spacing:.1em;text-transform:uppercase;color:var(--blog-text-tertiary)}.rc-article-author-name{font-family:var(--blog-font-sans);font-size:var(--blog-fs-small);font-weight:500;line-height:1.3;letter-spacing:0;color:var(--blog-text-secondary)}.rc-article-share-row{display:inline-flex;align-items:center;gap:var(--blog-space-3)}.rc-article-share-link{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:50%;background:var(--blog-bg-soft);border:1px solid var(--blog-divider);color:var(--blog-text-muted);text-decoration:none;transition:background-color var(--blog-duration-fast) var(--blog-ease-out),border-color var(--blog-duration-fast) var(--blog-ease-out),color var(--blog-duration-fast) var(--blog-ease-out)}.rc-article-share-link svg{width:14px;height:14px}.rc-article-share-link[aria-label="Share on X"] svg{width:12px;height:12px}.rc-article-share-link[aria-label="Copy link"] svg{width:13px;height:13px}.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;align-items:center;gap:var(--blog-space-5)}.rc-article-meta-row{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:var(--blog-space-4)}.rc-article-meta-divider{width:1px;height:12px;background:var(--blog-divider-soft);flex-shrink:0}.rc-article-meta-item{margin:0;font-family:var(--blog-font-mono);font-size:var(--blog-fs-meta);font-variant-numeric:tabular-nums;white-space:nowrap}.rc-article-byline-author,.rc-article-meta-item{line-height:1;letter-spacing:.1em;text-transform:uppercase;color:var(--blog-text-tertiary)}.rc-article-byline-author{display:inline-flex;align-items:center;gap:var(--blog-space-3);font-family:var(--blog-font-mono);font-size:var(--blog-fs-meta)}.rc-article-title,.rc-prose .rc-article-title{margin:0;font-family:var(--blog-font-sans);font-size:var(--blog-fs-display);font-weight:400;line-height:1.1;letter-spacing:-.64px;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:var(--blog-fs-h3);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:var(--blog-fs-h3);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:8px;margin:0}.rc-article-tag{display:inline-flex;align-items:center;gap:8px;font-family:var(--blog-font-mono);font-size:var(--blog-fs-small);font-weight:400;line-height:1;letter-spacing:.1em;text-transform:uppercase;color:var(--blog-text-brand)}.rc-article-tag:not(:last-child):after{content:"·";color:var(--blog-text-tertiary);opacity:.7}.rc-article-tag-type{font-weight:600}.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-primary);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:400;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:400;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:var(--blog-fs-h3);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:400;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!important}.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:var(--blog-fs-label);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;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;display:flex;flex-direction:column;gap:var(--blog-space-3)}.rc-prose .cell .cell-output:before{content:"Output";font-size:var(--blog-fs-small);font-weight:500;letter-spacing:.4px;line-height:1.5}.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-80)}.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:var(--blog-rhythm-section);padding-bottom:var(--blog-rhythm-section);display:flex;flex-direction:column;gap:var(--blog-space-8)}.related-posts .resources-grid{margin-top:0}.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-pagehead{display:block}.rc-article-content-container,.rc-article-pagehead .rc-article-header{padding-left:0;padding-right:0}.rc-article-content-container{grid-column:1/-1}.rc-article-rail-left{position:static;max-height:none;overflow:visible;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-rail-right{display:none}}.rc-article-page{background:var(--blog-bg);color:var(--blog-text-primary);min-height:100vh}