@font-face{font-family:Host Grotesk;font-weight:300 800;font-display:swap;src:url(/fonts/host-grotesk-latin.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Host Grotesk;font-weight:300 800;font-display:swap;src:url(/fonts/host-grotesk-latin-ext.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:JetBrains Mono;font-weight:400;font-display:swap;src:url(/fonts/jetbrains-mono-latin.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:JetBrains Mono;font-weight:400;font-display:swap;src:url(/fonts/jetbrains-mono-latin-ext.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}:root{--paper:#f2f1ee;--ink:#141414;--muted:#6b6762;--hair:#d9d6cf;--red:#e2401c;--m:32px;--gut:32px;--grotesk:"Host Grotesk", "Instrument Sans", system-ui, sans-serif;--mono:"JetBrains Mono", ui-monospace, monospace;--grain:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 0  0 0 0 0 0  0 0 0 0 0  0 0 0 .09 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}*{box-sizing:border-box;margin:0;padding:0}html{background:var(--paper);color:var(--ink)}body{font:400 20px/32px var(--grotesk);-webkit-font-smoothing:antialiased}body:before{content:"";pointer-events:none;z-index:0;opacity:.45;background-image:var(--grain);position:fixed;inset:0}a{color:inherit}:focus-visible{outline:2px solid var(--red);outline-offset:3px}.wrap{z-index:1;padding:0 var(--gut);position:relative}.mono{font:400 12px/16px var(--mono);letter-spacing:.06em;text-transform:uppercase;font-variant-ligatures:none;font-variant-numeric:tabular-nums}.muted{color:var(--muted)}.arrow{border-bottom:1px solid var(--ink);padding-bottom:4px;text-decoration:none}.arrow:hover{color:var(--red);border-color:var(--red)}.nul{display:none}.rule{background:var(--hair);height:1px;position:relative}.rule:before,.rule:after{content:"";opacity:.6;background:linear-gradient(var(--ink), var(--ink)) center / 11px 1px no-repeat, linear-gradient(var(--ink), var(--ink)) center / 1px 11px no-repeat;width:11px;height:11px;position:absolute;top:-5px}.rule:before{left:-5px}.rule:after{right:-5px}header{justify-content:space-between;align-items:center;height:64px;display:flex}header nav{gap:var(--m);display:flex}header a{text-decoration:none}header a:hover{color:var(--red)}.brand .short{display:none}.hero{min-height:calc(100svh - 64px);padding-bottom:calc(var(--m) * 2);grid-template-columns:repeat(12,1fr);display:grid}.copy{padding:var(--m) var(--m) 0 0;flex-direction:column;grid-column:1/7;justify-content:space-between;display:flex}.name{letter-spacing:-.045em;font-size:min(128px,8.2vw);font-weight:500;line-height:.94}.lede{margin-top:var(--m);letter-spacing:-.012em;max-width:19em;font-size:28px;line-height:38px}.hero .lede{max-width:none;font-size:26px;line-height:36px}.hero .lede .ln{display:block}.spec dd a{text-decoration:none}.spec dd a:after{content:" →";opacity:0;transition:opacity .2s}.spec dd a:hover{color:var(--red)}.spec dd a:hover:after{opacity:1}.spec{margin-top:calc(var(--m) * 2);border-top:1px solid var(--hair)}.spec div{border-bottom:1px solid var(--hair);grid-template-columns:7.5em 1fr;gap:16px;padding:12px 0;display:grid}.spec dt{color:var(--muted)}.links{gap:var(--m);margin-top:var(--m);display:flex}.portrait{height:calc(100svh - 64px - var(--m) * 2);aspect-ratio:4/5;grid-column:7/13;justify-self:end;max-height:900px;position:relative}.portrait .still{object-fit:cover;filter:grayscale()contrast(1.12);width:100%;height:100%;display:block;position:absolute;inset:0}.portrait canvas{touch-action:pan-y;cursor:none;opacity:0;width:100%;height:100%;transition:opacity .8s;display:block;position:absolute;inset:0}.portrait canvas.on{opacity:1}.portrait:after{content:"";pointer-events:none;background-image:var(--grain);opacity:.8;position:absolute;inset:0}.portrait figcaption{justify-content:space-between;padding-top:8px;display:flex;position:absolute;top:100%;left:0;right:0}.portrait figcaption a{text-decoration:none}.portrait figcaption a:hover{color:var(--red)}section{padding:calc(var(--m) * 4) 0 calc(var(--m) * 4.5)}.label{margin-bottom:calc(var(--m) * 1.5);justify-content:space-between;display:flex}h2{letter-spacing:-.035em;margin-bottom:calc(var(--m) * 2);font-size:64px;font-weight:500;line-height:64px}.cards{border-top:1px solid var(--hair);grid-template-columns:repeat(3,1fr);display:grid}.card{padding:var(--m) var(--m) var(--m) 0;border-bottom:1px solid var(--hair);flex-direction:column;display:flex}.card+.card{padding-left:var(--m);border-left:1px solid var(--hair)}.card h3{letter-spacing:-.015em;margin-bottom:16px;font-size:30px;font-weight:400;line-height:38px}.card p{flex:1}.card .cap{margin-top:var(--m);flex:0;justify-content:space-between;gap:16px;display:flex}.card{position:relative}.card h3 a:after{content:"";position:absolute;inset:0}.card h3,.card .go{transition:color .2s}.card:hover h3,.card:focus-within h3,.card:hover .go,.card:focus-within .go,.also a:hover{color:var(--red)}.also{margin-top:var(--m);gap:var(--m);flex-wrap:wrap;justify-content:space-between;align-items:baseline;display:flex}.also p{max-width:46em}.clients{padding:var(--m) 0;border-bottom:1px solid var(--hair);grid-template-columns:3fr 9fr;align-items:baseline;display:grid}.clients ul{letter-spacing:-.015em;flex-wrap:wrap;gap:8px 40px;font-size:32px;line-height:40px;list-style:none;display:flex}.photo{margin:0;position:relative}.photo img{object-fit:cover;background:#ddd;width:100%;height:auto;display:block}.photo figcaption{color:var(--muted);padding-top:8px}.photo .credit{margin-top:4px;display:block}:root{--dark:#0e0c0b;--on-dark:#f2f1ee;--muted-dark:#9a958e}.darkroom{margin:0 calc(-1 * var(--gut));padding:calc(var(--m) * 4) var(--gut) calc(var(--m) * 4);background:var(--dark);color:var(--on-dark)}.darkroom .label{color:var(--muted-dark)}.darkroom .arrow{border-color:var(--on-dark)}.darkroom .under{margin-top:calc(var(--m) * 3)}.plate{margin:calc(var(--m) * 4) 0 0;align-items:flex-end;gap:0;display:flex}.plate:nth-of-type(2n){flex-direction:row-reverse}.plate img{width:auto;max-width:66%;height:auto;max-height:84svh;display:block}.plate figcaption{color:var(--muted-dark);flex-direction:column;gap:2px;min-width:14em;padding:0 0 2px 72px;display:flex;position:relative}.plate figcaption b{color:var(--on-dark);font-weight:400}.plate figcaption:before{content:"";background:var(--muted-dark);width:60px;height:1px;position:absolute;top:7px;left:0}.plate figcaption:after{content:"";background:var(--red);width:5px;height:5px;position:absolute;top:5px;left:-3px}.plate:nth-of-type(2n) figcaption{text-align:right;padding:0 72px 2px 0}.plate:nth-of-type(2n) figcaption:before{left:auto;right:0}.plate:nth-of-type(2n) figcaption:after{left:auto;right:-2px}@media (prefers-reduced-motion:no-preference){@supports (animation-timeline:view()){.darkroom{animation:linear both room view();animation-range:entry entry 80%}.plate img{animation:linear both develop view();animation-range:entry 10% cover 45%}}}@keyframes room{0%{background-color:var(--paper);color:var(--ink)}to{background-color:var(--dark);color:var(--on-dark)}}@keyframes develop{0%{opacity:0;filter:brightness(1.7)contrast(.5)}to{opacity:1;filter:none}}@media (width<=900px){.darkroom{padding:calc(var(--m) * 2.5) var(--gut)}.darkroom .label{flex-direction:column;gap:8px}.plate,.plate:nth-of-type(2n){margin-top:calc(var(--m) * 2.5);flex-direction:column;align-items:stretch}.plate img{max-width:100%;max-height:none}.plate figcaption,.plate:nth-of-type(2n) figcaption{text-align:left;padding:24px 0 0 72px}.plate figcaption:before,.plate:nth-of-type(2n) figcaption:before{top:31px;left:0;right:auto}.plate figcaption:after,.plate:nth-of-type(2n) figcaption:after{top:29px;left:-3px;right:auto}}.strip{grid-template-columns:repeat(5,1fr);gap:16px;display:grid}.strip .photo{overflow:hidden}.strip .photo img{filter:grayscale()contrast(1.05);transition:filter .4s}.strip .photo:hover img{filter:none}.strip .photo figcaption{color:var(--paper);text-shadow:0 1px 2px #00000080;background:linear-gradient(#0000,#000000a6);padding:32px 8px 8px;position:absolute;bottom:0;left:0;right:0}.series-list{gap:calc(var(--m) * 1.5) var(--m);padding-bottom:calc(var(--m) * 3);grid-template-columns:repeat(2,1fr);display:grid}.series-list a{text-decoration:none}.series-list h2{letter-spacing:-.015em;justify-content:space-between;align-items:baseline;margin:16px 0 0;font-size:30px;font-weight:400;line-height:38px;display:flex}.series-list a:hover h2{color:var(--red)}.gallery{gap:calc(var(--m) * 1.5) var(--m);padding-bottom:calc(var(--m) * 3);flex-wrap:wrap;display:flex}.gallery .photo{flex:var(--ar) 1 calc(var(--ar) * 290px)}.gallery:after{content:"";flex:999 1 0}.gallery a{text-decoration:none}.gallery a.zoom{cursor:zoom-in;display:block}.gallery a.zoom img{transition:opacity .2s}.gallery a.zoom:hover img{opacity:.88}.viewer{color:#e3e1dc;background:#121110;border:0;width:100vw;max-width:none;height:100dvh;max-height:none;margin:0;padding:0}.viewer::backdrop{background:#121110}.viewer img{object-fit:contain;width:calc(100% - 48px);height:calc(100% - 120px);position:absolute;top:56px;left:24px}.viewer button{color:inherit;font:inherit;cursor:pointer;background:0 0;border:0;padding:0}.viewer .prev,.viewer .next{width:30%;position:absolute;top:56px;bottom:64px}.viewer .prev{cursor:w-resize;left:0}.viewer .next{cursor:e-resize;right:0}.viewer .x{padding:8px 0;position:absolute;top:16px;right:24px}.viewer .x:hover{color:var(--red)}.viewer p{color:#9a958c;justify-content:space-between;gap:16px;display:flex;position:absolute;bottom:20px;left:24px;right:24px}.video{aspect-ratio:16/9;margin-bottom:calc(var(--m) * 1.5);background:var(--ink);position:relative}.video iframe{border:0;width:100%;height:100%;position:absolute;inset:0}.missing{justify-content:center;gap:var(--m);flex-direction:column;min-height:60svh;display:flex}.missing .pixel{background:var(--ink);width:96px;height:96px}.missing .say{letter-spacing:-.02em;font-size:40px;line-height:48px}.under{flex-wrap:wrap;justify-content:space-between;gap:16px;margin-top:16px;display:flex}.feed{border-top:1px solid var(--hair);list-style:none}.feed li{border-bottom:1px solid var(--hair)}.feed a{gap:var(--m);padding:var(--m) 0;grid-template-columns:72px 2fr 7fr;align-items:start;text-decoration:none;display:grid}.feed .mini{width:72px;height:90px;fill:var(--ink);transition:fill .2s;display:block}.feed .mono{padding-top:6px}.feed .t{flex-direction:column;gap:4px;display:flex}.feed .t b{letter-spacing:-.015em;font-size:32px;font-weight:400;line-height:40px;transition:color .2s}.feed a:hover .t b,.feed a:focus-visible .t b{color:var(--red)}.feed a:hover .mini{fill:var(--red)}.about{grid-template-columns:repeat(12,1fr);display:grid}.about blockquote{letter-spacing:-.02em;grid-area:2/1/auto/8;font-size:40px;line-height:48px}.about .more{margin-top:var(--m);grid-area:3/1/auto/8;align-self:start}.about-body{padding-top:calc(var(--m) * 1.5);grid-template-rows:auto 1fr;grid-template-columns:7fr 2fr 3fr;display:grid}.about-body .prose{grid-column:1}.about-body .prose-a{grid-row:1;padding-bottom:0}.about-body .prose-b{grid-row:2;align-self:start;padding-top:16px}.about-body .figs{justify-self:end;gap:calc(var(--m) * 3);width:min(100%,272px);padding:8px 0 calc(var(--m) * 3);flex-direction:column;grid-area:1/3/span 2;display:flex}.about-body .pair{gap:calc(var(--m) * 3);flex-direction:column;display:flex}.about-body .figs img,.about-body .figs .stage{aspect-ratio:4/5;background:var(--hair);width:100%;height:auto;display:block}.about-body .figs .portrait-small{filter:grayscale()contrast(1.08);object-fit:cover}.about-body .figs .stage{outline:1px solid var(--hair);outline-offset:-1px;background:0 0;position:relative}.about-body .figs canvas{cursor:grab;touch-action:pan-y;width:100%;height:100%;position:absolute;inset:0}.about-body .figs canvas.grabbing{cursor:grabbing}.about-body figcaption,.case figcaption{padding-top:8px}.about-body figcaption b,.case figcaption b{color:var(--ink);font-weight:400}.case{padding-top:calc(var(--m) * 1.5);grid-template-columns:7fr 2fr 3fr;display:grid}.case .prose{grid-column:1}.case .figs{justify-self:end;gap:calc(var(--m) * 2);width:min(100%,272px);padding:8px 0 calc(var(--m) * 3);flex-direction:column;grid-column:3;display:flex}.case .figs img{outline:1px solid var(--hair);outline-offset:-1px;width:100%;height:auto;display:block}.about-body figcaption a{text-decoration:none}.about-body figcaption a:hover{color:var(--red)}.timeline{margin-top:calc(var(--m) * 2);border-top:1px solid var(--hair);grid-column:1/13;grid-template-columns:repeat(8,1fr);display:grid}.timeline div{padding:12px 12px 0 0;position:relative}.timeline div:before{content:"";background:var(--ink);width:5px;height:5px;position:absolute;top:-3px;left:0}.timeline b{color:var(--ink);margin-bottom:4px;font-weight:400;display:block}.contact .say{letter-spacing:-.02em;max-width:20em;font-size:40px;line-height:48px}.contact .links{margin-top:calc(var(--m) * 1.5);flex-wrap:wrap}footer{padding:var(--m) 0 calc(var(--m) * 2);justify-content:space-between;display:flex}footer a{text-decoration:none}.page-head{padding:calc(var(--m) * 2) 0 calc(var(--m) * 2)}.page-head h1{letter-spacing:-.045em;font-size:96px;font-weight:500;line-height:92px}.page-head .lede{max-width:24em}.back{margin-bottom:var(--m);text-decoration:none;display:inline-block}.back:hover{color:var(--red)}.entries{border-top:1px solid var(--hair);list-style:none}.entry a{gap:var(--m);padding:var(--m) 0;border-bottom:1px solid var(--hair);grid-template-columns:2fr 6fr 4fr;text-decoration:none;display:grid}.entry h2{letter-spacing:-.015em;margin:0 0 12px;font-size:30px;font-weight:400;line-height:38px}.entry a:hover h2{color:var(--red)}.entry .cap{text-align:right}.things{border-top:1px solid var(--hair);grid-template-columns:repeat(3,1fr);display:grid}.thing{padding:var(--m) var(--m) var(--m) 0;border-bottom:1px solid var(--hair);flex-direction:column;gap:12px;display:flex}.thing:not(:nth-child(3n+1)){padding-left:var(--m);border-left:1px solid var(--hair)}.thing h3{letter-spacing:-.01em;justify-content:space-between;align-items:baseline;gap:16px;font-size:24px;font-weight:500;line-height:32px;display:flex}.thing p{flex:1}.thing .row{flex-wrap:wrap;justify-content:space-between;gap:16px;display:flex}.prose{max-width:36em;padding-bottom:calc(var(--m) * 3)}.prose h2{letter-spacing:-.015em;margin:calc(var(--m) * 1.5) 0 16px;font-size:32px;line-height:40px}.prose p+p{margin-top:16px}.prose a{text-underline-offset:4px;text-decoration-thickness:1px}@media (width<=900px){.page-head h1{font-size:56px;line-height:56px}.entry a{grid-template-columns:1fr;gap:8px}.entry .cap{text-align:left}.things{grid-template-columns:1fr}.thing:not(:nth-child(3n+1)){border-left:0;padding-left:0}:root{--gut:16px}body{font-size:17px;line-height:24px}header nav{gap:16px}.brand .full{display:none}.brand .short{display:inline}section{padding:calc(var(--m) * 2.5) 0}header{height:56px}header nav a,.brand{align-items:center;min-height:44px;display:inline-flex}.label{margin-bottom:var(--m)}h2{margin-bottom:var(--m);font-size:40px;line-height:40px}.page-head{padding:calc(var(--m) * 1.25) 0 calc(var(--m) * 1.5)}.hero{min-height:0;padding-bottom:calc(var(--m) * 2);flex-direction:column;display:flex}.copy,.copy>div{display:contents}.name{order:1;margin-top:16px;font-size:min(64px,15vw)}.portrait{width:100%;height:auto;margin:var(--m) 0 64px;order:2}.portrait figcaption{flex-direction:column;gap:2px}.lede{order:3;margin-top:0;font-size:22px;line-height:30px}.hero .lede .ln+.ln{margin-top:10px}.spec{margin-top:var(--m);order:4}.spec div{grid-template-columns:5.5em 1fr;gap:12px;padding:10px 0}.links{order:5}.links a,.contact .links a{align-items:flex-end;min-height:32px;display:inline-flex}.plate figcaption,.plate:nth-of-type(2n) figcaption{flex-flow:wrap;gap:0 10px;padding-top:20px}.plate figcaption span:before{content:"· "}.plate figcaption:before,.plate:nth-of-type(2n) figcaption:before{top:27px}.plate figcaption:after,.plate:nth-of-type(2n) figcaption:after{top:25px}.darkroom .under{margin-top:calc(var(--m) * 2)}.thing,.thing:not(:nth-child(3n+1)){padding-right:0}.series-list h2{flex-direction:column;align-items:flex-start;gap:4px}.timeline{border-top:0;border-left:1px solid var(--hair);grid-template-columns:1fr;row-gap:0;margin-left:2px}.timeline div{grid-template-columns:4.5em 1fr;padding:0 0 16px 20px;display:grid}.timeline div:before{top:5px;left:-3px}.timeline b{margin:0}.cards{grid-template-columns:1fr}.card+.card{border-left:0;padding-left:0}.clients{grid-template-columns:1fr;gap:8px}.feed a{grid-template-columns:56px 1fr;gap:8px 16px}.feed .mini{grid-row:span 2;width:56px;height:70px}.feed .t b{font-size:24px;line-height:32px}.clients ul{gap:4px 20px;font-size:22px;line-height:30px}.strip{grid-template-columns:repeat(2,1fr)}.strip .photo:nth-child(5){display:none}.strip .photo figcaption{color:var(--muted);text-shadow:none;background:0 0;padding:8px 0 0;position:static}.series-list{grid-template-columns:1fr}.gallery{flex-direction:column}.gallery .photo{flex:none}.about blockquote,.contact .say{font-size:26px;line-height:34px}.about blockquote,.about .more{grid-area:auto/1/auto/13}.about-body{flex-direction:column;display:flex}.about-body .figs{display:contents}.case{display:block}.case .figs{width:100%;padding:0 0 calc(var(--m) * 2.5)}.case .figs img{width:auto;max-width:100%;max-height:60vh}.case figcaption b{display:block}.about-body .prose-a{order:1}.about-body .pair{margin:calc(var(--m) * 1.5) 0 calc(var(--m) * .5);order:2;grid-template-columns:1fr 1fr;gap:16px;display:grid}.about-body .prose-b{padding-top:var(--m);order:3}.about-body .net-fig{width:min(100%,360px);margin-bottom:calc(var(--m) * 3);order:4}}
