.blog-article-body h2[id],.blog-article-body h3[id]{scroll-margin-top:5rem}.toc-mobile{border-radius:8px;padding:.75rem 1rem;margin-bottom:1.5rem}[data-theme=light] .toc-mobile{background:var(--bg-secondary);border:1px solid var(--border)}[data-theme=dark] .toc-mobile{background:var(--accent-bg-subtle);border:1px solid var(--accent-border-subtle)}.toc-summary{cursor:pointer;font-size:.8125rem;font-weight:600;list-style:none;user-select:none}.toc-summary::-webkit-details-marker{display:none}[data-theme=light] .toc-summary{color:var(--fg)}[data-theme=dark] .toc-summary{color:var(--accent);font-family:JetBrains Mono,monospace;font-size:.75rem}.toc-desktop{padding-right:1rem}.toc-title{font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;margin-bottom:.75rem}[data-theme=light] .toc-title{color:var(--fg-tertiary)}[data-theme=dark] .toc-title{color:var(--accent);font-family:JetBrains Mono,monospace;font-size:.6875rem}.toc-list{list-style:none;padding:0;margin:0}.toc-item{margin-bottom:.25rem}.toc-item--sub{padding-left:.75rem}.toc-link{display:block;font-size:.8125rem;padding:.25rem .5rem;border-left:2px solid transparent;border-radius:0 4px 4px 0;transition:all .2s ease;text-decoration:none;line-height:1.5}[data-theme=light] .toc-link{color:var(--fg-tertiary)}[data-theme=light] .toc-link:hover{color:#b8860b;border-left-color:#f0c040;background:#f0c0400f}[data-theme=light] .toc-link.is-active{color:#96700a;border-left-color:#f0c040;background:#f0c0401a;font-weight:500}[data-theme=dark] .toc-link{color:var(--fg-tertiary);font-family:JetBrains Mono,monospace;font-size:.6875rem}[data-theme=dark] .toc-link:hover{color:#fde047;border-left-color:#fde047;background:#fde0470f}[data-theme=dark] .toc-link.is-active{color:#fde047;border-left-color:#fde047;background:#fde04714;text-shadow:0 0 8px rgba(253,224,71,.3)}.blog-article-body :target{animation:heading-flash 1.5s ease-out}@keyframes heading-flash{0%{background:#f0c04033}to{background:transparent}}[data-theme=dark] .blog-article-body :target{animation:heading-flash-dark 1.5s ease-out}@keyframes heading-flash-dark{0%{background:#fde0474d;box-shadow:inset 0 0 12px #fde04726}30%{background:#fde0472e}to{background:transparent;box-shadow:none}}[data-theme=light] .postnav-light[data-astro-cid-lhwu4qwf]{display:flex}[data-theme=light] .postnav-dark[data-astro-cid-lhwu4qwf],[data-theme=dark] .postnav-light[data-astro-cid-lhwu4qwf]{display:none!important}[data-theme=dark] .postnav-dark[data-astro-cid-lhwu4qwf]{display:flex!important}[data-theme=light] .related-light[data-astro-cid-dpgbfi7r]{display:block}[data-theme=light] .related-dark[data-astro-cid-dpgbfi7r],[data-theme=dark] .related-light[data-astro-cid-dpgbfi7r]{display:none!important}[data-theme=dark] .related-dark[data-astro-cid-dpgbfi7r]{display:block!important}.reading-progress-bar{position:fixed;top:64px;left:0;right:0;height:2px;z-index:49;background:transparent;pointer-events:none}.reading-progress-fill{height:100%;width:0%;border-radius:0 1px 1px 0;transition:width 60ms linear}[data-theme=light] .reading-progress-fill{background:#0071e373}[data-theme=dark] .reading-progress-fill{background:#63c78b59;box-shadow:0 0 4px var(--accent-border-strong)}.back-to-top{position:fixed;bottom:2rem;right:2rem;z-index:50;width:44px;height:44px;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;border:none;opacity:0;visibility:hidden;transform:translateY(8px);transition:opacity .3s,visibility .3s,transform .3s,background .2s,box-shadow .2s}.back-to-top.visible{opacity:1;visibility:visible;transform:translateY(0)}[data-theme=light] .back-to-top{background:var(--bg);color:var(--accent);box-shadow:0 2px 12px #0000001f,0 1px 3px #00000014}[data-theme=light] .back-to-top:hover{background:var(--accent);color:#fff;box-shadow:0 4px 16px #0071e359}[data-theme=dark] .back-to-top{background:#0a0a0ad9;color:var(--accent);border:1px solid var(--accent-border-strong);box-shadow:0 0 14px var(--accent-soft)}[data-theme=dark] .back-to-top:hover{background:var(--border);border-color:#63c78b66;box-shadow:0 0 24px var(--accent-border-strong)}[data-theme=light] .page-light{display:block}[data-theme=light] .page-dark,[data-theme=dark] .page-light{display:none!important}[data-theme=dark] .page-dark{display:block!important}[data-theme=light] .blog-article-body{color:var(--fg-secondary);line-height:1.75}[data-theme=light] .blog-article-body h2{color:var(--fg);font-size:1.375rem;font-weight:700;margin-top:2.5rem;margin-bottom:1rem}[data-theme=light] .blog-article-body h3{color:var(--fg);font-size:1.125rem;font-weight:600;margin-top:2rem;margin-bottom:.75rem}[data-theme=light] .blog-article-body p{margin-bottom:1.25rem}[data-theme=light] .blog-article-body ul,[data-theme=light] .blog-article-body ol{margin:0 0 1.25rem 1.5rem;padding-left:0}[data-theme=light] .blog-article-body ul{list-style:disc}[data-theme=light] .blog-article-body ol{list-style:decimal}[data-theme=light] .blog-article-body li{margin-bottom:.375rem}[data-theme=light] .blog-article-body a{color:var(--accent);text-decoration:underline;text-underline-offset:2px}[data-theme=light] .blog-article-body a:hover{opacity:.8}[data-theme=light] .blog-article-body strong{color:var(--fg);font-weight:600}[data-theme=light] .blog-article-body em{font-style:italic}[data-theme=light] .blog-article-body blockquote{border-left:3px solid var(--accent);padding:.25rem 0 .25rem 1rem;margin:1.5rem 0;color:var(--fg-tertiary);font-style:italic}[data-theme=light] .blog-article-body code:not(pre code){background:var(--bg-secondary);padding:.125rem .375rem;border-radius:4px;font-size:.875em;font-family:JetBrains Mono,ui-monospace,monospace}[data-theme=light] .blog-article-body hr{border:none;border-top:1px solid var(--border);margin:2rem 0}[data-theme=dark] .blog-article-body{color:var(--fg-secondary);font-family:JetBrains Mono,ui-monospace,monospace;font-size:.875rem;line-height:1.8;border-color:var(--accent-border-subtle)}[data-theme=dark] .blog-article-body h2{color:var(--accent);font-size:1rem;font-weight:700;margin-top:2.5rem;margin-bottom:.75rem}[data-theme=dark] .blog-article-body h2:before{content:"## ";color:var(--fg-tertiary)}[data-theme=dark] .blog-article-body h3{color:var(--accent-light);font-size:.875rem;font-weight:600;margin-top:1.5rem;margin-bottom:.5rem}[data-theme=dark] .blog-article-body h3:before{content:"### ";color:var(--fg-muted)}[data-theme=dark] .blog-article-body p{margin-bottom:1.25rem}[data-theme=dark] .blog-article-body ul,[data-theme=dark] .blog-article-body ol{margin:0 0 1.25rem 1.5rem;padding-left:0}[data-theme=dark] .blog-article-body ul{list-style:"— " outside}[data-theme=dark] .blog-article-body ol{list-style:decimal}[data-theme=dark] .blog-article-body li{margin-bottom:.25rem}[data-theme=dark] .blog-article-body a{color:var(--accent);text-decoration:underline;text-decoration-color:var(--accent-border);text-underline-offset:3px}[data-theme=dark] .blog-article-body a:hover{text-decoration-color:var(--accent)}[data-theme=dark] .blog-article-body strong{color:var(--fg);font-weight:700}[data-theme=dark] .blog-article-body em{color:var(--accent-light);font-style:normal}[data-theme=dark] .blog-article-body blockquote{border-left:2px solid var(--accent);padding:.25rem 0 .25rem .75rem;margin:1.25rem 0;color:var(--fg-tertiary)}[data-theme=dark] .blog-article-body blockquote:before{content:"> ";color:var(--fg-muted)}[data-theme=dark] .blog-article-body code:not(pre code){background:var(--accent-bg-subtle);color:var(--accent-light);padding:.0625rem .375rem;border-radius:3px;font-size:.875em}[data-theme=dark] .blog-article-body hr{border:none;border-top:1px dashed var(--accent-border-subtle);margin:2rem 0}[data-theme=dark] .blog-post-title{font-family:JetBrains Mono,ui-monospace,monospace;font-size:1.25rem;font-weight:700;color:var(--accent);margin-top:.5rem}[data-theme=dark] .blog-post-excerpt{font-family:JetBrains Mono,ui-monospace,monospace;font-size:.875rem;margin-top:.5rem}
