@keyframes styles_scroll__WBUAJ{0%{transform:translateX(0)}to{transform:translateX(-100%)}}@keyframes styles_shake__P8hRg{0%{transform:translateX(0)}50%{transform:translateX(-2px)}75%{transform:translateX(2px)}to{transform:translateX(0)}}.styles_previewBar__KTmCA{position:fixed;bottom:0;right:0;width:5em;background-color:var(--color-debug);border-radius:var(--border-radius-2) 0 0 0;padding:var(--spacer-4);text-align:center;text-transform:uppercase;z-index:var(--z-index-max)}.styles_previewBar__KTmCA:hover{background-color:var(--color-red)}.styles_previewBar__KTmCA:hover .styles_previewLabel__xJfOj{opacity:0;transform:translateY(100%)}.styles_previewBar__KTmCA:hover .styles_exitLabel__XT7Eq{opacity:1;transform:translateY(0)}.styles_previewBar__KTmCA .styles_label__xUGfo{font-family:var(--font-family-code);font-size:var(--font-size-code);line-height:var(--line-height-code);letter-spacing:var(--letter-spacing-code);font-weight:var(--font-weight-code);text-transform:var(--text-transform-code,none);font-style:normal;transition-property:"opacity, transform";transition-duration:.2s;transition-timing-function:var(--ease-in-out-quad);-webkit-transition-property:"opacity, transform";-webkit-transition-duration:.2s;-webkit-transition-timing-function:var(--ease-in-out-quad);position:absolute;top:var(--spacer-2);left:0;width:100%;height:100%;color:var(--color-surface)}.styles_previewBar__KTmCA .styles_previewLabel__xJfOj{opacity:1;transform:translateY(0)}.styles_previewBar__KTmCA .styles_exitLabel__XT7Eq{opacity:0;transform:translateY(100%)}.styles_canvas__XprRL{position:fixed;top:0;left:0;z-index:-1}@keyframes styles_scroll__Z_u7g{0%{transform:translateX(0)}to{transform:translateX(-100%)}}@keyframes styles_shake__R1Qdy{0%{transform:translateX(0)}50%{transform:translateX(-2px)}75%{transform:translateX(2px)}to{transform:translateX(0)}}.styles_link__EDcoo{text-decoration:none}.styles_link__EDcoo .styles_innerWrapper__4vDsx{height:calc(var(--line-height-body) + var(--spacer-2));width:max-content;overflow:hidden}.styles_link__EDcoo .styles_inner__WEMku{transition-property:transform;transition-duration:.2s;transition-timing-function:var(--ease-in-out-quad);-webkit-transition-property:transform;-webkit-transition-duration:.2s;-webkit-transition-timing-function:var(--ease-in-out-quad);display:block;padding:var(--spacer-1) var(--spacer-4);color:var(--color-text-navigation);overflow:hidden;transform:translateY(0)}.styles_link__EDcoo .styles_inner__WEMku.styles_hovered__wTlx5{transform:translateY(-100%)}.styles_link__EDcoo .styles_label__WEdDy{font-family:var(--font-family-body-bold);font-size:var(--font-size-body-bold);line-height:var(--line-height-body-bold);letter-spacing:var(--letter-spacing-body-bold);font-weight:var(--font-weight-body-bold);text-transform:var(--text-transform-body-bold,none);font-style:normal;color:var(--color-text-navigation)}@keyframes styles_scroll__17ojw{0%{transform:translateX(0)}to{transform:translateX(-100%)}}@keyframes styles_shake__XaF7J{0%{transform:translateX(0)}50%{transform:translateX(-2px)}75%{transform:translateX(2px)}to{transform:translateX(0)}}.styles_header__fpulf{position:fixed;bottom:0;left:50%;transform:translate(-50%);padding:var(--spacer-3);z-index:var(--z-index-header)}@media(min-width:820px){.styles_header__fpulf{top:0;left:0;bottom:unset;transform:unset;padding:var(--spacer-6)}}.styles_header__fpulf .styles_menuButton__Arg_h,.styles_header__fpulf .styles_navLink__rqkPm,.styles_header__fpulf .styles_pill__eTwd8{background-color:var(--color-surface-faint);border-radius:var(--border-radius-5);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);overflow:hidden;height:var(--header-item-height)}.styles_header__fpulf .styles_menuButton__Arg_h{display:flex;flex-direction:row;justify-content:center;align-items:center;width:50px;height:36px;cursor:pointer;color:var(--color-text-navigation)}.styles_header__fpulf .styles_nav__UhczD{padding:var(--spacer-4);margin:calc(var(--spacer-4)*-1)}.styles_header__fpulf .styles_navList___XNrr{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:var(--spacer-3)}.styles_header__fpulf .styles_navList___XNrr.styles_desktop__HSaDH{display:none}@media(min-width:820px){.styles_header__fpulf .styles_navList___XNrr.styles_desktop__HSaDH{display:flex}.styles_header__fpulf .styles_navList___XNrr.styles_mobile__F7PEN{display:none}}@keyframes styles_scroll__xRFKN{0%{transform:translateX(0)}to{transform:translateX(-100%)}}@keyframes styles_shake__9zTEJ{0%{transform:translateX(0)}50%{transform:translateX(-2px)}75%{transform:translateX(2px)}to{transform:translateX(0)}}.styles_main__y1Vhp{-ms-overflow-style:none;scrollbar-width:none;margin:0 auto;padding:0}.styles_main__y1Vhp::-webkit-scrollbar{display:none;width:0;height: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{margin:0;padding:0;border:0;font-size:100%;font:inherit;vertical-align:baseline}article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section,small{display:block}body{line-height:1}ol,ul{list-style:none}blockquote,q{quotes:none}blockquote:after,blockquote:before,q:after,q:before{content:"";content:none}table{border-collapse:collapse;border-spacing:0}button{all:unset}@font-face{font-family:Greed;src:url(/fonts/GreedGX.woff2) format("woff2"),url(/fonts/GreedGX.woff) format("woff"),url(/fonts/GreedGX.ttf) format("truetype");font-style:normal;font-display:swap}@font-face{font-family:Greed;src:url(/fonts/GreedItalicGX.woff2) format("woff2"),url(/fonts/GreedItalicGX.woff) format("woff"),url(/fonts/GreedItalicGX.ttf) format("truetype");font-style:italic;font-display:swap}@font-face{font-family:Arial Narrow;src:url(/fonts/ArialNarrow.woff2) format("woff2"),url(/fonts/ArialNarrow.woff) format("woff"),url(/fonts/ArialNarrow.ttf) format("truetype");font-style:normal;font-display:swap}@font-face{font-family:Arial Narrow;src:url(/fonts/ArialNarrowItalic.woff2) format("woff2"),url(/fonts/ArialNarrowItalic.woff) format("woff"),url(/fonts/ArialNarrowItalic.ttf) format("truetype");font-style:italic;font-display:swap}@font-face{font-family:Arial Narrow;src:url(/fonts/ArialNarrowBold.woff2) format("woff2"),url(/fonts/ArialNarrowBold.woff) format("woff"),url(/fonts/ArialNarrowBold.ttf) format("truetype");font-style:normal;font-weight:700;font-display:swap}@font-face{font-family:Arial Narrow;src:url(/fonts/ArialNarrowBoldItalic.woff2) format("woff2"),url(/fonts/ArialNarrowBoldItalic.woff) format("woff"),url(/fonts/ArialNarrowBoldItalic.ttf) format("truetype");font-style:italic;font-weight:700;font-display:swap}a,button,div,h1,h2,h3,h4,h5,input,label,p,select,span,textarea{font-family:var(--font-family-body);letter-spacing:var(--letter-spacing-body);font-weight:var(--font-weight-body);text-transform:var(--text-transform-body,none);font-style:normal;transition-property:color;transition-duration:.2s;transition-timing-function:var(--ease-in-out-quad);-webkit-transition-property:color;-webkit-transition-duration:.2s;-webkit-transition-timing-function:var(--ease-in-out-quad);color:var(--color-text-primary)}a,button,div,h1,h2,h3,h4,h5,input,label,p,select,span,textarea{font-size:var(--font-size-body);line-height:var(--line-height-body)}b,strong{font-weight:var(--font-weight-medium)}em,i{font-style:italic}a{text-decoration:none}a,button{cursor:pointer}h1{font-family:var(--font-family-heading-1);font-size:var(--font-size-heading-1);line-height:var(--line-height-heading-1);letter-spacing:var(--letter-spacing-heading-1);font-weight:var(--font-weight-heading-1);text-transform:var(--text-transform-heading-1,none)}h1,h2{font-style:normal}h2{font-family:var(--font-family-heading-2);font-size:var(--font-size-heading-2);line-height:var(--line-height-heading-2);letter-spacing:var(--letter-spacing-heading-2);font-weight:var(--font-weight-heading-2);text-transform:var(--text-transform-heading-2,none)}h3{font-family:var(--font-family-heading-3);font-size:var(--font-size-heading-3);line-height:var(--line-height-heading-3);letter-spacing:var(--letter-spacing-heading-3);font-weight:var(--font-weight-heading-3);text-transform:var(--text-transform-heading-3,none)}h3,h4{font-style:normal}h4{font-family:var(--font-family-heading-4);font-size:var(--font-size-heading-4);line-height:var(--line-height-heading-4);letter-spacing:var(--letter-spacing-heading-4);font-weight:var(--font-weight-heading-4);text-transform:var(--text-transform-heading-4,none)}h5{font-family:var(--font-family-heading-5);font-size:var(--font-size-heading-5);line-height:var(--line-height-heading-5);letter-spacing:var(--letter-spacing-heading-5);font-weight:var(--font-weight-heading-5);text-transform:var(--text-transform-heading-5,none);font-style:italic}h6{font-family:var(--font-family-heading-6);font-size:var(--font-size-heading-6);line-height:var(--line-height-heading-6);letter-spacing:var(--letter-spacing-heading-6);font-weight:var(--font-weight-heading-6);text-transform:var(--text-transform-heading-6,none)}h6,p{font-style:normal}p{font-family:var(--font-family-body);font-size:var(--font-size-body);line-height:var(--line-height-body);letter-spacing:var(--letter-spacing-body);font-weight:var(--font-weight-body);text-transform:var(--text-transform-body,none)}small{font-family:var(--font-family-small);font-size:var(--font-size-small);line-height:var(--line-height-small);letter-spacing:var(--letter-spacing-small);font-weight:var(--font-weight-small);text-transform:var(--text-transform-small,none);font-style:normal}code{font-size:var(--font-size-code);font-size:.8em;background-color:var(--color-gray-7)}code,code span{font-family:var(--font-family-code);line-height:var(--line-height-code);letter-spacing:var(--letter-spacing-code);font-weight:var(--font-weight-code);text-transform:var(--text-transform-code,none);font-style:normal}code span{font-size:var(--font-size-code)}:root{--color-black:#000;--color-white:#fff;--color-white-dim:#ffffff10;--color-gray-1:#1d1d1f;--color-gray-2:#333;--color-gray-3:#444;--color-gray-4:#666;--color-gray-5:#888;--color-gray-6:#999;--color-gray-7:#e6e6e6;--color-gray-8:#f9f9f9;--color-red:red;--color-orange:orange;--color-yellow:#ff0;--color-green:green;--color-blue:blue;--color-purple:purple;--color-transparent:transparent;--color-debug:var(--color-purple);--color-surface:var(--color-white);--color-surface-faint:hsla(0,0%,88%,.7);--color-text-primary:var(--color-gray-1);--color-text-secondary:var(--color-gray-6);--color-text-alert:#fa8219;--color-text-success:#20bf1d;--color-text-navigation:var(--color-gray-1);--global-max-width:1440px;--content-max-width:820px;--layout-height-full-viewport:75vh;--layout-height-half-viewport:calc(var(--layout-height-full-viewport) / 2);--grid-column-count:12;--grid-gutter:0px;--grid-margin:20px;--header-height:56px;--header-item-height:36px;--border-radius-1:4px;--border-radius-2:8px;--border-radius-3:12px;--border-radius-4:16px;--border-radius-5:36px;--border-radius-pill:999px;--border-radius-circle:50%;--spacer-1:4px;--spacer-2:8px;--spacer-3:12px;--spacer-4:16px;--spacer-5:20px;--spacer-6:24px;--spacer-7:32px;--spacer-8:64px;--spacer-xs:24px;--spacer-s:54px;--spacer-m:72px;--spacer-l:92px;--z-index-neg:-1;--z-index-0:0;--z-index-1:1;--z-index-2:2;--z-index-3:3;--z-index-4:4;--z-index-5:5;--z-index-10:10;--z-index-modal:100;--z-index-header:200;--z-index-max:999;---ease-in-sine:cubic-bezier(0.47,0,0.745,0.715);--ease-out-sine:cubic-bezier(0.39,0.575,0.565,1);--ease-in-out-sine:cubic-bezier(0.445,0.05,0.55,0.95);--ease-in-quad:cubic-bezier(0.55,0.085,0.68,0.53);--ease-out-quad:cubic-bezier(0.25,0.46,0.45,0.94);--ease-in-out-quad:cubic-bezier(0.455,0.03,0.515,0.955);--ease-in-cubic:cubic-bezier(0.55,0.055,0.675,0.19);--ease-out-cubic:cubic-bezier(0.215,0.61,0.355,1);--ease-in-out-cubic:cubic-bezier(0.645,0.045,0.355,1);--ease-in-quart:cubic-bezier(0.895,0.03,0.685,0.22);--ease-out-quart:cubic-bezier(0.165,0.84,0.44,1);--ease-in-out-quart:cubic-bezier(0.77,0,0.175,1);--ease-in-quint:cubic-bezier(0.755,0.05,0.855,0.06);--ease-out-quint:cubic-bezier(0.23,1,0.32,1);--ease-in-out-quint:cubic-bezier(0.86,0,0.07,1);--ease-in-expo:cubic-bezier(0.95,0.05,0.795,0.035);--ease-out-expo:cubic-bezier(0.19,1,0.22,1);--ease-in-out-expo:cubic-bezier(1,0,0,1);--ease-in-circ:cubic-bezier(0.6,0.04,0.98,0.335);--ease-out-circ:cubic-bezier(0.075,0.82,0.165,1);--ease-in-out-circ:cubic-bezier(0.785,0.135,0.15,0.86);--ease-in-back:cubic-bezier(0.6,-0.28,0.735,0.045);--ease-out-back:cubic-bezier(0.175,0.885,0.32,1.275);--ease-in-out-back:cubic-bezier(0.68,-0.55,0.265,1.55);--font-family-sans-serif:"Greed","Inter","Helvetica","Arial",sans-serif;--font-family-serif:"Times New Roman",serif;--font-family-monospace:ui-monospace,Menlo,Monaco,"Cascadia Mono","Segoe UI Mono","Roboto Mono","Oxygen Mono","Ubuntu Monospace","Source Code Pro","Fira Mono","Droid Sans Mono","Courier New",monospace;--font-family-base:var(--font-family-sans-serif);--font-family-arial:"Arial Narrow","Arial",sans-serif;--font-size-base:62.5%;--letter-spacing-base:0;--font-weight-regular:400;--font-weight-medium:500;--font-weight-bold:599;--font-family-heading-1:var(--font-family-sans-serif);--font-size-heading-1:4.8rem;--line-height-heading-1:4.5rem;--letter-spacing-heading-1:-3.5%;--font-weight-heading-1:var(--font-weight-medium);--font-family-heading-2:var(--font-family-sans-serif);--font-size-heading-2:2.8rem;--line-height-heading-2:2.9rem;--letter-spacing-heading-2:0;--font-weight-heading-2:var(--font-weight-medium);--font-family-heading-3:var(--font-family-sans-serif);--font-size-heading-3:2.6rem;--line-height-heading-3:2.8rem;--letter-spacing-heading-3:0;--font-weight-heading-3:var(--font-weight-medium);--font-family-heading-4:var(--font-family-sans-serif);--font-size-heading-4:2.2rem;--line-height-heading-4:2.4rem;--letter-spacing-heading-4:0;--font-weight-heading-4:var(--font-weight-medium);--font-family-heading-5:var(--font-family-sans-serif);--font-size-heading-5:2rem;--line-height-heading-5:2.2rem;--letter-spacing-heading-5:0;--font-weight-heading-5:var(--font-weight-regular);--font-family-heading-6:var(--font-family-sans-serif);--font-size-heading-6:1.8rem;--line-height-heading-6:2rem;--letter-spacing-heading-6:0;--font-weight-heading-6:var(--font-weight-regular);--font-family-body:var(--font-family-base);--font-size-body:2.8rem;--line-height-body:3rem;--letter-spacing-body:0;--font-weight-body:var(--font-weight-regular);--font-family-body-bold:var(--font-family-body);--font-size-body-bold:var(--font-size-body);--line-height-body-bold:var(--line-height-body);--letter-spacing-body-bold:var(--letter-spacing-body);--font-weight-body-bold:var(--font-weight-medium);--font-family-eyebrow:var(--font-family-base);--font-size-eyebrow:1.8rem;--line-height-eyebrow:2rem;--letter-spacing-eyebrow:0;--font-weight-eyebrow:var(--font-weight-medium);--text-transform-eyebrow:uppercase;--font-family-small:var(--font-family-base);--font-size-small:1.6rem;--line-height-small:1.9rem;--letter-spacing-small:0;--font-weight-small:var(--font-weight-regular);--font-family-special:var(--font-family-sans-serif);--font-size-special:2.4rem;--line-height-special:2.5rem;--letter-spacing-special:-1%;--font-weight-special:var(--font-weight-regular);--font-family-code:var(--font-family-monospace);--font-size-code:1.2rem;--line-height-code:1.6rem;--letter-spacing-code:0;--font-weight-code:var(--font-weight-regular);--svg-canvas-width:2400px;--svg-canvas-height:1600px}@media(min-width:448px){:root{--color-debug:var(--color-red)}}@media(min-width:820px){:root{--color-debug:var(--color-green);--layout-height-full-viewport:calc(100vh - var(--spacer-s));--grid-gutter:24px;--grid-margin:20px;--spacer-xs:32px;--spacer-s:62px;--spacer-m:93px;--spacer-l:128px;--font-size-heading-1:7.2rem;--line-height-heading-1:6.8rem;--font-weight-heading-1:var(--font-weight-bold);--font-size-heading-2:4.2rem;--line-height-heading-2:4.2rem;--font-weight-heading-2:var(--font-weight-bold);--font-size-heading-3:2.6rem;--line-height-heading-3:2.8rem;--font-size-heading-4:2.2rem;--line-height-heading-4:2.4rem;--font-size-heading-5:2rem;--line-height-heading-5:2.2rem;--font-size-heading-6:1.8rem;--line-height-heading-6:2rem;--font-size-body:2.8rem;--line-height-body:3rem;--font-size-body-bold:2.8rem;--line-height-body-bold:3rem;--font-size-body-eyebrow:2.4rem;--line-height-body-eyebrow:2.6rem;--font-size-body-small:2.8rem;--line-height-body-small:3rem;--font-size-body-special:3rem;--line-height-body-special:3.2rem;--font-size-code:1.3rem;--line-height-code:1.6rem}}@media(min-width:1024px){:root{--color-debug:var(--color-blue)}}[data-theme=dark]{--color-text-primary:var(--color-white);--color-text-alert:#fbbc04}@keyframes scroll{0%{transform:translateX(0)}to{transform:translateX(-100%)}}@keyframes shake{0%{transform:translateX(0)}50%{transform:translateX(-2px)}75%{transform:translateX(2px)}to{transform:translateX(0)}}*{box-sizing:border-box;padding:0;margin:0}html{transition-property:color;transition-duration:.2s;-webkit-transition-property:color;-webkit-transition-duration:.2s;transition-property:background-color;transition-duration:2s;transition-timing-function:var(--ease-in-out-quad);-webkit-transition-property:background-color;-webkit-transition-duration:2s;-webkit-transition-timing-function:var(--ease-in-out-quad);font-family:var(--font-family-base);font-size:var(--font-size-base);letter-spacing:var(--letter-spacing-base);font-weight:var(--font-weight-regular);color:var(--color-text-primary);background-color:var(--color-surface)}#__next{-ms-overflow-style:none;scrollbar-width:none;overflow-x:hidden}#__next::-webkit-scrollbar{display:none;width:0;height:0}.swiper{padding:var(--spacer-s) 0!important}.swiper-wrapper{align-items:center}.swiper-slide{transition-property:filter;transition-duration:.2s;transition-timing-function:var(--ease-in-out-quad);-webkit-transition-property:filter;-webkit-transition-duration:.2s;-webkit-transition-timing-function:var(--ease-in-out-quad);filter:blur(4px)}.swiper-slide-active{filter:none}#home #newsletter input[type=email]{border-color:var(--color-white)}#home #newsletter input[type=email]::placeholder{color:var(--color-text-primary)}#home .info-container .link{background-color:var(--color-white)}#home .info-container .link *{color:var(--color-gray-1)}#home a[href="/projects"]{border:1px solid var(--color-gray-1);color:var(--color-gray-1)}