:root{--blog-bg:#fffdfa;--blog-paper:#fffefa;--blog-paper-soft:#fbf8f1;--blog-ink:#252822;--blog-muted:#737b70;--blog-line:#eee8de;--blog-line-strong:#d8ccbc;--blog-accent:#ad7066;--blog-accent-2:#557c73;--blog-accent-3:#607b9f;--blog-code-bg:#fffdf8;--blog-code-line:#efe9df;--blog-code-ink:#293028;--blog-code-muted:#879084;--blog-font-serif:Georgia, "Times New Roman", "Songti SC", "STSong", serif;--blog-font-ui:"Instrument Sans", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif;--blog-font-code:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;--background:var(--blog-bg);--background-strong:var(--blog-paper-soft);--background-elevated:var(--blog-paper);--foreground:var(--blog-ink);--foreground-soft:var(--blog-muted);--line:var(--blog-line);--accent:#e8c7be;--accent-strong:var(--blog-accent);--accent-secondary:#dcece6;--accent-tertiary:#dfe7f4;--font-body:var(--blog-font-ui);--font-display:var(--blog-font-ui);--radius-large:20px;--radius-medium:10px}html{font-size:14px}[data-theme=dark]{--blog-bg:#161914;--blog-paper:#20251f;--blog-paper-soft:#242a24;--blog-ink:#efe8d7;--blog-muted:#aeb7aa;--blog-line:#3c463c;--blog-line-strong:#64715f;--blog-accent:#ee8c73;--blog-accent-2:#77d6bd;--blog-accent-3:#9ab9e8;--blog-code-bg:#181c17;--blog-code-line:#30392f;--blog-code-ink:#f0eadc;--blog-code-muted:#a9b3a4;--accent:#5b372f;--accent-strong:var(--blog-accent);--accent-secondary:#34594f;--accent-tertiary:#3d4e68}body{background:var(--blog-bg);min-height:100vh;color:var(--blog-ink);font-feature-settings:"kern" 1}.surface-grid{background-image:linear-gradient(color-mix(in srgb, var(--blog-line) 58%, transparent) 1px, transparent 1px), linear-gradient(90deg, color-mix(in srgb, var(--blog-line) 54%, transparent) 1px, transparent 1px);opacity:.42;background-size:72px 72px;-webkit-mask-image:linear-gradient(#0000 0%,#000 4% 96%,#0000 100%);mask-image:linear-gradient(#0000 0%,#000 4% 96%,#0000 100%)}.blog-frame{gap:1.2rem;display:grid}.blog-home{gap:1.45rem}.hero-copy{gap:1rem;max-width:42rem;display:grid}.post-list{border-top:1px solid var(--blog-line-strong);border-bottom:1px solid var(--blog-line);gap:0;display:grid}.post-card{border-top:1px solid color-mix(in srgb, var(--blog-line) 88%, transparent);box-shadow:none;transition:border-color .18s var(--ease-out-quart), transform .18s var(--ease-out-quart);background:0 0;grid-template-columns:minmax(2.75rem,4.25rem) minmax(0,1fr);gap:clamp(.9rem,2vw,1.45rem);padding:clamp(1.2rem,2.5vw,1.9rem) 0;display:grid;position:relative}.post-card:first-child{border-top:0;padding-top:clamp(1.2rem,2.5vw,1.9rem)}.post-card:hover{border-color:color-mix(in srgb, var(--blog-accent) 42%, var(--blog-line));box-shadow:none;transform:translate(3px)}.post-card-index{font-family:var(--blog-font-code);color:var(--blog-accent);font-size:.78rem;font-weight:600;line-height:1.4}.post-card-body{gap:.72rem;min-width:0;display:grid}.post-card-meta{color:var(--blog-muted);font-family:var(--blog-font-ui);letter-spacing:.08em;text-transform:uppercase;gap:.5rem .72rem;margin:0;font-size:.74rem;font-weight:700;line-height:1.4}.post-card-meta span{align-items:center;gap:.45rem;display:inline-flex}.post-card-meta span+span:before{content:"";background:color-mix(in srgb, var(--blog-line-strong) 78%, transparent);width:1.15rem;height:1px}.post-card h3{color:var(--blog-ink);font-family:var(--blog-font-ui);letter-spacing:0;text-wrap:balance;margin:0;font-size:clamp(1.35rem,1.05rem + 1vw,2.05rem);font-weight:800;line-height:1.14}.post-card h3 a{transition:color .18s var(--ease-out-quart)}.post-card h3 a:hover{color:var(--blog-accent)}.post-card-summary{max-width:58rem;color:color-mix(in srgb, var(--blog-muted) 92%, var(--blog-ink));font-family:var(--blog-font-serif);margin:0;font-size:clamp(1rem,.94rem + .18vw,1.12rem);line-height:1.75}.post-card-bottom{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.9rem;margin-top:.08rem;display:flex}.post-card-tags{gap:.42rem}.post-card .tag,.article-tag{border-color:color-mix(in srgb, var(--blog-line) 88%, transparent);background:color-mix(in srgb, var(--blog-paper-soft) 88%, transparent);color:var(--blog-muted);font-family:var(--blog-font-ui);letter-spacing:.04em;border-radius:999px;padding:.28rem .64rem;font-size:.74rem;font-weight:700;line-height:1}.post-card .tag:hover,.article-tag:hover{border-color:color-mix(in srgb, var(--blog-accent-2) 38%, var(--blog-line));background:color-mix(in srgb, var(--blog-accent-2) 8%, var(--blog-paper));color:var(--blog-accent-2);transform:translateY(-1px)}.post-card-link{color:var(--blog-accent);font-family:var(--blog-font-ui);letter-spacing:.02em;transition:color .18s var(--ease-out-quart), transform .18s var(--ease-out-quart);align-items:center;gap:.42rem;font-size:.86rem;font-weight:800;display:inline-flex}.post-card-link:hover{color:var(--blog-accent-2);transform:translate(2px)}.hero-metadata{align-content:start;gap:1.25rem;display:grid}.post-navigation{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;margin-top:2rem;display:grid}.post-navigation>a{min-width:0}.blog-home-hero{box-shadow:var(--shadow-soft)}.blog-side-section{padding:0}.blog-side-section+.blog-side-section{border-top:1px solid color-mix(in srgb, var(--line) 82%, transparent);padding-top:1.2rem}.blog-side-section .section-title{font-family:var(--font-body);margin-bottom:0;font-size:clamp(1.12rem,1rem + .45vw,1.44rem)}.blog-inline-link{width:fit-content;color:var(--foreground);transition:color .18s var(--ease-out-quart), transform .18s var(--ease-out-quart);align-items:center;gap:.45rem;font-size:.98rem;display:inline-flex}.blog-inline-link:hover{color:var(--accent-strong);transform:translate(2px)}.article-page{--article-paper:color-mix(in srgb, var(--background-elevated) 98%, var(--accent-secondary) 8%);--article-paper-strong:color-mix(in srgb, var(--background) 92%, var(--accent-secondary) 10%);--article-paper-line:color-mix(in srgb, var(--line) 90%, var(--accent-secondary) 10%);--article-paper-ink:var(--foreground);--article-paper-soft:var(--foreground-soft);isolation:isolate;width:min(1540px,100vw - 3rem);margin-inline:calc((var(--content-width) - min(1540px, calc(100vw - 3rem))) / 2);color:var(--article-paper-ink);gap:clamp(1.65rem,3vw,2.8rem);padding:.6rem 0 3rem;position:relative}.article-page:before{content:none}.article-topline{align-items:center;max-width:80rem;margin:0 auto;display:flex}.article-back-link{color:var(--article-paper-soft);letter-spacing:.04em;text-transform:uppercase;transition:transform .18s var(--ease-out-quart), color .18s var(--ease-out-quart);align-items:center;gap:.55rem;font-size:.88rem;display:inline-flex}.article-back-link:hover{color:var(--article-paper-ink);transform:translate(-2px)}.article-back-link:focus-visible,.article-toc a:focus-visible,.article-nav-link:focus-visible{box-shadow:0 0 0 3px color-mix(in srgb, var(--accent) 16%, transparent), 0 0 0 1px color-mix(in srgb, var(--accent) 40%, var(--article-paper-line));outline:none}.article-header{border-bottom:1px solid color-mix(in srgb, var(--article-paper-line) 85%, transparent);gap:1.25rem;max-width:80rem;margin:0 auto;padding:0 0 2.2rem;display:grid}.article-meta-strip{color:var(--article-paper-soft);letter-spacing:.12em;text-transform:uppercase;flex-wrap:wrap;gap:.7rem 1rem;font-size:.77rem;display:flex}.article-meta-strip span{align-items:center;gap:.45rem;display:inline-flex}.article-meta-strip span+span:before{content:"";background:color-mix(in srgb, var(--article-paper-line) 88%, transparent);width:1.2rem;height:1px;margin-right:.05rem}.article-title{font-family:var(--font-body);letter-spacing:-.085em;text-wrap:balance;margin:0;font-size:clamp(2.45rem,4.6vw,4.6rem);font-weight:700;line-height:.97}.article-abstract{border-left:1px solid color-mix(in srgb, var(--article-paper-line) 96%, transparent);gap:.45rem;max-width:64rem;padding-left:1.15rem;display:grid}.article-abstract-label,.article-keywords-label,.article-nav-label{color:var(--article-paper-soft);letter-spacing:.14em;text-transform:uppercase;font-size:.74rem}.article-abstract-copy{color:var(--article-paper-ink);margin:0;font-size:1.08rem;line-height:1.92}.article-keywords{gap:.65rem;max-width:64rem;display:grid}.article-reading-layout{display:block;position:relative}.article-page .article-main{min-width:0;max-width:50rem;margin:0 auto}.article-page .article-aside{align-self:start;width:13.5rem;position:fixed;top:11.5rem;right:clamp(.75rem,1.6vw,1.6rem)}.article-toc-shell{opacity:0;pointer-events:none;width:100%;transition:opacity .26s var(--ease-out-quart), transform .26s var(--ease-out-quart);gap:.8rem;display:grid;transform:translate(16px)}.article-toc-meta{align-items:center;gap:.55rem;display:inline-flex}.article-toc-caption{color:var(--article-paper-soft);letter-spacing:.16em;text-transform:uppercase;font-size:.7rem}.article-toc-rule{background:color-mix(in srgb, var(--article-paper-line) 88%, transparent);width:2.1rem;height:1px}.article-toc{border-left:1px solid color-mix(in srgb, var(--article-paper-line) 90%, transparent);gap:.95rem;padding-left:1.1rem;display:grid}.article-toc-title{color:var(--article-paper-ink);letter-spacing:.14em;text-transform:uppercase;font-size:.8rem;font-weight:600}.article-toc a{color:var(--article-paper-soft);transition:color .18s var(--ease-out-quart), transform .18s var(--ease-out-quart);padding-left:.85rem;line-height:1.48;display:block;position:relative}.article-toc a:before{content:"";background:color-mix(in srgb, var(--article-paper-line) 85%, transparent);transform-origin:0;width:.48rem;height:1px;transition:transform .18s var(--ease-out-quart), background-color .18s var(--ease-out-quart);position:absolute;top:.7em;left:0;transform:scaleX(.55)}.article-toc a:hover:before,.article-toc a[data-active=true]:before{background:color-mix(in srgb, var(--accent-strong) 56%, var(--article-paper-line));transform:scaleX(1)}.article-toc a[data-active=true]{color:var(--article-paper-ink)}.article-page .article-prose{max-width:50rem;color:var(--article-paper-ink);font-size:clamp(1.08rem,1rem + .22vw,1.18rem);line-height:2}.article-page .article-prose>:first-child{margin-top:0}.article-page .article-prose ul,.article-page .article-prose ol{padding-left:1.5rem}.article-page .article-prose li+li{margin-top:.5rem}.article-page .article-prose h2,.article-page .article-prose h3,.article-page .article-prose h4{font-family:var(--font-body);color:var(--article-paper-ink);letter-spacing:-.06em;font-weight:700}.article-page .article-prose h2{margin-top:3.6rem;margin-bottom:1rem;font-size:clamp(2.05rem,1.8rem + 1vw,2.6rem);line-height:1.1}.article-page .article-prose h3{margin-top:2.2rem;margin-bottom:.9rem;font-size:clamp(1.42rem,1.2rem + .4vw,1.72rem);line-height:1.18}.article-page .article-prose blockquote{border-left:1px solid color-mix(in srgb, var(--article-paper-line) 92%, transparent);color:color-mix(in srgb, var(--article-paper-soft) 92%, transparent);background:0 0;padding:.08rem 0 .08rem 1.1rem;font-style:italic}.article-page .article-prose .katex-display{margin:1.7rem 0;padding:.2rem 0;overflow:auto hidden}.article-page .article-prose .katex-display>.katex>.katex-html>.tag,.article-page .article-prose .katex-display .eqn-num,.article-page .article-prose .katex-display .mml-eqn-num{display:none!important}.article-page .article-prose a{color:color-mix(in srgb, var(--accent-strong) 82%, var(--article-paper-ink))}.article-page .article-prose figure.obsidian-figure img{border:1px solid color-mix(in srgb, var(--article-paper-line) 90%, transparent);background:color-mix(in srgb, var(--article-paper) 98%, transparent);border-radius:.8rem;width:100%;margin:0 auto;padding:.4rem;display:block;box-shadow:0 16px 36px #4e463c14}.article-page .article-prose figure.obsidian-figure figcaption{color:color-mix(in srgb, var(--article-paper-soft) 96%, transparent);letter-spacing:.01em;text-align:left;margin:0;font-size:.77rem;line-height:1.72}.article-nav-link{color:var(--article-paper-ink);transition:color .18s var(--ease-out-quart), transform .18s var(--ease-out-quart);gap:.38rem;padding:.35rem 0;display:grid}.article-nav-link:hover{color:var(--accent-strong);transform:translate(-2px)}.article-nav-link-next{text-align:right}.article-nav-link-next:hover{transform:translate(2px)}.article-nav-title{font-size:1.02rem;line-height:1.55}html[data-locale=zh] .article-abstract-copy,html[data-locale=zh] .article-page .article-prose{line-height:2}html[data-locale=zh] .article-page .article-prose h2{line-height:1.14}.article-page{--article-paper:var(--blog-paper);--article-paper-strong:var(--blog-paper-soft);--article-paper-line:var(--blog-line);--article-paper-line-strong:var(--blog-line-strong);--article-paper-ink:var(--blog-ink);--article-paper-soft:var(--blog-muted);gap:clamp(1.6rem,4vw,3.1rem);padding:clamp(1.25rem,3vw,2.6rem) 0 clamp(4rem,7vw,6rem)}.article-topline,.article-header{width:100%;max-width:min(1120px,100%)}.article-page .article-prose{width:100%;max-width:none}.article-back-link{color:var(--blog-muted);font-family:var(--blog-font-ui);letter-spacing:.08em;font-size:.78rem;font-weight:800}.article-back-link:hover{color:var(--blog-accent)}.article-back-link:focus-visible,.article-toc a:focus-visible,.article-nav-link:focus-visible,.post-card a:focus-visible{outline:2px solid color-mix(in srgb, var(--blog-accent-3) 58%, transparent);outline-offset:4px;box-shadow:none}.article-header{border-bottom:1px solid var(--blog-line-strong);gap:1.35rem;padding:clamp(1.8rem,5vw,4rem) 0 clamp(1.75rem,4vw,3rem)}.article-meta-strip{color:var(--blog-muted);font-family:var(--blog-font-ui);letter-spacing:.08em;gap:.48rem;font-size:.74rem;font-weight:800}.article-meta-strip span{border:1px solid var(--blog-line);background:var(--blog-paper-soft);border-radius:999px;padding:.18rem .68rem}.article-meta-strip span+span:before{content:none}.article-title{max-width:950px;color:var(--blog-ink);font-family:var(--blog-font-ui);letter-spacing:0;font-size:clamp(2.25rem,7vw,5.35rem);font-weight:800;line-height:.98}.article-abstract{border-top:2px solid var(--blog-ink);border-right:0;border-bottom:1px solid var(--blog-line-strong);border-left:0;gap:.55rem;max-width:100%;padding:1rem 0 1.12rem;display:grid}.article-abstract-label,.article-keywords-label,.article-nav-label,.article-toc-caption,.article-toc-title{color:var(--blog-accent);font-family:var(--blog-font-ui);letter-spacing:.1em;text-transform:uppercase;font-size:.74rem;font-weight:800}.article-abstract-copy{color:var(--blog-ink);font-family:var(--blog-font-serif);font-size:clamp(1.08rem,1rem + .55vw,1.34rem);line-height:1.72}.article-tag-list{gap:.42rem}.article-tag{border-color:color-mix(in srgb, var(--blog-line) 88%, transparent);background:var(--blog-paper-soft);box-shadow:none;color:var(--blog-muted)}.article-reading-layout{grid-template-columns:minmax(0,72rem) clamp(12rem,15vw,15.5rem);justify-content:center;align-items:start;gap:clamp(1.35rem,2.4vw,2.6rem);width:min(100%,106rem);margin:0 auto;display:grid;position:relative}.article-page .article-main{width:100%;min-width:0;max-width:none;margin:0}.article-page .article-aside{z-index:20;align-self:start;justify-items:stretch;width:auto;min-width:0;display:grid;position:sticky;top:6.6rem}.article-toc-shell{border:1px solid color-mix(in srgb, var(--blog-line) 82%, var(--blog-paper));background:color-mix(in srgb, var(--blog-paper) 94%, transparent);width:100%;max-height:calc(100vh - 6rem);box-shadow:0 16px 44px color-mix(in srgb, var(--blog-ink) 6%, transparent);opacity:0;pointer-events:none;transition:box-shadow .18s ease, opacity .22s var(--ease-out-quart), transform .22s var(--ease-out-quart);border-radius:20px;justify-self:end;gap:0;padding:1.05rem .85rem;display:grid;overflow:hidden;transform:translate(12px)}.article-toc-shell[data-visible=true]{opacity:1;pointer-events:auto;transform:translate(0,0)}.article-toc-shell[data-visible=true]:hover,.article-toc-shell[data-visible=true]:focus-within{width:100%;box-shadow:0 18px 54px color-mix(in srgb, var(--blog-ink) 8%, transparent);overflow:auto}.article-toc-meta,.article-toc-title{opacity:1;width:auto;height:auto;margin:0;overflow:visible}.article-toc-shell:hover .article-toc-meta,.article-toc-shell:focus-within .article-toc-meta,.article-toc-shell:hover .article-toc-title,.article-toc-shell:focus-within .article-toc-title{opacity:1;width:auto;height:auto;overflow:visible}.article-toc-shell:hover .article-toc-meta,.article-toc-shell:focus-within .article-toc-meta{margin-bottom:.58rem}.article-toc{font-family:var(--blog-font-ui);border-left:0;gap:.65rem;padding-left:0}.article-toc a{height:auto;color:color-mix(in srgb, var(--blog-muted) 92%, var(--blog-ink));text-overflow:ellipsis;white-space:nowrap;border-radius:8px;padding:.38rem .55rem;line-height:1.35;display:block;overflow:hidden}.article-toc a:before{display:none}.article-toc-shell:hover .article-toc a,.article-toc-shell:focus-within .article-toc a{height:auto;color:color-mix(in srgb, var(--blog-muted) 92%, var(--blog-ink));border-radius:8px;padding:.4rem .65rem;line-height:1.4}.article-toc-shell:hover .article-toc a:before,.article-toc-shell:focus-within .article-toc a:before{display:none}.article-toc a:hover{color:var(--blog-accent);transform:none}.article-toc a[data-active=true]:before{display:none}.article-toc-shell:hover .article-toc a[data-active=true],.article-toc-shell:focus-within .article-toc a[data-active=true]{color:var(--blog-accent-3);background:color-mix(in srgb, var(--blog-line) 44%, transparent)}.article-page .article-prose{color:var(--blog-ink);font-family:var(--blog-font-serif);overflow-wrap:break-word;min-width:0;font-size:clamp(1.08rem,1rem + .24vw,1.18rem);line-height:1.88}.article-page .article-prose h2,.article-page .article-prose h3,.article-page .article-prose h4{color:var(--blog-ink);font-family:var(--blog-font-ui);letter-spacing:0;scroll-margin-top:6.5rem;font-weight:800}.article-page .article-prose h2{border-top:1px solid var(--blog-line);margin-top:clamp(2.6rem,7vw,4.4rem);margin-bottom:1rem;padding-top:.35rem;font-size:clamp(1.55rem,3vw,2.35rem);line-height:1.18}.article-page .article-prose h2:before{content:none}.article-page .article-prose h3{color:color-mix(in srgb, var(--blog-accent-2) 80%, var(--blog-ink));margin-top:2rem;margin-bottom:.75rem;font-size:clamp(1.08rem,1rem + .65vw,1.38rem);line-height:1.32}.article-page .article-prose h4{color:var(--blog-accent);margin-top:1.35rem;margin-bottom:.45rem;font-size:.98rem}.article-page .article-prose strong{color:color-mix(in srgb, var(--blog-ink) 88%, var(--blog-accent))}.article-page .article-prose li::marker{color:var(--blog-accent)}.article-page .article-prose blockquote{border-top:1px solid var(--blog-line-strong);border-right:0;border-bottom:1px solid var(--blog-line-strong);color:color-mix(in srgb, var(--blog-ink) 86%, var(--blog-muted));background:0 0;border-left:0;margin:1.25rem 0;padding:.85rem 0;font-style:normal}.article-page .article-prose a{color:var(--blog-accent);text-underline-offset:.18em;text-decoration:underline;text-decoration-thickness:.08em}.article-page .article-prose a:hover{color:var(--blog-accent-2)}.article-page .article-prose :not(pre)>code{border:1px solid var(--blog-line);background:color-mix(in srgb, var(--blog-paper-soft) 82%, transparent);color:var(--blog-code-ink);font-family:var(--blog-font-code);border-radius:4px;padding:.05em .28em;font-size:.88em}.article-page .article-prose .katex-display{border-left:3px solid var(--blog-accent);background:color-mix(in srgb, var(--blog-paper-soft) 76%, transparent);max-width:100%;margin:1.2rem 0;padding:1rem clamp(.9rem,2vw,1.35rem);overflow:auto hidden}.article-page .article-prose table{border-top:1px solid var(--blog-line-strong);border-bottom:1px solid var(--blog-line-strong);border-collapse:collapse;width:100%;min-width:100%;color:var(--blog-ink);font-family:var(--blog-font-ui);font-size:.86rem;line-height:1.45;display:block;overflow-x:auto}.article-page .article-prose th,.article-page .article-prose td{border-bottom:1px solid var(--blog-line);text-align:left;vertical-align:top;min-width:9rem;padding:.64rem .7rem}.article-page .article-prose th{background:color-mix(in srgb, var(--blog-paper-soft) 82%, transparent);color:var(--blog-accent);font-weight:800}.article-page .article-prose tr:last-child td{border-bottom:0}.article-page .article-prose pre{border:1px solid var(--blog-code-line);background:var(--blog-code-bg);color:var(--blog-code-ink);font-family:var(--blog-font-code);tab-size:2;box-shadow:0 18px 42px color-mix(in srgb, var(--blog-ink) 7%, transparent);border-radius:8px;margin:0;padding:1rem 1.1rem;font-size:.86rem;line-height:1.72;overflow-x:auto}.article-page .article-prose pre code{color:inherit;font-size:inherit;background:0 0;border:0;padding:0}.article-page .article-prose figure[data-rehype-pretty-code-figure]{border:1px solid var(--blog-line-strong);background:var(--blog-code-bg);box-shadow:0 18px 42px color-mix(in srgb, var(--blog-ink) 7%, transparent);border-radius:8px;margin:1.35rem 0 1.6rem;overflow:hidden}.article-page .article-prose figure[data-rehype-pretty-code-figure] pre{box-shadow:none;border:0;border-radius:0}.article-page .article-prose figure[data-rehype-pretty-code-figure] figcaption,.article-page .article-prose pre[data-language]:before{color:var(--blog-code-muted);font-family:var(--blog-font-ui);letter-spacing:.08em;font-size:.72rem;font-weight:800}.article-page .article-prose .shiki{border-radius:0}.article-page .article-prose img{border:1px solid var(--blog-line);background:var(--blog-paper);border-radius:8px}.article-page .article-prose figure.obsidian-figure{box-shadow:none;background:0 0;border:0;border-radius:0;gap:.65rem;margin:2.25rem auto;padding:0}.article-page .article-prose figure.obsidian-figure img{border:1px solid var(--blog-line);background:var(--blog-paper);width:100%;box-shadow:0 16px 36px color-mix(in srgb, var(--blog-ink) 8%, transparent);border-radius:8px;margin:0 auto;padding:.4rem;display:block}.article-page .article-prose figure.obsidian-figure figcaption{color:var(--blog-muted);font-family:var(--blog-font-ui);margin:0;font-size:.78rem;line-height:1.72}.article-pagination{border-top:1px solid var(--blog-line);margin-top:4rem;padding-top:1.5rem}.article-nav-link{color:var(--blog-ink)}.article-nav-link:hover{color:var(--blog-accent)}.article-nav-title{font-family:var(--blog-font-ui)}@media (max-width:1040px){.article-page .article-aside{justify-self:stretch;width:auto;position:static}.article-toc-shell,.article-toc-shell[data-visible=false]{opacity:1;pointer-events:auto;width:100%;transform:none}}@media (max-width:720px){.post-navigation{grid-template-columns:1fr}.article-title{max-width:none}.article-page .article-aside{order:-1}.article-toc{padding-left:.9rem}}@media (max-width:1040px){.article-reading-layout{grid-template-columns:1fr;justify-content:stretch;gap:clamp(1.2rem,3vw,1.8rem);width:100%;min-width:0;display:grid}.article-page .article-aside{order:-1;width:auto;position:static;top:auto;right:auto}.article-toc-shell,.article-toc-shell[data-visible=false],.article-toc-shell[data-visible=true],.article-toc-shell[data-visible=true]:hover,.article-toc-shell[data-visible=true]:focus-within{border:1px solid color-mix(in srgb, var(--blog-line) 82%, var(--blog-paper));background:color-mix(in srgb, var(--blog-paper) 94%, transparent);width:100%;max-height:none;box-shadow:none;opacity:1;pointer-events:auto;border-radius:20px;padding:1.05rem 1rem;overflow:auto;transform:none}.article-toc-meta,.article-toc-title,.article-toc-shell:hover .article-toc-meta,.article-toc-shell:focus-within .article-toc-meta,.article-toc-shell:hover .article-toc-title,.article-toc-shell:focus-within .article-toc-title{opacity:1;width:auto;height:auto;overflow:visible}.article-toc-meta{margin-bottom:.65rem}.article-toc-list{grid-template-columns:repeat(2,minmax(0,1fr))}.article-toc a,.article-toc-shell:hover .article-toc a,.article-toc-shell:focus-within .article-toc a{height:auto;color:color-mix(in srgb, var(--blog-muted) 92%, var(--blog-ink));white-space:normal;border-radius:8px;padding:.4rem .65rem;line-height:1.4}.article-toc a:before,.article-toc-shell:hover .article-toc a:before,.article-toc-shell:focus-within .article-toc a:before{display:none}.article-toc a[data-active=true]{color:var(--blog-accent-3);background:color-mix(in srgb, var(--blog-line) 44%, transparent)}}@media (max-width:720px){.post-card{grid-template-columns:1fr;gap:.55rem;padding:1.15rem 0}.post-card:first-child{padding-top:1.15rem}.post-card:hover{transform:none}.post-card-index{font-size:.72rem}.post-card-meta span+span:before{display:none}.post-card-bottom{flex-direction:column;align-items:flex-start}.article-page{padding-top:.75rem}.article-header{padding-top:1.25rem}.article-title{font-size:clamp(2.05rem,12vw,3.5rem);line-height:1.04}.article-abstract-copy,.article-page .article-prose{font-size:1.04rem;line-height:1.86}.article-toc-list{grid-template-columns:1fr}.article-page .article-prose table{font-size:.8rem}.article-page .article-prose th,.article-page .article-prose td{min-width:7.5rem}.article-page .article-prose pre{white-space:pre-wrap;overflow-wrap:anywhere}}.surface-grid{display:none!important}.topbar{box-shadow:none;background:0 0;border-radius:0}.blog-index-head{border-bottom:1px solid var(--blog-line-strong);flex-wrap:wrap;justify-content:space-between;align-items:end;gap:1rem;padding-top:.6rem;padding-bottom:1.1rem;display:flex}.blog-index-head .section-title{margin:.55rem 0 0;font-size:clamp(1.45rem,1.1rem + 1.5vw,2.35rem)}.blog-featured-copy{gap:.5rem;min-width:0;display:grid}.blog-featured-copy a{width:fit-content;color:var(--blog-ink);font-family:var(--blog-font-ui);font-size:clamp(1.25rem,1rem + 1vw,1.85rem);font-weight:800;line-height:1.16}.blog-featured-copy p{max-width:58rem;color:var(--blog-muted);font-family:var(--blog-font-serif);margin:0;line-height:1.78}.blog-meta-grid{border-bottom:1px solid var(--blog-line);grid-template-columns:minmax(0,1.2fr) minmax(220px,.45fr);gap:clamp(1.5rem,4vw,4rem);padding-bottom:1.25rem;display:grid}.blog-meta-block{align-content:start;gap:.7rem;display:grid}.blog-meta-block .tag,.post-card .tag,.article-tag{background:0 0}.article-topline,.article-header{max-width:min(78rem,100%)}.article-reading-layout{grid-template-columns:minmax(0,min(78rem,100%));justify-content:center;width:100%;max-width:none;margin:0 auto;display:grid}.article-page .article-main,.article-page .article-prose{width:100%;max-width:none}.article-page .article-aside{z-index:20;width:clamp(11rem,12vw,13rem);position:fixed;top:8.2rem;right:clamp(2.5rem,7vw,9rem)}.article-toc-shell,.article-toc-shell[data-visible=false],.article-toc-shell[data-visible=true],.article-toc-shell[data-visible=true]:hover,.article-toc-shell[data-visible=true]:focus-within{width:100%;max-height:calc(100vh - 9rem);box-shadow:none;opacity:1;pointer-events:auto;background:0 0;border:0;border-radius:0;padding:0;overflow:visible;transform:none}.article-toc-meta,.article-toc-shell:hover .article-toc-meta,.article-toc-shell:focus-within .article-toc-meta{opacity:1;align-items:center;gap:.5rem;width:auto;height:auto;margin-bottom:.65rem;display:flex;overflow:visible}.article-toc-rule{background:var(--blog-line-strong);flex:1;width:auto;min-width:1.2rem}.article-toc,.article-toc-shell:hover .article-toc,.article-toc-shell:focus-within .article-toc{border-left:1px solid var(--blog-line-strong);font-family:var(--blog-font-ui);gap:.52rem;padding-left:.85rem}.article-toc-title,.article-toc-shell:hover .article-toc-title,.article-toc-shell:focus-within .article-toc-title{opacity:1;width:auto;height:auto;overflow:visible}.article-toc-list{gap:.2rem}.article-toc a,.article-toc-shell:hover .article-toc a,.article-toc-shell:focus-within .article-toc a{height:auto;color:color-mix(in srgb, var(--blog-muted) 92%, var(--blog-ink));text-overflow:ellipsis;white-space:nowrap;background:0 0;border-radius:0;padding:.28rem 0;font-size:.92rem;line-height:1.36;overflow:hidden}.article-toc a:hover,.article-toc a[data-active=true],.article-toc-shell:hover .article-toc a[data-active=true],.article-toc-shell:focus-within .article-toc a[data-active=true]{color:var(--blog-accent-3);background:0 0}.toc-link-level-3{padding-left:.65rem!important;font-size:.86rem!important}.article-page .article-prose table{table-layout:auto;border-collapse:collapse;width:100%;min-width:100%;display:table;overflow:visible}.article-page .article-prose th,.article-page .article-prose td{padding:.68rem .82rem}.article-page .article-prose .katex-display{background:0 0}@media (max-width:1480px){.article-page{width:min(1280px,100vw - 3rem);margin-inline:calc((var(--content-width) - min(1280px, calc(100vw - 3rem))) / 2)}.article-page .article-aside{width:100%;position:sticky;top:6.5rem}.article-reading-layout{grid-template-columns:minmax(0,1fr) minmax(10rem,12rem);justify-content:center;gap:clamp(1.5rem,3vw,2.5rem);width:min(100%,92rem)}}@media (max-width:1040px){.article-page{width:100%;margin-inline:0}.article-reading-layout{grid-template-columns:1fr}.article-page .article-aside{position:static}.article-toc-shell,.article-toc-shell[data-visible=false],.article-toc-shell[data-visible=true]{max-height:none}}@media (max-width:720px){.blog-index-head,.blog-meta-grid,.blog-featured-row{grid-template-columns:1fr}.article-page .article-prose table{display:block;overflow-x:auto}.article-toc a,.article-toc-shell:hover .article-toc a,.article-toc-shell:focus-within .article-toc a{white-space:normal}}:root{--blog-bg:#fffffe;--blog-paper:#fff;--blog-paper-soft:#fafafa;--blog-ink:#242521;--blog-muted:#686d65;--blog-line:#ebe8e1;--blog-line-strong:#cec7bb;--blog-accent:#985f56;--blog-accent-2:#51766e;--blog-accent-3:#5d7394;--blog-code-bg:#fbfbfa;--blog-code-line:#e7e4dd;--accent:#f2e3df;--accent-strong:var(--blog-accent);--accent-secondary:#edf5f1;--accent-tertiary:#eef2f8;--background:var(--blog-bg);--background-strong:var(--blog-paper-soft);--background-elevated:var(--blog-paper);--foreground:var(--blog-ink);--foreground-soft:var(--blog-muted);--line:var(--blog-line);--radius-large:12px;--radius-medium:8px}body{background:var(--blog-bg)}.wordmark{letter-spacing:0;font-size:clamp(1.42rem,1.18rem + .72vw,1.84rem)}.wordmark mark{border:1px solid color-mix(in srgb, var(--blog-line) 96%, transparent);background:color-mix(in srgb, var(--blog-accent) 5%, var(--blog-bg));color:color-mix(in srgb, var(--blog-accent) 82%, var(--blog-ink));border-radius:.34rem;padding:.01rem .22rem .06rem}.blog-index-head{border-bottom-color:var(--blog-line-strong);padding-top:.35rem;padding-bottom:1rem}.blog-index-head .section-title{font-size:clamp(1.28rem,1.05rem + .95vw,1.85rem);font-weight:700}.blog-featured-row{border-bottom-color:var(--blog-line);padding-bottom:1.05rem}.blog-featured-copy a,.post-card h3{letter-spacing:0;font-weight:750}.blog-featured-copy a{font-size:clamp(1.18rem,1rem + .72vw,1.58rem)}.blog-featured-copy p,.post-card-summary{color:color-mix(in srgb, var(--blog-muted) 90%, var(--blog-ink));font-family:var(--blog-font-ui);font-size:.98rem;line-height:1.76}.blog-meta-grid,.post-list,.article-pagination{border-color:var(--blog-line)}.post-card{border-top-color:color-mix(in srgb, var(--blog-line) 92%, transparent);padding:clamp(1rem,2vw,1.45rem) 0}.post-card:hover{border-color:var(--blog-line-strong);transform:none}.post-card h3{font-size:clamp(1.2rem,1.02rem + .6vw,1.62rem)}.post-card .tag,.article-tag,.blog-meta-block .tag{border-color:color-mix(in srgb, var(--blog-line) 92%, transparent);background:0 0}.article-page{color:var(--blog-ink)}.article-header{gap:1.15rem;padding-top:clamp(1.35rem,4vw,3.15rem);padding-bottom:clamp(1.55rem,3.4vw,2.45rem)}.article-title{max-width:900px;font-size:clamp(2.05rem,5.6vw,4.55rem);font-weight:780;line-height:1.02}.article-meta-strip span,.article-tag{background:0 0}.article-abstract{border-top-width:1px;border-top-color:var(--blog-ink);border-bottom-color:var(--blog-line-strong)}.article-abstract-copy{font-family:var(--blog-font-ui);font-size:clamp(1rem,.94rem + .34vw,1.2rem);line-height:1.74}.article-abstract-label,.article-keywords-label,.article-nav-label,.article-toc-caption,.article-toc-title{color:color-mix(in srgb, var(--blog-accent) 76%, var(--blog-muted))}.article-page .article-prose{color:color-mix(in srgb, var(--blog-ink) 96%, var(--blog-muted))}.article-page .article-prose h2{border-top-color:color-mix(in srgb, var(--blog-line) 94%, transparent);font-size:clamp(1.38rem,2.35vw,2.02rem)}.article-page .article-prose h3{color:color-mix(in srgb, var(--blog-ink) 84%, var(--blog-accent-2));font-size:clamp(1.04rem,.98rem + .42vw,1.24rem)}.article-page .article-prose blockquote{border-color:var(--blog-line)}.article-page .article-prose .katex-display{border-left-color:color-mix(in srgb, var(--blog-accent) 76%, var(--blog-line-strong))}.article-page .article-prose th{background:var(--blog-paper-soft);color:color-mix(in srgb, var(--blog-accent) 80%, var(--blog-ink))}.article-page .article-prose td,.article-page .article-prose th{border-bottom-color:var(--blog-line)}.article-toc-rule,.article-toc,.article-toc-shell:hover .article-toc,.article-toc-shell:focus-within .article-toc{border-color:color-mix(in srgb, var(--blog-line-strong) 86%, transparent)}.article-toc a,.article-toc-shell:hover .article-toc a,.article-toc-shell:focus-within .article-toc a{color:color-mix(in srgb, var(--blog-muted) 90%, var(--blog-ink));font-size:.88rem}.article-toc a:hover,.article-toc a[data-active=true],.article-toc-shell:hover .article-toc a[data-active=true],.article-toc-shell:focus-within .article-toc a[data-active=true]{color:var(--blog-ink);font-weight:650}@media (max-width:720px){.page-shell{width:min(100vw - 1.4rem,100%)}.article-title{font-size:clamp(1.9rem,10.5vw,3rem)}}@media (min-width:1041px){.article-page .article-aside{pointer-events:none;z-index:25;justify-items:end;width:min(310px,100vw - 2rem);display:grid;position:fixed;top:6.6rem;right:clamp(.8rem,2vw,2rem);overflow:visible}.article-toc-shell,.article-toc-shell[data-visible=false],.article-toc-shell[data-visible=true]{width:48px;max-height:calc(100vh - 6rem);box-shadow:none;opacity:1;pointer-events:auto;background:0 0;border:1px solid #0000;border-radius:22px;gap:0;padding:.72rem .55rem;transition:width .18s,padding .18s,background .18s,border-color .18s,box-shadow .18s;display:grid;overflow:hidden;transform:none}.article-toc-shell:hover,.article-toc-shell:focus-within,.article-toc-shell[data-visible=true]:hover,.article-toc-shell[data-visible=true]:focus-within{border-color:color-mix(in srgb, var(--blog-line) 86%, var(--blog-paper));background:color-mix(in srgb, var(--blog-paper) 96%, transparent);width:min(310px,100vw - 2rem);box-shadow:0 18px 54px color-mix(in srgb, var(--blog-ink) 8%, transparent);padding:1.1rem 1rem;overflow:auto}.article-toc-meta,.article-toc-title{opacity:0;width:0;height:0;margin:0;overflow:hidden}.article-toc-shell:hover .article-toc-meta,.article-toc-shell:focus-within .article-toc-meta{opacity:1;align-items:center;gap:.5rem;width:auto;height:auto;margin:0 0 .42rem .55rem;display:flex;overflow:visible}.article-toc-shell:hover .article-toc-title,.article-toc-shell:focus-within .article-toc-title{opacity:1;width:auto;height:auto;margin:0 0 .65rem .55rem;overflow:visible}.article-toc-rule{background:var(--blog-line-strong);flex:1;min-width:1.2rem;height:1px}.article-toc,.article-toc-shell:hover .article-toc,.article-toc-shell:focus-within .article-toc{border-left:0;gap:0;padding-left:0;display:grid}.article-toc-list{gap:0;display:grid}.article-toc a,.article-toc-shell:hover .article-toc a,.article-toc-shell:focus-within .article-toc a{color:#0000;text-overflow:ellipsis;white-space:nowrap;background:0 0;border-radius:999px;height:.78rem;padding:0;font-size:.94rem;line-height:1;display:block;position:relative;overflow:hidden}.article-toc a:before,.article-toc-shell:hover .article-toc a:before,.article-toc-shell:focus-within .article-toc a:before{content:"";background:color-mix(in srgb, var(--blog-line-strong) 62%, transparent);border-radius:999px;width:1.65rem;height:3px;margin:.34rem auto 0;display:block}.article-toc-list a:nth-child(2n):before{width:1.35rem}.article-toc-list a:nth-child(3n):before{width:1.85rem}.article-toc-list a:nth-child(5n):before{width:1.15rem}.article-toc a[data-active=true]{color:#0000;font-weight:inherit;background:0 0}.article-toc a[data-active=true]:before{background:color-mix(in srgb, var(--blog-ink) 84%, var(--blog-accent-3));width:2rem;height:4px}.article-toc-shell:hover .article-toc a,.article-toc-shell:focus-within .article-toc a{height:auto;color:color-mix(in srgb, var(--blog-muted) 90%, var(--blog-ink));border-radius:8px;padding:.4rem .65rem;line-height:1.4}.article-toc-shell:hover .article-toc a:before,.article-toc-shell:focus-within .article-toc a:before{display:none}.article-toc-shell:hover .article-toc a:hover,.article-toc-shell:focus-within .article-toc a:hover{color:var(--blog-accent)}.article-toc-shell:hover .article-toc a[data-active=true],.article-toc-shell:focus-within .article-toc a[data-active=true]{color:#2275e8;background:color-mix(in srgb, var(--blog-line) 44%, transparent);font-weight:650}}@media (max-width:1040px){.article-toc-shell,.article-toc-shell[data-visible=false],.article-toc-shell[data-visible=true]{opacity:1;pointer-events:auto;width:100%}}[data-theme=dark]{--blog-bg:#151612;--blog-paper:#191b16;--blog-paper-soft:#1f221d;--blog-ink:#ece7dc;--blog-muted:#aaa99f;--blog-line:#34362f;--blog-line-strong:#4b4d44;--blog-accent:#d08a7d;--blog-accent-2:#82b5a6;--blog-accent-3:#9fb5d4;--blog-code-bg:#181a15;--blog-code-line:#34362f;--blog-code-ink:#efe9dc;--blog-code-muted:#aaa99f;--accent:#432923;--accent-strong:var(--blog-accent);--accent-secondary:#25372f;--accent-tertiary:#293244;--background:var(--blog-bg);--background-strong:var(--blog-paper-soft);--background-elevated:var(--blog-paper);--foreground:var(--blog-ink);--foreground-soft:var(--blog-muted);--line:var(--blog-line)}body{background:var(--blog-bg);color:var(--blog-ink);background-image:none}.page-shell{width:min(1080px,100vw - 3rem)}.topbar,.blog-index-head,.blog-featured-row,.blog-meta-grid,.post-list,.article-pagination{border-color:color-mix(in srgb, var(--blog-line) 76%, transparent)}.blog-index-head{padding-bottom:.8rem}.blog-meta-grid{padding-bottom:.9rem}.post-list{border-top:0}.post-card{border-top-color:color-mix(in srgb, var(--blog-line) 70%, transparent)}.post-card h3,.blog-featured-copy a,.article-title{font-weight:680}.post-card-summary,.blog-featured-copy p{color:var(--blog-muted)}.article-page{gap:clamp(1.1rem,2.6vw,2.1rem);width:min(1080px,100vw - 3rem);margin-inline:auto}.article-topline,.article-header,.article-reading-layout{width:100%;max-width:min(54rem,100%)}.article-header{border-bottom:0;gap:1rem;padding-top:clamp(1.1rem,3vw,2.45rem);padding-bottom:clamp(1rem,2.2vw,1.7rem)}.article-title{max-width:52rem;font-size:clamp(1.95rem,4.8vw,3.85rem);line-height:1.04}.article-meta-strip span,.article-tag{border-color:color-mix(in srgb, var(--blog-line) 74%, transparent)}.article-abstract{border:0;max-width:52rem;padding:0}.article-abstract-copy{max-width:48rem;color:color-mix(in srgb, var(--blog-ink) 88%, var(--blog-muted));font-size:clamp(.98rem,.94rem + .2vw,1.1rem)}.article-keywords{max-width:52rem}.article-reading-layout{grid-template-columns:minmax(0,min(54rem,100%));justify-content:center;margin-inline:auto;display:grid}.article-page .article-main,.article-page .article-prose{width:100%;max-width:54rem;margin-inline:auto}.article-page .article-prose{font-size:1rem;line-height:1.86}html[data-locale=zh] .article-page .article-prose{line-height:1.9}.article-page .article-prose p,.article-page .article-prose ul,.article-page .article-prose ol,.article-page .article-prose blockquote,.article-page .article-prose pre,.article-page .article-prose table,.article-page .article-prose figure{margin:1.18rem 0}.article-page .article-prose h2{border-top:0;margin-top:clamp(2.2rem,5vw,3.3rem);padding-top:0;font-size:clamp(1.34rem,2vw,1.78rem);font-weight:680}.article-page .article-prose h3{margin-top:1.75rem;font-size:clamp(1.03rem,.98rem + .3vw,1.18rem);font-weight:650}.article-page .article-prose blockquote{border-top:0;border-bottom:0;border-left:2px solid color-mix(in srgb, var(--blog-line-strong) 80%, transparent);padding:.05rem 0 .05rem 1rem}.article-page .article-prose .katex-display{border-left:0;padding:.45rem 0}.article-page .article-prose pre,.article-page .article-prose figure[data-rehype-pretty-code-figure],.article-page .article-prose figure.obsidian-figure img{box-shadow:none}@media (min-width:1041px){.article-page .article-aside{pointer-events:none;z-index:25;justify-items:end;width:min(310px,100vw - 2rem);display:grid;position:fixed;top:6.6rem;right:clamp(.8rem,2vw,2rem)}.article-toc-shell,.article-toc-shell[data-visible=false],.article-toc-shell[data-visible=true]{width:48px;max-height:calc(100vh - 6rem);box-shadow:none;opacity:1;pointer-events:auto;background:0 0;border:1px solid #0000;border-radius:22px;padding:.72rem .55rem;overflow:hidden;transform:none}.article-toc-shell:hover,.article-toc-shell:focus-within{border-color:color-mix(in srgb, var(--blog-line) 84%, var(--blog-paper));background:color-mix(in srgb, var(--blog-paper) 96%, transparent);width:min(310px,100vw - 2rem);box-shadow:0 14px 36px color-mix(in srgb, var(--blog-ink) 7%, transparent);padding:1.1rem 1rem;overflow:auto}.article-toc-meta,.article-toc-title{opacity:0;width:0;height:0;margin:0;overflow:hidden}.article-toc-shell:hover .article-toc-meta,.article-toc-shell:focus-within .article-toc-meta{opacity:1;align-items:center;gap:.5rem;width:auto;height:auto;margin:0 0 .42rem .55rem;display:flex;overflow:visible}.article-toc-shell:hover .article-toc-title,.article-toc-shell:focus-within .article-toc-title{opacity:1;width:auto;height:auto;margin:0 0 .65rem .55rem;overflow:visible}.article-toc,.article-toc-shell:hover .article-toc,.article-toc-shell:focus-within .article-toc{border-left:0;gap:0;padding-left:0}.article-toc a,.article-toc-shell:hover .article-toc a,.article-toc-shell:focus-within .article-toc a{color:#0000;border-radius:999px;height:.78rem;padding:0;font-size:.92rem;line-height:1}.article-toc a:before,.article-toc-shell:hover .article-toc a:before,.article-toc-shell:focus-within .article-toc a:before{content:"";background:color-mix(in srgb, var(--blog-line-strong) 62%, transparent);border-radius:999px;width:1.65rem;height:3px;margin:.34rem auto 0;display:block}.article-toc-shell:hover .article-toc a,.article-toc-shell:focus-within .article-toc a{height:auto;color:color-mix(in srgb, var(--blog-muted) 90%, var(--blog-ink));border-radius:8px;padding:.4rem .65rem;line-height:1.4}.article-toc-shell:hover .article-toc a:before,.article-toc-shell:focus-within .article-toc a:before{display:none}.article-toc a[data-active=true]:before{background:color-mix(in srgb, var(--blog-ink) 84%, var(--blog-accent-3));width:2rem;height:4px}.article-toc-shell:hover .article-toc a[data-active=true],.article-toc-shell:focus-within .article-toc a[data-active=true]{color:var(--blog-accent-3);background:color-mix(in srgb, var(--blog-line) 40%, transparent)}}@media (max-width:1040px){.article-page{width:100%}.article-reading-layout,.article-page .article-main,.article-page .article-prose{max-width:none}}@media (max-width:720px){.page-shell{width:min(100vw - 1.35rem,100%)}}.topbar .preference-rail{background:0 0;border:0;gap:.82rem;padding:0}.topbar .chip-button,.topbar .chip-button[data-size=compact]{color:color-mix(in srgb, var(--blog-ink) 72%, var(--blog-muted));background:0 0;border:0;padding:.08rem 0;font-size:.86rem}.blog-index-head{border-bottom:1px solid color-mix(in srgb, var(--blog-line) 72%, transparent);grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:1.2rem;padding:clamp(1.3rem,3vw,2.2rem) 0 .9rem;display:grid}.blog-index-head .eyebrow{color:var(--blog-muted);letter-spacing:.18em;font-size:.8rem}.blog-index-head .stack-inline{gap:.8rem}.blog-index-head .ghost-link{color:var(--blog-muted);background:0 0;border:0;border-radius:0;padding:0;font-size:.92rem}.blog-index-head .ghost-link+.ghost-link:before{content:"/";color:color-mix(in srgb, var(--blog-line-strong) 74%, transparent);margin-right:.8rem}.blog-featured-row{border-bottom:1px solid color-mix(in srgb, var(--blog-line) 72%, transparent);grid-template-columns:3.6rem minmax(0,1fr);align-items:start;gap:clamp(.95rem,2vw,1.45rem);padding:clamp(1rem,2vw,1.35rem) 0}.blog-featured-copy{gap:.42rem}.blog-featured-copy a{font-size:clamp(1.2rem,1rem + .9vw,1.72rem);font-weight:680;line-height:1.22}.blog-featured-copy p{max-width:62ch;color:var(--blog-muted);font-size:.98rem;line-height:1.75}.blog-meta-block .article-keywords-label{color:color-mix(in srgb, var(--blog-muted) 88%, var(--blog-accent));font-size:.76rem}.blog-meta-grid .archive-list{gap:.4rem}.blog-meta-grid .meta-row{grid-template-columns:1fr auto;gap:1rem;font-size:.94rem;display:grid}.section-band .section-head{padding-top:.2rem}@media (min-width:1041px){.article-page .article-aside{width:min(300px,100vw - 1.5rem);right:clamp(.75rem,1.6vw,1.6rem)}.article-toc-shell,.article-toc-shell[data-visible=false],.article-toc-shell[data-visible=true]{border:0;border-radius:0;width:64px;padding:.7rem .45rem}.article-toc-shell:hover,.article-toc-shell:focus-within{border:1px solid color-mix(in srgb, var(--blog-line) 78%, var(--blog-paper));background:color-mix(in srgb, var(--blog-paper) 96%, transparent);width:min(300px,100vw - 1.5rem);box-shadow:0 12px 30px color-mix(in srgb, var(--blog-ink) 6%, transparent);border-radius:12px;padding:1rem .95rem}.article-toc-list{width:100%;padding:.2rem 0;position:relative}.article-toc-list:before{content:"";background:color-mix(in srgb, var(--blog-muted) 42%, transparent);width:1px;position:absolute;top:.22rem;bottom:.22rem;left:50%;transform:translate(-50%)}.article-toc a,.article-toc-shell:hover .article-toc a,.article-toc-shell:focus-within .article-toc a{border-radius:0;height:.72rem}.article-toc a:before,.article-toc-shell:hover .article-toc a:before,.article-toc-shell:focus-within .article-toc a:before{background:color-mix(in srgb, var(--blog-muted) 58%, transparent);width:1.55rem;height:1px;margin:0;position:absolute;top:50%;transform:translateY(-50%)}.article-toc-list a:nth-child(odd):before{left:50%}.article-toc-list a:nth-child(2n):before{right:50%}.article-toc-list a:nth-child(3n):before{width:1.95rem}.article-toc-list a:nth-child(5n):before{width:1.2rem}.article-toc a[data-active=true]:before{background:color-mix(in srgb, var(--blog-accent-3) 72%, var(--blog-ink));height:2px}.article-toc-shell:hover .article-toc-list:before,.article-toc-shell:focus-within .article-toc-list:before{display:none}.article-toc-shell:hover .article-toc a,.article-toc-shell:focus-within .article-toc a{border-radius:7px;height:auto;padding:.36rem .58rem}.article-toc-shell:hover .article-toc a:before,.article-toc-shell:focus-within .article-toc a:before{display:none}}@media (max-width:720px){.blog-index-head,.blog-meta-grid,.blog-featured-row{grid-template-columns:1fr}.blog-index-head .stack-inline{justify-content:flex-start}}.topbar{border-bottom:1px solid color-mix(in srgb, var(--blog-line) 72%, transparent);padding:.92rem 0 .98rem}.topbar .preference-rail{background:0 0;border:0;border-radius:0;align-items:baseline;gap:.86rem;padding:0}.topbar .chip-button,.topbar .chip-button[data-size=compact]{box-shadow:none;color:color-mix(in srgb, var(--blog-ink) 70%, var(--blog-muted));background:0 0;border:0;border-radius:0;padding:0 0 .12rem;font-size:.84rem}.topbar .chip-button[data-active=true]{box-shadow:none;color:var(--blog-ink);background:0 0}.blog-index-page{gap:0}.blog-index-head{border-bottom:1px solid color-mix(in srgb, var(--blog-line) 72%, transparent);grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:clamp(1rem,3vw,2.4rem);padding:clamp(1.8rem,4vw,3.1rem) 0 1rem}.blog-index-head .eyebrow{color:var(--blog-muted);letter-spacing:.18em;text-transform:uppercase;align-items:center;gap:.72rem;font-size:.76rem;font-weight:650;display:inline-flex}.blog-index-head .eyebrow:before{content:"";background:color-mix(in srgb, var(--blog-accent) 48%, var(--blog-line));width:1.5rem;height:1px}.blog-index-head .section-title{margin-top:.38rem;font-size:clamp(1.55rem,3.1vw,2.55rem);font-weight:650;line-height:1.06}.blog-index-head .stack-inline{gap:.75rem;padding-bottom:.1rem}.blog-index-head .ghost-link{color:color-mix(in srgb, var(--blog-ink) 78%, var(--blog-muted));background:0 0;border:0;border-radius:0;padding:0;font-size:.9rem;font-weight:520}.blog-index-head .ghost-link:hover{color:var(--blog-ink)}.blog-featured-row{border-bottom:1px solid color-mix(in srgb, var(--blog-line) 58%, transparent);grid-template-columns:3.2rem minmax(0,1fr);gap:clamp(1rem,2.4vw,1.8rem);padding:clamp(1.25rem,2.8vw,2rem) 0;display:grid}.blog-featured-row .post-card-index{color:color-mix(in srgb, var(--blog-accent) 74%, var(--blog-muted));padding-top:.24rem;font-size:.82rem}.blog-featured-copy a{color:var(--blog-ink);font-size:clamp(1.24rem,1rem + .88vw,1.78rem);font-weight:650;line-height:1.18}.blog-meta-grid{border-bottom:1px solid color-mix(in srgb, var(--blog-line) 58%, transparent);grid-template-columns:minmax(0,1fr) minmax(7.5rem,10rem);gap:clamp(1.4rem,4vw,4rem);padding:1.05rem 0 1.2rem}.blog-meta-block{gap:.62rem}.blog-meta-block .article-keywords-label{color:color-mix(in srgb, var(--blog-muted) 88%, var(--blog-accent));letter-spacing:.08em;font-size:.76rem;font-weight:650}.blog-meta-grid .tag{color:color-mix(in srgb, var(--blog-ink) 68%, var(--blog-muted));background:0 0;border:0;border-radius:0;padding:0;font-size:.9rem;font-weight:520}.blog-meta-grid .tag:hover{color:var(--blog-ink)}.blog-meta-grid .archive-list{gap:.34rem;display:grid}.blog-meta-grid .meta-row{color:var(--blog-muted);grid-template-columns:1fr auto;gap:1rem;font-size:.92rem;display:grid}.section-band{padding-top:clamp(1.1rem,2.5vw,1.7rem)}.section-band .section-head{padding:0 0 .78rem}.section-band .section-title{font-size:clamp(1.08rem,1rem + .46vw,1.34rem);font-weight:620}.post-card{grid-template-columns:3.2rem minmax(0,1fr);padding:clamp(1rem,2vw,1.4rem) 0}.post-card h3{font-size:clamp(1.12rem,.98rem + .48vw,1.45rem);font-weight:650}.post-card-summary{max-width:66ch;font-size:.94rem;line-height:1.72}.post-card .tag{color:color-mix(in srgb, var(--blog-muted) 88%, var(--blog-ink));background:0 0;border:0;border-radius:0;padding:0;font-size:.78rem}.post-card-link{color:color-mix(in srgb, var(--blog-accent) 82%, var(--blog-ink));font-size:.82rem}@media (min-width:1041px){.article-page .article-aside{pointer-events:none;z-index:25;justify-items:end;width:18rem;display:grid;position:fixed;top:6.4rem;right:max(1rem,50vw - 32rem)}.article-toc-shell,.article-toc-shell[data-visible=false],.article-toc-shell[data-visible=true]{width:4.8rem;max-height:calc(100vh - 6rem);box-shadow:none;opacity:1;pointer-events:auto;background:0 0;border:0;border-radius:0;padding:.72rem .78rem;overflow:hidden;transform:none}.article-toc-shell:hover,.article-toc-shell:focus-within,.article-toc-shell[data-visible=true]:hover,.article-toc-shell[data-visible=true]:focus-within{border:1px solid color-mix(in srgb, var(--blog-line) 82%, var(--blog-paper));background:color-mix(in srgb, var(--blog-paper) 96%, transparent);width:18rem;box-shadow:0 12px 30px color-mix(in srgb, var(--blog-ink) 6%, transparent);border-radius:10px;padding:1rem .95rem;overflow:auto}.article-toc-meta,.article-toc-title{opacity:0;width:0;height:0;margin:0;overflow:hidden}.article-toc-shell:hover .article-toc-meta,.article-toc-shell:focus-within .article-toc-meta{opacity:1;align-items:center;gap:.5rem;width:auto;height:auto;margin:0 0 .46rem;display:flex;overflow:visible}.article-toc-shell:hover .article-toc-title,.article-toc-shell:focus-within .article-toc-title{opacity:1;width:auto;height:auto;margin:0 0 .65rem;overflow:visible}.article-toc-rule{background:color-mix(in srgb, var(--blog-line-strong) 72%, transparent);flex:1;min-width:1rem;height:1px}.article-toc,.article-toc-shell:hover .article-toc,.article-toc-shell:focus-within .article-toc{border-left:0;gap:0;padding-left:0;display:grid}.article-toc-list{gap:0;width:100%;padding:.24rem 0;display:grid;position:relative}.article-toc-list:before{content:"";background:color-mix(in srgb, var(--blog-line-strong) 76%, transparent);width:1px;position:absolute;top:.18rem;bottom:.18rem;left:50%;transform:translate(-50%)}.article-toc a,.article-toc-shell:hover .article-toc a,.article-toc-shell:focus-within .article-toc a{color:#0000;text-overflow:ellipsis;white-space:nowrap;background:0 0;border-radius:0;height:.82rem;padding:0;font-size:.9rem;line-height:1;display:block;position:relative;overflow:hidden}.article-toc a:before,.article-toc-shell:hover .article-toc a:before,.article-toc-shell:focus-within .article-toc a:before{content:"";background:color-mix(in srgb, var(--blog-line-strong) 88%, transparent);border-radius:0;width:1.55rem;height:1px;margin:0;display:block;position:absolute;top:50%;transform:translateY(-50%)}.article-toc-list a:nth-child(odd):before{left:50%}.article-toc-list a:nth-child(2n):before{right:50%}.article-toc-list a:nth-child(3n):before{width:1.95rem}.article-toc-list a:nth-child(5n):before{width:1.2rem}.article-toc a[data-active=true]{color:#0000;background:0 0}.article-toc a[data-active=true]:before{background:color-mix(in srgb, var(--blog-accent-3) 84%, var(--blog-ink));height:2px}.article-toc-shell:hover .article-toc-list:before,.article-toc-shell:focus-within .article-toc-list:before{display:none}.article-toc-shell:hover .article-toc a,.article-toc-shell:focus-within .article-toc a{height:auto;color:color-mix(in srgb, var(--blog-muted) 90%, var(--blog-ink));border-radius:7px;padding:.34rem .52rem;line-height:1.38}.article-toc-shell:hover .article-toc a:before,.article-toc-shell:focus-within .article-toc a:before{display:none}.article-toc-shell:hover .article-toc a:hover,.article-toc-shell:focus-within .article-toc a:hover{color:var(--blog-ink);background:color-mix(in srgb, var(--blog-line) 28%, transparent)}.article-toc-shell:hover .article-toc a[data-active=true],.article-toc-shell:focus-within .article-toc a[data-active=true]{color:var(--blog-accent-3);background:color-mix(in srgb, var(--blog-line) 42%, transparent);font-weight:650}}@media (max-width:860px){.blog-featured-copy{grid-template-columns:1fr;gap:.5rem}}@media (max-width:720px){.blog-index-head,.blog-featured-row,.blog-meta-grid,.post-card{grid-template-columns:1fr}.blog-index-head .stack-inline{justify-content:flex-start}}:root{--blog-bg:#fcfcf8;--blog-paper:#fffffc;--blog-paper-soft:#f5f7f1;--blog-ink:#20251f;--blog-muted:#626b61;--blog-line:#dde3d8;--blog-line-strong:#b8c2b2;--blog-accent:#2f6f6b;--blog-accent-2:#355c9a;--blog-accent-3:#b65348;--blog-code-bg:#f6f8f2;--blog-code-line:#d8dfd2;--blog-code-ink:#1f2d2a;--blog-font-display:"Syne", var(--blog-font-ui);--accent:#dbe9e6;--accent-strong:var(--blog-accent);--accent-secondary:#dce5f5;--accent-tertiary:#f0ddda}[data-theme=dark]{--blog-bg:#171a16;--blog-paper:#1d211c;--blog-paper-soft:#22271f;--blog-ink:#edece4;--blog-muted:#aeb7aa;--blog-line:#343b33;--blog-line-strong:#566151;--blog-accent:#7fc9be;--blog-accent-2:#91aee6;--blog-accent-3:#df8b7d;--blog-code-bg:#1b2019;--blog-code-line:#354034;--blog-code-ink:#edece4;--accent:#1f3935;--accent-secondary:#27334f;--accent-tertiary:#472b26}body{background:var(--blog-bg);background-image:none}.page-shell{width:min(1120px,100vw - 3rem);padding-top:1.1rem}.blog-frame{gap:clamp(.9rem,1.7vw,1.6rem)}.topbar{border-bottom:1px solid color-mix(in srgb, var(--blog-line) 76%, transparent);align-items:flex-end;padding:.82rem 0 .86rem}.wordmark mark{background:linear-gradient(to top, color-mix(in srgb, var(--blog-accent-3) 16%, transparent) 0 42%, transparent 42%);color:color-mix(in srgb, var(--blog-accent-3) 84%, var(--blog-ink));border:0;border-radius:0;padding:0 .08rem .03rem}.topbar-nav{color:var(--blog-muted);letter-spacing:0;font-size:.82rem}.topbar-nav a[data-active=true]{box-shadow:inset 0 -1px 0 var(--blog-accent-2)}.blog-index-page,.article-page{position:relative}.blog-index-head,.blog-featured-row,.blog-meta-grid,.section-band,.article-header,.article-page .article-main{padding-left:clamp(1.1rem,1.7vw,1.55rem);position:relative}.blog-index-head:before,.blog-featured-row:before,.blog-meta-grid:before,.section-band:before,.article-header:before,.article-page .article-main:before{content:"";background:color-mix(in srgb, var(--blog-line-strong) 72%, transparent);width:1px;position:absolute;top:.16rem;bottom:.12rem;left:0}.blog-index-head:after,.blog-featured-row:after,.blog-meta-grid:after,.section-band:after,.article-header:after,.article-page .article-main:after{content:"";border:1px solid var(--blog-bg);background:var(--blog-accent-2);width:.38rem;height:.38rem;position:absolute;top:.16rem;left:-.18rem}.blog-featured-row:after,.article-page .article-main:after{background:var(--blog-accent)}.blog-meta-grid:after,.section-band:after{background:var(--blog-accent-3)}.blog-index-head{border-bottom:0;padding-top:clamp(1.75rem,4vw,3.1rem)}.blog-index-head .eyebrow{color:var(--blog-muted)}.blog-index-head .eyebrow:before{background:var(--blog-accent-2)}.blog-index-head .section-title,.section-band .section-title,.article-title{font-family:var(--blog-font-display);letter-spacing:0;font-weight:800}.blog-index-head .section-title{font-size:clamp(1.7rem,3.3vw,2.8rem)}.blog-index-head .ghost-link{color:color-mix(in srgb, var(--blog-accent-2) 76%, var(--blog-ink));font-weight:650}.blog-featured-row{border-top:1px solid color-mix(in srgb, var(--blog-line) 70%, transparent);border-bottom:1px solid color-mix(in srgb, var(--blog-line) 70%, transparent)}.blog-featured-row .post-card-index{color:var(--blog-accent);font-family:var(--blog-font-ui);letter-spacing:.12em;text-transform:uppercase;writing-mode:vertical-rl;font-size:.74rem;font-weight:800}.blog-featured-copy a{font-family:var(--blog-font-display);font-weight:800}.blog-featured-copy p{color:var(--blog-muted)}.blog-meta-grid{border-bottom:1px solid color-mix(in srgb, var(--blog-line) 64%, transparent)}.blog-meta-grid .tag{color:color-mix(in srgb, var(--blog-muted) 84%, var(--blog-ink));box-shadow:inset 0 -1px 0 color-mix(in srgb, var(--blog-line-strong) 54%, transparent)}.blog-meta-grid .tag:hover{box-shadow:inset 0 -1px 0 var(--blog-accent-2)}.post-card{border-top-color:color-mix(in srgb, var(--blog-line) 70%, transparent);transition:background .16s var(--ease-out-quart), color .16s var(--ease-out-quart), transform .16s var(--ease-out-quart);grid-template-columns:3.3rem minmax(0,1fr)}.post-card-index{color:color-mix(in srgb, var(--blog-accent-3) 76%, var(--blog-muted))}.post-card h3{color:var(--blog-ink);font-family:var(--blog-font-display);font-weight:800}.post-card-summary{color:var(--blog-muted)}.post-card .tag{box-shadow:inset 0 -1px 0 color-mix(in srgb, var(--blog-line-strong) 54%, transparent)}.post-card-link{color:color-mix(in srgb, var(--blog-accent-2) 76%, var(--blog-ink))}.article-topline,.article-header,.article-reading-layout{max-width:min(56rem,100%)}.article-header{border-bottom:0;padding-top:clamp(1.25rem,3.4vw,2.75rem)}.article-meta-strip span,.article-tag{box-shadow:inset 0 -1px 0 color-mix(in srgb, var(--blog-line-strong) 58%, transparent);background:0 0;border:0;border-radius:0}.article-title{max-width:54rem;font-size:clamp(2rem,5.2vw,4.15rem)}.article-abstract{border:0}.article-abstract-copy{color:var(--blog-muted)}.article-page .article-prose{color:var(--blog-ink);font-size:1rem;line-height:1.86}.article-page .article-prose h2,.article-page .article-prose h3,.article-page .article-prose h4{font-family:var(--blog-font-display);font-weight:800}.article-page .article-prose h2{border-top:0}.article-page .article-prose blockquote{border-left-color:var(--blog-accent)}.article-page .article-prose table{border-color:color-mix(in srgb, var(--blog-line-strong) 78%, transparent)}.article-page .article-prose pre,.article-page .article-prose figure[data-rehype-pretty-code-figure]{background:var(--blog-code-bg);border-radius:6px}@media (min-width:1041px){.article-page .article-aside{right:max(1rem,50vw - 33.4rem)}.article-toc-list:before{background:color-mix(in srgb, var(--blog-line-strong) 88%, transparent)}.article-toc a:before,.article-toc-shell:hover .article-toc a:before,.article-toc-shell:focus-within .article-toc a:before{background:color-mix(in srgb, var(--blog-line-strong) 92%, transparent)}.article-toc a[data-active=true]:before{background:var(--blog-accent-2)}}@media (max-width:860px){.blog-featured-row .post-card-index{writing-mode:horizontal-tb}}@media (max-width:720px){.page-shell,.article-page{width:min(100vw - 1.25rem,100%)}.topbar{align-items:flex-start}.blog-index-head,.blog-featured-row,.blog-meta-grid,.section-band,.article-header,.article-page .article-main{padding-left:.95rem}}:root{--blog-bg:#fffefe;--blog-paper:#fffefe;--blog-paper-soft:#faf9f6;--blog-line:#e9e5dd;--blog-line-strong:#d6cec1}[data-theme=dark]{--blog-bg:#141613;--blog-paper:#1b1f1a;--blog-paper-soft:#20251f;--blog-ink:#f0ebdf;--blog-muted:#aeb6aa;--blog-line:#323a31;--blog-line-strong:#566252}.topbar{border-bottom:1px solid var(--blog-line);gap:1.6rem;padding-block:1.35rem .95rem}.topbar:after{content:none}.wordmark{font-family:var(--blog-font-ui);letter-spacing:0;font-size:clamp(1.8rem,3vw,2.35rem);font-weight:760}.wordmark mark{background:color-mix(in srgb, var(--blog-accent) 18%, transparent);color:color-mix(in srgb, var(--blog-accent) 72%, var(--blog-ink));border-radius:0;padding:0 .12em}.topbar-nav a{color:var(--blog-muted);padding-bottom:.18rem;font-weight:560}.topbar .preference-rail{box-shadow:none;background:0 0;border:0;border-radius:0;gap:.95rem;padding:0}.topbar .chip-button,.topbar .chip-button[data-size=compact]{min-width:0;min-height:0;color:var(--blog-muted);box-shadow:none;background:0 0;border:0;border-radius:0;padding:.1rem .18rem;font-size:.86rem;font-weight:650;line-height:1.35}.topbar .chip-button[data-active=true]{color:var(--blog-ink);box-shadow:inset 0 -1px 0 var(--blog-line-strong);background:0 0}.blog-index-page{gap:0;width:min(820px,100vw - 4rem)}.blog-index-head,.blog-featured-row,.blog-meta-grid,.section-band{border:0;padding-left:0;position:relative}.blog-index-head:before,.blog-index-head:after,.blog-index-head .eyebrow:before,.blog-featured-row:before,.blog-featured-row:after,.blog-meta-grid:before,.blog-meta-grid:after,.section-band:before,.section-band:after{content:none}.blog-index-head{border-bottom:1px solid var(--blog-line);grid-template-columns:minmax(0,1fr);align-items:end;gap:1.5rem;padding-block:clamp(2.1rem,5vw,3.8rem) 1.35rem;display:grid}.blog-index-head .eyebrow{display:none}.blog-index-head .eyebrow:before{background:var(--blog-line-strong);width:1.5rem}.blog-index-head .section-title,.section-band .section-title{font-family:var(--blog-font-ui);letter-spacing:0;font-size:clamp(1.95rem,3.3vw,2.85rem);font-weight:720;line-height:1.08}.blog-index-head .stack-inline{display:none}.blog-index-head .ghost-link{color:var(--blog-muted);background:0 0;border:0;border-radius:0;font-size:.92rem;font-weight:620;box-shadow:inset 0 -1px #0000}.blog-index-head .ghost-link:hover{color:var(--blog-ink);box-shadow:inset 0 -1px 0 var(--blog-line-strong)}.blog-featured-row{border-bottom:1px solid var(--blog-line);grid-template-columns:minmax(0,1fr);align-items:start;gap:0;padding-block:clamp(1.35rem,3.2vw,2.1rem);display:grid}.blog-featured-row .post-card-index{display:none}.blog-featured-copy{grid-template-columns:minmax(0,1fr);align-items:start;gap:.55rem;display:grid}.blog-featured-copy a{max-width:24ch;color:var(--blog-ink);font-family:var(--blog-font-ui);letter-spacing:0;font-size:clamp(1.45rem,2.7vw,2.15rem);font-weight:720;line-height:1.18}.blog-featured-copy a:hover{color:var(--blog-accent)}.blog-featured-copy p{max-width:46rem;color:var(--blog-muted);margin:0;font-size:.98rem;line-height:1.76}.blog-meta-grid{border-bottom:1px solid var(--blog-line);grid-template-columns:minmax(0,1fr) minmax(7rem,10rem);gap:clamp(1.25rem,4vw,3.2rem);padding-block:clamp(1rem,2.5vw,1.55rem)}.blog-meta-grid .article-keywords-label{color:color-mix(in srgb, var(--blog-muted) 88%, var(--blog-ink));margin-bottom:.75rem;font-size:.78rem;font-weight:740}.blog-meta-grid .tag-list{gap:.65rem 1rem}.blog-meta-grid .tag,.blog-meta-grid .tag[data-accent=true]{color:var(--blog-muted);box-shadow:inset 0 -1px 0 var(--blog-line);background:0 0;border:0;border-radius:0;padding:0;font-size:.94rem;font-weight:580}.blog-meta-grid .tag:hover{color:var(--blog-ink);box-shadow:inset 0 -1px 0 var(--blog-line-strong)}.blog-meta-grid .meta-row{color:var(--blog-muted);grid-template-columns:1fr auto;padding-block:.18rem;font-size:.95rem;display:grid}.section-band{padding-block:clamp(1.7rem,4vw,2.7rem) 0}.section-band .section-head{padding-bottom:1.2rem}.section-band .section-title{font-size:clamp(1.35rem,2.2vw,1.8rem)}.post-list{border-top:1px solid var(--blog-line);border-bottom:1px solid var(--blog-line)}.post-card{border-top-color:var(--blog-line);grid-template-columns:minmax(0,1fr);gap:0;padding-block:1.3rem;transform:none}.post-card:hover{background:0 0;transform:none}.post-card-index{display:none}.post-card h3{color:var(--blog-ink);font-family:var(--blog-font-ui);letter-spacing:0;font-size:clamp(1.12rem,1.5vw,1.38rem);font-weight:680;line-height:1.3}.post-card-summary{max-width:46rem;color:var(--blog-muted);font-size:.94rem;line-height:1.7}.post-card .tag{color:var(--blog-muted);box-shadow:inset 0 -1px 0 var(--blog-line);background:0 0;border:0;border-radius:0;padding:0}.post-card-link{display:none}.post-card-link:hover{color:var(--blog-ink)}.article-page{width:min(1280px,100vw - 3rem)}.article-topline,.article-header{max-width:56rem;margin-inline:auto}.article-header,.article-page .article-main{padding-left:0}.article-header:before,.article-header:after,.article-page .article-main:before,.article-page .article-main:after{content:none}.article-title{font-family:var(--blog-font-ui);letter-spacing:0;font-size:clamp(2.35rem,6.5vw,4.65rem);font-weight:720;line-height:1.02}.article-page .article-prose h2,.article-page .article-prose h3,.article-page .article-prose h4{font-family:var(--blog-font-ui);letter-spacing:0;font-weight:700}.article-reading-layout{grid-template-columns:minmax(0,56rem);align-items:start;gap:clamp(1.25rem,3vw,2rem);width:min(100%,56rem);max-width:56rem;margin-inline:auto;display:grid}.article-page .article-main{min-width:0;max-width:56rem}.article-page .article-aside{z-index:25;pointer-events:auto;order:-1;justify-self:stretch;width:100%;min-width:0;top:auto;position:static!important;right:auto!important}.article-toc-shell.source-toc,.article-toc-shell.source-toc[data-visible=true]{border:1px solid color-mix(in srgb, var(--blog-line) 88%, white);background:color-mix(in srgb, var(--blog-paper) 94%, transparent);width:100%;max-height:none;box-shadow:none;font-family:var(--blog-font-ui);pointer-events:auto;border-radius:20px;margin:0;padding:1.1rem 1rem;font-size:.94rem;transition:width .18s,padding .18s,background .18s,border-color .18s,box-shadow .18s;overflow:auto}.article-toc-shell.source-toc:hover,.article-toc-shell.source-toc:focus-within,.article-toc-shell.source-toc[data-visible=true]:hover,.article-toc-shell.source-toc[data-visible=true]:focus-within{border-color:color-mix(in srgb, var(--blog-line) 88%, white);background:color-mix(in srgb, var(--blog-paper) 94%, transparent);width:min(19rem,100vw - 2rem);box-shadow:0 18px 54px color-mix(in srgb, var(--blog-ink) 8%, transparent);padding:1.1rem 1rem;overflow:auto}.article-toc-shell.source-toc .article-toc-title,.article-toc-shell.source-toc:hover .article-toc-title,.article-toc-shell.source-toc:focus-within .article-toc-title{color:color-mix(in srgb, var(--blog-muted) 92%, var(--blog-ink));font-family:var(--blog-font-ui);letter-spacing:.1em;text-transform:uppercase;opacity:1;border:0;width:auto;height:auto;margin:0 0 .65rem .55rem;padding:0;font-size:.78rem;font-weight:760;line-height:1.3;overflow:visible}.article-toc-shell.source-toc .article-toc-list{columns:2;margin:0;padding:0;list-style:none;display:block}.article-toc-shell.source-toc .article-toc-list:before{content:none!important}.article-toc-shell.source-toc .toc-item{margin:0}.article-toc-shell.source-toc .toc-link,.article-toc-shell.source-toc:hover .toc-link,.article-toc-shell.source-toc:focus-within .toc-link{text-overflow:ellipsis;white-space:nowrap;outline-offset:4px;text-decoration:none;display:block;position:relative;overflow:hidden}.article-toc-shell.source-toc .toc-link{height:auto;color:color-mix(in srgb, var(--blog-muted) 90%, var(--blog-ink));background:0 0;border-radius:8px;padding:.4rem .65rem;line-height:1.4}.article-toc-shell.source-toc .toc-link:before{display:none}.article-toc-shell.source-toc .toc-item:nth-child(2n) .toc-link:before{width:1.35rem}.article-toc-shell.source-toc .toc-item:nth-child(3n) .toc-link:before{width:1.85rem}.article-toc-shell.source-toc .toc-item:nth-child(5n) .toc-link:before{width:1.15rem}.article-toc-shell.source-toc .toc-link.active,.article-toc-shell.source-toc .toc-link[data-active=true]{color:var(--blog-accent-3);background:color-mix(in srgb, var(--blog-line) 44%, transparent)}.article-toc-shell.source-toc .toc-link.active:before,.article-toc-shell.source-toc .toc-link[data-active=true]:before{display:none}.article-toc-shell.source-toc:hover .toc-link,.article-toc-shell.source-toc:focus-within .toc-link{height:auto;color:color-mix(in srgb, var(--blog-muted) 90%, var(--blog-ink));border-radius:8px;padding:.4rem .65rem;font-size:.94rem;line-height:1.4}.article-toc-shell.source-toc:hover .toc-link:before,.article-toc-shell.source-toc:focus-within .toc-link:before{display:none}.article-toc-shell.source-toc:hover .toc-link:hover,.article-toc-shell.source-toc:focus-within .toc-link:hover{color:var(--blog-accent)}.article-toc-shell.source-toc:hover .toc-link.active,.article-toc-shell.source-toc:focus-within .toc-link.active,.article-toc-shell.source-toc:hover .toc-link[data-active=true],.article-toc-shell.source-toc:focus-within .toc-link[data-active=true]{color:var(--blog-accent-3);background:color-mix(in srgb, var(--blog-line) 44%, transparent)}.article-toc-shell.source-toc .toc-link-level-3{opacity:.9}@media (min-width:1560px){.article-page .article-aside{order:initial;pointer-events:none;width:19rem;top:7.45rem;position:fixed!important;right:max(1rem,50vw - 55rem)!important}.article-toc-shell.source-toc,.article-toc-shell.source-toc[data-visible=true]{background:0 0;border-color:#0000;border-radius:22px;width:48px;max-height:calc(100vh - 6rem);padding:.72rem .55rem;overflow:hidden}.article-toc-shell.source-toc .article-toc-title{opacity:0;width:0;height:0;margin:0;overflow:hidden}.article-toc-shell.source-toc .article-toc-list{columns:auto}.article-toc-shell.source-toc .toc-item{margin:.38rem 0}.article-toc-shell.source-toc .toc-link{color:#0000;border-radius:999px;height:.78rem;padding:0;line-height:1}.article-toc-shell.source-toc .toc-link:before{content:"";background:color-mix(in srgb, var(--blog-line-strong) 86%, transparent);border-radius:999px;width:1.65rem;height:3px;margin:.34rem auto 0;display:block}.article-toc-shell.source-toc .toc-link.active,.article-toc-shell.source-toc .toc-link[data-active=true]{color:#0000;background:0 0}.article-toc-shell.source-toc .toc-link.active:before,.article-toc-shell.source-toc .toc-link[data-active=true]:before{background:color-mix(in srgb, var(--blog-ink) 84%, var(--blog-accent-3));width:2rem;height:4px;display:block}}@media (max-width:1180px){.article-page{width:min(100vw - 2rem,100%)}.article-reading-layout{grid-template-columns:minmax(0,1fr);width:min(100%,56rem)}.article-page .article-aside{pointer-events:auto;width:100%;position:static!important}.article-toc-shell.source-toc,.article-toc-shell.source-toc[data-visible=true],.article-toc-shell.source-toc:hover,.article-toc-shell.source-toc:focus-within,.article-toc-shell.source-toc[data-visible=true]:hover,.article-toc-shell.source-toc[data-visible=true]:focus-within{border-color:color-mix(in srgb, var(--blog-line) 88%, white);background:color-mix(in srgb, var(--blog-paper) 94%, transparent);width:100%;max-width:none;max-height:none;box-shadow:none;padding:1.1rem 1rem;overflow:auto}.article-toc-shell.source-toc .article-toc-title,.article-toc-shell.source-toc:hover .article-toc-title,.article-toc-shell.source-toc:focus-within .article-toc-title{opacity:1;width:auto;height:auto;margin:0 0 .65rem .55rem;overflow:visible}.article-toc-shell.source-toc .article-toc-list{columns:2}.article-toc-shell.source-toc .toc-item{margin:0}.article-toc-shell.source-toc .toc-link,.article-toc-shell.source-toc:hover .toc-link,.article-toc-shell.source-toc:focus-within .toc-link{height:auto;color:color-mix(in srgb, var(--blog-muted) 90%, var(--blog-ink));border-radius:8px;padding:.4rem .65rem;line-height:1.4}.article-toc-shell.source-toc .toc-link:before,.article-toc-shell.source-toc:hover .toc-link:before,.article-toc-shell.source-toc:focus-within .toc-link:before{display:none}}@media (max-width:820px){.blog-index-page{width:min(100vw - 1.35rem,100%)}.blog-index-head,.blog-featured-row,.blog-meta-grid,.blog-featured-copy{grid-template-columns:1fr}.blog-index-head .stack-inline{justify-content:flex-start}.blog-featured-row{gap:.9rem}}@media (max-width:640px){.article-toc-shell.source-toc .article-toc-list,.article-toc-shell.source-toc:hover .article-toc-list,.article-toc-shell.source-toc:focus-within .article-toc-list{columns:1}}:root{--blog-bg:#fffefe;--blog-paper:#fffefe;--blog-paper-soft:#faf9f6;--blog-ink:#252822;--blog-muted:#667064;--blog-line:#e9e5dd;--blog-line-strong:#d6cec1;--blog-accent:#ad7066;--blog-accent-2:#557c73;--blog-accent-3:#607b9f;--background:var(--blog-bg);--background-elevated:var(--blog-paper);--background-strong:var(--blog-paper-soft);--foreground:var(--blog-ink);--foreground-soft:var(--blog-muted);--line:var(--blog-line);--accent:var(--blog-accent);--accent-strong:var(--blog-accent);--accent-secondary:var(--blog-accent-2);--accent-tertiary:var(--blog-accent-3)}[data-theme=dark]{--blog-bg:#151713;--blog-paper:#1d211c;--blog-paper-soft:#22271f;--blog-ink:#edece4;--blog-muted:#aeb7aa;--blog-line:#343b33;--blog-line-strong:#566151;--blog-accent:#df8b7d;--blog-accent-2:#7fc9be;--blog-accent-3:#91aee6;--background:var(--blog-bg);--background-elevated:var(--blog-paper);--background-strong:var(--blog-paper-soft);--foreground:var(--blog-ink);--foreground-soft:var(--blog-muted);--line:var(--blog-line);--accent:var(--blog-accent);--accent-strong:var(--blog-accent);--accent-secondary:var(--blog-accent-2);--accent-tertiary:var(--blog-accent-3)}body{background:var(--blog-bg);color:var(--blog-ink)}.topbar{border-bottom-color:var(--blog-line)}.wordmark mark{background:color-mix(in srgb, var(--blog-accent-2) 18%, transparent);color:color-mix(in srgb, var(--blog-accent-2) 78%, var(--blog-ink))}.article-page{width:min(1120px,100vw - 3rem);margin-inline:auto}.article-topline,.article-header,.article-reading-layout{width:min(52rem,100%);max-width:52rem;margin-left:0;margin-right:auto}.article-page .article-main{width:100%;max-width:52rem;margin:0}.article-page .article-prose{max-width:52rem;margin-inline:0}@media (min-width:1080px){.article-page .article-aside{order:initial;z-index:35;pointer-events:none;width:min(310px,100vw - 2rem);min-width:0;top:6.6rem;position:fixed!important;right:clamp(.8rem,2vw,2rem)!important}.article-toc-shell.source-toc,.article-toc-shell.source-toc[data-visible=true]{width:48px;max-height:calc(100vh - 6rem);box-shadow:none;font-family:var(--blog-font-ui);pointer-events:auto;background:0 0;border:1px solid #0000;border-radius:22px;margin:0 0 0 auto;padding:.72rem .55rem;font-size:.94rem;transition:width .18s,padding .18s,background .18s,border-color .18s,box-shadow .18s;overflow:hidden}.article-toc-shell.source-toc:hover,.article-toc-shell.source-toc:focus-within,.article-toc-shell.source-toc[data-visible=true]:hover,.article-toc-shell.source-toc[data-visible=true]:focus-within{border-color:color-mix(in srgb, var(--blog-line) 82%, white);background:color-mix(in srgb, var(--blog-paper) 94%, transparent);width:min(310px,100vw - 2rem);box-shadow:0 18px 54px color-mix(in srgb, var(--blog-ink) 8%, transparent);padding:1.1rem 1rem;overflow:auto}.article-toc-shell.source-toc .article-toc-title{opacity:0;width:0;height:0;color:color-mix(in srgb, var(--blog-muted) 90%, var(--blog-ink));letter-spacing:.12em;text-transform:uppercase;border:0;margin:0;padding:0;font-size:.78rem;font-weight:760;line-height:1.3;overflow:hidden}.article-toc-shell.source-toc:hover .article-toc-title,.article-toc-shell.source-toc:focus-within .article-toc-title{opacity:1;width:auto;height:auto;margin:0 0 .65rem .55rem;overflow:visible}.article-toc-shell.source-toc .article-toc-list{columns:auto;margin:0;padding:0;list-style:none;display:block}.article-toc-shell.source-toc .article-toc-list:before{content:none!important;display:none!important}.article-toc-shell.source-toc .toc-item{margin:.38rem 0}.article-toc-shell.source-toc .toc-link{color:#0000;text-overflow:ellipsis;white-space:nowrap;outline-offset:4px;background:0 0;border-radius:999px;height:.78rem;padding:0;line-height:1;text-decoration:none;display:block;position:relative;overflow:hidden}.article-toc-shell.source-toc .toc-link:before{content:"";background:color-mix(in srgb, var(--blog-line-strong) 72%, transparent);border-radius:999px;width:1.65rem;height:3px;margin:.34rem auto 0;display:block}.article-toc-shell.source-toc .toc-item:nth-child(2n) .toc-link:before{width:1.35rem}.article-toc-shell.source-toc .toc-item:nth-child(3n) .toc-link:before{width:1.85rem}.article-toc-shell.source-toc .toc-item:nth-child(5n) .toc-link:before{width:1.15rem}.article-toc-shell.source-toc .toc-link.active,.article-toc-shell.source-toc .toc-link[data-active=true]{color:#0000;background:0 0}.article-toc-shell.source-toc .toc-link.active:before,.article-toc-shell.source-toc .toc-link[data-active=true]:before{background:color-mix(in srgb, var(--blog-ink) 84%, var(--blog-accent-3));width:2rem;height:4px;display:block}.article-toc-shell.source-toc:hover .toc-link,.article-toc-shell.source-toc:focus-within .toc-link{height:auto;color:color-mix(in srgb, var(--blog-muted) 90%, var(--blog-ink));border-radius:8px;padding:.4rem .65rem;font-size:.94rem;line-height:1.4}.article-toc-shell.source-toc:hover .toc-link:before,.article-toc-shell.source-toc:focus-within .toc-link:before{display:none}.article-toc-shell.source-toc:hover .toc-link.active,.article-toc-shell.source-toc:focus-within .toc-link.active,.article-toc-shell.source-toc:hover .toc-link[data-active=true],.article-toc-shell.source-toc:focus-within .toc-link[data-active=true]{color:var(--blog-accent-3);background:color-mix(in srgb, var(--blog-line) 44%, transparent)}}@media (max-width:1079px){.article-page{width:min(100vw - 2rem,100%)}.article-topline,.article-header,.article-reading-layout,.article-page .article-main,.article-page .article-prose{width:100%;max-width:52rem;margin-inline:auto}.article-page .article-aside{pointer-events:auto;width:100%;position:static!important}.article-toc-shell.source-toc,.article-toc-shell.source-toc[data-visible=true],.article-toc-shell.source-toc:hover,.article-toc-shell.source-toc:focus-within{border:1px solid color-mix(in srgb, var(--blog-line) 88%, white);background:color-mix(in srgb, var(--blog-paper) 94%, transparent);width:100%;max-width:none;max-height:none;box-shadow:none;border-radius:20px;padding:1.1rem 1rem;overflow:auto}.article-toc-shell.source-toc .article-toc-title{opacity:1;width:auto;height:auto;margin:0 0 .65rem .55rem;overflow:visible}.article-toc-shell.source-toc .article-toc-list{columns:2}.article-toc-shell.source-toc .toc-item{margin:0}.article-toc-shell.source-toc .toc-link,.article-toc-shell.source-toc:hover .toc-link,.article-toc-shell.source-toc:focus-within .toc-link{height:auto;color:color-mix(in srgb, var(--blog-muted) 90%, var(--blog-ink));border-radius:8px;padding:.4rem .65rem;line-height:1.4}.article-toc-shell.source-toc .toc-link:before,.article-toc-shell.source-toc:hover .toc-link:before,.article-toc-shell.source-toc:focus-within .toc-link:before{display:none}}@media (max-width:640px){.article-toc-shell.source-toc .article-toc-list{columns:1}}:root{--blog-bg:#fffefe;--blog-paper:#fffefe;--blog-paper-soft:#faf9f6;--blog-ink:#252822;--blog-muted:#667064;--blog-line:#e9e5dd;--blog-line-strong:#d6cec1;--blog-accent:#ad7066;--blog-accent-2:#557c73;--blog-accent-3:#607b9f;--background:var(--blog-bg);--background-elevated:var(--blog-paper);--background-strong:var(--blog-paper-soft);--foreground:var(--blog-ink);--foreground-soft:var(--blog-muted);--line:var(--blog-line);--line-strong:var(--blog-line-strong);--accent:var(--blog-accent);--accent-strong:var(--blog-accent);--accent-secondary:var(--blog-accent-2);--accent-tertiary:var(--blog-accent-3)}html[data-theme=dark]{--blog-bg:#151713;--blog-paper:#1d211c;--blog-paper-soft:#22271f;--blog-ink:#edece4;--blog-muted:#aeb7aa;--blog-line:#343b33;--blog-line-strong:#566151;--blog-accent:#df8b7d;--blog-accent-2:#7fc9be;--blog-accent-3:#91aee6;--background:var(--blog-bg);--background-elevated:var(--blog-paper);--background-strong:var(--blog-paper-soft);--foreground:var(--blog-ink);--foreground-soft:var(--blog-muted);--line:var(--blog-line);--line-strong:var(--blog-line-strong);--accent:var(--blog-accent);--accent-strong:var(--blog-accent);--accent-secondary:var(--blog-accent-2);--accent-tertiary:var(--blog-accent-3)}body{color:var(--blog-ink);font-size:14px;background:var(--blog-bg)!important;background-image:none!important}.surface-grid{opacity:0!important}.topbar{border-bottom:1px solid var(--blog-line);align-items:flex-start;gap:1.4rem;padding:1.25rem 0 1rem}.topbar:after{content:none!important;display:none!important}.wordmark{font-family:var(--blog-font-ui);letter-spacing:0;font-weight:760}.wordmark mark{border-radius:0;padding:0 .12em;background:color-mix(in srgb, var(--blog-accent-2) 18%, transparent)!important;color:color-mix(in srgb, var(--blog-accent-2) 78%, var(--blog-ink))!important}.topbar-nav a[data-active=true]{color:var(--blog-ink);box-shadow:inset 0 -1px 0 var(--blog-accent-2)}.topbar .preference-rail{box-shadow:none;background:0 0;border:0;border-radius:0;align-items:baseline;gap:.86rem;padding:0}.topbar .chip-button,.topbar .chip-button[data-size=compact]{min-width:0;min-height:0;box-shadow:none;color:color-mix(in srgb, var(--blog-ink) 70%, var(--blog-muted));background:0 0;border:0;border-radius:0;padding:0 0 .12rem;font-size:.86rem;font-weight:650;line-height:1.35}.topbar .chip-button:hover,.topbar .chip-button[data-active=true]{box-shadow:inset 0 -1px 0 var(--blog-accent-2);color:var(--blog-ink);transform:none}.blog-index-page,.article-page{width:min(820px,100vw - 3rem);margin-inline:auto}.blog-index-head,.blog-featured-row,.blog-meta-grid,.section-band,.article-header,.article-page .article-main{padding-left:0}.blog-index-head:before,.blog-index-head:after,.blog-featured-row:before,.blog-featured-row:after,.blog-meta-grid:before,.blog-meta-grid:after,.section-band:before,.section-band:after,.article-header:before,.article-header:after,.article-page .article-main:before,.article-page .article-main:after{content:none!important;display:none!important}.blog-index-head{border-bottom:1px solid var(--blog-line);grid-template-columns:minmax(0,1fr) auto;gap:clamp(1rem,3vw,2rem);padding-block:clamp(2rem,5vw,3.6rem) 1.25rem}.blog-index-head .eyebrow{color:var(--blog-muted);letter-spacing:.14em;display:block}.blog-index-head .section-title{font-size:clamp(2rem,4.8vw,3.6rem);line-height:1}.blog-index-head .stack-inline{justify-content:flex-end;display:inline-flex}.blog-featured-row{grid-template-columns:4.5rem minmax(0,1fr);gap:clamp(1.2rem,3vw,2.4rem);padding-block:clamp(1.45rem,3.2vw,2.2rem)}.blog-featured-row .post-card-index{color:var(--blog-accent-2);writing-mode:horizontal-tb;display:block}.blog-featured-copy a{max-width:28ch;font-size:clamp(1.7rem,4.2vw,3.1rem);line-height:1.04}.blog-meta-grid{grid-template-columns:minmax(0,1fr) minmax(7rem,9rem)}.article-topline,.article-header,.article-reading-layout,.article-page .article-main,.article-page .article-prose{width:100%;max-width:820px;margin-inline:auto}.article-reading-layout{display:block}.article-page .article-main,.article-page .article-prose{min-width:0}.article-page .article-prose p,.article-page .article-prose ul,.article-page .article-prose ol,.article-page .article-prose blockquote,.article-page .article-prose pre,.article-page .article-prose table,.article-page .article-prose figure{max-width:820px}@media (min-width:901px){.article-page .article-aside{order:initial;z-index:35;pointer-events:none;width:min(310px,100vw - 2rem);min-width:0;margin:0;top:6.6rem;position:fixed!important;right:clamp(.8rem,2vw,2rem)!important}.article-toc-shell.source-toc,.article-toc-shell.source-toc[data-visible=true]{width:48px;max-height:calc(100vh - 6rem);box-shadow:none;font-family:var(--blog-font-ui);pointer-events:auto;background:0 0;border:1px solid #0000;border-radius:22px;margin:0 0 0 auto;padding:.72rem .55rem;font-size:.94rem;transition:width .18s,padding .18s,background .18s,border-color .18s,box-shadow .18s;overflow:hidden}.article-toc-shell.source-toc:hover,.article-toc-shell.source-toc:focus-within,.article-toc-shell.source-toc[data-visible=true]:hover,.article-toc-shell.source-toc[data-visible=true]:focus-within{border-color:color-mix(in srgb, var(--blog-line) 82%, white);background:color-mix(in srgb, var(--blog-paper) 94%, transparent);width:min(310px,100vw - 2rem);box-shadow:0 18px 54px color-mix(in srgb, var(--blog-ink) 8%, transparent);padding:1.1rem 1rem;overflow:auto}.article-toc-shell.source-toc .article-toc-title{opacity:0;width:0;height:0;color:color-mix(in srgb, var(--blog-muted) 90%, var(--blog-ink));letter-spacing:.12em;text-transform:uppercase;border:0;margin:0;padding:0;font-size:.78rem;font-weight:760;line-height:1.3;overflow:hidden}.article-toc-shell.source-toc:hover .article-toc-title,.article-toc-shell.source-toc:focus-within .article-toc-title{opacity:1;width:auto;height:auto;margin:0 0 .65rem .55rem;overflow:visible}.article-toc-shell.source-toc .article-toc-list{columns:auto;margin:0;padding:0;list-style:none;display:block}.article-toc-shell.source-toc .article-toc-list:before{content:none!important;display:none!important}.article-toc-shell.source-toc .toc-item{margin:.38rem 0}.article-toc-shell.source-toc .toc-link{color:#0000;text-overflow:ellipsis;white-space:nowrap;outline-offset:4px;background:0 0;border-radius:999px;height:.78rem;padding:0;line-height:1;text-decoration:none;display:block;position:relative;overflow:hidden}.article-toc-shell.source-toc .toc-link:before{content:"";background:color-mix(in srgb, var(--blog-line-strong) 62%, transparent);border-radius:999px;width:1.65rem;height:3px;margin:.34rem auto 0;display:block}.article-toc-shell.source-toc .toc-item:nth-child(2n) .toc-link:before{width:1.35rem}.article-toc-shell.source-toc .toc-item:nth-child(3n) .toc-link:before{width:1.85rem}.article-toc-shell.source-toc .toc-item:nth-child(5n) .toc-link:before{width:1.15rem}.article-toc-shell.source-toc .toc-link.active,.article-toc-shell.source-toc .toc-link[data-active=true]{color:#0000;background:0 0}.article-toc-shell.source-toc .toc-link.active:before,.article-toc-shell.source-toc .toc-link[data-active=true]:before{background:color-mix(in srgb, var(--blog-ink) 84%, var(--blog-accent-3));width:2rem;height:4px;display:block}.article-toc-shell.source-toc:hover .toc-link,.article-toc-shell.source-toc:focus-within .toc-link{height:auto;color:color-mix(in srgb, var(--blog-muted) 90%, var(--blog-ink));border-radius:8px;padding:.4rem .65rem;font-size:.94rem;line-height:1.4}.article-toc-shell.source-toc:hover .toc-link:before,.article-toc-shell.source-toc:focus-within .toc-link:before{display:none}.article-toc-shell.source-toc:hover .toc-link:hover,.article-toc-shell.source-toc:focus-within .toc-link:hover{color:var(--blog-accent)}.article-toc-shell.source-toc:hover .toc-link.active,.article-toc-shell.source-toc:focus-within .toc-link.active,.article-toc-shell.source-toc:hover .toc-link[data-active=true],.article-toc-shell.source-toc:focus-within .toc-link[data-active=true]{color:#2275e8;background:color-mix(in srgb, var(--blog-line) 44%, transparent)}}@media (max-width:900px){.blog-index-page,.article-page{width:min(100vw - 1.5rem,100%)}.blog-index-head,.blog-featured-row,.blog-meta-grid{grid-template-columns:1fr}.blog-index-head .stack-inline{justify-content:flex-start}.article-page .article-aside{pointer-events:auto;width:100%;position:static!important}.article-toc-shell.source-toc,.article-toc-shell.source-toc[data-visible=true],.article-toc-shell.source-toc:hover,.article-toc-shell.source-toc:focus-within{border:1px solid color-mix(in srgb, var(--blog-line) 82%, white);background:color-mix(in srgb, var(--blog-paper) 94%, transparent);width:100%;max-width:none;max-height:none;box-shadow:none;border-radius:20px;padding:1.1rem 1rem;overflow:auto}.article-toc-shell.source-toc .article-toc-title{opacity:1;width:auto;height:auto;margin:0 0 .65rem .55rem;overflow:visible}.article-toc-shell.source-toc .article-toc-list{columns:2}.article-toc-shell.source-toc .toc-item{margin:0}.article-toc-shell.source-toc .toc-link,.article-toc-shell.source-toc:hover .toc-link,.article-toc-shell.source-toc:focus-within .toc-link{height:auto;color:color-mix(in srgb, var(--blog-muted) 90%, var(--blog-ink));border-radius:8px;padding:.4rem .65rem;line-height:1.4}.article-toc-shell.source-toc .toc-link:before,.article-toc-shell.source-toc:hover .toc-link:before,.article-toc-shell.source-toc:focus-within .toc-link:before{display:none}}@media (max-width:620px){.article-toc-shell.source-toc .article-toc-list{columns:1}}@media (min-width:901px){.article-page .article-aside{z-index:80;top:7.8rem}.article-toc-shell.source-toc,.article-toc-shell.source-toc[data-visible=true]{z-index:35;background:color-mix(in srgb, var(--blog-paper) 50%, transparent);position:relative}.article-toc-shell.source-toc .toc-rail-marks{pointer-events:none;justify-items:center;gap:.47rem;display:grid;position:absolute;top:.78rem;left:0;right:0}.article-toc-shell.source-toc:hover .toc-rail-marks,.article-toc-shell.source-toc:focus-within .toc-rail-marks{display:none}.article-toc-shell.source-toc .toc-rail-mark{background:#d9d0c2;border-radius:999px;width:1.72rem;height:4px;display:block}.article-toc-shell.source-toc .toc-rail-mark[data-pattern="1"]{width:1.38rem}.article-toc-shell.source-toc .toc-rail-mark[data-pattern="2"]{width:1.95rem}.article-toc-shell.source-toc .toc-rail-mark[data-pattern="4"]{width:1.18rem}.article-toc-shell.source-toc .toc-rail-mark.active{background:#b8aa99;width:2rem}html[data-theme=dark] .article-toc-shell.source-toc .toc-rail-mark{background:#65705f}html[data-theme=dark] .article-toc-shell.source-toc .toc-rail-mark.active{background:#91a08b}.article-toc-shell.source-toc .toc-link{height:.86rem}.article-toc-shell.source-toc .toc-link:before{display:none!important}.article-toc-shell.source-toc .toc-item:nth-child(2n) .toc-link:before{width:1.38rem}.article-toc-shell.source-toc .toc-item:nth-child(3n) .toc-link:before{width:1.95rem}.article-toc-shell.source-toc .toc-item:nth-child(5n) .toc-link:before{width:1.18rem}.article-toc-shell.source-toc .toc-link.active:before,.article-toc-shell.source-toc .toc-link[data-active=true]:before{display:none!important}}@media (max-width:900px){.article-toc-shell.source-toc .toc-rail-marks{display:none}}@media (min-width:901px){.article-page .article-aside{top:9rem}.article-toc-shell.source-toc:hover,.article-toc-shell.source-toc:focus-within,.article-toc-shell.source-toc[data-visible=true]:hover,.article-toc-shell.source-toc[data-visible=true]:focus-within{width:min(240px,100vw - 2rem)}}@media (min-width:1560px){.article-toc-shell.source-toc:hover,.article-toc-shell.source-toc:focus-within,.article-toc-shell.source-toc[data-visible=true]:hover,.article-toc-shell.source-toc[data-visible=true]:focus-within{width:min(280px,100vw - 2rem)}}@media (min-width:901px){.article-page .article-aside{width:min(310px,100vw - 2rem);right:1rem!important}.article-toc-shell.source-toc:hover,.article-toc-shell.source-toc:focus-within,.article-toc-shell.source-toc[data-visible=true]:hover,.article-toc-shell.source-toc[data-visible=true]:focus-within{width:min(310px,100vw - 2rem);padding:.95rem .8rem}.article-toc-shell.source-toc:hover .article-toc-title,.article-toc-shell.source-toc:focus-within .article-toc-title{margin:0 0 .52rem .45rem;font-size:.72rem}.article-toc-shell.source-toc:hover .toc-link,.article-toc-shell.source-toc:focus-within .toc-link{text-overflow:clip;white-space:nowrap;border-radius:7px;padding:.34rem .45rem;font-size:.78rem;line-height:1.35;overflow:visible}}@media (min-width:901px) and (max-width:1559px){.article-page,.article-topline,.article-header,.article-reading-layout,.article-page .article-main,.article-page .article-prose,.article-page .article-prose p,.article-page .article-prose ul,.article-page .article-prose ol,.article-page .article-prose blockquote,.article-page .article-prose pre,.article-page .article-prose table,.article-page .article-prose figure{max-width:760px}.article-page{width:min(760px,100vw - 3rem)}}@media (min-width:1560px){.article-page .article-aside,.article-toc-shell.source-toc:hover,.article-toc-shell.source-toc:focus-within,.article-toc-shell.source-toc[data-visible=true]:hover,.article-toc-shell.source-toc[data-visible=true]:focus-within{width:min(330px,100vw - 2rem)}}
:root{--blog-bg:#fbfbf6;--blog-paper:#fffffb;--blog-paper-soft:#f1f4ed;--blog-ink:#20251f;--blog-muted:#646d61;--blog-line:#dfe5da;--blog-line-strong:#aebaa6;--blog-accent:#9a5f55;--blog-accent-2:#2f706b;--blog-accent-3:#405f9b;--blog-code-bg:#f3f6ef;--blog-code-line:#d8e0d4;--blog-code-ink:#1f2c28;--blog-code-muted:#718071;--blog-font-display:"Syne", var(--blog-font-ui);--background:var(--blog-bg);--background-elevated:var(--blog-paper);--background-strong:var(--blog-paper-soft);--foreground:var(--blog-ink);--foreground-soft:var(--blog-muted);--line:var(--blog-line);--line-strong:var(--blog-line-strong);--accent:var(--blog-accent);--accent-strong:var(--blog-accent);--accent-secondary:var(--blog-accent-2);--accent-tertiary:var(--blog-accent-3)}html[data-theme=dark]{--blog-bg:#151813;--blog-paper:#1c211a;--blog-paper-soft:#22281f;--blog-ink:#eceadf;--blog-muted:#aeb7aa;--blog-line:#333d31;--blog-line-strong:#586452;--blog-accent:#dc8c7f;--blog-accent-2:#7ed0c3;--blog-accent-3:#96b2eb;--blog-code-bg:#1b2119;--blog-code-line:#354033;--blog-code-ink:#eceadf;--blog-code-muted:#aeb7aa}body{color:var(--blog-ink);font-size:14px;background:linear-gradient(90deg, color-mix(in srgb, var(--blog-line) 34%, transparent) 1px, transparent 1px) left top / clamp(9rem, 14vw, 15rem) 100% no-repeat, var(--blog-bg)!important}.surface-grid{display:none!important}.page-shell{width:min(1180px,100vw - 3rem);padding-top:clamp(1rem,1.8vw,1.45rem)}.blog-frame{gap:clamp(1rem,2vw,1.7rem)}.topbar{border-bottom:1px solid color-mix(in srgb, var(--blog-line) 76%, transparent);background:0 0;align-items:flex-end;gap:clamp(1rem,3vw,2rem);padding:.8rem 0 .95rem}.topbar:after{content:none!important}.wordmark{font-family:var(--blog-font-display);letter-spacing:0;font-size:clamp(1.35rem,1.05rem + 1vw,1.95rem);font-weight:800}.wordmark mark{border:0;border-radius:0;padding:0 .08em .04em;background:linear-gradient(to top, color-mix(in srgb, var(--blog-accent-2) 18%, transparent) 0 44%, transparent 44%)!important;color:color-mix(in srgb, var(--blog-accent-2) 78%, var(--blog-ink))!important}.topbar-nav{color:var(--blog-muted);letter-spacing:0;gap:.04rem;font-size:.82rem}.topbar-nav a{padding-bottom:.16rem}.topbar-nav a+a{border-left-color:color-mix(in srgb, var(--blog-line) 78%, transparent)}.topbar-nav a[data-active=true],.topbar .chip-button[data-active=true]{color:var(--blog-ink);box-shadow:inset 0 -1px 0 var(--blog-accent-2)}.topbar .preference-rail{background:0 0;border:0;align-items:baseline;gap:.82rem;padding:0}.topbar .chip-button,.topbar .chip-button[data-size=compact]{min-width:0;min-height:0;box-shadow:none;color:color-mix(in srgb, var(--blog-ink) 70%, var(--blog-muted));background:0 0;border:0;border-radius:0;padding:0 0 .12rem;font-size:.84rem;font-weight:650;line-height:1.35}.blog-index-page{gap:0;width:min(1060px,100vw - 3rem);margin-inline:auto}.blog-index-head{border-bottom:1px solid color-mix(in srgb, var(--blog-line) 78%, transparent);grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:clamp(1rem,3vw,2rem);padding:clamp(1rem,2vw,1.5rem) 0 clamp(.9rem,1.8vw,1.2rem);display:grid}.blog-index-copy{gap:.5rem;display:grid}.blog-index-head .eyebrow{color:var(--blog-muted);font-family:var(--blog-font-ui);letter-spacing:.16em;font-size:.74rem;font-weight:720}.blog-index-head .eyebrow:before{background:var(--blog-accent-2)}.blog-index-head .stack-inline{align-self:center;gap:.8rem}.blog-index-head .ghost-link{color:color-mix(in srgb, var(--blog-accent-2) 78%, var(--blog-ink));background:0 0;border:0;border-radius:0;padding:0 0 .14rem;font-size:.86rem;font-weight:680;box-shadow:inset 0 -1px #0000}.blog-index-head .ghost-link:hover{color:var(--blog-ink);box-shadow:inset 0 -1px 0 var(--blog-accent-2)}.blog-featured-row,.blog-meta-grid,.section-band,.article-header,.article-page .article-main,.blog-ledger-hero,.blog-archive-year{padding-left:clamp(1rem,1.6vw,1.45rem);position:relative}.blog-featured-row:before,.blog-meta-grid:before,.section-band:before,.article-header:before,.article-page .article-main:before,.blog-ledger-hero:before,.blog-archive-year:before{content:"";background:color-mix(in srgb, var(--blog-line-strong) 70%, transparent);width:1px;position:absolute;top:.16rem;bottom:.12rem;left:0}.blog-featured-row:after,.blog-meta-grid:after,.section-band:after,.article-header:after,.article-page .article-main:after,.blog-ledger-hero:after,.blog-archive-year:after{content:"";border:1px solid var(--blog-bg);background:var(--blog-accent-3);width:.38rem;height:.38rem;position:absolute;top:.16rem;left:-.18rem}.blog-featured-row:after,.article-header:after{background:var(--blog-accent-2)}.section-band:after,.article-page .article-main:after{background:var(--blog-accent)}.blog-featured-row{border-bottom:1px solid color-mix(in srgb, var(--blog-line) 72%, transparent);grid-template-columns:4.3rem minmax(0,1fr);gap:clamp(1rem,3vw,2.3rem);padding-top:clamp(1.45rem,3vw,2.3rem);padding-bottom:clamp(1.45rem,3vw,2.3rem);display:grid}.blog-featured-row .post-card-index{color:var(--blog-accent-2);font-family:var(--blog-font-code);letter-spacing:.1em;writing-mode:horizontal-tb;font-size:.76rem;font-weight:800;display:block}.blog-featured-copy{grid-template-columns:minmax(17rem,.78fr) minmax(20rem,1fr);align-items:baseline;gap:clamp(1rem,3vw,2.4rem);display:grid}.blog-featured-copy a{max-width:26ch;color:var(--blog-ink);font-family:var(--blog-font-display);letter-spacing:0;font-size:clamp(1.5rem,3vw,2.7rem);font-weight:800;line-height:1.04}.blog-featured-copy a:hover{color:var(--blog-accent)}.blog-featured-copy p,.post-card-summary{max-width:66ch;color:var(--blog-muted);font-size:.96rem;line-height:1.74}.blog-meta-grid{border-bottom:1px solid color-mix(in srgb, var(--blog-line) 72%, transparent);grid-template-columns:minmax(0,1fr) minmax(8rem,11rem);gap:clamp(1.4rem,4vw,4rem);padding-top:1.1rem;padding-bottom:1.3rem}.blog-meta-grid>*{min-width:0}.blog-meta-block{gap:.6rem}.blog-meta-block .article-keywords-label{color:color-mix(in srgb, var(--blog-muted) 88%, var(--blog-accent));letter-spacing:.08em;font-size:.74rem;font-weight:760}.blog-meta-grid .tag-list{gap:.5rem 1rem}.blog-meta-grid .tag,.post-card .tag,.article-tag{color:var(--blog-muted);box-shadow:inset 0 -1px 0 color-mix(in srgb, var(--blog-line-strong) 54%, transparent);background:0 0;border:0;border-radius:0;padding:0 0 .08rem}.blog-meta-grid .tag:hover,.post-card .tag:hover,.article-tag:hover{color:var(--blog-ink);box-shadow:inset 0 -1px 0 var(--blog-accent-2);transform:none}.blog-meta-grid .meta-row{color:var(--blog-muted);grid-template-columns:1fr auto;padding-block:.18rem;font-size:.94rem;display:grid}.section-band{padding-top:clamp(1.5rem,3.5vw,2.7rem)}.section-band .section-head{padding-bottom:1rem}.section-band .section-title{font-family:var(--blog-font-display);letter-spacing:0;margin:0;font-size:clamp(1.25rem,2vw,1.8rem);font-weight:800}.post-list{border-top:1px solid color-mix(in srgb, var(--blog-line) 76%, transparent);border-bottom:1px solid color-mix(in srgb, var(--blog-line) 70%, transparent)}.post-card{border-top-color:color-mix(in srgb, var(--blog-line) 74%, transparent);transition:background .16s var(--ease-out-quart), transform .16s var(--ease-out-quart);grid-template-columns:4.3rem minmax(0,1fr);gap:clamp(1rem,2vw,1.5rem);padding-block:1.25rem}.post-card:hover{background:linear-gradient(90deg, color-mix(in srgb, var(--blog-accent-2) 7%, transparent), transparent 72%);transform:translate(3px)}.post-card-index{color:color-mix(in srgb, var(--blog-accent-3) 76%, var(--blog-muted));font-family:var(--blog-font-code);font-size:.72rem;font-weight:800;display:block}.post-card h3{color:var(--blog-ink);font-family:var(--blog-font-display);letter-spacing:0;font-size:clamp(1.18rem,1rem + .78vw,1.74rem);font-weight:800;line-height:1.12}.post-card-link{color:color-mix(in srgb, var(--blog-accent-2) 76%, var(--blog-ink));font-size:.82rem}.blog-archive-page,.blog-tag-page,.article-page{width:min(900px,100vw - 3rem);margin-inline:auto}.blog-ledger-hero,.blog-archive-year,.hero-panel,.content-panel{box-shadow:none;background:0 0;border-radius:0}.blog-ledger-hero{border-bottom:1px solid color-mix(in srgb, var(--blog-line) 76%, transparent);padding-top:clamp(1.8rem,4vw,3.4rem);padding-bottom:clamp(1.2rem,3vw,2rem)}.blog-ledger-hero .section-title{font-family:var(--blog-font-display);letter-spacing:0;font-size:clamp(2rem,5vw,4rem);font-weight:800}.blog-archive-ledger{border-bottom:1px solid color-mix(in srgb, var(--blog-line) 72%, transparent);gap:0}.blog-archive-year{border-top:1px solid color-mix(in srgb, var(--blog-line) 72%, transparent);padding-top:1.25rem;padding-bottom:1.35rem}.blog-archive-year .section-title{font-family:var(--blog-font-code);color:var(--blog-accent-2);font-size:.86rem;font-weight:800}.blog-archive-year .archive-list a{border-top:1px solid color-mix(in srgb, var(--blog-line) 58%, transparent);padding-block:.42rem;display:block}.blog-archive-year .archive-list a:first-child{border-top:0}.blog-archive-year .meta-row{color:var(--blog-muted);grid-template-columns:8rem minmax(0,1fr) 4rem;gap:1rem;display:grid}.blog-archive-year .meta-row span:nth-child(2){color:var(--blog-ink)}.article-page{width:min(1180px,100vw - 3rem)}.article-topline,.article-header,.article-reading-layout,.article-page .article-main,.article-page .article-prose{width:100%;max-width:820px;margin-inline:auto}.article-header{border-bottom:0;gap:1rem;padding-top:clamp(1.4rem,4vw,3rem);padding-bottom:clamp(1.25rem,3vw,2.1rem)}.article-title{max-width:760px;color:var(--blog-ink);font-family:var(--blog-font-display);letter-spacing:0;text-wrap:balance;font-size:clamp(2.35rem,6.8vw,5.15rem);font-weight:800;line-height:.98}.article-meta-strip span,.article-tag{box-shadow:inset 0 -1px 0 color-mix(in srgb, var(--blog-line-strong) 58%, transparent);background:0 0;border:0;border-radius:0}.article-abstract{border:0;max-width:760px;padding:0}.article-abstract-copy{color:var(--blog-muted);font-size:clamp(1rem,.96rem + .24vw,1.14rem);line-height:1.78}.article-reading-layout{display:block}.article-page .article-main,.article-page .article-prose{min-width:0}.article-page .article-prose{color:var(--blog-ink);font-size:1.02rem;line-height:1.9}.article-page .article-prose p,.article-page .article-prose ul,.article-page .article-prose ol,.article-page .article-prose blockquote,.article-page .article-prose pre,.article-page .article-prose table,.article-page .article-prose figure{max-width:820px}.article-page .article-prose h2,.article-page .article-prose h3,.article-page .article-prose h4{color:var(--blog-ink);font-family:var(--blog-font-display);letter-spacing:0;font-weight:800}.article-page .article-prose h2{border-top:0;font-size:clamp(1.48rem,2.4vw,2.15rem)}.article-page .article-prose h3{color:color-mix(in srgb, var(--blog-ink) 84%, var(--blog-accent-2))}.article-page .article-prose blockquote{border-top:0;border-bottom:0;border-left:2px solid var(--blog-accent);padding-left:1rem}.article-page .article-prose pre,.article-page .article-prose figure[data-rehype-pretty-code-figure]{background:var(--blog-code-bg);box-shadow:none;border-radius:6px}.article-page .article-prose table{border-color:color-mix(in srgb, var(--blog-line-strong) 78%, transparent)}.article-page .article-aside{pointer-events:auto}.article-toc-shell.source-toc,.article-toc-shell.source-toc[data-visible=true]{font-family:var(--blog-font-ui)}@media (min-width:1080px){.article-page .article-aside{z-index:80;pointer-events:none;width:min(310px,100vw - 2rem);min-width:0;margin:0;top:7.5rem;position:fixed!important;right:max(1rem,50vw - 410px - 7.4rem)!important}.article-toc-shell.source-toc,.article-toc-shell.source-toc[data-visible=true]{background:color-mix(in srgb, var(--blog-paper) 56%, transparent);width:54px;max-height:calc(100vh - 7rem);box-shadow:none;pointer-events:auto;transition:width .18s var(--ease-out-quart), padding .18s var(--ease-out-quart), background .18s var(--ease-out-quart), border-color .18s var(--ease-out-quart), box-shadow .18s var(--ease-out-quart);border:1px solid #0000;border-radius:999px;margin:0 0 0 auto;padding:.72rem .55rem;position:relative;overflow:hidden}.article-toc-shell.source-toc:hover,.article-toc-shell.source-toc:focus-within,.article-toc-shell.source-toc[data-visible=true]:hover,.article-toc-shell.source-toc[data-visible=true]:focus-within{border-color:color-mix(in srgb, var(--blog-line) 82%, var(--blog-paper));background:color-mix(in srgb, var(--blog-paper) 96%, transparent);width:min(310px,100vw - 2rem);box-shadow:0 16px 42px color-mix(in srgb, var(--blog-ink) 7%, transparent);border-radius:10px;padding:1rem .9rem;overflow:auto}.article-toc-shell.source-toc .toc-rail-marks{pointer-events:none;justify-items:center;gap:.48rem;display:grid;position:absolute;top:.78rem;left:0;right:0}.article-toc-shell.source-toc:hover .toc-rail-marks,.article-toc-shell.source-toc:focus-within .toc-rail-marks{display:none}.article-toc-shell.source-toc .toc-rail-mark{background:color-mix(in srgb, var(--blog-line-strong) 80%, transparent);border-radius:999px;width:1.6rem;height:3px;display:block}.article-toc-shell.source-toc .toc-rail-mark[data-pattern="1"]{width:1.28rem}.article-toc-shell.source-toc .toc-rail-mark[data-pattern="2"]{width:1.85rem}.article-toc-shell.source-toc .toc-rail-mark[data-pattern="4"]{width:1.1rem}.article-toc-shell.source-toc .toc-rail-mark.active{background:var(--blog-accent-3);width:2rem;height:4px}.article-toc-shell.source-toc .article-toc-title{opacity:0;width:0;height:0;margin:0;overflow:hidden}.article-toc-shell.source-toc:hover .article-toc-title,.article-toc-shell.source-toc:focus-within .article-toc-title{opacity:1;width:auto;height:auto;color:color-mix(in srgb, var(--blog-muted) 90%, var(--blog-ink));letter-spacing:.12em;text-transform:uppercase;margin:0 0 .65rem .45rem;font-size:.72rem;font-weight:760;overflow:visible}.article-toc-shell.source-toc .article-toc-list{margin:0;padding:0;list-style:none;display:block}.article-toc-shell.source-toc .toc-item{margin:.34rem 0}.article-toc-shell.source-toc .toc-link{color:#0000;text-overflow:ellipsis;white-space:nowrap;background:0 0;border-radius:999px;height:.78rem;padding:0;line-height:1;display:block;overflow:hidden}.article-toc-shell.source-toc .toc-link:before{display:none!important}.article-toc-shell.source-toc:hover .toc-link,.article-toc-shell.source-toc:focus-within .toc-link{height:auto;color:color-mix(in srgb, var(--blog-muted) 90%, var(--blog-ink));text-overflow:clip;border-radius:7px;padding:.34rem .45rem;font-size:.78rem;line-height:1.35}.article-toc-shell.source-toc:hover .toc-link:hover,.article-toc-shell.source-toc:focus-within .toc-link:hover{color:var(--blog-ink);background:color-mix(in srgb, var(--blog-line) 30%, transparent)}.article-toc-shell.source-toc:hover .toc-link.active,.article-toc-shell.source-toc:focus-within .toc-link.active,.article-toc-shell.source-toc:hover .toc-link[data-active=true],.article-toc-shell.source-toc:focus-within .toc-link[data-active=true]{color:var(--blog-accent-3);background:color-mix(in srgb, var(--blog-line) 44%, transparent)}}@media (max-width:1079px){body{background-image:none!important}.blog-index-page,.blog-archive-page,.blog-tag-page,.article-page{width:min(100vw - 1.5rem,100%)}.blog-index-head,.blog-featured-row,.blog-meta-grid,.blog-featured-copy{grid-template-columns:1fr}.blog-index-head .stack-inline{justify-content:flex-start}.article-page .article-aside{width:100%;position:static!important}.article-toc-shell.source-toc,.article-toc-shell.source-toc[data-visible=true],.article-toc-shell.source-toc:hover,.article-toc-shell.source-toc:focus-within{border:1px solid color-mix(in srgb, var(--blog-line) 82%, var(--blog-paper));background:color-mix(in srgb, var(--blog-paper) 94%, transparent);width:100%;max-width:none;max-height:none;box-shadow:none;border-radius:12px;padding:1rem;overflow:auto}.article-toc-shell.source-toc .toc-rail-marks{display:none}.article-toc-shell.source-toc .article-toc-title{opacity:1;width:auto;height:auto;margin:0 0 .65rem;overflow:visible}.article-toc-shell.source-toc .article-toc-list{columns:2}.article-toc-shell.source-toc .toc-item{margin:0}.article-toc-shell.source-toc .toc-link,.article-toc-shell.source-toc:hover .toc-link,.article-toc-shell.source-toc:focus-within .toc-link{height:auto;color:color-mix(in srgb, var(--blog-muted) 90%, var(--blog-ink));border-radius:8px;padding:.4rem .65rem;line-height:1.4}.article-toc-shell.source-toc .toc-link:before,.article-toc-shell.source-toc:hover .toc-link:before,.article-toc-shell.source-toc:focus-within .toc-link:before{display:none!important}}@media (max-width:700px){.page-shell{width:min(100vw - 1.25rem,100%)}.topbar{align-items:flex-start}.blog-featured-row,.post-card,.blog-meta-grid{grid-template-columns:1fr}.blog-meta-grid .archive-list{justify-items:start}.blog-meta-grid .meta-row{grid-template-columns:auto auto;justify-content:start;gap:1rem}.blog-meta-grid .tag-list{min-width:0}.blog-meta-grid .tag{overflow-wrap:anywhere}.blog-featured-row,.blog-meta-grid,.section-band,.article-header,.article-page .article-main,.blog-ledger-hero,.blog-archive-year{padding-left:.9rem}.blog-archive-year .meta-row{grid-template-columns:1fr;gap:.2rem}.article-title{font-size:clamp(2rem,11vw,3.25rem)}.article-toc-shell.source-toc .article-toc-list{columns:1}}.topbar{border-top:1px solid color-mix(in srgb, var(--blog-line) 54%, transparent);border-bottom:1px solid color-mix(in srgb, var(--blog-line) 82%, transparent);grid-template-columns:minmax(10rem,auto) minmax(0,1fr) auto;align-items:center;gap:clamp(.85rem,2.4vw,2.4rem);padding:.78rem 0 .74rem;display:grid}.topbar-brand-block{align-items:baseline;gap:.7rem;min-width:0;display:inline-flex}.wordmark{white-space:nowrap;font-size:clamp(1.05rem,.92rem + .45vw,1.4rem);line-height:1}.wordmark mark{padding:0 .07em .03em;background:linear-gradient(to top, color-mix(in srgb, var(--blog-accent-2) 20%, transparent) 0 48%, transparent 48%)!important}.topbar-edition{color:color-mix(in srgb, var(--blog-muted) 82%, transparent);font-family:var(--blog-font-code);letter-spacing:.08em;text-transform:uppercase;white-space:nowrap;padding-left:.72rem;font-size:.66rem;font-weight:700;line-height:1;position:relative}.topbar-edition:before{content:"";background:color-mix(in srgb, var(--blog-line-strong) 54%, transparent);width:1px;position:absolute;top:-.08rem;bottom:-.08rem;left:0}.topbar-rail{justify-content:center;min-width:0;display:flex}.topbar-nav{border:1px solid color-mix(in srgb, var(--blog-line) 78%, transparent);background:color-mix(in srgb, var(--blog-paper) 64%, transparent);max-width:100%;color:color-mix(in srgb, var(--blog-muted) 86%, var(--blog-ink));scrollbar-width:none;border-radius:999px;align-items:center;gap:.12rem;padding:.22rem;font-size:.76rem;display:inline-flex;overflow-x:auto}.topbar-nav::-webkit-scrollbar{display:none}.topbar-nav a,.topbar-nav a+a{box-shadow:none;white-space:nowrap;border:0;border-radius:999px;margin:0;padding:.28rem .58rem}.topbar-nav a:hover{color:var(--blog-ink);transform:none}.topbar-nav a[data-active=true]{background:color-mix(in srgb, var(--blog-accent-2) 11%, transparent);color:var(--blog-ink);box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--blog-accent-2) 24%, transparent)}.topbar-tools{border:1px solid color-mix(in srgb, var(--blog-line) 78%, transparent);min-width:0;color:color-mix(in srgb, var(--blog-muted) 86%, var(--blog-ink));border-radius:999px;justify-self:end;align-items:center;padding:.22rem .34rem;display:inline-flex}.topbar .chip-button,.topbar .chip-button[data-size=compact]{padding:.1rem .12rem .14rem;font-size:.76rem}.topbar .chip-button[data-active=true]{box-shadow:inset 0 -1px 0 var(--blog-accent-2)}@media (max-width:920px){.topbar{grid-template-columns:1fr;align-items:start;gap:.64rem}.topbar-rail{justify-content:flex-start;width:100%}.topbar-nav{width:100%}.topbar-tools{border-radius:12px;justify-self:start;width:100%;overflow-x:auto}}@media (max-width:560px){.topbar-edition{display:none}.topbar .preference-rail{flex-wrap:wrap}}.topbar{--topbar-control-size:2rem;border-top:0}.topbar-nav{color:color-mix(in srgb, var(--blog-muted) 90%, var(--blog-ink));font-family:var(--blog-font-code);letter-spacing:.06em;text-transform:uppercase;background:0 0;border:0;border-radius:0;gap:clamp(.35rem,1.2vw,1.1rem);padding:0;font-size:clamp(.72rem,.68rem + .12vw,.82rem);font-weight:750}.topbar-nav a,.topbar-nav a+a{min-height:2.26rem;color:inherit;text-rendering:geometricprecision;border:1px solid #0000;border-radius:0;align-items:center;padding:.42rem .68rem;line-height:1;display:inline-flex}.topbar-nav a:before{content:"[";color:color-mix(in srgb, currentColor 70%, transparent);margin-right:.46rem}.topbar-nav a:after{content:"]";color:color-mix(in srgb, currentColor 70%, transparent);margin-left:.46rem}.topbar-nav a:hover{color:var(--blog-ink);background:color-mix(in srgb, var(--blog-ink) 4%, transparent)}.topbar-nav a[data-active=true]{border-color:var(--blog-ink);background:var(--blog-ink);color:var(--blog-bg);box-shadow:3px 3px 0 color-mix(in srgb, var(--blog-line-strong) 68%, transparent), inset -2px -2px 0 color-mix(in srgb, var(--blog-bg) 10%, transparent)}.topbar-nav a[data-active=true]:before,.topbar-nav a[data-active=true]:after{color:color-mix(in srgb, var(--blog-bg) 86%, transparent)}.topbar-tools{background:0 0;border:0;border-radius:0;padding:0}.topbar .topbar-date+.preference-rail:before{content:none;display:none}.topbar .preference-rail{align-items:center;gap:.52rem}.topbar .chip-button,.topbar .chip-button[data-size=compact]{box-sizing:border-box;flex:0 0 var(--topbar-control-size);width:var(--topbar-control-size);height:var(--topbar-control-size);min-width:var(--topbar-control-size);min-height:var(--topbar-control-size);border:1px solid color-mix(in srgb, var(--blog-line-strong) 66%, transparent);background:color-mix(in srgb, var(--blog-paper) 78%, transparent);box-shadow:none;color:color-mix(in srgb, var(--blog-muted) 84%, var(--blog-ink));place-items:center;padding:0;line-height:1;display:inline-grid}.topbar .chip-button:after{content:none;display:none}.topbar .chip-button:hover{border-color:color-mix(in srgb, var(--blog-ink) 28%, var(--blog-line-strong));color:var(--blog-ink)}.topbar .chip-button[data-active=true]{border-color:var(--blog-ink);background:var(--blog-ink);color:var(--blog-bg);box-shadow:inset -2px -2px 0 color-mix(in srgb, var(--blog-bg) 12%, transparent), inset 0 0 0 1px var(--blog-ink)}.toggle-icon{width:1rem;height:1rem;display:block}.toggle-icon-language{font-family:var(--blog-font-code);place-items:center;font-size:.82rem;font-weight:850;line-height:1;display:grid}@media (max-width:920px){.topbar-nav{justify-content:flex-start;gap:.3rem}.topbar-nav a,.topbar-nav a+a{padding-inline:.58rem}.topbar-tools{width:auto;overflow:visible}}@media (max-width:560px){.topbar{--topbar-control-size:1.86rem}.topbar .preference-rail{flex-wrap:nowrap}}.topbar{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"brand tools""nav tools";align-items:start;gap:.58rem clamp(1.2rem,4vw,3.2rem);padding:clamp(.78rem,1.2vw,1.05rem) 0 clamp(.82rem,1.4vw,1.1rem)}.topbar-brand-block{grid-area:brand;justify-self:start}.topbar-rail{grid-area:nav;justify-content:flex-start;width:min(100%,46rem)}.topbar-nav{justify-content:flex-start;gap:clamp(.28rem,.9vw,.82rem);width:100%;font-size:clamp(.68rem,.66rem + .08vw,.76rem)}.topbar-nav a,.topbar-nav a+a{min-height:2rem;padding:.34rem .56rem}.topbar-nav a:before{margin-right:.38rem}.topbar-nav a:after{margin-left:.38rem}.topbar-tools{grid-area:tools;align-self:start;padding-top:.06rem}@media (max-width:920px){.topbar{grid-template-columns:1fr;grid-template-areas:"brand""nav""tools";row-gap:.6rem}.topbar-rail{width:100%}.topbar-nav{gap:.24rem;max-width:100%}.topbar-tools{justify-self:start;padding-top:0}}@media (max-width:560px){.topbar{row-gap:.54rem}.topbar-brand-block{gap:.5rem}.wordmark{font-size:clamp(1.04rem,5vw,1.28rem)}.topbar-nav{gap:.16rem;font-size:.66rem}.topbar-nav a,.topbar-nav a+a{min-height:1.92rem;padding-inline:.46rem}.topbar .chip-button,.topbar .chip-button[data-size=compact]{width:var(--topbar-control-size);height:var(--topbar-control-size);min-width:var(--topbar-control-size);min-height:var(--topbar-control-size)}}.topbar .preference-rail-cycle{gap:.46rem}.topbar .preference-cycle-button,.topbar .preference-cycle-button[data-size=compact]{width:var(--topbar-control-size);height:var(--topbar-control-size);min-width:var(--topbar-control-size);min-height:var(--topbar-control-size)}.article-title{font-size:clamp(2.1rem,5.6vw,4.35rem);line-height:1}@media (min-width:1080px){.article-page{width:min(1180px,100vw - 3rem);max-width:1180px}.article-topline,.article-reading-layout,.article-page .article-main,.article-page .article-prose{max-width:820px}.article-header{grid-template-columns:minmax(0,1fr) minmax(0,820px) minmax(3.2rem,1fr);column-gap:0;width:100%;max-width:1180px;display:grid}.article-header:before{left:calc(50% - min(820px,100%)/2)}.article-header:after{left:calc(50% - min(820px,100%)/2 - .18rem)}.article-header>:not(.article-aside){grid-column:2}.article-title-wrap{width:100%;min-width:0;max-width:820px;position:relative}.article-page>.article-aside{--toc-gap:.875rem;--toc-left:calc(50vw + 410px + var(--toc-gap));--toc-open-width:min(310px, max(42px, calc(100vw - var(--toc-left) - 1rem)));z-index:8;top:clamp(21rem,52vh,34rem);left:var(--toc-left);width:var(--toc-open-width);pointer-events:none;justify-items:end;height:0;margin:0;position:fixed!important;right:auto!important}.article-toc-shell.source-toc,.article-toc-shell.source-toc[data-visible=true]{opacity:1;pointer-events:auto;width:42px;min-height:7.35rem;transition:width .18s var(--ease-out-quart), padding .18s var(--ease-out-quart), background .18s var(--ease-out-quart), border-color .18s var(--ease-out-quart), box-shadow .18s var(--ease-out-quart);margin:0 0 0 auto;padding:.72rem .55rem;overflow:hidden;transform:none}.article-toc-shell.source-toc:hover,.article-toc-shell.source-toc:focus-within,.article-toc-shell.source-toc[data-visible=true]:hover,.article-toc-shell.source-toc[data-visible=true]:focus-within{width:var(--toc-open-width);opacity:1;min-height:min(25rem,100vh - clamp(21rem,52vh,34rem) - 1.5rem);max-height:calc(100vh - clamp(21rem,52vh,34rem) - 1.5rem);overflow:hidden auto;height:auto!important}.article-toc-shell.source-toc .toc-rail-marks{opacity:1;justify-items:center;gap:.36rem;display:grid;position:absolute;top:.72rem;left:0;right:0}.article-toc-shell.source-toc .toc-rail-mark{height:3px}.article-toc-shell.source-toc .toc-rail-mark.active{height:4px}.article-toc-shell.source-toc .article-toc-title,.article-toc-shell.source-toc .article-toc-list{opacity:0;pointer-events:none}.article-toc-shell.source-toc .article-toc-list{width:0;height:0;overflow:hidden}.article-toc-shell.source-toc:hover .article-toc-title,.article-toc-shell.source-toc:focus-within .article-toc-title,.article-toc-shell.source-toc:hover .article-toc-list,.article-toc-shell.source-toc:focus-within .article-toc-list{opacity:1;pointer-events:auto}.article-toc-shell.source-toc:hover .article-toc-list,.article-toc-shell.source-toc:focus-within .article-toc-list{width:auto;height:auto;overflow:visible}.article-toc-shell.source-toc:hover .toc-link.active,.article-toc-shell.source-toc:focus-within .toc-link.active,.article-toc-shell.source-toc:hover .toc-link[data-active=true],.article-toc-shell.source-toc:focus-within .toc-link[data-active=true]{color:var(--blog-accent-3);background:color-mix(in srgb, var(--blog-line) 56%, transparent);box-shadow:inset 3px 0 0 var(--blog-accent-3);font-weight:760}}@media (max-width:700px){.article-title{font-size:clamp(1.9rem,10vw,2.9rem)}}.blog-index-page{width:100%;margin-inline:0;padding:clamp(.9rem,2vw,1.55rem) 0 clamp(2rem,5vw,4rem)}.blog-home-section{gap:0;padding-left:0;display:grid;position:relative}.blog-home-section:before,.blog-home-section:after{content:none}.blog-home-entry-list{display:grid}.blog-home-entry{background:linear-gradient(90deg, color-mix(in srgb, var(--blog-accent-2) 0%, transparent), transparent);transition:background .16s var(--ease-out-quart), transform .16s var(--ease-out-quart), color .16s var(--ease-out-quart);border-top:0;grid-template-columns:2.3rem minmax(0,1fr) 1.45rem;align-items:start;gap:clamp(.75rem,2vw,1.25rem);padding:.9rem 0 1rem;display:grid}.blog-home-entry:hover{background:linear-gradient(90deg, color-mix(in srgb, var(--blog-accent-2) 7%, transparent), transparent 72%);transform:translate(3px)}.blog-home-entry-count,.blog-home-entry-meta{color:color-mix(in srgb, var(--blog-accent-3) 74%, var(--blog-muted));font-family:var(--blog-font-code);letter-spacing:.08em;text-transform:uppercase;font-size:.72rem;font-weight:700}.blog-home-entry-copy{gap:.38rem;min-width:0;display:grid}.blog-home-entry-meta{color:color-mix(in srgb, var(--blog-muted) 88%, var(--blog-ink));flex-wrap:wrap;gap:.3rem .62rem;display:flex}.blog-home-entry-meta span+span:before{content:"/";color:color-mix(in srgb, var(--blog-line-strong) 88%, var(--blog-muted));margin-right:.62rem}.blog-home-entry h2{color:var(--blog-ink);font-family:var(--blog-font-ui);letter-spacing:0;margin:0;font-size:1.03rem;font-weight:720;line-height:1.35}.blog-home-entry p{max-width:60ch;color:var(--blog-muted);margin:0;font-size:.88rem;line-height:1.72}.blog-home-entry-action{width:1.45rem;height:1.45rem;color:var(--blog-accent-2);place-items:center;display:inline-grid}.blog-home-entry:hover .blog-home-entry-action{color:var(--blog-ink)}@media (max-width:760px){.blog-index-page{width:100%;padding-top:1.1rem}.blog-home-entry{grid-template-columns:2rem minmax(0,1fr)}.blog-home-entry-action{display:none}}.article-page .article-prose .sec-num{color:color-mix(in srgb, var(--blog-accent-2) 78%, var(--blog-muted));font-family:var(--blog-font-code);letter-spacing:.12em;text-transform:uppercase;margin:2.2rem 0 .35rem;font-size:.72rem;font-weight:760;display:block}.article-page .article-prose .note,.article-page .article-prose .diagram,.article-page .article-prose .grid2,.article-page .article-prose .cols4,.article-page .article-prose .stack,.article-page .article-prose .table-wrap,.article-page .article-prose .hpara{max-width:820px;margin:1.25rem 0}.article-page .article-prose .hpara{margin:.9rem 0}.article-page .article-prose .note{border-left:2px solid var(--blog-accent);background:color-mix(in srgb, var(--blog-accent) 8%, transparent);padding:.85rem 1rem}.article-page .article-prose .note.green{border-left-color:var(--blog-accent-2);background:color-mix(in srgb, var(--blog-accent-2) 9%, transparent)}.article-page .article-prose .note.blue{border-left-color:var(--blog-accent-3);background:color-mix(in srgb, var(--blog-accent-3) 9%, transparent)}.article-page .article-prose .note.lead-note{border-left-color:var(--blog-accent-2);background:linear-gradient(90deg, color-mix(in srgb, var(--blog-accent-2) 9%, transparent), transparent);margin-top:0}.article-page .article-prose .note .tag,.article-page .article-prose .eq .lbl,.article-page .article-prose .diagram .dtitle{color:var(--blog-accent);font-family:var(--blog-font-ui);letter-spacing:.1em;text-transform:uppercase;margin:0 0 .45rem;font-size:.72rem;font-weight:780;line-height:1.35;display:block}.article-page .article-prose .note.green .tag{color:var(--blog-accent-2)}.article-page .article-prose .note.blue .tag,.article-page .article-prose .eq .lbl{color:var(--blog-accent-3)}.article-page .article-prose .ep,.article-page .article-prose .cit{border:1px solid color-mix(in srgb, var(--blog-line-strong) 48%, transparent);background:color-mix(in srgb, var(--blog-paper-soft) 78%, transparent);color:color-mix(in srgb, var(--blog-muted) 86%, var(--blog-ink));font-family:var(--blog-font-code);vertical-align:.14em;border-radius:4px;justify-content:center;align-items:center;font-size:.68rem;font-weight:760;line-height:1.45;text-decoration:none;display:inline-flex}.article-page .article-prose .ep{padding:0 .34em}.article-page .article-prose .ep.paper{color:var(--blog-accent-2);background:color-mix(in srgb, var(--blog-accent-2) 9%, transparent)}.article-page .article-prose .ep.inf,.article-page .article-prose .cit{color:var(--blog-accent-3);background:color-mix(in srgb, var(--blog-accent-3) 9%, transparent)}.article-page .article-prose .ep.ext{color:var(--blog-accent);background:color-mix(in srgb, var(--blog-accent) 9%, transparent)}.article-page .article-prose .cit{min-width:1.2rem;margin-left:.12rem;padding:0 .3em}.article-page .article-prose .diagram{border:1px solid color-mix(in srgb, var(--blog-line-strong) 72%, transparent);background:color-mix(in srgb, var(--blog-paper) 80%, transparent);border-radius:6px;padding:1rem}.article-page .article-prose .diagram .dtitle{color:var(--blog-accent-2)}.article-page .article-prose .diagram .dcap,.article-page .article-prose .fc-loop{border-top:1px dashed color-mix(in srgb, var(--blog-line-strong) 52%, transparent);color:var(--blog-muted);font-family:var(--blog-font-ui);margin-top:.75rem;padding-top:.7rem;font-size:.82rem;line-height:1.62}.article-page .article-prose .flow{flex-wrap:wrap;align-items:stretch;gap:.45rem;display:flex}.article-page .article-prose .fc-node,.article-page .article-prose .layer,.article-page .article-prose .col,.article-page .article-prose .mini{border:1px solid color-mix(in srgb, var(--blog-line-strong) 68%, transparent);background:color-mix(in srgb, var(--blog-paper-soft) 72%, transparent);border-radius:6px}.article-page .article-prose .fc-node{min-width:8rem;font-family:var(--blog-font-ui);flex:8rem;padding:.7rem .8rem}.article-page .article-prose .fc-node b,.article-page .article-prose .layer .lname,.article-page .article-prose .col .ct,.article-page .article-prose .mini h4{color:var(--blog-ink);font-family:var(--blog-font-ui);font-size:.9rem;font-weight:760;line-height:1.35;display:block}.article-page .article-prose .fc-node span,.article-page .article-prose .layer .ldesc,.article-page .article-prose .col li,.article-page .article-prose .mini p,.article-page .article-prose .mini li{color:var(--blog-muted);font-family:var(--blog-font-ui);font-size:.82rem;line-height:1.62}.article-page .article-prose .fc-node.a,.article-page .article-prose .layer.l1{border-color:color-mix(in srgb, var(--blog-accent) 38%, var(--blog-line-strong))}.article-page .article-prose .fc-node.g,.article-page .article-prose .layer.l2{border-color:color-mix(in srgb, var(--blog-accent-2) 38%, var(--blog-line-strong))}.article-page .article-prose .fc-node.b,.article-page .article-prose .layer.l3{border-color:color-mix(in srgb, var(--blog-accent-3) 38%, var(--blog-line-strong))}.article-page .article-prose .fc-arrow{min-width:1.1rem;color:var(--blog-accent);font-family:var(--blog-font-code);place-items:center;font-weight:780;display:grid}.article-page .article-prose .stack{gap:.55rem;display:grid}.article-page .article-prose .layer{grid-template-columns:minmax(7.8rem,.28fr) minmax(0,1fr);align-items:start;gap:.75rem;padding:.75rem .85rem;display:grid}.article-page .article-prose .grid2,.article-page .article-prose .cols4{gap:.75rem;display:grid}.article-page .article-prose .grid2{grid-template-columns:repeat(2,minmax(0,1fr))}.article-page .article-prose .cols4{grid-template-columns:repeat(4,minmax(0,1fr))}.article-page .article-prose .cols4.three-up{grid-template-columns:repeat(3,minmax(0,1fr))}.article-page .article-prose .mini,.article-page .article-prose .col{padding:.85rem}.article-page .article-prose .mini.wide{grid-column:1/-1}.article-page .article-prose .mini h4,.article-page .article-prose .col .ct{color:color-mix(in srgb, var(--blog-ink) 86%, var(--blog-accent-2));margin:0 0 .45rem}.article-page .article-prose .mini p,.article-page .article-prose .mini ul,.article-page .article-prose .mini ol,.article-page .article-prose .col ul{margin:.45rem 0 0}.article-page .article-prose .clean{padding-left:0;list-style:none}.article-page .article-prose .clean li{padding-left:1.05rem;position:relative}.article-page .article-prose .clean li:before{content:"";background:var(--blog-accent-2);width:.34rem;height:.34rem;position:absolute;top:.78em;left:0}.article-page .article-prose .table-wrap{border-top:1px solid color-mix(in srgb, var(--blog-line-strong) 70%, transparent);border-bottom:1px solid color-mix(in srgb, var(--blog-line-strong) 70%, transparent);overflow-x:auto}.article-page .article-prose .table-wrap table{min-width:620px;margin:0}.article-page .article-prose .num{font-variant-numeric:tabular-nums}.article-page .article-prose .up{color:var(--blog-accent-2);font-weight:780}.article-page .article-prose .down{color:var(--blog-accent);font-weight:780}.article-page .article-prose .eq{border-left:2px solid var(--blog-accent-3);background:color-mix(in srgb, var(--blog-accent-3) 8%, transparent);max-width:820px;margin:1.2rem 0;padding:.85rem 1rem;overflow-x:auto}.article-page .article-prose .eq-formula,.article-page .article-prose .eq .katex-display{color:var(--blog-ink);font-size:.9rem;line-height:1.7}.article-page .article-prose .eq-formula{font-family:var(--blog-font-code);white-space:nowrap}.article-page .article-prose .eq .katex-display{margin:.2rem 0 0;padding:0;overflow-x:visible}.article-page .article-prose .eq .katex{color:var(--blog-ink);font-size:1.02em}.article-page .article-prose .refs{color:var(--blog-muted);font-family:var(--blog-font-ui);padding-left:1.25rem;font-size:.86rem;line-height:1.68}.article-page .article-prose .refs li{margin:.7rem 0}.article-page .article-prose .ref-title{color:color-mix(in srgb, var(--blog-accent-3) 78%, var(--blog-ink))}@media (max-width:860px){.article-page .article-prose .grid2,.article-page .article-prose .cols4,.article-page .article-prose .cols4.three-up{grid-template-columns:1fr 1fr}.article-page .article-prose .layer{grid-template-columns:1fr;gap:.35rem}}@media (max-width:620px){.article-page .article-prose .flow{flex-direction:column}.article-page .article-prose .fc-arrow{min-height:1rem;transform:rotate(90deg)}.article-page .article-prose .grid2,.article-page .article-prose .cols4,.article-page .article-prose .cols4.three-up{grid-template-columns:1fr}}@media (max-width:760px){.article-page>.article-aside,.article-page .article-aside{width:100%;max-width:820px;margin:0 auto 1.1rem;order:0!important;position:relative!important;top:auto!important;right:auto!important}.article-toc-shell.source-toc,.article-toc-shell.source-toc[data-visible=true],.article-toc-shell.source-toc:hover,.article-toc-shell.source-toc:focus-within{border:1px solid color-mix(in srgb, var(--blog-line) 82%, var(--blog-paper));background:color-mix(in srgb, var(--blog-paper) 94%, transparent);width:100%;max-height:min(18rem,42vh);box-shadow:none;border-radius:6px;padding:.8rem;overflow:auto}.article-toc-shell.source-toc .toc-rail-marks{display:none}.article-toc-shell.source-toc .article-toc-title,.article-toc-shell.source-toc:hover .article-toc-title,.article-toc-shell.source-toc:focus-within .article-toc-title{opacity:1;width:auto;height:auto;color:var(--blog-ink);font-family:var(--blog-font-ui);letter-spacing:0;text-transform:none;margin:0 0 .55rem;font-size:.78rem;font-weight:760;overflow:visible}.article-toc-shell.source-toc .article-toc-list,.article-toc-shell.source-toc:hover .article-toc-list,.article-toc-shell.source-toc:focus-within .article-toc-list{gap:.16rem;margin:0;padding:0;list-style:none;display:grid}.article-toc-shell.source-toc .toc-link,.article-toc-shell.source-toc:hover .toc-link,.article-toc-shell.source-toc:focus-within .toc-link{height:auto;color:color-mix(in srgb, var(--blog-muted) 88%, var(--blog-ink));text-overflow:clip;white-space:normal;background:0 0;border-radius:5px;padding:.28rem .45rem;font-size:.82rem;line-height:1.35;display:block;overflow:visible}.article-toc-shell.source-toc .toc-link.active,.article-toc-shell.source-toc .toc-link[data-active=true]{color:var(--blog-accent-3);background:color-mix(in srgb, var(--blog-line) 44%, transparent)}}.article-slug-auto-harness-healthcare .article-title,.article-slug-auto-harness-healthcare .article-prose h2,.article-slug-auto-harness-healthcare .article-prose h3,.article-slug-auto-harness-healthcare .article-prose h4,.article-slug-auto-harness-healthcare .article-prose .mini h4,.article-slug-auto-harness-healthcare .article-prose .fc-node b,.article-slug-auto-harness-healthcare .article-prose .layer .lname,.article-slug-auto-harness-healthcare .article-prose .col .ct{font-family:var(--blog-font-ui);letter-spacing:0}.article-slug-auto-harness-healthcare .article-title{max-width:820px;font-size:clamp(2.1rem,5.6vw,4.15rem);font-weight:780;line-height:1.08}.article-slug-auto-harness-healthcare .article-prose h2{font-size:clamp(1.42rem,2.1vw,1.95rem);font-weight:760;line-height:1.25}.article-slug-auto-harness-healthcare .article-prose h3{font-size:clamp(1.08rem,1.35vw,1.28rem);font-weight:720}.article-slug-auto-harness-healthcare .article-prose h4,.article-slug-auto-harness-healthcare .article-prose .mini h4,.article-slug-auto-harness-healthcare .article-prose .fc-node b,.article-slug-auto-harness-healthcare .article-prose .layer .lname,.article-slug-auto-harness-healthcare .article-prose .col .ct{font-weight:720}:root{--blog-font-display:var(--blog-font-ui)}.wordmark,.blog-index-head .section-title,.section-band .section-title,.blog-ledger-hero .section-title,.blog-home-entry h2,.blog-featured-copy a,.post-card h3,.article-title,.article-page .article-prose h1,.article-page .article-prose h2,.article-page .article-prose h3,.article-page .article-prose h4,.article-page .article-prose .mini h4,.article-page .article-prose .fc-node b,.article-page .article-prose .layer .lname,.article-page .article-prose .col .ct{font-family:var(--blog-font-ui);letter-spacing:0}.wordmark,.blog-index-head .section-title,.section-band .section-title,.blog-ledger-hero .section-title,.article-title{font-weight:760}.article-title{line-height:1.08}.blog-home-entry h2,.blog-featured-copy a,.post-card h3,.article-page .article-prose h2{font-weight:740}.article-page .article-prose h3,.article-page .article-prose h4,.article-page .article-prose .mini h4,.article-page .article-prose .fc-node b,.article-page .article-prose .layer .lname,.article-page .article-prose .col .ct{font-weight:720}
