@font-face{font-family:IBM Plex Mono;src:url(/fonts/IBMPlexMono-Regular.ttf) format("truetype");font-weight:400}@font-face{font-family:IBM Plex Mono;src:url(/fonts/IBMPlexMono-Medium.ttf) format("truetype");font-weight:500;font-style:medium}:root{--color-bg: oklch(.14 0 0);--color-surface: oklch(.2 0 0);--color-fg: oklch(.95 0 0);--color-fg-muted: oklch(.82 .01 250);--color-fg-unselected: oklch(.5 .01 250);--color-border: oklch(.44 .06 258);--color-accent: oklch(.72 .2 258);--color-accent-hover: oklch(.66 .21 258);--color-accent-green: oklch(.81 .18 150);--color-accent-cyan: oklch(.82 .13 220);--color-accent-yellow: oklch(.88 .14 98);--color-accent-red: oklch(.68 .2 28);font-family:IBM Plex Mono,system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:dark;color:var(--color-fg-muted);background-color:var(--color-bg);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*,:before,:after{box-sizing:border-box}::selection{background-color:#161616;color:var(--color-accent-green);text-shadow:none}a{font-weight:500;color:var(--color-accent);text-decoration:inherit}a:hover{color:var(--color-accent-hover)}body{margin:0}html{overflow-y:auto;scrollbar-gutter:stable;scrollbar-width:thin;scrollbar-color:var(--color-fg-unselected) var(--color-bg)}@supports not (scrollbar-gutter: stable){html{overflow-y:scroll}}*::-webkit-scrollbar{width:.75rem;height:.75rem}*::-webkit-scrollbar-track{background:var(--color-bg)}*::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:999px;border:2px solid var(--color-bg)}*::-webkit-scrollbar-thumb:hover{background:var(--color-accent)}h1{font-size:3.2em;line-height:1.1;text-align:center}.wrapper{max-width:640px;padding:0 1.5rem;margin:0 auto}.header{padding:1rem 2rem;text-align:right}.header a{padding:0;color:var(--color-fg);position:relative;border-bottom:2px solid transparent}.header a:focus-visible{outline:none;border-bottom-color:var(--color-accent-cyan)}.header a:before{content:"";position:absolute;left:-.7rem;opacity:0;transition:opacity .15s ease}.header a:hover{color:var(--color-accent)}.header a:focus-visible:before{content:"›";opacity:1}.header a+a{margin-left:.6rem}.hero{display:flex;flex-direction:column;align-items:center;padding-block:1rem}.hero h1{font-size:1.6rem;margin:2rem 0 .4rem}.projects{padding:1rem;border:1px solid var(--color-border);border-radius:6px;margin-bottom:4rem}.wrapper:has(.projects){margin-top:2rem}.projects h2{font-size:1rem;margin:0;padding:0;color:var(--color-accent-cyan)}.projects i{font-size:.62rem;position:relative;top:-.1rem}.projects ul{margin:0;padding:.3rem 0;list-style:none}.projects ul:nth-child(2){margin-bottom:.8rem}.projects li{display:flex;padding-block:3px;cursor:pointer}.projects li:hover{color:var(--color-accent-cyan)}.projects li:focus-visible{outline:none;color:var(--color-fg);transition:color .15s ease}.projects li i{display:block;font-size:1.2rem;margin-right:.3rem;font-weight:500;line-height:1.5rem;color:var(--color-fg-unselected);transition:color .15s ease}.projects li:focus-visible i{outline:none;color:var(--color-accent-green)}.projects li div:nth-child(3){flex:1;margin:0 .7rem;height:1.3em;background-image:radial-gradient(currentColor 1.2px,transparent 1.2px);background-size:7px 7px;background-position:left 100%;background-repeat:repeat-x}.projects .tip{color:var(--color-fg-unselected);font-size:.8rem;margin-top:.2rem}.about.is-hidden{display:none}.single-project.is-active{margin-bottom:2rem}.single-project__loader,.single-project__error{display:flex;align-items:center;gap:.65rem;padding:1rem;border:1px solid var(--color-border);border-radius:6px;background:var(--color-bg)}.single-project__loader-dot{width:.65rem;height:.65rem;border-radius:50%;background:var(--color-accent-cyan);animation:single-project-loader .9s ease-in-out infinite alternate}.single-project__error p{margin:0;flex:1}@keyframes single-project-loader{0%{opacity:.35;transform:scale(.85)}to{opacity:1;transform:scale(1)}}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:var(--color-surface);color:var(--color-fg);cursor:pointer;transition:border-color .25s}button:hover{border-color:var(--color-border)}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}
