@charset "UTF-8";@font-face{font-family:jetbrains mono;font-style:normal;font-weight:400;src:url(/fonts/JetbrainsMono/JetBrainsMono-Regular.ttf),local("ttf");font-display:swap}@font-face{font-family:jetbrains mono;font-style:normal;font-weight:700;src:url(/fonts/JetbrainsMono/JetBrainsMono-Bold.ttf),local("ttf");font-display:swap}@font-face{font-family:space grotesk;font-style:normal;font-weight:400;src:url(/fonts/SpaceGrotesk/SpaceGrotesk-Regular.ttf),local("ttf");font-display:swap}@font-face{font-family:space grotesk;font-style:normal;font-weight:700;src:url(/fonts/SpaceGrotesk/SpaceGrotesk-Bold.ttf),local("ttf");font-display:swap}@font-face{font-family:zedtextftl;src:url(/fonts/zed-fonts/ZedTextL-Bold.woff2)format("woff2");font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:zeddisplayftl;src:url(/fonts/zed-fonts/ZedDisplayL-Heavy.woff2)format("woff2");font-weight:400;font-style:normal;font-display:swap}.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));grid-template-rows:auto;gap:24px;padding:12px 0}.card{min-height:100px;background:var(--bg-2);border:2px solid var(--border-color);border-radius:10px;overflow:hidden;transition:all .3s ease}.card:hover{border-color:var(--accent);box-shadow:0 8px 16px rgba(0,0,0,.1);transform:translateY(-4px)}.card-info{padding:0 24px 24px}.card-title{margin-top:.7em;font-family:var(--header-font);font-weight:700;font-size:1.15em;letter-spacing:-.01em;line-height:1.3}.card-title a{color:var(--text-0);text-decoration:none;transition:color .2s ease}.card-title a:hover{color:var(--accent)}@media(max-width:768px){.card-title{font-size:1.1em}}@media(max-width:576px){.card-title{font-size:1.05em}}.card-image{border:unset;width:100%;height:160px;object-fit:cover;object-position:center;display:block;transition:transform .3s ease}.card:hover .card-image{transform:scale(1.05)}.card-image-placeholder{height:12px;width:100%}.card-description{margin-top:.5em;overflow:hidden;font-family:var(--text-font);line-height:1.6;color:var(--text-1);font-size:.95em}.card-tags{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;margin-top:.75rem}.card-tag{font-family:var(--text-font);font-size:.8rem;padding:.25rem .65rem;background-color:var(--bg-1);color:var(--text-1);border-radius:.375rem;text-decoration:none;transition:all .3s cubic-bezier(.4,0,.2,1);border-bottom:none;box-shadow:0 1px 3px rgba(0,0,0,.1)}.card-tag:hover{background-color:var(--accent);color:var(--hover-text);transform:translateY(-2px)scale(1.05);box-shadow:0 4px 8px rgba(0,0,0,.15)}.card-tag:active{transform:translateY(0)scale(1);box-shadow:0 1px 2px rgba(0,0,0,.1)}@media all and (max-width:720px){.cards{gap:18px;grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}}.code-label{position:absolute;top:0;left:0;font-family:var(--code-font);font-size:11px;font-weight:700;letter-spacing:.03rem;padding:3px 10px;text-transform:uppercase;color:#fff;background:#6272a4;border-radius:0 0 6px 0;line-height:1.4;z-index:5;user-select:none}code{font-family:var(--code-font);background-color:var(--bg-1);padding:.1em .2em;border-radius:6px;border:1px solid var(--border-color);font-size:.9em}pre{border:1px solid var(--border-color);line-height:1.5;overflow-x:auto;padding:2.2em 1em;min-height:72px;font-family:var(--code-font);font-size:.92em;background-color:var(--bg-code);position:relative;-webkit-overflow-scrolling:touch}pre code{background-color:transparent;color:inherit;font-size:100%;padding:0;border:0}span{text-decoration:none!important}.clipboard-button{all:unset;cursor:pointer;position:absolute;bottom:8px;right:8px;z-index:10;display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:6px;background:#44475a;transition:background .2s ease}.clipboard-button:hover{background:#6272a4}.clipboard-button svg{display:block;width:16px;height:16px;fill:#f8f8f2}.chroma{color:#f8f8f2;background-color:#282a36}.chroma .hl{background-color:#3d3f4a}.chroma .ln,.chroma .lnt{color:#7f7f7f}.chroma .k,.chroma .kc,.chroma .kn,.chroma .kp,.chroma .kr{color:#ff79c6}.chroma .kd{color:#8be9fd;font-style:italic}.chroma .kt{color:#8be9fd}.chroma .na{color:#50fa7b}.chroma .nb{color:#8be9fd;font-style:italic}.chroma .nc{color:#50fa7b}.chroma .nf{color:#50fa7b}.chroma .nl{color:#8be9fd;font-style:italic}.chroma .nt{color:#ff79c6}.chroma .nv,.chroma .vc,.chroma .vg,.chroma .vi{color:#8be9fd;font-style:italic}.chroma .s,.chroma .sa,.chroma .sb,.chroma .sc,.chroma .dl,.chroma .sd,.chroma .s2,.chroma .se,.chroma .sh,.chroma .si,.chroma .sx,.chroma .sr,.chroma .s1,.chroma .ss{color:#f1fa8c}.chroma .m,.chroma .mb,.chroma .mf,.chroma .mh,.chroma .mi,.chroma .il,.chroma .mo{color:#bd93f9}.chroma .o,.chroma .ow{color:#ff79c6}.chroma .c,.chroma .ch,.chroma .cm,.chroma .c1,.chroma .cs{color:#6272a4}.chroma .cp,.chroma .cpf{color:#ff79c6}.chroma .gd{color:#f55}.chroma .gi{color:#50fa7b;font-weight:700}.chroma .go{color:#44475a}.page-header{font-size:2.5em;line-height:1.15;font-family:var(--display-font);font-weight:900;letter-spacing:-.02em;margin:2.5rem 0 1rem}.centered-header{font-family:var(--display-font);font-weight:900;letter-spacing:-.02em;position:absolute;top:40%;left:50%;transform:translate(-50%,-50%);text-align:center;font-size:4em}header{display:flex;flex-direction:row;flex-wrap:wrap;justify-content:space-between;align-items:center;padding:1em 0;font-size:1.25rem;gap:20px;width:100%;max-width:100%;box-sizing:border-box;overflow:visible}@media(min-width:769px){header{flex-wrap:nowrap}}header .main{display:flex;flex-direction:row;flex-wrap:wrap;justify-content:flex-start;align-items:center;gap:12px;font-size:1.6rem;font-family:var(--header-font);font-weight:600;letter-spacing:-.01em;flex:initial;margin-bottom:0}header .main a{color:var(--text-0);text-decoration:none;transition:color .2s ease}header .main a:hover{color:var(--primary-color)}nav{display:flex;flex-direction:row;flex-wrap:wrap;align-items:center;gap:1rem;font-family:var(--text-font);font-size:1.05rem;flex:initial;min-width:fit-content}nav a{color:var(--text-1);text-decoration:none;transition:color .2s ease;font-weight:500;white-space:nowrap}nav a:hover{color:var(--primary-color)}@media(max-width:768px){header{flex-wrap:wrap}header .main{margin-bottom:10px}}.socials{flex-grow:0;display:flex;flex-direction:row;flex-wrap:wrap;justify-content:flex-start;align-items:flex-end;gap:12px}.social{border-bottom:unset;background-image:unset;padding:2px;transition:transform .2s ease}.social:hover{transform:translateY(-2px)}.social>img{border:unset;width:22px;height:22px;opacity:.7;transition:opacity .2s ease}.social>img:hover{opacity:1}.meta{color:#999;letter-spacing:-.02em;font-size:.95em;font-family:var(--text-font)}#dark-mode-toggle{cursor:pointer;flex-shrink:0;display:inline-flex;align-items:center}#dark-mode-toggle img{width:20px;height:20px;border:unset;transition:transform .3s ease}#dark-mode-toggle img:hover{transform:rotate(15deg)}h1,h2,h3,h4,h5,h6{font-family:var(--header-font);font-weight:600;margin-top:2em;margin-bottom:1em;letter-spacing:-.01em;line-height:1.3;color:var(--text-0)}h1{font-size:2rem;font-weight:700;margin-top:1em}h2{font-size:1.5rem}h3{font-size:1.3rem}h4{font-size:1.2rem}h5{font-size:1.1rem}h6{font-size:1rem}h1::before,h2::before,h3::before,h4::before,h5::before,h6::before{content:none}.page-type-about .about-intro{display:flex;align-items:stretch;gap:1.5em;margin-bottom:1rem}.page-type-about .about-intro-img{flex:0 0 200px;min-height:100px}.page-type-about .about-intro-img img{display:block;width:100%;height:100%;object-fit:cover;border-radius:8px;border:3px solid #ececec;margin:0}.page-type-about .about-intro>div:last-child{flex:1;display:flex;flex-direction:column;justify-content:center}.page-type-about .about-intro p{margin-bottom:.5em}.page-type-about .about-intro p:last-child{margin-bottom:0}@media(max-width:600px){.page-type-about .about-intro{flex-direction:column;align-items:center}.page-type-about .about-intro-img{flex:none;width:180px;height:180px}}.page-type-about .post-content h2:first-of-type{clear:none}img{max-width:100%}figure{box-sizing:border-box;display:inline-block;margin:0;max-width:100%}figure img{max-height:500px}@media screen and (min-width:600px){figure{padding:0 40px}}figure h4{font-size:1rem;margin:0;margin-bottom:1em}figure h4::before{content:"↳ "}svg{max-height:15px}.post-single{width:100%;max-width:100%}.post-single .post-header{margin-bottom:2.5rem;padding-bottom:1.5rem;border-bottom:1px solid var(--border-color)}.post-single .post-title{font-family:var(--header-font);font-size:2.5rem;font-weight:700;line-height:1.2;margin:0 0 1rem;color:var(--text-0);letter-spacing:-.02em}@media(max-width:768px){.post-single .post-title{font-size:2rem}}@media(max-width:576px){.post-single .post-title{font-size:1.75rem}}.post-single .post-meta{display:flex;flex-direction:column;gap:.75rem;margin-top:1rem}.post-single .post-date{display:block}.post-single .post-date time{font-family:var(--text-font);font-size:.9rem;color:var(--text-1);opacity:.8}.post-single .post-tags{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center}.post-single .post-description{display:block;font-family:var(--text-font);font-size:1.05rem;color:var(--text-1);line-height:1.6;font-style:italic;opacity:.9;margin-top:.25rem}.post-single .post-tag{font-family:var(--text-font);font-size:.875rem;padding:.25rem .75rem;background-color:var(--bg-1);color:var(--text-1);border-radius:.375rem;text-decoration:none;transition:all .3s cubic-bezier(.4,0,.2,1);border-bottom:none;box-shadow:0 1px 3px rgba(0,0,0,.1)}.post-single .post-tag:hover{background-color:var(--accent);color:var(--hover-text);transform:translateY(-2px)scale(1.05);box-shadow:0 4px 8px rgba(0,0,0,.15)}.list-tags{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;margin-top:.75rem}.list-tag{font-family:var(--text-font);font-size:.875rem;padding:.25rem .75rem;background-color:var(--bg-1);color:var(--text-1);border-radius:.375rem;text-decoration:none;transition:all .3s cubic-bezier(.4,0,.2,1);border-bottom:none;box-shadow:0 1px 3px rgba(0,0,0,.1)}.list-tag:hover{background-color:var(--accent);color:var(--hover-text);transform:translateY(-2px)scale(1.05);box-shadow:0 4px 8px rgba(0,0,0,.15)}.list-tag:active{transform:translateY(0)scale(1);box-shadow:0 1px 2px rgba(0,0,0,.1)}.list-item .title{font-family:var(--header-font);font-size:1.75rem;font-weight:600;line-height:1.3;margin:.5rem 0;letter-spacing:-.01em}@media(max-width:768px){.list-item .title{font-size:1.5rem}}@media(max-width:576px){.list-item .title{font-size:1.25rem}}.list-item .title a{color:var(--text-0);text-decoration:none;transition:color .2s ease}.list-item .title a:hover{color:var(--accent)}.post-content{font-family:var(--text-font);font-size:1rem;line-height:var(--line-height);color:var(--text-0)}.post-content h1,.post-content h2,.post-content h3,.post-content h4,.post-content h5,.post-content h6{font-family:var(--header-font);font-weight:600;line-height:1.3;margin-top:2rem;margin-bottom:1rem;color:var(--text-0);letter-spacing:-.01em}.post-content h1{font-size:2rem;margin-top:2.5rem}.post-content h2{font-size:1.75rem;margin-top:2.25rem}.post-content h3{font-size:1.5rem}.post-content h4{font-size:1.25rem}.post-content h5{font-size:1.1rem}.post-content h6{font-size:1rem}.post-content p{margin-bottom:1.25rem;line-height:var(--line-height)}.post-content a{color:var(--link-color);text-decoration:none;border-bottom:1px solid transparent;transition:all .2s ease}.post-content a:hover{border-bottom-color:var(--link-color)}.post-content blockquote{margin:1.5rem 0;padding:1rem 1.5rem;border-left:4px solid var(--accent);background-color:var(--bg-1);border-radius:.375rem;font-style:italic;color:var(--text-1)}.post-content blockquote p:last-child{margin-bottom:0}.post-content hr{margin:2rem 0;border:none;border-top:1px solid var(--border-color)}.post-content img{max-width:100%;max-height:500px;width:auto;height:auto;border-radius:.5rem;margin:1.5rem 0;object-fit:contain}@media screen and (min-width:600px){.post-content img{max-width:70%}}.wechat-list-item{display:flex;align-items:flex-start;gap:16px;padding:18px 0;border-bottom:1px solid var(--border-color)}.wechat-list-item:last-child{border-bottom:none}.wechat-list-info{flex:1;min-width:0}.wechat-list-title{font-family:var(--header-font);font-size:1.15rem;font-weight:600;line-height:1.4;margin:0 0 8px}.wechat-list-title a{color:var(--text-0);text-decoration:none;transition:color .2s ease}.wechat-list-title a:hover{color:var(--accent)}.wechat-list-date{font-size:.85rem;color:var(--text-2)}.wechat-list-thumb{width:80px;height:80px;flex-shrink:0;border-radius:4px;overflow:hidden}.wechat-list-thumb img{width:100%;height:100%;object-fit:cover;margin:0;border-radius:4px}.wechat-list-placeholder{width:100%;height:100%;background:var(--bg-1);border-radius:4px}.wechat-cover{margin-bottom:2rem}.wechat-cover img{width:100%;height:auto;border-radius:8px;margin:0}.wechat-post .wechat-header{display:flex;flex-direction:column;align-items:flex-start;text-align:left;border-bottom:none;margin-bottom:1.5rem;padding-bottom:0}.wechat-post .wechat-title{font-size:1.75rem;font-weight:700;margin-bottom:0}.wechat-post .wechat-meta{display:flex;flex-direction:row;justify-content:flex-start;align-items:center;flex-wrap:wrap;gap:.4rem;margin-top:0;color:var(--text-1);font-size:.9rem;opacity:.8}.wechat-post .wechat-date,.wechat-post .wechat-author,.wechat-post .wechat-meta-separator{font-family:var(--text-font);font-size:.9rem;color:var(--text-1)}.wechat-post .wechat-meta-separator{color:var(--text-2)}@media(max-width:576px){.wechat-list-item{padding:14px 0;gap:12px}.wechat-list-thumb{width:60px;height:60px}.wechat-list-title{font-size:1.05rem}.wechat-post .wechat-title{font-size:1.5rem}}.wechat-post .post-content{font-size:16px;line-height:1.5;color:var(--text-0);letter-spacing:.01em}.wechat-post .post-content p{margin-bottom:.8em;text-align:justify}.wechat-post .post-content h2{font-size:1.4em;font-weight:700;margin:1.2em 0 .4em;color:var(--text-0);line-height:1.4}.wechat-post .post-content h3{font-size:1.2em;font-weight:700;margin:1em 0 .3em;color:var(--text-0);line-height:1.4}.wechat-post .post-content h4{font-size:1.08em;font-weight:600;margin:.8em 0 .3em;color:var(--text-0)}.wechat-post .post-content h5,.wechat-post .post-content h6{font-size:1em;font-weight:600;margin:.6em 0 .2em;color:var(--text-1)}.wechat-post .post-content img{display:block;max-width:100%;height:auto}.wechat-post .post-content blockquote{margin:0;padding:0 .5em .1em;border:none;font-style:normal;color:var(--text-1)}.wechat-post .post-content blockquote p{margin-bottom:.5em;text-align:left}.wechat-post .post-content blockquote p:last-child{margin-bottom:0}.wechat-post .post-content hr{margin:1.5em auto;width:45%;border:none;height:1px;background:linear-gradient(to right,transparent,var(--text-2),transparent);opacity:.5}.wechat-post .post-content ul,.wechat-post .post-content ol{padding-left:1.8em;margin-bottom:1em}.wechat-post .post-content ul li,.wechat-post .post-content ol li{margin-bottom:.3em;line-height:1.5}.wechat-post .post-content ul ul,.wechat-post .post-content ul ol,.wechat-post .post-content ol ul,.wechat-post .post-content ol ol{margin-bottom:0;margin-top:.2em}.wechat-post .post-content ul>li{list-style-type:disc}.wechat-post .post-content ul ul>li{list-style-type:circle}.wechat-post .post-content ul ul ul>li{list-style-type:square}.wechat-post .post-content ol>li{list-style-type:decimal}.wechat-post .post-content ol ol>li{list-style-type:lower-alpha}.wechat-post .post-content a{color:var(--link-color);text-decoration:none;border-bottom:1px solid transparent;transition:border-color .2s,color .2s}.wechat-post .post-content a:hover{border-bottom-color:var(--link-color)}.wechat-post .post-content strong{font-weight:700;color:var(--text-0)}.wechat-post .post-content em{font-style:italic}.wechat-post .post-content code:not([class]){font-family:var(--code-font);font-size:.88em;padding:.15em .4em;background:var(--bg-1);border-radius:4px;color:#e96900;word-break:break-word}.wechat-post .post-content table{width:100%;border-collapse:collapse;margin:1em 0;font-size:.95em;overflow:hidden;border-radius:6px}.wechat-post .post-content table th,.wechat-post .post-content table td{padding:6px 10px;border:1px solid var(--border-color);text-align:left;line-height:1.6}.wechat-post .post-content table th{background:var(--bg-1);font-weight:700;font-family:var(--header-font)}.wechat-post .post-content table tr:nth-child(even){background:var(--bg-1)}.wechat-post .post-content table tr:hover{background:var(--bg-2)}.wechat-post{padding-bottom:52px}.wechat-bottom-bar{position:fixed;bottom:0;z-index:1000;left:50%;transform:translateX(-50%);width:100%;max-width:var(--page-width,920px);background:var(--bg-0);border-top:1px solid var(--border-color);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}.wechat-bottom-inner{padding:6px 16px;display:flex;align-items:center;gap:8px}.wechat-bottom-left{display:flex;align-items:center;gap:8px;flex-shrink:0}.wechat-bottom-avatar{width:30px;height:30px;border-radius:50%;overflow:hidden;flex-shrink:0}.wechat-bottom-avatar img{display:block;width:100%;height:100%;object-fit:cover}.wechat-bottom-name{font-family:var(--header-font);font-size:.85rem;font-weight:600;color:var(--text-0);white-space:nowrap;margin-right:4px}.wechat-bottom-actions{display:flex;align-items:center;gap:2px;margin-left:auto}.wechat-bottom-btn{all:unset;cursor:pointer;display:flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:50%;background:0 0;position:relative;transition:background .15s,transform .1s}.wechat-bottom-btn svg{fill:var(--text-2);transition:fill .2s}.wechat-bottom-btn:hover{background:var(--bg-1)}.wechat-bottom-btn:active{transform:scale(.9)}.wechat-bottom-btn.liked svg{fill:#576b95}.wechat-bottom-btn.liked .wechat-bottom-count{color:#576b95}.wechat-bottom-count{position:absolute;top:-2px;right:-2px;min-width:16px;height:14px;line-height:14px;font-size:.6rem;color:var(--text-2);text-align:center;background:var(--bg-0);border-radius:7px;padding:0 3px}.wechat-related{margin:2rem 0;padding:0}.wechat-related-title{font-family:var(--header-font);font-size:.95rem;font-weight:700;color:var(--text-0);margin-bottom:1rem}.wechat-related-item{display:block;padding:10px 0;font-size:.95rem;color:var(--text-0);text-decoration:none;border-bottom:1px solid var(--border-color);transition:color .2s}.wechat-related-item:hover{color:var(--link-color)}.wechat-related-num{color:var(--text-2);margin-right:8px;font-size:.85rem}.primary-color{color:var(--primary-color)}.draft-label{color:var(--hover-text);text-decoration:none;padding:2px 4px;border-radius:4px;margin-left:6px;background-color:var(--primary-color)}::-moz-selection{background:var(--primary-color);color:var(--hover-text);text-shadow:none}::selection{background:var(--primary-color);color:var(--hover-text)}p{line-height:1.65;margin-bottom:1em;font-family:var(--text-font)}hr{border:0;border-top:3px solid var(--border-color);margin:1em 0}blockquote{border-left:3px solid var(--border-color);color:var(--text-1);margin:0;padding-left:1em;font-family:var(--text-font);font-style:italic;line-height:1.65}a{border-radius:3px;padding:1px;border-bottom:none;color:inherit;text-decoration:none;transition:color .2s ease}a:hover{color:var(--primary-color)}time{color:grey}.list>ul{margin:0;padding:1rem 0 0}.list-item{margin-bottom:30px}@media all and (max-width:640px){.list-item .post-header{display:grid;grid-template-rows:auto 1fr}.list-item .post-header h1{margin-top:0}.list-item .post-header h1 a{border-bottom:none}}@media all and (min-width:640px){.list-item .post-header{display:grid;gap:1rem;grid-row-gap:1.5rem;grid-template-columns:auto 1fr}.list-item .post-header h1{margin:0;font-size:130%}.list-item .post-header h1 a{border-bottom:none}}#dark-mode-toggle{border-bottom:none}#dark-mode-toggle:hover{background-color:transparent}.note-container{margin:1.5em 0;border-radius:8px;border:1px solid var(--border-color);overflow:hidden}.note-header{background-color:var(--bg-1);padding:.8em 1em;font-weight:600;color:var(--text-0)}.note-toggle{width:100%;background-color:var(--bg-1);border:none;padding:.8em 1em;font-weight:600;color:var(--text-0);cursor:pointer;text-align:left;font-size:inherit;font-family:inherit;transition:background-color .2s ease}.note-toggle:hover{opacity:.9}.note-icon{display:flex;align-items:center}.note-icon::before{content:"ℹ️";margin-right:.5em}.note-center{text-align:center}.note-content{padding:1em;border-top:1px solid var(--border-color)}.note-content p:last-child{margin-bottom:0}html.light .post-content .note-container .note-content,html.light .note-container .note-content,html.light .note-content,.light .note-content{background-color:#fff!important;color:#000!important}html.light .post-content .note-container .note-content *,html.light .note-container .note-content *,html.light .note-content *,.light .note-content *{color:#000!important}html.light .post-content .note-container .note-content h1,html.light .post-content .note-container .note-content h2,html.light .post-content .note-container .note-content h3,html.light .post-content .note-container .note-content h4,html.light .post-content .note-container .note-content h5,html.light .post-content .note-container .note-content h6,html.light .note-container .note-content h1,html.light .note-container .note-content h2,html.light .note-container .note-content h3,html.light .note-container .note-content h4,html.light .note-container .note-content h5,html.light .note-container .note-content h6,html.light .note-content h1,html.light .note-content h2,html.light .note-content h3,html.light .note-content h4,html.light .note-content h5,html.light .note-content h6,.light .note-content h1,.light .note-content h2,.light .note-content h3,.light .note-content h4,.light .note-content h5,.light .note-content h6{color:#000!important;font-weight:600}html.light .post-content .note-container .note-content p,html.light .post-content .note-container .note-content li,html.light .post-content .note-container .note-content span,html.light .post-content .note-container .note-content div,html.light .post-content .note-container .note-content strong,html.light .post-content .note-container .note-content em,html.light .post-content .note-container .note-content a,html.light .note-container .note-content p,html.light .note-container .note-content li,html.light .note-container .note-content span,html.light .note-container .note-content div,html.light .note-container .note-content strong,html.light .note-container .note-content em,html.light .note-container .note-content a,html.light .note-content p,html.light .note-content li,html.light .note-content span,html.light .note-content div,html.light .note-content strong,html.light .note-content em,html.light .note-content a,.light .note-content p,.light .note-content li,.light .note-content span,.light .note-content div,.light .note-content strong,.light .note-content em,.light .note-content a{color:#000!important}html.light .post-content .note-container .note-content code:not(pre code),html.light .note-container .note-content code:not(pre code),html.light .note-content code:not(pre code),.light .note-content code:not(pre code){background-color:rgba(0,0,0,5%)!important;color:#000!important;padding:.2em .4em;border-radius:3px}html.light .post-content .note-container .note-content pre,html.light .note-container .note-content pre,html.light .note-content pre,.light .note-content pre{background-color:#282a36!important;margin:1em 0;padding:1em;border-radius:5px;overflow-x:auto}html.light .post-content .note-container .note-content pre code,html.light .note-container .note-content pre code,html.light .note-content pre code,.light .note-content pre code{background-color:transparent!important;color:#f8f8f2!important;padding:0}.post-content .note-content{background-color:inherit}html.light .post-content .note-content{background-color:#fff!important}html.dark .note-container .note-content,html.dark .note-content{background-color:rgba(0,0,0,.2);color:rgba(255,255,255,.87)}html.dark .note-container .note-content h1,html.dark .note-container .note-content h2,html.dark .note-container .note-content h3,html.dark .note-container .note-content h4,html.dark .note-container .note-content h5,html.dark .note-container .note-content h6,html.dark .note-container .note-content p,html.dark .note-container .note-content li,html.dark .note-container .note-content span,html.dark .note-container .note-content div,html.dark .note-content h1,html.dark .note-content h2,html.dark .note-content h3,html.dark .note-content h4,html.dark .note-content h5,html.dark .note-content h6,html.dark .note-content p,html.dark .note-content li,html.dark .note-content span,html.dark .note-content div{color:rgba(255,255,255,.87)}table{border-spacing:0;border-collapse:collapse;font-family:var(--text-font);font-size:.95em}table th{padding:8px 13px;border:1px solid #dfe2e5;font-family:var(--header-font);font-size:1em;font-weight:700}table td{padding:8px 13px;border:1px solid #dfe2e5;line-height:1.5}.tags li::before{content:"🏷 "}.tags a{border-bottom:none}.tags a:hover{color:var(--primary-color)}.mermaid{text-align:center;margin-top:1em;margin-bottom:1em;padding:1em;border-radius:8px;overflow:visible}:root.light .mermaid{background-color:#f5f5f5}:root.dark .mermaid{background-color:rgba(0,0,0,.2)}.mermaid strong{font-weight:700}.mermaid svg{width:100%!important;max-width:none!important;height:auto!important;min-width:600px}.mermaid text{font-size:18px!important}.mermaid .node rect,.mermaid .node circle,.mermaid .node ellipse,.mermaid .node polygon{stroke-width:2px!important}.toc-sidebar{position:fixed;left:calc(50% + var(--page-width)/2 + 2rem);top:80px;width:280px;max-height:calc(100vh - 120px);z-index:50}@media only screen and (max-width:1400px){.toc-sidebar{display:none}}.toc-sticky{width:100%;padding:1rem;max-height:100%;overflow-y:auto;overflow-x:hidden;scroll-behavior:smooth}.toc-sticky::-webkit-scrollbar{width:6px}.toc-sticky::-webkit-scrollbar-track{background:0 0}.toc-sticky::-webkit-scrollbar-thumb{background:var(--bg-2,rgba(255,255,255,.2));border-radius:3px}.toc-sticky::-webkit-scrollbar-thumb:hover{background:var(--primary,rgba(255,255,255,.3))}.toc-sticky::before{content:"Contents";display:block;font-family:var(--header-font);font-size:.95rem;font-weight:700;color:var(--text-1);margin-bottom:.75rem;padding-bottom:.5rem;border-bottom:1px solid var(--border-color);text-transform:uppercase;letter-spacing:.08em}.toc-sticky ul{list-style:none;margin:0;padding:0}.toc-sticky>nav>ul>li>a{display:block;font-weight:600;font-size:.95rem;padding:.35rem 0;margin-top:.15rem;color:var(--text-0)}.toc-sticky>nav>ul>li>ul>li>a{display:block;font-weight:500;font-size:.88rem;padding:.2rem 0 .2rem 1.2rem;color:var(--text-1)}.toc-sticky>nav>ul>li>ul>li>ul>li>a{display:block;font-weight:400;font-size:.82rem;padding:.15rem 0 .15rem 2.4rem;color:var(--text-2)}.toc-sticky a{font-family:var(--text-font);text-decoration:none;border-bottom:none!important;line-height:1.5;transition:color .2s ease}.toc-sticky a:hover{color:var(--primary-color,var(--text-0))!important;background-color:transparent!important}.toc-sticky li.selected>a{color:var(--link-color)!important;font-weight:700!important}.toc-sticky .parent>a{color:var(--text-0)!important;font-weight:600!important}.toc-sticky .toc-toggle{display:inline-block;width:14px;height:14px;line-height:14px;text-align:center;font-size:.7rem;font-weight:700;color:var(--text-2);cursor:pointer;user-select:none;border-radius:3px;vertical-align:middle;margin-right:2px;transition:background .15s,color .15s}.toc-sticky .toc-toggle:hover{background:var(--bg-1);color:var(--text-0)}.toc-sticky li.toc-collapsed>ul{display:none!important}:root{--border-color:var(--bg-1);--font-size-base:13.5px;--mono-text-font:"Jetbrains Mono";--text-font:"ZedTextFtl";--header-font:"ZedDisplayFtl" "Space Grotesk", "Helvetica", sans-serif;--code-font:"Jetbrains Mono";--line-height:1.5;--page-width:920px}*{box-sizing:border-box}html{background-color:var(--bg-0);color:var(--text-0);font-family:var(--text-font);line-height:var(--line-height)}@media(max-width:992px){html{font-size:calc(var(--font-size-base) * .97)}}@media(max-width:768px){html{font-size:calc(var(--font-size-base) * .95)}}@media(max-width:576px){html{font-size:calc(var(--font-size-base) * .92)}}body{min-height:100vh}.page-wrapper{display:flex;justify-content:center;padding:0 1.5rem;min-height:100vh}.page-container{width:100%;max-width:var(--page-width);position:relative}.main-content{width:100%;padding:.9rem 0;padding-bottom:1.5rem;margin-bottom:1.5rem;word-wrap:break-word}.post-content{width:100%;margin:0;padding:0}