.toc[data-astro-cid-xvrfupwn]{font-size:.85rem}.toc-title[data-astro-cid-xvrfupwn]{font-size:.8rem;text-transform:uppercase;letter-spacing:.05em;color:var(--c-text-muted);margin-bottom:.75rem}.toc-list[data-astro-cid-xvrfupwn]{list-style:none;padding:0}.toc-item[data-astro-cid-xvrfupwn]{margin-bottom:.3rem}.toc-item[data-astro-cid-xvrfupwn] a[data-astro-cid-xvrfupwn]{color:var(--c-text-muted);text-decoration:none}.toc-item[data-astro-cid-xvrfupwn] a[data-astro-cid-xvrfupwn]:hover{color:var(--c-accent)}.toc-item[data-astro-cid-xvrfupwn] a[data-astro-cid-xvrfupwn].toc-active{color:var(--c-accent);font-weight:600}.toc-depth-1[data-astro-cid-xvrfupwn]{font-weight:600}.toc-depth-3[data-astro-cid-xvrfupwn]{padding-left:1rem}.toc-depth-4[data-astro-cid-xvrfupwn]{padding-left:2rem}.toc-depth-5[data-astro-cid-xvrfupwn]{padding-left:3rem}.toc-depth-6[data-astro-cid-xvrfupwn]{padding-left:4rem}.related-posts[data-astro-cid-dpgbfi7r]{margin-top:3rem;padding-top:1.5rem;border-top:1px solid var(--c-border)}.related-posts[data-astro-cid-dpgbfi7r] h2[data-astro-cid-dpgbfi7r]{font-size:1rem;margin-bottom:.75rem;color:var(--c-text-muted)}.related-posts[data-astro-cid-dpgbfi7r] ul[data-astro-cid-dpgbfi7r]{list-style:none;padding:0;display:flex;flex-direction:column;gap:.5rem}.related-posts[data-astro-cid-dpgbfi7r] li[data-astro-cid-dpgbfi7r]{display:flex;align-items:baseline;gap:.5rem;flex-wrap:wrap}.related-posts[data-astro-cid-dpgbfi7r] a[data-astro-cid-dpgbfi7r]{color:var(--c-text);text-decoration:none}.related-posts[data-astro-cid-dpgbfi7r] a[data-astro-cid-dpgbfi7r]:hover{color:var(--c-accent)}.related-tags[data-astro-cid-dpgbfi7r]{font-size:.78rem;color:var(--c-text-muted)}.post-layout{display:grid;grid-template-columns:1fr;gap:2rem}@media(min-width:960px){.post-layout{grid-template-columns:1fr var(--sidebar-width)}}.post-layout>article{min-width:0}.post-content{overflow-wrap:break-word;word-break:break-word;overflow-x:auto}.post-header{margin-bottom:2rem;padding-bottom:1rem;border-bottom:1px solid var(--c-border)}.post-title{font-size:2rem;margin-bottom:.5rem}.post-meta{display:flex;flex-wrap:wrap;gap:.75rem;color:var(--c-text-muted);font-size:.875rem}.post-tag{background:var(--c-code-bg);padding:.15em .5em;border-radius:3px;font-size:.8rem;color:var(--c-text-muted)}.post-tag:hover{color:var(--c-accent);text-decoration:none}.post-sidebar{display:none}@media(min-width:960px){.post-sidebar{display:block;position:sticky;top:3.5rem;align-self:start;max-height:calc(100dvh - 4.5rem);overflow-y:auto}}.backlinks{margin-top:3rem;padding-top:1.5rem;border-top:1px solid var(--c-border)}.backlinks h2{font-size:1rem;margin-bottom:.75rem;color:var(--c-text-muted)}.backlinks ul{list-style:none;padding:0}.backlinks li{margin-bottom:.4rem}.post-content mark{background:#ffd00040;color:inherit;padding:.1em .2em;border-radius:2px}[data-theme=dark] .post-content mark{background:#ffd0002e}@media(prefers-color-scheme:dark){:root:not([data-theme=light]) .post-content mark{background:#ffd0002e}}.post-content>p .katex,.post-content>li .katex{font-size:1em}.post-content .katex-display{width:100%}@media(max-width:767px){.post-content .katex-display>.katex{text-align:left}}.code-block{position:relative;margin-bottom:1.5rem;border:1px solid var(--c-border);border-radius:var(--radius);overflow:hidden;box-shadow:0 1px 3px #0000000a}.code-block pre{margin:0;border:none;border-radius:0;padding:1rem}.code-block-wrapper{position:relative}.copy-btn{position:absolute;top:.5rem;right:.5rem;background:var(--c-code-bg);border:1px solid var(--c-border);border-radius:var(--radius);padding:.35rem;cursor:pointer;color:var(--c-text-muted);opacity:0;transition:opacity .2s,color .2s,background .2s;display:flex;align-items:center;justify-content:center;z-index:2}.code-block-wrapper:hover .copy-btn,.code-block:hover .copy-btn,.copy-btn:focus-visible{opacity:1}.copy-btn:hover{color:var(--c-text);background:var(--c-border)}.copy-btn.copied{color:#22c55e;opacity:1}.code-filename{padding:.4rem 1rem;font-family:var(--font-code);font-size:.8rem;color:var(--c-text-muted);background:var(--c-code-bg);border-bottom:1px solid var(--c-border)}.code-block pre.shiki[data-language]:before,.code-block-wrapper>pre.shiki[data-language]:before{content:attr(data-language);position:absolute;top:.4rem;right:2.75rem;font-family:var(--font-code);font-size:.7rem;text-transform:uppercase;letter-spacing:.05em;color:var(--c-text-muted);opacity:.5;pointer-events:none;z-index:1}.code-block .code-filename~pre.shiki[data-language]:before{display:none}.image-figure{margin:1.5rem 0;text-align:center}.image-figure img{display:block;margin:0 auto}.image-figure figcaption{margin-top:.5rem;font-size:.85rem;color:var(--c-text-muted);font-style:italic}.post-content img{max-width:100%;height:auto}.post-content img.diagram{height:auto;max-width:100%;width:100%}.post-content img[width]{max-width:100%;height:auto}.table-wrapper{overflow-x:auto;margin-bottom:1.5rem;border:1px solid var(--c-border);border-radius:var(--radius)}.table-wrapper table{width:100%;border-collapse:collapse;margin:0}.table-wrapper th,.table-wrapper td{padding:.6rem .9rem;text-align:left;border-bottom:1px solid var(--c-border)}.table-wrapper th{background:var(--c-code-bg);font-weight:600;font-size:.9rem}.table-wrapper tr:last-child td{border-bottom:none}.footnotes{margin-top:3rem;padding-top:1.5rem;border-top:1px solid var(--c-border);font-size:.875rem;color:var(--c-text-muted)}.footnotes ol{padding-left:1.5rem}.footnotes li{scroll-margin-top:3.5rem}.footnotes li{margin-bottom:.5rem}.footnotes li p{margin:0;display:inline}sup a[data-footnote-ref]{color:var(--c-accent);text-decoration:none;font-weight:600;scroll-margin-top:3.5rem}a[data-footnote-backref]{color:var(--c-accent);text-decoration:none;margin-left:.25rem}.shiki .line.highlighted{background-color:#65758529;display:inline-block;width:100%;margin:0 -1rem;padding:0 1rem}[data-theme=dark] .shiki .line.highlighted{background-color:#6575853d}@media(prefers-color-scheme:dark){:root:not([data-theme=light]) .shiki .line.highlighted{background-color:#6575853d}}.post-content h2,.post-content h3{position:relative}.heading-fold-toggle{position:absolute;left:-1.25rem;top:50%;transform:translateY(-50%) rotate(90deg);background:none;border:none;cursor:pointer;font-size:.6em;color:var(--c-text-muted);padding:0;opacity:0;transition:opacity .15s,transform .15s}h2:hover .heading-fold-toggle,h3:hover .heading-fold-toggle,.heading-fold-toggle:focus-visible{opacity:1}h2.collapsed .heading-fold-toggle,h3.collapsed .heading-fold-toggle{transform:translateY(-50%) rotate(0);opacity:1}@media(max-width:479px){.post-title{font-size:1.5rem}.post-meta{font-size:.8rem}pre.shiki,.code-block pre{padding:.75rem}.code-block pre.shiki[data-language]:before,.code-block-wrapper>pre.shiki[data-language]:before{display:none}.copy-btn{padding:.5rem}}@media(min-width:480px)and (max-width:767px){.post-title{font-size:1.75rem}}.hub-child-date{color:var(--c-text-muted);font-size:.85em;margin-left:.5rem;font-variant-numeric:tabular-nums}.link-preview-tooltip{position:absolute;z-index:100;width:280px;padding:12px 16px;background:var(--c-surface, #fff);border:1px solid var(--c-border, #e0e0e0);border-radius:8px;box-shadow:0 4px 12px #0000001a;font-size:.875rem;line-height:1.4;opacity:0;pointer-events:none;transition:opacity .15s ease}.link-preview-tooltip.visible{opacity:1}.link-preview-tooltip .preview-title{font-weight:600;margin-bottom:4px}.link-preview-tooltip .preview-tags{display:flex;gap:4px;margin-bottom:6px;flex-wrap:wrap}.link-preview-tooltip .preview-tags span{font-size:.75rem;color:var(--c-text-muted, #666)}.link-preview-tooltip .preview-summary{margin:0;color:var(--c-text-muted, #444)}@media(max-width:767px){.link-preview-tooltip{display:none!important}}.link-preview-backdrop{display:none;position:fixed;inset:0;z-index:240}.link-preview-backdrop.visible{display:block}.link-preview-mobile{position:fixed;bottom:0;left:0;right:0;z-index:250;background:var(--c-surface);border-top:1px solid var(--c-border);box-shadow:0 -4px 16px #0000001f;padding:1rem 1.25rem calc(1rem + env(safe-area-inset-bottom,0px));border-radius:12px 12px 0 0;transform:translateY(100%);transition:transform .2s ease-out}.link-preview-mobile.visible{transform:translateY(0)}.link-preview-mobile .preview-title{font-weight:600;margin-bottom:4px}.link-preview-mobile .preview-tags{display:flex;gap:4px;margin-bottom:6px;flex-wrap:wrap}.link-preview-mobile .preview-tags span{font-size:.75rem;color:var(--c-text-muted)}.link-preview-mobile .preview-summary{margin:0 0 .75rem;color:var(--c-text-muted);font-size:.875rem;line-height:1.4}.link-preview-mobile .preview-visit{display:inline-flex;align-items:center;gap:.25rem;padding:.4rem .75rem;background:var(--c-accent);color:#fff;border-radius:var(--radius);font-size:.85rem;font-weight:600;text-decoration:none}.link-preview-mobile .preview-visit:hover{color:#fff;text-decoration:none}@media(min-width:768px){.link-preview-mobile,.link-preview-backdrop{display:none!important}}.nav-tree{font-size:.875rem;line-height:1.6}.nav-tree-heading{font-size:.8rem;text-transform:uppercase;letter-spacing:.05em;color:var(--c-text-muted, #666);margin:0 0 8px}.nav-tree-root,.nav-tree-children{list-style:none;padding:0;margin:0}.nav-tree-children{padding-left:16px;border-left:1px solid var(--c-border, #e0e0e0)}.nav-tree-item{margin:2px 0}.nav-tree-label{display:flex;align-items:center;gap:4px;padding:2px 4px;border-radius:4px}.nav-tree-label.current{font-weight:600;color:var(--c-accent, #2563eb)}.nav-tree-label a{text-decoration:none;color:inherit;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.nav-tree-label a:hover{text-decoration:underline}.nav-tree-toggle{background:none;border:none;cursor:pointer;padding:2px;display:flex;align-items:center;color:var(--c-text-muted, #666);flex-shrink:0}.nav-tree-spacer{width:16px;flex-shrink:0}@media(min-width:960px){.mobile-sidebar-btn,.mobile-sidebar-overlay{display:none!important}}.mobile-sidebar-btn{position:fixed;bottom:4.5rem;right:1rem;width:2.5rem;height:2.5rem;border-radius:50%;border:1px solid var(--c-border);background:var(--c-surface);color:var(--c-text);cursor:pointer;z-index:90;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 8px #0000001a;transition:background .15s}.mobile-sidebar-btn:hover{background:var(--c-code-bg)}@media(min-width:480px){.mobile-sidebar-btn{bottom:5rem;right:1.5rem}}@media(min-width:768px){.mobile-sidebar-btn{bottom:5.5rem;right:2rem}}@media(max-width:959px){body:has(.mobile-sidebar-btn) .back-to-top{right:auto;left:1rem}}@media(max-width:479px){body:has(.mobile-sidebar-btn) .back-to-top{left:1rem}}@media(min-width:480px)and (max-width:767px){body:has(.mobile-sidebar-btn) .back-to-top{left:1.5rem}}@media(min-width:768px)and (max-width:959px){body:has(.mobile-sidebar-btn) .back-to-top{left:2rem}}.mobile-sidebar-overlay{position:fixed;inset:0;background:#00000080;z-index:200;display:flex;align-items:center;justify-content:center;padding:1rem}.mobile-sidebar-card{background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--radius);width:100%;max-width:400px;max-height:80vh;overflow-y:auto;box-shadow:0 16px 48px #0003}.mobile-sidebar-header{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1rem;border-bottom:1px solid var(--c-border)}.mobile-sidebar-tabs{display:flex;gap:0}.mobile-sidebar-tab{background:none;border:none;padding:.4rem .75rem;font-size:.85rem;font-family:var(--font-body);color:var(--c-text-muted);cursor:pointer;border-bottom:2px solid transparent;transition:color .15s,border-color .15s}.mobile-sidebar-tab.active{color:var(--c-text);border-bottom-color:var(--c-accent)}.mobile-sidebar-close{background:none;border:none;cursor:pointer;color:var(--c-text-muted);padding:.25rem;display:flex;align-items:center}.mobile-sidebar-close:hover{color:var(--c-text)}.mobile-sidebar-body{padding:1rem}.mobile-sidebar-body .toc-list{list-style:none;padding:0;margin:0}.mobile-sidebar-body .toc-item{margin:.25rem 0}.mobile-sidebar-body .toc-item a{display:block;padding:.35rem .5rem;border-radius:var(--radius);color:var(--c-text);font-size:.875rem;text-decoration:none;transition:background .15s}.mobile-sidebar-body .toc-item a:hover{background:var(--c-code-bg);text-decoration:none;color:var(--c-text)}.mobile-sidebar-body .toc-item a.toc-active{color:var(--c-accent);font-weight:600}.mobile-sidebar-body .toc-depth-1{font-weight:600}.mobile-sidebar-body .toc-depth-3{padding-left:1rem}.mobile-sidebar-body .toc-depth-4{padding-left:2rem}.mobile-sidebar-body .toc-depth-5{padding-left:3rem}.mobile-sidebar-body .toc-depth-6{padding-left:4rem}
