:root{--main-width:720px}*,*::before,*::after{box-sizing:border-box}html{overflow-y:scroll;-webkit-text-size-adjust:100%;text-size-adjust:100%}body,h1,h2,h3,h4,h5,h6,p,ul,ol,dl,dd,figure,blockquote,pre{margin:0;padding:0}body{background:var(--paper);overflow-wrap:break-word}a{color:inherit;text-decoration:none}button,input{font:inherit;color:inherit}button{border:0;background:0 0;cursor:pointer}img,video{display:block;max-width:100%;height:auto}.main,.footer{max-width:calc(var(--main-width) + var(--gap) * 2);margin-inline:auto;padding-inline:var(--gap)}.nav{display:flex;flex-wrap:wrap;justify-content:space-between;max-width:calc(var(--nav-width) + var(--gap) * 2);margin-inline:auto}.logo,#menu{display:flex;margin-inline:var(--gap)}#menu,#searchResults{list-style:none}#menu{gap:var(--s-6)}body:not(.dark) #sun,body.dark #moon{display:none}.post-title{display:flex;align-items:center;gap:var(--s-2)}.entry-hint svg{width:var(--s-5);height:var(--s-5)}.post-content ul,.post-content ol{padding-inline-start:var(--s-6)}.post-content pre{position:relative;overflow-x:auto;background:var(--code-paper)}.post-content pre code{display:block;min-width:100%;width:max-content}.highlight{position:relative;background:var(--code-paper)}.copy-code{position:absolute;opacity:0;z-index:1}.highlight:hover .copy-code,pre:hover .copy-code,.copy-code:focus-visible{opacity:1}.anchor{visibility:hidden;font-size:var(--fs-2)}:is(h1,h2,h3,h4,h5,h6):hover .anchor,.anchor:focus-visible{visibility:visible}.entry-cover{margin-block:var(--gap-block)}#searchInput{width:100%}#searchStatus{color:var(--muted);font-size:var(--fs-2);line-height:var(--lh-2)}.top-link{position:fixed;visibility:hidden;opacity:0;z-index:5}.paginav{display:flex}.paginav a{flex:1}.paginav .next{text-align:end}@media(prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}@font-face{font-family:geist;font-style:normal;font-weight:400;font-display:swap;src:url(../../fonts/Geist-latin-400.woff2)format("woff2")}@font-face{font-family:geist;font-style:normal;font-weight:500;font-display:swap;src:url(../../fonts/Geist-latin-500.woff2)format("woff2")}@font-face{font-family:geist;font-style:normal;font-weight:600;font-display:swap;src:url(../../fonts/Geist-latin-600.woff2)format("woff2")}@font-face{font-family:jetbrains mono;font-style:normal;font-weight:400;font-display:swap;src:url(../../fonts/JetBrainsMono-Regular-latin.woff2)format("woff2");unicode-range:U+20-7E,U+A0-FF,U+131,U+152-153,U+2010-2015,U+2018-201E,U+2020-2022,U+2026,U+2030,U+2039-203A,U+20AC,U+2122,U+2190-2199,U+21D0-21D4,U+2212,U+2248,U+2260,U+2264-2265,U+2500-257F,U+2713,U+2717}:root{--font-sans:"Geist", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-mono:"JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;--fs-1:0.8125rem;--fs-2:0.9375rem;--fs-3:1.125rem;--fs-4:1.375rem;--fs-5:1.625rem;--fs-6:1.9375rem;--fs-7:2.8125rem;--lh-1:1.25rem;--lh-2:1.5rem;--lh-3:1.75rem;--lh-3-prose:1.875rem;--lh-4:1.75rem;--lh-4-prose:2rem;--lh-5:2rem;--lh-6:2.25rem;--lh-7:3rem;--ls-1:0;--ls-2:0;--ls-3:-0.005em;--ls-4:-0.015em;--ls-5:-0.02em;--ls-6:-0.025em;--ls-7:-0.03em;--fw-regular:400;--fw-medium:500;--fw-strong:600;--title-fs:var(--fs-7);--title-lh:var(--lh-7);--title-ls:var(--ls-7);--s-half:2px;--s-1:4px;--s-2:8px;--s-3:12px;--s-4:16px;--s-5:20px;--s-6:24px;--s-8:32px;--s-10:40px;--s-12:48px;--s-16:64px;--s-24:96px;--gap-text:var(--s-6);--gap-block:var(--s-8);--gap-section:var(--s-12);--gap-page:var(--s-12);--r-sm:6px;--r-lg:10px;--hair:1px;--stroke:2px;--icon-chevron:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");--when-col:7.5rem;--year-col:5rem;--rail:calc(var(--year-col) + var(--when-col));--measure:38.75rem;--author-cols:3;--author-gap:var(--s-10);--icon:18px;--paper:#fafafa;--surface:#efeff1;--surface-2:#e2e2e6;--line:#e4e4e7;--edge:#85858f;--ink:#09090b;--text:#27272a;--muted:#52525b;--faint:#696973;--code-paper:#18181b;--code-ink:#d4d4d8;--code-comment:#a1a1aa;--code-button:#3f3f46;color-scheme:light}@media screen{.dark{--paper:#09090b;--surface:#1f1f23;--surface-2:#2e2e33;--line:#27272a;--edge:#71717a;--ink:#fafafa;--text:#d4d4d8;--muted:#a1a1aa;--faint:#8a8a94;color-scheme:dark}:root:has(body.dark){color-scheme:dark}}@media screen and (scripting:none) and (prefers-color-scheme:dark){body{--paper:#09090b;--surface:#1f1f23;--surface-2:#2e2e33;--line:#27272a;--edge:#71717a;--ink:#fafafa;--text:#d4d4d8;--muted:#a1a1aa;--faint:#8a8a94}:root{color-scheme:dark}}:root,body,.dark{--gap:var(--s-6);--header-height:var(--s-16);--nav-width:var(--main-width)}body{color:var(--text);font-family:var(--font-sans);font-size:var(--fs-3);line-height:var(--lh-3-prose);letter-spacing:var(--ls-3);font-synthesis:style;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}.list,.dark.list,.list:not(.dark)::-webkit-scrollbar-track{background:var(--paper)}.list:not(.dark)::-webkit-scrollbar-thumb{border-color:var(--paper)}h1,h2,h3,h4,h5,h6,strong,b{font-weight:var(--fw-strong)}code,pre,kbd,samp{font-family:var(--font-mono);font-weight:var(--fw-regular);font-variant-ligatures:none;letter-spacing:0}::selection{color:var(--ink);background:var(--surface-2)}.post-content a,.post-description a,.footer span a{color:var(--ink);text-decoration:underline;text-decoration-thickness:var(--hair);text-underline-offset:.2em;text-decoration-color:var(--edge);border:0;box-shadow:none}.post-content a:hover,.post-description a:hover,.footer span a:hover{color:var(--ink);text-decoration-color:initial;border:0}#menu a:hover,#theme-toggle:hover,.breadcrumbs a:hover,.toc a:hover,.footer-nav a:hover,.page-rss:hover{color:var(--ink)}#searchResults a:hover,#searchResults .focus a{text-decoration:underline;text-decoration-thickness:var(--hair);text-underline-offset:.2em}:focus-visible,#theme-toggle:focus-visible,.top-link:focus-visible,.toc summary:focus-visible,#searchResults a:focus-visible{outline:var(--stroke)solid var(--ink);outline-offset:var(--s-half);border-radius:var(--r-sm)}.terms-tags a,.terms-tags a:active,#searchResults li:active,#searchResults .focus{transform:none;transition:none}.skip-link{position:absolute;top:calc(var(--s-24) * -1);left:var(--s-2);z-index:100;padding:var(--s-2)var(--s-4);color:var(--paper);font-size:var(--fs-2);line-height:var(--lh-2);background:var(--ink);border-radius:var(--r-sm)}.skip-link:focus{top:var(--s-2)}body{display:flex;flex-direction:column;min-height:100vh;min-height:100dvh}.main{flex:1;width:100%;min-height:auto;padding-top:0;padding-bottom:0}.header{border-bottom:var(--hair)solid var(--line);background:var(--paper)}.nav{display:grid;grid-template-columns:auto minmax(0,1fr)auto var(--s-10)var(--s-10);grid-template-areas:"brand links socials search theme";gap:var(--s-4);align-items:center;max-width:86rem;min-height:var(--header-height);padding-inline:var(--s-12);line-height:var(--lh-2)}.logo,#menu{align-items:center}#menu{display:contents}.nav .logo{grid-area:brand;min-width:0;margin:0}#menu .menu-item{grid-area:links;justify-self:end}#menu .menu-search{grid-area:search}#menu .menu-external{display:none}#menu .menu-item>a{display:inline-flex;align-items:center;gap:var(--s-1);min-height:var(--s-10)}.menu-label-short,.logo-label-short{display:none}#menu .menu-search .menu-item-text{display:none}#menu .menu-search>a{display:flex;justify-content:center;width:var(--s-10);height:var(--s-10);min-height:var(--s-10);border-radius:var(--r-sm)}#menu .menu-search>a:hover{background:var(--surface)}.menu-search-icon,.menu-search-icon svg{display:block;width:var(--icon);height:var(--icon)}.logo a{display:flex;align-items:center;gap:var(--s-2);font-size:var(--fs-2);font-weight:var(--fw-strong);letter-spacing:var(--ls-2)}.logo a .logo-svg{flex:none;width:var(--s-6);height:var(--s-6);margin:0 0 0 calc(var(--s-half) * -1);transform:none}.logo a img{width:auto;height:var(--lh-3);object-fit:contain}.logo .brand-dark,.dark .logo .brand-light{display:none}.dark .logo .brand-dark{display:block}@media(scripting:none) and (prefers-color-scheme:dark){.logo .brand-light{display:none}.logo .brand-dark{display:block}}.logo-switches{display:none}#menu a,#theme-toggle{color:var(--muted);font-size:var(--fs-2);font-weight:var(--fw-medium);letter-spacing:var(--ls-2)}#menu .active{color:var(--ink);font-weight:var(--fw-medium);border-bottom:0}#menu a:hover .active{color:inherit}.header-actions{display:contents;color:var(--muted)}.header-actions .menu-socials{grid-area:socials}.menu-theme{grid-area:theme}.menu-socials{display:flex;align-items:center;gap:var(--s-1)}a.menu-social{display:flex;align-items:center;justify-content:center;width:var(--s-8);height:var(--s-8);border-radius:var(--r-sm)}a.menu-social:hover{color:var(--ink);background:var(--surface);text-decoration:none}.menu-social svg{display:block;width:var(--icon);height:var(--icon);fill:currentColor}#theme-toggle{display:flex;align-items:center;justify-content:center;width:var(--s-10);height:var(--s-10);padding:0;border-radius:var(--r-sm)}#theme-toggle:hover{background:var(--surface)}button#theme-toggle{margin:0}@media(scripting:none){.menu-theme{display:none}}#theme-toggle svg{width:var(--icon);height:var(--icon)}.home-intro,.page-header,.post-header{--slot:calc(var(--lh-1) + var(--s-4));margin:var(--s-8)0 var(--s-12);padding-top:var(--slot)}.home-intro h1,.page-header h1,.post-title{margin:0;color:var(--ink);font-size:var(--title-fs);font-weight:var(--fw-strong);line-height:var(--title-lh);letter-spacing:var(--title-ls);text-wrap:balance}.post-description{margin:var(--s-5)0 0;color:var(--muted);font-size:var(--fs-4);line-height:var(--lh-4-prose);letter-spacing:var(--ls-4);text-wrap:pretty}.home-intro-text{margin:var(--s-3)0 0;color:var(--muted);font-size:var(--fs-3);line-height:var(--lh-3);letter-spacing:var(--ls-3);text-wrap:pretty}.breadcrumbs,.page-eyebrow{display:block;margin:calc(var(--slot) * -1)0 var(--s-4);color:var(--muted);font-size:var(--fs-1);font-weight:var(--fw-medium);line-height:var(--lh-1);letter-spacing:var(--ls-1)}.breadcrumbs a{color:inherit;font-size:inherit}.when{display:flex;flex-direction:column;font-variant-numeric:tabular-nums}.when>*{white-space:nowrap}.when-date{color:var(--muted)}.when-read{color:var(--faint)}.post-meta .when-date{font-size:var(--fs-2);line-height:var(--lh-2);letter-spacing:var(--ls-2)}.post-meta .when-read{font-size:var(--fs-1);line-height:var(--lh-1);letter-spacing:var(--ls-1)}.post-header .post-meta{display:grid !important;grid-template-columns:var(--when-col)minmax(0,1fr);column-gap:var(--s-6);align-items:start;margin-top:var(--s-8)}.authors{display:grid;grid-template-columns:repeat( var(--author-cols),fit-content(calc((100% - (var(--author-cols) - 1) * var(--author-gap))/var(--author-cols))) );gap:var(--s-4)var(--author-gap);list-style:none}.author{display:flex;flex-direction:column}.author-name{color:var(--ink);font-size:var(--fs-2);font-weight:var(--fw-medium);line-height:var(--lh-2);letter-spacing:var(--ls-2)}.author-role{color:var(--faint);font-size:var(--fs-1);line-height:var(--lh-1);letter-spacing:var(--ls-1)}.post-year+.post-year{margin-top:var(--s-24)}.post-year-heading{margin-bottom:var(--s-6);color:var(--ink);font-size:var(--fs-4);font-weight:var(--fw-strong);line-height:var(--lh-4);letter-spacing:var(--ls-4);font-variant-numeric:tabular-nums}.post-list{list-style:none}.post-item{position:relative;display:grid;grid-template-columns:var(--when-col)minmax(0,1fr);column-gap:var(--s-6);align-items:start}.post-item+.post-item{margin-top:var(--s-12)}.post-item .when,.post-item-body{display:contents}.post-item .when>*{grid-column:1}.post-item-body>*{grid-column:2}.post-item .when-date,.post-item-title{grid-row:1;font-size:var(--fs-4);line-height:var(--lh-4);letter-spacing:var(--ls-4)}.post-item .when-read,.post-item-summary{grid-row:2;margin-top:var(--s-2);font-size:var(--fs-2);line-height:var(--lh-2);letter-spacing:var(--ls-2)}.post-item-title{text-wrap:balance}.post-item-title a{color:var(--ink)}.post-item-title a::after{content:"";position:absolute;inset:0}.post-item-summary{max-width:var(--measure);color:var(--muted);text-wrap:pretty}.post-item-authors{max-width:var(--measure);margin-top:var(--s-3);color:var(--text);font-size:var(--fs-1);font-weight:var(--fw-medium);line-height:var(--lh-1);letter-spacing:var(--ls-1)}.nowrap{white-space:nowrap}.post-item-draft{margin-inline-start:var(--s-2);color:var(--faint);font-size:var(--fs-1);font-weight:var(--fw-regular);letter-spacing:var(--ls-1)}@media(hover:hover){.post-item:hover .post-item-title a{text-decoration:underline;text-decoration-thickness:var(--hair);text-underline-offset:.2em}}.post-content{color:var(--text);line-height:var(--lh-3-prose)}.post-content p,.post-content ul,.post-content ol,.post-content dl{margin-bottom:var(--gap-text)}.post-content figure,.post-content blockquote,.post-content table:not(.highlighttable,.highlight table),.post-content .highlight:not(table),.post-content>pre,.post-content img,.post-content video,.post-content .youtube-container{margin:var(--gap-block)0}.post-content>:first-child,.post-content>p:first-child>img:first-child{margin-top:0}.post-content h1,.post-content h2{margin:var(--gap-section)0 var(--s-4);font-size:var(--fs-5);line-height:var(--lh-5);letter-spacing:var(--ls-5)}.post-content h3{margin:var(--gap-block)0 var(--s-2);font-size:var(--fs-3);line-height:var(--lh-3);letter-spacing:var(--ls-3)}.post-content h4,.post-content h5,.post-content h6{margin:var(--gap-text)0 var(--s-1);font-size:var(--fs-2);line-height:var(--lh-2);letter-spacing:var(--ls-2)}.post-content h1,.post-content h2,.post-content h3,.post-content h4,.post-content h5,.post-content h6{color:var(--ink);text-wrap:balance}.post-content strong{color:var(--ink)}.post-content a strong{color:inherit}h1:hover .anchor,h2:hover .anchor,h3:hover .anchor,h4:hover .anchor,h5:hover .anchor,h6:hover .anchor{margin-inline-start:var(--s-2);color:var(--faint);font-weight:var(--fw-regular);text-decoration:none}:is(h1,h2,h3,h4,h5,h6) .anchor:hover{color:var(--ink)}.post-content ul,.post-content ol{padding-inline-start:var(--s-6)}.post-content li{margin-top:var(--s-2)}.post-content li>ul,.post-content li>ol{margin-bottom:0}.post-content li::marker{color:var(--faint)}.post-content code{margin:0;padding:var(--s-half)var(--s-1);color:var(--ink);font-size:var(--fs-2);line-height:1;background:var(--surface);border-radius:var(--r-sm);box-decoration-break:clone;-webkit-box-decoration-break:clone}.post-content h1 code,.post-content h2 code{font-size:var(--fs-4)}.post-content a code{color:inherit;border-radius:var(--r-sm);box-shadow:none}.post-content h4 code,.post-content table code,.post-content figcaption code{font-size:var(--fs-1)}.post-content .highlight:not(table),.post-content>pre{border-radius:var(--r-lg)}.post-content .highlight pre{background:0 0 !important}.post-content pre code{padding:var(--s-4)var(--s-5);color:var(--code-ink);font-size:var(--fs-2);line-height:var(--lh-2);border-radius:var(--r-lg);word-break:normal}.post-content ul pre{margin-inline-start:0}.post-content .highlight span[style*="#75715e"]{color:var(--code-comment) !important}.post-content .highlight span[style*="#960050"]{color:inherit !important;background:0 0 !important}.copy-code{top:var(--s-4);right:var(--s-4);padding:0 var(--s-2);color:var(--code-ink);font-size:var(--fs-1);line-height:var(--lh-2);letter-spacing:var(--ls-1);background:var(--code-button);border-radius:var(--r-sm)}.post-content blockquote{padding:0 0 0 var(--s-6);color:var(--text);border-inline-start:var(--stroke)solid var(--edge)}.post-content blockquote>:last-child{margin-bottom:0}.post-content .mcp-note{--note-accent:light-dark(#1d4ed8, #93c5fd);--note-background:light-dark(#eff6ff, #101e30);--note-border:light-dark(#bfdbfe, #29476b);--note-header-background:color-mix(in srgb, var(--note-background) 70%, var(--note-border));margin:var(--gap-block)0;color:var(--text);background:var(--note-background);border:var(--hair)solid var(--note-border);border-radius:var(--r-sm);font-size:var(--fs-2);line-height:var(--lh-2);letter-spacing:var(--ls-2);overflow-wrap:anywhere}.post-content .mcp-note-header{display:flex;align-items:flex-start;gap:var(--s-2);padding:var(--s-2)var(--s-5);color:var(--note-accent);background:var(--note-header-background);border-bottom:var(--hair)solid var(--note-border);border-radius:calc(var(--r-sm) - var(--hair))calc(var(--r-sm) - var(--hair))0 0}.post-content .mcp-note-icon{display:block;flex:none;width:var(--icon);height:var(--icon);margin-top:calc((var(--lh-2) - var(--icon))/2)}.post-content .mcp-note-title{flex:1;min-width:0;margin:0;color:inherit;font-size:var(--fs-2);line-height:var(--lh-2);font-weight:var(--fw-strong)}.post-content .mcp-note-content{padding:var(--s-4)var(--s-5)}.post-content .mcp-note-content>*{margin-block:0 var(--s-3)}.post-content .mcp-note-content>:last-child{margin-bottom:0}.post-content .mcp-note-content :not(pre)>code{font-size:var(--fs-1);background:var(--paper)}.post-content .table-wrap{margin:var(--gap-block)0;overflow-x:auto}.post-content .table-wrap>table:not(.highlighttable){display:table;width:100%;margin:0}.post-content table:not(.highlighttable,.highlight table){font-size:var(--fs-2);line-height:var(--lh-2);letter-spacing:var(--ls-2)}.post-content table th,.post-content table:not(.highlighttable,.highlight table,.gist .highlight) td{padding:var(--s-2)var(--s-4)calc(var(--s-2) - var(--hair))0;line-height:var(--lh-2);vertical-align:top;border-bottom:var(--hair)solid var(--line)}.post-content table th{color:var(--ink);font-weight:var(--fw-strong)}.post-content hr{height:var(--hair);margin:var(--gap-section)0;background:var(--line)}.post-content img,.post-content video{display:block;max-width:100%;height:auto;border-radius:var(--r-lg)}.post-content figure img{margin:0}.post-content figure>figcaption,.post-content figure>figcaption>p{margin:var(--s-3)0 0;color:var(--faint);font-size:var(--fs-1);font-weight:var(--fw-regular);line-height:var(--lh-1);letter-spacing:var(--ls-1)}.post-content pre.mermaid{display:flex;justify-content:center;background:0 0;overflow-x:auto}.youtube-container{position:relative;width:100%;padding-bottom:56.25%}.youtube-container iframe{position:absolute;inset:0;width:100%;height:100%;border-radius:var(--r-lg)}.post-content a.mcp-button{display:inline-block;margin:0 var(--s-2)0 0;padding:calc(var(--s-2) - var(--hair))calc(var(--s-4) - var(--hair));color:var(--paper);font-size:var(--fs-2);font-weight:var(--fw-medium);line-height:var(--lh-2);letter-spacing:var(--ls-2);text-decoration:none;background:var(--ink);border:var(--hair)solid var(--ink);border-radius:var(--r-sm)}.post-content a.mcp-button:hover{color:var(--paper);background:var(--text);border-color:var(--text)}.post-content a.mcp-button+a.mcp-button{color:var(--ink);background:0 0;border-color:var(--edge)}.post-content a.mcp-button+a.mcp-button:hover{color:var(--ink);background:var(--surface);border-color:var(--ink)}.post-content>a.mcp-button{display:block;width:fit-content;margin:var(--gap-block)0}.post-content p:has(>a.mcp-button){display:flex;flex-wrap:wrap;row-gap:var(--s-2);margin:var(--gap-block)0}.mcp-button-arrow{margin-inline-start:var(--s-1)}.toc,.dark .toc{margin:calc(var(--gap-block) - var(--s-12))0 var(--gap-block);padding:0;background:var(--surface);border:0;border-radius:var(--r-lg)}.toc details summary,.toc details[open] summary{display:flex;align-items:center;justify-content:space-between;gap:var(--s-4);margin:0;padding:var(--s-3)var(--s-5);color:var(--ink);font-size:var(--fs-2);line-height:var(--lh-2);letter-spacing:var(--ls-2);list-style:none;cursor:pointer}.toc details summary:hover{background:var(--surface-2);border-radius:var(--r-lg)}.toc summary::-webkit-details-marker{display:none}.toc summary::after{content:"";flex:none;width:var(--icon);height:var(--icon);background:currentColor;-webkit-mask:var(--icon-chevron)center/contain no-repeat;mask:var(--icon-chevron)center/contain no-repeat}.toc details[open] summary::after{transform:rotate(180deg)}.toc summary:focus-visible{outline-offset:calc(var(--stroke) * -1);border-radius:var(--r-lg)}.toc .details{font-weight:var(--fw-medium)}.toc .inner{margin:0;padding:0 var(--s-5)var(--s-4);opacity:1}.toc ul{list-style:none}.toc li ul{margin-inline-start:var(--s-4)}.toc a{display:block;padding:var(--s-half)0;color:var(--muted);font-size:var(--fs-2);line-height:var(--lh-2);letter-spacing:var(--ls-2)}.toc .inner>ul>li>a:not(:hover){color:var(--text)}.toc a:hover{box-shadow:none}.post-footer{margin-top:calc(var(--gap-page) - var(--s-1))}.post-footer>*{margin-bottom:0}.post-tags,.terms-tags{display:flex;flex-wrap:wrap;gap:var(--s-2);list-style:none}.terms-tags li{margin:0;font-weight:var(--fw-regular)}.post-tags a,.terms-tags a{display:block;padding:var(--s-1)var(--s-3);color:var(--muted);font-size:var(--fs-1);font-weight:var(--fw-medium);line-height:var(--lh-1);letter-spacing:var(--ls-1);text-transform:lowercase;background:var(--surface);border:0;border-radius:var(--r-sm)}.post-tags a:hover,.terms-tags a:hover,.terms-tags a:active{color:var(--ink);background:var(--surface-2)}.tag-count{margin-inline-start:var(--s-1);color:var(--faint);font-weight:var(--fw-regular);font-variant-numeric:tabular-nums}a:hover .tag-count{color:inherit}.tag-lead{color:var(--faint)}.tag-current{margin-inline-start:.06em;padding:0 .18em;color:var(--ink);text-transform:lowercase;background:var(--surface);border-radius:var(--r-lg);box-decoration-break:clone;-webkit-box-decoration-break:clone}.page-rss{display:flex;align-items:center;gap:var(--s-2);width:fit-content;margin-top:var(--s-5);color:var(--muted);font-size:var(--fs-2);font-weight:var(--fw-medium);line-height:var(--lh-2);letter-spacing:var(--ls-2)}.page-rss svg{width:var(--icon);height:var(--icon);margin-inline-start:calc(var(--s-half) * -1)}#searchbox input{height:var(--s-12);padding:0 var(--s-4);color:var(--ink);font-size:var(--fs-3);font-weight:var(--fw-regular);letter-spacing:var(--ls-3);background:var(--surface);border:var(--hair)solid var(--edge);border-radius:var(--r-lg)}#searchbox input::placeholder{color:var(--faint);opacity:1}#searchbox input:focus,#searchbox input:focus-visible{outline:none;border-color:var(--ink);border-radius:var(--r-lg);box-shadow:inset 0 0 0 var(--hair)var(--ink)}#searchResults{margin:var(--s-6)0 0}#searchResults li,#searchResults .focus{margin:var(--s-2)0 0;padding:0;border:0;border-radius:0}#searchResults a{position:static;display:block;width:auto;height:auto;margin:0 calc(var(--s-2) * -1);padding:var(--s-1)var(--s-2);color:var(--ink);font-size:var(--fs-3);font-weight:var(--fw-medium);line-height:var(--lh-3);letter-spacing:var(--ls-3)}#searchResults a:focus-visible{outline-offset:calc(var(--stroke) * -1)}.footer-wrap{margin-top:var(--gap-page);width:100%;border-top:var(--hair)solid var(--line);background:var(--paper)}.footer{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:start;gap:var(--s-4)var(--s-8);width:100%;max-width:86rem;padding:var(--s-8)var(--s-12);color:var(--faint);font-size:var(--fs-2);line-height:var(--lh-2);letter-spacing:var(--ls-2);text-align:start}.footer .menu-socials{gap:var(--s-4)}.footer a.menu-social{height:var(--lh-2)}.footer-copyright{min-width:0;text-align:start;overflow-wrap:anywhere}.footer-copyright a{color:inherit;text-decoration:underline;text-underline-offset:.2em}.footer-nav{display:flex;flex-wrap:wrap;gap:var(--s-2)var(--s-6);margin-bottom:var(--s-4)}.footer-nav a{color:var(--muted);font-weight:var(--fw-medium)}.footer-nav a,.footer-nav a:hover{border-bottom:0}.footer>span:last-child{display:block;margin:0;white-space:normal;overflow-wrap:break-word}.footer span a,.footer span a:hover{color:inherit}.top-link{display:grid;place-items:center;right:var(--s-8);bottom:var(--s-8);width:var(--s-10);height:var(--s-10);padding:0;color:var(--ink);background:var(--paper);border:var(--hair)solid var(--edge);border-radius:var(--r-sm);transition:visibility .2s,opacity .2s linear}.top-link,.top-link svg{filter:none}.top-link:hover{color:var(--ink);background:var(--surface);border-color:var(--ink)}@media(prefers-reduced-motion:reduce){.top-link{transition:none}}.paginav{gap:var(--s-3);background:0 0;border:none}.paginav a{padding:var(--s-3)var(--s-4);overflow:hidden;background:var(--surface)}.paginav a>span:not(.title){display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.paginav span:hover:not(.title){box-shadow:none;text-decoration:underline}@media screen and (min-width:73em){.post-year{display:grid;grid-template-columns:var(--year-col)minmax(0,1fr);align-items:start;margin-inline-start:calc(var(--rail) * -1)}.post-year-heading{position:sticky;top:var(--s-6);margin:0}.post-item{column-gap:0}.post-header .post-meta{column-gap:0;margin-inline-start:calc(var(--when-col) * -1)}}@media screen and (max-width:768px){:root,body,.dark{--gap:var(--s-5);--author-cols:2;--author-gap:var(--s-6);--title-fs:var(--fs-6);--title-lh:var(--lh-6);--title-ls:var(--ls-6)}.footer{padding-inline:var(--s-4)}.nav{display:grid;grid-template-columns:minmax(0,1fr)var(--s-10)var(--s-10);grid-template-areas:"brand search theme" "links links links";gap:var(--s-2)0;padding:var(--s-3)var(--s-4)}.nav .logo{grid-area:brand;margin:0}.nav .logo a{min-height:var(--s-10);white-space:nowrap}#menu{display:contents}#menu .menu-item{grid-area:links;justify-self:start}#menu .menu-search{grid-area:search;justify-self:end}#menu .menu-search>a{display:flex;justify-content:center;width:var(--s-10);height:var(--s-10);border-radius:var(--r-sm)}#menu .menu-search>a:hover{background:var(--surface)}.menu-search-icon,.menu-search-icon svg{display:block;width:var(--icon);height:var(--icon)}.logo-label,#menu .menu-search .menu-item-text,.menu-item-short .menu-label,#menu .menu-external{display:none}.logo-label-short,.menu-label-short{display:inline}.header-actions{display:contents}.nav .menu-socials{grid-area:links;justify-self:end}.nav .menu-theme{grid-area:theme;justify-self:end}.nav a.menu-social,#theme-toggle{width:var(--s-10);height:var(--s-10)}.home-intro,.page-header,.post-header{margin:var(--s-6)0 var(--s-8)}.home-intro{padding-top:0}.post-description{margin-top:var(--s-4)}.post-item,.post-item-body,.post-header .post-meta{display:block !important}.when,.post-item .when{display:flex;flex-flow:row wrap;gap:0 var(--s-4);margin-bottom:var(--s-1)}.when .when-date,.when .when-read{margin-top:0;font-size:var(--fs-1);line-height:var(--lh-1);letter-spacing:var(--ls-1)}.post-item-authors .nowrap{white-space:normal}.post-meta .when{margin-bottom:var(--s-4)}.authors{row-gap:var(--s-3)}.post-year+.post-year{margin-top:var(--s-16)}.post-year-heading{position:sticky;top:0;z-index:1;margin-bottom:var(--s-2);padding:var(--s-2)0;background:var(--paper)}.post-content h1,.post-content h2{margin-top:var(--s-10)}.post-content pre code{padding:var(--s-4);font-size:var(--fs-1);line-height:var(--lh-1)}.toc,.dark .toc{margin-top:0}.top-link{right:var(--gap);bottom:var(--gap)}}@media screen and (max-width:600px){.footer{grid-template-columns:minmax(0,1fr)}.post-description{font-size:var(--fs-3);line-height:var(--lh-3);letter-spacing:var(--ls-3)}}@media print{#menu,.skip-link,.breadcrumbs a,.page-rss,.top-link,.copy-code,.toc,.mcp-quotes-nav,.footer-nav{display:none}.post-content .highlight,.post-content pre code{print-color-adjust:exact;-webkit-print-color-adjust:exact}.post-content pre code{white-space:pre-wrap}.post-item,.post-content pre,.post-content img,.post-content blockquote{break-inside:avoid}}.mcp-quotes{--mcp-quotes-bleed:max(0px, min((1200px - 100%) / 2, 50vw - 50% - 32px));margin:var(--gap-block)calc(-1 * var(--mcp-quotes-bleed))}.mcp-quotes:has(.mcp-quote:only-child){--mcp-quotes-bleed:0px}.mcp-quotes-track{display:grid;grid-auto-flow:column;grid-auto-columns:100%;overflow-x:auto;scroll-snap-type:x mandatory;overscroll-behavior-x:contain;scrollbar-width:none}.mcp-quotes-track::-webkit-scrollbar{display:none}@media(max-width:599px){.mcp-quotes-track:has(>.mcp-quote+.mcp-quote){grid-auto-columns:calc(100% - 44px)}}@media(min-width:600px){.mcp-quotes-track{grid-auto-columns:50%}}@media(min-width:600px) and (max-width:899px){.mcp-quotes-track:has(>.mcp-quote:nth-child(3)){grid-auto-columns:calc((100% - 56px)/2)}}@media(min-width:900px){.mcp-quotes-track{grid-auto-columns:calc(100%/3)}.mcp-quotes-track:has(>.mcp-quote:nth-child(4)){grid-auto-columns:calc((100% - 72px)/3)}}.post-content .mcp-quote{display:flex;flex-direction:column;min-width:0;margin:0;padding:var(--s-2)var(--s-6);border-inline-start:1px solid var(--line);scroll-snap-align:start}.post-content .mcp-quote:first-child{padding-inline-start:0;border-inline-start:none}.mcp-quotes-track:has(>.mcp-quote:only-child){grid-auto-columns:100%}.post-content .mcp-quote:only-child{padding-inline-end:0}.post-content .mcp-quote:only-child .mcp-quote-text{max-width:640px}@media(max-width:599px){.post-content .mcp-quote{padding-inline:var(--s-4)}}.mcp-quote-logo{display:block;height:var(--lh-4);margin-bottom:var(--s-5);color:var(--ink)}.mcp-quote-logo svg,.mcp-quote-logo img{display:block;height:100%;width:auto;max-width:100%}.post-content .mcp-quote-logo svg,.post-content .mcp-quote-logo img{margin:0;border-radius:0}.mcp-quote-logo-dark{display:none}@media screen{body.dark .mcp-quote-logo-light{display:none}body.dark .mcp-quote-logo-dark{display:block}}@media screen and (scripting:none) and (prefers-color-scheme:dark){.mcp-quote-logo-light{display:none}.mcp-quote-logo-dark{display:block}}.mcp-quote-logo-text{font-size:var(--fs-3);font-weight:var(--fw-regular);line-height:var(--lh-4);letter-spacing:var(--ls-3);color:var(--ink)}.post-content .mcp-quote-text{margin:0;padding:0;border:none;font-size:var(--fs-2);font-style:normal;line-height:var(--lh-2);letter-spacing:var(--ls-2);color:var(--text)}.post-content .mcp-quote-text p{display:inline;margin:0;font-size:inherit}.post-content .mcp-quote-attrib{margin-top:auto;padding-top:var(--s-4);font-size:var(--fs-1);font-weight:var(--fw-regular);line-height:var(--lh-1);letter-spacing:var(--ls-1);color:var(--faint)}.mcp-quote-attrib-name{display:block;font-size:var(--fs-2);font-weight:var(--fw-medium);line-height:var(--lh-2);color:var(--ink)}.mcp-quote-attrib-title{display:block}.post-content .mcp-quote .mcp-quote-attrib{margin:auto 0 0}@media(min-width:600px){@supports(grid-template-rows:subgrid){.mcp-quotes-track{grid-template-rows:auto auto auto}.post-content .mcp-quote{display:grid;grid-template-rows:subgrid;grid-row:span 3}.post-content .mcp-quote .mcp-quote-attrib{margin-top:0;align-self:start}}}.mcp-quotes-nav{display:flex;align-items:center;justify-content:center;gap:var(--s-4);margin-top:var(--s-6)}.mcp-quotes-nav[hidden]{display:none}.mcp-quotes-btn{display:inline-flex;align-items:center;justify-content:center;width:var(--s-10);height:var(--s-10);padding:0;color:var(--ink);background:0 0;border:var(--hair)solid var(--edge);border-radius:var(--r-sm);cursor:pointer}@media(hover:hover){.mcp-quotes-btn:not(:disabled):hover{color:var(--ink);background:var(--surface);border-color:var(--ink)}}.mcp-quotes-btn:disabled{opacity:.35;cursor:default}.mcp-quotes-dots{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:var(--s-2)}.mcp-quotes-dot{width:var(--s-2);height:var(--s-2);padding:0;background:var(--edge);border:none;border-radius:50%;cursor:pointer}.mcp-quotes-dot[aria-current=true]{background:var(--ink)}