@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+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,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+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,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+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,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+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,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+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,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+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}.skip-link{z-index:999;background:var(--color-text);color:var(--color-bg);padding:.3rem .6rem;font-size:.75rem;font-weight:700;position:absolute;top:auto;left:-9999px}.skip-link:focus{top:1rem;left:1rem}body.plain-bg{background-color:var(--color-bg)}#bg-canvas{z-index:-1;pointer-events:none;background-color:var(--color-bg);width:100%;height:100%;position:fixed;top:0;left:0}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-scheme:light;--color-bg:#e1e1d9;--color-surface:#e1e1d9;--color-text:#000;--color-border:#000;--color-shadow:#000;--color-inverse-bg:#000;--color-inverse-text:#e1e1d9;--color-accent:#bf796c;--color-on-accent:#000;--color-secondary:#4e6b2e;--color-on-secondary:#fff;--color-muted:#555;--color-muted-strong:#333;--color-dot:#888;--color-code-bg:#1a1a1a;--color-code-text:#e1e1d9;--color-subtle:#0000000f;--color-subtle-border:#0000001f;--color-blockquote-bg:#00000008;--border:3px solid var(--color-border);--shadow:5px 5px 0px var(--color-shadow);--font-main:"IBM Plex Mono", monospace;--font-article:"DM Sans", sans-serif}*{box-sizing:border-box}html{background-color:var(--color-bg)}html,body{font-family:var(--font-main);color:var(--color-text);margin:0;padding:0;line-height:1.6;overflow-x:hidden}a{color:inherit;text-decoration:none}h1,h2,h3,h4,h5,h6{text-transform:uppercase;margin:0;font-weight:700;line-height:1.2}button,.btn{background:var(--color-surface);border:var(--border);font-family:var(--font-main);text-transform:uppercase;box-shadow:var(--shadow);color:var(--color-text);padding:.8rem 1.5rem;font-weight:700;transition:all .1s;display:inline-block}button:hover,.btn:hover{box-shadow:7px 7px 0 var(--color-shadow);background-color:var(--color-accent);color:var(--color-on-accent);transform:translate(-2px,-2px)}button:active,.btn:active{box-shadow:2px 2px 0 var(--color-shadow);transform:translate(2px,2px)}.skill-tag{border:2px solid var(--color-border);background:var(--color-surface);padding:.4rem .8rem;font-size:.9rem;font-weight:700;transition:transform .1s}.skill-tag:hover{background:var(--color-secondary);color:var(--color-on-secondary);box-shadow:2px 2px 0 var(--color-shadow);transform:translate(-2px,-2px)}.site-header{border-bottom:var(--border);background:var(--color-bg);z-index:200;padding:1rem 2rem;position:sticky;top:0}nav{justify-content:space-between;align-items:center;max-width:1200px;margin:0 auto;display:flex}.brand{background:var(--color-inverse-bg);color:var(--color-inverse-text);padding:.2rem .5rem;font-size:1.5rem;font-weight:900}.nav-right{align-items:center;gap:1.5rem;display:flex}.links a{border-bottom:2px solid #0000;margin-left:1.5rem;font-weight:700}.links a:hover{border-bottom:2px solid var(--color-secondary);color:var(--color-secondary)}.hamburger{cursor:pointer;z-index:200;width:44px;height:44px;box-shadow:none;background:0 0;border:none;flex-direction:column;justify-content:space-between;padding:11px 7px;display:none}.hamburger:hover,.hamburger:active{color:var(--color-text);box-shadow:none;background:0 0;transform:none}.hamburger span{background:var(--color-text);width:100%;height:3px;transition:all .3s}.hamburger.active span:first-child{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{background:var(--color-bg);z-index:150;visibility:hidden;pointer-events:none;justify-content:center;align-items:center;width:100%;height:100vh;transition:transform .3s ease-in-out,visibility 0s linear .3s;display:flex;position:fixed;top:0;left:0;transform:translate(100%)}.mobile-menu.active{visibility:visible;pointer-events:auto;transition-delay:0s;transform:translate(0)}.mobile-links{text-align:center;flex-direction:column;gap:2rem;display:flex}.mobile-links a{color:var(--color-text);font-size:2rem;font-weight:700}@media (width<=768px){.desktop-links{display:none}.hamburger{display:flex}}@media (width<=360px){.site-header{padding-inline:1rem}}main{max-width:1200px;min-height:80vh;margin:2rem auto;padding:0 2rem}@media (width<=360px){main{padding-inline:1rem}}footer{border-top:var(--border);text-align:center;margin-top:4rem;padding:2rem;font-weight:700}
