@font-face{font-display:optional;font-family:jetbrains mono;font-style:normal;font-weight:400;src:url(/fonts/jetbrains-mono-v18-latin-regular.woff2)format('woff2')}@font-face{font-display:optional;font-family:jetbrains mono;font-style:italic;font-weight:400;src:url(/fonts/jetbrains-mono-v18-latin-italic.woff2)format('woff2')}@font-face{font-display:optional;font-family:jetbrains mono;font-style:normal;font-weight:700;src:url(/fonts/jetbrains-mono-v18-latin-800.woff2)format('woff2')}@font-face{font-display:optional;font-family:jetbrains mono;font-style:italic;font-weight:700;src:url(/fonts/jetbrains-mono-v18-latin-800italic.woff2)format('woff2')}:root{--background:hsl(0, 0%, 20%);--text:hsl(0, 0%, 85%);--contrast:hsl(150, 90%, 40%);--width:50rem;--font-main:JetBrains Mono, sans-serif, var(--font-emoji);--font-mono:JetBrains Mono, monospace, var(--font-emoji);--font-emoji:"Apple Color Emoji", "Noto Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";--step--1:clamp(0.8333rem, 0.832rem + 0.0065vi, 0.8398rem);--step-0:clamp(1rem, 0.9625rem + 0.1875vi, 1.1875rem);--step-1:clamp(1.2rem, 1.1042rem + 0.4791vi, 1.6791rem);--step-2:clamp(1.44rem, 1.2531rem + 0.9343vi, 2.3743rem);--step-3:clamp(1.728rem, 1.4022rem + 1.6292vi, 3.3572rem)}::selection{color:var(--text);background:var(--contrast)}::marker{font-weight:700}html{background:var(--background);color:var(--text);font-family:var(--font-main);font-size:var(--step-0);font-variant-ligatures:none;line-height:1.5;text-wrap:pretty}body{margin:0;max-width:var(--width);margin:auto;display:flex;flex-direction:column;min-height:100vh}body>*+*{margin-top:2rem}main{flex:1}main,header,footer{padding-left:2rem;padding-right:2rem}header,footer,time{font-size:var(--step--1)}header{position:sticky;padding-top:.2rem;padding-bottom:.2rem;top:0;background:var(--background);border-bottom:2px solid var(--contrast)}footer{border-top:2px solid var(--contrast)}nav{display:flex;flex-wrap:wrap;gap:1rem}nav a{text-decoration:none;color:inherit}h1,h2,h3{line-height:1.1;margin-top:2rem;text-wrap:balance;color:var(--contrast);scroll-margin-top:50px}h1{font-size:var(--step-3)}h2{font-size:var(--step-2)}h3{font-size:var(--step-1)}ul{padding-left:1em}blockquote{font-style:italic;margin-left:0;padding-left:1rem;border-left:2px solid var(--contrast)}blockquote em{font-style:normal}code,pre{font-family:var(--font-mono)}pre{font-size:.95rem;background:var(--text);color:var(--background);margin-bottom:2rem;overflow:auto;padding:.5rem 1rem}h1 code,h2 code,h3 code,p code,li code{background:#272822;border-radius:5px;padding:0 5px;color:#fff}dt,.articles a{font-weight:700}dd+dt{margin-top:1rem}li{margin-top:.5rem}a{color:var(--text);text-decoration-thickness:.2ex;text-underline-offset:.2ex}a:active{background:var(--text);color:var(--background)}hr{border:1px dashed var(--contrast)}.pagination{margin:2rem 0;display:flex;justify-content:center;align-items:center}.pagenum{padding:0 2rem;font-size:var(--step--1);display:flex;flex-direction:column;justify-content:center;align-items:center}.pagination a{display:flex;justify-content:center;align-items:center;text-decoration:none;color:var(--contrast)}.pagination .arrow{font-size:200%}article.preview h1{font-size:var(--step-1);margin-bottom:0}article.preview h1 a{color:var(--contrast)}img,video{max-width:100%}.blog-tags a{text-decoration:none;font-size:var(--step--1);margin-right:1em;word-spacing:-.25em}.video-16-9{aspect-ratio:16/9;width:100%}.donate{border:1px dashed var(--contrast);border-radius:5px;padding:1em;margin-bottom:1em}