:root{--bg:#f3f1ed;--text:#1d1b1b;--text-secondary:#4f4d4a;--text-tertiary:#8a8680;--accent:#8b7aa0;--accent-hover:#6d5d82;--accent-dim:#8b7aa014;--border:#e5e2dc;--code-bg:#eae7e1;--code-text:#3d3a36;--code-inline:#6b675f;--link-color:#4f4d4a;--astro-code-foreground:var(--text);--astro-code-background:transparent;--astro-code-token-comment:var(--text-tertiary);--astro-code-token-keyword:var(--text-secondary);--astro-code-token-string:var(--text-secondary);--astro-code-token-string-expression:var(--text-secondary);--astro-code-token-function:var(--text-secondary);--astro-code-token-number:var(--text-secondary);--astro-code-token-constant:var(--text-secondary);--astro-code-token-parameter:var(--text);--astro-code-token-punctuation:var(--text-tertiary);--astro-code-token-error:var(--text-secondary);--syn-kw:var(--text-secondary);--syn-str:#6b8a6b;--syn-cmt:#9a9690;--syn-num:var(--text-secondary);--syn-built:var(--text-secondary);--h1:#222029;--h2:#3a354a;--h3:#5c5270;--h4:#786b8a;--max-width:760px;--toc-width:200px;--font-body:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, "PingFang SC", "Microsoft YaHei", "Noto Sans CJK SC", sans-serif}[data-theme=dark]{--bg:#1c1b1a;--text:#e5e3df;--text-secondary:#a09d98;--text-tertiary:#6b6864;--accent:#a898c4;--accent-hover:#c0b4d8;--accent-dim:#a898c414;--border:#2a2a27;--code-bg:#252420;--code-text:#c8c5c0;--code-inline:#99958f;--link-color:#f0edeb;--astro-code-foreground:var(--text);--astro-code-background:transparent;--astro-code-token-comment:var(--text-tertiary);--astro-code-token-keyword:var(--text-secondary);--astro-code-token-string:var(--text-secondary);--astro-code-token-string-expression:var(--text-secondary);--astro-code-token-function:var(--text-secondary);--astro-code-token-number:var(--text-secondary);--astro-code-token-constant:var(--text-secondary);--astro-code-token-parameter:var(--text);--astro-code-token-punctuation:var(--text-tertiary);--astro-code-token-error:var(--text-secondary);--syn-kw:var(--text-secondary);--syn-str:#7a9a7a;--syn-cmt:#6b6864;--syn-num:var(--text-secondary);--syn-built:var(--text-secondary);--h1:#edeaf1;--h2:#cbc4d6;--h3:#a898c4;--h4:#8b7c9f}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;font-size:16px}body{font-family:var(--font-body);color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;touch-action:pan-y pinch-zoom;flex-direction:column;min-height:100dvh;font-size:1rem;font-weight:400;line-height:1.5;display:flex}html,body{overflow-x:hidden}@supports (overflow:clip){html,body{overflow-x:clip}}a{color:#0000;background:linear-gradient(to right, var(--accent) 50%, var(--link-color) 50%);background-position:100% 0;background-size:200% 100%;-webkit-background-clip:text;background-clip:text;text-decoration:none;transition:background-position .35s}a:hover{background-position:0 0}img{max-width:100%;height:auto;margin:1.25rem auto;display:block}::selection{background:var(--accent-dim);color:var(--text)}.theme-image{display:contents}.theme-image img.theme-dark,[data-theme=dark] .theme-image img.theme-light{display:none}[data-theme=dark] .theme-image img.theme-dark{display:block}figure.gallery{margin:1.25rem auto}.gallery-row{flex-wrap:wrap;justify-content:center;align-items:flex-start;gap:.75rem;display:flex}.gallery-row+.gallery-row{margin-top:.75rem}.gallery-item{flex:1 1 0;min-width:0;margin:0}.gallery-item img{margin:0 auto}.gallery figcaption{color:var(--text-tertiary);text-align:center;font-size:.75rem;line-height:1.5}.gallery-item figcaption{margin-top:.5rem}figure.gallery>.gallery-caption{margin-top:.75rem}@media (width<=560px){.gallery-item{flex:100%}}h1,h2,h3,h4,h5,h6{scroll-margin-top:2.5rem;font-weight:500;line-height:1.4}h1{color:var(--h1);margin:2rem 0 .75rem;font-size:1.067rem}h2{color:var(--h2);margin:3rem 0 .5rem;font-size:1.25rem}h3{color:var(--h3);margin:2.5rem 0 .5rem;font-size:1.167rem}h4{color:var(--h4);margin:2rem 0 .5rem;font-size:1.1rem}h5{color:var(--h4);margin:1.75rem 0 .5rem;font-size:1.067rem}h6{color:var(--h4);margin:1.5rem 0 .5rem;font-size:1.033rem}h1:first-child{margin-top:0}p{margin:.75rem 0}.toggles{z-index:100;gap:.5rem;display:flex;position:fixed;top:1rem;right:1rem}.toggle-btn{cursor:pointer;color:var(--text-tertiary);font-size:.75rem;font-family:var(--font-body);letter-spacing:.04em;background:0 0;border:none;padding:.15rem .35rem;line-height:1}.toggle-btn:hover{color:var(--text)}main{flex:1}.content-container{max-width:var(--max-width);margin:0 auto;padding:2rem 1rem .25rem}.page-nav{text-align:right;margin-bottom:2rem}.page-nav-link{color:var(--text-tertiary);background:0 0;background-clip:unset;-webkit-background-clip:unset;font-size:.933rem;transition:color .2s}.page-nav-link:hover{color:var(--text)}.post-list{list-style:none}.post-card{padding:.75rem 0}.post-card+.post-card{border-top:1px solid var(--border)}[data-lang=zh] .post-card .post-lang-en,[data-lang=en] .post-card .post-lang-zh{display:none}.post-meta{justify-content:space-between;align-items:center;margin-bottom:.25rem;display:flex}.post-date{color:var(--text-tertiary);font-size:.75rem}.post-tag{text-transform:uppercase;letter-spacing:.06em;color:var(--text-tertiary);font-size:.625rem;font-weight:400}.post-title{margin:.15rem 0;font-size:1rem;font-weight:500}.post-title a{background:linear-gradient(to right, var(--accent) 50%, var(--text) 50%);color:#0000;background-position:100% 0;background-size:200% 100%;-webkit-background-clip:text;background-clip:text;transition:background-position .35s}.post-title a:hover{background-position:0 0}.post-excerpt{color:var(--text-secondary);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:.15rem 0 0;font-size:.875rem;display:-webkit-box;overflow:hidden}.post-layout{max-width:var(--max-width);margin:0 auto;padding:2rem 1rem .25rem}.toc{float:left;width:var(--toc-width);max-height:calc(100vh - 3rem);margin-left:calc(-1 * var(--toc-width) - 2.5rem);scrollbar-width:thin;scrollbar-color:var(--border) transparent;position:sticky;top:2rem;overflow-y:auto}.toc::-webkit-scrollbar{width:4px}.toc::-webkit-scrollbar-track{background:0 0}.toc::-webkit-scrollbar-thumb{background:var(--border);border-radius:2px}.toc:hover::-webkit-scrollbar-thumb{background:var(--text-tertiary)}.toc-title{text-transform:uppercase;letter-spacing:.06em;color:var(--text-tertiary);margin-bottom:.5rem;font-size:.625rem;font-weight:400}.toc-list{list-style:none}.toc-list li{margin-bottom:.25rem}.toc-list a{color:var(--text-tertiary);background:0 0;font-size:.75rem;line-height:1.5;transition:color .2s;display:block}.toc-list a:hover{color:var(--accent)}.toc-depth-1,.toc-depth-2{padding-left:0}.toc-depth-3{padding-left:.75rem}.toc-depth-4{padding-left:1.5rem}.toc-depth-5{padding-left:2.25rem}.toc-depth-6{padding-left:3rem}.post-content{min-width:0}.post-content ul,.post-content ol{margin:.75rem 0;padding-left:1.5rem}.post-content li{margin-bottom:.25rem}.post-content li>ul,.post-content li>ol{margin:.25rem 0}.post-content p,.post-content li{overflow-wrap:break-word;word-break:break-word}.post-content h1{color:var(--text)}.post-content h2,.post-content h3,.post-content h4,.post-content h5,.post-content h6,[data-theme=dark] .post-content h2,[data-theme=dark] .post-content h3,[data-theme=dark] .post-content h4,[data-theme=dark] .post-content h5,[data-theme=dark] .post-content h6{color:color-mix(in srgb, var(--text-tertiary) 100%, transparent)}.post-content a{background:0 0;background-clip:unset;-webkit-background-clip:unset;color:color-mix(in srgb, var(--text) 65%, transparent);transition:color .2s}.post-content a:hover{color:var(--accent)}.post-content a[href^=\#ref-]{color:color-mix(in srgb, var(--text) 50%, transparent)}.post-content a[href^=\#ref-]:hover{color:var(--accent)}.post-content .citation-link{color:color-mix(in srgb, var(--text) 50%, transparent)}.post-content .citation-link:hover{color:var(--accent)}.post-content .heading-anchor{color:inherit;text-decoration:none;transition:color .2s}.post-content .heading-anchor:hover{color:inherit}.post-content h2,.post-content h3,.post-content h4,.post-content h5,.post-content h6{position:relative}.post-content h2 .heading-anchor:before,.post-content h3 .heading-anchor:before,.post-content h4 .heading-anchor:before,.post-content h5 .heading-anchor:before,.post-content h6 .heading-anchor:before{content:"¶";color:var(--accent);opacity:0;margin-right:.4em;font-weight:400;transition:opacity .2s;position:absolute;right:100%}.post-content h2:hover .heading-anchor:before,.post-content h3:hover .heading-anchor:before,.post-content h4:hover .heading-anchor:before,.post-content h5:hover .heading-anchor:before,.post-content h6:hover .heading-anchor:before{opacity:1}.post-content pre.mermaid{color:var(--text);text-align:center;background:0 0;border:none;margin:1rem 0;padding:0;overflow-x:auto}.post-content pre.mermaid svg{max-width:100%;height:auto}.post-header{border-bottom:1px solid var(--border);margin-bottom:1.5rem;padding-bottom:1rem}.post-header .post-meta{margin-bottom:.75rem}.post-back{color:var(--text-tertiary);background:0 0;background-clip:unset;-webkit-background-clip:unset;margin-bottom:1rem;font-size:.8125rem;transition:color .2s;display:inline-block}.post-back:hover{color:var(--text)}.post-title-row{justify-content:space-between;align-items:baseline;gap:1rem;display:flex}.post-title-row h1{margin:0}.about-section{margin:.5rem 0 1.5rem}.code-wrapper{margin:1rem 0;position:relative}.code-wrapper pre{margin:0}pre,pre.astro-code{background:var(--code-bg);border:1px solid var(--border);white-space:pre;word-wrap:normal;color:var(--code-text);border-radius:4px;margin:0;padding:.75rem 1rem;font-size:.875rem;line-height:1.55;position:relative;overflow-x:auto}.copy-btn{color:var(--text-tertiary);font-family:var(--font-body);cursor:pointer;z-index:1;background:0 0;border:none;padding:.15rem .25rem;font-size:.625rem;transition:color .2s;position:absolute;top:.35rem;right:.5rem}.copy-btn:hover{color:var(--accent)}.copy-btn:active{color:var(--accent-hover)}pre::-webkit-scrollbar,.katex-display::-webkit-scrollbar,.table-scroll::-webkit-scrollbar{height:4px}pre::-webkit-scrollbar-thumb,.katex-display::-webkit-scrollbar-thumb,.table-scroll::-webkit-scrollbar-thumb{background:var(--border);border-radius:2px}code{font-family:Source Code Pro,Monaco,Consolas,monospace;font-size:.9375rem}pre code{font-size:inherit}:not(pre)>code{color:var(--code-inline);background:0 0;padding:.05rem 0;font-size:.9375rem}.syn-kw{color:var(--syn-kw)}.syn-str{color:var(--syn-str)}.syn-fn{color:var(--syn-kw)}.syn-cmt{color:var(--syn-cmt);font-style:italic}.syn-num{color:var(--syn-num)}.syn-built{color:var(--syn-built)}table{border-collapse:collapse;width:100%;margin:1rem 0;font-size:.8125rem}.table-scroll{margin:1rem 0;overflow-x:auto}.table-scroll>table{margin:0}th,td{border-bottom:1px solid var(--border);padding:.4rem .6rem}th:not([align]),td:not([align]){text-align:left}th[align=center],td[align=center]{text-align:center}th[align=right],td[align=right]{text-align:right}th{color:var(--text-secondary);font-weight:500}blockquote{border-left:2px solid var(--accent);color:var(--text-secondary);margin:1rem 0;padding:.4rem .8rem;font-style:italic}.hidden{display:none!important}.katex-display{text-align:center;padding:.15rem 0;overflow:auto hidden}.img-placeholder{background:var(--code-bg);border:1px solid var(--border);width:100%;max-width:500px;height:160px;color:var(--text-tertiary);justify-content:center;align-items:center;margin:1rem auto;font-size:.75rem;display:flex}.ps-root{-webkit-font-smoothing:antialiased;margin:1rem 0;font-family:KaTeX_Main,Times New Roman,Times,serif;font-size:.9375rem;line-height:1.4;overflow-x:auto}.ps-root .ps-algorithm{border-top:2.5px solid var(--text-secondary);border-bottom:1.5px solid var(--text-secondary);margin:.6em 0;padding:.35em 0 .5em}.ps-root .ps-algorithm.with-caption>.ps-line:first-child{border-bottom:1.5px solid var(--text-secondary);font-variant:small-caps;margin-bottom:.35em;padding-bottom:.3em}.ps-root .ps-line{margin:0;padding:0;line-height:1.4}.ps-root .ps-keyword{font-weight:700}.ps-root .ps-funcname{font-variant:small-caps}.ps-root .ps-comment{color:var(--text-tertiary)}.ps-root .ps-linenum{text-align:right;width:1.6em;color:var(--text-tertiary);padding-right:.3em;font-size:.8em;line-height:1em;display:inline-block;position:relative}.ps-root .ps-algorithmic.with-linenum .ps-line.ps-code{text-indent:-1.6em}.ps-root .ps-algorithmic.with-linenum .ps-line.ps-code>span{text-indent:0}.ps-root .ps-algorithmic.with-scopelines div.ps-block{border-left:1px solid var(--text-tertiary);padding-left:.6em}.ps-root .ps-algorithmic.with-scopelines>div.ps-block{border-left:none}.ps-root .katex{text-indent:0;font-size:1em}a[href^=\#ref-]{color:var(--link-color);cursor:pointer;text-decoration:none}a[href^=\#ref-]:hover{color:var(--accent)}#refs{border-top:1px solid var(--border);margin-top:2.5rem;padding-top:1rem}.csl-bib-body{color:var(--text-secondary);font-size:.875rem;line-height:1.6}.csl-entry{text-indent:-1.5rem;margin-bottom:.5rem;padding-left:1.5rem}.csl-entry a{color:var(--text-secondary)}.csl-entry a:hover{color:var(--accent)}[title]{position:relative}hr{background:var(--border);border:none;height:1px;margin:2rem 0}.footer-line{background:var(--border);width:100%;height:1px}.footer-inner{max-width:var(--max-width);flex-wrap:wrap;justify-content:space-between;align-items:baseline;column-gap:1rem;margin:0 auto;padding:.1rem 1rem;display:flex}.footer-copy{color:var(--text-tertiary);font-size:.625rem}.footer-copy a,.footer-extra a{background:0 0;background-clip:unset;-webkit-background-clip:unset;color:var(--text-tertiary);transition:none}.footer-copy a:hover,.footer-extra a:hover{color:var(--accent)}.footer-extra{color:var(--text-tertiary);text-align:right;margin-left:auto;font-size:.625rem}@media (width<=1280px){.toc{display:none}.post-layout{max-width:var(--max-width)}}@media (width<=768px){.content-container,.post-layout{padding:1.5rem 1rem .25rem}.footer-inner{padding:.1rem 1rem}}@media (width<=640px){.page-nav,.toggles{display:none}.content-container,.post-layout{padding-top:2.5rem}}.citation-link{color:var(--link-color);cursor:pointer;text-decoration:none;transition:color .2s}.citation-link:hover{color:var(--accent)}.post-license{color:var(--text-tertiary);margin:2.5rem 0 0;font-size:.75rem;line-height:1.5}.post-license a{color:inherit;text-decoration:underline;text-decoration-color:var(--border);text-underline-offset:2px;background:0 0;transition:color .2s}.post-license a:hover{color:var(--accent)}.post-license .license-icons{vertical-align:-.15em;gap:.2em;margin-right:.15em;text-decoration:none;display:inline-flex}.post-license .license-icons img{width:1.1em;height:1.1em;margin:0;display:inline-block}[data-theme=dark] .post-license .license-icons img{filter:invert()}[data-lang=zh] .post-license .license-en,[data-lang=en] .post-license .license-zh{display:none}@keyframes citationFlash{0%{background-color:#fef0c0}to{background-color:#0000}}@keyframes citationFlashDark{0%{background-color:#c8aa5040}to{background-color:#0000}}.csl-entry.citation-highlight{border-radius:4px;animation:1.5s ease-out citationFlash}[data-theme=dark] .csl-entry.citation-highlight{animation-name:citationFlashDark}.toc-highlight{border-radius:4px;animation:1.5s ease-out citationFlash}[data-theme=dark] .toc-highlight{animation-name:citationFlashDark}.bib-url{color:var(--text-tertiary);font-size:.8125rem;text-decoration:none;transition:color .2s}.bib-url:hover{color:var(--accent)}@page{size:A4;margin:2.5cm 2.4cm}@media print{html,body,.table-scroll,pre,.katex-display,.ps-root{overflow:visible!important}html{background:#fff}body{color:#000;background:#fff;font-family:Times New Roman,SimSun,Songti SC,STSong,serif;font-size:10.5pt;line-height:1.65}*,:before,:after{color:#000!important;box-shadow:none!important;text-shadow:none!important;background:0 0!important;border-color:#000!important}.toc,.toggles,.menu-btn,.menu-drawer,.site-footer,.post-back,.post-lang-switch,.copy-btn{display:none!important}.post-layout,.content-container{max-width:none;margin:0;padding:0}.post-header{text-align:center;margin-bottom:1.4em;padding-bottom:0;border-bottom:none!important}.post-header .post-meta{display:none!important}.post-title-row{display:block}.post-title-row h1{margin:.2em 0;font-size:17pt}h1,h2,h3,h4,h5,h6{break-after:avoid}h1{margin:1.4em 0 .6em;font-size:15pt}h2{margin:1.4em 0 .5em;font-size:13.5pt}h3{margin:1.2em 0 .4em;font-size:12pt}h4,h5,h6{margin:1em 0 .3em;font-size:10.5pt}p{margin:.6em 0}hr{display:none!important}a,a:hover{text-decoration:none;color:#000!important;background:0 0!important}table{font-size:9.5pt;border-top:1pt solid #000!important;border-bottom:1pt solid #000!important}thead tr{border-bottom:.5pt solid #000!important}th,td{padding:3pt 7pt;border-bottom:none!important}code,pre{font-family:Courier New,Courier,monospace}pre{padding:.4em 0;font-size:9pt;white-space:pre-wrap!important;word-break:break-word!important;border:none!important}:not(pre)>code{padding:0}blockquote{font-style:italic;border-left:.5pt solid #000!important}.theme-image img.theme-light{display:block!important}.theme-image img.theme-dark{display:none!important}.gallery figcaption{font-size:9pt}.post-license{margin-top:2em;font-size:9pt}.img-placeholder{border:.5pt solid #000!important}table,tr,figure,pre,img,blockquote{break-inside:avoid}}.menu-btn{z-index:200;cursor:pointer;background:0 0;border:none;padding:.25rem;display:none;position:fixed;top:.75rem;right:.75rem}.menu-bar{background:var(--text);border-radius:1px;width:20px;height:2px;transition:transform .2s,opacity .2s;display:block}.menu-bar+.menu-bar{margin-top:4px}.menu-btn.open .menu-bar:first-child{transform:translateY(6px)rotate(45deg)}.menu-btn.open .menu-bar:nth-child(2){opacity:0}.menu-btn.open .menu-bar:nth-child(3){transform:translateY(-6px)rotate(-45deg)}.menu-drawer{z-index:150;background:var(--bg);border-left:1px solid var(--border);min-width:180px;padding:3.5rem 1.5rem 1.5rem;display:none;position:fixed;top:0;bottom:0;right:0;box-shadow:-4px 0 16px #0000000f}.menu-drawer.open{flex-direction:column;gap:1.25rem;display:flex}.menu-link{color:var(--text-secondary);background:0 0;background-clip:unset;-webkit-background-clip:unset;font-size:1rem;text-decoration:none;transition:color .2s}.menu-link:hover{color:var(--text)}.menu-drawer-toggles{border-top:1px solid var(--border);flex-direction:column;gap:.75rem;padding-top:.75rem;display:flex}.menu-drawer-toggles .toggle-btn{font-size:1rem}@media (width<=640px){.menu-btn{display:block}}
