/*! normalize.css v7.0.0 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,footer,header,nav,section{display:block}h1{margin:.67em 0;font-size:2em}figcaption,figure,main{display:block}figure{margin:1em 40px}hr{overflow:visible;box-sizing:content-box;height:0}pre{font-family:monospace,monospace;font-size:1em}a{background-color:transparent;-webkit-text-decoration-skip:objects}abbr[title]{text-decoration:underline;text-decoration:underline dotted;border-bottom:0}b,strong{font-weight:inherit}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}dfn{font-style:italic}mark{color:#000;background-color:#ff0}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}audio,video{display:inline-block}audio:not([controls]){display:none;height:0}img{border-style:none}svg:not(:root){overflow:hidden}button,input,optgroup,select,textarea{margin:0;font-family:sans-serif;font-size:100%;line-height:1.15}button,input{overflow:visible}button,select{text-transform:none}button,html [type=button],[type=reset],[type=submit]{-webkit-appearance:button}button::-moz-focus-inner,[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner{padding:0;border-style:none}button:-moz-focusring,[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{display:table;box-sizing:border-box;max-width:100%;padding:0;color:inherit;white-space:normal}progress{display:inline-block;vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-cancel-button,[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details,menu{display:block}summary{display:list-item}canvas{display:inline-block}template{display:none}[hidden]{display:none}@font-face{font-family:Outfit;font-display:swap;src:local("Outfit");src:url(/assets/Outfit-VariableFont_wght.947f6b8f.ttf) format("truetype");font-weight:100 1000;font-style:normal}@supports not (font-variation-settings: normal){@font-face{font-family:Outfit;font-display:swap;src:local("Outfit Light"),local("Outfit-Light");src:url(/assets/Outfit-Light.9518ce3d.ttf) format("truetype");font-weight:300;font-style:normal}@font-face{font-family:Outfit;font-display:swap;src:local("Outfit Regular"),local("Outfit-Regular");src:url(/assets/Outfit-Regular.7dd6d797.ttf) format("truetype");font-weight:400;font-style:normal}@font-face{font-family:Outfit;font-display:swap;src:local("Outfit Bold"),local("Outfit-Bold");src:url(/assets/Outfit-Bold.3ee4507c.ttf) format("truetype");font-weight:700;font-style:normal}}:root{--text-color-primary: rgb(34, 34, 34);--text-color-secondary: rgb(65, 65, 65);--padding-base: 1rem;--padding-large: 1.5rem;--padding-xlarge: 2rem;--padding-container: var(--padding-large, 1.5rem);--theme-color-bg: rgb(252, 252, 252);--theme-color-primary: rgb(51, 51, 51);--theme-color-secondary: rgb(65, 65, 65);--theme-color-tertiary: rgb(238, 238, 238);--theme-border-color: rgb(51, 51, 51);--theme-border-size: 1rem;--theme-breakpoint-desktop: 992;--theme-content-size:75rem;--theme-font-base: Outfit, -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, sans-serif;--theme-font-letter-spacing: -.1px;--theme-font-size-h1: 2rem;--theme-font-size-h2: 1.25rem;--theme-font-size-h3: 1rem;--theme-font-size-base: 1rem;--theme-font-size-input: 1rem;--theme-nav-color: rgb(182, 182, 182)}@media screen and (min-width: 40rem){:root{--theme-font-size-h2: 1.375rem}}@media screen and (min-width: 48rem){:root{--theme-font-size-h1: 2.5rem;--theme-font-size-h2: 1.4375rem;--theme-font-size-input: .9375rem}}@media screen and (min-width: 62rem){:root{--theme-font-size-h1: 3rem;--theme-font-size-h2: 1.5rem;--theme-font-size-base: 1.125rem;--theme-border-size: 1.5rem;--theme-content-size:90rem;--theme-nav-color: rgb(65, 65, 65);--padding-container: 3rem}}@media (prefers-color-scheme: dark){:root{--text-color-primary: rgb(238, 238, 238);--text-color-secondary: rgb(248, 248, 248);--theme-color-bg: rgb(34, 34, 34);--theme-color-primary: rgb(136, 136, 136);--theme-color-secondary: rgb(238, 238, 238);--theme-color-tertiary: rgb(51, 51, 51);--theme-border-color: rgb(238, 238, 238);--theme-nav-color: rgb(248, 248, 248)}}html,body{scroll-behavior:smooth;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{position:relative;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:var(--text-color-primary);font-family:var(--theme-font-base);font-size:1rem;word-wrap:break-word;background-color:var(--theme-color-bg);transition:background .5s ease-out}body:after{content:"";position:fixed;z-index:1;top:0;left:0;right:0;bottom:0;border:var(--theme-border-size) solid rgba(255,255,255,0);transition:opacity .25s ease-in-out;pointer-events:none;opacity:0}.fonts-loaded body{--theme-font-letter-spacing: -.1px}[hidden]{display:none!important}.scroll-lock{overflow:hidden;height:100vh;width:100vw}*,*:before,*:after{box-sizing:border-box}.site-container{scroll-behavior:smooth}@media screen and (min-width: 48rem){.site-container{max-width:90rem;margin-left:auto;margin-right:auto}}@media screen and (min-width: 62rem){body{padding:var(--theme-border-size)}body:after{border-color:var(--theme-border-color);opacity:1}}@media screen and (min-width: 30rem){.grid{display:flex;align-items:stretch;justify-content:center;flex-wrap:wrap}[data-grid=thirds] .grid__item{flex-basis:100%}[data-grid=half] .grid__item,[data-grid=fourths] .grid__item{flex-basis:50%}}@media screen and (min-width: 40rem){.grid{display:grid;grid-template-columns:repeat(2,1fr);column-gap:var(--padding-base)}.grid.grid--nogap{grid-gap:0}.grid[data-grid=thirds]{grid-template-columns:repeat(3,1fr)}}@media screen and (min-width: 62rem){.grid{column-gap:var(--padding-large)}.grid[data-grid=fourths]{grid-template-columns:repeat(4,1fr)}}h1,h2,h3,h4,h5,h6{margin:0 0 .5em;padding:0;font-family:inherit;font-weight:700;line-height:1}h1,.h1{margin-top:.75em;color:var(--text-color-secondary);font-size:var(--theme-font-size-h1);letter-spacing:-1px;line-height:1.25}.fonts-loaded h1,.fonts-loaded .h1{letter-spacing:0}h2,.h2{font-size:var(--theme-font-size-h2);font-weight:300;text-transform:uppercase}h3,.h3{font-size:1rem;line-height:1.2;text-transform:uppercase}dl{margin:0}p,li,dt,dd,tr{margin:0 0 1em;padding:0;color:var(--text-color-primary);font-size:1rem;font-weight:300;letter-spacing:-.1px;line-height:1.6}.fonts-loaded p,.fonts-loaded li,.fonts-loaded dt,.fonts-loaded dd,.fonts-loaded tr{letter-spacing:0}b,strong{font-weight:700}.specialty-icon{display:inline-block;padding-right:.25em}.visually-hidden{position:absolute;overflow:hidden;clip:rect(0 0 0 0);height:1px;width:1px;margin:-1px;padding:0;white-space:nowrap;border:0}@media screen and (min-width: 48rem){input,input[type=text],input[type=email],textarea{font-size:.9375rem}}@media screen and (min-width: 62rem){p{font-size:1.125rem}}img,svg{display:inline-block;max-width:100%;height:auto;margin:0;padding:0}.object-fit{object-fit:cover}a{color:currentColor;text-decoration:none;transition:color .15s ease-in-out}a:hover,a:focus,a:active{color:var(--text-color-secondary)}a:focus-visible{outline:2px solid #e73;outline-offset:3px;transition:outline .1s ease-out}@media (prefers-reduced-motion: reduce){a:focus-visible{transition:none}}a:focus:not(:focus-visible){outline:none}@media (prefers-contrast: more){a:focus:not(:focus-visible){box-shadow:0 0 0 2px var(--text-color-secondary);transition:box-shadow .15s ease-out}}@media (prefers-reduced-motion: reduce){a:focus:not(:focus-visible){transition:none}}button{appearance:none;padding:0;font-family:inherit;line-height:1;border:0;background:transparent;cursor:pointer}button:focus,button:active{outline:none}button:focus-visible{outline:2px solid #e73;outline-offset:3px;transition:outline .1s ease-out}@media (prefers-reduced-motion: reduce){button:focus-visible{transition:none}}button:focus:not(:focus-visible){outline:none}@media (prefers-contrast: more){button:focus:not(:focus-visible){box-shadow:0 0 0 2px var(--text-color-secondary);transition:box-shadow .15s ease-out}}@media (prefers-reduced-motion: reduce){button:focus:not(:focus-visible){transition:none}}@media (prefers-color-scheme: dark){a:hover{color:var(--text-color-secondary)}}@media (prefers-reduced-motion: reduce){a{transition:none}}nav ul,nav ol{padding:0;margin:0;font-size:1.75rem;list-style-type:none}nav ul li,nav ol li{margin:0;font-size:inherit;line-height:1}.navigation{display:flex;flex-direction:column;align-items:center;justify-content:center;transform:translateZ(3.125rem);transition:transform .4s ease-out .1s,opacity .15s ease-in-out .1s;opacity:0}.nav-open .navigation{transform:translateZ(0);opacity:1}.navigation__item+.navigation__item{margin-top:1em}.navigation__link{background-image:linear-gradient(currentColor,currentColor);background-position:0 100%;background-repeat:no-repeat;background-size:0 2px;transition:background-size .25s ease-out;font-weight:700;color:var(--theme-nav-color)}.navigation__link:hover,.navigation__link:focus,.navigation__link:active{background-size:100% 2px}@media screen and (min-width: 40rem){.navigation__item{font-size:2rem}}@media screen and (min-width: 62rem){.navigation{flex-basis:auto;flex-direction:row;align-items:center;justify-content:flex-start;transform:none;font-size:1.0625rem;opacity:1}.navigation__item{margin-right:1rem;font-size:inherit}.navigation__item+.navigation__item{margin-top:0}}@media (prefers-reduced-motion: reduce){.navigation,.navigation__link{transition:none}}.header{display:flex;justify-content:flex-end;position:sticky;z-index:1;top:0;height:3.75rem;margin:0 auto;background:linear-gradient(to bottom,rgba(252,252,252,.99) 0%,rgba(252,252,252,.95) 75%,rgba(252,252,252,.95) 100%)}.header:after{content:"";position:fixed;z-index:-1;left:0;top:0;transform:scale(.5);width:100vw;height:100vh;background:linear-gradient(to bottom,rgb(0,0,0) 0%,rgba(0,0,0,.92) 70%,rgba(0,0,0,.87) 80%,rgba(0,0,0,.65) 100%);transition:opacity .35s ease-in-out,transform .5s ease-in-out;pointer-events:none;opacity:0}.nav-open .header{height:100vh}.nav-open .header:after{transform:scale(3);opacity:1}.nav-open .header .header__nav{visibility:visible;z-index:0;width:100%;pointer-events:all;opacity:1}.header__body{display:flex;flex-direction:column;align-items:center;justify-content:space-evenly;height:100%;width:100%}.header__nav{visibility:hidden;z-index:-1;perspective:1000px;transition:opacity .35s ease-in-out;pointer-events:none;opacity:0}@media screen and (min-width: 62rem){.header{top:var(--theme-border-size);align-items:center;justify-content:center}.header__body{flex-direction:row;justify-content:flex-end;height:auto}.header__nav{visibility:visible;transform:none;position:static;z-index:0;width:auto;height:auto;pointer-events:all;opacity:1}.header__nav:last-of-type{padding-right:var(--padding-container)}}@media screen and (min-width: 95rem){.header__nav:last-of-type{padding-right:0}}@media (prefers-color-scheme: dark){.header{background-image:none;background-color:#222222f0}@supports (backdrop-filter: blur(10px)){.header{background-color:#222222d9;backdrop-filter:blur(10px)}}}@media (prefers-reduced-motion: reduce){.header{background-color:#333;backdrop-filter:none}.header__nav{transition:none}.nav-open .header:after{transition:none}}.footer__link{background-image:linear-gradient(currentColor,currentColor);background-position:0 100%;background-repeat:no-repeat;background-size:0 2px;transition:background-size .25s ease-out;display:inline-block;position:sticky;left:calc(var(--padding-large));bottom:0;margin-bottom:var(--padding-base)}.footer__link:hover,.footer__link:focus,.footer__link:active{background-size:100% 2px}@media screen and (min-width: 62rem){.footer__link{left:calc(3rem + var(--theme-border-size))}}.hamburger{display:flex;flex-direction:column;align-items:center;justify-content:center;appearance:none;z-index:1;height:3.75rem;width:3.75rem;margin:0;padding:0;color:#333;border:0;background-color:transparent}.nav-open .hamburger{position:absolute;top:0;right:0;color:#fff}.hamburger:active{background:rgba(255,255,255,0)}.hamburger:focus,.hamburger:active{outline:none;outline-offset:-.0625rem}@media (prefers-contrast: more){.hamburger:focus,.hamburger:active{box-shadow:0 0 0 2px var(--text-color-secondary);transition:box-shadow .15s ease-out}}@media (prefers-reduced-motion: reduce){.hamburger:focus,.hamburger:active{transition:none}}.hamburger:focus:not(:focus-visible){outline:none}@media (prefers-contrast: more){.hamburger:focus:not(:focus-visible){box-shadow:0 0 0 2px var(--text-color-secondary);transition:box-shadow .15s ease-out}}@media (prefers-reduced-motion: reduce){.hamburger:focus:not(:focus-visible){transition:none}}.hamburger:focus-visible{outline:2px solid #e73;outline-offset:3px;transition:outline .1s ease-out}@media (prefers-reduced-motion: reduce){.hamburger:focus-visible{transition:none}}.hamburger__icon{display:flex;flex-direction:column;position:relative;width:2rem;margin-bottom:0}.hamburger__line{transform-origin:left top;width:100%;height:.125rem;background-color:var(--text-color-secondary);transition:transform .15s ease-out}.hamburger__line+.hamburger__line{margin-top:.375rem}.hamburger__line:nth-of-type(2){transition:opacity .1s ease-in,transform .15s ease-in-out}.hamburger__line:nth-of-type(3){transform-origin:left top}.nav-open .hamburger__line{background-color:#888}.nav-open .hamburger__line:nth-of-type(1){transform:translate3d(.0625rem,-.1875rem,0) rotate(45deg)}.nav-open .hamburger__line:nth-of-type(2){transform:translate(.25rem);opacity:0}.nav-open .hamburger__line:nth-of-type(3){transform:translate3d(0,.25rem,0) rotate(-45deg)}.hamburger__label{position:absolute;overflow:hidden;clip:rect(0 0 0 0);height:1px;width:1px;margin:-1px;padding:0;white-space:nowrap;border:0;text-transform:uppercase}@media screen and (min-width: 62rem){.hamburger{display:none}}@media (prefers-color-scheme: dark){.nav-open .hamburger__line{background-color:#b6b6b6}}.h-line,.v-line{display:block;position:absolute;z-index:1;top:0;left:0;width:100%;height:100%;pointer-events:none}.h-line:before,.h-line:after,.v-line:before,.v-line:after{content:"";display:block;position:absolute}.card:hover .h-line:before,.card:hover .h-line:after,.card:focus .h-line:before,.card:focus .h-line:after,.card:hover .v-line:before,.card:hover .v-line:after,.card:focus .v-line:before,.card:focus .v-line:after{transform:none}.card:focus-within .h-line:before,.card:focus-within .h-line:after,.card:focus-within .v-line:before,.card:focus-within .v-line:after{transform:none}.h-line:before,.h-line:after{transform:scaleX(0);width:90%;width:calc(100% - 2rem);height:1px;transition:transform .6s ease-in}.h-line:before{top:1rem;left:1rem;transform-origin:left center;background:linear-gradient(to right,rgb(150,150,150) 0%,rgba(150,150,150,.85) 70%)}.h-line:after{bottom:1rem;right:1rem;transform-origin:right center;background:linear-gradient(to left,rgb(150,150,150) 0%,rgba(150,150,150,.85) 70%)}.v-line:before,.v-line:after{transform:scaleY(0);width:1px;height:90%;height:calc(100% - 2rem);transition:transform .65s ease-out .2s}.v-line:before{bottom:1rem;left:1rem;transform-origin:bottom center;background:linear-gradient(to top,rgb(150,150,150) 0%,rgba(150,150,150,.85) 70%)}.v-line:after{top:1rem;right:1rem;transform-origin:top center;background:linear-gradient(to bottom,rgb(150,150,150) 0%,rgba(150,150,150,.85) 70%)}.card{display:block;position:relative;height:0;margin:0;padding-bottom:65%}.card__back{display:flex;flex-direction:column;align-items:center;justify-content:center;position:absolute;z-index:-1;transform:scale(.95);top:0;left:0;height:100%;width:100%;padding:var(--padding-base, 1rem);text-align:center;background:linear-gradient(to bottom,rgba(255,255,255,.8) 0%,rgba(255,255,255,.55) 100%);backface-visibility:hidden;transition:opacity .25s ease-in-out,transform .2s ease-in-out;opacity:0}.card__back a{background-image:linear-gradient(currentColor,currentColor);background-position:0 100%;background-repeat:no-repeat;background-size:0 1px;transition:background-size .25s ease-out}.card__back a:hover,.card__back a:focus,.card__back a:active{background-size:100% 1px}.card:hover .card__back,.card:focus .card__back{transform:scale(1.001);z-index:0;opacity:1}.card:focus-within .card__back{transform:scale(1.001);z-index:0;opacity:1}.card__front{display:block;z-index:0;opacity:.8}@media (prefers-color-scheme: dark){.card__front{opacity:.7}}@media (prefers-contrast: more){.card__front{opacity:1}}.card__image{position:absolute;top:0;left:0;height:100%;width:100%;object-fit:cover;object-position:center top;transition:opacity .1s ease-in-out,transform .1s ease-in-out,filter .3s ease-out}.card:hover .card__image,.card:focus .card__image{opacity:.2}@media (prefers-contrast: more){.card:hover .card__image,.card:focus .card__image{opacity:.07}}.card:focus-within .card__image{opacity:0}@supports (filter: saturate(0)){@media not (prefers-contrast: more){.card__image{filter:saturate(.8)}}}@media screen and (min-width: 40rem){.h-line,.v-line{opacity:0}}@media screen and (min-width: 62rem){.h-line,.v-line{opacity:1}}@media (prefers-color-scheme: dark){.card__back{background-image:none;background-color:#1e1e1ed9}.card__back a{color:var(--text-color-primary)}}@media (prefers-reduced-motion: reduce){.h-line:before,.h-line:after,.v-line:before,.v-line:after{transition:none}.card__back,.card__back a{transition:none}}.social{display:flex;align-items:center;justify-content:center;flex-basis:25%}.social__item{display:inline-flex;align-items:stretch;justify-content:center;flex-basis:4rem;color:#888}.social__link{display:inline-flex;align-items:center;padding:.5rem;color:inherit;transition:color .2s ease-in-out}.social__link:hover,.social__link:focus,.social__link:active{color:#eee}.social__link svg{display:inline-flex;flex-direction:column;align-items:center;justify-content:center;height:1em;width:1em;max-width:none;pointer-events:none;fill:currentColor}@media (prefers-contrast: more){.social__link{color:var(--text-color-secondary)}}@media screen and (min-width: 62rem){.social{flex-basis:auto;justify-content:flex-end;font-size:1.25rem}.social__item{flex-basis:auto;margin-left:1rem}.social__link{padding:0}.social__link:hover,.social__link:focus,.social__link:active{color:var(--text-color-secondary)}}@media (prefers-reduced-motion: reduce){.social__link{transition:none}}.intro:target{scroll-padding-top:calc(var(--theme-border-size) + 3.75rem)}.intro{padding-left:var(--padding-container);padding-right:var(--padding-container)}.intro__title{font-weight:300}.intro__lead-in{display:block;font-weight:700}@media screen and (min-width: 95rem){.intro{padding-left:0;padding-right:0}}@media (prefers-color-scheme: dark){.intro{color:#f8f8f8}}.section{margin-top:2.75rem;padding-top:1rem}.section__heading{display:inline-block;position:sticky;z-index:1;top:calc((3.75rem / 2) - var(--theme-font-size-h2) / 2);left:calc(var(--padding-large));margin-bottom:0}.scroll-lock .section__heading{z-index:-1}@media screen and (min-width: 62rem){.section__heading{top:calc((3.75rem / 2) - var(--theme-font-size-h2) / 2 + var(--theme-border-size));left:calc(3rem + var(--theme-border-size))}}.skills{max-width:var(--theme-content-size);padding-left:var(--padding-container);padding-right:var(--padding-container)}.skills__header{display:flex;align-items:center}.skills__icon{display:inline-block;height:var(--theme-font-size-h2);width:var(--theme-font-size-h2);padding-right:.5em}.skills__item{padding-top:var(--padding-large)}@media screen and (min-width: 95rem){.skills{padding-left:0;padding-right:0}}.work{margin-top:var(--padding-large)}.work__item{height:100%}.work__title{padding:0 .25rem;text-align:center}.work__role{margin-top:var(--padding-base);font-size:.75rem}.work__tech{display:flex;align-items:center;justify-content:center;margin:0;padding:0;list-style-type:none}.work__tech-item+.work__tech-item{margin-left:.25em}.work__icon{display:inline-block;height:calc(1rem + .5vmin);width:calc(1rem + .5vmin);opacity:.4}@media (prefers-contrast: more){.work__icon{opacity:1}}@media screen and (min-width: 40rem){.work__role{font-size:.875rem}}.clients{margin-top:var(--padding-large)}.clients__item{display:flex;flex-direction:column;align-items:center;justify-content:center;padding-top:var(--padding-large);padding-bottom:var(--padding-large)}.clients__image{display:flex;flex-direction:column;align-items:center;justify-content:center;aspect-ratio:9/3;object-fit:contain;opacity:.75}@supports (filter: grayscale(100%)){.clients__image{filter:grayscale(100%)}}@media (prefers-color-scheme: dark){@supports (filter: grayscale(100%)){.clients__image{filter:grayscale(100%) invert(1)}}}.stats{max-width:var(--theme-content-size);padding-left:var(--padding-container);padding-right:var(--padding-container)}.stats__item{padding-top:var(--padding-large);padding-bottom:var(--padding-large)}.stats__heading{margin-bottom:.5em;font-size:1rem;font-weight:400;text-transform:uppercase}.stats__text{margin:0;padding:3rem;font-size:1.375rem;text-align:center;background-color:var(--theme-color-tertiary)}@media screen and (min-width: 48rem){.stats__heading{text-align:center}}@media screen and (min-width: 95rem){.stats{padding:0}}
