@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/fonts/ibm-plex-mono-latin-400-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/fonts/ibm-plex-mono-latin-500-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:700;src:url(/fonts/ibm-plex-mono-latin-700-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:DM Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/fonts/dm-sans-latin-400-700-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:DM Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/fonts/dm-sans-latin-400-700-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:DM Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/fonts/dm-sans-latin-400-700-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}.skip-link{position:absolute;left:-9999px;top:auto;z-index:999;padding:.3rem .6rem;font-size:.75rem;background:var(--color-text);color:var(--color-bg);font-weight:700}.skip-link:focus{left:1rem;top:1rem}body.plain-bg{background-color:var(--color-bg)}#bg-canvas{position:fixed;top:0;left:0;width:100%;height:100%;z-index:-1;pointer-events:none;background-color:var(--color-bg)}html.lenis,html.lenis body{height:auto}.lenis.lenis-smooth{scroll-behavior:auto!important}.lenis.lenis-smooth [data-lenis-prevent]{overscroll-behavior:contain}.lenis.lenis-stopped{overflow:hidden}.lenis.lenis-scrolling iframe{pointer-events:none}:root{--color-bg: #e1e1d9;--color-text: #000000;--color-white: #ffffff;--color-accent: #bf796c;--color-secondary: #4e6b2e;--color-muted: #555555;--color-muted-strong: #333333;--color-dot: #888888;--color-code-bg: #1a1a1a;--color-code-text: #e1e1d9;--color-subtle: rgb(0 0 0 / 6%);--color-subtle-border: rgb(0 0 0 / 12%);--color-blockquote-bg: rgb(0 0 0 / 3%);--border: 3px solid #000000;--shadow: 5px 5px 0px #000000;--font-main: "IBM Plex Mono", monospace;--font-article: "DM Sans", sans-serif}*{box-sizing:border-box}html,body{margin:0;padding:0;font-family:var(--font-main);background-color:transparent;color:var(--color-text);line-height:1.6;overflow-x:hidden}a{color:inherit;text-decoration:none}h1,h2,h3,h4,h5,h6{margin:0;font-weight:700;text-transform:uppercase;line-height:1.2}button,.btn{display:inline-block;background:var(--color-bg);border:var(--border);padding:.8rem 1.5rem;font-family:var(--font-main);font-weight:700;text-transform:uppercase;box-shadow:var(--shadow);transition:all .1s ease;color:var(--color-text)}button:hover,.btn:hover{transform:translate(-2px,-2px);box-shadow:7px 7px 0 var(--color-text);background-color:var(--color-accent)}button:active,.btn:active{transform:translate(2px,2px);box-shadow:2px 2px 0 var(--color-text)}.skill-tag{border:2px solid var(--color-text);padding:.4rem .8rem;font-weight:700;font-size:.9rem;background:var(--color-bg);transition:transform .1s}.skill-tag:hover{background:var(--color-secondary);color:var(--color-white);transform:translate(-2px,-2px);box-shadow:2px 2px 0 var(--color-text)}.site-header{border-bottom:var(--border);padding:1rem 2rem;background:var(--color-bg);position:sticky;top:0;z-index:100}nav{display:flex;justify-content:space-between;align-items:center;max-width:1200px;margin:0 auto}.brand{font-size:1.5rem;font-weight:900;background:var(--color-text);color:var(--color-bg);padding:.2rem .5rem}.links a{margin-left:1.5rem;font-weight:700;border-bottom:2px solid transparent}.links a:hover{border-bottom:2px solid var(--color-secondary);color:var(--color-secondary)}.hamburger{display:none;flex-direction:column;justify-content:space-between;width:30px;height:21px;background:transparent;border:none;cursor:pointer;padding:0;z-index:200;box-shadow:none}.hamburger span{width:100%;height:3px;background:var(--color-text);transition:all .3s ease}.hamburger.active span:nth-child(1){transform:rotate(45deg) translate(5px,5px)}.hamburger.active span:nth-child(2){opacity:0}.hamburger.active span:nth-child(3){transform:rotate(-45deg) translate(7px,-8px)}.mobile-menu{position:fixed;top:0;left:0;width:100%;height:100vh;background:var(--color-bg);z-index:150;display:flex;justify-content:center;align-items:center;transform:translate(100%);transition:transform .3s ease-in-out}.mobile-menu.active{transform:translate(0)}.mobile-links{display:flex;flex-direction:column;gap:2rem;text-align:center}.mobile-links a{font-size:2rem;font-weight:700;color:var(--color-text)}@media(max-width:768px){.desktop-links{display:none}.hamburger{display:flex}}main{max-width:1200px;margin:2rem auto;padding:0 2rem;min-height:80vh}footer{border-top:var(--border);padding:2rem;text-align:center;margin-top:4rem;font-weight:700}
