@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/2f186ab49059fbbb-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/7be269dd6123b082-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/db5568a2cfd831e2-s.woff2) format("woff2");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/6760c1b492207d80-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/1f424c9580f97313-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/427e4a37d3642943-s.p.woff2) format("woff2");unicode-range:u+00??,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:JetBrains Mono Fallback;src:local("Arial");ascent-override:75.79%;descent-override:22.29%;line-gap-override:0.00%;size-adjust:134.59%}.__className_ecea63{font-family:JetBrains Mono,JetBrains Mono Fallback;font-weight:400;font-style:normal}.__variable_ecea63{--jetbrains-mono:"JetBrains Mono","JetBrains Mono Fallback"}.blog_container__DYK9T{display:flex;flex-direction:column;gap:2rem;padding:1rem}.blog_container__DYK9T pre{font-family:inherit!important}.blog_container__DYK9T article{box-shadow:0 0 2px var(--grey);background-color:var(--black);padding:1rem;font-size:clamp(.8rem,3vw,1rem)}.blog_container__DYK9T article a{color:var(--white);text-decoration:underline}.blog_header__RtN2v{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:2rem;border-bottom:2px solid var(--grey)}.blog_header__RtN2v h2{font-size:clamp(1rem,3vw,1.5rem)}.blog_header__RtN2v small{padding-left:.5rem;text-align:right}.blog_code__2KzYX{box-shadow:0 0 1px var(--grey);background:var(--medium-black)!important;padding:.25rem 0!important}.blog_code__2KzYX span{background:var(--medium-black);font-family:var(--jetbrains-mono)}.blog_code-inline__Epjwi{vertical-align:bottom;box-shadow:0 0 1px var(--grey);background-color:var(--medium-black);padding:0 .5rem;font-family:var(--jetbrains-mono)}.blog_code-wrapped__KUvvJ{max-height:300px;overflow:hidden!important}.blog_code-wrapped__KUvvJ:before{position:absolute;bottom:0;left:0;box-shadow:0 -1px 1px var(--grey),0 -1px 48px 48px var(--medium-black);background-color:var(--medium-black);width:100%;height:2rem;content:""}.blog_code-wrapped__KUvvJ:after{position:absolute;bottom:0;left:50%;vertical-align:center;transform:translate(-50%);cursor:pointer;padding-bottom:.25rem;content:"Click to expand";font-family:inherit}@media screen and (max-width:480px){.blog_header__RtN2v{display:block}.blog_header__RtN2v small{padding-left:0}}.footer_container___CsEG{box-shadow:0 -2px 0 var(--grey);text-align:center;display:flex;justify-content:center;align-items:center;padding:1rem;z-index:0;height:4rem}.footer_container___CsEG p{margin-right:1rem;text-align:center}.footer_container___CsEG a{margin:0 1rem;width:2rem;height:2rem;position:relative;display:inline-block}.footer_container___CsEG a:before{content:"";opacity:0}.footer_container___CsEG a:hover:before{opacity:1;transition:opacity .5s ease;content:attr(data-alt);position:absolute;font-size:.8rem;color:var(--white);border:1px solid var(--grey);background:var(--light-black);z-index:1;padding:.25rem;top:-.8rem;transform:translate(-50%,-50%);border-radius:2px}.footer_container___CsEG a img:hover{filter:brightness(52%)}@media screen and (max-width:600px){.footer_container___CsEG{height:5rem}.footer_container___CsEG p{width:min-content}}@media screen and (max-width:480px){.footer_container___CsEG{display:block;height:6.5rem}.footer_container___CsEG p{width:100%;margin:0 0 1rem}.footer_container___CsEG a{width:1.8rem;height:1.8rem}}@media screen and (max-width:368px){.footer_container___CsEG{height:8rem}}@font-face{font-family:Courier Prime;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/d76bee0872897641-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Courier Prime;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/111c93f1bc244164-s.p.woff2) format("woff2");unicode-range:u+00??,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:Courier Prime Fallback;src:local("Arial");ascent-override:58.08%;descent-override:25.41%;line-gap-override:0.00%;size-adjust:134.50%}.__className_5a0a43{font-family:Courier Prime,Courier Prime Fallback;font-weight:400;font-style:normal}.layout_content__CsJSF{display:flex;position:relative;flex-direction:column;justify-content:space-between;z-index:2;margin:3rem auto 0;border-right:2px solid var(--grey);border-left:2px solid var(--grey);max-width:min(1000px,100% - 4rem);min-height:calc(100vh - 3rem)}.logo_container__jXPgQ{--typewriter-speed:2s;--typewriter-steps:13;display:flex;position:relative;align-items:center;margin:0 auto;padding:.5em .3em;width:max-content;height:100%}.logo_container__jXPgQ:before{display:block;position:absolute;top:.3em;right:0;left:0;transform:scaleX(0);transform-origin:left;transition:transform .25s ease-in-out;background:var(--grey);height:2px;content:""}.logo_container__jXPgQ:hover:before{transform:scale(1)}.logo_container__jXPgQ a{flex-shrink:0;width:150px;height:max-content;color:var(--white);font-size:1.2rem;text-decoration:none;text-transform:uppercase}.logo_container__jXPgQ a:hover{color:var(--grey)}.logo_container__jXPgQ a:after,.logo_container__jXPgQ a:before{position:absolute;top:0;right:0;bottom:0;left:0;content:""}.logo_container__jXPgQ a:before{animation:logo_typewriter__IKzkf var(--typewriter-speed) steps(var(--typewriter-steps)) 2s forwards;background:var(--black);height:2rem}.logo_container__jXPgQ a:after{top:.82rem;animation:logo_typewriter__IKzkf var(--typewriter-speed) steps(var(--typewriter-steps)) 2s forwards,logo_blink__Qin1h .38s steps(var(--typewriter-steps)) 1s 10;background:transparent;width:.125em;height:1.2rem}@keyframes logo_typewriter__IKzkf{to{left:100%}}@keyframes logo_blink__Qin1h{to{background:var(--white)}}@media screen and (min-width:750px){.logo_container__jXPgQ{grid-column:2/3}}.mouselight_container__NVfoS{display:none}@media(hover:hover){.mouselight_container__NVfoS{display:block;position:fixed;top:0;left:0;z-index:0;width:100%;height:100%;overflow:hidden}.mouselight_container__NVfoS .mouselight_blur__mq1vX{position:relative;top:0;left:0;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);width:100%;height:100%;overflow:hidden}.mouselight_container__NVfoS .mouselight_light__XIcAN{position:absolute;top:50%;left:50%;translate:-50% -50%;opacity:.5;z-index:-1;animation:mouselight_rotate__1V2Cr 10s infinite;border-radius:50%;background:radial-gradient(circle at center,var(--black) 0,var(--light-black) 25%,var(--grey) 50%,var(--white) 75%,var(--grey) 100%);aspect-ratio:1;height:3rem}}@keyframes mouselight_rotate__1V2Cr{0%{rotate:0deg}50%{scale:1.1 1.1}to{rotate:1turn}}.navbar_container__uB8hB{position:fixed;top:0;left:0;z-index:3;border-bottom:2px solid var(--grey);background:var(--black);width:100%;height:3rem;text-align:center}.navbar_toggle__iTBDL{display:none}.navbar_toggle-label__zlMzz{display:flex;position:absolute;top:0;left:0;align-items:center;cursor:pointer;margin-left:1em;height:100%;color:var(--white)}.navbar_toggle-label__zlMzz span,.navbar_toggle-label__zlMzz span:after,.navbar_toggle-label__zlMzz span:before{display:block;position:relative;border-radius:2px;background:var(--white);width:2em;height:2px}.navbar_toggle-label__zlMzz span:after,.navbar_toggle-label__zlMzz span:before{position:absolute;content:""}.navbar_toggle-label__zlMzz span:before{bottom:8px}.navbar_toggle-label__zlMzz span:after{top:8px}.navbar_toggle-label-arrow__vVvLB{display:flex;position:absolute;right:calc(50% + 2em);bottom:-36px;left:calc(50% - 2em);justify-content:center;align-items:flex-end;transform:perspective(12px) rotateX(-8deg);cursor:pointer;border:2px solid var(--grey);border-top:1px solid var(--grey);background:var(--black);width:4em;height:2em}.navbar_toggle-label-arrow__vVvLB span{transform:rotate(315deg);border-top:.2em solid var(--white);border-right:.2em solid var(--white);width:20px;height:20px}.navbar_toggle-label-arrow__vVvLB:hover span{border-color:var(--grey)}.navbar_nav__OOUnU{position:absolute;top:100%;left:0;transform:scaleY(0);transform-origin:top;transition:transform .4s ease-in-out;border-bottom:2px solid var(--grey);background:var(--black);width:100%;text-align:left}.navbar_nav__OOUnU ul{margin:0;padding:0;list-style:none}.navbar_nav__OOUnU li{box-shadow:0 -2px 0 var(--light-black)}.navbar_nav__OOUnU a{display:block;opacity:0;transition:opacity .15s ease-in-out;margin-left:.5em;padding:.5em .3em;color:var(--white);font-size:1.2rem;text-decoration:none;text-transform:uppercase}.navbar_toggle__iTBDL:checked~nav{transform:scale(1)}.navbar_toggle__iTBDL:checked~nav a{opacity:1;transition:opacity .25s ease-in-out .25s}@media screen and (min-width:750px){.navbar_toggle-label-arrow__vVvLB,.navbar_toggle-label__zlMzz{display:none}.navbar_container__uB8hB{display:grid;grid-template-columns:1fr auto min(850px,100% - 160px) 1fr;padding:0 2rem 0 calc(2rem + 100vw - 100%)}.navbar_nav__OOUnU{all:unset;display:flex;grid-column:3/4;justify-content:flex-end;align-items:center}.navbar_nav__OOUnU ul{display:flex}.navbar_nav__OOUnU li{margin-left:2.5em;box-shadow:none}.navbar_nav__OOUnU a{display:inline;position:relative;opacity:1}.navbar_nav__OOUnU a:before{display:block;position:absolute;top:.05em;right:0;left:0;transform:scaleX(0);transform-origin:left;transition:transform .25s ease-in-out;background:var(--grey);height:2px;content:""}.navbar_nav__OOUnU a:hover:before{transform:scale(1)}}@media(hover:hover){.navbar_nav__OOUnU a:hover{color:var(--grey)}}.projects_container__XsZM6{display:block;padding:2rem}.projects_container__XsZM6 h2{margin-bottom:1rem;line-height:1}.projects_container__XsZM6 .projects_picture-container__IpER2{display:block;position:relative;margin-bottom:2rem;box-shadow:2px 2px 8px var(--black);border-radius:2px;width:100%}.projects_container__XsZM6 .projects_picture-container__IpER2:after{position:absolute;bottom:0;background:var(--light-black);padding:.5rem;width:100%;content:attr(data-description);color:var(--white);font-size:clamp(.8rem,3.5vw,1.1rem);text-align:center;text-transform:uppercase}.projects_container__XsZM6 .projects_picture-container__IpER2:last-child{margin-bottom:0}.projects_container__XsZM6 .projects_picture-container__IpER2 .projects_picture__6rxtl{border-radius:2px}.projects_sr-only__MHJQa{clip:rect(1px,1px,1px,1px);-webkit-clip-path:inset(50%);clip-path:inset(50%);height:1px;width:1px;margin:-1px;overflow:hidden;padding:0;position:absolute}@media screen and (min-width:750px){.projects_container__XsZM6{display:flex;flex-wrap:wrap;justify-content:center;gap:0 2rem}.projects_container__XsZM6 h2{flex-basis:100%}.projects_container__XsZM6 .projects_picture-container__IpER2{width:calc(50% - 1rem);margin-bottom:0}}@media(hover:hover){.projects_picture-container__IpER2:after{opacity:0;transition:transform .4s,box-shadow .4s,opacity .4s,bottom .4s;transform-origin:bottom}.projects_picture-container__IpER2:hover:after{bottom:-15px;transform:scaleX(1.05) scaleY(1.05);transform-origin:bottom;opacity:1;transition:transform .4s,box-shadow .4s,opacity .4s,bottom .4s;box-shadow:2px 2px 8px var(--black);pointer-events:none}.projects_picture-container__IpER2 .projects_picture__6rxtl{transition:transform .4s}.projects_picture-container__IpER2 .projects_picture__6rxtl:hover{transform:scale(1.05);transition:transform .4s}}:root{--black:#121212;--black-transparent:hsla(0,0%,7%,.8);--black-high-transparent:hsla(0,0%,7%,.5);--medium-black:#181818;--light-black:#1f1f1f;--grey:grey;--white:#f5f5f5;--soft-white:hsla(0,0%,96%,.8)}body,html{text-size-adjust:100%;-webkit-text-size-adjust:100%;box-sizing:border-box;margin:0;background:var(--light-black);padding:0;color:var(--soft-white);line-height:1.6;font-family:Courier Prime,monospace}*,:after,:before{box-sizing:inherit}body,h1,h2,h3,h4,h5,h6,p{margin:0;padding:0;font-weight:400}a{text-decoration:none}img{display:block;max-width:100%;height:auto}