*,*:before,*:after{box-sizing:border-box}html{-moz-text-size-adjust:none;-webkit-text-size-adjust:none;text-size-adjust:none;scroll-behavior:smooth}body,h1,h2,h3,h4,p,figure,blockquote,ul,dl,dd{margin-block-end:0;margin-block-start:0;margin-inline-end:0;margin-inline-start:0}ul[role=list],ol[role=list]{list-style:none}ul[class]:not([class=""]){padding-inline-start:0}body{min-height:100vh;line-height:1.5}h1,h2,h3,h4,button,input,label{line-height:1.1}h1,h2,h3,h4{text-wrap:balance}a:not([class]){text-decoration-skip-ink:auto}:focus-visible{outline:3px solid var(--focus-ring);outline-offset:4px}img,picture{max-width:100%;display:block}input,button,textarea,select{font:inherit}textarea:not([rows]){min-height:10em}blockquote{padding:1rem 1.5rem;font-style:italic}:target{scroll-margin-block:5ex}:root{--space-3xs: clamp(.3125rem, .2869rem + .1136vw, .375rem);--space-2xs: clamp(.5625rem, .4858rem + .3409vw, .75rem);--space-xs: clamp(.875rem, .7727rem + .4545vw, 1.125rem);--space-s: clamp(1.125rem, .9716rem + .6818vw, 1.5rem);--space-m: clamp(1.6875rem, 1.4574rem + 1.0227vw, 2.25rem);--space-l: clamp(2.25rem, 1.9432rem + 1.3636vw, 3rem);--space-xl: clamp(3.375rem, 2.9148rem + 2.0455vw, 4.5rem);--space-2xl: clamp(4.5rem, 3.8864rem + 2.7273vw, 6rem);--space-3xl: clamp(6.75rem, 5.8295rem + 4.0909vw, 9rem);--space-4xl: clamp(9rem, 7.7727rem + 5.4545vw, 12rem);--space-5xl: clamp(11.25rem, 9.7159rem + 6.8182vw, 15rem);--space-3xs-2xs: clamp(.3125rem, .1335rem + .7955vw, .75rem);--space-2xs-xs: clamp(.5625rem, .3324rem + 1.0227vw, 1.125rem);--space-xs-s: clamp(.875rem, .6193rem + 1.1364vw, 1.5rem);--space-s-m: clamp(1.125rem, .6648rem + 2.0455vw, 2.25rem);--space-m-l: clamp(1.6875rem, 1.1506rem + 2.3864vw, 3rem);--space-l-xl: clamp(2.25rem, 1.3295rem + 4.0909vw, 4.5rem);--space-xl-2xl: clamp(3.375rem, 2.3011rem + 4.7727vw, 6rem);--space-2xl-3xl: clamp(4.5rem, 2.6591rem + 8.1818vw, 9rem);--space-3xl-4xl: clamp(6.75rem, 4.6023rem + 9.5455vw, 12rem);--space-4xl-5xl: clamp(9rem, 6.5455rem + 10.9091vw, 15rem);--space-s-l: clamp(1.125rem, .358rem + 3.4091vw, 3rem);--flow-space: 1em;--flow-space-s: .5em;--gutter: var(--space-s-l);--gutter-s: var(--space-s-m);--gutter-l: var(--space-l-xl)}:root{--color-chalk: #f7f5f1;--color-linen: #ebe9e4;--color-flint: #8a8787;--color-slate: #494848;--color-graphite: #3b3b3b;--color-rust: #863d29;--color-ochre: #efa86c;--LT-surface-base: var(--color-chalk);--LT-surface-sunken: var(--color-linen);--LT-text-main: var(--color-slate);--LT-text-minor: var(--color-flint);--LT-action: var(--color-rust);--LT-action-minor: var(--color-ochre);--DT-surface-base: var(--color-slate);--DT-surface-sunken: var(--color-graphite);--DT-text-main: var(--color-chalk);--DT-text-minor: var(--color-flint);--DT-action: var(--color-ochre);--DT-action-minor: var(--color-rust)}:root,body.light-theme{--surface-base: var(--LT-surface-base);--surface-sunken: var(--LT-surface-sunken);--text-main: var(--LT-text-main);--text-minor: var(--LT-text-minor);--action: var(--LT-action);--action-minor: var(--LT-action-minor)}body.dark-theme{--is-dark: 1;--surface-base: var(--DT-surface-base);--surface-sunken: var(--DT-surface-sunken);--text-main: var(--DT-text-main);--text-minor: var(--DT-text-minor);--action: var(--DT-action);--action-minor: var(--DT-action-minor)}body{background-color:var(--surface-base);color:var(--text-main);transition:background-color .3s ease,color .3s ease}.surface-sunken{background-color:var(--surface-sunken)}:root{--step--2: clamp(.7813rem, .7081rem + .325vw, .96rem);--step--1: clamp(.9375rem, .8301rem + .4773vw, 1.2rem);--step-0: clamp(1.125rem, .9716rem + .6818vw, 1.5rem);--step-1: clamp(1.35rem, 1.1352rem + .9545vw, 1.875rem);--step-2: clamp(1.62rem, 1.3239rem + 1.3159vw, 2.3438rem);--step-3: clamp(1.944rem, 1.5408rem + 1.7922vw, 2.9297rem);--step-4: clamp(2.3328rem, 1.789rem + 2.4169vw, 3.6621rem);--step-5: clamp(2.7994rem, 2.0719rem + 3.2332vw, 4.5776rem)}body{font-family:freight-text-pro,Georgia,Times New Roman,Times,serif;font-weight:400;font-size:var(--step-0);line-height:1.5}h1,h2,h3,h4,h5,h6{font-weight:400;max-width:55ch}p{max-width:65ch}.sans,.subtitle,footer{font-family:neue-haas-grotesk-text,system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;font-weight:400}.section-label{font-size:var(--step-3);letter-spacing:.02em;margin-bottom:var(--space-l)}.body{font-size:var(--step-0);line-height:1.6;max-width:65ch}.project-title{font-size:var(--step-2);line-height:1.2}.descriptor{font-family:neue-haas-grotesk-text,system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;font-size:var(--step--1)}footer{font-size:var(--step--2)}body{display:flex;flex-direction:column;margin:0;min-height:100vh}main{flex:1;margin-block-start:var(--space-3xl)}h1.headline{margin-block-end:var(--space-3xl)}.next-page{--flow-space: var(--space-2xl)}a{color:var(--action);text-decoration:none}a:hover{text-decoration:underline}a:after{content:" →";margin-left:0;display:inline-block;transition:transform .4s cubic-bezier(.16,1,.3,1)}a:hover:after{transform:translate(.25rem)}@view-transition{navigation:auto}::view-transition-group(*){animation-duration:.33s}::view-transition-old(root){animation:.33s ease-in both leave}::view-transition-new(root){animation:.33s ease-in both enter}@media(prefers-reduced-motion:reduce){::view-transition-group(*){animation-duration:0s}}body{position:relative;min-height:100vh}figure{position:relative;z-index:100}body:after{content:"";position:absolute;inset:0;z-index:97;pointer-events:none;background-image:url(/assets/images/dust.png);background-repeat:repeat;background-blend-mode:overlay;opacity:.4}body:before{content:"";position:fixed;inset:0;z-index:98;pointer-events:none;background:repeating-radial-gradient(circle,rgba(0,0,0,.02) 0,rgba(255,255,255,.02) 1px,transparent 2px),radial-gradient(circle at center,#0000 70%,#00000040);background-blend-mode:soft-light,multiply;opacity:.4}@media print{body:before,body:after{display:none}}body#error404{background-color:var(--surface-base);position:relative;min-height:100vh}body#error404:before{content:"";position:absolute;top:0;left:0;width:100%;height:100%;background:url(/assets/images/pattern.png) center center repeat;opacity:.3;z-index:-1;pointer-events:none}body#error404 h1{color:var(--text-minor);margin-block-end:0}body#error404 .hero{margin-block-start:0}body#error404 .pattern{display:none}.site-footer{margin-top:var(--space-5xl);color:var(--text-minor);padding-bottom:var(--space-l)}.site-footer a{color:rgb(from var(--action) r g b / .6)}.site-footer .links a{margin-inline-start:var(--space-xs)}.site-footer .wrapper{padding-block:var(--space-l)}.pattern{background:var(--surface-sunken) url(/assets/images/pattern.png) center center repeat;max-width:clamp(16rem,var(--wrapper-max-width, 100vw),80rem);margin-inline:auto;height:var(--space-m);margin-bottom:var(--space-l)}:root{--fluid-min-width: 16;--fluid-max-width: 80;--fluid-min-size: 3;--fluid-max-size: 18;--fluid-slope: calc( (var(--fluid-max-size) - var(--fluid-min-size)) / (var(--fluid-max-width) - var(--fluid-min-width)) * 100 );--fluid-intercept: calc( var(--fluid-min-size) - (var(--fluid-slope) * var(--fluid-min-width) / 100) );--hero-font-size: clamp( calc(var(--fluid-min-size) * 1rem), calc(calc(var(--fluid-intercept) * 1rem) + calc(var(--fluid-slope) * 1vw)), calc(var(--fluid-max-size) * 1rem) )}.hero{font-size:var(--hero-font-size);line-height:.97;margin-block-end:5rem}.subtitle{font-size:var(--step-1);line-height:1.2;--flow-space: var(--space-4xl)}#__home__ .next-page{--flow-space: var(--space-5xl)}html:has(.snap){scroll-snap-type:y proximity;scroll-behavior:smooth}figure.media.snap{display:flex;align-items:center;justify-content:center;min-height:100vh;max-width:clamp(16rem,var(--wrapper-max-width, 100vw),80rem);margin:0 auto;view-timeline-name:--image-fade;view-timeline-axis:block}figure.media.snap img{width:100%;height:auto;max-height:85vh;object-fit:contain;animation:fade-in linear both;animation-timeline:--image-fade;animation-range:entry 25% cover 50%}figure.media.snap{scroll-snap-align:center;scroll-snap-stop:always}footer{scroll-snap-align:none}@keyframes fade-in{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}figure.media{margin-top:var(--space-3xl)}figure img{width:100%}figure.media.large{width:100%;max-width:auto;margin-inline:auto}figure.media.medium{width:clamp(16rem,60vw,50rem);margin-inline:auto}figure.media.small{width:clamp(10rem,40vw,30rem);margin-inline:auto}.switcher figure{width:auto}.pages img:not(.color){filter:grayscale(100%)}.video-wrapper{position:relative;width:100%;aspect-ratio:16 / 9}.video-wrapper iframe{position:absolute;top:0;left:0;width:100%;height:100%;border:0}.theme-toggle-btn{color:var(--text-main);display:inline-flex;cursor:pointer;transition:all .2s ease}.theme-toggle-btn:active{transform:scale(.96)}body.dark-theme #theme-toggle .theme-toggle-icon{filter:sepia(1) saturate(5) hue-rotate(-30deg)}.work-listing a{display:block;color:var(--text-main)}.work-listing a .descriptor{color:var(--text-minor)}.work-listing a:hover{text-decoration:none;color:var(--action)}.work-listing a:after{content:none}.work-listing>a.project+a.project{margin-top:var(--space-3xl)}.work-listing h2{margin-top:var(--flow-space-s)}.work-listing img{transition:filter .3s ease}.work-listing img:hover{filter:brightness(1.12)}body.work figure+h2,body.work figure+p,body.work .columns+h2,body.work .columns+p{margin-top:var(--space-3xl)}.work-listing{margin-bottom:var(--space-5xl)}.mark{position:relative;display:flex;justify-content:center;align-items:center;aspect-ratio:1 / 1;overflow:hidden;opacity:.8}.mark img{max-width:100%;height:auto;object-fit:contain;transition:opacity .3s ease-in-out}.mark-color{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);opacity:0;transition:opacity .3s ease}.mark:hover .mark-bw:not(.all){opacity:0}.mark-bw.all{opacity:1!important}.mark:hover .mark-color{opacity:1}.cluster{display:flex;flex-wrap:wrap;gap:var(--gutter, var(--space-s-m));justify-content:var(--cluster-horizontal-alignment, flex-start);align-items:var(--cluster-vertical-alignment, center)}.cluster.align-right{--cluster-horizontal-alignment: flex-end}.clusterColumns .cluster{gap:var(--gutter-l)}.clusterColumns .cluster>*{flex:0 0 var(--column-width, 16rem)}.flow>*+*{margin-top:var(--flow-space, 1em)}.grid{display:grid;grid-template-columns:repeat(var(--grid-placement, auto-fit),minmax(var(--grid-min-item-size, 16rem),1fr));gap:var(--gutter, var(--space-s-l))}.grid[data-layout=halves]{--grid-placement: auto-fit;--grid-min-item-size: clamp(16rem, 50vw, 33rem)}.grid[data-layout=thirds]{--grid-placement: auto-fit;--grid-min-item-size: clamp(16rem, 33%, 20rem)}.repel{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:var(--repel-vertical-alignment, center);gap:var(--gutter, var(--space-s-m))}.repel[data-nowrap]{flex-wrap:nowrap}:has(>.sidebar){display:flex;flex-wrap:wrap;gap:var(--gutter, var(--space-s-l))}.sidebar{flex-basis:var(--sidebar-size, 30ch);flex-grow:1}.sidebar.narrow{flex-basis:var(--sidebar-size-narrow, 20ch)}:has(>.sidebar)>:not(.sidebar){flex-basis:0;flex-grow:999;min-inline-size:var(--sidebar-wrap-at, 50%)}:has(>.sidebar.right){flex-direction:row-reverse}.switcher{display:flex;flex-wrap:wrap;gap:var(--gutter, var(--space-s-l));align-items:var(--switcher-vertical-alignment, flex-start)}.switcher.compressed{gap:0}.switcher>*{flex-grow:1;flex-basis:calc((var(--switcher-target-container-width, 40rem) - 100%) * 999)}.switcher>:nth-child(n+4){flex-basis:100%}.wrapper{margin-inline:auto;max-width:clamp(16rem,var(--wrapper-max-width, 100vw),80rem);padding-inline:var(--gutter);position:relative;width:100%}.wrapper .wrapper{padding:0}.wrapper .full-bleed .wrapper{padding-inline:var(--gutter)}.wrapper:has(>.sidebar),.wrapper.wide{max-width:clamp(16rem,var(--wrapper-max-width-wide, 100vw),100rem)}.full-bleed{width:100vw;margin-left:calc(50% - 50vw)}.grow{transition:all var(--transition-movement);display:block;overflow:hidden;border-radius:var(--radius-m)}.grow:hover{transform:scale(1.05);box-shadow:var(--shadow-size) var(--shadow-color)}.grow.small:hover{transform:scale(1.05)}.grow:hover+figcaption{opacity:0;transition:opacity var(--transition-movement)}figcaption{transition:opacity var(--transition-movement)}.region{padding-block:var(--region-space, var(--space-xl-2xl))}.visually-hidden{border:0;clip:rect(0 0 0 0);height:0;margin:0;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap}
