@font-face{font-family:as;src:url(/fonts/as-90.woff2) format("woff2");font-style:normal;font-stretch:normal;font-weight:400;font-display:swap}@font-face{font-family:as;src:url(/fonts/as-150.woff2) format("woff2");font-style:normal;font-stretch:normal;font-weight:800;font-display:swap}@font-face{font-family:as;src:url(/fonts/asc-90.woff2) format("woff2");font-style:normal;font-stretch:condensed;font-weight:400;font-display:swap}@font-face{font-family:as;src:url(/fonts/asc-150.woff2) format("woff2");font-style:normal;font-stretch:condensed;font-weight:800;font-display:swap}:root{--accent-color: blue;--accent-contrast-color: white;--ink-color: black;--paper-color: white;--button-background-color: var(--ink-color);--button-text-color: var(--paper-color);--focus-ring-width: 3px;--focus-ring-offset: 3px;--focus-ring-gutter: calc(var(--focus-ring-width) + var(--focus-ring-offset));--content-gutter: var(--focus-ring-gutter);--edge: 10px;--panel-inset: 3px;--column-gap: clamp(.75rem, 1vw, 1rem);--display-size: clamp(4.5rem, 10vw, 9rem);--statement-size: clamp(3rem, 6.1vw, 5.5rem);--section-copy-size: clamp(2.5rem, 6vw, 5.4rem);--button-icon-size: 1.25rem;--reflexive-viewport-height: 100vh}*,*:before,*:after{box-sizing:border-box}html{color:#000;background:#fff;scroll-behavior:smooth;-webkit-text-size-adjust:100%;overscroll-behavior:none}body{min-inline-size:18rem;margin:0;font-family:as,Arial Narrow,Arial,sans-serif;font-size:16px;line-height:1.1;letter-spacing:.005em;font-variant-ligatures:no-common-ligatures;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;overscroll-behavior:none}h1,h2,h3,p,address{margin:0}img{display:block;max-inline-size:100%}a{color:inherit}html,input,select{cursor:url(/cursors/default-blue.png) 0 0,auto;cursor:url(/cursors/default-blue.svg) 0 0,auto;cursor:-webkit-image-set(url(/cursors/default-blue.png) 1x,url(/cursors/default-blue@2.png) 2x) 0 0,auto}.is-pointer,.link,.contact-links,a[href],button:not(:disabled),[role=button]:not([aria-disabled=true]),[role=link],input:is([type=button],[type=submit],[type=reset],[type=checkbox],[type=radio],[type=file]):not(:disabled),select:not(:disabled),summary,label[for]{cursor:url(/cursors/pointer-blue.svg) 18 1,url(/cursors/pointer-blue.png) 18 1,pointer}.is-draggable{cursor:url(/cursors/grab-blue.png) 50 50,grab;cursor:url(/cursors/grab-blue.svg) 50 50,grab;cursor:-webkit-image-set(url(/cursors/grab-blue.png) 1x,url(/cursors/grab-blue@2.png) 2x) 50 50,grab}.is-dragging{cursor:url(/cursors/grabbing-blue.png) 50 50,grabbing;cursor:url(/cursors/grabbing-blue.svg) 50 50,grabbing;cursor:-webkit-image-set(url(/cursors/grabbing-blue.png) 1x,url(/cursors/grabbing-blue@2.png) 2x) 50 50,grabbing}::selection{background:#eee}::-webkit-scrollbar{inline-size:15px}::-webkit-scrollbar-track{background:#efefef}::-webkit-scrollbar-thumb{background:#000}@media(hover:hover)and (pointer:fine){a:hover{text-decoration-thickness:.08em;text-underline-offset:.12em;background-color:var(--accent-color);color:var(--accent-contrast-color)}.button:hover{color:var(--accent-contrast-color);background:var(--accent-color)}}:focus-visible{outline:var(--focus-ring-width) solid var(--accent-color);outline-offset:var(--focus-ring-offset)}.region :is(h1,h2):focus-visible,.not-found h1:focus-visible{outline:0;box-shadow:inset 0 0 0 2px #fff,inset 0 0 0 5px var(--accent-color)}.visually-hidden{position:absolute;inline-size:1px;block-size:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0}.skip-link{position:fixed;inset-block-start:var(--edge);inset-inline-start:var(--edge);z-index:100;padding:.75rem 1rem;color:#fff;background:#000;translate:0 -200%}.skip-link:focus{translate:0}.region{min-block-size:100svh;padding:var(--edge);background:#fff}.region__canvas{block-size:calc(100svh - (var(--edge) * 2));min-block-size:40rem;overflow:hidden;background:#fff}.svg-definitions{position:absolute;inline-size:0;block-size:0;overflow:hidden}.region__canvas--mark{display:grid;place-items:center;padding:var(--content-gutter)}.region__mark{display:block;inline-size:100%;block-size:100%}.region :is(h1,h2),.not-found h1{font-size:var(--display-size);font-weight:400;line-height:.9;letter-spacing:-.025em}.button{display:inline-flex;align-items:center;justify-content:center;gap:.55em;inline-size:max-content;min-block-size:44px;padding:.5em 1.1em;color:var(--button-text-color);background:var(--button-background-color);text-decoration:none}.button:focus-visible{position:relative;z-index:1}.icon{display:inline-block;flex:0 0 auto;background-color:currentColor;-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain}.icon--external{-webkit-mask-image:url(/images/svg/icon-external-link.svg);mask-image:url(/images/svg/icon-external-link.svg)}.icon--download{-webkit-mask-image:url(/images/svg/icon-download.svg);mask-image:url(/images/svg/icon-download.svg)}.button .icon{flex-basis:var(--button-icon-size);inline-size:var(--button-icon-size);block-size:var(--button-icon-size)}.spacer{min-block-size:0;margin:var(--content-gutter);background:url(/images/svg/pattern-dots.svg) repeat}.fit-box{min-inline-size:0;min-block-size:0;overflow:hidden;font-size:32px}.fit-box--title{block-size:clamp(4rem,min(10vw,16vh),9rem)}.fit-box--subtitle{block-size:clamp(2rem,min(7vw,12vh),6.25rem);margin-block-start:clamp(.75rem,2vh,1.5rem)}.hello-layout{display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:auto minmax(0,1fr) auto minmax(0,.08fr);padding-inline:var(--panel-inset)}.hello-layout>*{min-inline-size:0}.hello-layout>.fit-box,.hello-identity,.work-header,.contact-header{margin-inline:var(--content-gutter)}.hello-copy-field{margin-block-start:clamp(.75rem,2vh,1.5rem)}.hello-intro{max-inline-size:96%;font-size:var(--statement-size);line-height:1.25;letter-spacing:-.015em}.hello-identity{display:grid;grid-template-columns:1fr 1fr;align-items:end;gap:var(--column-gap);min-inline-size:0;margin-block-start:clamp(1rem,2.5vh,2rem);margin-block-end:clamp(.625rem,1.5vh,1rem)}.hello-mark{inline-size:min(19.45vw,28vh,280px);block-size:auto}.hello-roles{align-self:center;justify-self:end;font-family:as,Arial Narrow,Arial,sans-serif;font-stretch:condensed;font-weight:400;font-size:clamp(1.65rem,min(4vw,5.5vh),3.65rem);line-height:1.55;letter-spacing:-.025em}.work-layout{display:grid;grid-template-rows:auto auto minmax(0,1fr);gap:clamp(1rem,4vh,3.5rem);padding-inline:var(--panel-inset)}.contact-header .fit-box--subtitle{block-size:clamp(3rem,min(14vw,12vh),11rem)}.work-header p,.contact-header p{font-size:var(--section-copy-size);line-height:1;letter-spacing:-.015em}.project-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--column-gap);min-block-size:0}.project-card{display:grid;grid-template-rows:auto auto minmax(2.25em,auto) auto 1fr;align-content:start;gap:clamp(.5rem,1.4vh,1rem);min-inline-size:0;padding-inline:var(--content-gutter)}.project-card__image{align-self:start;inline-size:min(100%,52.25vh);block-size:auto}.project-card h3{font-size:clamp(1.8rem,2.9vw,2.65rem);font-weight:400;line-height:1;letter-spacing:-.015em}.project-card__description{max-inline-size:95%;font-size:clamp(1.15rem,1.95vw,1.75rem);line-height:1.2}.project-card__action{margin-block:clamp(.25rem,1.4vh,.9rem);font-size:clamp(1.4rem,2.4vw,2.15rem)}.project-card__tags{align-self:end;max-inline-size:98%;font-family:as,Arial Narrow,Arial,sans-serif;font-stretch:condensed;font-weight:400;font-size:clamp(1rem,1.6vw,1.4rem);line-height:1.2}.contact-layout{display:grid;grid-template-rows:auto auto minmax(0,1fr);gap:clamp(2rem,7vh,5rem);padding-inline:var(--panel-inset)}.contact-grid{display:grid;grid-template-columns:1fr 1fr;align-items:stretch;gap:var(--column-gap);min-block-size:clamp(14rem,50vh,32rem);padding-inline:var(--content-gutter)}.contact-card{display:grid;grid-template-rows:auto auto minmax(0,1fr) auto;justify-items:start;align-content:stretch;gap:clamp(1.25rem,3vh,2.25rem);min-inline-size:0}.contact-card__illustration{inline-size:auto;block-size:clamp(5rem,10vh,6.45rem)}.contact-card__illustration--resume{aspect-ratio:80 / 100}.contact-card__illustration--cat{aspect-ratio:98 / 103}.contact-card h3{font-size:clamp(3rem,6vw,5.5rem);font-weight:400;line-height:.95;letter-spacing:-.02em}.contact-card>p{font-size:clamp(2.25rem,4.15vw,3.75rem);line-height:1.25;letter-spacing:-.015em}.contact-card__button{font-size:clamp(1.5rem,2.35vw,2.1rem)}.contact-card__button .icon{block-size:calc(var(--button-icon-size) * 1.2)}.contact-links{display:grid;grid-row:3 / span 2;align-self:stretch;align-content:space-between;justify-items:start;gap:clamp(1rem,2vh,1.5rem);font-size:clamp(2.4rem,4.15vw,3.75rem);font-style:normal;line-height:1}.contact-links a{display:inline-flex;align-items:baseline;gap:.15em;min-block-size:44px;text-underline-offset:.12em}.contact-links .icon{inline-size:.55em;block-size:.55em}.spacer--contact{min-block-size:0}.not-found,html[data-page=not-found] .site-content{display:none}html[data-page=not-found] .not-found{display:grid;grid-template-rows:auto auto 1fr;min-block-size:100svh;padding:var(--edge) calc(var(--edge) + var(--panel-inset) + var(--content-gutter))}.not-found>p{margin-block-start:clamp(2rem,7vh,4.5rem);font-size:var(--statement-size);line-height:1}.not-found__return{display:grid;place-items:center;align-content:center;min-block-size:0;padding-block-end:clamp(2rem,8vh,5rem)}.not-found__return img{inline-size:min(28vw,400px);block-size:auto}.not-found__return a{margin-block-start:clamp(2rem,7vh,4.5rem);font-size:clamp(2.75rem,5vw,4.5rem);line-height:1;text-underline-offset:.13em}html[data-reflexive]{scroll-behavior:auto}html[data-reflexive] body,html[data-reflexive] main{min-block-size:calc(var(--region-count) * var(--reflexive-viewport-height))}html[data-reflexive] .region-stage{position:fixed;inset-block-start:var(--edge);inset-inline:var(--edge);block-size:calc(var(--reflexive-viewport-height) - (var(--edge) * 2));overflow:hidden;background:#fff}html[data-reflexive] .region{--pressure: 0;--origin: 100%;position:absolute;inset:0;z-index:var(--order, 1);min-block-size:0;padding:0;overflow:hidden;background:transparent;pointer-events:none}html[data-reflexive] .region:first-child{--pressure: 1;--origin: 0%}html[data-reflexive] .region[data-visible] .region__canvas{pointer-events:auto}html[data-reflexive] .region__canvas{block-size:100%;min-block-size:0;transform:scaleY(var(--pressure));transform-origin:50% var(--origin);will-change:transform}@media(min-width:64.001rem){@supports (grid-template-rows: subgrid){.project-grid{grid-template-rows:repeat(5,auto);align-content:space-between;min-block-size:min(58vh,36rem)}.project-card{grid-row:span 5;grid-template-rows:subgrid}}}@media(max-width:64rem){.work-layout{gap:clamp(.75rem,2vh,1.25rem)}.project-grid{grid-template-columns:1fr;align-content:space-between;gap:clamp(1rem,2.5vh,1.75rem);min-block-size:clamp(30rem,45vh,38rem)}.project-card{grid-template-columns:clamp(12.5rem,28vw,16rem) minmax(0,1fr) auto;grid-template-rows:auto auto;grid-template-areas:"image title action" "image description action";align-items:center;column-gap:clamp(.75rem,1.5vw,1rem);row-gap:.35rem}.project-card__image{grid-area:image}.project-card h3{grid-area:title;align-self:end;font-size:clamp(1.5rem,3vw,2rem)}.project-card__description{grid-area:description;align-self:start;max-inline-size:100%;font-size:clamp(1.05rem,2vw,1.35rem)}.project-card__action{grid-area:action;margin:0;padding:.65em .9em;font-size:clamp(1rem,2vw,1.3rem);white-space:nowrap}.project-card__tags{display:none}.contact-layout{gap:clamp(1.25rem,3vh,2rem)}.contact-grid{align-items:start;min-block-size:0}.contact-card{grid-template-rows:none;align-content:start}.contact-links{grid-row:auto;align-self:auto;align-content:start}}@media(max-width:42rem){:root{--panel-inset: 2px;--column-gap: .75rem;--display-size: clamp(4rem, 17vw, 4.5rem);--statement-size: clamp(2.35rem, 10.8vw, 2.75rem);--section-copy-size: clamp(1.5rem, 6.8vw, 1.8rem);--button-icon-size: .9rem}.region__canvas{min-block-size:51.5rem}.spacer{min-block-size:0}.hello-layout{grid-template-rows:auto minmax(0,1fr) auto minmax(0,.08fr)}.hello-copy-field{margin-block-start:1.1rem}.hello-intro{max-inline-size:100%;line-height:1.34;letter-spacing:-.02em}.hello-identity{grid-template-columns:7.5rem minmax(0,1fr);gap:.85rem;margin-block-end:.75rem}.hello-mark{inline-size:min(30vw,7.5rem)}.hello-roles{justify-self:start;font-size:clamp(1.15rem,5.8vw,1.45rem);line-height:1.25}.work-layout{gap:.75rem}.work-header .fit-box--title{block-size:clamp(7.5rem,min(34vw,30vh),8.75rem)}.work-header h2{max-inline-size:7ch;line-height:.98}.fit-box--subtitle{margin-block-start:.75rem}.work-header p,.contact-header p{line-height:1.1}.project-grid{grid-template-columns:1fr;align-content:start;gap:1rem;min-block-size:0}.project-card{grid-template-columns:min(52vw,12.5rem) minmax(0,1fr);grid-template-rows:auto auto auto;grid-template-areas:"image action" "title title" "description description";align-items:center;column-gap:.85rem;row-gap:.45rem}.project-card__image{grid-area:image}.project-card h3{grid-area:title;font-size:clamp(1.25rem,5.5vw,1.45rem)}.project-card__description{grid-area:description;max-inline-size:100%;font-size:clamp(.98rem,4.25vw,1.1rem);line-height:1.25}.project-card__action{grid-area:action;justify-self:start;max-inline-size:100%;margin:0;padding:.65em .9em;font-size:clamp(.92rem,4vw,1.05rem);white-space:nowrap}.project-card__tags{display:none}.contact-layout{gap:clamp(1.5rem,4.5vh,2.25rem)}.contact-grid{grid-template-columns:1fr;align-items:stretch;align-content:space-between;min-block-size:0;gap:clamp(2rem,5vh,2.75rem);padding-inline:var(--content-gutter)}.contact-card{grid-template-rows:none;align-content:start;gap:.85rem}.contact-card__illustration{block-size:3.15rem}.contact-card h3{font-size:clamp(2.75rem,12.5vw,3.15rem);line-height:1}.contact-card>p{font-size:clamp(1.9rem,8.6vw,2.2rem);line-height:1.25}.contact-card__button{padding:.65em 1em;font-size:clamp(1rem,5vw,1.25rem)}.contact-links{grid-row:auto;align-self:auto;align-content:start;gap:1rem;font-size:clamp(1.9rem,8.5vw,2.2rem)}.spacer--contact{min-block-size:0}html[data-page=not-found] .not-found{grid-template-rows:auto auto minmax(0,1fr)}.not-found>p{margin-block-start:1.75rem;font-size:clamp(1.45rem,6.8vw,1.75rem)}.not-found__return{justify-content:center;align-content:center;padding-block:1rem clamp(3rem,12vh,6rem)}.not-found__return img{inline-size:min(75vw,18.75rem)}.not-found__return a{margin-block-start:clamp(2rem,7vh,3.5rem);font-size:clamp(2rem,9vw,2.4rem)}}@media(min-width:34.001rem)and (max-width:64rem)and (max-aspect-ratio:4 / 5){.project-grid{align-content:start;gap:clamp(1rem,2vh,1.5rem);min-block-size:0}.project-card{grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:auto auto auto;grid-template-areas:"image action" "title title" "description description";column-gap:clamp(1rem,2.5vw,1.5rem);row-gap:clamp(.5rem,1vh,.75rem)}.project-card__image{inline-size:min(100%,30vh)}.project-card h3{font-size:clamp(1.5rem,4vw,2.25rem)}.project-card__description{font-size:clamp(1.05rem,2.5vw,1.5rem)}.project-card__action{justify-self:center;font-size:clamp(1.1rem,3vw,1.55rem)}}@media(max-width:42rem)and (max-height:55rem){.work-header .fit-box--title{block-size:clamp(6.5rem,min(29vw,24vh),7.25rem)}.project-grid{gap:.625rem}.project-card{grid-template-columns:min(36vw,8.75rem) minmax(0,1fr);row-gap:.3rem}.project-card__description{font-size:clamp(.9rem,3.8vw,1rem);line-height:1.2}}@media(max-width:23rem){:root{--edge: 8px;--display-size: 3.7rem;--statement-size: 2.2rem}.project-card{grid-template-columns:min(50vw,10.75rem) minmax(0,1fr)}.project-card__action{padding-inline:.7em;font-size:.85rem}}@media(min-width:42.001rem)and (max-height:40rem){.contact-layout{gap:clamp(.625rem,2vh,1rem)}.contact-grid{min-block-size:min(44vh,14rem)}.contact-card{gap:clamp(.5rem,1.5vh,.75rem)}.contact-card__illustration{block-size:clamp(2.75rem,9vh,4rem)}.contact-card h3{font-size:clamp(2.25rem,8vh,3rem)}.contact-card>p,.contact-links{font-size:clamp(1.5rem,5vh,2rem)}.contact-links{gap:clamp(.5rem,1.5vh,.75rem)}.contact-card__button{padding:.5em 1em;font-size:clamp(1rem,4vh,1.25rem)}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.region__canvas{min-block-size:0;overflow:visible}}@media(forced-colors:active){:focus-visible{outline-color:Highlight}.region :is(h1,h2):focus-visible,.not-found h1:focus-visible{outline:3px solid Highlight;outline-offset:-5px;box-shadow:none}.button{border:2px solid ButtonText}}
