@font-face{font-family:Inter;src:url(/fonts/InterVariable.woff2)format("woff2");font-weight:100 900;font-style:normal;font-display:swap}@font-face{font-family:IBM Plex Mono;src:url(/fonts/ibmplexmono-regular-v2.woff2)format("woff2");font-weight:400;font-style:normal;font-display:swap}:root{--bg:#ececec;--ink:#111;--green:#22d17f;--btn-bg:#bdbdbd;--btn-bg-dark:#474747;--muted:#9a9a9a;--radius-img:.5rem;--pad:16px;--line:1px;--font-sans:"Inter", "Helvetica Neue", Helvetica, Arial, sans-serif;--fw-sans:600;--ls-sans:-.02em;--lh-sans:1.4;--fs-sans-min:13;--fs-sans-max:16;--font-mono:"IBM Plex Mono", "Courier New", ui-monospace, Menlo, monospace;--fw-mono:400;--ls-mono:0em;--vw-min:390;--vw-max:2000;--fs-base-min:13;--fs-base-max:18;--fs-title-min:18;--fs-title-max:25;--fs-lead-min:20;--fs-lead-max:31;--fs-sans:clamp(calc(var(--fs-sans-min) / 16 * 1rem), calc(var(--fs-sans-min) / 16 * 1rem + (var(--fs-sans-max) - var(--fs-sans-min)) * (100vw - var(--vw-min) * 1px) / (var(--vw-max) - var(--vw-min))), calc(var(--fs-sans-max) / 16 * 1rem));--fs-base:clamp(calc(var(--fs-base-min) / 16 * 1rem), calc(var(--fs-base-min) / 16 * 1rem + (var(--fs-base-max) - var(--fs-base-min)) * (100vw - var(--vw-min) * 1px) / (var(--vw-max) - var(--vw-min))), calc(var(--fs-base-max) / 16 * 1rem));--fs-title:clamp(calc(var(--fs-title-min) / 16 * 1rem), calc(var(--fs-title-min) / 16 * 1rem + (var(--fs-title-max) - var(--fs-title-min)) * (100vw - var(--vw-min) * 1px) / (var(--vw-max) - var(--vw-min))), calc(var(--fs-title-max) / 16 * 1rem));--fs-lead:clamp(calc(var(--fs-lead-min) / 16 * 1rem), calc(var(--fs-lead-min) / 16 * 1rem + (var(--fs-lead-max) - var(--fs-lead-min)) * (100vw - var(--vw-min) * 1px) / (var(--vw-max) - var(--vw-min))), calc(var(--fs-lead-max) / 16 * 1rem));--nav-h:calc(var(--pad) * 2 + var(--fs-sans) * var(--lh-sans));--footer-h:calc(var(--pad) / 2 + var(--fs-sans) * var(--lh-sans) + var(--pad));--btn-size:calc(var(--fs-sans) * var(--lh-sans))}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%;background:var(--bg)}body{font-family:var(--font-mono);font-size:var(--fs-base);font-weight:var(--fw-mono);letter-spacing:var(--ls-mono);color:var(--ink);background:var(--bg);-webkit-font-smoothing:antialiased;-webkit-hyphens:auto;hyphens:auto;hyphenate-limit-chars:6 3 3;min-height:100dvh;line-height:1.4}a{color:inherit}img{max-width:100%;display:block}ul{list-style:none}button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:0}.nav,.nav__toggle,.menu__inner,.footer,.project__facts{font-family:var(--font-sans);font-size:var(--fs-sans);font-weight:var(--fw-sans);letter-spacing:var(--ls-sans);line-height:var(--lh-sans)}.nav,.menu__inner,.footer,.project__title,.project__facts,.home__text,.contact__content{-webkit-hyphens:manual;hyphens:manual}.ph,.projects__preview,.project__gallery img{border-radius:var(--radius-img);overflow:hidden}.ph{aspect-ratio:4/5;background:#bbb;width:100%}.ph--landscape{aspect-ratio:5/4;grid-column:1/-1}html.lenis,html.lenis body{height:auto}.lenis.lenis-smooth{scroll-behavior:auto!important}.lenis.lenis-stopped{overflow:hidden}.page{padding-top:var(--nav-h);padding-bottom:calc(var(--footer-h) + env(safe-area-inset-bottom));min-height:100dvh}.sr-only{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.nav{z-index:60;height:var(--nav-h);padding:var(--pad) var(--pad) 0;pointer-events:none;background:0 0;justify-content:space-between;align-items:flex-start;display:flex;position:fixed;top:0;left:0;right:0}.nav a,.nav button{pointer-events:auto}.nav__links{gap:1.5rem;display:flex}.nav__links a{background-image:linear-gradient(var(--green), var(--green));background-position:100% 100%;background-repeat:no-repeat;background-size:0% 2px;text-decoration:none;transition:background-size .3s}.nav__links a[aria-current=page]{background-size:100% 2px}@media (hover:hover){.nav__links a:hover,.nav__links a:focus-visible{background-position:0 100%;background-size:100% 2px}}.nav__toggle{display:none}.menu{z-index:55;background:var(--bg);padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom);overscroll-behavior:contain;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.menu[hidden]{display:none}.menu__inner{text-align:center;flex-direction:column;gap:2.2em;font-size:2rem;line-height:1.2;display:flex}.menu__group{flex-direction:column;display:flex}.menu__group a{text-decoration:none}html.menu-open,html.menu-open body{overflow:hidden}.footer{z-index:50;height:calc(var(--footer-h) + env(safe-area-inset-bottom));padding:calc(var(--pad) / 2) var(--pad) calc(var(--pad) + env(safe-area-inset-bottom));column-gap:var(--pad);background:var(--bg);grid-template-columns:repeat(4,1fr);align-items:start;display:grid;position:fixed;bottom:0;left:0;right:0}.footer:before{content:"";top:0;left:var(--pad);right:var(--pad);height:var(--line);background:var(--ink);position:absolute}.footer__copy{grid-column:1}.footer__tagline{grid-column:2/span 2}.footer__right{grid-column:4;align-items:center;gap:8px;display:flex}.footer__email{margin-right:auto;text-decoration:none}.footer__icon{display:inline-flex}.footer__icon svg{width:1.2em;height:1.2em}.footer__name-mobile,.footer__credit{display:none}.footer__credit a{text-underline-offset:2px}@media (hover:hover){.footer__copy{justify-self:start;display:grid}.footer__copy>*{grid-area:1/1}.footer__credit{opacity:0;pointer-events:none;display:inline}.footer__copy:hover .footer__copy-default,.footer__copy:has(:focus-visible) .footer__copy-default{opacity:0;pointer-events:none}.footer__copy:hover .footer__credit,.footer__copy:has(:focus-visible) .footer__credit{opacity:1;pointer-events:auto}}.home{column-gap:var(--pad);padding-inline:var(--pad);grid-template-columns:repeat(4,1fr);align-items:center;display:grid}.home__logo{mix-blend-mode:multiply;aspect-ratio:1141/326;grid-column:1/span 2;place-self:center start;width:80%;max-width:450px;height:auto}.home__text{font-size:var(--fs-lead);grid-column:3/span 2;line-height:1.22}.home__text a{text-underline-offset:5px}.projects{column-gap:var(--pad);padding-inline:var(--pad);grid-template-columns:repeat(4,1fr);align-items:center;display:grid}.projects__list{font-size:var(--fs-lead);border-top:var(--line) solid var(--ink);grid-column:1/-1;line-height:1.22}.projects__row{column-gap:var(--pad);border-bottom:var(--line) solid var(--ink);grid-template-columns:repeat(4,1fr);padding:1px 0;text-decoration:none;transition:background-color .3s;display:grid}.projects__title,.projects__type,.projects__year{grid-row:1}.projects__title{grid-column:1/span 2}.projects__type{grid-column:4}.projects__year{grid-column:4;justify-self:end}@media (width<=1100px){.projects__type{grid-column:3}}@media (hover:hover){.projects__row:hover,.projects__row:focus-visible{background-color:var(--green);transition-duration:0s}}.projects__preview{display:none}@media (hover:hover) and (width>=769px){.projects__preview{z-index:20;aspect-ratio:4/5;opacity:0;pointer-events:none;background:#bbb;height:70dvh;transition:opacity .2s;display:block;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%)}.projects__preview.is-visible{opacity:1}}.project{column-gap:var(--pad);padding-inline:var(--pad);grid-template-columns:repeat(4,1fr);align-items:start;display:grid}.project__gallery{gap:var(--pad);padding-bottom:var(--pad);z-index:2;grid-column:1/span 3;grid-template-columns:1fr 1fr;display:grid;position:relative}.project__info{top:var(--nav-h);grid-column:4;padding-top:12px;position:sticky}.project__head{margin-bottom:var(--pad);justify-content:space-between;align-items:flex-start;display:flex}.project__pager{gap:calc(var(--pad) / 2);display:flex}.project__btn{width:var(--btn-size);height:var(--btn-size);background:var(--btn-bg);border-radius:50%;justify-content:center;align-items:center;transition:background-color .2s,color .2s;display:inline-flex}.project__btn--close{background:var(--green)}.project__btn svg{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;width:55%;height:55%}@media (hover:hover){.project__btn:hover,.project__btn:focus-visible{background:var(--ink);color:var(--bg)}}.project__title{font-size:var(--fs-lead);font-weight:var(--fw-mono);margin-top:-.29em;margin-bottom:20px;line-height:1.22}@media (width>=769px){.project__info{top:var(--pad);margin-top:calc(var(--nav-h) * -1);padding-top:0}}.project__facts{border-top:var(--line) solid var(--ink)}.project__fact{justify-content:space-between;gap:var(--pad);border-bottom:var(--line) solid var(--ink);padding:1px 0;display:flex}.project__fact dd{text-align:right}.project__text{font-size:var(--fs-base);text-align:justify;margin-top:28px;line-height:1.5}.project__text p{margin-bottom:1em}.project__credit{color:var(--btn-bg-dark)}@media (width<=1100px){.project__gallery{grid-column:1/span 2;grid-template-columns:1fr}.project__info{grid-column:3/span 2}}.project:after{content:"";left:0;right:0;bottom:calc(var(--footer-h) + env(safe-area-inset-bottom));height:calc(var(--pad) * 7);background:linear-gradient(to top, var(--bg) 5%, transparent);pointer-events:none;z-index:1;position:fixed}.project__gallery>*{cursor:zoom-in}.lightbox{z-index:100;cursor:zoom-out;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.lightbox:before{content:"";background-color:#ecececb3;background-color:color-mix(in srgb, var(--bg) 70%, transparent);backdrop-filter:blur(6px);position:absolute;inset:0}.lightbox>*{object-fit:contain;cursor:default;width:auto;max-width:95vw;height:auto;max-height:95vh;position:relative}.lightbox>.ph{width:min(92vw,74vh);height:auto}.lightbox>.ph--landscape{width:min(92vw,92vh)}.project__gallery img,.lightbox img{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-user-drag:none}.info{padding-inline:var(--pad);padding-bottom:calc(var(--footer-h) + var(--pad) + env(safe-area-inset-bottom))}.info p{font-size:calc(var(--fs-lead) * 1.3);text-indent:calc(25% + var(--pad) / 4);text-align:justify;margin-bottom:1em;line-height:1.22}.info__portraits{column-gap:var(--pad);row-gap:var(--pad);grid-template-columns:repeat(4,1fr);display:grid}.info__portrait{aspect-ratio:4/5;object-fit:cover;border-radius:var(--radius-img);background:#bbb;grid-column:4;width:100%}@media (width<=768px){.info__portrait{grid-column:1/-1}}@media (hover:hover) and (width>=769px){.info__portraits{top:var(--pad);left:var(--pad);right:var(--pad);z-index:20;pointer-events:none;position:fixed}.info__portrait{opacity:0;grid-row:1;transition:opacity .2s}.info__portrait.is-visible{opacity:1}}.info__person{text-underline-offset:.12em;text-decoration:underline .1em;text-decoration-color:var(--green)}.contact{column-gap:var(--pad);padding-inline:var(--pad);grid-template-columns:repeat(4,1fr);align-items:center;display:grid}.contact__content{text-align:center;font-size:calc(var(--fs-lead) * 1.4);grid-column:1/-1;line-height:1.22}.contact__content p{margin-bottom:1.5em}.contact a{transition:color .2s;display:inline-block}@media (hover:hover){.contact a:hover,.contact a:focus-visible{color:var(--green)}}.contact a[href^=mailto\:]{transition:color .2s,transform .3s}@media (hover:hover){.contact a[href^=mailto\:]:hover,.contact a[href^=mailto\:]:focus-visible{transform:rotate(3deg)}}.contact a.contact__tel{text-decoration:none}@media (hover:hover){.contact a.contact__tel:hover,.contact a.contact__tel:focus-visible{color:inherit}}.contact__logo{aspect-ratio:480/468;mix-blend-mode:multiply;width:8rem;height:auto;margin:0 auto 1.5em;display:block}.contact__social{justify-content:center;gap:1rem;display:flex}.contact__social svg{width:2rem;height:2rem}html.intro .nav,html.intro .footer{opacity:0}html.intro .home__logo{opacity:0;transform:translate(var(--dx,0px), var(--dy,0px))}html.intro .home__text{visibility:hidden}html.intro .home__text.tw-ready{visibility:visible}html.intro .tw:not(.on){visibility:hidden}html.intro-fade .home__logo{opacity:1;transition:opacity var(--intro-fade,.9s) ease}html.intro-run .home__logo{transition:transform var(--intro-move,1.2s) cubic-bezier(.65, 0, .35, 1);transform:none}html.intro-run .nav,html.intro-run .footer{opacity:1;transition:opacity var(--intro-move,1.2s) cubic-bezier(.65, 0, .35, 1)}body:after{content:"";z-index:30;background:var(--bg);opacity:0;pointer-events:none;transition:opacity var(--page-fade,.3s) ease;animation:page-reveal var(--page-fade,.3s) ease;position:fixed;inset:0}@keyframes page-reveal{0%{opacity:1}to{opacity:0}}html.page-leaving body:after{opacity:1;pointer-events:auto}html.intro body:after{animation-duration:0s}html.no-reveal body:after{animation:none}@media (scripting:enabled){[data-reveal]{opacity:0;transform:translateY(var(--reveal-y,1.2em))}[data-reveal].is-in{opacity:1;transition:opacity var(--reveal-duration,.7s) ease, transform var(--reveal-duration,.7s) cubic-bezier(.2, .7, .2, 1);transform:none}}span[data-reveal],span.reveal-item{display:block}@media (width<=768px){:root{--fs-lead:1.25rem;--nav-h:calc(var(--pad) * 2 + var(--fs-sans) * var(--lh-sans) + 6px);--round:3rem}.nav{padding-top:calc(var(--pad) + env(safe-area-inset-top));height:calc(var(--nav-h) + env(safe-area-inset-top))}.page{padding-top:calc(var(--nav-h) + env(safe-area-inset-top))}.nav__links{display:none}.nav__toggle{z-index:60;width:var(--round);height:var(--round);background:var(--green);border-radius:50%;justify-content:center;align-items:center;margin-left:auto;display:inline-flex;position:relative}.nav__toggle:after{content:"";position:absolute;inset:-8px}.nav__toggle-icon{width:44%;height:44%;transition:transform .35s cubic-bezier(.2,.7,.2,1);position:relative}.nav__toggle-icon:before,.nav__toggle-icon:after{content:"";background:var(--ink);position:absolute}.nav__toggle-icon:before{height:1.5px;top:50%;left:0;right:0;transform:translateY(-50%)}.nav__toggle-icon:after{width:1.5px;top:0;bottom:0;left:50%;transform:translate(-50%)}.nav__toggle[aria-expanded=true] .nav__toggle-icon{transform:rotate(45deg)}.nav__toggle-label{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.footer__right{grid-column:3/span 2;justify-content:flex-end}.footer__copy-name,.footer__tagline,.footer__email,.footer__icon{display:none}.footer__name-mobile{display:inline}.home{padding-bottom:calc(var(--footer-h) + var(--pad) + env(safe-area-inset-bottom));flex-direction:column;justify-content:flex-end;display:flex}.home__logo{width:103.5%;max-width:none;margin-left:-2.1%;margin-bottom:var(--pad);align-self:flex-start;display:block}.projects{flex-direction:column;justify-content:center;align-items:stretch;height:auto;display:flex}.projects__preview{display:none}.projects__list{font-size:1rem}.projects__type{grid-column:3/span 2}.project{flex-direction:column;align-items:stretch;display:flex}.project__info{display:contents}.project__info>*{order:-1}.project__gallery{grid-column:auto;grid-template-columns:1fr}.project__title{font-size:2rem}.project__text{margin-bottom:24px;font-size:1.2rem;line-height:1.4rem}.project__head{justify-content:flex-start;align-self:flex-start;align-items:flex-start;gap:calc(var(--pad) / 2);margin:calc(var(--pad) - var(--nav-h)) 0 var(--pad);top:calc(var(--pad) + env(safe-area-inset-top));z-index:3;flex-direction:row;display:flex;position:sticky}.project__btn{width:var(--round);height:var(--round);position:relative}.project__btn--close{background:var(--btn-bg-dark);order:-1}.project__btn svg{display:none}.project__btn:before{content:"";background-position:50%;background-repeat:no-repeat;background-size:44% 44%;position:absolute;inset:0}.project__btn--close:before{background-color:var(--bg);-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.5'%3E%3Cpath d='M8 5L1 12l7 7M1 12h22V5'/%3E%3C/svg%3E") 50%/44% 44% no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.5'%3E%3Cpath d='M8 5L1 12l7 7M1 12h22V5'/%3E%3C/svg%3E") 50%/44% 44% no-repeat}.project__pager .project__btn:first-child:before{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23111' stroke-width='1.5'%3E%3Cpath d='M8 5L1 12l7 7M1 12h22'/%3E%3C/svg%3E")}.project__pager .project__btn:last-child:before{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23111' stroke-width='1.5'%3E%3Cpath d='M16 5l7 7-7 7M23 12H1'/%3E%3C/svg%3E")}.info{padding-top:calc(var(--nav-h) + env(safe-area-inset-top) + var(--pad))}.info p{font-size:var(--fs-lead)}.contact__content{font-size:var(--fs-lead);grid-column:1/-1}.contact__logo{width:6.5rem}}@media (prefers-reduced-motion:reduce){.nav__toggle-icon,.info__portrait{transition:none}body:after{display:none}[data-reveal]{opacity:1;transform:none}}
