:root{--content-width:1120px;--container-width:810px;--light-primary-color:255, 255, 255;--light-secondary-color:#dddddd;--light-tertiary-color:#272822;--light-text-color:black;--copy-btn-bg:rgba(0, 0, 0, 0.7);--copy-btn-bg-hover:rgba(0, 0, 0, 0.9);--copy-btn-text:white}@font-face{font-family:monaspace neon var;font-weight:400 700;src:url(/fonts/MonaspaceNeonVarVF[wght,wdth,slnt].woff2)format("woff2-variations");font-display:swap}html{background-color:rgb(var(--light-primary-color));color:var(--light-text-color);font-family:monaspace neon var,sans-serif;font-size:18px;min-height:100%;position:relative}body{margin-bottom:150px}b,strong{font-weight:700}a{color:inherit}a:hover,.nav-link:hover{color:var(--accent-color);fill:var(--accent-color)}main#content{margin:90px auto 0;width:var(--content-width)}main#content>.container{margin:auto;width:75%;max-width:var(--container-width)}.post.container{box-sizing:border-box;display:inline-block}.post-toc{box-sizing:border-box;display:inline-block;vertical-align:top;width:23%}.toc{position:fixed;top:100px;bottom:20px;overflow-x:hidden;overflow-y:hidden}.toc ul{list-style:none;margin:0;padding:0;font-size:14px}.toc ul li{margin-top:12px}.toc ul li a.level-1{padding-left:0}.toc ul li a.level-2{padding-left:10px}.toc ul li a.level-3{padding-left:20px}.toc ul li a.level-4{padding-left:30px}.toc ul li a{text-decoration:none}.toc ul li a.active{color:var(--accent-color)}img{height:auto;max-width:100%}.header{background-color:rgba(var(--light-primary-color),.95);color:inherit;height:50px;left:0;position:fixed;top:0;transition:box-shadow .3s ease-in-out;width:100%;z-index:5}.header a{text-decoration:none}.header .header-nav{height:50px;margin-top:0}.header-nav .avatar{border-radius:18px;float:left;height:100%;margin-left:15px}.header-nav .avatar img{border-radius:100%;display:block;height:38px;margin-top:5px;overflow:hidden;width:38px}.nav-item a{display:flex;align-items:center;justify-content:center;gap:5px;height:100%;width:100%}.nav-link span svg,.nav-link a svg{height:20px;margin:-3px auto;stroke-width:2;width:20px}.left-nav-links,.right-nav-links .nav-link{display:inline-block;padding:0 2px}.left-nav-links,.right-nav-links .nav-link a,.left-nav-links,.right-nav-links .nav-link span{display:block;padding:0 6px}.right-nav-links .nav-icons-divider{border-color:inherit;border-right:1px solid;color:var(--light-secondary-color);margin:0 10px}.nav-link{cursor:pointer}.header-nav .left-nav-links{float:left;line-height:50px;margin-left:10px}.header-nav .right-nav-links{float:right;line-height:50px;margin-right:10px}.dark-theme-toggle:hover .feather-sun{fill:#000;color:#000;pointer-events:none}.dark-theme-toggle .feather{height:22px;stroke-linecap:round;stroke-linejoin:round;width:22px}#hamburger-menu-toggle{display:none}#hamburger-menu-toggle .feather{height:24px;stroke-linecap:round;stroke-linejoin:round;width:24px}.nav-hamburger-list{background:rgb(var(--light-primary-color));border-bottom:solid 1px var(--light-secondary-color);border-top:solid 1px var(--light-secondary-color);list-style-type:none;margin:0;padding:0;position:absolute;right:0;text-align:center;width:100%;z-index:5}.footer{bottom:0;color:inherit;left:0;margin-left:30%;overflow:hidden;padding:40px 0;position:absolute;text-align:center;font-size:1em;width:40%}.footer span{display:block;font-size:.85em;font-weight:300;padding:1px 0}.flex-break{flex-basis:100%;height:0;display:none}.visibility-hidden{visibility:hidden}.header-shadow{box-shadow:#dcdcdc 0 1px 5px}.post-tags{list-style-type:none;padding:0;margin:0;display:flex;flex-wrap:wrap;align-items:center}.post-tags .post-tag{border:2px solid;border-radius:4px;box-sizing:border-box;color:inherit;display:inline-block;font-size:14px;margin:0 8px 8px 0}.post-tags .post-tag:hover{background-color:var(--light-text-color);color:rgb(var(--light-primary-color))}.post-tag a{color:inherit;display:flex;align-items:center;padding:6px 12px;text-decoration:none;gap:6px}.post-tag a svg{width:14px;height:14px;flex-shrink:0}code,pre{background-color:var(--light-tertiary-color);box-sizing:border-box;color:#fff}pre{font-size:.95rem;overflow-x:auto;overflow-y:auto;padding:20px;white-space:pre;word-wrap:normal;overflow-wrap:normal}code{box-decoration-break:clone;word-wrap:normal;font-size:.8em}:not(pre)>code{background-color:var(--light-secondary-color)!important;color:var(--light-text-color);padding:1px 4px;white-space:nowrap}pre code{font-size:.9em;white-space:pre;word-wrap:normal;overflow-wrap:normal}.highlight pre,div[class*=language-] pre{white-space:pre;overflow-x:auto;word-wrap:normal;overflow-wrap:normal}.code-block-wrapper{position:relative;margin:1rem 0}.code-title-card{background:var(--light-secondary-color);color:var(--light-text-color);padding:.5rem .75rem;font-size:.875rem;font-weight:600;border-top-left-radius:.375rem;border-top-right-radius:.375rem;border-bottom:2px solid var(--light-tertiary-color);margin-bottom:0;position:relative;display:inline-block;box-shadow:0 2px 4px rgba(0,0,0,.1);z-index:1}.code-title-card::after{content:'';position:absolute;bottom:-2px;left:0;right:0;height:2px;background:var(--light-tertiary-color);border-radius:0 0 2px 2px}.code-header{position:absolute;top:.75rem;right:.75rem;z-index:10}.code-block-wrapper:has(.code-title-card) .code-header{top:calc(2.5rem + .75rem)}.code-title-card~.code-header{top:calc(2.5rem + .75rem)}.code-title-card~.highlight{margin-top:0}.code-title-card~.highlight pre{margin-top:0;border-top-left-radius:0;border-top-right-radius:0}.code-title-card~pre{margin-top:0;border-top-left-radius:0;border-top-right-radius:0}.copy-btn{background:var(--copy-btn-bg);color:var(--copy-btn-text);border:none;padding:.5rem;border-radius:.375rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s ease;opacity:.8}.copy-btn:hover{background:var(--copy-btn-bg-hover);opacity:1}.copy-btn.copied{background:var(--accent-color);opacity:1}.copy-btn svg{width:16px;height:16px}blockquote{border-left:1px solid var(--light-secondary-color);color:grey;padding-left:1rem;margin-left:0}hr{color:var(--light-secondary-color);margin:50px auto}table{border-collapse:collapse;margin:30px 0;text-align:left;display:block;overflow-x:auto}table thead{background-color:var(--light-secondary-color)}table td,table th{padding:1.4rem}table td{border-bottom:1px solid var(--light-secondary-color)}.home-about{text-align:center}.home-about .avatar img{border-radius:50%;height:auto;object-fit:cover}.home-about .avatar img.size-xs{height:7rem;width:7rem}.home-about .avatar img.size-s{height:9rem;width:9rem}.home-about .avatar img.size-m{height:11rem;width:11rem}.home-about .avatar img.size-l{height:13rem;width:13rem}.home-about .avatar img.size-xl{height:15rem;width:15rem}.home-about h1{font-size:1.99em}@media(max-width:400px){.home-about h1{font-size:1.5em;-webkit-text-size-adjust:none}}@media(max-width:300px){.home-about h1{font-size:1em;-webkit-text-size-adjust:none}}@media(max-width:300px){.home-about h3{font-size:.75em;-webkit-text-size-adjust:none}}.social-icons{text-align:center}.social-icons .social-icons-list{display:inline-block;list-style-type:none;padding:0;text-align:center}.social-icons-list .social-icon{box-sizing:border-box;display:inline-block;fill:var(--light-text-color);height:24px;margin:0 6px;width:24px}.social-icon a svg path{transition:fill .15s ease}.markdown-content{line-height:1.25;width:80%;margin:0 auto}.home-posts{margin:0 auto;padding-top:10px;width:80%}.post [role=doc-subtitle]{font-size:1.1em;font-style:italic}.post{overflow-wrap:break-word}.post .post-date,.prev-post-date,.next-post-date{color:gray}.post .post-content{line-height:1.7;margin-top:50px;letter-spacing:1px}.post-content h1,.post-content h2,.post-content h3,.post-content h4{scroll-margin-top:55px}.post-content h1{margin-top:40px}.post-content h2{margin-top:35px}.post-content h3{margin-top:30px}.post-content h4{margin-top:25px}.post-content h5{margin-top:20px}.post-content img{display:block;margin-left:auto;margin-right:auto}.list-posts .list-title{text-align:center}.list-posts .posts-year{margin-top:70px}.list-posts .post-title{margin:18px 0 0 15px}.list-posts a{text-decoration:none}.post-title .post-link,.post-title .post-date{display:inline-block}.post-title .post-link{width:73%}.tags-list .post-tags{margin-top:50px}.tags-list .post-tags .post-tag{margin:0 8px 8px 0;padding:0}.tags-list .post-tags .post-tag a{border-radius:inherit;padding:0;display:flex;align-items:center;gap:6px}.tags-list .post-tags .post-tag a svg{width:14px;height:14px;margin-left:8px;flex-shrink:0}.tags-list .post-tags .post-tag a div{display:inline-block}.tags-list .post-tags .post-tag a .tag-name{padding:5px 8px}.tags-list .post-tags .post-tag a .tag-posts-count{background-color:var(--light-secondary-color);border-radius:inherit;color:inherit;opacity:.8;padding:6px;position:relative;z-index:0}.tags-list .post-tags .post-tag:hover a .tag-posts-count{background-color:var(--light-text-color);color:rgb(var(--light-primary-color))}.text-404{margin-top:125px;text-align:center}@media only screen and (max-width:1120px){main#content{width:auto}}@media only screen and (max-width:820px){body{font-size:.95rem;-webkit-text-size-adjust:none}.flex-break{display:block}.home-about .avatar img{border-radius:50%;height:7rem;width:7rem}.right-nav-links .nav-link,.nav-icons-divider{display:none}#hamburger-menu-toggle{display:inline-block}main#content{box-sizing:border-box;padding:0 1.5rem;width:auto}.markdown-content,.home-posts{width:auto;margin:0}main#content .container{width:100%}.home-about{margin:0 auto}.toc{display:none}.list-posts{flex:1}.list-posts .post-date{color:gray}.footer{margin-left:0;width:100%}}@media only screen and (min-width:820px){.nav-hamburger-list{visibility:hidden!important}}.sr-only{position:absolute;left:-1e4px;top:auto;width:1px;height:1px;overflow:hidden}.prev-next{overflow:hidden}.prev-post{float:left;text-align:left}.next-post{float:right;text-align:right}.prev-post,.next-post{max-width:33%}.arrow-logo{border-radius:50%;bottom:20px;cursor:pointer;display:none;font-size:24px;padding:10px 8px 10px 10px;position:fixed;right:20px;z-index:5;background-color:var(--light-tertiary-color);width:25px;height:25px}.arrow-logo path{fill:var(--light-secondary-color)}.arrow-logo:hover{fill:var(--accent-color)}