.highlight .c{color:#998;font-style:italic}.highlight .err{color:#a61717;background-color:#e3d2d2}.highlight .k{font-weight:bold}.highlight .o{font-weight:bold}.highlight .cm{color:#998;font-style:italic}.highlight .cp{color:#999;font-weight:bold}.highlight .c1{color:#998;font-style:italic}.highlight .cs{color:#999;font-weight:bold;font-style:italic}.highlight .gd{color:#000;background-color:#fdd}.highlight .gd .x{color:#000;background-color:#faa}.highlight .ge{font-style:italic}.highlight .gr{color:#a00}.highlight .gh{color:#999}.highlight .gi{color:#000;background-color:#dfd}.highlight .gi .x{color:#000;background-color:#afa}.highlight .go{color:#888}.highlight .gp{color:#555}.highlight .gs{font-weight:bold}.highlight .gu{color:#aaa}.highlight .gt{color:#a00}.highlight .kc{font-weight:bold}.highlight .kd{font-weight:bold}.highlight .kp{font-weight:bold}.highlight .kr{font-weight:bold}.highlight .kt{color:#458;font-weight:bold}.highlight .m{color:#099}.highlight .s{color:#d14}.highlight .na{color:teal}.highlight .nb{color:#0086B3}.highlight .nc{color:#458;font-weight:bold}.highlight .no{color:teal}.highlight .ni{color:purple}.highlight .ne{color:#900;font-weight:bold}.highlight .nf{color:#900;font-weight:bold}.highlight .nn{color:#555}.highlight .nt{color:navy}.highlight .nv{color:teal}.highlight .ow{font-weight:bold}.highlight .w{color:#bbb}.highlight .mf{color:#099}.highlight .mh{color:#099}.highlight .mi{color:#099}.highlight .mo{color:#099}.highlight .sb{color:#d14}.highlight .sc{color:#d14}.highlight .sd{color:#d14}.highlight .s2{color:#d14}.highlight .se{color:#d14}.highlight .sh{color:#d14}.highlight .si{color:#d14}.highlight .sx{color:#d14}.highlight .sr{color:#009926}.highlight .s1{color:#d14}.highlight .ss{color:#990073}.highlight .bp{color:#999}.highlight .vc{color:teal}.highlight .vg{color:teal}.highlight .vi{color:teal}.highlight .il{color:#099}html{font-size:16px}body,h1,h2,h3,h4,h5,h6,p,blockquote,pre,hr,dl,dd,ol,ul,figure{margin:0;padding:0}body{font:400 16px/1.8 -apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Hiragino Sans GB","Microsoft YaHei","Noto Sans CJK SC","Source Han Sans SC",Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";color:#111;background-color:#fdfdfd;-webkit-text-size-adjust:100%;-webkit-font-feature-settings:"kern" 1;-moz-font-feature-settings:"kern" 1;-o-font-feature-settings:"kern" 1;font-feature-settings:"kern" 1;font-kerning:normal;display:flex;min-height:100vh;flex-direction:column;overflow-wrap:break-word}h1,h2,h3,h4,h5,h6,p,blockquote,pre,ul,ol,dl,figure,.highlight{margin-bottom:15px}hr{margin-top:30px;margin-bottom:30px}main{display:block}img{max-width:100%;vertical-align:middle}figure>img{display:block}figcaption{font-size:14px}ul,ol{margin-left:30px}li>ul,li>ol{margin-bottom:0}h1,h2,h3,h4,h5,h6{font-weight:400}a{color:#2a7ae2;text-decoration:none}a:visited{color:#1756a9}a:hover{color:#111;text-decoration:underline}.social-media-list a:hover,.pagination a:hover{text-decoration:none}.social-media-list a:hover .username,.pagination a:hover .username{text-decoration:underline}blockquote{color:#828282;border-left:4px solid #e8e8e8;padding-left:15px;font-size:1.125rem;font-style:italic}blockquote>:last-child{margin-bottom:0}blockquote i,blockquote em{font-style:normal}pre,code{font-family:"Menlo","Inconsolata","Consolas","Roboto Mono","Ubuntu Mono","Liberation Mono","Courier New",monospace;font-size:0.9375em;border:1px solid #e8e8e8;border-radius:3px;background-color:#eef}code{padding:1px 5px}pre{padding:8px 12px;overflow-x:auto}pre>code{border:0;padding-right:0;padding-left:0}.highlight{border-radius:3px;background:#eef}.highlighter-rouge .highlight{background:#eef}.wrapper{max-width:calc(760px - (30px));margin-right:auto;margin-left:auto;padding-right:15px;padding-left:15px}@media screen and (min-width: 800px){.wrapper{max-width:calc(760px - (30px * 2));padding-right:30px;padding-left:30px}}.wrapper:after{content:"";display:table;clear:both}.orange{color:#f66a0a}.grey{color:#828282}.svg-icon{width:1.25em;height:1.25em;display:inline-block;fill:currentColor;vertical-align:text-bottom}table{margin-bottom:30px;width:100%;text-align:left;color:#3f3f3f;border-collapse:collapse;border:1px solid #e8e8e8}table tr:nth-child(even){background-color:#f7f7f7}table th,table td{padding:10px 15px}table th{background-color:#f0f0f0;border:1px solid #e0e0e0}table td{border:1px solid #e8e8e8}@media screen and (max-width: 800px){table{display:block;overflow-x:auto;-webkit-overflow-scrolling:touch;-ms-overflow-style:-ms-autohiding-scrollbar}}.site-header{border-top:5px solid #424242;border-bottom:1px solid #e8e8e8;min-height:55.95px;line-height:64.8px;position:relative}.site-title{font-size:1.625rem;font-weight:300;letter-spacing:-1px;margin-bottom:0;float:left}@media screen and (max-width: 600px){.site-title{padding-right:45px}}.site-title,.site-title:visited{color:#424242}.site-nav{position:absolute;top:9px;right:15px;background-color:#fdfdfd;border:1px solid #e8e8e8;border-radius:5px;text-align:right}.site-nav .nav-trigger{display:none}.site-nav .menu-icon{float:right;width:36px;height:26px;line-height:0;padding-top:10px;text-align:center}.site-nav .menu-icon>svg path{fill:#424242}.site-nav label[for="nav-trigger"]{display:block;float:right;width:36px;height:36px;z-index:2;cursor:pointer}.site-nav input ~ .trigger{clear:both;display:none}.site-nav input:checked ~ .trigger{display:block;padding-bottom:5px}.site-nav .page-link{color:#111;line-height:1.8;display:block;padding:5px 10px;margin-left:20px}.site-nav .page-link:not(:last-child){margin-right:0}@media screen and (min-width: 600px){.site-nav{position:static;float:right;border:none;background-color:inherit}.site-nav label[for="nav-trigger"]{display:none}.site-nav .menu-icon{display:none}.site-nav input ~ .trigger{display:block}.site-nav .page-link{display:inline;padding:0;margin-left:auto}.site-nav .page-link:not(:last-child){margin-right:20px}}.site-footer{border-top:1px solid #e8e8e8;padding:30px 0}.footer-heading{font-size:1.125rem;margin-bottom:15px}.feed-subscribe .svg-icon{padding:5px 5px 2px 0}.contact-list,.social-media-list,.pagination{list-style:none;margin-left:0}.footer-col-wrapper,.social-links{font-size:.9375rem;color:#828282}.footer-col{margin-bottom:15px}.footer-col-1,.footer-col-2{width:calc(50% - (30px / 2))}.footer-col-3{width:calc(100% - (30px / 2))}@media screen and (min-width: 800px){.footer-col-1{width:calc(35% - (30px / 2))}.footer-col-2{width:calc(20% - (30px / 2))}.footer-col-3{width:calc(45% - (30px / 2))}}@media screen and (min-width: 600px){.footer-col-wrapper{display:flex}.footer-col{width:calc(100% - (30px / 2));padding:0 15px}.footer-col:first-child{padding-right:15px;padding-left:0}.footer-col:last-child{padding-right:0;padding-left:15px}}.page-content{padding:30px 0;flex:1 0 auto}.page-heading{font-size:2rem}.post-list-heading{font-size:1.75rem}.post-list{margin-left:0;list-style:none}.post-list>li{margin-bottom:30px}.post-meta{font-size:14px;color:#828282}.post-link{display:block;font-size:1.5rem}.post-header{margin-bottom:30px}.post-title,.post-content h1{font-size:2.625rem;letter-spacing:-1px;line-height:1.15}@media screen and (min-width: 800px){.post-title,.post-content h1{font-size:2.625rem}}.post-content{margin-bottom:30px}.post-content h1,.post-content h2,.post-content h3,.post-content h4,.post-content h5,.post-content h6{margin-top:30px}.post-content h2{font-size:1.75rem}@media screen and (min-width: 800px){.post-content h2{font-size:2rem}}.post-content h3{font-size:1.375rem}@media screen and (min-width: 800px){.post-content h3{font-size:1.625rem}}.post-content h4{font-size:1.25rem}.post-content h5{font-size:1.125rem}.post-content h6{font-size:1.0625rem}.social-media-list,.pagination{display:table;margin:0 auto}.social-media-list li,.pagination li{float:left;margin:5px 10px 5px 0}.social-media-list li:last-of-type,.pagination li:last-of-type{margin-right:0}.social-media-list li a,.pagination li a{display:block;padding:10px 12px;border:1px solid #e8e8e8}.social-media-list li a:hover,.pagination li a:hover{border-color:#dbdbdb}.pagination{margin-bottom:30px}.pagination li a,.pagination li div{min-width:41px;text-align:center;box-sizing:border-box}.pagination li div{display:block;padding:7.5px;border:1px solid transparent}.pagination li div.pager-edge{color:#e8e8e8;border:1px dashed}@media screen and (min-width: 800px){.one-half{width:calc(50% - (30px / 2))}}:root{--c-bg: #fdfdfd;--c-card: #fdfdfd;--c-text: #111111;--c-muted: #828282;--c-border: #e8e8e8;--c-link: #2a7ae2;--c-accent: #828282;--c-accent-soft: rgba(130,130,130,.08);--c-code-bg: #eeeeff;--c-shadow: none;color-scheme:light dark}@media (prefers-color-scheme: dark){:root{--c-bg: #181818;--c-card: #181818;--c-text: #e0e0e0;--c-muted: #9a9a9a;--c-border: #333333;--c-link: #79b8ff;--c-accent: #9a9a9a;--c-accent-soft: rgba(255,255,255,.05);--c-code-bg: #222222;--c-shadow: none}}html{-webkit-text-size-adjust:100%}body{background:var(--c-bg);color:var(--c-text);letter-spacing:.01em;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}a{color:var(--c-link);text-decoration:none;transition:color .15s}a:hover{text-decoration:underline;text-underline-offset:3px}a:visited{color:var(--c-link)}::selection{background:var(--c-accent-soft)}h1,h2,h3,h4{color:var(--c-text);line-height:1.4;font-weight:600}p,ul,ol,pre,blockquote,table{margin-bottom:1.1em}.site-header{border-top:0;border-bottom:1px solid var(--c-border);background:var(--c-bg);position:sticky;top:0;z-index:10;backdrop-filter:saturate(160%) blur(8px);background:color-mix(in srgb, var(--c-bg) 88%, transparent)}.site-title,.site-title:visited{color:var(--c-text);font-weight:700;letter-spacing:.02em}.site-title:hover{text-decoration:none}.site-nav .page-link,.site-nav .page-link:visited{color:var(--c-muted);padding:2px 4px;border-radius:6px}.site-nav .page-link:hover{color:var(--c-text);text-decoration:none}.site-nav{background:var(--c-bg);border-color:var(--c-border)}.site-nav .menu-icon svg path{fill:var(--c-muted)}.page-content{padding:40px 0}.page-heading{font-size:1.8rem;margin-bottom:.6em}.post-list-heading{font-size:1.3rem;color:var(--c-muted);font-weight:500}.post-list{margin-left:0;list-style:none}.post-list>li{padding:16px 0;margin:0}.post-list h3{margin:4px 0 0;font-size:1.2rem}.post-link,.post-link:visited{color:var(--c-text);font-size:inherit}.post-link:hover{color:var(--c-link);text-decoration:none}.post-meta{color:var(--c-muted);font-size:.85rem;font-variant-numeric:tabular-nums}.post-header{margin-bottom:28px;padding-bottom:16px;border-bottom:1px dashed var(--c-border)}.post-title{font-size:2rem;letter-spacing:-.01em}@media screen and (max-width: 600px){.post-title{font-size:1.6rem}}.post-content{font-size:1.02rem}.post-content h2{font-size:1.5rem;padding-left:10px;border-left:4px solid var(--c-accent)}.post-content h3{font-size:1.25rem}.post-content img,.page-content img{border-radius:10px;display:block;margin:1em auto;box-shadow:var(--c-shadow)}code{font-size:.88em;background:var(--c-code-bg);border:1px solid var(--c-border);border-radius:5px;padding:.1em .35em;color:var(--c-text)}pre,div.highlight,.highlight{background:var(--c-code-bg) !important;border:1px solid var(--c-border);border-radius:10px}pre{padding:14px 16px;line-height:1.6;overflow-x:auto}pre>code{border:0;padding:0;background:transparent;font-size:.85rem}.highlight pre{border:0;margin:0}blockquote{color:var(--c-muted);background:var(--c-accent-soft);border-left:4px solid var(--c-accent);border-radius:0 8px 8px 0;padding:10px 16px;font-size:1rem;letter-spacing:0;font-style:normal}blockquote>:last-child{margin-bottom:0}table{border-radius:8px;overflow:hidden;border:1px solid var(--c-border)}table th{background:var(--c-code-bg)}table td,table th{border-color:var(--c-border) !important}table tr:nth-child(even){background:transparent}hr{border:0;border-top:1px solid var(--c-border);margin:2em 0}.site-footer{border-top:1px solid var(--c-border);color:var(--c-muted)}.footer-heading{color:var(--c-text)}.svg-icon{fill:var(--c-muted)}.pagination li a,.pagination li div{border-radius:8px;border-color:var(--c-border)}@media screen and (max-width: 600px){.wrapper{padding-left:16px;padding-right:16px}.page-content{padding:24px 0}.site-header{position:relative}}@media (prefers-color-scheme: dark){.highlight,.highlight *{color:#d6d6d6}.highlight .c,.highlight .c1,.highlight .cm{color:#7f848e !important}.highlight .k,.highlight .kd,.highlight .kn{color:#c678dd !important}.highlight .s,.highlight .s1,.highlight .s2{color:#98c379 !important}}.site-header{border-top:0;padding-top:7px}.site-header::before{content:"";position:absolute;left:0;right:0;top:0;height:3px}.site-header::before{height:1px;top:3px;background:#e8e8e8}.site-header::after{content:"";position:absolute;left:24px;top:0;width:7px;height:7px;border-radius:50%;background:#e0afa0;box-shadow:12px 0 #b8a9c9, 24px 0 #94a9bd}.pager{display:flex;justify-content:space-between;align-items:center;gap:12px;margin:32px 0 8px;font-size:.9rem;flex-wrap:wrap}.pager .disabled{color:var(--c-border)}.pager-nums{display:flex;gap:4px}.pager-nums a,.pager-nums span{min-width:2em;text-align:center;padding:2px 6px;border-radius:4px}.pager-nums .current{color:var(--c-text);font-weight:600;border:1px solid var(--c-border)}@font-face{font-family:"Source Sans 3";font-style:normal;font-weight:400;font-display:swap;src:url("../fonts/source-sans-3-latin-400.woff2") format("woff2")}@font-face{font-family:"Source Sans 3";font-style:normal;font-weight:700;font-display:swap;src:url("../fonts/source-sans-3-latin-700.woff2") format("woff2")}.site-title,.site-nav,.site-nav .page-link{font-family:"Source Sans 3", "Source Han Sans SC", "Noto Sans SC", "Noto Sans CJK SC", "PingFang SC", "Microsoft YaHei", sans-serif}.search-toggle{float:right;margin:0;padding:6px;background:none;border:0;border-radius:6px;color:var(--c-muted);cursor:pointer;line-height:0;position:absolute;right:56px;top:13px}.search-toggle:hover,.search-toggle:focus-visible{color:var(--c-text)}.search-toggle:focus-visible{outline:2px solid var(--c-link);outline-offset:2px}@media screen and (min-width: 601px){.search-toggle{position:static;margin-top:calc(64.8px / 2 - 15px);margin-left:18px}}html.search-open{overflow:hidden}.search-modal[hidden]{display:none}.search-modal{position:fixed;inset:0;z-index:100}.search-backdrop{position:absolute;inset:0;background:rgba(0,0,0,0.35)}.search-panel{position:relative;max-width:620px;margin:12vh auto 0;background:var(--c-bg);border:1px solid var(--c-border);border-radius:10px;box-shadow:0 12px 40px rgba(0,0,0,0.18);max-height:70vh;display:flex;flex-direction:column;overflow:hidden}.search-box{display:flex;align-items:center;gap:10px;padding:12px 16px;border-bottom:1px solid var(--c-border);color:var(--c-muted)}.search-box input{flex:1;font:inherit;font-size:1.05rem;border:0;outline:none;background:transparent;color:var(--c-text);min-width:0}.search-box input::-webkit-search-cancel-button{display:none}.search-box kbd{font:inherit;font-size:.75rem;border:1px solid var(--c-border);border-radius:4px;padding:1px 6px;cursor:pointer;color:var(--c-muted)}.search-status{margin:0;padding:8px 16px 0;font-size:.8rem;color:var(--c-muted)}.search-results{list-style:none;margin:0;padding:4px 8px 10px;overflow-y:auto}.search-results li a{display:block;padding:10px 10px;border-radius:6px;color:var(--c-text)}.search-results li a:hover,.search-results li a:focus{background:var(--c-accent-soft);text-decoration:none;outline:none}.search-meta{display:block;font-size:.78rem;color:var(--c-muted)}.search-title{display:block;font-weight:600;margin:2px 0}.search-snippet{display:block;font-size:.86rem;color:var(--c-muted);line-height:1.6}@media screen and (max-width: 600px){.search-panel{max-width:none;margin:0;border-radius:0;border-width:0 0 1px;max-height:100vh;height:100%}}@media (prefers-color-scheme: dark){.search-backdrop{background:rgba(0,0,0,0.6)}}mark{background:rgba(255,213,79,0.55);color:inherit;padding:0 1px;border-radius:2px}@media (prefers-color-scheme: dark){mark{background:rgba(255,213,79,0.3)}}.social-media-list li a,.pagination li a{display:flex;align-items:center;justify-content:center;line-height:0;padding:8px;min-width:40px;min-height:40px;box-sizing:border-box}.social-media-list .svg-icon,.pagination .svg-icon{width:20px;height:20px;display:block;vertical-align:middle}.about .about-lead{font-size:1.15rem;margin-bottom:.4em}.about h2{font-size:1.15rem;margin-top:1.8em;margin-bottom:.7em;padding-left:0;border-left:0;border-bottom:1px solid var(--c-border);padding-bottom:.35em;font-weight:600}.about-tags{list-style:none;margin:0 0 1em;padding:0;display:flex;flex-wrap:wrap;gap:8px}.about-tags li{margin:0;padding:4px 12px;border:1px solid var(--c-border);border-radius:999px;font-size:.85rem;color:var(--c-text);background:var(--c-code-bg);line-height:1.4}.about-contact{list-style:none;margin:0;padding:0}.about-contact li{margin:0 0 .55em;padding:0;display:flex;flex-wrap:wrap;gap:8px 14px;align-items:baseline}.about-label{display:inline-block;min-width:4.5em;color:var(--c-muted);font-size:.9rem}.site-stats{margin:.4em 0 0;font-size:.8rem;color:var(--c-muted)}
