﻿@import url("https://fonts.googleapis.com/css2?family=Geist:wght@100..900&display=swap");@import url("https://fonts.googleapis.com/css2?family=Roboto+Mono:ital,wght@0,400;0,500;0,600;0,700;1,400;1,500;1,600;1,700&display=swap");@import url("https://fonts.googleapis.com/css2?family=DM+Mono:ital,wght@0,300;0,400;0,500;1,300;1,400;1,500&display=swap");@import url("https://fonts.googleapis.com/css2?family=Geist+Mono:wght@100..900&display=swap");@import url("https://fonts.googleapis.com/css2?family=Noto+Serif:ital,wght@0,400;0,500;0,600;0,700;1,400;1,500;1,600;1,700&display=swap");@import url("https://fonts.googleapis.com/css2?family=Source+Serif+Pro:ital,wght@0,400;0,600;0,700;1,400;1,600;1,700&display=swap");@import url("https://fonts.googleapis.com/css2?family=Source+Serif+4:ital,wght@0,400;0,500;0,600;0,700;1,400;1,500;1,600;1,700&display=swap");@import url("https://fonts.googleapis.com/css2?family=Spectral:ital,wght@0,400;0,500;0,600;0,700;1,400;1,500;1,600;1,700&display=swap");@import url("https://fonts.googleapis.com/css2?family=Newsreader:ital,opsz,wght@0,6..72,400;0,6..72,500;0,6..72,600;0,6..72,700;1,6..72,400;1,6..72,500;1,6..72,600;1,6..72,700&display=swap");@import url("https://fonts.googleapis.com/css2?family=Literata:ital,opsz,wght@0,7..72,400;0,7..72,500;0,7..72,600;0,7..72,700;1,7..72,400;1,7..72,500;1,7..72,600;1,7..72,700&display=swap");@import url("https://fonts.googleapis.com/css2?family=Average&display=swap");@import url("https://fonts.googleapis.com/css2?family=Ubuntu+Mono:ital,wght@0,400;0,700;1,400;1,700&display=swap");@import url("https://fonts.googleapis.com/css2?family=Noto+Sans+SC:wght@300;400;500;700&display=swap");@import url("https://fonts.googleapis.com/css2?family=Noto+Serif+SC:wght@300;400;500;700&display=swap");@import url("https://fonts.googleapis.com/css2?family=Noto+Sans+Mono:wght@100..900&family=Noto+Sans:ital,wght@0,100..900;1,100..900&display=swap");@font-face{font-family:'Cascadia Mono';src:url("/fonts/CascadiaMono-Regular.woff2") format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:'Cascadia Mono';src:url("/fonts/CascadiaMono-Italic.woff2") format("woff2");font-weight:400;font-style:italic;font-display:swap}@font-face{font-family:'Cascadia Mono';src:url("/fonts/CascadiaMono-Bold.woff2") format("woff2");font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:'Cascadia Mono';src:url("/fonts/CascadiaMono-BoldItalic.woff2") format("woff2");font-weight:700;font-style:italic;font-display:swap}@font-face{font-family:'Commit Mono';src:url("/fonts/CommitMono-400-Regular.otf") format("opentype");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:'Commit Mono';src:url("/fonts/CommitMono-400-Italic.otf") format("opentype");font-weight:400;font-style:italic;font-display:swap}@font-face{font-family:'Commit Mono';src:url("/fonts/CommitMono-700-Regular.otf") format("opentype");font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:'Commit Mono';src:url("/fonts/CommitMono-700-Italic.otf") format("opentype");font-weight:700;font-style:italic;font-display:swap}@font-face{font-family:'Menlo';src:url("/fonts/Menlo-Regular.ttf") format("truetype");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:'Menlo';src:url("/fonts/Menlo-Italic.ttf") format("truetype");font-weight:400;font-style:italic;font-display:swap}@font-face{font-family:'Menlo';src:url("/fonts/Menlo-Bold.ttf") format("truetype");font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:'Menlo';src:url("/fonts/Menlo-BoldItalic.ttf") format("truetype");font-weight:700;font-style:italic;font-display:swap}@font-face{font-family:'MapleMonoNL';src:url("/fonts/MapleMonoNL-Regular.ttf.woff2") format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:'MapleMonoNL';src:url("/fonts/MapleMonoNL-Italic.ttf.woff2") format("woff2");font-weight:400;font-style:italic;font-display:swap}@font-face{font-family:'MapleMonoNL';src:url("/fonts/MapleMonoNL-Bold.ttf.woff2") format("woff2");font-weight:700;font-style:normal;font-display:swap}:root{--font-mono: 'Cascadia Mono', 'Roboto Mono', 'Noto Sans Mono', 'DM Mono', 'Geist Mono', 'Maple Mono', 'Ubuntu Mono', 'Noto Sans SC', monospace;--font-sans: 'Geist', 'Helvetica', 'Noto Sans SC', 'Noto Sans', sans-serif;--font-serif: 'Spectral', 'Newsreader', 'Bitstream Charter', 'Charter', 'Source Serif 4', 'Source Serif Pro', 'Noto Serif', 'Noto Serif SC', serif}.font-mono{font-family:var(--font-mono)}.font-sans{font-family:var(--font-sans)}.font-serif{font-family:var(--font-serif)}.admonition{margin:1.5rem 0;padding:0;border-radius:0.5rem;border:none;border-left:4px solid;overflow:hidden}.admonition .admonition-title{display:flex;align-items:center;gap:0.5rem;padding:0.75rem 1rem;font-weight:600;margin:0}.admonition .admonition-title .admonition-icon{display:inline-flex;align-items:center;justify-content:center;width:1.2rem;height:1.2rem;flex-shrink:0}.admonition .admonition-title .admonition-icon .icon{width:1.2rem;height:1.2rem;fill:currentColor}.admonition .admonition-content{padding:1rem 1rem 1rem 1rem}.admonition .admonition-content>*:first-child{margin-top:0}.admonition .admonition-content>*:last-child{margin-bottom:0}.admonition.admonition-collapsible summary.admonition-title{cursor:pointer;user-select:none;list-style:none}.admonition.admonition-collapsible summary.admonition-title::-webkit-details-marker{display:none}.admonition.admonition-collapsible summary.admonition-title .admonition-collapse-icon{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:1.2rem;height:1.2rem;transition:transform 0.2s ease}.admonition.admonition-collapsible summary.admonition-title .admonition-collapse-icon .icon{width:1rem;height:1rem;fill:currentColor}.admonition.admonition-collapsible[open] .admonition-collapse-icon{transform:rotate(90deg)}.admonition-note,.admonition-info{border-left-color:#0ea5e9}.admonition-note .admonition-title,.admonition-info .admonition-title{background-color:rgba(14,165,233,0.1);color:#0ea5e9}.admonition-tip{border-left-color:#10b981}.admonition-tip .admonition-title{background-color:rgba(16,185,129,0.1);color:#10b981}.admonition-warning{border-left-color:#f59e0b}.admonition-warning .admonition-title{background-color:rgba(245,158,11,0.1);color:#f59e0b}.admonition-danger{border-left-color:#ef4444}.admonition-danger .admonition-title{background-color:rgba(239,68,68,0.1);color:#ef4444}.admonition-spoilers{border-left-color:#8b5cf6}.admonition-spoilers .admonition-title{background-color:rgba(139,92,246,0.1);color:#8b5cf6}body[a="dark"] .admonition-note .admonition-title,body[a="dark"] .admonition-info .admonition-title{background-color:rgba(14,165,233,0.2);color:#38bdf8}body[a="dark"] .admonition-tip .admonition-title{background-color:rgba(16,185,129,0.2);color:#34d399}body[a="dark"] .admonition-warning .admonition-title{background-color:rgba(245,158,11,0.2);color:#fbbf24}body[a="dark"] .admonition-danger .admonition-title{background-color:rgba(239,68,68,0.2);color:#f87171}body[a="dark"] .admonition-spoilers .admonition-title{background-color:rgba(139,92,246,0.2);color:#a78bfa}blockquote{margin:1.5rem 0;padding:1rem 1.5rem;border-left:4px solid;font-style:italic}blockquote footer{margin-top:1rem;font-style:normal;font-size:0.9rem;opacity:0.8}blockquote footer cite{font-weight:600}blockquote footer cite::before{content:"— "}blockquote>*:last-child{margin-bottom:0}body[a="dark"]{background-color:#000;color:#fff;--syntax-bg: #282c34;--syntax-fg: #abb2bf;--syntax-subtle: #5c6370;--syntax-comment: #5c6370;--syntax-keyword: #c678dd;--syntax-entity: #e06c75;--syntax-literal: #56b6c2;--syntax-string: #98c379;--syntax-variable: #d19a66;--syntax-function: #61aeee;--syntax-class: #e6c07b;--syntax-highlight-bg: #3d4451}body[a="dark"] a{color:#79a8ff}body[a="dark"] a:visited{color:#f78fe7}body[a="dark"] details:not(.admonition){border:thin solid #fff}body[a="dark"] details:not(.admonition) summary{color:#fff}body[a="dark"] details:not(.admonition)[open] summary{border-bottom:1px solid #fff}body[a="dark"] pre:not(.chroma):not(.highlight pre){background:#000}body[a="dark"] code:not(pre>code){background-color:#fff;color:#000}body[a="dark"] *:target{background:#2f3849;color:#fff}body[a="dark"] table,body[a="dark"] th,body[a="dark"] td{border:thin solid #fff}body[a="dark"] .toc{border:thin solid #fff;padding:1rem}body[a="dark"] figcaption{color:#000}body[a="dark"] blockquote{border:thin solid #fff}body[a="dark"] .excerpt-box{border:thin solid #fff;padding:1rem}body[a="light"]{background-color:#fff;color:#000;--syntax-bg: #f7f7f7;--syntax-fg: #383a42;--syntax-subtle: #a0a1a7;--syntax-comment: #a0a1a7;--syntax-keyword: #a626a4;--syntax-entity: #e45649;--syntax-literal: #0184bb;--syntax-string: teal;--syntax-variable: #986801;--syntax-function: #4078f2;--syntax-class: #c18401;--syntax-highlight-bg: #e8e8e8}body[a="light"] a{color:#3548cf}body[a="light"] a:visited{color:#8f0075}body[a="light"] details:not(.admonition){border:thin solid #000}body[a="light"] details:not(.admonition) summary{color:#000}body[a="light"] details:not(.admonition)[open] summary{border-bottom:1px solid #000}body[a="light"] pre:not(.chroma):not(.highlight pre){background:#fff}body[a="light"] code:not(pre>code){background-color:#000;color:#fff}body[a="light"] *:target{background:#dae5ec;color:#000}body[a="light"] table,body[a="light"] th,body[a="light"] td{border:thin solid #000}body[a="light"] .toc{border:thin solid #000;padding:1rem}body[a="light"] figcaption{color:#595959}body[a="light"] blockquote{border:thin solid #000}body[a="light"] .excerpt-box{border:thin solid #000;padding:1rem}@media (prefers-color-scheme: dark){body[a="auto"]{background-color:#000;color:#fff;--syntax-bg: #282c34;--syntax-fg: #abb2bf;--syntax-subtle: #5c6370;--syntax-comment: #5c6370;--syntax-keyword: #c678dd;--syntax-entity: #e06c75;--syntax-literal: #56b6c2;--syntax-string: #98c379;--syntax-variable: #d19a66;--syntax-function: #61aeee;--syntax-class: #e6c07b;--syntax-highlight-bg: #3d4451}body[a="auto"] a{color:#79a8ff}body[a="auto"] a:visited{color:#f78fe7}body[a="auto"] details:not(.admonition){border:thin solid #fff}body[a="auto"] details:not(.admonition) summary{color:#fff}body[a="auto"] details:not(.admonition)[open] summary{border-bottom:1px solid #fff}body[a="auto"] pre:not(.chroma):not(.highlight pre){background:#000}body[a="auto"] code:not(pre>code){background-color:#fff;color:#000}body[a="auto"] *:target{background:#2f3849;color:#fff}body[a="auto"] table,body[a="auto"] th,body[a="auto"] td{border:thin solid #fff}body[a="auto"] .toc{border:thin solid #fff;padding:1rem}body[a="auto"] figcaption{color:#000}body[a="auto"] blockquote{border:thin solid #fff}body[a="auto"] .excerpt-box{border:thin solid #fff;padding:1rem}}@media (prefers-color-scheme: light){body[a="auto"]{background-color:#fff;color:#000;--syntax-bg: #f7f7f7;--syntax-fg: #383a42;--syntax-subtle: #a0a1a7;--syntax-comment: #a0a1a7;--syntax-keyword: #a626a4;--syntax-entity: #e45649;--syntax-literal: #0184bb;--syntax-string: teal;--syntax-variable: #986801;--syntax-function: #4078f2;--syntax-class: #c18401;--syntax-highlight-bg: #e8e8e8}body[a="auto"] a{color:#3548cf}body[a="auto"] a:visited{color:#8f0075}body[a="auto"] details:not(.admonition){border:thin solid #000}body[a="auto"] details:not(.admonition) summary{color:#000}body[a="auto"] details:not(.admonition)[open] summary{border-bottom:1px solid #000}body[a="auto"] pre:not(.chroma):not(.highlight pre){background:#fff}body[a="auto"] code:not(pre>code){background-color:#000;color:#fff}body[a="auto"] *:target{background:#dae5ec;color:#000}body[a="auto"] table,body[a="auto"] th,body[a="auto"] td{border:thin solid #000}body[a="auto"] .toc{border:thin solid #000;padding:1rem}body[a="auto"] figcaption{color:#595959}body[a="auto"] blockquote{border:thin solid #000}body[a="auto"] .excerpt-box{border:thin solid #000;padding:1rem}}html{height:100%}body{font-family:var(--font-mono);font-size:16px;line-height:1.6;margin:0;min-height:100%;overflow-wrap:break-word}article{font-family:var(--font-sans)}article.lang-en{font-size:17px}article.lang-zh{font-size:17px;line-height:1.75}.post-excerpt{margin:0.25rem 0 1rem;font-size:0.95rem;line-height:1.5;opacity:.85;word-wrap:break-word;overflow-wrap:break-word}.post-description{margin:.25rem 0 1rem;font-style:italic;opacity:.85}pre,code{font-family:var(--font-mono)}h2,h3,h4,h5,h6{margin-top:1.5rem}p{margin:1rem 0}li{margin:0.4rem 0}a{text-decoration:none}a:hover{text-decoration:underline}hr{text-align:center;border:0;margin:2rem 0}hr:before{content:'/////'}hr:after{content:attr(data-content) "/////"}pre{padding:1em;overflow-x:auto}table{width:100%}table,th,td{border-collapse:collapse;padding:0.4rem}code{text-size-adjust:100%;-ms-text-size-adjust:100%;-moz-text-size-adjust:100%;-webkit-text-size-adjust:100%}code{font-size:90%}code:not(pre>code){padding:0.1em 0.2em}code.has-jax{-webkit-font-smoothing:antialiased;background:inherit !important;border:none !important;font-size:100%}blockquote{padding:1rem}blockquote p{margin:0}img{max-width:100%;display:block;margin:0 auto}figcaption{text-align:center;opacity:0.5}details{padding:1rem}details summary{text-decoration:none}details[open] summary{margin-bottom:0.5em;padding-bottom:0.5em}.post-meta{display:flex;justify-content:space-between;align-items:center}.w{max-width:50%;margin:0 auto;padding:4rem 2rem}.toc{padding:1rem}.search-container{margin:2rem 0}#search-input{width:100%;padding:0.5rem;font-size:1rem;font-family:var(--font-mono);border:1px solid;background-color:transparent;color:inherit}#search-results{list-style-type:none;padding:0;margin-top:1rem}#search-results li a{display:block;padding:0.5rem;text-decoration:none}#search-results li a:hover{text-decoration:underline}.categories .category-group{margin-bottom:2rem}.categories .category-group h2{margin-bottom:0.5rem;border-bottom:1px solid #ccc;padding-bottom:0.25rem}.categories .category-group h2 a{text-decoration:none;color:inherit}.categories .category-group h2 a:hover{text-decoration:underline}.categories .category-group ul{margin-top:0.5rem}.categories .category-group ul li{margin-bottom:0.25rem}.categories .category-group ul li span{margin-right:0.5rem}.bg{background-color:var(--syntax-bg)}.chroma{color:var(--syntax-fg);background-color:var(--syntax-bg)}.chroma .err{color:var(--syntax-entity)}.chroma .lntd{vertical-align:top;padding:0;margin:0;border:0}.chroma .lntable{border-spacing:0;padding:0;margin:0;border:0}.chroma .hl{background-color:var(--syntax-highlight-bg)}.chroma .lnt{color:var(--syntax-subtle)}.chroma .ln{color:var(--syntax-subtle)}.chroma .line{display:flex}.chroma .c,.chroma .ch,.chroma .cm,.chroma .c1,.chroma .cs,.chroma .cp,.chroma .cpf{color:var(--syntax-comment);font-style:italic}.chroma .k,.chroma .kd,.chroma .kn,.chroma .kp,.chroma .kr,.chroma .ow{color:var(--syntax-keyword)}.chroma .kc,.chroma .no{color:var(--syntax-literal)}.chroma .kt{color:var(--syntax-variable)}.chroma .n{color:var(--syntax-fg)}.chroma .na{color:var(--syntax-variable)}.chroma .nb,.chroma .nc,.chroma .bp{color:var(--syntax-class)}.chroma .nd{color:var(--syntax-function)}.chroma .ni{color:var(--syntax-function)}.chroma .ne{color:var(--syntax-function)}.chroma .nf,.chroma .fm{color:var(--syntax-function)}.chroma .nl{color:var(--syntax-fg)}.chroma .nn{color:var(--syntax-fg)}.chroma .nx{color:var(--syntax-fg)}.chroma .nt{color:var(--syntax-entity)}.chroma .nv,.chroma .vc,.chroma .vg,.chroma .vi,.chroma .vm{color:var(--syntax-variable)}.chroma .s,.chroma .sa,.chroma .sb,.chroma .sc,.chroma .dl,.chroma .sd,.chroma .s2,.chroma .se,.chroma .sh,.chroma .si,.chroma .sx,.chroma .sr,.chroma .s1,.chroma .ss{color:var(--syntax-string)}.chroma .m,.chroma .mb,.chroma .mf,.chroma .mh,.chroma .mi,.chroma .il,.chroma .mo{color:var(--syntax-variable)}.chroma .o{color:var(--syntax-fg)}.chroma .p{color:var(--syntax-fg)}.chroma .gd{color:var(--syntax-entity)}.chroma .ge{font-style:italic}.chroma .gh{color:var(--syntax-entity)}.chroma .gi{color:var(--syntax-string)}.chroma .gs{font-weight:bold}.chroma .gu{color:var(--syntax-entity)}.chroma .gl{text-decoration:underline}.post-content .highlight:not(table){background:var(--syntax-bg) !important}.post-content pre code{background:var(--syntax-bg) !important;color:var(--syntax-fg)}.highlight pre.chroma code{padding:10px}.post-excerpt{margin:0.5rem 0 0 0;font-size:0.9rem;line-height:1.5;opacity:0.7;color:inherit;font-style:normal;word-wrap:break-word;overflow-wrap:break-word;max-width:none;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.excerpt-box{border:none !important;padding:0 !important;margin:0;background:none}.post-list li{display:list-item}.post-list li .post-item-container{display:flex;align-items:flex-start;gap:1rem}.post-list li .post-content{flex:1}body[a="dark"] .post-excerpt{opacity:0.6}.archive-list{margin-top:2rem}.archive-entry{margin-bottom:2.5rem}.archive-title{font-family:'Helvetica', 'Noto Sans SC', sans-serif;font-size:1.25rem;font-weight:700;text-decoration:none;display:block}.archive-title,.archive-title:visited{color:inherit}.archive-title:hover{text-decoration:underline}.archive-date{font-family:'Helvetica', 'Noto Sans SC', sans-serif;font-size:0.75rem;font-weight:700;letter-spacing:0.05em;margin-top:0.25rem;opacity:0.6}.archive-desc{margin-top:0.5rem;font-size:0.95rem;line-height:1.6;opacity:0.85}
