:root{--background-color:#fff;--text-primary:#1b1b1b;--text-secondary:#282828;--text-link:#005b9f;--card-background-primary:#ececec;--card-background-secondary:#c8c8c8;--code-background-color:#f8f8f8;--border-primary:#777;--border-secondary:#ddd;--blockquote-background:#f0f0f0;--header-background:#282828;--header-text-primary:#f4f4f4;--nav-link-hover:#777a;--link-hover:#777a;--svg-fill:#000;--accent-primary:#fe7a36;--accent-secondary:#3652ad}@media (prefers-color-scheme:dark){:root{--background-color:#121212;--text-primary:#f4f4f4;--text-secondary:#d4d4d4;--text-link:#4faeff;--card-background-primary:#343434;--card-background-secondary:#6b6b6b;--code-background-color:#2a2a2a;--border-primary:#747474;--border-secondary:#393939;--blockquote-background:#1e1e1e;--svg-fill:#fff}}@font-face{font-display:swap;font-family:JetBrains Mono;font-style:normal;font-weight:300;src:url(/assets/fonts/jetbrains_mono/jetbrains-mono-v20-latin_latin-ext-300.woff2)format("woff2"),url(/assets/fonts/jetbrains_mono/jetbrains-mono-v20-latin_latin-ext-300.ttf)format("truetype")}@font-face{font-display:swap;font-family:JetBrains Mono;font-style:italic;font-weight:300;src:url(/assets/fonts/jetbrains_mono/jetbrains-mono-v20-latin_latin-ext-300italic.woff2)format("woff2"),url(/assets/fonts/jetbrains_mono/jetbrains-mono-v20-latin_latin-ext-300italic.ttf)format("truetype")}@font-face{font-display:swap;font-family:JetBrains Mono;font-style:normal;font-weight:400;src:url(/assets/fonts/jetbrains_mono/jetbrains-mono-v20-latin_latin-ext-regular.woff2)format("woff2"),url(/assets/fonts/jetbrains_mono/jetbrains-mono-v20-latin_latin-ext-regular.ttf)format("truetype")}@font-face{font-display:swap;font-family:JetBrains Mono;font-style:italic;font-weight:400;src:url(/assets/fonts/jetbrains_mono/jetbrains-mono-v20-latin_latin-ext-italic.woff2)format("woff2"),url(/assets/fonts/jetbrains_mono/jetbrains-mono-v20-latin_latin-ext-italic.ttf)format("truetype")}@font-face{font-display:swap;font-family:JetBrains Mono;font-style:normal;font-weight:600;src:url(/assets/fonts/jetbrains_mono/jetbrains-mono-v20-latin_latin-ext-600.woff2)format("woff2"),url(/assets/fonts/jetbrains_mono/jetbrains-mono-v20-latin_latin-ext-600.ttf)format("truetype")}@font-face{font-display:swap;font-family:JetBrains Mono;font-style:italic;font-weight:600;src:url(/assets/fonts/jetbrains_mono/jetbrains-mono-v20-latin_latin-ext-600italic.woff2)format("woff2"),url(/assets/fonts/jetbrains_mono/jetbrains-mono-v20-latin_latin-ext-600italic.ttf)format("truetype")}@font-face{font-display:swap;font-family:Open Sans;font-style:normal;font-weight:300;src:url(/assets/fonts/opensans/open-sans-v40-latin_latin-ext_math_symbols-300.woff2)format("woff2"),url(/assets/fonts/opensans/open-sans-v40-latin_latin-ext_math_symbols-300.ttf)format("truetype")}@font-face{font-display:swap;font-family:Open Sans;font-style:italic;font-weight:300;src:url(/assets/fonts/opensans/open-sans-v40-latin_latin-ext_math_symbols-300italic.woff2)format("woff2"),url(/assets/fonts/opensans/open-sans-v40-latin_latin-ext_math_symbols-300italic.ttf)format("truetype")}@font-face{font-display:swap;font-family:Open Sans;font-style:normal;font-weight:400;src:url(/assets/fonts/opensans/open-sans-v40-latin_latin-ext_math_symbols-regular.woff2)format("woff2"),url(/assets/fonts/opensans/open-sans-v40-latin_latin-ext_math_symbols-regular.ttf)format("truetype")}@font-face{font-display:swap;font-family:Open Sans;font-style:normal;font-weight:600;src:url(/assets/fonts/opensans/open-sans-v40-latin_latin-ext_math_symbols-600.woff2)format("woff2"),url(/assets/fonts/opensans/open-sans-v40-latin_latin-ext_math_symbols-600.ttf)format("truetype")}@font-face{font-display:swap;font-family:Open Sans;font-style:italic;font-weight:600;src:url(/assets/fonts/opensans/open-sans-v40-latin_latin-ext_math_symbols-600italic.woff2)format("woff2"),url(/assets/fonts/opensans/open-sans-v40-latin_latin-ext_math_symbols-600italic.ttf)format("truetype")}@font-face{font-display:swap;font-family:Open Sans;font-style:normal;font-weight:700;src:url(/assets/fonts/opensans/open-sans-v40-latin_latin-ext_math_symbols-700.woff2)format("woff2"),url(/assets/fonts/opensans/open-sans-v40-latin_latin-ext_math_symbols-700.ttf)format("truetype")}@font-face{font-display:swap;font-family:Open Sans;font-style:italic;font-weight:700;src:url(/assets/fonts/opensans/open-sans-v40-latin_latin-ext_math_symbols-700italic.woff2)format("woff2"),url(/assets/fonts/opensans/open-sans-v40-latin_latin-ext_math_symbols-700italic.ttf)format("truetype")}html{min-width:220px}*,:before,:after{box-sizing:border-box}body{height:100%;color:var(--text-primary);text-rendering:optimizeLegibility;background-color:var(--background-color);margin:0;padding:0;font:400 15px/1.5 Open Sans,-apple-system,system-ui,sans-serif,Arial;overflow-x:hidden}main{max-width:1200px;margin-top:3.3rem;display:block}a{text-underline-offset:1px;color:var(--primary-text-color);text-decoration:underline}a:hover{text-decoration:none}h1{text-align:center;margin-block-start:0;font-size:2.5rem}h2,h3,h4,h5,h6{margin-block:.9rem .7rem}p{margin-block:.7rem}section{margin-block:1.5rem}abbr[title]{cursor:help;text-underline-offset:2px;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}pre,code{border:1px solid var(--border-secondary);background-color:var(--code-background-color);border-radius:3px;font-family:JetBrains Mono,monospace;font-size:.9em}code{padding:1px 5px}pre{padding:8px 12px;overflow-x:auto}pre>code{border:0;padding-left:0;padding-right:0}.highlight{background:var(--code-background-color);border-radius:3px}.highlighter-rouge .highlight{background:var(--code-background-color)}table{text-align:left;border-collapse:collapse;border:1px solid var(--border-primary);max-width:100%}table th,table td{border:1px solid var(--border-primary);padding:.25rem}table thead{background-color:var(--border-secondary)}blockquote{border-left:5px solid var(--accent-primary);background-color:var(--blockquote-background);color:var(--text-secondary);text-align:left;word-spacing:normal;margin-block:1rem;margin-inline:20px;padding:.5rem 1rem;font-style:italic}blockquote>blockquote{border-left:3px solid var(--accent-secondary);margin-inline:15px}.page-footer{margin-top:2.5rem;margin-bottom:2rem;padding-left:1rem;padding-right:1rem;position:relative}.footer-nav{flex-direction:row;justify-content:center;align-items:center;gap:1rem;height:2rem;display:flex}.footer-nav a{min-width:4rem;max-width:6rem;height:100%;color:var(--text-primary);border-radius:3px;justify-content:center;align-items:center;padding-left:.5rem;padding-right:.5rem;text-decoration:none;display:flex}.footer-nav a:hover{text-underline-offset:2px;text-decoration:underline}.footer-hr{border:0;border-top:1px solid var(--border-primary);max-width:1250px;margin-left:auto;margin-right:auto}.footer-text{opacity:.75;text-align:center;margin-top:.5rem;font-size:.8em}.page-header{z-index:100;background-color:var(--header-background);width:100%;height:3.3rem;color:var(--header-text-primary);border-bottom:1px solid var(--border-secondary);justify-content:center;padding:.3rem 1rem;display:flex;position:fixed}@media screen and (width<=380px){.page-header{padding:.3rem .5rem}}.page-header .page-header--container{justify-content:space-between;align-items:center;width:100%;max-width:1100px;height:100%;display:flex}.header-logo{float:left;height:100%;padding-top:.15rem;padding-bottom:.15rem}.header-logo a{color:var(--header-text-primary);height:100%;text-decoration:none;display:inline-block}.header-logo img{width:auto;height:100%;max-height:38px}.header-nav{float:right;flex-direction:row;justify-content:space-between;align-items:center;gap:.75rem;height:100%;display:flex}@media screen and (width<=380px){.header-nav{gap:.5rem}}.header-nav a{min-width:3rem;max-width:6rem;height:100%;color:var(--header-text-primary);border-radius:3px;justify-content:center;align-items:center;padding-left:.5rem;padding-right:.5rem;text-decoration:none;display:flex}.header-nav a:hover{background-color:var(--nav-link-hover)}.page-main{margin:0 auto;padding:5.3rem 2rem 1rem;position:relative}@media screen and (width<=380px){.page-main{padding:4.3rem 1.25rem}}.page-main img,.page-main svg{max-width:100%;height:auto;margin:0 auto;display:block}.hidden-link{color:var(--text-primary);text-decoration:none}.hidden-link:hover{text-decoration:none}.center{text-align:center}.hover-underline:hover{text-decoration:underline}.content-width{max-width:1000px;margin-left:auto;margin-right:auto}.post-header{margin-bottom:1rem}.post-header .post-header--title{text-align:center;margin-bottom:.5rem}.post-header .post-header--meta{opacity:.75;font-size:.9em}.post-header .post-header--meta a{color:var(--text-primary);text-decoration:underline}.post-header .post-header--meta a:hover{text-decoration:none}.post-content{margin-block:1rem}.post-content a{color:var(--text-link);text-underline-offset:2px;text-decoration:underline}.post-content a:hover{text-decoration:none}.post-content hr{border:0;border-top:1px solid var(--border-primary);margin:1rem 0}.post-content img{height:auto;max-height:500px;margin-left:auto;margin-right:auto}.post-card-container{grid-template-columns:1fr 1fr 1fr 1fr;grid-auto-rows:minmax(400px,1fr);justify-items:center;gap:1rem;height:fit-content;display:grid}@media (width<=1100px) and (width>=800px){.post-card-container{grid-template-columns:1fr 1fr;padding-left:2rem;padding-right:2rem}}@media (width<=800px) and (width>=680px){.post-card-container{grid-template-columns:1fr 1fr;padding-left:1rem;padding-right:1rem}}@media (width<=680px){.post-card-container{grid-template-columns:1fr}}.post-card{vertical-align:middle;border:3px solid #0000;border-image:linear-gradient(45deg,var(--accent-primary),var(--accent-secondary))1;max-width:28rem;transition:all .4s}.post-card:hover{box-shadow:0 0 10px 0 var(--border-primary);border-image:linear-gradient(45deg,var(--accent-secondary),var(--accent-primary))1}.post-card .post-card--link{vertical-align:top;color:var(--text-primary);text-decoration:none}.post-card .post-card--flex{flex-flow:column;height:100%;padding:1rem;display:flex}.post-card .post-card--image{vertical-align:top}.post-card .post-card--content{flex-flow:column;height:100%;display:flex}.post-card .post-card--title{margin-block-end:0;font-size:1.5rem}.post-card .post-card--subtitle{flex-grow:1;margin-block:.5rem;font-size:.95em}.post-card .post-card--date{opacity:.7;vertical-align:bottom;margin-block-end:.5rem;font-size:.8em}.post-preview-container{width:100%;height:fit-content}.post-preview-hr{border:none;border-top:1px solid var(--border-secondary);margin:.65rem 0}.post-preview{width:100%;padding:.25rem 1rem;transition:all .4s}.post-preview:hover{box-shadow:0 0 5px 0 var(--border-primary);border-radius:5px}.post-preview .post-preview--link{color:var(--text-primary);text-decoration:none}.post-preview .post-preview--content{flex:2}.post-preview .post-preview--subtitle{margin-block:0 .5rem;font-size:.95em}.post-preview .post-preview--date{vertical-align:bottom;color:var(--text-secondary);margin-block:0 1rem;font-size:.8rem}.about{grid-template-rows:auto;grid-template-columns:minmax(250px,400px) 1fr;justify-content:space-between;align-items:center;gap:20px;margin-left:auto;margin-right:auto;display:grid}@media (width<=800px){.about{grid-template-columns:1fr}}.about .about--img{border:3px solid #0000;border-image:linear-gradient(45deg,var(--accent-primary),var(--accent-secondary))1;flex:38%;align-self:center;width:100%;min-width:250px;max-width:400px;height:auto;margin-left:auto;margin-right:auto}.about .about--content{word-wrap:break-word;word-wrap:auto-phrase;flex:55%}.about-social{flex-flow:wrap;justify-content:center;gap:1rem 15px;max-width:600px;margin:1rem auto 2rem;display:flex}.about-social a{align-items:center;display:flex}.about-social a svg{aspect-ratio:1;width:32px;height:auto;fill:var(--svg-fill);transition:fill .3s}.about-social a svg:hover{fill:var(--accent-secondary)}@media (prefers-color-scheme:dark){.about-social a svg:hover{fill:var(--accent-primary)}}.btn{border:1px solid var(--border-secondary);color:var(--text-primary);background-color:#0000;border-radius:.5rem;padding:.5rem 1rem;text-decoration:none;transition:background-color .3s,color .3s;display:inline-block}.btn:hover{background-color:var(--border-secondary);color:var(--text-primary)}