/*
  PaperMod v8+
  License: MIT https://github.com/adityatelange/hugo-PaperMod/blob/master/LICENSE
  Copyright (c) 2020 nanxiaobei and adityatelange
  Copyright (c) 2021-2026 adityatelange
*/
:root{--gap:24px;--content-gap:20px;--nav-width:1024px;--main-width:720px;--header-height:60px;--footer-height:60px;--radius:8px;--theme:rgb(255, 255, 255);--entry:rgb(255, 255, 255);--primary:rgb(30, 30, 30);--secondary:rgb(108, 108, 108);--tertiary:rgb(214, 214, 214);--content:rgb(31, 31, 31);--code-block-bg:rgb(28, 29, 33);--code-bg:rgb(245, 245, 245);--border:rgb(238, 238, 238);color-scheme:light}:root[data-theme=dark]{--theme:rgb(29, 30, 32);--entry:rgb(46, 46, 51);--primary:rgb(218, 218, 219);--secondary:rgb(155, 156, 157);--tertiary:rgb(65, 66, 68);--content:rgb(196, 196, 197);--code-block-bg:rgb(46, 46, 51);--code-bg:rgb(55, 56, 62);--border:rgb(51, 51, 51);color-scheme:dark}.list{background:var(--code-bg)}[data-theme=dark] .list{background:var(--theme)}*,::after,::before{box-sizing:border-box}html{-webkit-tap-highlight-color:transparent;overflow-y:scroll;-webkit-text-size-adjust:100%;text-size-adjust:100%}a,button,body,h1,h2,h3,h4,h5,h6{color:var(--primary)}body{font-family:-apple-system,BlinkMacSystemFont,segoe ui,Roboto,Oxygen,Ubuntu,Cantarell,open sans,helvetica neue,sans-serif;font-size:18px;line-height:1.6;word-break:break-word;background:var(--theme)}article,aside,figcaption,figure,footer,header,hgroup,main,nav,section,table{display:block}h1,h2,h3,h4,h5,h6{line-height:1.2}h1,h2,h3,h4,h5,h6,p{margin-top:0;margin-bottom:0}ul{padding:0}a{text-decoration:none}body,figure,ul{margin:0}table{width:100%;border-collapse:collapse;border-spacing:0;overflow-x:auto;word-break:keep-all}button,input,textarea{padding:0;font:inherit;background:0 0;border:0}input,textarea{outline:0}button,input[type=button],input[type=submit]{cursor:pointer}input:-webkit-autofill,textarea:-webkit-autofill{box-shadow:0 0 0 50px var(--theme)inset}img{display:block;max-width:100%}.not-found{position:absolute;left:0;right:0;display:flex;align-items:center;justify-content:center;height:80%;font-size:160px;font-weight:700}.archive-posts{width:100%;font-size:16px}.archive-year{margin-top:40px}.archive-year:not(:last-of-type){border-bottom:2px solid var(--border)}.archive-month{display:flex;align-items:flex-start;padding:10px 0}.archive-month-header{margin:25px 0;width:200px}.archive-month:not(:last-of-type){border-bottom:1px solid var(--border)}.archive-entry{position:relative;padding:5px;margin:10px 0}.archive-entry-title{margin:5px 0;font-weight:400}.archive-count,.archive-meta{color:var(--secondary);font-size:14px}.footer,.top-link{font-size:12px;color:var(--secondary)}.footer{max-width:calc(var(--main-width) + var(--gap) * 2);margin:auto;padding:calc((var(--footer-height) - var(--gap))/2)var(--gap);text-align:center;line-height:24px}.footer span{margin-inline-start:1px;margin-inline-end:1px}.footer span:last-child{white-space:nowrap}.footer a{color:inherit;text-underline-offset:.25rem;text-decoration:underline}.top-link{position:fixed;bottom:4rem;right:2rem;z-index:99;background:var(--tertiary);width:2.5rem;height:2.5rem;padding:10px;border-radius:64px;transition:visibility .3s,opacity .3s cubic-bezier(.4,0,1,1)}.hidden{visibility:hidden;opacity:0}.top-link,.top-link svg{filter:drop-shadow(0 0 0 var(--theme))}.footer a:hover,.top-link:hover{color:var(--primary)}.header-nav{display:flex;flex-wrap:wrap;justify-content:space-between;max-width:calc(var(--nav-width) + var(--gap) * 2);margin:auto;line-height:var(--header-height);padding:0 var(--gap);column-gap:var(--gap)}.header-nav a{display:block}.logo,.menu{display:flex}.logo{align-items:center;column-gap:.55rem;flex-wrap:wrap}.logo a{font-size:24px;font-weight:700;display:flex;align-items:center;column-gap:.55rem}.logo a img,.logo a svg{pointer-events:none;border-radius:6px}.theme-toggle{padding:0 .4rem}[data-theme=dark] .moon{display:none}[data-theme=light] .sun{display:none}.logo-switches{display:inline-flex;gap:.4rem;align-items:inherit;min-height:stretch;flex-wrap:inherit}.logo-switches>*{min-height:inherit;align-items:center;display:inline-flex}.nav-sep{color:var(--secondary)}.lang-menu *{display:inherit;min-height:inherit;align-items:inherit}.lang-menu a{font-size:1rem;font-weight:500;padding:0 .4rem;display:inline-flex}.menu{list-style:none;word-break:keep-all;overflow-x:auto;white-space:nowrap;column-gap:var(--gap)}.menu a{font-size:16px}.menu .active{font-weight:500;text-decoration:underline;text-underline-offset:.3rem;text-decoration-thickness:2px}.main{position:relative;min-height:calc(100vh - var(--header-height) - var(--footer-height));max-width:calc(var(--main-width) + var(--gap) * 2);margin:auto;padding:var(--gap)}.page-header h1{font-size:40px}.pagination{display:flex}.pagination a{color:var(--theme);font-size:13px;line-height:36px;background:var(--primary);border-radius:calc(36px/2);padding:0 16px}.pagination .next{margin-inline-start:auto}.social-icons a{display:inline-flex;padding:10px}.social-icons a svg{height:26px;width:26px}code{direction:ltr}div.highlight,pre{position:relative}.copy-code{display:none;position:absolute;top:4px;right:4px;color:rgba(255,255,255,.8);background:rgba(78,78,78,.8);border-radius:var(--radius);padding:0 5px;font-size:14px;user-select:none}div.highlight:hover .copy-code,pre:hover .copy-code{display:block}.md-content h3,.md-content h4,.md-content h5,.md-content h6{margin:24px 0 16px}.md-content h1{margin:40px auto 32px;font-size:40px}.md-content h2{margin:32px auto 24px;font-size:32px}.md-content h3{font-size:24px}.md-content h4{font-size:16px}.md-content h5{font-size:14px}.md-content h6{font-size:12px}.md-content a:not(.anchor){text-underline-offset:.3rem;text-decoration:underline}.md-content del{text-decoration:line-through}.md-content dl:not(:last-child),.md-content ol:not(:last-child),.md-content p:not(:last-child),.md-content figure:not(:last-child),.md-content ul:not(:last-child){margin-bottom:var(--content-gap)}.md-content ol,.md-content ul{padding-inline-start:1.25rem}.md-content li{margin-top:.3rem}.md-content li p{margin-bottom:0}.md-content dl{display:flex;flex-wrap:wrap;margin:0}.md-content dt{width:25%;font-weight:700}.md-content dd{width:75%;margin-inline-start:0;padding-inline-start:10px}.md-content dd~dd,.md-content dt~dt{margin-top:10px}.md-content table{margin-bottom:var(--content-gap)}.md-content table th,.md-content table:not(.highlighttable,.highlight table,.gist .highlight) td{min-width:80px;padding:6px 13px;line-height:1.5;border:1px solid var(--border)}.md-content table th{text-align:start}.md-content table:not(.highlighttable) td code:only-child{margin:auto 0}.md-content .highlight table{border-radius:var(--radius)}.md-content .highlight:not(table){margin-bottom:var(--content-gap);background:var(--code-block-bg)!important;border-radius:var(--radius);direction:ltr}.md-content li>.highlight{margin-inline-end:0}.md-content ul pre{margin-inline-start:calc(var(--gap) * -2)}.md-content .highlight pre{margin:0}.md-content .highlighttable{table-layout:fixed}.md-content .highlighttable td:first-child{width:40px}.md-content .highlighttable td .linenodiv{padding-inline-end:0!important}.md-content .highlighttable td .highlight,.md-content .highlighttable td .linenodiv pre{margin-bottom:0}.post-content code{padding:.2rem .3rem;font-size:.78em;line-height:1.5;background:var(--code-bg);border-radius:.2rem}.md-content pre code{display:grid;margin:auto 0;padding:10px;color:#d5d5d6;background:var(--code-block-bg)!important;border-radius:var(--radius);overflow-x:auto;word-break:break-all}.md-content blockquote{margin:1rem 0;padding-inline-start:1rem;border-inline-start:.3rem solid var(--content)}.md-content hr{margin:30px 0;height:2px;background:var(--tertiary);border:0}.md-content iframe{max-width:100%}.md-content img{border-radius:var(--radius);margin:1rem 0}.md-content img[src*="#center"]{margin:1rem auto}.md-content figure.align-center{text-align:center}.md-content figure>figcaption{color:var(--primary);font-size:16px;font-weight:700;margin:8px 0 16px}.md-content figure>figcaption>p{color:var(--secondary);font-size:14px;font-weight:400}.md-content h1:hover .anchor,.md-content h2:hover .anchor,.md-content h3:hover .anchor,.md-content h4:hover .anchor,.md-content h5:hover .anchor,.md-content h6:hover .anchor{display:inline-flex;color:var(--secondary);margin-inline-start:.5em;font-weight:500;user-select:none}.anchor:hover{color:var(--content)!important}.md-content img.in-text{display:inline;margin:auto}mark{border-radius:2px;padding:0 2px}audio{display:block;width:100%;border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;height:2.5rem;margin-bottom:var(--content-gap)}audio::-webkit-media-controls-enclosure{border-radius:0}video{border:1px solid var(--code-bg);border-radius:var(--radius);max-width:100%}.first-entry{position:relative;display:flex;flex-direction:column;justify-content:center;min-height:320px;margin:var(--gap)0 calc(var(--gap) * 2)}.first-entry .entry-header{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3}.first-entry .entry-header h1{font-size:34px;line-height:1.3}.first-entry .entry-header h2{font-size:40px}.first-entry .entry-content{margin:14px 0;font-size:16px;-webkit-line-clamp:3}.first-entry .entry-footer{font-size:14px}.home-info .entry-content{--content-gap:0.5rem;-webkit-line-clamp:unset;margin:0}.home-info .social-icons a:first-of-type{padding-inline-start:0}.post-entry{position:relative;margin-bottom:var(--gap);padding:var(--gap);background:var(--entry);border-radius:var(--radius);transition:transform .25s ease;border:1px solid var(--border)}.post-entry:hover,.post-entry:focus-within{transform:translateY(-2px);border-color:var(--tertiary)}.tag-entry .entry-cover{display:none}.entry-header h2{font-size:24px;line-height:1.3}.entry-content{margin:8px 0;color:var(--secondary);font-size:14px;line-height:1.6;overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2}.home-info .entry-content p{margin-block-start:1em;margin-block-end:1em}.entry-footer{color:var(--secondary);font-size:13px}.entry-link{position:absolute;left:0;right:0;top:0;bottom:0;border-radius:var(--radius)}.entry-hint{color:var(--secondary)}.entry-hint-parent{display:flex;justify-content:space-between}.entry-cover{font-size:14px;margin-bottom:var(--gap);text-align:center;display:flex;flex-direction:column;gap:.5rem}.entry-cover img{border-radius:var(--radius);width:100%;height:auto}.entry-cover a{text-underline-offset:.3rem;text-decoration:underline}.page-header,.post-header{margin:24px auto var(--content-gap)}.post-title{font-size:40px}.post-description{margin-top:10px}.post-meta{margin-top:5px}.post-meta,.breadcrumbs{color:var(--secondary);font-size:14px}.breadcrumbs{display:flex;flex-wrap:wrap;align-items:center;gap:.2rem}.breadcrumbs a{font-size:16px}.breadcrumbs svg{height:1em}.i18n_list{display:inline-flex}.post-meta .i18n_list li{list-style:none;margin:auto 3px}.post-meta a,.toc a:hover{text-underline-offset:.3rem;text-decoration:underline}.post-meta a{color:var(--secondary);text-decoration-style:dotted}details.toc{margin-bottom:var(--content-gap);background:var(--code-bg);border-radius:var(--radius);border:1px solid var(--border)}[data-theme=dark] details.toc{background:var(--entry)}details.toc summary{padding:.3rem 1.2rem;border-radius:var(--radius)}details summary{cursor:pointer;display:list-item;width:100%;margin-inline-start:0;user-select:none}details .title{display:inline;font-weight:500;margin-inline-start:.2rem}details{interpolate-size:allow-keywords}details::details-content{height:0;opacity:0;overflow:clip;transition:height 150ms ease,opacity 150ms ease,content-visibility 150ms allow-discrete}details[open]::details-content{height:auto;opacity:1}details .inner{margin:0 2.4rem;padding-bottom:.6rem}details li ul{margin-inline-start:var(--gap)}.post-content{color:var(--content);margin:30px 0}.post-footer{margin-top:var(--content-gap)}.post-footer>*{margin-bottom:10px}.post-tags{display:flex;flex-wrap:wrap;gap:10px}.post-tags li{display:inline-block}.post-tags a,.share-buttons,.paginav{border-radius:var(--radius);background:var(--code-bg);border:1px solid var(--border)}.post-tags a{display:block;padding:0 14px;color:var(--secondary);font-size:14px;line-height:34px;background:var(--code-bg)}.post-tags a:hover,.paginav a:hover{background:var(--border)}.share-buttons{padding:10px;display:flex;justify-content:center;overflow-x:auto;gap:10px}.share-buttons li,.share-buttons a{display:inline-flex}.share-buttons a:not(:last-of-type){margin-inline-end:12px}.paginav{display:flex;line-height:1.2}.paginav .title{letter-spacing:1px;text-transform:uppercase;font-size:.8rem;color:var(--secondary)}.paginav a{width:50%;display:flex;flex-direction:column;gap:.5rem;padding:.8rem;border-radius:var(--radius)}.paginav span:hover:not(.title){text-underline-offset:.2rem;text-decoration:underline}.paginav .next{margin-inline-start:auto;text-align:right}[dir=rtl] .paginav .next{text-align:left}h1>a>svg{display:inline}.buttons,.main .profile{display:flex;justify-content:center}.main .profile{align-items:center;min-height:calc(100vh - var(--header-height) - var(--footer-height) - (var(--gap) * 2));text-align:center}.profile .profile_inner{display:flex;flex-direction:column;align-items:center;gap:1rem}.profile img{border-radius:50%}.buttons{flex-wrap:wrap;max-width:400px;gap:1rem}.button{background:var(--tertiary);border-radius:var(--radius);padding:.4rem .8rem}.searchbox input{padding:4px 10px;width:100%;color:var(--primary);font-weight:700;border:2px solid var(--tertiary);border-radius:var(--radius)}.searchResults li{list-style:none;border-radius:var(--radius);padding:10px 15px;position:relative;font-weight:500;display:flex;align-items:center;justify-content:space-between;background:var(--entry);transition:transform .25s ease;border:1px solid var(--border)}.searchResults{margin:var(--content-gap)0;width:100%;display:flex;flex-direction:column;gap:10px}.searchResults li:hover,.searchResults li:focus-within{transform:translateY(-2px);border-color:var(--tertiary)}.searchResults li .entry-link:focus{outline:2px solid var(--secondary);outline-offset:-2px}.terms-tags{display:flex;flex-wrap:wrap;gap:1em;margin-top:var(--content-gap)}.terms-tags li{display:inline-block;font-weight:500}.terms-tags a{display:block;padding:4px 10px;background:var(--tertiary);border-radius:var(--radius);transition:transform .1s}.bg{color:#cad3f5;background-color:#24273a}.chroma{color:#cad3f5;background-color:#24273a}.chroma .err{color:#ed8796}.chroma .lnlinks{outline:none;text-decoration:none;color:inherit}.chroma .lntd{vertical-align:top;padding:0;margin:0;border:0}.chroma .lntable{border-spacing:0;padding:0;margin:0;border:0}.chroma .hl{background-color:#474733}.chroma .lnt{white-space:pre;-webkit-user-select:none;user-select:none;margin-right:.4em;padding:0 .4em;color:#8087a2}.chroma .ln{white-space:pre;-webkit-user-select:none;user-select:none;margin-right:.4em;padding:0 .4em;color:#8087a2}.chroma .line{display:flex}.chroma .k{color:#c6a0f6}.chroma .kc{color:#f5a97f}.chroma .kd{color:#ed8796}.chroma .kn{color:#8bd5ca}.chroma .kp{color:#c6a0f6}.chroma .kr{color:#c6a0f6}.chroma .kt{color:#ed8796}.chroma .na{color:#8aadf4}.chroma .nb{color:#91d7e3}.chroma .bp{color:#91d7e3}.chroma .nc{color:#eed49f}.chroma .no{color:#eed49f}.chroma .nd{color:#8aadf4;font-weight:700}.chroma .ni{color:#8bd5ca}.chroma .ne{color:#f5a97f}.chroma .nf{color:#8aadf4}.chroma .fm{color:#8aadf4}.chroma .nl{color:#91d7e3}.chroma .nn{color:#f5a97f}.chroma .py{color:#f5a97f}.chroma .nt{color:#c6a0f6}.chroma .nv{color:#f4dbd6}.chroma .vc{color:#f4dbd6}.chroma .vg{color:#f4dbd6}.chroma .vi{color:#f4dbd6}.chroma .vm{color:#f4dbd6}.chroma .s{color:#a6da95}.chroma .sa{color:#ed8796}.chroma .sb{color:#a6da95}.chroma .sc{color:#a6da95}.chroma .dl{color:#8aadf4}.chroma .sd{color:#6e738d}.chroma .s2{color:#a6da95}.chroma .se{color:#8aadf4}.chroma .sh{color:#6e738d}.chroma .si{color:#a6da95}.chroma .sx{color:#a6da95}.chroma .sr{color:#8bd5ca}.chroma .s1{color:#a6da95}.chroma .ss{color:#a6da95}.chroma .m{color:#f5a97f}.chroma .mb{color:#f5a97f}.chroma .mf{color:#f5a97f}.chroma .mh{color:#f5a97f}.chroma .mi{color:#f5a97f}.chroma .il{color:#f5a97f}.chroma .mo{color:#f5a97f}.chroma .o{color:#91d7e3;font-weight:700}.chroma .ow{color:#91d7e3;font-weight:700}.chroma .c{color:#6e738d;font-style:italic}.chroma .ch{color:#6e738d;font-style:italic}.chroma .cm{color:#6e738d;font-style:italic}.chroma .c1{color:#6e738d;font-style:italic}.chroma .cs{color:#6e738d;font-style:italic}.chroma .cp{color:#6e738d;font-style:italic}.chroma .cpf{color:#6e738d;font-weight:700;font-style:italic}.chroma .gd{color:#ed8796;background-color:#363a4f}.chroma .ge{font-style:italic}.chroma .gr{color:#ed8796}.chroma .gh{color:#f5a97f;font-weight:700}.chroma .gi{color:#a6da95;background-color:#363a4f}.chroma .gs{font-weight:700}.chroma .gu{color:#f5a97f;font-weight:700}.chroma .gt{color:#ed8796}.chroma .gl{text-decoration:underline}.chroma{background-color:unset!important}.chroma .hl{display:flex}.chroma .lnt{padding:0 0 0 12px}.highlight pre.chroma code{padding:8px 0}.highlight pre.chroma .line .cl,.chroma .ln{padding:0 10px}.chroma .lntd:last-of-type{width:100%}@media screen and (max-width:768px){:root{--gap:14px}.profile img{transform:scale(.85)}.first-entry{min-height:260px}.archive-month{flex-direction:column}.archive-year{margin-top:20px}.footer{padding:calc((var(--footer-height) - var(--gap) - 10px)/2)var(--gap)}}@media screen and (max-width:900px){.list .top-link{transform:translateY(-5rem)}}@media screen and (max-width:340px){.share-buttons{justify-content:unset}}@media(prefers-reduced-motion){.terms-tags a:active,.button:active,.post-entry:active,.top-link,.searchResults .focus,.searchResults li:active{transform:none}}.profile img,.profile_inner img{width:150px;height:150px;aspect-ratio:1/1;object-fit:cover}html body .post-content .highlight,html body .post-content .highlight pre,html body .post-content figure.highlight,html body .post-content .chroma,html body .post-content pre.chroma,html body .post-content pre:has(code),html body .post-content .highlight>pre,html body .post-content .highlight>div,html body .post-content .chroma>pre,html body .post-content .chroma>div,html body .post-content .highlight table,html body .post-content .highlight table tbody,html body .post-content .highlight table tr,html body .post-content .highlight table td,html body .post-content .lntable,html body .post-content .lntd{background:0 0!important;background-color:initial!important;border:none!important;box-shadow:none!important;border-collapse:collapse!important;border-spacing:0!important}html body .post-content .highlight,html body .post-content figure.highlight{background-color:#ede8e0!important;border:1px solid #ddd6cc!important;border-radius:10px!important;overflow:hidden!important;margin:16px 0!important}html body .post-content .highlight pre,html body .post-content pre.chroma,html body .post-content .chroma pre,html body .post-content pre:has(>code){background-color:#ede8e0!important;color:#2a2622!important;border-radius:0!important;border:none!important;padding:8px 14px!important;margin:0!important;overflow-x:auto!important;font-size:16px!important;line-height:1.65!important}html body .post-content .highlight pre code,html body .post-content pre.chroma code,html body .post-content .chroma code,html body .post-content pre code,html body .post-content .highlight code{color:#2a2622!important;background:0 0!important;background-color:initial!important}html[data-theme=dark] body .post-content .highlight,html[data-theme=dark] body .post-content figure.highlight,[data-theme=dark] body .post-content .highlight,[data-theme=dark] body .post-content figure.highlight,.dark body .post-content .highlight,.dark body .post-content figure.highlight{background-color:#2d2a2e!important;border:1px solid #3d3a3e!important}html[data-theme=dark] body .post-content .highlight pre,html[data-theme=dark] body .post-content pre.chroma,html[data-theme=dark] body .post-content .chroma pre,html[data-theme=dark] body .post-content pre:has(>code),[data-theme=dark] body .post-content .highlight pre,[data-theme=dark] body .post-content pre.chroma,[data-theme=dark] body .post-content .chroma pre,[data-theme=dark] body .post-content pre:has(>code),.dark body .post-content .highlight pre,.dark body .post-content pre.chroma,.dark body .post-content .chroma pre,.dark body .post-content pre:has(>code){background-color:#2d2a2e!important;color:#f5f0e8!important;border:none!important}html[data-theme=dark] body .post-content .highlight pre code,html[data-theme=dark] body .post-content pre.chroma code,html[data-theme=dark] body .post-content .chroma code,html[data-theme=dark] body .post-content pre code,html[data-theme=dark] body .post-content .highlight code,[data-theme=dark] body .post-content .highlight pre code,[data-theme=dark] body .post-content pre.chroma code,[data-theme=dark] body .post-content .chroma code,[data-theme=dark] body .post-content pre code,[data-theme=dark] body .post-content .highlight code,.dark body .post-content .highlight pre code,.dark body .post-content pre.chroma code,.dark body .post-content .chroma code,.dark body .post-content pre code,.dark body .post-content .highlight code{color:#f5f0e8!important;background:0 0!important;background-color:initial!important}html body .post-content code:not(pre code){padding:2px 6px;border-radius:5px;font-size:15px;font-family:courier new,monospace!important;background:#e0d8ce;color:#2a2622}html[data-theme=dark] body .post-content code:not(pre code),[data-theme=dark] body .post-content code:not(pre code),.dark body .post-content code:not(pre code){background:#3d3a3e;color:#f5f0e8}html body .chroma .c,html body .chroma .cm,html body .chroma .c1,html body .chroma .ch,html body .chroma .cp,html body .chroma .cpf{color:#7a7568!important;font-style:italic}html body .chroma .k,html body .chroma .kc,html body .chroma .kd,html body .chroma .kn,html body .chroma .kp,html body .chroma .kr,html body .chroma .kt{color:#b56b6b!important;font-weight:600}html body .chroma .s,html body .chroma .sa,html body .chroma .sb,html body .chroma .sc,html body .chroma .dl,html body .chroma .sd,html body .chroma .s2,html body .chroma .se,html body .chroma .sh,html body .chroma .si,html body .chroma .sx,html body .chroma .sr,html body .chroma .s1,html body .chroma .ss{color:#4e7a4e!important}html body .chroma .m,html body .chroma .mb,html body .chroma .mf,html body .chroma .mh,html body .chroma .mi,html body .chroma .il,html body .chroma .mo{color:#5a7a8a!important}html body .chroma .nf,html body .chroma .fm{color:#7a6a9e!important}html body .chroma .nc,html body .chroma .nn{color:#9e7e4e!important}html body .chroma .n,html body .chroma .na,html body .chroma .nb,html body .chroma .bp,html body .chroma .nx,html body .chroma .nt{color:#2a2622!important}html body .chroma .o,html body .chroma .ow{color:#8a6a6a!important}html body .chroma .err{color:#b56b6b!important;background:rgba(181,107,107,.1)!important}html body .chroma .hl{background:rgba(160,140,120,.15)!important;display:block;width:100%}html body .chroma .lnt,html body .chroma .ln{color:#b0a89d!important;margin-right:12px}html[data-theme=dark] body .chroma .c,html[data-theme=dark] body .chroma .cm,html[data-theme=dark] body .chroma .c1,html[data-theme=dark] body .chroma .ch,html[data-theme=dark] body .chroma .cp,html[data-theme=dark] body .chroma .cpf,[data-theme=dark] body .chroma .c,[data-theme=dark] body .chroma .cm,[data-theme=dark] body .chroma .c1,[data-theme=dark] body .chroma .ch,[data-theme=dark] body .chroma .cp,[data-theme=dark] body .chroma .cpf,.dark body .chroma .c,.dark body .chroma .cm,.dark body .chroma .c1,.dark body .chroma .ch,.dark body .chroma .cp,.dark body .chroma .cpf{color:#8a837a!important}html[data-theme=dark] body .chroma .k,html[data-theme=dark] body .chroma .kc,html[data-theme=dark] body .chroma .kd,html[data-theme=dark] body .chroma .kn,html[data-theme=dark] body .chroma .kp,html[data-theme=dark] body .chroma .kr,html[data-theme=dark] body .chroma .kt,[data-theme=dark] body .chroma .k,[data-theme=dark] body .chroma .kc,[data-theme=dark] body .chroma .kd,[data-theme=dark] body .chroma .kn,[data-theme=dark] body .chroma .kp,[data-theme=dark] body .chroma .kr,[data-theme=dark] body .chroma .kt,.dark body .chroma .k,.dark body .chroma .kc,.dark body .chroma .kd,.dark body .chroma .kn,.dark body .chroma .kp,.dark body .chroma .kr,.dark body .chroma .kt{color:#d4b8b8!important}html[data-theme=dark] body .chroma .s,html[data-theme=dark] body .chroma .sa,html[data-theme=dark] body .chroma .sb,html[data-theme=dark] body .chroma .sc,html[data-theme=dark] body .chroma .dl,html[data-theme=dark] body .chroma .sd,html[data-theme=dark] body .chroma .s2,html[data-theme=dark] body .chroma .se,html[data-theme=dark] body .chroma .sh,html[data-theme=dark] body .chroma .si,html[data-theme=dark] body .chroma .sx,html[data-theme=dark] body .chroma .sr,html[data-theme=dark] body .chroma .s1,html[data-theme=dark] body .chroma .ss,[data-theme=dark] body .chroma .s,[data-theme=dark] body .chroma .sa,[data-theme=dark] body .chroma .sb,[data-theme=dark] body .chroma .sc,[data-theme=dark] body .chroma .dl,[data-theme=dark] body .chroma .sd,[data-theme=dark] body .chroma .s2,[data-theme=dark] body .chroma .se,[data-theme=dark] body .chroma .sh,[data-theme=dark] body .chroma .si,[data-theme=dark] body .chroma .sx,[data-theme=dark] body .chroma .sr,[data-theme=dark] body .chroma .s1,[data-theme=dark] body .chroma .ss,.dark body .chroma .s,.dark body .chroma .sa,.dark body .chroma .sb,.dark body .chroma .sc,.dark body .chroma .dl,.dark body .chroma .sd,.dark body .chroma .s2,.dark body .chroma .se,.dark body .chroma .sh,.dark body .chroma .si,.dark body .chroma .sx,.dark body .chroma .sr,.dark body .chroma .s1,.dark body .chroma .ss{color:#a8c4a8!important}html[data-theme=dark] body .chroma .m,html[data-theme=dark] body .chroma .mb,html[data-theme=dark] body .chroma .mf,html[data-theme=dark] body .chroma .mh,html[data-theme=dark] body .chroma .mi,html[data-theme=dark] body .chroma .il,html[data-theme=dark] body .chroma .mo,[data-theme=dark] body .chroma .m,[data-theme=dark] body .chroma .mb,[data-theme=dark] body .chroma .mf,[data-theme=dark] body .chroma .mh,[data-theme=dark] body .chroma .mi,[data-theme=dark] body .chroma .il,[data-theme=dark] body .chroma .mo,.dark body .chroma .m,.dark body .chroma .mb,.dark body .chroma .mf,.dark body .chroma .mh,.dark body .chroma .mi,.dark body .chroma .il,.dark body .chroma .mo{color:#a8bcc9!important}html[data-theme=dark] body .chroma .nf,html[data-theme=dark] body .chroma .fm,[data-theme=dark] body .chroma .nf,[data-theme=dark] body .chroma .fm,.dark body .chroma .nf,.dark body .chroma .fm{color:#c4b8d4!important}html[data-theme=dark] body .chroma .nc,html[data-theme=dark] body .chroma .nn,[data-theme=dark] body .chroma .nc,[data-theme=dark] body .chroma .nn,.dark body .chroma .nc,.dark body .chroma .nn{color:#d4c4a8!important}html[data-theme=dark] body .chroma .n,html[data-theme=dark] body .chroma .na,html[data-theme=dark] body .chroma .nb,html[data-theme=dark] body .chroma .bp,html[data-theme=dark] body .chroma .nx,html[data-theme=dark] body .chroma .nt,[data-theme=dark] body .chroma .n,[data-theme=dark] body .chroma .na,[data-theme=dark] body .chroma .nb,[data-theme=dark] body .chroma .bp,[data-theme=dark] body .chroma .nx,[data-theme=dark] body .chroma .nt,.dark body .chroma .n,.dark body .chroma .na,.dark body .chroma .nb,.dark body .chroma .bp,.dark body .chroma .nx,.dark body .chroma .nt{color:#f5f0e8!important}html[data-theme=dark] body .chroma .o,html[data-theme=dark] body .chroma .ow,[data-theme=dark] body .chroma .o,[data-theme=dark] body .chroma .ow,.dark body .chroma .o,.dark body .chroma .ow{color:#d4c4c4!important}html[data-theme=dark] body .chroma .err,[data-theme=dark] body .chroma .err,.dark body .chroma .err{color:#d4b8b8!important;background:rgba(212,184,184,.1)!important}html[data-theme=dark] body .chroma .hl,[data-theme=dark] body .chroma .hl,.dark body .chroma .hl{background:rgba(180,160,140,.15)!important}html[data-theme=dark] body .chroma .lnt,html[data-theme=dark] body .chroma .ln,[data-theme=dark] body .chroma .lnt,[data-theme=dark] body .chroma .ln,.dark body .chroma .lnt,.dark body .chroma .ln{color:#6e6862!important}html body .copy-code{border-radius:6px!important;padding:4px 10px!important;font-size:12px!important;transition:all .2s ease!important;background:#e0d8ce!important;color:#2a2622!important;border:1px solid #d0c8be!important}html body .copy-code:hover{background:#d0c8be!important;color:#1a1612!important}html[data-theme=dark] body .copy-code,[data-theme=dark] body .copy-code,.dark body .copy-code{background:#3d3a3e!important;color:#f5f0e8!important;border:1px solid #4d4a4e!important}html[data-theme=dark] body .copy-code:hover,[data-theme=dark] body .copy-code:hover,.dark body .copy-code:hover{background:#4d4a4e!important;color:#fff!important}@media(max-width:768px){html body .post-content .highlight,html body .post-content figure.highlight{margin:12px 0!important}html body .post-content .highlight pre,html body .post-content pre.chroma,html body .post-content .chroma pre,html body .post-content pre:has(>code){padding:6px 10px!important;font-size:14.5px!important}html body .post-content code:not(pre code){font-size:14px}}.archive-tabs{display:flex;justify-content:center;gap:4px;margin:24px auto 32px;padding:4px;background:var(--code-bg);border-radius:12px;width:fit-content}.archive-tab{padding:6px 20px;border:none;border-radius:8px;background:0 0;color:var(--secondary);font-size:14px;font-family:inherit;cursor:pointer;transition:all .2s ease;white-space:nowrap}.archive-tab:hover{color:var(--primary)}.archive-tab.active{background:#4ecdc4;color:#fff;font-weight:500}.dark .archive-tab.active{background:#3dbdb5}.archive-view{animation:fadeIn .3s ease}@keyframes fadeIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.archive-group{background:var(--entry);border:1px solid var(--border);border-radius:16px;padding:20px 24px;margin-bottom:16px;transition:transform .2s ease,box-shadow .2s ease}.archive-group:hover{transform:translateY(-1px);box-shadow:0 4px 12px rgba(0,0,0,5%)}.dark .archive-group:hover{box-shadow:0 4px 12px rgba(0,0,0,.2)}.archive-group-header{display:flex;align-items:center;gap:12px;margin-bottom:16px;padding-bottom:12px;border-bottom:1px solid var(--border)}.archive-group-title{font-size:16px;font-weight:600;color:var(--primary)}.archive-group-count{font-size:13px;color:var(--secondary);background:var(--tertiary);padding:2px 10px;border-radius:12px}.archive-item{display:flex;align-items:center;gap:10px;padding:8px 0}.archive-item:not(:last-child){border-bottom:1px dashed var(--border)}.archive-item-date{font-size:13px;color:var(--secondary);font-variant-numeric:tabular-nums;min-width:42px;text-align:right;flex-shrink:0}.archive-item-dot{color:var(--secondary);opacity:.4;font-size:10px;flex-shrink:0}.archive-item-title{flex:1;font-size:15px;color:var(--primary);text-decoration:none;transition:color .2s ease;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.archive-item-title:hover{color:var(--secondary);text-decoration:underline}.archive-item-tags{display:flex;gap:8px;flex-shrink:0;margin-left:auto}.archive-item-tag{font-size:12px;color:var(--secondary);opacity:.7}.entry-tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px;padding:0 2px;position:relative;z-index:2}.entry-tag{display:inline-block;font-size:12px;line-height:1.4;padding:2px 10px;border-radius:4px;text-decoration:none;transition:opacity .2s ease;position:relative;z-index:2}.entry-tag:hover{opacity:.8}.entry-tag--category{color:var(--primary);background:var(--tertiary);border:1px solid var(--border)}.entry-tag--tag{color:var(--secondary);background:0 0;border:1px solid var(--border)}.dark .entry-tag--category{background:var(--tertiary);border-color:var(--border)}.dark .entry-tag--tag{border-color:var(--border)}@media(max-width:768px){.archive-tabs{gap:2px;padding:3px}.archive-tab{padding:5px 14px;font-size:13px}.archive-group{padding:16px;border-radius:12px}.archive-item{flex-wrap:wrap;gap:4px 8px}.archive-item-title{white-space:normal;line-height:1.4}.archive-item-tags{width:100%;margin-left:52px;margin-top:2px}}.timeline-container{position:relative;margin:40px 0;padding-left:30px}.timeline-container::before{content:'';position:absolute;left:9px;top:5px;bottom:5px;width:2px;background:var(--border)}.timeline-item{position:relative;margin-bottom:30px}.timeline-dot{position:absolute;left:-30px;top:6px;width:18px;height:18px;border-radius:50%;background:var(--primary);border:3px solid var(--entry);transition:transform .2s ease}.timeline-item:hover .timeline-dot{transform:scale(1.2)}.timeline-content{background:var(--entry);border:1px solid var(--border);border-radius:8px;padding:15px 20px;box-shadow:0 2px 5px rgba(0,0,0,2%);transition:all .2s ease}.timeline-content:hover{border-color:var(--secondary);transform:translateY(-2px)}.timeline-date{font-size:.85rem;color:var(--secondary);margin-bottom:8px;font-family:monospace}.timeline-body p{margin:0;line-height:1.6;color:var(--primary)}.buttons a.button,.home-buttons a.button,.entry-cover .buttons a.button{transition:transform .35s cubic-bezier(.34,1.56,.64,1),box-shadow .35s ease,background-color .3s ease,border-color .3s ease;will-change:transform}.buttons a.button:hover,.home-buttons a.button:hover,.entry-cover .buttons a.button:hover{transform:translateY(-5px);box-shadow:0 12px 28px -4px rgba(0,0,0,.15),0 4px 8px -2px rgba(0,0,0,8%)}.buttons a.button:active,.home-buttons a.button:active,.entry-cover .buttons a.button:active{transform:translateY(-1px);box-shadow:0 4px 12px -2px rgba(0,0,0,.1)}.dark .buttons a.button:hover,.dark .home-buttons a.button:hover,.dark .entry-cover .buttons a.button:hover,[data-theme=dark] .buttons a.button:hover,[data-theme=dark] .home-buttons a.button:hover,[data-theme=dark] .entry-cover .buttons a.button:hover{box-shadow:0 12px 28px -4px rgba(0,0,0,.5),0 4px 8px -2px rgba(0,0,0,.3)}.dark .buttons a.button:active,.dark .home-buttons a.button:active,[data-theme=dark] .buttons a.button:active,[data-theme=dark] .home-buttons a.button:active{box-shadow:0 4px 12px -2px rgba(0,0,0,.3)}@media(prefers-reduced-motion:reduce){.buttons a.button,.home-buttons a.button{transition:none!important;transform:none!important}}.social-icons{margin-bottom:0!important;padding-bottom:0!important}.buttons{margin-top:0!important;padding-top:0!important}.home-info .social-icons{margin-bottom:0!important}.home-info .buttons{margin-top:.3rem!important}body{font-size:15px;line-height:1.65}.post-content{font-size:16px;line-height:1.8}.post-title{font-size:30px;margin-bottom:12px}.post-content h1{font-size:26px;margin:28px 0 14px}.post-content h2{font-size:23px;margin:24px 0 12px}.post-content h3{font-size:20px;margin:22px 0 10px}.post-content h4{font-size:18px;margin:18px 0 8px}.post-content h5{font-size:16px;margin:16px 0 6px}.post-content h6{font-size:15px;margin:14px 0 6px}.entry-header h2{font-size:20px;margin-bottom:6px}.profile .title{font-size:32px;margin-bottom:8px}.profile .subtitle,.profile-subtitle{font-size:15px;margin-top:6px}.post-meta,.entry-footer{font-size:13px}nav a,#menu a{font-size:14px}pre,code,kbd,samp{font-size:14px}.archive-group-title{font-size:18px}.archive-item-title{font-size:15px}.archive-item-date,.archive-group-count{font-size:13px}.footer{font-size:13px}.post-entry,.first-entry{padding:20px;margin-bottom:16px}.archive-group{padding:20px 24px;margin-bottom:16px}.archive-group-header{margin-bottom:16px;padding-bottom:10px}.archive-item{padding:8px 0}.post-single .post-header{margin-bottom:28px}.post-content p{margin:14px 0}.profile .buttons{margin-top:16px}@media(max-width:768px){body{font-size:14px}.post-title{font-size:26px}.post-content{font-size:15px}.post-content h1{font-size:22px}.post-content h2{font-size:20px}.post-content h3{font-size:18px}.entry-header h2{font-size:18px}.profile .title{font-size:28px}.archive-group{padding:16px 18px}}.profile img,.profile_inner img,.home-profile img,.profile .profile-image{transition:transform .3s ease,box-shadow .3s ease!important;cursor:pointer!important}.profile img:hover,.profile_inner img:hover,.home-profile img:hover,.profile .profile-image:hover{transform:translateY(-6px)!important;box-shadow:0 12px 28px rgba(0,0,0,.12)!important}.profile h1,.profile .profile-name,.profile_inner h1,.home-profile h1{transition:transform .3s ease,color .3s ease!important;cursor:pointer!important;display:inline-block!important}.profile h1:hover,.profile .profile-name:hover,.profile_inner h1:hover,.home-profile h1:hover{transform:translateY(-3px)!important;color:#4a7c59!important}.dark .profile h1:hover,html[data-theme=dark] .profile h1:hover,[data-theme=dark] .profile h1:hover{color:#6a9f7a!important}html.is-changing .transition-main{transition:opacity .35s ease,transform .35s ease}html.is-animating .transition-main{opacity:0;transform:translateY(12px)}html.is-rendering .transition-main{opacity:1;transform:translateY(0)}html.is-changing.is-popstate .transition-main{transition-duration:.2s}.transition-fade{transition:opacity .4s ease}html.is-animating .transition-fade{opacity:0}.transition-slide{transition:opacity .35s ease,transform .4s cubic-bezier(.22,1,.36,1)}html.is-animating .transition-slide{opacity:0;transform:translateY(20px)scale(.98)}html.is-rendering .transition-slide{opacity:1;transform:translateY(0)scale(1)}.swup-progress-bar{position:fixed;top:0;left:0;height:3px;background:#4a7c59;z-index:9999;transition:width .2s ease}