@font-face{font-family:Astra Terminal;src:url(/fonts/AstraTerminal-Regular.woff2)format("woff2");font-weight:400;font-style:normal;font-display:swap}*{box-sizing:border-box;margin:0;padding:0}a,abbr,acronym,address,applet,article,aside,audio,b,big,blockquote,body,canvas,caption,center,cite,code,dd,del,details,dfn,div,dl,dt,em,embed,fieldset,figcaption,figure,footer,form,h1,h2,h3,h4,h5,h6,header,hgroup,html,i,iframe,img,ins,kbd,label,legend,li,mark,menu,nav,object,ol,output,p,pre,q,ruby,s,samp,section,small,span,strike,strong,sub,summary,sup,table,tbody,td,tfoot,th,thead,time,tr,tt,u,ul,var,video{font:inherit;vertical-align:baseline;border:0;margin:0;padding:0}article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section{display:block}a,body,h1,h2,h3,h4,h5,h6,li,p{line-height:1.2em}ol,ul{list-style:none}blockquote,q{quotes:none}blockquote:after,blockquote:before,q:after,q:before{content:none}table{border-collapse:collapse;border-spacing:0}button,input[type=reset],input[type=submit]{color:inherit;font:inherit;cursor:pointer;outline:inherit;text-align:left;background:0 0;border:0;margin:0;padding:0}body{--letter-ratio:1.666;--letter-size-base:16;--letter-count-h1:16;--letter-count-h2:calc(var(--letter-size-base)*2);--letter-count-h3:calc(var(--letter-size-base)*4);--letter-count-p:calc(var(--letter-size-base)*6);--letter-count-small:calc(var(--letter-size-base)*8);--letter-count-xsmall:calc(var(--letter-size-base)*10);--color-foreground:#000;--color-background:#fff;--color-highlight:#00ffa8;--color-highlight-inverted:#ff00a8;-webkit-font-smoothing:antialiased}body.dark-mode{--color-foreground:#fff;--color-background:#000}@media (prefers-color-scheme:dark){html{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}body{--color-foreground:#fff;--color-background:#000}body.dark-mode{--color-foreground:#000;--color-background:#fff}}@media (width<=1024px){body{--letter-size-base:14}}@media (width<=768px){body{--letter-size-base:12}}@media (width<=480px){body{--letter-size-base:6}}body,html{max-width:100vw;font-size:calc(99vw/var(--letter-count-p)*var(--letter-ratio));color:var(--color-foreground);background:var(--color-background);font-family:Astra Terminal,monospace;overflow-x:hidden}a,a:hover,a:visited a:link{color:var(--color-foreground);text-decoration:none}h3{font-size:calc(99vw/var(--letter-count-h3)*var(--letter-ratio))}h2{font-size:calc(99vw/var(--letter-count-h2)*var(--letter-ratio))}h1{font-size:calc(99vw/var(--letter-count-h1)*var(--letter-ratio))}.inverted{background:var(--color-foreground);color:var(--color-background)}a,h1,h2,h3,p{color:#fff;mix-blend-mode:difference}a:hover{color:#fff}.background{background:var(--color-background);width:100vw;height:100vh;position:fixed;top:0;left:0}.canvas{position:fixed;top:0;left:0}.canvas canvas{width:100vw;height:100vh}.canvas img,.canvas video{visibility:hidden;position:absolute}main{width:98vw;margin-left:1vw;position:relative}main>section{margin-bottom:7.5em}main>section h2{white-space:pre-wrap;margin-bottom:5vh}.logo{white-space:nowrap;margin-top:0;margin-left:-.5vw;line-height:1em;position:relative;top:0}.biography{text-align:justify;text-align-last:justify;width:66vw}.biography p{font-size:calc(99vw/var(--letter-count-h3)*var(--letter-ratio));margin-bottom:1em}.profile{flex-direction:row;justify-content:stretch;align-items:stretch;margin-top:10vh;display:flex;position:relative;overflow:hidden}.profile-picture{white-space:pre-wrap;width:100%;text-shadow:none;font-size:calc(99vw/300*var(--letter-ratio));-webkit-font-smoothing:initial;transition:transform 1.5s cubic-bezier(1,0,0,1);display:inline-block;transform:translate(-100%)}.profile-picture.in-view{transform:none}.profile-picture p{mix-blend-mode:normal;color:#fff;background:#000;display:inline-block}.profile-picture canvas,.profile-picture video{visibility:hidden;position:absolute;top:0}.profile-keywords{flex-direction:column;justify-content:space-between;align-self:stretch;align-items:center;width:100%;padding:0 5vw;display:flex}.profile-keywords p.start{align-self:flex-start}.profile-keywords p.center{align-self:center}.profile-keywords p.end{align-self:flex-end}.project{width:100%;padding-bottom:2em;position:relative}.project .project-summary{white-space:pre-wrap;mix-blend-mode:normal;flex-direction:row;justify-content:space-between;align-items:flex-start;display:flex;position:relative}.project .project-summary .project-summary-title{flex-direction:row;flex:2;align-items:flex-start;padding-right:2vw;display:flex}.project .project-summary .project-summary-title .title{flex:1;padding-bottom:.1em;line-height:1em}.project .project-summary .project-summary-title h3{display:inline-block}.project .project-summary .project-summary-title .read-more{mix-blend-mode:normal}.project .project-summary .project-summary-title .read-more .arrow,.project .project-summary .project-summary-title .read-more .text{color:#fff;mix-blend-mode:exclusion}.project .project-summary .project-summary-title .read-more .bleep{background:var(--color-highlight);vertical-align:text-bottom;width:1vw;height:1vw;margin-bottom:.3vw;transition:background .5s cubic-bezier(.19,1,.22,1);display:inline-block}.project .project-summary .project-summary-year{flex:1;padding-right:2vw}.project .project-summary .project-summary-description{flex:4;display:flex}.project .project-summary .project-summary-description .awards,.project .project-summary .project-summary-description .description,.project .project-summary .project-summary-description .tech,.project .project-summary .project-summary-description .url{font-size:calc(99vw/var(--letter-count-xsmall)*var(--letter-ratio))}.project .project-summary .project-summary-description .awards span span{color:#000;background:#fff;display:inline-block}.project .project-summary .project-summary-description .project-spacer{display:none}.project .project-summary .project-summary-link{color:#fff;mix-blend-mode:exclusion;flex:3;justify-content:flex-end;display:flex}.project .project-summary:hover .arrow{animation:.1s step-start infinite blink}.project .project-details{flex-direction:row;display:none;position:relative}.project .project-details .project-description{width:50vw;margin-top:4em;position:relative}.project .project-details .project-description a{font-size:calc(99vw/var(--letter-count-p)*var(--letter-ratio))}.project .project-details .project-description h3,.project .project-details .project-description p{text-align:justify;text-align-last:justify;overflow-wrap:break-word;margin-bottom:1em}.project .project-spacer{white-space:pre-wrap;font-size:calc(99vw/var(--letter-count-p)*var(--letter-ratio))}.project video{width:50vw;display:none;position:absolute;top:50%;left:55%;transform:translateZ(0)}.project.project-selected .project-summary .project-summary-title h3{color:var(--color-background);background:var(--color-highlight);mix-blend-mode:normal}.project.project-selected .project-summary .read-more .bleep{background:var(--color-foreground)}.project.project-selected video{display:flex}.projects h3{white-space:pre-wrap}.service{width:100%;position:relative}.service button h3{white-space:pre-wrap}.service button:hover h3 .arrow{animation:.1s step-start infinite blink}.service p{margin:1em 0}.service .service-description{display:none}.service .service-description .service-spacer{white-space:pre-wrap;font-size:calc(99vw/var(--letter-count-h3)*var(--letter-ratio))}.service .service-description p{flex:1;padding-right:5vw}.service.service-selected button:hover h3 .arrow{animation-name:none}.service.service-selected .service-description{display:flex}.contact .details{flex-direction:row;width:100%;display:flex}.contact .details p{width:25%;font-size:calc(99vw/var(--letter-count-small)*var(--letter-ratio))}.contact .details p .heart:after{content:"♥";animation:1s step-start infinite blink-heart}.footer{mix-blend-mode:difference;white-space:pre;flex-direction:row;width:100%;margin-bottom:0;display:flex;position:fixed;bottom:0}.footer p{mix-blend-mode:normal;width:25%;line-height:1em}.footer p button{pointer-events:none}.footer p .inverted{color:#000;background:#fff;padding:0 .25em}#awwwards{position:fixed;top:50%;right:0;transform:translateY(-50%)}@media (width<=480px){.hide-mobile{display:none}.biography{width:100%}.profile{flex-direction:column}.profile-keywords{width:auto;padding:0}.profile-keywords p{margin:5vw 0}.profile-picture{font-size:calc(99vw/152*var(--letter-ratio))}.project .project-summary{flex-direction:column}.project .project-summary .project-summary-link{align-self:flex-end}.project .project-summary .bleep{width:2vw;height:2vw;margin-bottom:.6vw}.project .project-details .project-description{width:70vw}.project .project-summary .project-summary-description .title{display:none}.project .project-summary .project-summary-description .text{margin:1em 0}.project .project-summary .project-summary-description .project-spacer{display:block}.contact .details{flex-wrap:wrap}.contact .details p{width:100%;font-size:calc(99vw/var(--letter-count-p)*var(--letter-ratio));margin-bottom:1em}.footer p{width:33%;font-size:calc(99vw/var(--letter-count-small)*var(--letter-ratio))}.footer p button{pointer-events:auto}}@media (width>=481px){.hide-desktop{display:none}}@keyframes blink{0%{opacity:1}50%{opacity:0}to{opacity:1}}@keyframes blink-heart{0%{content:"♥"}50%{content:"♡"}to{content:"♥"}}.intro{color:var(--color-background);background:var(--color-foreground);text-shadow:none;pointer-events:none;-webkit-font-smoothing:initial;z-index:5;width:100%;height:100vh;position:fixed;top:0;overflow:hidden}.intro .ascii{opacity:0;width:100%;height:100vh;font-size:calc(99vw/180*var(--letter-ratio));transition:opacity 1s linear;position:absolute;top:50%;left:50%;transform:translateZ(0)}.intro .ascii p{color:var(--color-background);mix-blend-mode:normal;white-space:pre;display:block;position:absolute;transform:translate(-50%,-50%)}.intro .ascii.started{opacity:1}.intro .intro-logo{font-size:calc(99vw/16*var(--letter-ratio));white-space:pre;color:#fff;mix-blend-mode:difference;line-height:1em;position:absolute;top:0;left:.5vw}.intro .intro-logo span{transform-origin:top;will-change:transform;width:.6em;display:inline-block}@media (width<=480px){.intro .ascii{font-size:calc(99vw/70*var(--letter-ratio))}}@media (prefers-reduced-motion:reduce){.profile-picture{transition-duration:0s}.intro{display:none}.project .project-summary:hover .arrow,.service button:hover h3 .arrow,.contact .details p .heart:after{animation:none}}.intro .logo{mix-blend-mode:difference;--letter-width:5vw;--letter-height:calc(var(--letter-width)*1.5625);margin-left:.5vw;display:flex;position:absolute}.intro .logo .letter{margin:calc(var(--letter-height)*.25) calc(var(--letter-width)*.1185) 0;width:var(--letter-width);height:var(--letter-height)}.intro .logo .letter canvas{visibility:visible;width:100%;height:100%;display:block}
