/*
  PaperMod v8+
  License: MIT https://github.com/adityatelange/hugo-PaperMod/blob/master/LICENSE
  Copyright (c) 2020 nanxiaobei and adityatelange
  Copyright (c) 2021-2025 adityatelange
*/
:root{--gap:24px;--content-gap:20px;--nav-width:clamp(320px, 88vw, 1280px);--main-width:clamp(320px, 96vw, 1680px);--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(246, 248, 250);--code-bg:rgb(245, 245, 245);--border:rgb(238, 238, 238)}body.dark,.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(13, 17, 23);--code-bg:rgb(55, 56, 62);--border:rgb(51, 51, 51)}.list{background:var(--code-bg)}.dark.list{background:var(--theme)}body.list{--nav-width:clamp(320px, 62vw, 1120px);--main-width:clamp(320px, 68vw, 1280px)}*,::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%}body{font-family:lxgw wenkai,-apple-system,BlinkMacSystemFont,segoe ui,Roboto,helvetica neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}b,strong,.post-content h1,.post-content h2,.post-content h3,.post-content h4,.post-content h5,.post-content h6,.post-content dt,.post-content th,.post-content .callout-header{font-weight:700;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}@media screen and (-webkit-min-device-pixel-ratio:0){b,strong,.post-content h1,.post-content h2,.post-content h3,.post-content h4,.post-content h5,.post-content h6,.post-content dt,.post-content th,.post-content .callout-header{font-weight:800;letter-spacing:.01em}}.page-header,.post-header{margin:24px auto var(--content-gap)}.post-title{margin-bottom:2px;font-size:40px;font-weight:700}.post-description{margin-top:10px;margin-bottom:5px}.post-meta,.breadcrumbs{color:var(--secondary);font-size:14px;display:flex;flex-wrap:wrap;align-items:center}.post-meta .i18n_list li{display:inline-flex;list-style:none;margin:auto 3px;box-shadow:0 1px 0 var(--secondary)}.breadcrumbs a{font-size:16px}.post-single{display:flex;flex-direction:column;gap:var(--gap)}.post-header{flex:none}.post-content-wrapper{display:flex;gap:var(--gap);flex:auto;align-items:flex-start;width:100%;max-width:100%;margin:0 auto;padding-inline:clamp(16px,5vw,calc(var(--gap) * 1.5));box-sizing:border-box}.toc-wrapper{flex:0 0 280px;order:-1;position:sticky;top:var(--toc-sticky-top,80px);align-self:flex-start;transition:all .3s ease}.toc{margin:0;border:1px solid var(--border);background:var(--code-bg);border-radius:var(--radius);padding:.4em;max-height:var(--toc-max-height,calc(100vh - 100px));overflow-y:auto;overflow-x:hidden;transition:all .3s ease}.toc::-webkit-scrollbar{width:6px}.toc::-webkit-scrollbar-track{background:0 0}.toc::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}.toc::-webkit-scrollbar-thumb:hover{background:var(--tertiary)}.dark .toc{background:var(--entry)}.toc-title-wrapper{display:flex;align-items:center;justify-content:space-between;width:100%}.toc details summary{cursor:zoom-in;margin-inline-start:10px;user-select:none;list-style:none}.toc details summary::-webkit-details-marker{display:none}.toc details[open] summary{cursor:zoom-out}.toc .details{display:inline;font-weight:500}.toc-toggle{display:flex;align-items:center;justify-content:center;background:0 0;border:1px solid var(--border);border-radius:4px;padding:4px;cursor:pointer;transition:all .2s ease;margin-right:8px}.toc-toggle:hover{background:var(--border);transform:scale(1.05)}.toc-toggle-icon{display:block;width:20px;height:20px;transition:transform .3s ease}.toc .inner{margin:5px 20px 0;padding:0 10px;opacity:.9}.toc-wrapper--affixed .toc{box-shadow:0 18px 36px -28px rgba(15,23,42,.25)}.dark .toc-wrapper--affixed .toc{box-shadow:0 18px 40px -28px rgba(0,0,0,.6)}.toc li ul{margin-inline-start:var(--gap)}.toc summary:focus{outline:0}.toc-float-button{position:fixed;left:30px;bottom:60px;width:42px;height:42px;padding:12px;border-radius:64px;background:var(--tertiary);border:none;display:flex;align-items:center;justify-content:center;cursor:pointer;z-index:99;opacity:0;pointer-events:none;transition:visibility .5s,opacity .8s linear;filter:drop-shadow(0 0 0 var(--theme))}.toc-float-button:hover{color:var(--primary)}.toc-float-button:focus{outline:0}.toc-float-button svg{width:100%;height:100%;color:inherit}body.toc-collapsed .toc-wrapper{flex:0 0;width:0;overflow:hidden;opacity:0;pointer-events:none}body.toc-collapsed .toc{display:none}body.toc-collapsed .toc-float-button{visibility:visible;opacity:1;pointer-events:all}body.toc-collapsed .post-content{max-width:1000px!important;margin:0 auto}body.toc-collapsed .post-content-wrapper{justify-content:center}.post-content{flex:auto;min-width:0;color:var(--content)}.post-content h3,.post-content h4,.post-content h5,.post-content h6{margin:24px 0 16px}.post-content h1{margin:40px auto 32px;font-size:40px;font-weight:700}.post-content h2{margin:32px auto 24px;font-size:28px;font-weight:700}.post-content h3{font-size:22px;font-weight:700}.post-content h4{font-size:19px;font-weight:700}.post-content h5{font-size:14px}.post-content h6{font-size:12px}.post-content a,.toc a:hover{box-shadow:0 1px;box-decoration-break:clone;-webkit-box-decoration-break:clone}.post-content a code{margin:auto 0;border-radius:0;box-shadow:0 -1px 0 var(--primary)inset}.post-content del{text-decoration:line-through}.post-content dl,.post-content ol,.post-content p,.post-content figure,.post-content ul{margin-bottom:var(--content-gap)}.post-content ol,.post-content ul{padding-inline-start:20px}.post-content li{margin-top:5px}.post-content li p{margin-bottom:0}.post-content dl{display:flex;flex-wrap:wrap;margin:0}.post-content dt{width:25%;font-weight:700}.post-content dd{width:75%;margin-inline-start:0;padding-inline-start:10px}.post-content dd~dd,.post-content dt~dt{margin-top:10px}.post-content table{width:100%!important;min-width:100%;border-collapse:separate;border-spacing:0;table-layout:auto;margin:calc(var(--content-gap) * 1.2)auto;display:table!important}.post-content table:not(.highlighttable,.highlight table,.gist .highlight){border-radius:calc(var(--radius) + 4px);border:1px solid #d0d7de!important;overflow:hidden;background:0 0;box-shadow:0 12px 30px -24px rgba(27,31,36,.6);transition:border-color .2s ease,box-shadow .2s ease,background-color .2s ease;width:100%!important}body:not(.dark) .post-content table:not(.highlighttable,.highlight table,.gist .highlight){background:rgba(255,255,255,.97);border-color:#d0d7de!important;box-shadow:0 20px 32px -32px rgba(27,31,36,.4)}body.dark .post-content table:not(.highlighttable,.highlight table,.gist .highlight){background:rgba(19,23,30,.85);border-color:rgba(255,255,255,.2)!important;box-shadow:0 16px 32px -28px rgba(0,0,0,.8)}.post-content table th,.post-content table:not(.highlighttable,.highlight table,.gist .highlight) td{padding:14px 18px;line-height:1.6;border-bottom:1px solid transparent;font-size:.95em;word-break:break-word;hyphens:auto;white-space:normal;width:auto}.post-content table th{font-weight:600;text-align:start;text-transform:none;letter-spacing:.01em;width:auto}body:not(.dark) .post-content table th{background:rgba(240,244,248,.92);color:var(--primary);border-bottom-color:#d0d7de}body.dark .post-content table th{background:rgba(36,41,47,.65);color:#f0f6fc;border-bottom-color:rgba(255,255,255,8%)}body:not(.dark) .post-content table:not(.highlighttable,.highlight table,.gist .highlight) td{border-bottom-color:rgba(27,31,36,8%)}body.dark .post-content table:not(.highlighttable,.highlight table,.gist .highlight) td{border-bottom-color:rgba(255,255,255,6%)}.post-content table:not(.highlighttable,.highlight table,.gist .highlight) tbody tr{transition:background-color .18s ease,filter .18s ease}.post-content table:not(.highlighttable,.highlight table,.gist .highlight) tbody tr:nth-child(odd){background:0 0}body:not(.dark) .post-content table:not(.highlighttable,.highlight table,.gist .highlight) tbody tr:nth-child(even){background:rgba(27,31,36,.035)}body.dark .post-content table:not(.highlighttable,.highlight table,.gist .highlight) tbody tr:nth-child(even){background:rgba(255,255,255,3%)}body:not(.dark) .post-content table:not(.highlighttable,.highlight table,.gist .highlight) tbody tr:hover{background:rgba(27,31,36,8%)}body.dark .post-content table:not(.highlighttable,.highlight table,.gist .highlight) tbody tr:hover{background:rgba(255,255,255,7%)}.post-content table:not(.highlighttable,.highlight table,.gist .highlight) tbody tr:last-child td{border-bottom:none}.post-content table caption{caption-side:top;padding:0 0 12px;font-size:.9em;color:var(--secondary);text-align:start}.post-content table:not(.highlighttable,.highlight table,.gist .highlight) td code:only-child{margin:auto 0}@media screen and (max-width:860px){.post-content table:not(.highlighttable,.highlight table,.gist .highlight){display:table!important;width:100%;margin-inline:0;border:1px solid!important}body:not(.dark) .post-content table:not(.highlighttable,.highlight table,.gist .highlight){border-color:#d0d7de!important}body.dark .post-content table:not(.highlighttable,.highlight table,.gist .highlight){border-color:rgba(255,255,255,.2)!important}.post-content table:not(.highlighttable,.highlight table,.gist .highlight) th,.post-content table:not(.highlighttable,.highlight table,.gist .highlight) td{white-space:normal;word-wrap:break-word;word-break:break-word}}.post-content .highlight table{border-radius:var(--radius)}.post-content .highlight:not(table){margin:10px auto;border-radius:calc(var(--radius) + 2px);direction:ltr;overflow:hidden;border:1px solid transparent;transition:background .2s ease,border-color .2s ease,box-shadow .2s ease}.post-content li>.highlight{margin-inline-end:0}.post-content ul pre{margin-inline-start:calc(var(--gap) * -2)}.post-content .highlight pre{margin:0}.post-content .highlighttable{table-layout:fixed}.post-content .highlighttable td:first-child{width:40px}.post-content .highlighttable td .linenodiv{padding-inline-end:0!important}.post-content .highlighttable td .highlight,.post-content .highlighttable td .linenodiv pre{margin-bottom:0}.post-content code{margin:auto 4px;padding:4px 6px;font-size:.78em;line-height:1.5;background:var(--code-bg);border-radius:2px}.post-content pre code{display:grid;margin:auto 0;padding:14px;border-radius:calc(var(--radius) + 2px);border:1px solid transparent;overflow-x:auto;word-break:break-word;color:inherit;transition:background .2s ease,border-color .2s ease,box-shadow .2s ease,color .2s ease;tab-size:4;-moz-tab-size:4}body:not(.dark) .post-content .highlight:not(table),body:not(.dark) .post-content pre code,body:not(.dark) .post-content .highlighttable td .highlight,body:not(.dark) .post-content .highlighttable td .linenodiv pre{background:var(--code-block-bg)!important}body:not(.dark) .post-content .highlight:not(table),body:not(.dark) .post-content pre code{border-color:#d0d7de;box-shadow:inset 0 1px rgba(255,255,255,.6),0 1px 2px rgba(27,31,36,5%)}body:not(.dark) .post-content .highlighttable td:first-child{background:rgba(27,31,36,4%);border-inline-end:1px solid rgba(27,31,36,8%)}body.dark .post-content .highlight:not(table),body.dark .post-content pre code,body.dark .post-content .highlighttable td .highlight,body.dark .post-content .highlighttable td .linenodiv pre{background:var(--code-block-bg)!important}body.dark .post-content .highlight:not(table),body.dark .post-content pre code{border-color:rgba(255,255,255,8%);box-shadow:inset 0 1px rgba(255,255,255,5%)}body.dark .post-content .highlighttable td:first-child{background:rgba(250,250,250,3%);border-inline-end:1px solid rgba(255,255,255,4%)}.post-content blockquote{margin:calc(var(--content-gap) * 1.2)0;padding:16px 20px;border-inline-start:4px solid var(--primary);border:1px solid #d0d7de;border-left:4px solid var(--primary);border-radius:calc(var(--radius) + 2px);background:0 0;box-shadow:0 12px 30px -24px rgba(27,31,36,.6);transition:border-color .2s ease,box-shadow .2s ease,background-color .2s ease}body:not(.dark) .post-content blockquote{background:rgba(246,248,250,.95);border-color:#d0d7de;border-left-color:var(--primary);box-shadow:0 20px 32px -32px rgba(27,31,36,.4)}body.dark .post-content blockquote{background:rgba(22,27,34,.8);border-color:rgba(255,255,255,.2);border-left-color:var(--primary);box-shadow:0 16px 32px -28px rgba(0,0,0,.8)}.post-content blockquote blockquote{margin:12px 0;padding:12px 16px}body:not(.dark) .post-content blockquote blockquote{background:rgba(255,255,255,.6)}body.dark .post-content blockquote blockquote{background:rgba(30,35,42,.6)}.post-content blockquote.callout{position:relative}.post-content blockquote.callout .callout-header{display:flex;align-items:center;gap:8px;font-weight:600;font-size:1em;margin:0 0 16px;padding:0;background:0 0;border-bottom:none}body.dark .post-content blockquote.callout .callout-header{background:0 0;border-bottom-color:transparent}.post-content blockquote.callout .callout-icon{font-size:1.2em;line-height:1;display:flex;align-items:center}.post-content blockquote.callout .callout-title{font-weight:600}.post-content blockquote.callout p:first-of-type{margin-top:0}.post-content blockquote.callout p:last-child{margin-bottom:0}body:not(.dark) .post-content blockquote.callout-note,body:not(.dark) .post-content blockquote.callout-info,body:not(.dark) .post-content blockquote.callout-abstract,body:not(.dark) .post-content blockquote.callout-quote{background:rgba(219,234,254,.5);border-left-color:#3b82f6}body.dark .post-content blockquote.callout-note,body.dark .post-content blockquote.callout-info,body.dark .post-content blockquote.callout-abstract,body.dark .post-content blockquote.callout-quote{background:rgba(30,58,138,.2);border-left-color:#60a5fa}body:not(.dark) .post-content blockquote.callout-note .callout-header,body:not(.dark) .post-content blockquote.callout-info .callout-header,body:not(.dark) .post-content blockquote.callout-abstract .callout-header,body:not(.dark) .post-content blockquote.callout-quote .callout-header{color:#1e40af}body.dark .post-content blockquote.callout-note .callout-header,body.dark .post-content blockquote.callout-info .callout-header,body.dark .post-content blockquote.callout-abstract .callout-header,body.dark .post-content blockquote.callout-quote .callout-header{color:#93c5fd}body:not(.dark) .post-content blockquote.callout-tip,body:not(.dark) .post-content blockquote.callout-success{background:rgba(209,250,229,.5);border-left-color:#10b981}body.dark .post-content blockquote.callout-tip,body.dark .post-content blockquote.callout-success{background:rgba(6,78,59,.2);border-left-color:#34d399}body:not(.dark) .post-content blockquote.callout-tip .callout-header,body:not(.dark) .post-content blockquote.callout-success .callout-header{color:#047857}body.dark .post-content blockquote.callout-tip .callout-header,body.dark .post-content blockquote.callout-success .callout-header{color:#6ee7b7}body:not(.dark) .post-content blockquote.callout-warning,body:not(.dark) .post-content blockquote.callout-bug{background:rgba(254,243,199,.5);border-left-color:#f59e0b}body.dark .post-content blockquote.callout-warning,body.dark .post-content blockquote.callout-bug{background:rgba(120,53,15,.2);border-left-color:#fbbf24}body:not(.dark) .post-content blockquote.callout-warning .callout-header,body:not(.dark) .post-content blockquote.callout-bug .callout-header{color:#b45309}body.dark .post-content blockquote.callout-warning .callout-header,body.dark .post-content blockquote.callout-bug .callout-header{color:#fcd34d}body:not(.dark) .post-content blockquote.callout-danger,body:not(.dark) .post-content blockquote.callout-failure,body:not(.dark) .post-content blockquote.callout-error{background:rgba(254,226,226,.5);border-left-color:#ef4444}body.dark .post-content blockquote.callout-danger,body.dark .post-content blockquote.callout-failure,body.dark .post-content blockquote.callout-error{background:rgba(127,29,29,.2);border-left-color:#f87171}body:not(.dark) .post-content blockquote.callout-danger .callout-header,body:not(.dark) .post-content blockquote.callout-failure .callout-header,body:not(.dark) .post-content blockquote.callout-error .callout-header{color:#b91c1c}body.dark .post-content blockquote.callout-danger .callout-header,body.dark .post-content blockquote.callout-failure .callout-header,body.dark .post-content blockquote.callout-error .callout-header{color:#fca5a5}body:not(.dark) .post-content blockquote.callout-question{background:rgba(237,233,254,.5);border-left-color:#8b5cf6}body.dark .post-content blockquote.callout-question{background:rgba(76,29,149,.2);border-left-color:#a78bfa}body:not(.dark) .post-content blockquote.callout-question .callout-header{color:#6d28d9}body.dark .post-content blockquote.callout-question .callout-header{color:#c4b5fd}body:not(.dark) .post-content blockquote.callout-example{background:rgba(207,250,254,.5);border-left-color:#06b6d4}body.dark .post-content blockquote.callout-example{background:rgba(22,78,99,.2);border-left-color:#22d3ee}body:not(.dark) .post-content blockquote.callout-example .callout-header{color:#0e7490}body.dark .post-content blockquote.callout-example .callout-header{color:#67e8f9}.post-content hr{margin:30px 0;height:2px;background:var(--tertiary);border:0}.post-content iframe{max-width:100%}.post-content img{border-radius:calc(var(--radius) + 2px);margin:calc(var(--content-gap) * 1.2)auto;max-width:100%;height:auto;display:block;border:1px solid #d0d7de;box-shadow:0 12px 30px -24px rgba(27,31,36,.6);transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease;width:auto}.post-content>p>img{width:auto;max-width:100%}.post-content>p:has(>img){display:inline-block;max-width:100%;text-align:center;width:100%}.post-content>p:has(>img) img{margin-left:auto;margin-right:auto}body:not(.dark) .post-content img{background:rgba(255,255,255,.97);border-color:#d0d7de;box-shadow:0 20px 32px -32px rgba(27,31,36,.4)}body.dark .post-content img{background:rgba(19,23,30,.85);border-color:rgba(255,255,255,.2);box-shadow:0 16px 32px -28px rgba(0,0,0,.8)}.post-content img:hover{transform:translateY(-2px);box-shadow:0 24px 48px -32px rgba(27,31,36,.8);cursor:zoom-in}body.dark .post-content img:hover{box-shadow:0 24px 48px -32px #000}.post-content img{max-height:800px;max-width:100%;object-fit:contain}.post-content img[width]:is([width~="56"],[width~="64"],[width~="32"]),.post-content img[style*=width][style*="56"],.post-content img[style*=width][style*="64"],.post-content img[style*=width][style*="32"]{display:inline;border:none;box-shadow:none;margin:0;vertical-align:middle}.post-content img[src*="#center"]{margin-left:auto;margin-right:auto}.post-content figure{margin:calc(var(--content-gap) * 1.2)0}.post-content figure.align-center{text-align:center}.post-content figure img{margin:0 auto}.post-content figure>figcaption{color:var(--primary);font-size:.95em;font-weight:600;margin:12px 0 8px;text-align:center}.post-content figure>figcaption>p{color:var(--secondary);font-size:.9em;font-weight:400;margin:4px 0}@media screen and (max-width:860px){.post-content img{max-height:500px;border-radius:calc(var(--radius));max-width:100%}.post-content p img{display:block;width:auto;max-width:100%;margin:1rem auto}}.post-footer{margin-top:56px}.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}h1:hover .anchor,h2:hover .anchor,h3:hover .anchor,h4:hover .anchor,h5:hover .anchor,h6:hover .anchor{display:inline-flex;color:var(--secondary);margin-inline-start:8px;font-weight:500;user-select:none}.paginav{display:flex;line-height:30px}.paginav a{padding-inline-start:14px;padding-inline-end:14px;border-radius:var(--radius)}.paginav .title{letter-spacing:1px;text-transform:uppercase;font-size:small;color:var(--secondary)}.paginav .prev,.paginav .next{width:50%}.paginav span:hover:not(.title){box-shadow:0 1px}.paginav .next{margin-inline-start:auto;text-align:right}[dir=rtl] .paginav .next{text-align:left}h1>a>svg{display:inline}img.in-text{display:inline;margin:auto}@media screen and (max-width:1400px){.toc-wrapper{flex:0 0 clamp(200px,22%,280px)}}@media screen and (max-width:1200px){.post-content-wrapper{flex-direction:column}.toc-float-button{left:20px;bottom:60px}.toc-wrapper{position:fixed;right:20px;bottom:80px;top:auto;z-index:100;flex:none;width:auto;max-width:90vw}.toc{position:static}body:not(.toc-collapsed) .toc-wrapper{width:320px;max-height:60vh}body.toc-collapsed .toc-wrapper{width:48px;height:48px;opacity:1;pointer-events:all;overflow:visible}body.toc-collapsed .toc{width:48px;height:48px;padding:0;border-radius:50%;overflow:hidden;box-shadow:0 4px 12px rgba(0,0,0,.15);transition:all .3s ease;display:flex;align-items:center;justify-content:center}body.toc-collapsed .toc:hover{box-shadow:0 6px 16px rgba(0,0,0,.25);transform:scale(1.05)}body.toc-collapsed .toc details{width:100%;height:100%}body.toc-collapsed .toc details summary{width:100%;height:100%;margin:0;display:flex;align-items:center;justify-content:center;padding:0}body.toc-collapsed .toc-title-wrapper{width:100%;height:100%;justify-content:center}body.toc-collapsed .toc .details{display:none}body.toc-collapsed .toc-toggle{margin:0;border:none;background:0 0}body.toc-collapsed .toc .inner{display:none}body:not(.toc-collapsed) .toc{box-shadow:0 8px 24px rgba(0,0,0,.2);max-height:60vh;overflow-y:auto}.post-content{max-width:100%}body.toc-collapsed .post-content{max-width:800px;margin:0 auto}}@media screen and (max-width:768px){.toc-float-button{left:16px;bottom:60px;width:42px;height:42px;padding:12px}.toc-wrapper{right:16px;bottom:70px}body:not(.toc-collapsed) .toc-wrapper{width:calc(100vw - 32px);max-width:360px}body.toc-collapsed .toc-wrapper{width:44px;height:44px}body.toc-collapsed .toc{width:44px;height:44px}}@media screen and (max-width:480px){.toc-float-button{left:12px;bottom:60px;width:42px;height:42px;padding:12px}.toc-wrapper{right:12px;bottom:60px}body:not(.toc-collapsed) .toc-wrapper{width:calc(100vw - 24px);left:12px;right:12px}body.toc-collapsed .toc-wrapper{width:40px;height:40px;left:auto}body.toc-collapsed .toc{width:40px;height:40px}body.toc-collapsed .post-content{max-width:100%!important}}.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;border-bottom:1px solid var(--secondary)}.footer a:hover{border-bottom:1px solid var(--primary)}.top-link{visibility:hidden;position:fixed;bottom:60px;right:30px;z-index:99;background:var(--tertiary);width:42px;height:42px;padding:12px;border-radius:64px;transition:visibility .5s,opacity .8s linear}.top-link,.top-link svg{filter:drop-shadow(0 0 0 var(--theme))}.footer a:hover,.top-link:hover{color:var(--primary)}.top-link:focus,#theme-toggle:focus{outline:0}.nav{display:flex;flex-wrap:wrap;justify-content:space-between;max-width:calc(var(--nav-width) + var(--gap) * 2);margin-inline-start:auto;margin-inline-end:auto;line-height:var(--header-height)}.nav a{display:block}.logo,#menu{display:flex;margin:auto var(--gap)}.logo{flex-wrap:inherit}.logo a{font-size:24px;font-weight:700}.logo a img,.logo a svg{display:inline;vertical-align:middle;pointer-events:none;transform:translate(0,-10%);border-radius:6px;margin-inline-end:8px}button#theme-toggle{font-size:26px;margin:auto 4px}body.dark #moon{vertical-align:middle;display:none}body:not(.dark) #sun{display:none}#menu{list-style:none;word-break:keep-all;overflow-x:auto;white-space:nowrap}#menu li+li{margin-inline-start:var(--gap)}#menu a{font-size:16px}#menu .active{font-weight:500;border-bottom:2px solid}.lang-switch li,.lang-switch ul,.logo-switches{display:inline-flex;margin:auto 4px}.lang-switch{display:flex;flex-wrap:inherit}.lang-switch a{margin:auto 3px;font-size:16px;font-weight:500}.logo-switches{flex-wrap:inherit}.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}.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-content{margin:14px 0;font-size:16px;-webkit-line-clamp:3}.first-entry .entry-footer{font-size:14px}.home-info .entry-content{-webkit-line-clamp:unset}.post-entry{position:relative;margin-bottom:var(--gap);padding:var(--gap);background:var(--entry);border-radius:var(--radius);transition:transform .1s;border:1px solid var(--border)}.post-entry:active{transform:scale(.96)}.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}.entry-footer{color:var(--secondary);font-size:13px}.entry-link{position:absolute;left:0;right:0;top:0;bottom:0}.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}.entry-cover img{border-radius:var(--radius);width:100%;height:auto}.entry-cover a{color:var(--secondary);box-shadow:0 1px 0 var(--primary)}.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:10px}.profile img{border-radius:50%}.buttons{flex-wrap:wrap;max-width:400px}.button{background:var(--tertiary);border-radius:var(--radius);margin:8px;padding:6px;transition:transform .1s}.button-inner{padding:0 8px}.button:active{transform:scale(.96)}#searchbox input{padding:4px 10px;width:100%;color:var(--primary);font-weight:700;border:2px solid var(--tertiary);border-radius:var(--radius)}#searchbox input:focus{border-color:var(--secondary)}#searchResults li{list-style:none;border-radius:var(--radius);padding:10px;margin:10px 0;position:relative;font-weight:500}#searchResults{margin:10px 0;width:100%}#searchResults li:active{transition:transform .1s;transform:scale(.98)}#searchResults a{position:absolute;width:100%;height:100%;top:0;left:0;outline:none}#searchResults .focus{transform:scale(.98);border:2px solid var(--tertiary)}.terms-tags li{display:inline-block;margin:10px;font-weight:500}.terms-tags a{display:block;padding:3px 10px;background:var(--tertiary);border-radius:6px;transition:transform .1s}.terms-tags a:active{background:var(--tertiary);transform:scale(.96)}body:not(.dark) .bg{background-color:#f6f8fa}body:not(.dark) .chroma{color:#1f2328;background-color:#f6f8fa}body:not(.dark) .chroma .err{color:#f6f8fa;background-color:#82071e}body:not(.dark) .chroma .lnlinks{outline:none;text-decoration:none;color:inherit}body:not(.dark) .chroma .lntd{vertical-align:top;padding:0;margin:0;border:0}body:not(.dark) .chroma .lntable{border-spacing:0;padding:0;margin:0;border:0}body:not(.dark) .chroma .hl{background-color:#e5e5e5}body:not(.dark) .chroma .lnt,body:not(.dark) .chroma .ln{white-space:pre;-webkit-user-select:none;user-select:none;margin-right:.4em;padding:0 .4em;color:#7f7f7f}body:not(.dark) .chroma .line{display:flex}body:not(.dark) .chroma .k,body:not(.dark) .chroma .kc,body:not(.dark) .chroma .kd,body:not(.dark) .chroma .kn,body:not(.dark) .chroma .kp,body:not(.dark) .chroma .kr,body:not(.dark) .chroma .kt{color:#cf222e}body:not(.dark) .chroma .na,body:not(.dark) .chroma .nc,body:not(.dark) .chroma .nx{color:#1f2328}body:not(.dark) .chroma .no,body:not(.dark) .chroma .nd,body:not(.dark) .chroma .nt{color:#0550ae}body:not(.dark) .chroma .ni{color:#6639ba}body:not(.dark) .chroma .nl{color:#900;font-weight:700}body:not(.dark) .chroma .nn{color:#24292e}body:not(.dark) .chroma .nb{color:#6639ba}body:not(.dark) .chroma .bp{color:#6a737d}body:not(.dark) .chroma .no,body:not(.dark) .chroma .nv,body:not(.dark) .chroma .vc,body:not(.dark) .chroma .vg,body:not(.dark) .chroma .vi,body:not(.dark) .chroma .vm{color:#953800}body:not(.dark) .chroma .nf,body:not(.dark) .chroma .fm{color:#6639ba}body:not(.dark) .chroma .s,body:not(.dark) .chroma .sa,body:not(.dark) .chroma .sb,body:not(.dark) .chroma .sc,body:not(.dark) .chroma .dl,body:not(.dark) .chroma .sd,body:not(.dark) .chroma .s2,body:not(.dark) .chroma .se,body:not(.dark) .chroma .sh,body:not(.dark) .chroma .si,body:not(.dark) .chroma .sx,body:not(.dark) .chroma .sr,body:not(.dark) .chroma .s1{color:#0a3069}body:not(.dark) .chroma .ss{color:#032f62}body:not(.dark) .chroma .m,body:not(.dark) .chroma .mb,body:not(.dark) .chroma .mf,body:not(.dark) .chroma .mh,body:not(.dark) .chroma .mi,body:not(.dark) .chroma .il,body:not(.dark) .chroma .mo,body:not(.dark) .chroma .o,body:not(.dark) .chroma .ow{color:#0550ae}body:not(.dark) .chroma .p{color:#1f2328}body:not(.dark) .chroma .c,body:not(.dark) .chroma .ch,body:not(.dark) .chroma .cm,body:not(.dark) .chroma .c1,body:not(.dark) .chroma .cs,body:not(.dark) .chroma .cp,body:not(.dark) .chroma .cpf{color:#57606a}body:not(.dark) .chroma .gd{color:#82071e;background-color:#ffebe9}body:not(.dark) .chroma .gi{color:#116329;background-color:#dafbe1}body:not(.dark) .chroma .ge{color:#1f2328}body:not(.dark) .chroma .go{color:#1f2328}body:not(.dark) .chroma .gl{text-decoration:underline}body:not(.dark) .chroma .w{color:#f6f8fa}body.dark .bg{color:#e6edf3;background-color:#0d1117}body.dark .chroma{color:#e6edf3;background-color:#0d1117}body.dark .chroma .err{color:#f85149}body.dark .chroma .lnlinks{outline:none;text-decoration:none;color:inherit}body.dark .chroma .lntd{vertical-align:top;padding:0;margin:0;border:0}body.dark .chroma .lntable{border-spacing:0;padding:0;margin:0;border:0}body.dark .chroma .hl{background-color:#272b33}body.dark .chroma .lnt,body.dark .chroma .ln{white-space:pre;-webkit-user-select:none;user-select:none;margin-right:.4em;padding:0 .4em;color:#6e7681}body.dark .chroma .line{display:flex}body.dark .chroma .k,body.dark .chroma .kd,body.dark .chroma .kn,body.dark .chroma .kr,body.dark .chroma .kt,body.dark .chroma .o,body.dark .chroma .ow{color:#ff7b72}body.dark .chroma .kc,body.dark .chroma .no,body.dark .chroma .nv,body.dark .chroma .vc,body.dark .chroma .vg,body.dark .chroma .vi,body.dark .chroma .vm,body.dark .chroma .m,body.dark .chroma .mb,body.dark .chroma .mf,body.dark .chroma .mh,body.dark .chroma .mi,body.dark .chroma .il,body.dark .chroma .mo{color:#79c0ff}body.dark .chroma .nf,body.dark .chroma .fm,body.dark .chroma .nd{color:#d2a8ff;font-weight:700}body.dark .chroma .nt{color:#7ee787}body.dark .chroma .l,body.dark .chroma .ld,body.dark .chroma .s,body.dark .chroma .sa,body.dark .chroma .sb,body.dark .chroma .sc,body.dark .chroma .dl,body.dark .chroma .sd,body.dark .chroma .s2,body.dark .chroma .se,body.dark .chroma .sh,body.dark .chroma .si,body.dark .chroma .sx,body.dark .chroma .sr,body.dark .chroma .s1,body.dark .chroma .ss{color:#a5d6ff}body.dark .chroma .ni{color:#ffa657}body.dark .chroma .ne,body.dark .chroma .nc{color:#f0883e;font-weight:700}body.dark .chroma .py{color:#79c0ff}body.dark .chroma .nb,body.dark .chroma .bp{color:#79c0ff}body.dark .chroma .c,body.dark .chroma .ch,body.dark .chroma .cm,body.dark .chroma .c1,body.dark .chroma .cs,body.dark .chroma .cp,body.dark .chroma .cpf{color:#8b949e;font-style:italic}body.dark .chroma .gd{color:#ffa198;background-color:#490202}body.dark .chroma .gi{color:#56d364;background-color:#0f5323}body.dark .chroma .gp{color:#8b949e}body.dark .chroma .ge{font-style:italic}body.dark .chroma .gs{font-weight:700}body.dark .chroma .gh{color:#79c0ff;font-weight:700}body.dark .chroma .gu{color:#79c0ff}body.dark .chroma .go{color:#8b949e}body.dark .chroma .w{color:#6e7681}.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%}::-webkit-scrollbar-track{background:0 0}.list:not(.dark)::-webkit-scrollbar-track{background:var(--code-bg)}::-webkit-scrollbar-thumb{background:var(--tertiary);border:5px solid var(--theme);border-radius:var(--radius)}.list:not(.dark)::-webkit-scrollbar-thumb{border:5px solid var(--code-bg)}::-webkit-scrollbar-thumb:hover{background:var(--secondary)}::-webkit-scrollbar:not(.highlighttable,.highlight table,.gist .highlight){background:var(--theme)}.post-content .highlighttable td .highlight pre code::-webkit-scrollbar{display:none}.post-content :not(table) ::-webkit-scrollbar-thumb{border:2px solid var(--code-block-bg);background:#717175}.post-content :not(table) ::-webkit-scrollbar-thumb:hover{background:#a3a3a5}.gist table::-webkit-scrollbar-thumb{border:2px solid #fff;background:#adadad}.gist table::-webkit-scrollbar-thumb:hover{background:#707070}.post-content table::-webkit-scrollbar-thumb{border-width:2px}@media screen and (min-width:768px){::-webkit-scrollbar{width:19px;height:11px}}@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 (min-width:1100px){.toc-wrapper{display:block}}@media screen and (max-width:1099px){.post-content-wrapper{flex-direction:column;align-items:stretch;padding-inline:clamp(16px,6vw,calc(var(--gap) * 1.4))}.toc-wrapper{flex:none;order:0;display:block;width:100%;margin-bottom:var(--gap);position:static;top:auto;align-self:stretch}.toc{position:static;max-height:none;margin:0;padding:0;border:none;background:0 0}.toc details{border:1px solid var(--border);border-radius:var(--radius);background:var(--code-bg);overflow:hidden}.dark .toc details{background:var(--entry)}.toc summary{display:flex;align-items:center;justify-content:space-between;padding:.75em 1em;margin:0;font-weight:600;cursor:pointer;list-style:none}.toc summary::marker{content:""}.toc summary::-webkit-details-marker{display:none}.toc summary:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.toc summary::after{content:"▾";font-size:.85em;transition:transform .2s ease}.toc details[open] summary::after{transform:rotate(-180deg)}.toc .inner{margin:0;padding:0 1em 1em;opacity:1}.post-content{order:1;width:100%}.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}}