:root{--bg:#f3efe7;--bg-2:#ece7dc;--paper:#f8f5ef;--ink:#1e1b16;--ink-2:#4d483f;--ink-dim:#8b8578;--line:#1e1b1629;--line-soft:#1e1b1614;--on-image:#f6f2ea;--font-display:"Jost Variable", system-ui, sans-serif;--font-sans:"Geist Variable", system-ui, -apple-system, sans-serif;--fs-hero:clamp(2.6rem, 6.5vw, 6rem);--fs-display:clamp(2.1rem, 4.4vw, 3.9rem);--fs-h2:clamp(1.7rem, 3.2vw, 2.9rem);--fs-h3:clamp(1.25rem, 1.9vw, 1.7rem);--fs-lead:clamp(1.05rem, 1.5vw, 1.35rem);--fs-body:1.0625rem;--fs-small:.875rem;--fs-label:.72rem;--section-y:clamp(7rem, 15vw, 15rem);--gutter:clamp(1.25rem, 5vw, 5.5rem);--maxw:1500px;--ease-out:cubic-bezier(.22, 1, .36, 1);--z-nav:60;--z-overlay:80}*,:before,:after{box-sizing:border-box}*{margin:0}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}body{font-family:var(--font-sans);font-size:var(--fs-body);color:var(--ink);background:var(--bg);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;line-height:1.65;overflow-x:hidden}img,picture,svg,video{max-width:100%;display:block}img{height:auto}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:none}ul,ol{padding:0;list-style:none}input,textarea{font:inherit;color:inherit}::selection{background:var(--ink);color:var(--bg)}:focus-visible{outline:1.5px solid var(--ink);outline-offset:4px}h1,h2,h3,h4{font-family:var(--font-display);letter-spacing:-.01em;font-weight:400;line-height:1.04}.display{font-family:var(--font-display);font-weight:300;font-size:var(--fs-display);letter-spacing:-.015em;line-height:1.05}.label{font-family:var(--font-display);font-size:var(--fs-label);text-transform:uppercase;letter-spacing:.26em;color:var(--ink-dim);font-weight:500}.lead{font-size:var(--fs-lead);color:var(--ink-2);font-weight:300;line-height:1.55}.muted{color:var(--ink-dim)}.wrap{width:100%;max-width:var(--maxw);padding-inline:var(--gutter);margin-inline-start:auto;margin-inline-end:auto}.section{padding-block:var(--section-y);position:relative}section[id]{scroll-margin-top:100px}.section--tint{background:var(--bg-2)}.section-head{max-width:64ch;margin-bottom:clamp(3rem,6vw,6rem)}.section-head .label{margin-bottom:1.6rem;display:block}.section-head h1,.section-head h2{font-size:var(--fs-display);font-weight:300}.section-head p{color:var(--ink-2);max-width:56ch;margin-top:1.6rem;font-weight:300}.arrow-link{font-family:var(--font-display);font-size:var(--fs-label);text-transform:uppercase;letter-spacing:.22em;color:var(--ink);align-items:center;gap:.8em;width:-moz-fit-content;width:fit-content;padding-bottom:.4rem;font-weight:500;display:inline-flex;position:relative}.arrow-link:after{content:"";background:var(--ink);transform-origin:100%;width:100%;height:1px;transition:transform .5s var(--ease-out);position:absolute;bottom:0;left:0;transform:scaleX(0)}.arrow-link:hover:after{transform-origin:0;transform:scaleX(1)}.arrow-link svg{transition:transform .4s var(--ease-out)}.arrow-link:hover svg{transform:translate(6px)}.btn{font-family:var(--font-display);font-size:var(--fs-label);text-transform:uppercase;letter-spacing:.2em;white-space:nowrap;border:1px solid var(--ink);background:var(--ink);color:var(--bg);transition:background-color .4s var(--ease-out), color .4s var(--ease-out), transform .16s var(--ease-out);align-items:center;gap:.7em;padding:1.05rem 2.1rem;font-weight:500;display:inline-flex}.btn:active{transform:scale(.97)}.btn--ghost{color:var(--ink);background:0 0}@media (hover:hover) and (pointer:fine){.btn:hover{color:var(--ink);background:0 0}.btn--ghost:hover{background:var(--ink);color:var(--bg)}}.nav{z-index:var(--z-nav);mix-blend-mode:difference;border-bottom:1px solid #0000;align-items:center;height:84px;transition:background-color .5s,border-color .5s;display:flex;position:fixed;top:0;bottom:auto;left:0;right:0}.nav.is-solid{mix-blend-mode:normal;background:color-mix(in srgb, var(--bg) 90%, transparent);-webkit-backdrop-filter:blur(10px);border-bottom-color:var(--line-soft);height:70px}.nav__inner{width:100%;max-width:var(--maxw);padding-inline:var(--gutter);justify-content:space-between;align-items:center;gap:2rem;margin-inline-start:auto;margin-inline-end:auto;display:flex}.brand{align-items:center;display:inline-flex}.brand img{width:auto;height:48px;transition:filter .3s;display:block}.nav.is-solid .nav__menu-btn{color:var(--ink)}.nav:not(.is-solid) .nav__menu-btn{color:#fff}.nav:not(.is-solid) .brand img{filter:invert()}.nav__menu-btn{font-family:var(--font-display);text-transform:uppercase;letter-spacing:.24em;align-items:center;gap:.8em;font-size:.85rem;font-weight:500;display:inline-flex}.nav__menu-btn .bars{width:32px;height:11px;display:inline-block;position:relative}.nav__menu-btn .bars:before,.nav__menu-btn .bars:after{content:"";width:100%;height:2px;transition:transform .4s var(--ease-out);background:currentColor;position:absolute;left:0}.nav__menu-btn .bars:before{top:0}.nav__menu-btn .bars:after{bottom:0}body.menu-open .nav__menu-btn .bars:before{transform:translateY(4.5px)rotate(45deg)}body.menu-open .nav__menu-btn .bars:after{transform:translateY(-4.5px)rotate(-45deg)}.menu{z-index:var(--z-overlay);background:var(--paper);padding:clamp(6rem, 12vh, 9rem) var(--gutter) clamp(2.5rem, 6vw, 4rem);clip-path:inset(0 0 100%);visibility:hidden;grid-template-rows:1fr auto;display:grid;position:fixed;top:0;bottom:0;left:0;right:0}.menu__links{flex-direction:column;justify-content:center;gap:.2rem;display:flex}.menu__links a{font-family:var(--font-display);letter-spacing:-.02em;width:-moz-fit-content;width:fit-content;transition:color .4s ease, padding-left .5s var(--ease-out);font-size:clamp(2.4rem,8vw,5.5rem);font-weight:300;line-height:1.1;overflow:hidden}.menu__links a:hover{color:var(--ink-2);padding-left:.4em}.menu__links a .idx{font-family:var(--font-sans);vertical-align:super;letter-spacing:.1em;color:var(--ink-dim);margin-right:.5em;font-size:.85rem}.menu__foot{border-top:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;gap:1.5rem;padding-top:2rem;display:flex}.menu__foot a,.menu__foot span{font-size:var(--fs-small);color:var(--ink-2)}.menu__foot a:hover{color:var(--ink)}.hero{align-items:flex-end;min-height:100dvh;display:flex;position:relative;overflow:hidden}.hero__media{z-index:0;position:absolute;top:0;bottom:0;left:0;right:0}.hero__media img{object-fit:cover;width:100%;height:100%}.hero__scrim{z-index:1;background:linear-gradient(#14120e38 0%,#14120e1f 55%,#14120e80 100%);position:absolute;top:0;bottom:0;left:0;right:0}.hero__inner{z-index:2;width:100%;max-width:var(--maxw);padding:0 var(--gutter) clamp(3.5rem, 8vh, 7rem);color:var(--on-image);margin-inline-start:auto;margin-inline-end:auto;position:relative}.hero .label{color:#f6f2eacc;margin-bottom:1.6rem;display:block}.hero h1{font-weight:300;font-size:var(--fs-hero);letter-spacing:-.02em;max-width:18ch;line-height:1.02}.hero__sub{max-width:46ch;font-weight:300;font-size:var(--fs-lead);color:#f6f2eaeb;margin-top:clamp(1.6rem,3vw,2.4rem)}.intro__text{font-family:var(--font-display);font-weight:300;font-size:var(--fs-display);letter-spacing:-.015em;max-width:20ch;line-height:1.18}.intro__grid{grid-template-columns:1.1fr .9fr;align-items:end;gap:clamp(2rem,5vw,5rem);margin-top:clamp(3rem,7vw,6rem);display:grid}.intro__grid p{color:var(--ink-2);max-width:50ch;font-weight:300}.intro__img{aspect-ratio:4/5;background:var(--bg-2);overflow:hidden}.intro__img img{object-fit:cover;width:100%;height:100%}.filters{flex-wrap:wrap;gap:.6rem;margin-bottom:clamp(2.5rem,6vw,4rem);display:flex}.filter-chip{font-family:var(--font-display);font-size:var(--fs-label);text-transform:uppercase;letter-spacing:.15em;border:1px solid var(--line);color:var(--ink-2);cursor:pointer;transition:background-color .3s var(--ease-out), color .3s var(--ease-out), border-color .3s var(--ease-out);background:0 0;padding:.6em 1.2em;font-weight:500}.filter-chip.is-active{background:var(--ink);border-color:var(--ink);color:var(--bg)}@media (hover:hover) and (pointer:fine){.filter-chip:not(.is-active):hover{border-color:var(--ink);color:var(--ink)}}.projects{flex-direction:column;gap:clamp(5rem,11vw,11rem);display:flex}.werk-cta{margin-top:clamp(3rem,6vw,5rem)}.pblock{grid-template-columns:repeat(12,1fr);align-items:center;gap:clamp(1.5rem,4vw,4rem);display:grid}.pblock__media{background:var(--bg-2);aspect-ratio:3/2;position:relative;overflow:hidden}.pblock--portrait .pblock__media{aspect-ratio:4/5}.pblock__media img{object-fit:cover;width:100%;height:100%;transition:opacity .7s var(--ease-out), transform 1s var(--ease-out);position:absolute;top:0;bottom:0;left:0;right:0}.pblock__media .img-hover{opacity:0}@media (hover:hover) and (pointer:fine){.pblock:hover .pblock__media .img-base{opacity:0}.pblock:hover .pblock__media .img-hover{opacity:1}.pblock:hover .pblock__media img{transform:scale(1.03)}}.pblock:nth-child(odd) .pblock__media{grid-column:1/8}.pblock:nth-child(odd) .pblock__body{grid-column:9/13}.pblock:nth-child(2n) .pblock__media{order:2;grid-column:6/13}.pblock:nth-child(2n) .pblock__body{order:1;grid-column:1/5}.pblock__num{font-family:var(--font-sans);font-size:var(--fs-small);letter-spacing:.1em;color:var(--ink-dim)}.pblock__cat{font-family:var(--font-display);font-size:var(--fs-label);text-transform:uppercase;letter-spacing:.24em;color:var(--ink-dim);margin-top:1.4rem;display:block}.pblock__body h3{font-weight:300;font-size:var(--fs-display);margin-top:.7rem;line-height:1.05}.pblock__loc{color:var(--ink-dim);font-size:var(--fs-small);margin-top:.4rem}.pblock__body .arrow-link{margin-top:2rem}.method__list{border-top:1px solid var(--line)}.method__item{border-bottom:1px solid var(--line);grid-template-columns:5rem 1fr;align-items:baseline;gap:clamp(1rem,4vw,4rem);padding-block-start:clamp(2rem,4vw,3.2rem);padding-block-end:clamp(2rem,4vw,3.2rem);display:grid}.method__item .no{font-family:var(--font-sans);font-size:var(--fs-small);color:var(--ink-dim);letter-spacing:.1em;padding-top:.5rem}.method__item h3{font-weight:400;font-size:var(--fs-h3)}.method__item p{color:var(--ink-2);max-width:56ch;margin-top:.8rem;font-weight:300}.method__row{grid-template-columns:1fr 1.4fr;gap:clamp(1rem,4vw,4rem);display:grid}@media (max-width:760px){.method__row{grid-template-columns:1fr;gap:.4rem}}.about__grid{grid-template-columns:.9fr 1.1fr;align-items:center;gap:clamp(2rem,6vw,6rem);display:grid}.about__portrait{aspect-ratio:4/5;background:var(--bg-2);overflow:hidden}.about__portrait img{object-fit:cover;width:100%;height:100%}.about__body h2{font-size:var(--fs-display);font-weight:300}.about__body .label{margin-bottom:1.6rem;display:block}.about__body p{color:var(--ink-2);max-width:54ch;margin-top:1.5rem;font-weight:300}.about__body p strong{color:var(--ink);font-weight:500}.about__sign{font-family:var(--font-display);margin-top:2.4rem}.about__sign .name{font-size:1.3rem;font-weight:400}.about__sign .role{font-size:var(--fs-label);text-transform:uppercase;letter-spacing:.22em;color:var(--ink-dim);margin-top:.3rem}.contact__head{max-width:22ch;margin-bottom:clamp(3rem,7vw,6rem)}.contact__head h2{font-size:var(--fs-hero);letter-spacing:-.02em;font-weight:300;line-height:1.02}.contact__grid{grid-template-columns:1.1fr .9fr;align-items:start;gap:clamp(2.5rem,7vw,7rem);display:grid}.hp-field{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.field{flex-direction:column;gap:.6rem;margin-bottom:2rem;display:flex}.field label{font-family:var(--font-display);font-size:var(--fs-label);text-transform:uppercase;letter-spacing:.2em;color:var(--ink-2)}.field input,.field textarea{border:0;border-bottom:1px solid var(--line);color:var(--ink);background:0 0;padding:.7rem 0;transition:border-color .4s}.field input::placeholder,.field textarea::placeholder{color:var(--ink-dim)}.field input:focus,.field textarea:focus{border-bottom-color:var(--ink);outline:none}.field textarea{resize:vertical;min-height:120px}.field .err{color:var(--ink);font-size:var(--fs-small);font-style:italic;display:none}.field.has-error input,.field.has-error textarea{border-bottom-color:var(--ink)}.field.has-error .err{display:block}.form__status{font-size:var(--fs-small);color:var(--ink-2);min-height:1.4em;margin-top:1.2rem}.contact__details{flex-direction:column;gap:2.4rem;display:flex}.detail .k{font-family:var(--font-display);font-size:var(--fs-label);text-transform:uppercase;letter-spacing:.22em;color:var(--ink-dim);margin-bottom:.7rem}.detail a,.detail p{font-size:var(--fs-lead);font-weight:300;line-height:1.5}.detail a:hover{text-underline-offset:4px;text-decoration:underline}.socials{gap:1.6rem;display:flex}.socials a{font-size:var(--fs-small)}.footer{border-top:1px solid var(--line);padding-block-start:clamp(3.5rem,7vw,6rem);padding-block-end:2.5rem}.footer__top{grid-template-columns:1.4fr 1fr 1fr;gap:2.5rem;display:grid}.footer__brand{font-family:var(--font-display);letter-spacing:-.01em;font-size:clamp(2.2rem,6vw,4rem);font-weight:300;line-height:1}.footer__brand span{font-size:var(--fs-label);text-transform:uppercase;letter-spacing:.3em;color:var(--ink-dim);margin-top:1rem;font-weight:500;display:block}.footer__col .k{font-family:var(--font-display);font-size:var(--fs-label);text-transform:uppercase;letter-spacing:.22em;color:var(--ink-dim);margin-bottom:1.2rem}.footer__col a{color:var(--ink-2);font-size:var(--fs-small);padding-block-start:.4rem;padding-block-end:.4rem;font-weight:300;display:block}.footer__col a:hover{color:var(--ink)}.footer__bottom{border-top:1px solid var(--line);font-size:var(--fs-label);text-transform:uppercase;letter-spacing:.16em;color:var(--ink-dim);flex-wrap:wrap;justify-content:space-between;gap:1rem;margin-top:clamp(3.5rem,7vw,6rem);padding-top:1.8rem;display:flex}.proj-hero{align-items:flex-end;min-height:86dvh;display:flex;position:relative;overflow:hidden}.proj-hero__media{z-index:0;position:absolute;top:0;bottom:0;left:0;right:0}.proj-hero__media img{object-fit:cover;width:100%;height:100%}.proj-hero__scrim{z-index:1;background:linear-gradient(#14120e1a 45%,#14120e80);position:absolute;top:0;bottom:0;left:0;right:0}.proj-hero__inner{z-index:2;width:100%;max-width:var(--maxw);padding:0 var(--gutter) clamp(3rem, 7vh, 6rem);color:var(--on-image);margin-inline-start:auto;margin-inline-end:auto;position:relative}.proj-hero .label{color:#f6f2ead1;margin-bottom:1.2rem;display:block}.proj-hero h1{font-weight:300;font-size:var(--fs-hero);letter-spacing:-.02em;max-width:16ch;line-height:1.02}.proj-back{font-family:var(--font-display);font-size:var(--fs-label);text-transform:uppercase;letter-spacing:.22em;color:var(--on-image);align-items:center;gap:.7em;margin-bottom:1.4rem;display:inline-flex}.proj-back:hover{opacity:.7}.proj-meta{border-bottom:1px solid var(--line);grid-template-columns:repeat(4,1fr);gap:2rem;padding-bottom:clamp(2.5rem,5vw,4rem);display:grid}.proj-meta .k{font-family:var(--font-display);font-size:var(--fs-label);text-transform:uppercase;letter-spacing:.2em;color:var(--ink-dim);margin-bottom:.7rem}.proj-meta .v{font-size:var(--fs-lead);font-weight:300}.proj-intro{grid-template-columns:1fr 1fr;align-items:start;gap:clamp(2rem,6vw,6rem);display:grid}.proj-intro h2{font-weight:300;font-size:var(--fs-h2);max-width:16ch}.proj-intro p{color:var(--ink-2);max-width:52ch;font-weight:300}.proj-intro p+p{margin-top:1.3rem}.proj-gallery{grid-template-columns:repeat(12,1fr);gap:clamp(1rem,2.5vw,2rem);display:grid}.proj-gallery figure{background:var(--bg-2);overflow:hidden}.proj-gallery img{object-fit:cover;width:100%;height:100%;transition:transform 1s var(--ease-out)}@media (hover:hover) and (pointer:fine){.proj-gallery figure:hover img{transform:scale(1.03)}}.g-full{aspect-ratio:16/8;grid-column:span 12}.g-7{aspect-ratio:4/3;grid-column:span 7}.g-5{aspect-ratio:3/4;grid-column:span 5}.g-6{aspect-ratio:4/3;grid-column:span 6}.proj-next{border-top:1px solid var(--line)}.proj-next a{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:2rem;display:flex}.proj-next .k{font-family:var(--font-display);font-size:var(--fs-label);text-transform:uppercase;letter-spacing:.22em;color:var(--ink-dim);margin-bottom:.8rem}.proj-next h2{font-weight:300;font-size:var(--fs-display);transition:opacity .4s}.proj-next a:hover h2{opacity:.6}.reveal{opacity:0;transform:translateY(26px)}@media (max-width:1024px){.intro__grid,.about__grid,.contact__grid{grid-template-columns:1fr;gap:2.5rem}.about__portrait,.intro__img{max-width:520px}}@media (max-width:860px){.pblock{grid-template-columns:1fr;gap:1.6rem}.pblock:nth-child(odd) .pblock__media,.pblock:nth-child(2n) .pblock__media,.pblock:nth-child(odd) .pblock__body,.pblock:nth-child(2n) .pblock__body{order:0;grid-column:1/-1}.proj-meta{grid-template-columns:repeat(2,1fr);gap:1.5rem}.proj-intro{grid-template-columns:1fr;gap:1.5rem}.footer__top{grid-template-columns:1fr;gap:2.5rem}}@media (max-width:640px){.proj-gallery{grid-template-columns:1fr}.g-full,.g-7,.g-5,.g-6{aspect-ratio:4/3;grid-column:1/-1}.method__item{grid-template-columns:1fr;gap:.5rem}.method__item .no{padding-top:0}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.001ms!important;animation-duration:.001ms!important}.reveal{opacity:1;transform:none}}@font-face{font-family:Jost Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./jost-cyrillic-wght-normal-CjwCQKo9.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Jost Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./jost-latin-ext-wght-normal-BDUtSsKd.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Jost Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./jost-latin-wght-normal-ObQm3Zd1.woff2)format("woff2-variations");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:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./geist-cyrillic-ext-wght-normal-DjL33-gN.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./geist-cyrillic-wght-normal-BEAKL7Jp.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./geist-vietnamese-wght-normal-6IgcOCM7.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./geist-latin-ext-wght-normal-DC-KSUi6.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(./geist-latin-wght-normal-BgDaEnEv.woff2)format("woff2-variations");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}
