.blog-scope{--blog-bg:#fbfbfd;--blog-surface:#fff;--blog-border:#e4e4e9;--blog-fg:#1c1c22;--blog-fg-soft:#4a4a55;--blog-muted:#71717a;--blog-accent:#0e7490;--blog-accent-soft:#06b6d4;--blog-code-bg:#0d1117;--blog-code-border:#1f2933;--blog-mark:rgba(6,182,212,.16);--blog-shadow:0 1px 2px rgba(16,16,24,.04),0 8px 24px rgba(16,16,24,.06);background:var(--blog-bg);color:var(--blog-fg);min-height:100vh;--bg:var(--blog-bg);--surface:var(--blog-surface);--border:var(--blog-border);--text:var(--blog-fg);--text-2:var(--blog-fg-soft);--text-muted:var(--blog-muted);--accent:var(--blog-accent);--accent-hover:var(--blog-accent-soft)}[data-theme=dark] .blog-scope{--blog-bg:#16161d;--blog-surface:#1c1c26;--blog-border:#2c2c38;--blog-fg:#d8d8de;--blog-fg-soft:#a8a8b4;--blog-muted:#83838f;--blog-accent:#22d3ee;--blog-accent-soft:#67e8f9;--blog-code-bg:#0d1117;--blog-code-border:#262633;--blog-mark:rgba(34,211,238,.18);--blog-shadow:0 1px 2px rgba(0,0,0,.3),0 8px 24px rgba(0,0,0,.28)}.prose-blog{font-family:var(--font-inter),system-ui,sans-serif;font-size:1.125rem;line-height:1.75;color:var(--blog-fg-soft);max-width:58ch}.prose-blog>*+*{margin-top:1.5em}.prose-blog p{overflow-wrap:break-word}.prose-blog h2,.prose-blog h3,.prose-blog h4{color:var(--blog-fg);font-weight:650;letter-spacing:-.015em;line-height:1.3;position:relative}.prose-blog h2{font-size:1.65rem;margin-top:2.5em;padding-bottom:.35em;border-bottom:1px solid var(--blog-border)}.prose-blog h3{font-size:1.3rem;margin-top:2.15em}.prose-blog h4{font-size:1.1rem;margin-top:1.9em}.prose-blog>h2+*{margin-top:.9em}.prose-blog>h3+*{margin-top:.7em}.prose-blog>h4+*{margin-top:.6em}.prose-blog>:first-child{margin-top:0}.prose-blog strong{color:var(--blog-fg);font-weight:640}.prose-blog a{color:var(--blog-accent);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px;transition:opacity .15s ease}.prose-blog a:hover{opacity:.72}.heading-anchor{position:absolute;left:-1.1em;color:var(--blog-muted);text-decoration:none;opacity:0;transition:opacity .15s ease;font-weight:400}.heading-anchor:focus-visible,.prose-blog h2:hover .heading-anchor,.prose-blog h3:hover .heading-anchor{opacity:.6}@media (max-width:900px){.heading-anchor{display:none}}.prose-blog ol,.prose-blog ul{padding-left:1.4em}.prose-blog li{margin-top:.5em}.prose-blog ul>li{list-style:disc}.prose-blog ol>li{list-style:decimal}.prose-blog li::marker{color:var(--blog-muted)}.prose-blog blockquote{border-left:3px solid var(--blog-accent);padding:.25em 0 .25em 1.25em;color:var(--blog-fg);font-style:italic}.prose-blog blockquote p{margin-top:.6em}.prose-blog blockquote p:first-child{margin-top:0}.prose-blog img{border-radius:.75rem;border:1px solid var(--blog-border);width:100%;height:auto}.prose-blog hr{border:0;border-top:1px solid var(--blog-border);margin:3em 0}.prose-blog table{width:100%;border-collapse:collapse;font-size:.95rem;display:block;overflow-x:auto}.prose-blog td,.prose-blog th{border:1px solid var(--blog-border);padding:.6em .85em;text-align:left}.prose-blog th{background:var(--blog-surface);color:var(--blog-fg);font-weight:620}.prose-blog :not(pre)>code{font-family:var(--font-jetbrains),monospace;font-size:.875em;background:var(--blog-mark);color:var(--blog-fg);padding:.15em .4em;border-radius:.35rem;white-space:nowrap}.prose-blog pre{background:var(--blog-code-bg);border:1px solid var(--blog-code-border);border-radius:.75rem;padding:1.15rem 1.25rem;overflow-x:auto;font-size:.875rem;line-height:1.65;-webkit-overflow-scrolling:touch}.prose-blog pre code{font-family:var(--font-jetbrains),monospace;background:none;padding:0;color:#c9d1d9;white-space:pre}.hljs-comment,.hljs-quote{color:#8b949e;font-style:italic}.hljs-keyword,.hljs-literal,.hljs-selector-tag,.hljs-type{color:#ff7b72}.hljs-meta .hljs-string,.hljs-regexp,.hljs-string{color:#a5d6ff}.hljs-section,.hljs-title,.hljs-title.class_,.hljs-title.function_{color:#d2a8ff}.hljs-attr,.hljs-attribute,.hljs-number,.hljs-property,.hljs-symbol,.hljs-template-variable,.hljs-variable{color:#79c0ff}.hljs-built_in,.hljs-meta{color:#ffa657}.hljs-name,.hljs-selector-class,.hljs-selector-id{color:#7ee787}.hljs-emphasis{font-style:italic}.hljs-strong{font-weight:600}.hljs-deletion{color:#ffdcd7;background:#67060c}.hljs-addition{color:#aff5b4;background:#033a16}.blog-card{background:var(--blog-surface);border:1px solid var(--blog-border);border-radius:1rem;transition:border-color .2s ease,transform .2s ease,box-shadow .2s ease}.blog-card:hover{border-color:var(--blog-accent-soft);transform:translateY(-3px);box-shadow:var(--blog-shadow)}.blog-tag{font-size:.7rem;letter-spacing:.04em;text-transform:lowercase;background:var(--blog-mark);border-radius:999px;padding:.2rem .6rem;white-space:nowrap}.blog-label,.blog-tag{font-family:var(--font-jetbrains),monospace;color:var(--blog-accent)}.blog-label{font-size:.75rem;letter-spacing:.12em;text-transform:uppercase}@media (prefers-reduced-motion:reduce){.blog-card:hover{transform:none}}