@charset "UTF-8";article.post-single .post-content a{display:inline-block;border-bottom:1px solid var(--red-2);color:var(--red-2);text-decoration:none;font-weight:500;padding:0 2px;transition:all .2s}article.post-single .post-content a>*{color:inherit;background:inherit}article.post-single .post-content a:hover{color:var(--red-3);transform:translateY(-2px)}article.post-single .post-content h1 a.anchor,article.post-single .post-content h2 a.anchor,article.post-single .post-content h3 a.anchor,article.post-single .post-content h4 a.anchor,article.post-single .post-content h5 a.anchor,article.post-single .post-content h6 a.anchor{border-bottom:none;color:var(--primary)}article.post-single .post-content h1:hover a.anchor,article.post-single .post-content h2:hover a.anchor,article.post-single .post-content h3:hover a.anchor,article.post-single .post-content h4:hover a.anchor,article.post-single .post-content h5:hover a.anchor,article.post-single .post-content h6:hover a.anchor{border-bottom:none;color:var(--primary);transform:translateY(0)}body{transition:background-color .3s ease;font-family:var(--font-sans);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}article.post-single .post-content.post-content{padding:24px 28px;border:1px solid var(--border);border-radius:var(--radius);background:var(--entry);box-shadow:0 2px 12px rgba(0,0,0,4%)}article.post-single .post-content{font-size:16px;line-height:1.85;color:var(--content)}article.post-single .post-content p{margin:0 0 1.4em;text-align:justify}article.post-single .post-content h1,article.post-single .post-content h2,article.post-single .post-content h3,article.post-single .post-content h4,article.post-single .post-content h5,article.post-single .post-content h6{scroll-margin-top:76px;color:var(--primary);font-family:inherit}article.post-single .post-content h1{margin:40px 0 24px;padding-bottom:12px;font-size:1.9em;font-weight:700;border-bottom:1px solid var(--border)}article.post-single .post-content h2{margin:2em 0 1em;padding:8px 14px;font-size:1.5em;font-weight:700;border-left:4px solid var(--h2-border);background:linear-gradient(90deg,var(--code-block-bg) 0%,transparent 100%);border-radius:0 4px 4px 0}article.post-single .post-content h3{margin:1.8em 0 .8em;padding-left:10px;font-size:1.25em;font-weight:600;border-left:3px solid var(--tertiary)}article.post-single .post-content h4{margin:1.5em 0 .6em;font-size:1.1em;font-weight:600}article.post-single .post-content h5,article.post-single .post-content h6{margin:1.2em 0 .5em;font-size:1em;font-weight:600;color:var(--secondary)}article.post-single .post-content strong{font-weight:700;color:var(--primary)}article.post-single .post-content em{font-style:italic}article.post-single .post-content del{color:var(--secondary);text-decoration:line-through}article.post-single .post-content ul,article.post-single .post-content ol{margin:0 0 1.4em;padding-left:1.6em}article.post-single .post-content li{margin:.4em 0;line-height:1.8}article.post-single .post-content ul li::marker{color:var(--h2-border)}article.post-single .post-content ol li::marker{color:var(--h2-border);font-weight:600}article.post-single .post-content li>ul,article.post-single .post-content li>ol{margin-bottom:0}article.post-single .post-content ul.task-list{list-style:none;padding-left:0}article.post-single .post-content ul.task-list li{display:flex;align-items:flex-start;gap:8px}article.post-single .post-content ul.task-list li input[type=checkbox]{margin-top:.45em;accent-color:var(--h2-border)}article.post-single .post-content blockquote{margin:1.6em 0;padding:16px 20px;border-left:4px solid var(--h2-border);background:var(--code-bg);border-radius:0 var(--radius)var(--radius)0;color:var(--secondary);font-style:normal;box-shadow:0 1px 4px rgba(0,0,0,4%)}article.post-single .post-content blockquote p{margin-bottom:.6em;line-height:1.7}article.post-single .post-content blockquote p:last-child{margin-bottom:0}.article-table-wrapper{overflow-x:auto;margin:0 0 1.4em;-webkit-overflow-scrolling:touch;border-radius:var(--radius)}article.post-single .post-content .article-table-wrapper table{width:100%;border-collapse:collapse;border-radius:var(--radius);overflow:hidden;font-size:.95em}article.post-single .post-content .article-table-wrapper th{padding:12px 16px;background:var(--code-block-bg);font-weight:600;text-align:left;border-bottom:1px solid var(--border);white-space:nowrap}article.post-single .post-content .article-table-wrapper td{padding:10px 16px;border-bottom:1px solid var(--border)}article.post-single .post-content .article-table-wrapper tr:last-child td{border-bottom:none}article.post-single .post-content .article-table-wrapper tbody tr{transition:background-color .2s ease}article.post-single .post-content .article-table-wrapper tbody tr:hover td{background:var(--code-bg)}article.post-single .post-content img{max-width:100%;height:auto;border:1px solid var(--border);border-radius:var(--radius);box-shadow:0 2px 12px rgba(0,0,0,8%);transition:transform .25s ease,box-shadow .25s ease}article.post-single .post-content img:hover{transform:translateY(-3px);box-shadow:0 6px 20px rgba(0,0,0,.12)}article.post-single .post-content img.lightboxable{cursor:zoom-in}article.post-single .post-content img[src*="#center"],article.post-single .post-content figure.align-center img{display:block;margin:1.5em auto}article.post-single .post-content figure>figcaption{text-align:center;font-size:.9em;color:var(--secondary);margin-top:8px}article.post-single .post-content .imgAlt{text-align:center;color:var(--secondary);font-style:italic;margin:6px 0 1.2em;font-size:.9em}article.post-single .post-content .highlight:not(table),article.post-single .post-content pre{margin:1.4em 0;border:1px solid var(--code-block-border);border-radius:var(--radius);box-shadow:0 1px 6px rgba(0,0,0,5%)}article.post-single .post-content .highlight{overflow:hidden}article.post-single .post-content .highlight pre{margin:0;border:none;border-radius:0;overflow-x:auto}article.post-single .post-content pre{overflow-x:auto}article.post-single .post-content pre code{display:block;padding:16px;font-family:var(--font-mono);font-size:.88em;line-height:1.7;background:0 0}article.post-single .post-content :not(pre)>code{padding:2px 6px;font-size:.85em;font-family:var(--font-mono);border-radius:4px;background:var(--code-bg);color:var(--code-color);word-break:break-word}article.post-single .post-content kbd{display:inline-block;padding:2px 7px;font-family:var(--font-mono);font-size:.85em;background:var(--code-bg);border:1px solid var(--border);border-bottom-width:2px;border-radius:4px}article.post-single .post-content .highlight{overflow:auto;max-height:480px}article.post-single .post-content .highlight-header{position:sticky;top:0;z-index:2;display:flex;align-items:center;justify-content:space-between;padding:7px 14px;background:var(--code-block-border);border-bottom:1px solid var(--code-block-border);font-size:.75em}article.post-single .post-content .highlight-lang{color:var(--secondary);text-transform:uppercase;letter-spacing:.04em;font-family:var(--font-mono)}article.post-single .post-content .highlight-header .copy-code{position:static;display:inline-block;margin:0;padding:2px 10px;font-size:.95em;line-height:1.4;font-family:var(--font-sans);color:var(--secondary);background:0 0;border:1px solid var(--code-block-border);border-radius:4px;cursor:pointer;user-select:none;transition:color .15s ease,border-color .15s ease}article.post-single .post-content .highlight-header .copy-code:hover{color:var(--primary);border-color:var(--h2-border)}article.post-single .post-content div.highlight:hover .copy-code,article.post-single .post-content pre:hover .copy-code{display:inline-block}article.post-single .post-content .highlight::after{content:"";position:sticky;bottom:0;display:block;height:30px;margin-top:-30px;background:linear-gradient(to bottom,transparent,var(--code-block-bg));border-radius:0 0 var(--radius)var(--radius);pointer-events:none;opacity:0;transition:opacity .2s ease}article.post-single .post-content .highlight.is-clipped::after{opacity:1}article.post-single .post-content .highlight td.lntd:first-child{border-right:1px solid var(--code-block-border);padding:16px 12px;width:1%;user-select:none}article.post-single .post-content .highlight td.lntd:last-child{padding:16px;width:99%}article.post-single .post-content .highlight .lnt,article.post-single .post-content .highlight .ln{color:var(--secondary)}article.post-single .post-content dl{display:block;margin:0 0 1.4em}article.post-single .post-content dt{font-weight:600;margin-top:.8em}article.post-single .post-content dd{margin-left:1.5em;margin-bottom:.4em}article.post-single .post-content hr{margin:2.5em 0;border:none;height:1px;background:linear-gradient(90deg,transparent,var(--tertiary),transparent)}article.post-single .post-content .footnotes{margin-top:2.5em;padding-top:1.2em;border-top:1px solid var(--border);font-size:.9em;color:var(--secondary)}article.post-single .post-content .footnotes ol{margin-bottom:0}article .toc{position:sticky;top:16px;z-index:100;margin:0 0 24px;width:fit-content;border:none;background:0 0;padding:0}body.dark article .toc{background:0 0}article .toc-toggle{display:inline-flex;align-items:center;gap:6px;padding:7px 14px;border:1px solid var(--border);border-radius:999px;background:var(--entry);color:var(--secondary);font-size:.88em;font-family:var(--font-sans);line-height:1.4;cursor:pointer;box-shadow:0 2px 10px rgba(0,0,0,6%);transition:color .2s ease,border-color .2s ease,box-shadow .2s ease}article .toc-toggle:hover{color:var(--h2-border);border-color:var(--h2-border);box-shadow:0 3px 14px rgba(0,0,0,.1)}article .toc .toc-pin{margin-left:2px;color:var(--secondary);transition:color .2s ease,transform .2s ease}article .toc.locked .toc-pin{color:var(--theme-1);transform:rotate(45deg)}article .toc-panel{position:absolute;top:calc(100% + 8px);left:0;width:280px;max-height:60vh;overflow-y:auto;background:var(--entry);border:1px solid var(--border);border-radius:var(--radius);box-shadow:0 8px 32px rgba(0,0,0,.14);opacity:0;visibility:hidden;transform:translateY(-6px)scale(.99);transform-origin:top left;transition:opacity .2s ease,transform .2s ease,visibility .2s ease}article .toc.open .toc-panel{opacity:1;visibility:visible;transform:translateY(0)scale(1)}article .toc-panel-header{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;border-bottom:1px solid var(--border)}article .toc-panel-title{font-weight:600;font-size:.92em;color:var(--primary)}article .toc-close{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border:none;border-radius:6px;background:0 0;color:var(--secondary);font-size:.9em;cursor:pointer;transition:color .15s ease,background .15s ease}article .toc-close:hover{color:var(--primary);background:var(--code-bg)}article .toc .inner{margin:0;padding:10px 14px 12px;border-top:none}article .toc .inner ul{margin:0;padding-left:0;list-style:none}article .toc .inner li{margin:0}article .toc .inner li>ul{padding-left:1.1em;margin:0}article .toc a{display:block;padding:5px 8px;border-left:2px solid transparent;color:var(--secondary);font-size:.9em;line-height:1.5;text-decoration:none;transition:color .2s ease,border-color .2s ease,padding-left .2s ease}article .toc a:hover{color:var(--h2-border)}article .toc a.active{color:var(--h2-border);font-weight:600;border-left-color:var(--h2-border);padding-left:12px}article .toc-panel::-webkit-scrollbar{width:6px}article .toc-panel::-webkit-scrollbar-thumb{background:var(--tertiary);border-radius:3px}article .toc-panel::-webkit-scrollbar-thumb:hover{background:var(--secondary)}article .toc-panel::-webkit-scrollbar-track{background:0 0}article.post-single .post-content ::-webkit-scrollbar{width:8px;height:8px}article.post-single .post-content ::-webkit-scrollbar-thumb{background:var(--tertiary);border-radius:4px}article.post-single .post-content ::-webkit-scrollbar-thumb:hover{background:var(--secondary)}article.post-single .post-content ::-webkit-scrollbar-track{background:0 0}article.post-single .post-content ::selection{background:var(--h2-border);color:#fff}article.post-single .post-content .callout{position:relative;margin:1.6em 0;padding:14px 18px;border:1px solid var(--callout-info-border);border-left-width:4px;border-radius:var(--radius);background:var(--callout-info-bg);box-shadow:0 1px 4px rgba(0,0,0,5%)}article.post-single .post-content .callout .callout-title{display:flex;align-items:center;gap:8px;margin-bottom:6px;font-weight:700;color:var(--callout-info-border)}article.post-single .post-content .callout .callout-title::before{content:"";width:8px;height:8px;border-radius:2px;background:currentColor}article.post-single .post-content .callout .callout-body{color:var(--content)}article.post-single .post-content .callout .callout-body>:last-child{margin-bottom:0}article.post-single .post-content .callout-success{border-color:var(--callout-success-border);background:var(--callout-success-bg)}article.post-single .post-content .callout-success .callout-title{color:var(--callout-success-border)}article.post-single .post-content .callout-warn{border-color:var(--callout-warn-border);background:var(--callout-warn-bg)}article.post-single .post-content .callout-warn .callout-title{color:var(--callout-warn-border)}article.post-single .post-content .callout-danger{border-color:var(--callout-danger-border);background:var(--callout-danger-bg)}article.post-single .post-content .callout-danger .callout-title{color:var(--callout-danger-border)}.lightbox{position:fixed;inset:0;z-index:9999;display:flex;align-items:center;justify-content:center;background:rgba(0,0,0,.85);opacity:0;visibility:hidden;transition:opacity .25s ease,visibility .25s ease;cursor:zoom-out}.lightbox.open{opacity:1;visibility:visible}.lightbox img{max-width:90vw;max-height:90vh;border-radius:var(--radius);background:#fff;box-shadow:0 8px 40px rgba(0,0,0,.5)}.reading-progress{position:fixed;top:0;left:0;height:3px;width:0;background:linear-gradient(90deg,var(--theme-1),var(--h2-border));z-index:10000;transition:width .08s linear;pointer-events:none}@media screen and (max-width:768px){article.post-single .post-content.post-content{padding:16px}article.post-single .post-content h1{font-size:1.6em}article.post-single .post-content h2{font-size:1.35em}article.post-single .post-content h3{font-size:1.15em}article.post-single .post-content pre code{font-size:.8em;padding:12px}article.post-single .post-content .highlight{max-height:360px}article.post-single .post-content img{box-shadow:none}article .toc{position:fixed;top:auto;bottom:20px;right:16px;left:auto;margin:0;z-index:90}article .toc::before{content:"";position:fixed;inset:0;z-index:-1;background:rgba(0,0,0,.35);opacity:0;visibility:hidden;transition:opacity .22s ease,visibility .22s ease}article .toc.open::before{opacity:1;visibility:visible}article .toc-panel{position:fixed;top:auto;bottom:0;left:0;right:0;width:auto;max-height:70vh;border-radius:16px 16px 0 0;opacity:1;visibility:visible;transform:translateY(100%);transform-origin:bottom center;transition:transform .22s ease}article .toc.open .toc-panel{transform:translateY(0)}}.post-content .highlight:not(table){background:var(--code-block-bg)!important}.post-content .highlight pre,.post-content pre code{background:var(--code-block-bg)!important}.post-content pre code{color:var(--content)}.post-content .chroma{color:#000}.post-content .chroma .err{color:#a61717;background-color:#e3d2d2}.post-content .chroma .lnt,.post-content .chroma .ln{color:#7f7f7f}.post-content .chroma .hl{background-color:#ffc}.post-content .chroma .k,.post-content .chroma .kc,.post-content .chroma .kd,.post-content .chroma .kn,.post-content .chroma .kp,.post-content .chroma .kr{color:#000;font-weight:700}.post-content .chroma .kt{color:#458;font-weight:700}.post-content .chroma .na{color:teal}.post-content .chroma .nb{color:#0086b3}.post-content .chroma .bp{color:#999}.post-content .chroma .nc{color:#458;font-weight:700}.post-content .chroma .no{color:teal}.post-content .chroma .nd{color:#3c5d5d;font-weight:700}.post-content .chroma .ni{color:purple}.post-content .chroma .ne,.post-content .chroma .nf,.post-content .chroma .nl{color:#900;font-weight:700}.post-content .chroma .nn{color:#555}.post-content .chroma .nt{color:navy}.post-content .chroma .nv,.post-content .chroma .vc,.post-content .chroma .vg,.post-content .chroma .vi{color:teal}.post-content .chroma .s,.post-content .chroma .sa,.post-content .chroma .sb,.post-content .chroma .sc,.post-content .chroma .dl,.post-content .chroma .sd,.post-content .chroma .s2,.post-content .chroma .se,.post-content .chroma .sh,.post-content .chroma .si,.post-content .chroma .sx,.post-content .chroma .s1{color:#d14}.post-content .chroma .sr{color:#009926}.post-content .chroma .ss{color:#990073}.post-content .chroma .m,.post-content .chroma .mb,.post-content .chroma .mf,.post-content .chroma .mh,.post-content .chroma .mi,.post-content .chroma .il,.post-content .chroma .mo{color:#099}.post-content .chroma .o,.post-content .chroma .ow{color:#000;font-weight:700}.post-content .chroma .c,.post-content .chroma .ch,.post-content .chroma .cm,.post-content .chroma .c1{color:#998;font-style:italic}.post-content .chroma .cs,.post-content .chroma .cp,.post-content .chroma .cpf{color:#999;font-weight:700;font-style:italic}.post-content .chroma .gd{color:#000;background-color:#fdd}.post-content .chroma .ge{color:#000;font-style:italic}.post-content .chroma .gr{color:#a00}.post-content .chroma .gh{color:#999}.post-content .chroma .gi{color:#000;background-color:#dfd}.post-content .chroma .go{color:#888}.post-content .chroma .gp{color:#555}.post-content .chroma .gs{font-weight:700}.post-content .chroma .gu{color:#aaa}.post-content .chroma .gt{color:#a00}.post-content .chroma .gl{text-decoration:underline}.post-content .chroma .w{color:#bbb}body.dark .post-content .chroma{color:#f8f8f2}body.dark .post-content .chroma .err{color:#960050;background-color:#1e0010}body.dark .post-content .chroma .lnt,body.dark .post-content .chroma .ln{color:#7f7f7f}body.dark .post-content .chroma .hl{background-color:#ffc}body.dark .post-content .chroma .k,body.dark .post-content .chroma .kc,body.dark .post-content .chroma .kd,body.dark .post-content .chroma .kp,body.dark .post-content .chroma .kr,body.dark .post-content .chroma .kt,body.dark .post-content .chroma .no{color:#66d9ef}body.dark .post-content .chroma .kn,body.dark .post-content .chroma .nt,body.dark .post-content .chroma .o,body.dark .post-content .chroma .ow,body.dark .post-content .chroma .gd{color:#f92672}body.dark .post-content .chroma .na,body.dark .post-content .chroma .nc,body.dark .post-content .chroma .nd,body.dark .post-content .chroma .ne,body.dark .post-content .chroma .nf,body.dark .post-content .chroma .nx,body.dark .post-content .chroma .gi{color:#a6e22e}body.dark .post-content .chroma .l{color:#ae81ff}body.dark .post-content .chroma .s,body.dark .post-content .chroma .sa,body.dark .post-content .chroma .sb,body.dark .post-content .chroma .sc,body.dark .post-content .chroma .dl,body.dark .post-content .chroma .sd,body.dark .post-content .chroma .s2,body.dark .post-content .chroma .sh,body.dark .post-content .chroma .si,body.dark .post-content .chroma .sx,body.dark .post-content .chroma .s1,body.dark .post-content .chroma .ld{color:#e6db74}body.dark .post-content .chroma .se,body.dark .post-content .chroma .m,body.dark .post-content .chroma .mb,body.dark .post-content .chroma .mf,body.dark .post-content .chroma .mh,body.dark .post-content .chroma .mi,body.dark .post-content .chroma .il,body.dark .post-content .chroma .mo{color:#ae81ff}body.dark .post-content .chroma .c,body.dark .post-content .chroma .ch,body.dark .post-content .chroma .cm,body.dark .post-content .chroma .c1,body.dark .post-content .chroma .cs,body.dark .post-content .chroma .cp,body.dark .post-content .chroma .cpf,body.dark .post-content .chroma .gu{color:#75715e}body.dark .post-content .chroma .ge{font-style:italic}body.dark .post-content .chroma .gs{font-weight:700}.post-entry{overflow:hidden}.post-entry i{z-index:99;cursor:help}.post-entry i.fa-arrow-circle-up{position:absolute;right:0;top:0;width:50px;height:50px;background:linear-gradient(to bottom left,#353b48 50%,transparent 50%);color:#fff;font-size:1.3rem;text-align:right;padding-right:5px;padding-top:7px;font-weight:800}.post-entry i.newestArticle{position:absolute;right:0;top:0;width:122px;height:25px;background:#20bf6b;transform:rotateZ(45deg)translateX(39px)translateY(-7px);color:#fff;padding-right:5px;padding-top:7px;font-weight:600;letter-spacing:2px;text-align:center;line-height:11px}@media screen and (max-width:520px){.vpreview{top:135px!important}}#veditor{background-size:contain;background-repeat:no-repeat;background-position:100%;background-color:#fff;resize:vertical;padding:20px}#veditor:focus{background-position-y:200px;transition:all .2s ease-in-out 0s}#vcomments .vheader .vnick{width:31%;border:2px solid #dedede;padding-left:10px;padding-right:10px;border-radius:5px}#vcomments .vheader .vmail{width:31%;border:2px solid #dedede;margin-left:34px;padding-left:10px;padding-right:10px;border-radius:5px}#vcomments .vheader .vlink{width:31%;border:2px solid #dedede;margin-left:34px;padding-left:10px;padding-right:10px;border-radius:5px}img.vimg{transition:all 1s}img.vimg:hover{transform:rotate(360deg);-webkit-transform:rotate(360deg);-moz-transform:rotate(360deg);-o-transform:rotate(360deg);-ms-transform:rotate(360deg)}#vcomments .vcards .vcard{padding:15px 20px 0;border-radius:10px;margin-bottom:15px;box-shadow:0 0 4px 1px rgba(0,0,0,.12);transition:all .3s}#vcomments .vcards .vcard:hover{box-shadow:0 0 8px 3px rgba(0,0,0,.12)}#vcomments .vcards .vcard .vh .vcard{border:none;box-shadow:none}.vcontent{width:100%;padding:16px 40px 16px 20px;border-radius:8px;background-color:#ecf0f1}.vsys{color:#fff!important;background:rgba(142,68,173,.8);border-radius:5px!important}.vsys>i{margin-right:5px}.vtag{border-radius:5px!important;line-height:1.7rem!important}.vat{color:rgba(255,255,255,0)!important;margin-top:-20px!important}.vwrap{position:relative}.vedit{width:50%;border-right:1px solid #ccc!important}.vpreview{padding-top:20px!important;display:block!important;position:absolute;right:0;top:52px;width:50%;height:auto}.vicon.vpreview-btn{display:none!important}.vctrl.text-right{padding-right:20px}.vcol.vcol-70.text-right>button{width:200px;font-size:11px;text-transform:uppercase;letter-spacing:2.5px;font-weight:500;color:#fff;background-color:#bdc3c7;border:none;border-radius:45px;transition:all .3s ease 0s;cursor:pointer;outline:none}.vcol.vcol-70.text-right>button:hover{background-color:#2ee59d;color:#fff;transform:translateY(-2px)}.vwrap>.vrow{border-top:1px solid #cdcdcd;margin-top:10px}#veditor{resize:none}@font-face{font-family:inter;src:url(/fonts/inter-latin-var.woff2)format("woff2");font-weight:100 900;font-style:normal;font-display:swap;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;src:url(/fonts/jetbrains-mono-latin-400.woff2)format("woff2");font-weight:400;font-style:normal;font-display:swap;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}:root{--font-sans:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Noto Sans SC", sans-serif;--font-mono:"JetBrains Mono", "SFMono-Regular", Consolas, "Liberation Mono", Menlo, monospace;--measure:720px;--type-title:36px;--type-body:16px;--type-h2:24px;--type-h3:20px;--type-h4:16.5px;--type-small:13px;--line-body:1.85;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-6:24px;--space-8:32px;--space-12:48px;--space-16:64px;--color-body:#D6D3D1;--color-muted:#A1A1AA;--color-accent:#A78BFA;--color-code-bg:#091116;--border-subtle:rgba(255, 255, 255, 0.08)}.content-rail{display:none}@media(min-width:900px){body:not(.animate):not(.mobile){--theme:#071014;--background:#071014;--entry:rgba(20, 32, 39, 0.58);--primary:#F4F1EC;--secondary:#A1A1AA;--tertiary:rgba(255, 255, 255, 0.1);--tertiary-button:rgba(255, 255, 255, 0.1);--content:#D4D4D8;--border:rgba(255, 255, 255, 0.1);--hljs-bg:#0B1418;--code-bg:rgba(0, 0, 0, 0.25);--code-color:#C4B5FD;--code-block-bg:rgba(0, 0, 0, 0.22);--code-block-border:rgba(255, 255, 255, 0.1);--h2-border:#A78BFA;--theme-1:#A78BFA;--callout-info-bg:rgba(59, 130, 246, 0.12);--callout-info-border:rgba(96, 165, 250, 0.55);--callout-success-bg:rgba(34, 197, 94, 0.12);--callout-success-border:rgba(74, 222, 128, 0.55);--callout-warn-bg:rgba(245, 158, 11, 0.12);--callout-warn-border:rgba(251, 191, 36, 0.55);--callout-danger-bg:rgba(239, 68, 68, 0.12);--callout-danger-border:rgba(248, 113, 113, 0.55);background-color:#071014;background-image:linear-gradient(180deg,rgba(7,16,20,.72),rgba(7,16,20,.9) 62%,#071014 100%),url(/images/poster1.webp);background-size:cover;background-position:50%;background-attachment:fixed;background-repeat:no-repeat;color:#f4f1ec}body:not(.animate):not(.mobile) header.header{position:sticky;top:0;z-index:60;height:64px;min-height:64px;padding:0 32px;background:rgba(7,16,20,.55);border-bottom:1px solid rgba(255,255,255,8%);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)}body:not(.animate):not(.mobile) header.header .nav{max-width:none;width:100%;height:64px}body:not(.animate):not(.mobile) header.header .nav .logo{display:flex;align-items:center;height:64px}body:not(.animate):not(.mobile) header.header .nav .logo>a{align-items:center;color:#f4f1ec;line-height:1;padding-top:5px}body:not(.animate):not(.mobile) header.header .nav .logo>a::after{align-self:center;margin-bottom:0;background:#a78bfa}body:not(.animate):not(.mobile) header.header #menu li a{color:#a1a1aa;font-size:12.5px}body:not(.animate):not(.mobile) header.header #menu li a:hover{color:#fff}body:not(.animate):not(.mobile) header.header #menu span.active{color:#f4f1ec}body:not(.animate):not(.mobile) header.header #menu span.active::after{background:#a78bfa}body:not(.animate):not(.mobile) header.header .logo-switches{display:none}body:not(.animate):not(.mobile) header.header #menu li:last-child a[href$="/search/"]{border-color:rgba(255,255,255,.12);background:rgba(8,16,20,.55);color:rgba(255,255,255,.72);backdrop-filter:blur(12px)}body:not(.animate):not(.mobile) header.header #menu li:last-child a[href$="/search/"]:hover{color:#fff;border-color:rgba(167,139,250,.5)}.content-rail{display:none;position:fixed;top:118px;left:36px;z-index:40;width:152px;padding:14px;flex-direction:column;gap:2px;border:1px solid rgba(255,255,255,9%);border-radius:14px;background:rgba(8,18,24,.52);box-shadow:0 20px 50px rgba(0,0,0,.2);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px)}.content-rail a{display:flex;align-items:center;min-height:32px;padding:0 10px;border-radius:8px;font-size:12px;color:rgba(255,255,255,.5);text-decoration:none;transition:background .2s ease,color .2s ease}.content-rail a:hover{background:rgba(255,255,255,4%);color:#fff}.content-rail a.is-active{background:rgba(167,139,250,.12);color:#c4b5fd}.content-rail a.is-active::before{content:"";width:4px;height:4px;margin-right:8px;border-radius:50%;background:#a78bfa}body:not(.animate):not(.mobile) main.main{width:calc(100% - 360px);max-width:980px;margin:0 0 0 320px;padding:42px 0 64px}.page-header,.post-header{margin:0 0 26px}.content-page-header .breadcrumbs{margin-bottom:14px;font-size:11px;color:rgba(255,255,255,.36)}.content-page-header .breadcrumbs a{font-size:11px;color:rgba(255,255,255,.55);text-decoration:none}.content-page-header .breadcrumbs a:hover{color:#c4b5fd}.content-page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:20px}.content-kicker{margin:0 0 8px;font-family:var(--font-mono);font-size:9.5px;letter-spacing:.18em;color:#a78bfa}.content-page-head h1{margin:0;font-size:40px;line-height:1.1;letter-spacing:-.03em;color:#fff}.content-count{flex:none;padding-bottom:6px;font-family:var(--font-mono);font-size:11px;color:rgba(255,255,255,.36)}.content-subtitle{max-width:620px;margin:14px 0 0;font-size:12.5px;line-height:1.7;color:rgba(255,255,255,.42)}.content-layout{display:grid;grid-template-columns:154px minmax(0,1fr);align-items:start;gap:46px;margin-top:30px}.content-filter{position:sticky;top:92px}.filter-group+.filter-group{margin-top:22px}.filter-label{margin:0 0 8px;font-size:9.5px;letter-spacing:.14em;color:rgba(255,255,255,.32)}.filter-link{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:26px;padding:2px 0;font-size:11.5px;color:rgba(255,255,255,.52);text-decoration:none}.filter-link span{font-family:var(--font-mono);font-size:9px;color:rgba(255,255,255,.26)}.filter-link:hover,.filter-link.is-active{color:#c4b5fd}.filter-link.is-active span{color:#a78bfa}.content-year{margin:0 0 4px;padding:10px 0 6px;font-family:var(--font-mono);font-size:10px;letter-spacing:.1em;color:rgba(255,255,255,.32)}.content-year.pinned-label{color:#c4b5fd}.pinned-group{margin-bottom:8px}.content-row.is-pinned .content-row-title{color:#f4f1ec}.row-badge{display:inline-flex;align-items:center;height:17px;margin-right:7px;padding:0 5px;border-radius:4px;font-family:var(--font-mono);font-size:8px;letter-spacing:.06em;vertical-align:1px}.row-badge.pinned{border:1px solid rgba(167,139,250,.35);background:rgba(124,58,237,.1);color:#c4b5fd}.row-badge.new{background:#7c3aed;color:#fff}.content-row{display:grid;grid-template-columns:48px minmax(0,1fr)auto auto;align-items:center;gap:10px;min-height:52px;padding:0;border-bottom:1px solid rgba(255,255,255,.075);text-decoration:none}.content-row time{font-family:var(--font-mono);font-size:10.5px;color:rgba(255,255,255,.34)}.content-row-title{overflow:hidden;font-size:14px;color:rgba(255,255,255,.84);white-space:nowrap;text-overflow:ellipsis;transition:color .2s ease}.content-row-cat{padding:2px 7px;border:1px solid rgba(255,255,255,.1);border-radius:999px;font-size:9px;color:rgba(255,255,255,.4);white-space:nowrap}.content-row-time{width:42px;text-align:right;font-family:var(--font-mono);font-size:9px;color:rgba(255,255,255,.26)}.content-row:hover .content-row-title{color:#c4b5fd}.content-row:hover time{color:rgba(255,255,255,.6)}.content-pagination{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:26px;padding-top:16px;border-top:1px solid rgba(255,255,255,8%);font-size:11px;color:rgba(255,255,255,.4)}.content-pagination a{color:#c4b5fd;text-decoration:none}.content-pagination a:hover{color:#fff}.pagination-status{font-family:var(--font-mono);font-size:10px;color:rgba(255,255,255,.3)}.archive-timeline{margin-top:30px}.archive-year+.archive-year{margin-top:34px}.archive-year-head{display:flex;align-items:baseline;gap:12px;margin-bottom:10px}.archive-year-head h2{margin:0;font-family:var(--font-mono);font-size:14px;font-weight:500;color:#f4f1ec}.archive-year-head span{font-family:var(--font-mono);font-size:9.5px;color:rgba(255,255,255,.32)}.archive-line{position:relative;padding-left:18px}.archive-line::before{content:"";position:absolute;top:0;bottom:0;left:3px;width:1px;background:rgba(255,255,255,.1)}.archive-item{position:relative;display:grid;grid-template-columns:44px minmax(0,1fr)auto auto;align-items:center;gap:10px;min-height:44px;border-bottom:1px solid rgba(255,255,255,6%);text-decoration:none}.archive-dot{position:absolute;left:-18px;top:50%;width:7px;height:7px;margin-top:-3px;border-radius:50%;background:#a78bfa;box-shadow:0 0 0 4px rgba(124,58,237,.16)}.archive-item time{font-family:var(--font-mono);font-size:10px;color:rgba(255,255,255,.32)}.archive-title{overflow:hidden;font-size:13px;color:rgba(255,255,255,.82);white-space:nowrap;text-overflow:ellipsis}.archive-cat{padding:2px 7px;border:1px solid rgba(255,255,255,.1);border-radius:999px;font-size:9px;color:rgba(255,255,255,.4)}.archive-time{width:40px;text-align:right;font-family:var(--font-mono);font-size:9px;color:rgba(255,255,255,.25)}.archive-item:hover .archive-title{color:#c4b5fd}.term-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:30px}.term-card{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:68px;padding:14px 16px;border:1px solid rgba(255,255,255,9%);border-radius:12px;background:rgba(20,32,39,.42);text-decoration:none;transition:border-color .2s ease,background .2s ease}.term-card:hover{border-color:rgba(167,139,250,.4);background:rgba(124,58,237,8%)}.term-name{overflow:hidden;font-size:13.5px;color:rgba(255,255,255,.84);white-space:nowrap;text-overflow:ellipsis}.term-count{flex:none;font-family:var(--font-mono);font-size:10px;color:#a78bfa}.term-content{margin-top:28px}.post-single{margin-top:22px;padding:36px 40px 32px;border:1px solid rgba(255,255,255,9%);border-radius:16px;background:rgba(10,20,26,.84);box-shadow:0 28px 70px rgba(0,0,0,.26);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px)}.post-single .post-header{margin:0 0 26px;padding-bottom:20px;border-bottom:1px solid rgba(255,255,255,8%)}.post-single .post-title{margin:8px 0 0;font-size:34px;line-height:1.3;color:#fff}.post-single .post-meta,.post-single .breadcrumbs{color:rgba(255,255,255,.4)}.post-single .post-content{color:#d4d4d8;font-size:15px;line-height:1.9}.post-single .post-content>h1:first-child{display:none}.post-single .post-content h2{border-left-color:#a78bfa}.post-single .post-tags a{border:1px solid var(--border-subtle);background:rgba(255,255,255,.025);color:var(--color-muted)}.post-single .post-tags a:hover{border-color:rgba(255,255,255,.18);background:rgba(255,255,255,.045);color:#f4f1ec}.post-single .post-footer{border-top-color:rgba(255,255,255,8%)}.post-single .toc{border-color:rgba(255,255,255,.1);background:rgba(255,255,255,3%)}.post-entry{border-color:rgba(255,255,255,9%);background:rgba(20,32,39,.44)}.post-entry:hover{border-color:rgba(167,139,250,.35)}.post-entry .entry-header h2,.post-entry .entry-content{color:rgba(255,255,255,.84)}.post-entry .entry-content,.post-entry .entry-footer{color:rgba(255,255,255,.42)}.search-page .search-input{border-color:rgba(255,255,255,.12);background:rgba(20,32,39,.5);color:#f4f1ec}body:not(.animate):not(.mobile) .footer{max-width:980px;margin:0 0 0 320px;padding:22px 0 30px;border-top:1px solid rgba(255,255,255,8%);color:rgba(255,255,255,.32)}body:not(.animate):not(.mobile) .footer a{color:rgba(255,255,255,.36)}body:not(.animate):not(.mobile) .footer a:hover{color:#c4b5fd}}@media(min-width:1100px){body:not(.animate):not(.mobile) header.header #menu li:not(:last-child){display:none}.content-rail{display:flex}}@media(min-width:900px) and (max-width:1099px){.content-rail{display:none}body:not(.animate):not(.mobile) main.main{width:calc(100% - 48px);max-width:860px;margin:0 auto;padding:32px 0 50px}body:not(.animate):not(.mobile) .footer{max-width:860px;margin:0 auto;padding:20px 0 28px}.term-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:899px){.content-page-header .breadcrumbs{margin-bottom:10px;font-size:12px}.content-page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px}.content-kicker{margin:0 0 6px;font-family:var(--font-mono);font-size:10px;letter-spacing:.16em;color:var(--theme-1)}.content-page-head h1{margin:0;font-size:30px;line-height:1.15}.content-count{padding-bottom:4px;font-family:var(--font-mono);font-size:10.5px;color:var(--secondary)}.content-subtitle{margin:10px 0 0;font-size:12.5px;line-height:1.7;color:var(--secondary)}.content-layout{display:block;margin-top:18px}.content-filter{display:flex;flex-wrap:wrap;gap:14px 22px;margin:0 0 20px;padding:14px 0;border-top:1px solid var(--border);border-bottom:1px solid var(--border)}.filter-group{min-width:90px}.filter-group+.filter-group{margin-top:0}.filter-label{margin:0 0 5px;font-size:9px;letter-spacing:.12em;color:var(--secondary)}.filter-link{display:inline-flex;align-items:center;gap:6px;min-height:22px;margin:0 10px 0 0;font-size:11.5px;color:var(--secondary)}.filter-link span{font-family:var(--font-mono);font-size:8.5px;color:var(--secondary)}.filter-link.is-active{color:var(--theme-1)}.content-year{margin:14px 0 2px;font-family:var(--font-mono);font-size:9.5px;letter-spacing:.08em;color:var(--secondary)}.content-year.pinned-label{color:var(--theme-1)}.pinned-group{margin-bottom:8px}.row-badge{display:inline-flex;align-items:center;height:16px;margin-right:5px;padding:0 4px;border-radius:4px;font-family:var(--font-mono);font-size:7.5px;letter-spacing:.04em;vertical-align:1px}.row-badge.pinned{border:1px solid var(--border);color:var(--theme-1)}.row-badge.new{background:var(--theme-1);color:#fff}.content-row{display:grid;grid-template-columns:42px minmax(0,1fr)auto;align-items:center;gap:8px;min-height:44px;border-bottom:1px solid var(--border);text-decoration:none}.content-row time{font-family:var(--font-mono);font-size:9.5px;color:var(--secondary)}.content-row-title{overflow:hidden;font-size:13px;color:var(--primary);white-space:nowrap;text-overflow:ellipsis}.content-row-cat{display:none}.content-row-time{width:36px;text-align:right;font-family:var(--font-mono);font-size:8.5px;color:var(--secondary)}.content-pagination{display:flex;align-items:center;justify-content:space-between;margin-top:18px;padding-top:12px;border-top:1px solid var(--border);font-size:11px;color:var(--secondary)}.content-pagination a{color:var(--theme-1);text-decoration:none}.pagination-status{font-family:var(--font-mono);font-size:9.5px}.archive-timeline{margin-top:18px}.archive-year+.archive-year{margin-top:22px}.archive-year-head{display:flex;align-items:baseline;gap:10px;margin-bottom:6px}.archive-year-head h2{margin:0;font-family:var(--font-mono);font-size:13px;font-weight:500}.archive-year-head span{font-family:var(--font-mono);font-size:9px;color:var(--secondary)}.archive-line{position:relative;padding-left:14px}.archive-line::before{content:"";position:absolute;top:0;bottom:0;left:2px;width:1px;background:var(--border)}.archive-item{position:relative;display:grid;grid-template-columns:38px minmax(0,1fr)auto;align-items:center;gap:8px;min-height:38px;border-bottom:1px solid var(--border);text-decoration:none}.archive-dot{position:absolute;left:-14px;top:50%;width:6px;height:6px;margin-top:-3px;border-radius:50%;background:var(--theme-1)}.archive-item time{font-family:var(--font-mono);font-size:9.5px;color:var(--secondary)}.archive-title{overflow:hidden;font-size:12.5px;color:var(--primary);white-space:nowrap;text-overflow:ellipsis}.archive-cat,.archive-time{display:none}.term-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:18px}.term-card{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:52px;padding:10px 12px;border:1px solid var(--border);border-radius:8px;background:var(--entry);text-decoration:none}.term-name{overflow:hidden;font-size:12.5px;color:var(--primary);white-space:nowrap;text-overflow:ellipsis}.term-count{flex:none;font-family:var(--font-mono);font-size:9px;color:var(--theme-1)}}@media(max-width:560px){.term-grid{grid-template-columns:minmax(0,1fr)}}@media(min-width:900px){.posts-index .content-page-head h1{font-size:44px}.posts-index .content-count{font-size:12px}.posts-index .content-kicker{font-size:10.5px}.posts-index .content-subtitle{font-size:13.75px}.posts-index .filter-label{font-size:10.5px}.posts-index .filter-link{font-size:12.5px}.posts-index .filter-link span{font-size:10px}.posts-index .content-year{font-size:11px}.posts-index .content-row{min-height:57px}.posts-index .content-row time{font-size:11.5px}.posts-index .content-row-title{font-size:15.5px}.posts-index .content-row-cat{font-size:10px}.posts-index .content-row-time{font-size:10px}.posts-index .content-pagination{font-size:12px}.posts-index .pagination-status{font-size:11px}.posts-index .row-badge{font-size:8.8px}}@media(max-width:899px){.posts-index .content-page-head h1{font-size:33px}.posts-index .content-count{font-size:11.5px}.posts-index .content-kicker{font-size:10px}.posts-index .content-subtitle{font-size:13.75px}.posts-index .filter-label{font-size:10px}.posts-index .filter-link{font-size:12.5px}.posts-index .content-year{font-size:10.5px}.posts-index .content-row{min-height:48px}.posts-index .content-row time{font-size:10.5px}.posts-index .content-row-title{font-size:14.3px}.posts-index .content-row-time{font-size:9.5px}.posts-index .content-pagination{font-size:12px}.posts-index .pagination-status{font-size:10.5px}.posts-index .row-badge{font-size:8.2px}}@media(min-width:900px){.post-single{max-width:900px;margin:22px auto 0;padding:40px 52px 48px}.post-single .post-header{max-width:var(--measure);margin:0 auto 26px;padding-bottom:22px}.post-single .post-title{margin:8px 0 0;font-size:36px;line-height:1.32;letter-spacing:-.02em}.post-single .post-description{max-width:700px;font-size:14.5px;line-height:1.75}.post-single .post-meta,.post-single .breadcrumbs{font-size:11.5px;font-variant-numeric:tabular-nums;color:rgba(255,255,255,.42)}.post-single .post-content{max-width:var(--measure);margin:0 auto;color:#d6d3d1;font-family:var(--font-sans);font-size:var(--type-body);line-height:var(--line-body);letter-spacing:.01em;text-align:left;text-rendering:optimizeLegibility;text-spacing-trim:trim-start;text-autospace:normal;hanging-punctuation:allow-end;text-wrap:pretty}.post-single .post-content>h1:first-child{display:none}.post-single .post-content p,.post-single .post-content ul,.post-single .post-content ol,.post-single .post-content dl,.post-single .post-content figure{margin:0 0 var(--space-6)}.post-single .post-content p{text-align:left}.post-single .post-content h2{margin:var(--space-12)0 var(--space-4);padding-left:10px;border-left:3px solid #a78bfa;font-size:var(--type-h2);text-wrap:balance;line-height:1.5;letter-spacing:-.01em}.post-single .post-content h3{margin:var(--space-8)0 var(--space-3);font-size:var(--type-h3);text-wrap:balance;line-height:1.55}.post-single .post-content h4{margin:var(--space-6)0 var(--space-2);font-size:var(--type-h4);text-wrap:balance}.post-single .post-content a{color:#c4b5fd;text-decoration:underline;text-decoration-color:rgba(196,181,253,.4);text-underline-offset:3px}.post-single .post-content a:hover{color:#fff;text-decoration-color:initial}.post-single .post-content strong{color:#fff;font-weight:600}article.post-single .post-content>blockquote{margin:var(--space-6)0;padding:13px 18px 15px;border:1px solid rgba(255,255,255,.1);border-radius:10px;background:rgba(255,255,255,3%);box-shadow:none;color:rgba(255,255,255,.78);font-size:15px;line-height:1.85}article.post-single .post-content>blockquote::before{content:"NOTE";display:block;margin:0 0 6px;font-family:var(--font-mono);font-size:9.5px;letter-spacing:.16em;color:rgba(255,255,255,.32)}article.post-single .post-content>blockquote p{margin-bottom:12px;line-height:1.85}article.post-single .post-content>blockquote p:last-child{margin-bottom:0}article.post-single .post-content blockquote blockquote{margin:12px 0;padding:0 0 0 14px;border:0;border-left:2px solid rgba(255,255,255,.12);border-radius:0;background:0 0;box-shadow:none;color:rgba(255,255,255,.62);font-size:14.5px}article.post-single .post-content blockquote blockquote p{line-height:1.8}.post-single .post-content hr{margin:var(--space-12)0;border:0;border-top:1px solid rgba(255,255,255,.1)}.post-single .post-content img{max-width:100%;height:auto;border:1px solid rgba(255,255,255,8%);border-radius:8px}.post-single .post-content figure>figcaption{margin-top:8px;font-size:12px;color:rgba(255,255,255,.4);text-align:center}.post-single .post-content table{display:block;width:100%;max-width:100%;margin:var(--space-6)0;overflow-x:auto;border-collapse:collapse;font-size:13.5px;line-height:1.6}.post-single .post-content table th,.post-single .post-content table td{padding:8px 12px;border:1px solid rgba(255,255,255,.1)}.post-single .post-content table th{background:rgba(255,255,255,5%);color:#fff;font-weight:600}.post-single .post-content pre{max-width:100%;overflow-x:auto;border:1px solid rgba(255,255,255,9%);border-radius:10px;background:#091116!important}.post-single .post-content pre code{font-family:var(--font-mono);font-size:13.5px;line-height:1.7}.post-single .post-content .highlight{border-radius:10px;border:1px solid rgba(255,255,255,9%);background:#091116}.post-single .post-content .highlight pre{border:0}.post-single .post-content code{font-family:var(--font-mono);font-size:.88em}.post-single .post-tags a{font-size:11px;line-height:28px;padding-inline:11px}.post-single .paginav{border-radius:10px;border:1px solid rgba(255,255,255,9%);background:rgba(20,32,39,.45)}.post-single .comments{max-width:var(--measure);margin:32px auto 0}.post-single .toc{max-width:var(--measure);margin:0 auto 26px;padding:4px;border:1px solid rgba(255,255,255,9%);border-radius:10px;background:rgba(20,32,39,.45)}.post-single .toc-toggle{display:flex;align-items:center;gap:8px;width:100%;padding:8px 10px;border:0;background:0 0;color:rgba(255,255,255,.6);font-family:inherit;font-size:12px;text-align:left;cursor:pointer}.post-single .toc-toggle:hover{color:#c4b5fd}.post-single .toc-panel{border-color:rgba(255,255,255,.1);background:rgba(10,20,26,.97);color:#d6d3d1}.post-single .toc-panel a{color:rgba(255,255,255,.6)}.post-single .toc-panel a:hover{color:#c4b5fd}}.about-hero{display:grid;grid-template-columns:80px minmax(0,1fr);align-items:center;gap:16px 20px;max-width:var(--measure);margin:0 auto 28px;padding-bottom:24px;border-bottom:1px solid var(--border)}.about-avatar{width:80px;height:80px;border:1px solid var(--border);border-radius:50%;object-fit:cover}.about-kicker{margin:0 0 5px;font-family:var(--font-mono);font-size:9px;letter-spacing:.16em;color:var(--theme-1)}.about-id h1{display:flex;align-items:baseline;margin:0;font-size:34px;line-height:1;letter-spacing:-.03em;color:var(--primary)}.about-id h1 .dot{color:var(--theme-1)}.about-handle{margin:6px 0 0;font-family:var(--font-mono);font-size:10px;color:var(--secondary)}.about-bio{grid-column:1/-1;margin:2px 0 0;font-size:14px;line-height:1.75;color:var(--secondary)}.about-stats{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:22px;font-size:11px;color:var(--secondary)}.about-stats b{margin-right:4px;font-size:13px;font-weight:600;color:var(--primary)}.about-socials{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:8px}.about-socials a{display:inline-flex;align-items:center;height:27px;padding:0 10px;border:1px solid var(--border);border-radius:999px;font-size:11px;color:var(--secondary);text-decoration:none}.about-socials a:hover{border-color:var(--theme-1);color:var(--theme-1)}@media(min-width:900px){.about-hero,.post-single .post-header,.post-single .post-content,.post-single .toc{width:760px}.about-hero{margin-bottom:30px}.about-id h1{font-size:38px}.about-bio{font-size:14.5px}}@media(max-width:560px){.about-hero{grid-template-columns:64px minmax(0,1fr);gap:14px}.about-avatar{width:64px;height:64px}.about-id h1{font-size:28px}}@media(min-width:1520px){.post-single .toc{position:fixed;top:50%;right:26px;transform:translateY(-50%);z-index:60;display:flex;flex-direction:column;width:400px;max-height:calc(100vh - 161px);margin:0;padding:8px;overflow:hidden;border:1px solid rgba(255,255,255,.1);border-radius:12px;background:rgba(12,24,30,.82);box-shadow:0 18px 50px rgba(0,0,0,.28);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px)}.post-single .toc-toggle{display:none}.post-single .toc-panel{display:flex!important;flex-direction:column;position:static!important;inset:auto!important;width:100%!important;max-width:none;max-height:calc(100vh - 186px);padding:0;overflow:hidden;border:0;background:0 0;opacity:1!important;visibility:visible!important;transform:none!important}.post-single .toc-panel-header{display:flex;align-items:center;justify-content:space-between;padding:2px 4px 9px;border-bottom:1px solid rgba(255,255,255,9%)}.post-single .toc-panel-title{font-family:var(--font-mono);font-size:10px;letter-spacing:.16em;color:#c4b5fd;text-transform:uppercase}.post-single .toc-close{display:none}.post-single .toc-panel .inner{margin:0;padding:9px 2px 2px;overflow-y:auto;max-height:calc(100vh - 222px)}.post-single .toc-panel .inner>ul{padding-left:0}.post-single .toc-panel .inner ul{margin:0;padding-left:13px}.post-single .toc-panel .inner li{margin:2px 0}.post-single .toc-panel .inner a{display:block;padding:4px 6px;border-radius:5px;font-size:13px;line-height:1.65;color:rgba(255,255,255,.52);text-decoration:none;transition:color .15s ease,background .15s ease}.post-single .toc-panel .inner a:hover,.post-single .toc-panel .inner a.active,.post-single .toc-panel .inner .active>a{color:#c4b5fd;background:rgba(124,58,237,.1)}.post-single .toc-panel .inner a.active{box-shadow:inset 2px 0 #A78BFA}}@media(max-width:1519px){.post-single .toc{display:none}}.article-toc .toc{display:none}@media(min-width:1680px){.article-toc .toc{position:fixed;top:129px;right:0;transform:none;z-index:900;display:flex;flex-direction:column;width:400px;max-height:calc(100vh - 161px);margin:0;padding:8px;overflow:hidden;border:1px solid rgba(255,255,255,.1);border-radius:12px 0 0 12px;background:rgba(12,24,30,.86);box-shadow:0 18px 50px rgba(0,0,0,.28);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px)}.article-toc .toc-toggle{display:none}.article-toc .toc-panel{display:flex!important;flex-direction:column;position:static!important;inset:auto!important;width:100%!important;max-width:none;max-height:calc(100vh - 186px);padding:0;overflow:hidden;border:0;background:0 0;opacity:1!important;visibility:visible!important;transform:none!important}.article-toc .toc-panel-header{display:flex;align-items:center;justify-content:space-between;padding:2px 4px 9px;border-bottom:1px solid rgba(255,255,255,9%)}.article-toc .toc-panel-title{font-family:var(--font-mono);font-size:10px;letter-spacing:.16em;color:#c4b5fd;text-transform:uppercase}.article-toc .toc-close{display:none}.article-toc .toc-panel .inner{margin:0;padding:9px 2px 2px;overflow-y:auto;max-height:calc(100vh - 222px)}.article-toc .toc-panel .inner>ul{padding-left:0}.article-toc .toc-panel .inner ul{margin:0;padding-left:13px}.article-toc .toc-panel .inner li{margin:2px 0}.article-toc .toc-panel .inner a{display:block;padding:4px 6px;border-radius:5px;font-size:13px;line-height:1.65;color:rgba(255,255,255,.52);text-decoration:none;transition:color .15s ease,background .15s ease}.article-toc .toc-panel .inner a:hover,.article-toc .toc-panel .inner a.active,.article-toc .toc-panel .inner .active>a{color:#c4b5fd;background:rgba(124,58,237,.1)}.article-toc .toc-panel .inner a.active{box-shadow:inset 2px 0 #A78BFA}}.post-back{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;margin:0 0 14px;border:1px solid var(--border);border-radius:8px;color:var(--secondary);text-decoration:none;transition:color .18s ease,border-color .18s ease,background .18s ease}.post-back:hover{color:var(--primary);border-color:var(--theme-1);background:var(--entry)}.post-back svg{width:16px;height:16px}.md-figure{margin:1.6em 0;text-align:center}.md-figure img{display:block;margin:0 auto}.post-single .post-content .md-figure figcaption{margin-top:8px;font-size:12px;color:rgba(255,255,255,.4);text-align:center}.md-table-wrap{margin:1.5em 0;overflow-x:auto;border:1px solid rgba(255,255,255,.1);border-radius:10px}.post-single .post-content .md-table-wrap table{display:table;width:100%;margin:0;border:0;border-radius:0}.post-single .post-content .md-table-wrap table th,.post-single .post-content .md-table-wrap table td{border-left:0;border-right:0}.code-block{margin:var(--space-6)0;overflow:hidden;border:1px solid var(--border-subtle);border-radius:10px;background:var(--color-code-bg)}.code-head{display:flex;align-items:center;justify-content:space-between;padding:7px 12px;border-bottom:1px solid var(--border-subtle);background:rgba(255,255,255,.025)}.code-lang{font-family:var(--font-mono);font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:rgba(255,255,255,.38)}.code-copy{padding:3px 8px;border:1px solid var(--border-subtle);border-radius:5px;background:0 0;color:var(--color-muted);font-family:var(--font-sans);font-size:10.5px;cursor:pointer}.code-copy:hover{border-color:var(--color-accent);color:var(--color-accent)}.code-body .highlight{margin:0;border:0;border-radius:0;background:0 0}.code-body pre{margin:0;border:0;border-radius:0}.callout{margin:var(--space-6)0;padding:14px 18px;border-left:3px solid var(--color-accent);border-radius:0 10px 10px 0;background:rgba(124,58,237,8%)}.callout-label{margin-bottom:6px;font-family:var(--font-mono);font-size:9.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--color-accent)}.callout p:last-child{margin-bottom:0}.callout-tip{border-color:#34d399;background:rgba(52,211,153,7%)}.callout-tip .callout-label{color:#6ee7b7}.callout-warning{border-color:#fbbf24;background:rgba(251,191,36,7%)}.callout-warning .callout-label{color:#fcd34d}.callout-important,.callout-caution{border-color:#fb7185;background:rgba(251,113,133,7%)}.callout-important .callout-label,.callout-caution .callout-label{color:#fda4af}.post-single .post-content details{margin:var(--space-6)0;padding:12px 16px;border:1px solid var(--border-subtle);border-radius:10px;background:rgba(255,255,255,2%)}.post-single .post-content details summary{cursor:pointer;color:var(--color-body);font-weight:600}.post-single .post-content details[open] summary{margin-bottom:10px}.post-single .post-content sup a{color:var(--color-accent);text-decoration:none}.post-single .post-content .footnotes{margin-top:var(--space-8);padding-top:var(--space-4);border-top:1px solid var(--border-subtle);font-size:13.5px;color:var(--color-muted)}.post-single .post-content .footnotes hr{display:none}#waline{--waline-font-size:14px;--waline-theme-color:#A78BFA;--waline-active-color:#C4B5FD;--waline-color:#D6D3D1;--waline-bg-color:rgba(20, 32, 39, 0.55);--waline-bg-color-light:rgba(255, 255, 255, 0.04);--waline-bg-color-hover:rgba(255, 255, 255, 0.06);--waline-border-color:rgba(255, 255, 255, 0.1);--waline-disable-bg-color:rgba(255, 255, 255, 0.04);--waline-disable-color:rgba(255, 255, 255, 0.3);--waline-light-grey:#A1A1AA;--waline-dark-grey:#D6D3D1;--waline-info-bg-color:rgba(255, 255, 255, 0.04);--waline-info-color:#A1A1AA;--waline-badge-color:#A78BFA;--waline-bq-color:rgba(167, 139, 250, 0.2);--waline-warning-color:#FCD34D;--waline-warning-bg-color:rgba(251, 191, 36, 0.08);--waline-code-bg-color:#091116;--waline-border:1px solid var(--waline-border-color);--waline-box-shadow:none;margin-top:32px;padding-top:24px;border-top:1px solid rgba(255,255,255,8%)}#waline .wl-panel{background:rgba(12,24,30,.5);border-radius:12px;backdrop-filter:blur(12px)}#waline .wl-header{border-bottom-color:rgba(255,255,255,8%)}#waline .wl-header label{color:#a1a1aa}#waline .wl-header input{color:#d6d3d1}#waline .wl-editor,#waline .wl-input{color:#d6d3d1}#waline .wl-editor:focus,#waline .wl-input:focus{background:rgba(255,255,255,3%)}#waline .wl-btn.primary{border-color:#7c3aed;background:#7c3aed;color:#fff}#waline .wl-btn.primary:hover{border-color:#a78bfa;background:#a78bfa}#waline .wl-card{border-bottom-color:rgba(255,255,255,8%)}#waline .wl-card .wl-nick{color:#f4f1ec}#waline .wl-card .wl-time,#waline .wl-card .wl-meta{color:#a1a1aa}#waline .wl-card .wl-content{color:#d6d3d1;line-height:1.85}#waline .wl-card .wl-content a{color:#c4b5fd}#waline .wl-card .wl-quote{border-inline-start-color:rgba(167,139,250,.2)}#waline .wl-empty,#waline .wl-power{color:#a1a1aa}.waline-status{margin:16px 0;padding:14px 16px;border:1px solid rgba(251,191,36,.22);border-radius:10px;background:rgba(251,191,36,6%);color:#fcd34d;font-size:13px;line-height:1.7}.comments-wrap{margin-top:40px}.comments-head{display:flex;align-items:baseline;justify-content:space-between;margin:0 0 18px;padding-bottom:12px;border-bottom:1px solid var(--border-subtle)}.comments-title{margin:0;font-size:20px;font-weight:600;letter-spacing:-.01em;color:#f4f1ec}.comments-note{font-family:var(--font-mono);font-size:9px;letter-spacing:.16em;color:var(--color-muted)}#waline{margin-top:0;padding-top:0;border-top:0}#waline .wl-panel{border:1px solid var(--border-subtle);border-radius:12px;background:rgba(12,24,30,.5);box-shadow:none;backdrop-filter:blur(12px)}#waline .wl-header{border-bottom:1px solid var(--border-subtle);background:0 0}#waline .wl-header label{color:var(--color-muted)}#waline .wl-header input{color:var(--color-body)}#waline .wl-editor,#waline .wl-input{color:var(--color-body);font-family:var(--font-sans)}#waline .wl-editor{width:calc(100% - 2em);min-height:9em;margin:12px 1em;padding:10px 12px;border:1px solid var(--border-subtle);border-radius:8px;background:rgba(255,255,255,2%)}#waline .wl-editor:focus{border-color:rgba(167,139,250,.35);background:rgba(255,255,255,4%)}#waline .wl-footer{margin:8px 12px}#waline .wl-btn{border-radius:6px;font-family:var(--font-sans)}#waline .wl-btn.primary{border-color:#7c3aed;background:#7c3aed}#waline .wl-btn.primary:hover{border-color:#a78bfa;background:#a78bfa}#waline .wl-action{color:var(--color-muted)}#waline .wl-action:hover{color:var(--color-accent)}#waline .wl-card-item{padding:8px 0}#waline .wl-card{border-bottom:1px dashed var(--border-subtle)}#waline .wl-card .wl-nick{color:#f4f1ec}#waline .wl-card .wl-time{color:var(--color-muted)}#waline .wl-card .wl-content{color:var(--color-body);font-size:13.5px;line-height:1.85}#waline .wl-card .wl-content a{color:#c4b5fd}#waline .wl-card .wl-content code{background:rgba(255,255,255,5%);color:var(--color-body)}#waline .wl-card .wl-content pre{border:1px solid var(--border-subtle);border-radius:8px;background:var(--color-code-bg)}#waline .wl-card .wl-quote{border-inline-start:1px solid rgba(167,139,250,.25)}#waline .wl-empty,#waline .wl-power{color:var(--color-muted)}#waline .wl-loading svg{color:var(--color-accent)}#waline .wl-close{color:var(--color-muted)}#waline .wl-emoji-popup,#waline .wl-gif-popup{border:1px solid var(--border-subtle);border-radius:8px;background:rgba(12,24,30,.96)}#waline .wl-meta-head{padding:8px 0}#waline .wl-sort li{color:var(--color-muted)}#waline .wl-sort li.active{color:var(--color-accent)}@media(max-width:720px){.comments-title{font-size:18px}#waline{--waline-font-size:13.5px}#waline .wl-card .wl-content{font-size:13px}}.post-single .post-tags ul{list-style:none;padding-left:0}.post-single .post-tags li{list-style:none;color:var(--color-muted)}.post-single .post-tags li::marker{content:"";color:var(--color-muted)}.post-single .post-tags a,.post-single .post-tags a:visited{border:1px solid var(--border-subtle)!important;background:rgba(255,255,255,.025)!important;color:var(--color-muted)!important}.post-single .post-tags a:hover,.post-single .post-tags a:focus{border-color:rgba(255,255,255,.18)!important;background:rgba(255,255,255,.045)!important;color:#f4f1ec!important}.post-single .post-content ul li::marker,.post-single .post-content ol li::marker{color:var(--color-muted)!important}.error-page{position:relative;display:grid;grid-template-columns:minmax(0,1fr);gap:20px;margin-top:22px;padding:30px 22px 28px;overflow:hidden;border:1px solid var(--border);border-radius:16px;background:var(--entry);box-shadow:0 10px 30px rgba(0,0,0,6%)}.error-page-code{position:relative;display:flex;align-items:center}.error-page-code span{font-family:var(--font-mono);font-size:clamp(88px,22vw,128px);font-weight:400;font-variant-numeric:tabular-nums;line-height:.8;letter-spacing:-.09em;color:var(--theme-1)}.error-kicker{margin:0 0 10px;font-family:var(--font-mono);font-size:10px;letter-spacing:.16em;color:var(--theme-1)}.error-title{margin:0;font-size:clamp(26px,5vw,36px);line-height:1.22;letter-spacing:-.035em;color:var(--primary)}.error-copy{max-width:420px;margin:14px 0 0;font-size:13.5px;line-height:1.8;color:var(--secondary);text-wrap:pretty}.error-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:24px}.error-action{display:inline-flex;align-items:center;justify-content:center;min-height:40px;padding:0 16px;border:1px solid var(--border);border-radius:999px;background:0 0;color:var(--primary);font-size:12.5px;font-weight:550;text-decoration:none;transition:border-color .2s ease,background .2s ease,color .2s ease,transform .2s ease}.error-action:hover{border-color:var(--theme-1);color:var(--theme-1)}.error-action:active{transform:translateY(1px)}.error-action-primary{border-color:var(--theme-1);background:var(--theme-1);color:#fff}.error-action-primary:hover{border-color:var(--theme-1);background:#8b5cf6;color:#fff}.error-action:focus-visible{outline:2px solid var(--theme-1);outline-offset:3px}.error-links{display:flex;flex-wrap:wrap;align-items:baseline;gap:8px 16px;margin-top:28px;padding-top:16px;border-top:1px solid var(--border)}.error-links-label{font-family:var(--font-mono);font-size:9.5px;letter-spacing:.08em;color:var(--secondary)}.error-links a{color:var(--theme-1);font-size:12px;text-decoration:none}.error-links a:hover{color:var(--primary)}@media(min-width:900px){.error-page{grid-template-columns:minmax(0,.9fr)minmax(0,1.1fr);align-items:center;gap:48px;min-height:520px;padding:46px 48px;border-color:rgba(255,255,255,9%);border-radius:20px;background:radial-gradient(520px 300px at 12% 50%,rgba(124,58,237,.18),transparent 68%),rgba(10,20,26,.84);box-shadow:0 28px 70px rgba(0,0,0,.26);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px)}.error-page::before{content:"";position:absolute;top:0;left:48px;width:96px;height:1px;background:linear-gradient(90deg,#A78BFA,transparent)}.error-page-code span{font-size:clamp(124px,14vw,196px);color:transparent;background:linear-gradient(160deg,#F5F3FF 4%,#C4B5FD 48%,#7C3AED 100%);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;filter:drop-shadow(0 12px 36px rgba(124,58,237,.24))}.error-kicker{color:#a78bfa}.error-title{color:#fff}.error-copy{max-width:460px;color:rgba(255,255,255,.48)}.error-action{border-color:rgba(255,255,255,.14);background:rgba(255,255,255,3%);color:rgba(255,255,255,.72)}.error-action:hover{border-color:rgba(167,139,250,.6);background:rgba(167,139,250,.1);color:#fff}.error-action-primary{border-color:#7c3aed;background:#7c3aed;color:#fff;box-shadow:0 10px 24px rgba(124,58,237,.24)}.error-action-primary:hover{border-color:#8b5cf6;background:#8b5cf6;color:#fff}.error-links{border-top-color:rgba(255,255,255,8%)}.error-links-label{color:rgba(255,255,255,.3)}.error-links a{color:#c4b5fd}.error-links a:hover{color:#fff}}@media(max-width:560px){.error-page{padding:26px 18px 24px}.error-actions{flex-direction:column;align-items:stretch}.error-action{width:100%}}.post-single .post-content h1 a.anchor,.post-single .post-content h2 a.anchor,.post-single .post-content h3 a.anchor,.post-single .post-content h4 a.anchor,.post-single .post-content h5 a.anchor,.post-single .post-content h6 a.anchor{display:none;margin-left:.35em;border-bottom:0;color:var(--color-accent);font-size:.7em;font-weight:500;text-decoration:none}.post-single .post-content h1:hover a.anchor,.post-single .post-content h2:hover a.anchor,.post-single .post-content h3:hover a.anchor,.post-single .post-content h4:hover a.anchor,.post-single .post-content h5:hover a.anchor,.post-single .post-content h6:hover a.anchor{display:inline;color:var(--color-accent);text-decoration:none}main.main>.post-entry{transition:all .25s ease-in}main.main>.post-entry:hover{-moz-box-shadow:0 3px 13px #BFBFBF;-webkit-box-shadow:0 3px 13px #BFBFBF;box-shadow:0 3px 13px #BFBFBF}.post-tags>li>a,.paginav{background:#fff}header.header .nav .logo>a{display:inline-flex;align-items:baseline;gap:0;font-size:17px;line-height:1.2;font-weight:700;letter-spacing:-.01em;text-decoration:none}header.header .nav .logo>a::after{content:"";width:6px;height:6px;margin-left:4px;margin-bottom:0;border-radius:50%;background:#7c3aed}@media(min-width:900px){body:not(.animate):not(.mobile) header.header{padding:0 58px}}body:not(.mobile) header.header .nav{max-width:none;width:100%}body:not(.mobile) header.header .nav .logo{margin:0}body:not(.mobile) header.header .nav #menu{display:flex;align-items:center;margin:0 0 0 auto}body:not(.mobile) header.header .nav #menu li{margin:0}body:not(.mobile) header.header .nav #menu li+li{margin-inline-start:34px}body:not(.mobile) header.header .nav #menu li a{position:relative;display:inline-flex;align-items:center;padding:6px 0;font-size:13px;line-height:1.6;letter-spacing:.02em;color:var(--secondary);text-decoration:none;transition:color .2s ease}body:not(.mobile) header.header .nav #menu li a:hover{color:var(--primary)}body:not(.mobile) header.header .nav #menu span{position:relative}body:not(.mobile) header.header .nav #menu span.active{color:var(--primary)}body:not(.mobile) header.header .nav #menu span.active::after{content:"";position:absolute;left:0;right:0;bottom:-3px;height:1px;background:#7c3aed}@media(min-width:700px){body:not(.mobile) header.header .nav #menu li:last-child{margin-inline-start:38px}body:not(.mobile) header.header .nav #menu li:last-child a[href$="/search/"]{height:34px;padding:0 12px;gap:8px;border:1px solid var(--border);border-radius:999px;background:var(--entry);font-size:12px;color:var(--secondary);white-space:nowrap;box-sizing:border-box;flex-shrink:0}body:not(.mobile) header.header .nav #menu li:last-child a[href$="/search/"]:hover{color:var(--primary);border-color:#a78bfa}body:not(.mobile) header.header .nav #menu li:last-child a[href$="/search/"]::before{content:"";width:13px;height:13px;display:inline-block;flex:0 0 13px;background:currentColor;-webkit-mask:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='m20 20-3.5-3.5'/%3E%3C/svg%3E")center/13px 13px no-repeat;mask:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='m20 20-3.5-3.5'/%3E%3C/svg%3E")center/13px 13px no-repeat}}.site-search[hidden]{display:none}.site-search{position:fixed;inset:0;z-index:9999}.site-search-backdrop{position:absolute;inset:0;background:rgba(3,8,12,.68);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}.site-search-panel{position:relative;width:calc(100% - 32px);max-width:680px;max-height:640px;margin:8vh auto 0;overflow:hidden;border:1px solid rgba(255,255,255,.12);border-radius:16px;background:linear-gradient(145deg,rgba(24,34,41,.94),rgba(10,19,24,.96));box-shadow:0 30px 90px rgba(0,0,0,.45);color:#f4f1ec}.site-search-head{display:flex;align-items:center;gap:10px;padding:14px 16px;border-bottom:1px solid rgba(255,255,255,8%)}.site-search-icon{display:inline-flex;flex:none;color:#a78bfa}.site-search-icon svg{width:18px;height:18px}.site-search-head input{flex:1;min-width:0;height:32px;margin:0;padding:0;border:0;outline:0;background:0 0;color:#f4f1ec;font-family:inherit;font-size:15px}.site-search-head input::placeholder{color:rgba(255,255,255,.38)}.site-search-close{flex:none;height:26px;padding:0 8px;border:1px solid rgba(255,255,255,.14);border-radius:6px;background:0 0;color:rgba(255,255,255,.5);font-family:var(--font-mono);font-size:9px;cursor:pointer}.site-search-close:hover{border-color:rgba(167,139,250,.5);color:#c4b5fd}.site-search-hint{margin:0;padding:14px 18px;font-size:11.5px;color:rgba(255,255,255,.38)}.site-search-results{max-height:60vh;margin:0;padding:6px;overflow-y:auto;list-style:none}.site-search-result{display:block;padding:11px 12px;border-radius:9px;text-decoration:none}.site-search-result:hover,.site-search-result:focus{background:rgba(167,139,250,.1)}.site-search-result-title{display:block;overflow:hidden;font-size:14px;font-weight:500;color:#f4f1ec;white-space:nowrap;text-overflow:ellipsis}.site-search-result-summary{display:block;margin-top:4px;overflow:hidden;font-size:11.5px;line-height:1.55;color:rgba(255,255,255,.42);white-space:nowrap;text-overflow:ellipsis}body.search-open{overflow:hidden}@media(max-width:699px){.site-search-panel{width:calc(100% - 24px);margin-top:5vh}.site-search-head{padding:12px}.site-search-head input{font-size:14px}}body.animate{background:#071014;color:#f4f1ec}body.animate:not(.mobile){height:100vh;overflow:hidden}.home-poster{position:fixed;inset:0;z-index:-3;background:url(/images/poster1.webp)50%/cover no-repeat;filter:blur(10px)brightness(.62)saturate(.9);transform:scale(1.08)}#liveBgBox{position:fixed;inset:0;z-index:-2;width:100%;height:100%;object-fit:cover;filter:blur(10px)brightness(.62)saturate(.9);transform:scale(1.08)}.home-scrim{position:fixed;inset:0;z-index:-1;background:radial-gradient(900px 520px at 72% 28%,rgba(124,58,237,.12),transparent 70%),linear-gradient(180deg,rgba(4,9,12,.14),rgba(4,9,12,.52) 48%,rgba(7,16,20,.9) 100%)}body.animate main.main.homepage{position:relative;z-index:2;max-width:none;height:calc(100vh - 88px);min-height:0;margin:0;padding:0;display:flex;flex-direction:column;overflow:hidden}body.animate:not(.mobile) .main .profile.home-profile{flex:1;display:flex;flex-direction:column;width:100%;min-width:0;min-height:0;text-align:left}body.animate:not(.mobile) .main .profile.home-profile>.profile_inner{display:none!important}body.animate:not(.mobile) header.header.homepage{position:relative;z-index:20;height:88px;min-height:88px;padding:0;background:0 0}body.animate:not(.mobile) header.header.homepage .nav{width:calc(100% - 48px);max-width:1356px;height:88px;margin:0 auto;padding:0;display:flex;align-items:center}body.animate:not(.mobile) header.header.homepage .nav .logo{margin:0}body.animate:not(.mobile) header.header.homepage .nav .logo>a{color:#f4f1ec;font-size:18px}body.animate:not(.mobile) header.header.homepage .nav .logo>a::after{background:#a78bfa}body.animate:not(.mobile) header.header.homepage .nav #menu{display:flex;align-items:center;margin:0 0 0 auto}body.animate:not(.mobile) header.header.homepage .nav #menu li:not(:last-child){display:none}body.animate:not(.mobile) header.header.homepage .nav #menu li:last-child{margin-inline-start:0}body.animate:not(.mobile) header.header.homepage .nav #menu li+li{margin-inline-start:0}body.animate:not(.mobile) header.header.homepage .nav #menu li a{padding:6px 0;font-size:13px;letter-spacing:.01em;color:rgba(255,255,255,.64)}body.animate:not(.mobile) header.header.homepage .nav #menu li a:hover{color:#fff}body.animate:not(.mobile) header.header.homepage .nav #menu span.active{color:#f4f1ec}body.animate:not(.mobile) header.header.homepage .nav #menu span.active::after{background:#a78bfa}body.animate:not(.mobile) header.header.homepage .logo-switches{display:none}body.animate:not(.mobile) header.header.homepage #menu li:last-child a[href$="/search/"]{display:inline-flex;align-items:center;justify-content:center;min-width:118px;height:38px;padding:0 16px;gap:9px;border-color:rgba(255,255,255,.14);background:rgba(7,16,20,.5);color:rgba(255,255,255,.78);font-size:13px;line-height:1;box-sizing:border-box;white-space:nowrap;backdrop-filter:blur(10px)}body.animate:not(.mobile) header.header.homepage #menu li:last-child a[href$="/search/"]::before{width:14px;height:14px;flex:0 0 14px}body.animate:not(.mobile) header.header.homepage #menu li:last-child a[href$="/search/"]:hover{color:#fff;border-color:rgba(167,139,250,.5)}body.animate:not(.mobile) header.header.homepage #menu li:last-child a[href$="/search/"]::after{border-color:rgba(255,255,255,.14);color:rgba(255,255,255,.55)}@media(max-width:699px){body.animate:not(.mobile) header.header.homepage #menu li:last-child a[href$="/search/"]{height:auto;padding:6px 0;border:0;border-radius:0;background:0 0;color:rgba(255,255,255,.72);backdrop-filter:none}}.home-desktop{flex:1;min-height:0;display:flex;flex-direction:column}.home-dash{flex:none;width:calc(100% - 48px);max-width:1356px;margin:0 auto;padding-top:58px;display:flex;flex-direction:column}.dash-top{display:grid;flex:0 0 331px;grid-template-columns:minmax(0,784fr)minmax(0,556fr);align-items:stretch;gap:16px}.dash-bottom{display:grid;flex:0 0 247px;grid-template-columns:minmax(0,552fr)minmax(0,440fr)minmax(0,332fr);align-items:stretch;gap:16px;margin-top:16px}.dash-card{position:relative;overflow:hidden;border:1px solid rgba(255,255,255,9%);border-radius:20px;background:linear-gradient(145deg,rgba(29,41,47,.5),rgba(12,23,29,.38));box-shadow:0 24px 60px rgba(0,0,0,.28);backdrop-filter:blur(22px);-webkit-backdrop-filter:blur(22px)}.dash-card::before{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(150deg,rgba(255,255,255,6%),transparent 34%)}.hero-card{min-height:331px;padding:32px 36px 28px;display:flex;flex-direction:column}.hero-head{display:flex;align-items:center;gap:24px}body.animate:not(.mobile) .main .profile.home-profile .hero-avatar{display:block;flex:none;width:112px;height:112px;margin:0;border:1px solid rgba(255,255,255,.2);border-radius:50%;object-fit:cover;pointer-events:auto;transform:none;box-shadow:0 8px 30px rgba(0,0,0,.25)}.hero-id{min-width:0}.hero-id h1{display:flex;align-items:baseline;margin:0;font-size:46px;line-height:1;letter-spacing:-.04em;font-weight:700;color:#fff}.hero-id h1 .dot{color:#a78bfa}.hero-id p{margin:11px 0 0;font-family:var(--font-mono);font-size:11px;letter-spacing:.06em;color:rgba(255,255,255,.42)}.hero-bio{max-width:640px;margin:18px 0 0;font-size:14px;line-height:1.8;color:rgba(255,255,255,.7)}.hero-stats{display:flex;flex-wrap:wrap;gap:26px;margin-top:16px;font-size:11.5px;color:rgba(255,255,255,.42)}.hero-stats b{margin-right:4px;font-size:14px;font-weight:600;color:rgba(255,255,255,.86)}.hero-bottom{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;margin-top:auto;padding-top:18px}.hero-socials{display:flex;flex-wrap:wrap;gap:8px;min-width:0}.hero-socials a{display:inline-flex;align-items:center;justify-content:center;height:29px;padding:0 11px;border:1px solid rgba(255,255,255,.1);border-radius:999px;background:rgba(255,255,255,.025);font-size:11.5px;color:rgba(255,255,255,.78);text-decoration:none;transition:border-color .2s ease,color .2s ease}.hero-socials a:hover{border-color:rgba(167,139,250,.5);color:#a78bfa}.hero-actions{display:flex;flex:none;align-items:center;gap:10px;margin-left:auto}.hero-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:40px;padding:0 18px;border-radius:999px;font-size:12.5px;font-weight:600;text-decoration:none}.hero-btn.primary{background:#7c3aed;color:#fff;box-shadow:0 10px 28px rgba(124,58,237,.3)}.hero-btn.primary:hover{background:#8b5cf6;color:#fff}.hero-btn.ghost{border:1px solid rgba(255,255,255,.14);color:rgba(255,255,255,.82)}.hero-btn.ghost:hover{border-color:rgba(255,255,255,.28);color:#fff}.hero-btn svg{width:14px;height:14px;stroke:currentColor}.card-head{display:flex;align-items:center;justify-content:space-between;gap:14px}.card-head h2{margin:0;font-size:12.5px;font-weight:500;letter-spacing:.06em;color:rgba(255,255,255,.62)}.card-head a{font-size:11px;color:#a78bfa;text-decoration:none;white-space:nowrap}.card-head a:hover{color:#c4b5fd}.card-foot{margin:auto 0 0;padding-top:14px;text-align:center;font-size:10.5px;color:rgba(255,255,255,.34)}.latest-card{min-height:331px;padding:28px 32px 22px;display:flex;flex-direction:column}.latest-list{list-style:none;margin:12px 0 0;padding:0}.latest-list li{border-bottom:1px solid rgba(255,255,255,7%)}.latest-list li:last-child{border-bottom:0}.latest-list a{display:grid;grid-template-columns:26px minmax(0,1fr)auto;align-items:center;gap:10px;padding:14px 0;text-decoration:none}.latest-list .num{font-family:var(--font-mono);font-size:10px;color:rgba(255,255,255,.3)}.latest-list .title{overflow:hidden;font-size:13.5px;color:rgba(255,255,255,.84);white-space:nowrap;text-overflow:ellipsis;transition:color .2s ease}.latest-list time{font-family:var(--font-mono);font-size:10px;color:rgba(167,139,250,.75)}.latest-list a:hover .title{color:#a78bfa}.cats-card,.archive-card,.extra-card{min-height:247px;padding:26px 28px 20px;display:flex;flex-direction:column}.chip-row{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}.chip{display:inline-flex;align-items:center;gap:4px;height:29px;padding:0 11px;border:1px solid rgba(255,255,255,.1);border-radius:999px;background:rgba(255,255,255,.025);font-size:11.5px;color:rgba(255,255,255,.72);text-decoration:none;transition:border-color .2s ease,color .2s ease}.chip span{font-family:var(--font-mono);font-size:9px;color:#a78bfa}.chip:hover{border-color:rgba(167,139,250,.5);color:#a78bfa}.chip-label{margin:15px 0 0;font-size:9.5px;letter-spacing:.14em;color:rgba(255,255,255,.34)}.tag-row{margin-top:8px}.chip.tag{color:rgba(255,255,255,.58)}.archive-list{list-style:none;margin:18px 0 0;padding:0}.archive-list li{display:flex;align-items:center;gap:12px;padding:8px 0}.archive-list .year{width:32px;flex:none;font-family:var(--font-mono);font-size:10.5px;color:rgba(255,255,255,.64)}.archive-list .bar{position:relative;flex:auto;height:1px;background:rgba(255,255,255,.1)}.archive-list .bar i{position:absolute;top:0;left:0;height:1px;background:#a78bfa}.archive-list .count{width:20px;flex:none;text-align:right;font-family:var(--font-mono);font-size:9.5px;color:rgba(255,255,255,.34)}.extra-list{list-style:none;margin:10px 0 0;padding:0}.extra-list li{border-bottom:1px solid rgba(255,255,255,7%)}.extra-list li:last-child{border-bottom:0}.extra-list a{display:flex;align-items:center;gap:8px;min-height:37px;text-decoration:none}.extra-list .name{overflow:hidden;font-size:12.5px;color:rgba(255,255,255,.82);white-space:nowrap;text-overflow:ellipsis;transition:color .2s ease}.extra-list .tags{margin-left:auto;font-family:var(--font-mono);font-size:9px;color:rgba(255,255,255,.32);white-space:nowrap}.extra-list .go{color:rgba(255,255,255,.3);font-size:12px}.extra-list a:hover .name{color:#a78bfa}.extra-list a:hover .go{color:#a78bfa}.home-footer{width:calc(100% - 48px);max-width:1356px;margin:auto auto 0;padding:0 0 24px;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px 24px;font-size:10.5px;line-height:1.6;color:rgba(255,255,255,.34)}.home-footer a{color:rgba(255,255,255,.38);text-decoration:none}.home-footer a:hover{color:rgba(255,255,255,.7)}.home-beian{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:4px 8px}.home-beian img{display:inline-block;height:14px;vertical-align:-2px}body.animate:not(.mobile) .footer{display:none}@media(max-width:1100px){.dash-top{grid-template-columns:minmax(0,1.35fr)minmax(0,1fr)}.dash-bottom{grid-template-columns:minmax(0,1.2fr)minmax(0,1fr)minmax(0,.8fr);gap:12px}.hero-card{padding:28px 30px 24px}.hero-id h1{font-size:40px}.latest-card{padding:24px 26px 18px}.cats-card,.archive-card,.extra-card{padding:22px 22px 16px}}@media(max-width:1500px) and (max-height:820px) and (min-width:861px){body.animate:not(.mobile) header.header.homepage{height:64px;min-height:64px}body.animate:not(.mobile) header.header.homepage .nav{height:64px}body.animate main.main.homepage{height:calc(100vh - 64px)}.home-dash{padding-top:20px}.dash-top{flex:0 0 300px}.dash-bottom{flex:0 0 210px}.hero-card,.latest-card,.cats-card,.archive-card,.extra-card{min-height:0}.hero-card{padding:22px 28px 18px}.hero-head{gap:18px}body.animate:not(.mobile) .main .profile.home-profile .hero-avatar{width:84px;height:84px}.hero-id h1{font-size:36px}.hero-id p{margin-top:7px;font-size:10px}.hero-bio{margin-top:10px;font-size:12.5px;line-height:1.65}.hero-stats{gap:18px;margin-top:8px;font-size:10.5px}.hero-stats b{font-size:12.5px}.hero-bottom{padding-top:8px}.hero-socials{gap:6px}.hero-socials a{height:25px;padding:0 9px;font-size:10.5px}.hero-btn{height:34px;padding:0 14px;font-size:11.5px}.latest-card{padding:20px 24px 14px}.latest-list{margin-top:6px}.latest-list a{padding:9px 0}.latest-list .title{font-size:12.5px}.cats-card,.archive-card,.extra-card{padding:20px 22px 16px}.chip-row{margin-top:10px;gap:6px}.chip{height:25px;padding:0 9px;font-size:10.5px}.chip-label{margin-top:9px}.tag-row{margin-top:5px}.archive-list{margin-top:10px}.archive-list li{padding:4px 0}.extra-list{margin-top:4px}.extra-list a{min-height:31px}.card-foot{padding-top:8px}.home-footer{padding-bottom:16px;font-size:10px}}@media(max-width:860px){.dash-top,.dash-bottom{grid-template-columns:minmax(0,1fr)}.extra-card{grid-column:auto}.extra-list{display:block}.cats-card,.archive-card,.extra-card{min-height:0}.hero-card,.latest-card{min-height:0}.hero-bottom{align-items:flex-start;flex-direction:column}.hero-actions{margin-left:0}}@media(max-width:699px){.home-dash,.home-footer,body.animate:not(.mobile) header.header.homepage .nav{width:calc(100% - 32px)}body.animate:not(.mobile) header.header.homepage .nav #menu li+li{margin-inline-start:16px}body.animate:not(.mobile) header.header.homepage .nav #menu li a{font-size:11.5px}.home-dash{padding-top:24px}.hero-card{padding:24px 22px 22px}.hero-head{gap:18px}body.animate:not(.mobile) .main .profile.home-profile .hero-avatar{width:84px;height:84px}.hero-id h1{font-size:34px}.hero-stats{gap:18px}.latest-card{padding:22px 20px 16px}.cats-card,.archive-card,.extra-card{padding:22px 20px 18px}.home-footer{margin-top:40px;padding-bottom:24px}}@media(max-width:860px){body.animate:not(.mobile){height:100vh;overflow:hidden;background:var(--background)!important;color:var(--primary)}body.animate:not(.mobile) .home-desktop,body.animate:not(.mobile) .home-poster,body.animate:not(.mobile) .home-scrim,body.animate:not(.mobile) #liveBgBox{display:none!important}body.animate:not(.mobile) header.header.homepage{height:60px;min-height:60px;padding:0 20px;background:var(--background);border-bottom:1px solid var(--border)}body.animate:not(.mobile) header.header.homepage .nav{width:100%;max-width:none;height:60px;padding:0}body.animate:not(.mobile) header.header.homepage .nav .logo>a{color:var(--primary);font-size:18px}body.animate:not(.mobile) header.header.homepage .nav .logo>a::after{background:#7c3aed}body.animate:not(.mobile) header.header.homepage #menu li:last-child a{color:var(--primary)}body.animate:not(.mobile) header.header.homepage #menu li:last-child a[href$="/search/"]{color:var(--primary);border-color:var(--border);background:var(--entry);backdrop-filter:none}body.animate:not(.mobile) main.main.homepage{height:calc(100vh - 120px);max-width:860px;width:auto;margin:auto;padding:var(--gap);display:flex;flex-direction:column;overflow:visible}body.animate:not(.mobile) .main .profile.home-profile{flex:1;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;min-height:0}body.animate:not(.mobile) .main .profile.home-profile>.profile_inner{display:block!important;opacity:1}body.animate:not(.mobile) .footer{display:flex}.home-footer{display:none!important}}body.mobile.animate{background:var(--background)!important;color:var(--primary)}body.mobile.animate .home-desktop,body.mobile.animate .home-poster,body.mobile.animate .home-scrim,body.mobile.animate #liveBgBox{display:none!important}body.mobile.animate main.main.homepage{max-width:860px;width:auto;margin:auto;padding:var(--gap);min-height:calc(100vh - var(--header-height) - var(--footer-height));display:block;overflow:visible}body.mobile.animate .main .profile.home-profile{display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;width:auto;min-height:calc(100vh - var(--header-height) - var(--footer-height) - (var(--gap) * 2))}body.mobile.animate .main .profile.home-profile>.profile_inner{display:block!important;opacity:1}body.mobile.animate>.menu-bar.btn-show{color:var(--primary);font-style:normal}body.mobile.animate>.menu-bar.btn-show::before{content:"☰"}body.mobile.animate>header .menu-bar.btn-hidden::before{content:"×"}body.mobile.animate .footer{font-size:11px;line-height:1.6;padding-left:14px;padding-right:14px}body.mobile.animate .footer span:last-child{white-space:normal}body.mobile.animate .footer .footer-beian{display:flex;flex-wrap:wrap;justify-content:center;gap:4px 8px}@media(prefers-reduced-motion:reduce){#liveBgBox{display:none!important}.hero-btn,.hero-socials a{transition:none}}body.mobile{color:#000;position:relative}body.mobile .menu-bar{position:absolute;font-size:1.8rem;color:var(--primary)}body.mobile .menu-bar.btn-show{top:10px;left:10px}body.mobile>header{position:fixed;left:0;top:0;height:100vh;width:100%;z-index:99;background:var(--background)}body.mobile>header a{color:var(--primary)}body.mobile>header a>span{color:var(--primary)}body.mobile>header .nav{display:flex;width:100%;height:100%;flex-direction:column;flex-wrap:nowrap;position:relative}body.mobile>header .nav .menu-bar.btn-hidden{top:17px;right:12px;padding:2px;color:#b1b1b1;height:40px;width:40px;text-align:center;line-height:40px;background:var(--entry);border-radius:10px;font-size:1rem}body.mobile>header .nav .logo{flex:6;padding-top:11px}body.mobile>header .nav .logo a{height:40px;line-height:40px;background:var(--entry);border-radius:10px;box-sizing:content-box;padding:0 10px;margin-top:6px}body.mobile>header .nav .logo .logo-switches{display:block;margin:0 0 0 10px}body.mobile>header .nav .logo .logo-switches #theme-toggle{color:#b1b1b1;height:40px;width:40px;text-align:center;line-height:40px;background:var(--entry);border-radius:10px}body.mobile>header .nav #menu{flex:12;display:flex;margin:0;flex-direction:column;flex-wrap:nowrap;justify-content:center}body.mobile>header .nav #menu li{margin:0;padding:0 20px 0 10px;width:100%;height:80px}body.mobile>header .nav #menu li.active>a>span{border-bottom:none}body.mobile>header .nav #menu li a{height:50px;line-height:50px;padding:0 10px 0 20px;background:var(--entry);border-radius:10px}body.mobile>header .nav #menu li+li{margin-inline-start:0}body.mobile>header .nav .social-icons-container{flex:6}body.mobile>header .nav .social-icons-container .social-icons{display:flex;flex-direction:row;flex-wrap:wrap;align-content:center;justify-content:space-between;padding:0 10px}body.mobile>header .nav .social-icons-container .social-icons a{color:var(--primary);height:40px;width:40px;text-align:center;line-height:40px;background:var(--entry);border-radius:10px;margin-bottom:10px}body.mobile>header .nav .social-icons-container .social-icons a svg{width:20px;height:inherit}body.mobile .main .profile{display:flex;flex-direction:column;flex-wrap:nowrap;justify-content:center}body.mobile .main .profile .profile_inner{opacity:1;position:relative;padding:30px;overflow:hidden;border-radius:30px;user-select:none;box-shadow:none}body.mobile .main .profile .profile_inner::before{content:"";position:absolute;background-image:none;filter:none}body.dark{background:var(--theme)}body.dark main.main>.post-entry:hover{-moz-box-shadow:0 3px 13px #000000;-webkit-box-shadow:0 3px 13px #000000;box-shadow:0 3px 13px #000000}body.dark .pagination a{background:var(--tertiary);color:var(--primary)}body.dark .post-content,body.dark .post-footer .paginav,body.dark article footer ul li a{background:var(--entry)}body.dark .post-content h2{border-left-color:var(--h2-border)}body.dark #veditor{background:var(--entry)}body.dark #veditor .vcontent,body.dark #veditor>div.vpanel>div>div.vrow>div.vcol.vcol-70.text-right>button{background:var(--code-bg)}body.dark div.vmeta span.vat{color:#fff}body.dark .v[data-class=v] .vwrap .vpreview{box-shadow:none}body.dark #pinToc{color:var(--primary)}body.dark .v[data-class=v] .vcards .vcard .vh,body.dark .v[data-class=v] .vcards .vcard .vquote,body.dark .v[data-class=v] .vcards .vcard .vimg{border:none}