:root{--custom-primary:#c2410c;--custom-link:#1d4ed8;--custom-secondary:#7c3aed;--custom-accent:#10b981;--custom-shadow-sm:0 1px 2px 0 rgba(0, 0, 0, 0.05);--custom-shadow-md:0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);--custom-border-color:#e5e7eb;--custom-bg-card:#ffffff;--custom-bg-subtle:#f9fafb;--custom-text-muted:#6b7280;--custom-bg-raised:#f9fafb}body.colorscheme-dark{--custom-primary:#fb923c;--custom-link:#60a5fa;--custom-border-color:#374151;--custom-bg-card:#1f2937;--custom-bg-subtle:#111827;--custom-bg-raised:#1f2937;--custom-text-muted:#9ca3af;--custom-shadow-sm:0 1px 2px 0 rgba(0, 0, 0, 0.2);--custom-shadow-md:0 4px 6px -1px rgba(0, 0, 0, 0.3), 0 2px 4px -1px rgba(0, 0, 0, 0.2)}@media(prefers-color-scheme:dark){body.colorscheme-auto{--custom-primary:#fb923c;--custom-link:#60a5fa;--custom-border-color:#374151;--custom-bg-card:#1f2937;--custom-bg-subtle:#111827;--custom-bg-raised:#1f2937;--custom-text-muted:#9ca3af;--custom-shadow-sm:0 1px 2px 0 rgba(0, 0, 0, 0.2);--custom-shadow-md:0 4px 6px -1px rgba(0, 0, 0, 0.3), 0 2px 4px -1px rgba(0, 0, 0, 0.2)}}.navigation .navigation-item a{position:relative}.navigation .navigation-item a::after{content:'';position:absolute;bottom:0;left:0;width:0;height:2px;background:var(--custom-primary);transition:width .3s ease}.navigation .navigation-item a:hover::after{width:100%}.container.list ul{list-style:none;padding-left:0}.container.list ul li{padding:.75rem 0;border-bottom:1px solid var(--custom-border-color);transition:padding-left .2s ease}.container.list ul li:last-child{border-bottom:none}.container.list ul li:hover{padding-left:.5rem}.container.list ul li a{text-decoration:none;transition:color .2s ease}.container.list ul li a:hover{color:var(--custom-primary)}.container.page article{line-height:1.8}.container.page article h2{margin-top:2.5rem;padding-bottom:.4rem;border-bottom:2px solid var(--custom-border-color)}.container.page article h3{margin-top:2rem;margin-bottom:.5rem}.post .post-content h2{position:relative;font-size:3.2rem;margin-top:6.4rem;margin-bottom:2rem;padding-top:2.6rem}.post .post-content h2::before{content:"";position:absolute;top:0;left:0;width:4.8rem;height:3px;border-radius:2px;background:var(--custom-primary)}.post .post-content h3{font-size:2.2rem;margin-top:4.4rem;margin-bottom:1.4rem}@media(max-width:768px){.post .title,.post .title a{font-size:2.8rem;line-height:1.3}.post .post-content h2{font-size:2.6rem;margin-top:4.8rem;padding-top:2.2rem}.post .post-content h3{font-size:2rem;margin-top:3.6rem}}pre{border-radius:8px!important;box-shadow:var(--custom-shadow-md)}p code,li code,td:not(.lntd) code{padding:.125rem .375rem;border-radius:4px;font-size:.875em;border:1px solid var(--custom-border-color)}.post .post-content a,.container.page article a,.container.list ul li a{color:var(--custom-link);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.25em;transition:color .2s ease}.post .post-content a:hover,.container.page article a:hover,.container.list ul li a:hover{color:var(--custom-primary)}.post .title-link,.container.page article .title-link{color:inherit;text-decoration:none}#TableOfContents a{text-decoration:none;color:inherit}blockquote{border-left:4px solid var(--custom-primary)!important;padding:1rem 1.5rem;margin:1.5rem 0;background:var(--custom-bg-raised);border-radius:0 8px 8px 0}.toc{margin:0 0 2rem}.toc .toc-title{display:inline-flex;align-items:center;gap:.9rem;margin:0;padding:0 1.8rem;border:1px solid var(--custom-border-color);border-radius:8px;background:var(--custom-bg-card);font-size:1.6rem;font-weight:600;color:inherit;cursor:pointer;list-style:none;user-select:none;transition:border-color .2s ease,color .2s ease;min-height:4.4rem}.toc[open] .toc-title{margin-bottom:1.2rem}.toc .toc-title::-webkit-details-marker{display:none}.toc .toc-title::before{content:"";flex:none;width:.8rem;height:.8rem;border-right:2px solid;border-bottom:2px solid;transform:rotate(-45deg);transition:transform .2s ease}.toc[open] .toc-title::before{transform:rotate(45deg)}.toc .toc-title:hover{color:var(--custom-primary);border-color:var(--custom-primary)}#TableOfContents{background:var(--custom-bg-card);border:1px solid var(--custom-border-color);border-radius:8px;padding:1.4rem 2rem;margin-bottom:2rem;font-size:1.5rem;line-height:1.55}#TableOfContents ul{list-style:none;padding-left:0;margin:0}#TableOfContents ul ul{padding-left:1.2rem}#TableOfContents li{padding:.15rem 0}@media(min-width:900px){#TableOfContents>ul{columns:2;column-gap:3.2rem}#TableOfContents>ul>li{break-inside:avoid;-webkit-column-break-inside:avoid}}#TableOfContents a{text-decoration:none;transition:color .2s ease}#TableOfContents a:hover,#TableOfContents a.active{color:var(--custom-primary)}table:not(.lntable){width:100%;border-collapse:collapse;margin:1.5rem 0;border-radius:8px;overflow:hidden;box-shadow:var(--custom-shadow-sm)}th,td:not(.lntd){padding:.75rem 1rem;text-align:left;border-bottom:1px solid var(--custom-border-color)}th{background:var(--custom-bg-raised);font-weight:600}tr:hover td:not(.lntd){background:var(--custom-bg-raised)}figure{margin:2.4rem 0}figure img{display:block;margin:0 auto}figure figcaption{margin-top:.6rem;font-size:1.4rem;line-height:1.7;text-align:center;color:var(--custom-text-muted)}figure figcaption p{margin:0}.post .post-content figure,.container.page article figure{margin:4rem 0;text-align:center}.post .post-content figure img,.container.page article figure img{max-width:min(100%,52rem);max-height:56vh;width:auto;margin:0 auto}figure figcaption{margin-top:.8rem;font-size:1.4rem;line-height:1.7;color:var(--custom-text-muted)}figure figcaption p{margin:0}.post .post-content figure.logo img,.container.page article figure.logo img{width:22rem;max-width:100%;max-height:none;height:auto;background:#fff;padding:1.2rem 1.8rem;border-radius:8px;box-shadow:none}.container.page article img,.post .post-content img{max-width:100%;height:auto;border-radius:8px;box-shadow:var(--custom-shadow-md);margin:1rem 0}.about .tagline{max-width:44ch;margin:1.8rem auto 0;font-size:1.7rem;font-weight:400;line-height:1.9;letter-spacing:.05em;color:var(--custom-text-muted);text-wrap:balance}.about h2{margin-bottom:.25rem}.about ul{list-style:none;padding:0;display:flex;flex-wrap:wrap;justify-content:center;gap:.5rem 1.25rem}.gallery{display:grid;grid-template-columns:repeat(var(--gallery-cols,auto-fit),minmax(var(--gallery-min,20rem),1fr));gap:1.6rem;margin:4rem 0}.post .post-content .gallery figure,.container.page article .gallery figure{margin:0}.post .post-content .gallery figure img,.container.page article .gallery figure img{width:100%;max-width:none;max-height:none;aspect-ratio:var(--gallery-ratio,3/4);object-fit:cover}.toc-rail{display:none}@media(min-width:1024px){.toc-rail{display:block;position:fixed;left:clamp(1.6rem,calc(50% - 52rem),6rem);top:50%;transform:translateY(-50%);z-index:900;padding:1.2rem .6rem;border-radius:10px;max-height:calc(100vh - 4rem);overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:var(--custom-border-color)transparent;border:1px solid transparent;background:0 0;transition:background .2s ease,border-color .2s ease}.toc-rail:hover,.toc-rail:focus-within,.toc-rail.is-open{background:var(--custom-bg-card);border-color:var(--custom-border-color);box-shadow:var(--custom-shadow-md)}.toc-rail ul{list-style:none;margin:0;padding:0}.toc-rail li{margin:0}.toc-rail a{display:flex;align-items:center;gap:.9rem;padding:.45rem 0;text-decoration:none;color:var(--custom-text-muted)}.toc-rail-dash{flex:none;width:1.8rem;height:2px;border-radius:1px;background:var(--custom-text-muted);opacity:.5;transition:width .2s ease,background .2s ease,opacity .2s ease}.toc-rail-h3 .toc-rail-dash,.toc-rail-h4 .toc-rail-dash{width:1rem;margin-left:.8rem}.toc-rail-label{max-width:0;overflow:hidden;white-space:nowrap;font-size:1.3rem;line-height:1.4;opacity:0;transition:max-width .25s ease,opacity .2s ease}.toc-rail:hover .toc-rail-label,.toc-rail:focus-within .toc-rail-label,.toc-rail.is-open .toc-rail-label{max-width:17rem;opacity:1;text-overflow:ellipsis}.toc-rail a.active .toc-rail-dash{width:2.8rem;background:var(--custom-primary);opacity:1}.toc-rail-h3 a.active .toc-rail-dash,.toc-rail-h4 a.active .toc-rail-dash{width:2rem}.toc-rail a.active .toc-rail-label{color:var(--custom-primary)}.toc-rail a:hover .toc-rail-dash{background:var(--custom-primary);opacity:1}.toc-rail a:hover .toc-rail-label{color:var(--custom-primary)}.post .toc,.container.page article .toc{display:none}}.zoomable{cursor:zoom-in}.lightbox{position:fixed;inset:0;z-index:2000;display:flex;align-items:center;justify-content:center;padding:6rem 2rem;background:rgba(0,0,0,.92)}.lightbox[hidden]{display:none}.lightbox-img{max-width:100%;max-height:100%;width:auto;height:auto;border-radius:4px;cursor:zoom-out}.lightbox-close{position:absolute;top:1.6rem;right:1.6rem;width:4.4rem;height:4.4rem;padding:0;font-size:3rem;line-height:1;color:#fff;background:rgba(255,255,255,.12);border:none;border-radius:50%;cursor:pointer;transition:background .2s ease}.lightbox-close:hover,.lightbox-close:focus-visible{background:rgba(255,255,255,.28)}.back-to-top{position:fixed;bottom:80px;right:20px;width:44px;height:44px;border-radius:50%;background:var(--custom-bg-card);color:var(--custom-text-muted);border:1px solid var(--custom-border-color);font-size:18px;cursor:pointer;opacity:0;transition:opacity .3s,transform .3s,color .2s ease,border-color .2s ease;z-index:1000;box-shadow:var(--custom-shadow-md)}.back-to-top:hover{color:var(--custom-primary);border-color:var(--custom-primary);transform:translateY(-2px)!important}.reading-progress{position:fixed;top:0;left:0;width:0%;height:3px;background:var(--custom-primary);z-index:1001;transition:width .15s}.copy-code-button{position:absolute;top:8px;right:8px;padding:4px 10px;background:rgba(255,255,255,.1);color:#ccc;border:1px solid rgba(255,255,255,.2);border-radius:4px;font-size:12px;cursor:pointer;transition:all .2s;line-height:1.4}.copy-code-button:hover{background:rgba(255,255,255,.2);color:#fff}@media(max-width:768px){.about ul{gap:.5rem .9rem}.about .tagline{max-width:92vw;font-size:1.6rem}#TableOfContents{padding:.75rem 1rem}}body .navigation a.navigation-title{color:var(--custom-primary)}body .navigation a.navigation-title:hover,body .navigation a.navigation-title:focus{color:var(--custom-primary);opacity:.75}.content .post .post-meta .tags,.content .list .tags{display:flex;flex-wrap:wrap;align-items:center;gap:.8rem .7rem}.content .post .post-meta .tags .separator,.content .list .tags .separator{display:none}.content .post .post-meta .tags>i,.content .list .tags>i{margin-right:0}.content .post .post-meta .tags .tag,.content .list .tags .tag{padding:.4rem 1.1rem;border-radius:999px;line-height:1.5;font-size:1.4rem;border:1px solid transparent;transition:border-color .15s ease,color .15s ease}.content .post .post-meta .tags .tag:hover,.content .list .tags .tag:hover{border-color:var(--custom-primary)}.content .post .post-meta .tags .tag:hover a,.content .list .tags .tag:hover a{color:var(--custom-primary)}.content article a.external-link::after{content:none;padding-left:0}:root{--font-sans:/* 西文：Inter 自帶（見檔案最下方的 @font-face），後面幾個是它沒載到時的保底 */
    "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial,
    /* 正體中文：macOS / Windows / Linux 各一 */
    "PingFang TC", "Microsoft JhengHei", "微軟正黑體", "Noto Sans TC", "Noto Sans CJK TC",
    /* 真的都沒有時的保底 */
    sans-serif,
    "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";--font-mono:"JetBrains Mono", ui-monospace, SFMono-Regular, "SF Mono", Consolas,
    "Liberation Mono", Menlo, monospace,
    "PingFang TC", "Microsoft JhengHei", "Noto Sans TC"}body,h1,h2,h3,h4,h5,h6,.list ul li .title,.navigation a,.navigation span,.pagination{font-family:var(--font-sans)}.post .post-content .diagram,.container.page article .diagram{margin:3.2rem 0;padding:0}.post .post-content .diagram-canvas,.container.page article .diagram-canvas{overflow-x:auto;overflow-y:hidden;padding:.4rem 0;scrollbar-width:thin}.post .post-content .diagram-canvas>svg,.container.page article .diagram-canvas>svg{display:block;margin:0 auto;max-width:100%;height:auto}.post .post-content .diagram--d2 .diagram-canvas>svg,.container.page article .diagram--d2 .diagram-canvas>svg{max-width:none;width:var(--d2-w,100%)}.post .post-content .diagram-canvas::-webkit-scrollbar,.container.page article .diagram-canvas::-webkit-scrollbar{height:6px}.post .post-content .diagram-canvas::-webkit-scrollbar-thumb,.container.page article .diagram-canvas::-webkit-scrollbar-thumb{background:var(--custom-border-color);border-radius:3px}.post .post-content .diagram--mermaid pre.mermaid,.container.page article .diagram--mermaid pre.mermaid{visibility:hidden;background:0 0;box-shadow:none;padding:0;margin:0;border:0}.post .post-content .diagram--mermaid pre.mermaid[data-processed],.container.page article .diagram--mermaid pre.mermaid[data-processed]{visibility:visible}.post .post-content .katex-display,.container.page article .katex-display{overflow-x:auto;overflow-y:hidden;padding:.6rem 0;margin:2.4rem 0}.post .post-content .katex,.container.page article .katex{font-size:1.1em}.post .post-content p .katex,.container.page article p .katex{line-height:1}.post .post-content pre,.container.page article pre{overflow-x:auto;padding:1.4rem 1.6rem;line-height:1.6}.post .post-content .chroma .lnt,.post .post-content .chroma .ln{user-select:none;opacity:.55}.post .post-content .chroma .hl{background-color:color-mix(in srgb,var(--custom-primary) 14%,transparent);box-shadow:inset 3px 0 0 var(--custom-primary);display:block}body.colorscheme-light .chroma .c,body.colorscheme-light .chroma .ch,body.colorscheme-light .chroma .cm,body.colorscheme-light .chroma .c1,body.colorscheme-light .chroma .cs{color:#5f6b76}body.colorscheme-light .chroma .cp,body.colorscheme-light .chroma .cpf{color:#6b5f00}body.colorscheme-light .chroma .nb,body.colorscheme-light .chroma .bp{color:#005f80}@media(prefers-color-scheme:light){body.colorscheme-auto .chroma .c,body.colorscheme-auto .chroma .ch,body.colorscheme-auto .chroma .cm,body.colorscheme-auto .chroma .c1,body.colorscheme-auto .chroma .cs{color:#5f6b76}body.colorscheme-auto .chroma .cp,body.colorscheme-auto .chroma .cpf{color:#6b5f00}body.colorscheme-auto .chroma .nb,body.colorscheme-auto .chroma .bp{color:#005f80}}.post .post-content .chroma .lntable,.container.page article .chroma .lntable{width:100%;margin:0;border-radius:0;box-shadow:none}.post .post-content .chroma .lntd,.container.page article .chroma .lntd{padding:0;border:0}.post .post-content .chroma .lntd>pre,.container.page article .chroma .lntd>pre{overflow-x:visible;box-shadow:none;border-radius:0;margin:0}@font-face{font-family:inter;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/inter-latin-400-normal.woff2)format('woff2');unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:inter;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/inter-latin-600-normal.woff2)format('woff2');unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:inter;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/inter-latin-700-normal.woff2)format('woff2');unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:inter;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/inter-latin-ext-400-normal.woff2)format('woff2');unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:inter;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/inter-latin-ext-600-normal.woff2)format('woff2');unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:inter;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/inter-latin-ext-700-normal.woff2)format('woff2');unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:jetbrains mono;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/jetbrains-mono-latin-400-normal.woff2)format('woff2');unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:jetbrains mono;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/jetbrains-mono-latin-700-normal.woff2)format('woff2');unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}.post .post-content pre,.post .post-content code,.container.page article pre,.container.page article code,pre,code,kbd,samp{font-family:var(--font-mono)}.post .post-content .highlight,.container.page article .highlight{position:relative}.post .post-content .highlight>div.chroma,.container.page article .highlight>div.chroma{border-radius:8px;box-shadow:var(--custom-shadow-md);overflow-x:auto}.post .post-content .lntd>pre.chroma,.container.page article .lntd>pre.chroma{background:0 0;border-radius:0;box-shadow:none;margin:0}.post .post-content .lntd:first-child>pre.chroma,.container.page article .lntd:first-child>pre.chroma{padding-right:0;padding-bottom:1.4rem;padding-left:1.4rem}.post .post-content .lntd:last-child>pre.chroma,.container.page article .lntd:last-child>pre.chroma{padding-right:1.6rem;padding-bottom:1.4rem;padding-left:1.6rem}.post .post-content .copy-code-button,.container.page article .copy-code-button{z-index:2;transition:background-color .15s ease,color .15s ease,border-color .15s ease}.post .post-content pre.chroma::-webkit-scrollbar,.post .post-content .lntable::-webkit-scrollbar,.container.page article pre.chroma::-webkit-scrollbar,.container.page article .lntable::-webkit-scrollbar{height:8px}.post .post-content pre.chroma::-webkit-scrollbar-thumb,.post .post-content .lntable::-webkit-scrollbar-thumb,.container.page article pre.chroma::-webkit-scrollbar-thumb,.container.page article .lntable::-webkit-scrollbar-thumb{background:rgba(255,255,255,.22);border-radius:4px}.post .post-content pre.chroma,.post .post-content .lntable,.container.page article pre.chroma,.container.page article .lntable{scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.22)transparent}.post .post-content .diagram--mermaid svg .tick text,.container.page article .diagram--mermaid svg .tick text{font-size:13px}.post .post-content .highlight>div.chroma,.container.page article .highlight>div.chroma{padding:0}.post .post-content .highlight>pre.chroma,.container.page article .highlight>pre.chroma,.post .post-content .lntd>pre.chroma,.container.page article .lntd>pre.chroma{padding-top:3.8rem}.post .post-content .copy-code-button,.container.page article .copy-code-button{top:.9rem;right:1.2rem}.post .post-content .chroma .lntd:first-child,.container.page article .chroma .lntd:first-child{width:1%;white-space:nowrap}.post .post-content .chroma .lntd:last-child,.container.page article .chroma .lntd:last-child{width:99%}.post .post-content .has-zoom,.container.page article .has-zoom{position:relative}.post .post-content .zoom-host,.container.page article .zoom-host{position:relative}.post .post-content .table-scroll,.container.page article .table-scroll{overflow-x:auto}.post .post-content .zoom-button,.container.page article .zoom-button{position:absolute;top:0;right:0;z-index:3;display:inline-flex;align-items:center;justify-content:center;width:2.8rem;height:2.8rem;padding:0;border-radius:6px;border:1px solid var(--custom-border-color);background:0 0;color:var(--custom-text-muted);cursor:pointer;transition:color .15s ease,border-color .15s ease}.post .post-content .zoom-host>.diagram-canvas,.post .post-content .zoom-host>.table-scroll,.post .post-content .zoom-host>.katex-display,.container.page article .zoom-host>.diagram-canvas,.container.page article .zoom-host>.table-scroll,.container.page article .zoom-host>.katex-display{padding-top:3.4rem}.post .post-content .highlight>.zoom-button,.container.page article .highlight>.zoom-button{top:.9rem;right:6.6rem;border-color:rgba(255,255,255,.2);color:#bbb}.post .post-content .zoom-button:hover,.container.page article .zoom-button:hover{color:var(--custom-primary);border-color:var(--custom-primary)}.zoomview{position:fixed;inset:0;z-index:2100;display:flex;flex-direction:column;background:var(--custom-bg-subtle)}.zoomview[hidden]{display:none}.zoomview-bar{display:flex;align-items:center;gap:1.6rem;padding:1rem 1.6rem;border-bottom:1px solid var(--custom-border-color);background:var(--custom-bg-card);flex:none}.zoomview-title{font-size:1.5rem;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:initial;min-width:0;margin-right:auto}.zoomview-tools{display:flex;align-items:stretch;flex:none;border:1px solid var(--custom-border-color);border-radius:8px;overflow:hidden}.zoomview-tools button{min-width:3.8rem;height:3.4rem;padding:0 1rem;font-size:1.6rem;line-height:1;border:0;background:0 0;color:inherit;cursor:pointer;transition:background-color .15s ease,color .15s ease}.zoomview-tools button+button{border-left:1px solid var(--custom-border-color)}.zoomview-tools button:hover{background:var(--custom-bg-raised);color:var(--custom-primary)}.zoomview-level{min-width:6.4rem;font-size:1.4rem!important;font-variant-numeric:tabular-nums;color:var(--custom-text-muted)}.zoomview-close{flex:none;width:3.6rem;height:3.4rem;font-size:2rem;line-height:1;border:1px solid var(--custom-border-color);border-radius:8px;background:0 0;color:inherit;cursor:pointer;transition:border-color .15s ease,color .15s ease}.zoomview-close:hover{border-color:var(--custom-primary);color:var(--custom-primary)}.zoomview-scroll{flex:auto;overflow:auto;padding:2rem;cursor:grab;display:block}.zoomview-scroll.is-dragging{cursor:grabbing;user-select:none}.zoomview-sizer{position:relative;margin:0 auto}.zoomview-stage{transform-origin:0 0;width:max-content}.zoomview .zoom-button,.zoomview .copy-code-button{display:none}.zoomview .diagram-canvas,.zoomview pre.chroma,.zoomview div.chroma,.zoomview .lntable,.zoomview .katex-display,.zoomview .table-scroll{overflow:visible}.zoomview .diagram-canvas>svg{width:auto!important;max-width:none!important;height:auto!important}.zoomview .diagram-canvas,.zoomview .table-scroll,.zoomview .katex-display{padding-top:0}@media(max-width:768px){.zoomview-bar{gap:1rem;padding:.8rem 1rem}.zoomview-scroll{padding:1rem}.zoomview-title{max-width:11rem}.zoomview-level{min-width:5.2rem}}.toc-rail::-webkit-scrollbar{width:6px}.toc-rail::-webkit-scrollbar-thumb{background:0 0;border-radius:3px}.toc-rail:hover::-webkit-scrollbar-thumb,.toc-rail:focus-within::-webkit-scrollbar-thumb,.toc-rail.is-open::-webkit-scrollbar-thumb{background:var(--custom-border-color)}.zoomview-stage,.zoomview-stage *{user-select:text}.post .post-content .diagram--mermaid pre.mermaid,.container.page article .diagram--mermaid pre.mermaid{overflow:visible}.post .post-content .diagram-canvas::-webkit-scrollbar,.container.page article .diagram-canvas::-webkit-scrollbar{height:8px}.post .post-content .footnotes li:target,.container.page article .footnotes li:target,.post .post-content sup[id^=fnref]:target,.container.page article sup[id^=fnref]:target{background:color-mix(in srgb,var(--custom-primary) 16%,transparent);border-radius:4px;box-shadow:0 0 0 4px color-mix(in srgb,var(--custom-primary) 16%,transparent);animation:footnote-flash 1.6s ease-out 1}@keyframes footnote-flash{0%{background:color-mix(in srgb,var(--custom-primary) 42%,transparent)}100%{background:color-mix(in srgb,var(--custom-primary) 16%,transparent)}}.post .post-content .footnotes li,.container.page article .footnotes li,.post .post-content h2[id],.post .post-content h3[id],.post .post-content h4[id]{scroll-margin-top:2rem}@media(min-width:1220px){.post .post-content>.diagram,.post .post-content>.highlight,.post .post-content>.zoom-host{--breakout:96rem;width:var(--breakout);margin-left:calc(50% - var(--breakout)/2)}}@media(min-width:1400px){.post .post-content>.diagram,.post .post-content>.highlight,.post .post-content>.zoom-host{--breakout:112rem}}@media(min-width:1600px){.post .post-content>.diagram,.post .post-content>.highlight,.post .post-content>.zoom-host{--breakout:120rem}}@media(min-width:1800px){.post .post-content>.diagram,.post .post-content>.highlight,.post .post-content>.zoom-host{--breakout:136rem}}@media(min-width:2100px){.post .post-content>.diagram,.post .post-content>.highlight,.post .post-content>.zoom-host{--breakout:152rem}}:root{--ui-scale:1}@media(min-width:1600px){html{font-size:68.75%}:root{--ui-scale:1.1}}@media(min-width:2000px){html{font-size:75%}:root{--ui-scale:1.2}}.post .post-content .diagram--d2 .diagram-canvas>svg,.container.page article .diagram--d2 .diagram-canvas>svg{width:calc(var(--d2-w,100%) * var(--ui-scale))}@media(max-width:600px){.post .post-content .gallery,.container.page article .gallery{grid-template-columns:repeat(auto-fit,minmax(min(16rem,100%),1fr))}}@media(max-width:600px){.post .post-content figure img,.container.page article figure img{max-height:42vh}.post .post-content .gallery figure img,.container.page article .gallery figure img{max-height:34vh}}