@font-face{font-family:Literata;src:url(/fonts/Literata/Literata-VariableFont_opsz,wght.woff2)format(woff2);font-style:normal;font-weight:200 900;font-display:swap}@font-face{font-family:Literata;src:url(/fonts/Literata/Literata-Italic-VariableFont_opsz,wght.woff2)format(woff2);font-style:italic;font-weight:200 900;font-display:swap}@font-face{font-family:Open Sans;src:url(/fonts/OpenSans/OpenSans-Medium.woff2)format(woff2);font-style:normal;font-weight:500;font-display:swap}@font-face{font-family:Open Sans;src:url(/fonts/OpenSans/OpenSans-Bold.woff2)format(woff2);font-style:normal;font-weight:700;font-display:swap}@font-face{font-family:JetBrains Mono;src:url(/fonts/JetBrains_Mono/JetBrainsMono-VariableFont_wght.woff2)format(woff2);font-style:normal;font-weight:100 800;font-display:swap}@font-face{font-family:JetBrains Mono;src:url(/fonts/JetBrains_Mono/JetBrainsMono-Italic-VariableFont_wght.woff2)format(woff2);font-style:italic;font-weight:100 800;font-display:swap}code,.code-toolbar{--normal:#c0caf5;--builtin:#f7768e;--function:#7aa2f7;--symbol:#2ac3de;--punctuation:#89ddff;--string:#9ece6a;--keyword:#9d7cd8;--operator:#89ddff;--constant:#ff9e64;--variable:#c0caf5;--comment:#565f89}code{color:var(--normal)}code .comment{color:var(--comment);font-style:italic}code .builtin,code .import{color:var(--builtin)}code .string{color:var(--string)}code .type,code .type_builtin{color:var(--symbol)}code .variable{color:var(--variable)}code .operator,code .function_builtin,code .module{color:var(--operator)}code .punctuation,code .punctuation_delimiter{color:var(--punctuation)}code .keyword,code .keyword_modifier,code .keyword_function{color:var(--keyword)}code .number{color:var(--constant)}code .function,code .function_call{color:var(--function)}:root{--bg-color:#1b1c22;--fg-color:#eee;--fg-accent-color:#aab;--accent-color:#16171d;--link-color:#73daca;--border-accent-color:#556;--font-mono:"JetBrains Mono","SFMono-Regular","Cascadia Code",Consolas,monospace;--font-serif:"Literata",Georgia,serif;--font-sans:"Open Sans","Avenir Next","Segoe UI",sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:16px}html{line-height:1.75}body{color:var(--fg-color);background-color:var(--bg-color);font-family:var(--font-sans);text-rendering:optimizeLegibility;display:flex;flex-direction:column;min-height:calc(100vh - 4rem);margin:0;padding-top:4rem}#content{box-sizing:border-box;font-family:var(--font-serif);flex:1;align-self: center;width:min(720px,100vw);padding:1.25rem 1rem}footer{box-shadow:0 -1px 10px var(--accent-color);background-color:var(--accent-color);text-align:center;min-height:50px;margin-top:1rem;padding:.75rem 1rem 1rem;font-weight:500}blockquote{border-left:3px solid var(--fg-color);color:#f2f2f2;font-family:var(--font-serif);margin:1.5rem 0;padding-left:1rem;font-size:1.05em;line-height:1.7}a{color:var(--link-color);text-decoration:none}a:hover,button:hover{opacity:.8}nav{box-shadow:0 1px 10px var(--accent-color);background-color:var(--accent-color);position:fixed;z-index:50;display:flex;font-family:var(--font-sans);justify-content:space-between;height:4rem;font-size:.95rem;font-weight:650;top:0;left:0;right:0}nav a{color:var(--fg-color);box-sizing:border-box;max-height:4rem;line-height:4rem}nav li{display:inline-block}.menu-side{flex:1}.menu-side-left{text-align:left}.menu-side-right{display:flex;text-align:right;justify-content:flex-end;align-items: center}.menu-center{text-align:center}.menu-link{display:inline-block;padding:0 .5rem}nav .current{border-bottom-style:solid;border-bottom-color:var(--fg-color);border-bottom-width:3px}h1,h2,h3,h4,h5,h6{font-weight:700;line-height:1.25;font-family:var(--font-sans);margin:0;font-size:1rem}h1{font-size:1.3rem}h2{font-size:1.2rem}h3{font-size:1.15rem}.description,.project-link-row,.profile-card,.tag,.blog-rss-link,header a,.item-card a,.section-header a,#page .contact-section a{font-family:var(--font-sans);font-weight:500}.description{color:var(--fg-accent-color);font-size:.95rem;line-height:1.65}.project-link-row{display:flex;flex-wrap:wrap;align-items: center;gap:.5rem;margin-top:.35rem}.profile-card{text-align:center;margin-bottom:1.25rem;padding:.75rem}.icon-space-xs{margin-right:.25rem}.icon{display:inline-block;fill:currentColor;vertical-align:-.125em;flex-shrink:0;width:1em;height:1em}.tag{display:inline-block;color:var(--fg-accent-color);transition:color .12s,opacity .12s;font-size:.92rem;line-height:1.4}.tag:before{content:"#";color:color-mix(in srgb,var(--fg-accent-color)72%,transparent);margin-right:.12rem}.tags{display:flex;list-style:none;flex-wrap:wrap;gap:.35rem .85rem;padding:0}.post-nav{display:flex;font-weight:600;font-family:var(--font-sans);justify-content:space-between;gap:1rem}.social-icon-link{display:inline-flex;justify-content:center;align-items: center;font-size:1.8rem}.copy-button .icon{display:block}.code-container{overflow:hidden;background-color:#24283b;border-radius:10px;margin:1.5rem 0}.code-toolbar{display:flex;background-color:#1c1e30;justify-content:flex-end;align-items: center;min-height:40px;padding:0 .25rem}.code-toolbar button.copy-button{cursor:pointer;color:var(--normal);vertical-align:middle;background-color:#0000;border:none;max-height:40px;padding:0 10px;font-size:1.6rem;line-height:40px}code{font-family:var(--font-mono);font-variant-ligatures:none;font-size:.95em}pre{font-family:var(--font-mono);overflow:auto;background-color:#24283b;border-radius:10px;margin:0;padding:1rem 1.125rem;font-size:.95rem;line-height:1.65}.code-container>pre{border-radius:0}.code-container>pre>code,pre>code{display:block;min-width:100%}:not(pre)>code{display:inline;background-color:#ffffff14;border-radius:.35rem;min-width:0;padding:.15em .35em}pre.nl{counter-reset:line;padding-left:0;padding-right:0}pre.nl>code{display:inline-block;width:max-content;min-width:100%}pre.nl .line:before{counter-increment:line;content:counter(line);color:var(--comment);display:inline-block;text-align:right;width:2.1em;min-height:1.2rem;padding-right:6px;font-style:normal}pre.nl .line{display:inline-block;box-sizing:border-box;width:100%;min-height:1.2rem;padding-right:1rem}pre.nl .line:hover,pre.nl .line:hover:before{background-color:#2f334d}pre.terminal{color:#ccc;background-color:#121212}pre>samp>kbd:before{content:"$ ";font-weight:400}kbd,.file{font-family:var(--font-mono);font-weight:700}figure{overflow:hidden;background-color:#121212;border-radius:10px;margin:1rem auto}figcaption{background-color:var(--accent-color);text-align:center;padding:5px}figure pre{border-radius:0}figure>.code-container{margin:0}img,figure{max-width:100%;height:auto}img{display:block;margin:0 auto}hr{color:var(--border-accent-color);background:linear-gradient(to right,var(--bg-color),var(--border-accent-color),var(--bg-color));border:0;height:1px;margin:.5rem 0}ul{list-style:none;margin:0;padding:0}p{margin:0}header{margin-bottom:1rem}.tooltip{position:absolute;background-color:var(--accent-color);white-space:nowrap;user-select:none;pointer-events:none;opacity:1;border-radius:5px;height:25px;max-height:25px;padding:2px 5px;transition:opacity .4s linear;font-size:14px}.item-list{list-style:none;margin:0 0 1rem;padding:0}.item-card{border-top:solid 1px var(--border-accent-color);padding:10px 0}#page .contact-section a{text-decoration:none}.item-card-title{color:var(--link-color);margin:0 0 .35rem;line-height:1.3}.item-card p{text-align:left!important;margin:0!important}#page p{text-align:justify;margin:1.15rem 0;font-size:1.125rem}#page li{margin:.55rem 0}#page a{text-decoration:underline}.section-header{display:flex;justify-content:space-between;align-items:baseline;gap:1rem}.section-title-group{display:flex;flex-wrap:wrap;align-items:baseline;gap:.75rem}.blog-rss-link{display:inline-block;margin-top:.5rem}@media (max-width:640px){.section-header{flex-direction:column;align-items: flex-start;gap:.35rem}}#page ul{list-style:disc;padding-left:1.4rem}.links li{display:inline;padding:.5rem}.social-links{display:flex;justify-content:center;gap:1rem;margin-top:1rem}.contact-section{border-top:1px solid var(--border-accent-color);padding-top:1rem}.hidden{display:none}
