:root{--header-h:69px;--bg:#f5f4f0;--fg:#121211;--muted:#77756f;--line:#dcd9d1;--soft:#eceae4;--paper:#fff;--pad:clamp(16px, 3.2vw, 44px);--font:"Helvetica Neue", Helvetica, var(--font-inter), Arial, sans-serif}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background:var(--bg);color:var(--fg);font-family:var(--font);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;font-optical-sizing:auto;font-kerning:normal;margin:0;font-size:100%;line-height:1.5}a{color:inherit;text-decoration:none}img,video{max-width:100%;display:block}button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:0;padding:0}:focus-visible{outline:2px solid var(--fg);outline-offset:3px}a,button{-webkit-tap-highlight-color:transparent;touch-action:manipulation}a:active,button:active:not(:disabled){opacity:.55;transition:opacity}.card:active,.gallery button:active,.hero-frame:active{opacity:1}.card .thumb,.gallery button img{transition:transform .35s cubic-bezier(.2,.8,.2,1)}.card:active .thumb,.gallery button:active img{transition-duration:.1s;transform:scale(.985)}.wrap{padding-left:var(--pad);padding-right:var(--pad)}.muted{color:var(--muted)}.label{letter-spacing:.02em;color:var(--muted);font-size:.75rem}.link-underline{background-image:linear-gradient(currentColor,currentColor);background-position:0 100%;background-repeat:no-repeat;background-size:0% 1px;transition:background-size .3s}.link-underline:hover,.link-underline[aria-current=page]{background-size:100% 1px}.site-header{z-index:40;min-height:64px;padding:12px calc(var(--pad) - 18px);pointer-events:none;justify-content:space-between;align-items:center;gap:16px;display:flex;position:sticky;top:0}.site-header .logo,.site-header .nav{pointer-events:auto;-webkit-backdrop-filter:blur(20px)saturate(180%);backdrop-filter:blur(20px)saturate(180%);background:#ffffff47;border:1px solid #ffffff8c;border-radius:999px;padding:10px 18px;box-shadow:inset 0 1px #ffffffbf,0 8px 24px #00000014}.logo{letter-spacing:-.01em;white-space:nowrap;align-items:baseline;gap:14px;font-size:.9375rem;font-weight:500;display:flex}.nav{align-items:center;gap:clamp(14px,2.4vw,32px);font-size:.875rem;display:flex}.lang{color:var(--muted);letter-spacing:.01em;gap:8px;font-size:.75rem;display:flex}.lang a[aria-current=true],.lang a:hover{color:var(--fg)}@supports not ((-webkit-backdrop-filter:blur(1px)) or (backdrop-filter:blur(1px))){.site-header .logo,.site-header .nav{background:#f5f4f0f0}}@media (max-width:760px){.site-header{flex-wrap:wrap;row-gap:8px;padding-left:8px;padding-right:8px}.site-header .nav{border-radius:22px}.nav{flex-wrap:wrap;justify-content:space-between;gap:6px 14px;width:100%}}.hero{position:relative}.hero-frame{background:var(--soft);touch-action:pan-y;-webkit-user-select:none;user-select:none;-webkit-user-drag:none;height:clamp(320px,74vh,920px);display:block;position:relative;overflow:hidden}.hero-frame.is-dragging{cursor:grabbing}@media (max-width:760px){.hero-frame{height:62vh}}.hero-slide{will-change:transform;position:absolute;inset:0}.hero-slide img{object-fit:cover;pointer-events:none;-webkit-user-drag:none;width:100%;height:100%}.hero-bar{justify-content:space-between;align-items:baseline;gap:16px;padding-top:12px;font-size:.875rem;display:flex}.hero-bar .controls{white-space:nowrap;align-items:baseline;gap:18px;display:flex}.hero-bar .controls button{font-size:.875rem}.hero-bar .controls button:hover{text-underline-offset:3px;text-decoration:underline}.projects-head{border-bottom:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:12px 24px;margin-bottom:28px;padding-bottom:20px;display:flex}.projects-head h1,.projects-head h2{margin:0;font-size:.9375rem;font-weight:500}.projects-head h1 sup,.projects-head h2 sup{color:var(--muted);margin-left:3px;font-weight:400}.chips{flex-wrap:wrap;gap:6px 18px;font-size:.875rem;display:flex}.chips button{color:var(--muted)}.chips button[aria-pressed=true],.chips button:hover{color:var(--fg)}.chips button[aria-pressed=true]{text-underline-offset:4px;text-decoration:underline}.grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:44px 24px;display:grid}@media (max-width:1000px){.grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:600px){.grid{grid-template-columns:minmax(0,1fr)}}@keyframes rise-in{0%{opacity:0;transform:translateY(12px)}}.grid.animate>.card,.list.animate>.row{animation:.5s cubic-bezier(.2,.8,.2,1) both rise-in;animation-delay:calc(min(var(--i,0), 8) * 35ms)}.card .thumb{aspect-ratio:4/3;background:var(--soft);overflow:hidden}.card .thumb img{object-fit:cover;width:100%;height:100%;transition:transform .8s cubic-bezier(.2,.7,.2,1)}.card:hover .thumb img{transform:scale(1.025)}.card h3{letter-spacing:-.005em;margin:12px 0 2px;font-size:.9375rem;font-weight:500}.card .meta{color:var(--muted);letter-spacing:.01em;font-size:.8125rem}.list{border-top:1px solid var(--line);margin-top:-29px}.row{border-bottom:1px solid var(--line);grid-template-columns:48px minmax(0,3fr) minmax(0,1.4fr) minmax(0,1.6fr) 64px;align-items:baseline;gap:16px;padding:16px 0;font-size:.9375rem;display:grid}.row>*{transition:transform .3s cubic-bezier(.2,.8,.2,1)}.row:hover>:not(.y){transform:translate(8px)}.row .n,.row .c,.row .l,.row .y{color:var(--muted);letter-spacing:.01em;font-size:.8125rem}.row .y{text-align:right}@media (max-width:760px){.row{grid-template-columns:32px minmax(0,1fr) 48px}.row .c,.row .l{display:none}}.preview{z-index:30;aspect-ratio:4/3;pointer-events:none;background:var(--soft);opacity:0;width:280px;transition:opacity .2s;position:fixed;top:0;left:0}.preview.on{opacity:1}.preview img{object-fit:cover;width:100%;height:100%}@media (hover:none){.preview{display:none}}.empty{color:var(--muted);padding:80px 0}.p-head{padding-top:clamp(28px,5vw,72px);padding-bottom:28px}.p-head .back{color:var(--muted);letter-spacing:.01em;font-size:.8125rem}.p-head h1{letter-spacing:-.03em;max-width:14em;margin:18px 0 0;font-size:clamp(2.125rem,5.6vw,5.25rem);font-weight:500;line-height:1}.p-cover img{object-fit:cover;width:100%;max-height:92vh}.p-body{grid-template-columns:repeat(12,minmax(0,1fr));gap:24px;padding-top:clamp(40px,6vw,96px);padding-bottom:clamp(40px,6vw,96px);display:grid}.facts{grid-column:1/span 4;grid-template-columns:minmax(90px,auto) 1fr;align-content:start;gap:10px 20px;margin:0;font-size:.875rem;display:grid}.facts dt{color:var(--muted)}.facts dd{margin:0}.p-text{white-space:pre-line;grid-column:6/span 7;max-width:38em;font-size:clamp(1.0625rem,1.35vw,1.25rem);line-height:1.55}@media (max-width:860px){.facts,.p-text{grid-column:1/-1}}.gallery{grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(10px,1.6vw,24px);display:grid}.gallery figure{margin:0}.gallery figure.wide{grid-column:1/-1}.gallery button{cursor:zoom-in;width:100%;display:block}.gallery img{width:100%;height:auto}.gallery figure.solo button{width:auto;margin:0 auto}.gallery figure.solo img{width:auto;max-width:100%;max-height:92vh;margin:0 auto}.gallery figure.solo figcaption{text-align:center}.gallery figcaption{color:var(--muted);letter-spacing:.01em;padding-top:8px;font-size:.8125rem}@media (max-width:600px){.gallery{grid-template-columns:minmax(0,1fr)}}.drawings .gallery button{background:var(--paper);padding:clamp(12px,2vw,28px)}.section{padding-top:clamp(48px,7vw,110px)}.section-title{border-bottom:1px solid var(--line);justify-content:space-between;align-items:baseline;margin:0 0 24px;padding-bottom:14px;font-size:.9375rem;font-weight:500;display:flex}.videos{gap:24px;display:grid}.video{aspect-ratio:16/9;background:#000}.video iframe,.video video{border:0;width:100%;height:100%}.docs a{border-bottom:1px solid var(--line);grid-template-columns:56px minmax(0,1fr) auto;align-items:baseline;gap:16px;padding:16px 0;display:grid}.docs a:hover .dl{text-underline-offset:3px;text-decoration:underline}.docs .tag{color:var(--muted);letter-spacing:.01em;font-size:.75rem}.next-project{border-top:1px solid var(--line);margin-top:clamp(64px,9vw,140px);padding-top:20px;padding-bottom:24px;display:block}.next-project .label{margin-bottom:10px;display:block}.next-project strong{letter-spacing:-.03em;font-size:clamp(1.75rem,4.4vw,4rem);font-weight:500;line-height:1.02}.next-project:hover strong{text-underline-offset:6px;text-decoration:underline;text-decoration-thickness:2px}.draft{color:#5b4500;padding:10px var(--pad);letter-spacing:.01em;background:#fff3c4;font-size:.8125rem}.strip-wrap{--strip-h:max(440px, calc(100svh - var(--header-h)));--img-h:calc(var(--strip-h) * .8);position:relative}.strip{height:var(--strip-h);overscroll-behavior-x:contain;scrollbar-width:none;align-items:center;gap:15px;display:flex;overflow:auto hidden}.strip::-webkit-scrollbar{display:none}.strip:focus-visible{outline-offset:-2px}.strip:after{content:"";flex:0 0 calc(var(--pad) - 15px);align-self:stretch}.strip-caption{padding:0 32px 0 var(--pad);flex:0 0 clamp(300px,44vw,760px);font-size:1.125rem;line-height:1.5}.strip-caption .back{letter-spacing:.01em;color:var(--muted);margin-bottom:28px;font-size:.8125rem;display:inline-block}.strip-caption h1{letter-spacing:-.005em;margin:0;font-size:1.125rem;font-weight:500;line-height:1.5}.strip-caption p{color:var(--muted);margin:0}.strip-facts{grid-template-columns:max-content minmax(0,1fr);gap:5px 22px;margin:22px 0 0;font-size:.875rem;line-height:1.45;display:grid}.strip-facts dt{color:var(--muted)}.strip-facts dd{margin:0}.strip-caption .details{margin-top:28px;font-size:.875rem;display:inline-block}.strip-caption .details:hover,.strip-caption .back:hover{text-underline-offset:3px;text-decoration:underline}.strip-item{height:var(--img-h);background:var(--soft);flex:none;margin:0}.strip-item button{cursor:zoom-in;width:100%;height:100%;display:block}.strip-item button:active{opacity:1}.strip-item img{object-fit:cover;-webkit-user-drag:none;width:100%;height:100%;transition:transform .35s cubic-bezier(.2,.8,.2,1)}.strip-item button:active img{transition-duration:.1s;transform:scale(.985)}.strip-video{background:#000}.strip-video iframe,.strip-video video{background:#000;border:0;width:100%;height:100%;display:block}.strip-item .video-facade{cursor:pointer;background:#151514;width:100%;height:100%;display:block;position:relative;overflow:hidden}.strip-item .video-facade:active{opacity:1}.video-facade img{object-fit:cover;width:100%;height:100%}.video-facade .play{width:76px;height:76px;color:var(--fg);-webkit-backdrop-filter:blur(16px)saturate(180%);backdrop-filter:blur(16px)saturate(180%);background:#ffffffb8;border-radius:50%;place-items:center;margin:-38px 0 0 -38px;transition:transform .3s cubic-bezier(.2,.8,.2,1);display:grid;position:absolute;top:50%;left:50%;box-shadow:0 10px 30px #0000002e}.video-facade .play svg{fill:currentColor;width:28px;height:28px;margin-left:3px}.video-facade:hover .play{transform:scale(1.06)}.video-facade:active .play{transition-duration:.1s;transform:scale(.94)}@media (max-width:760px){.video-facade .play{width:60px;height:60px;margin:-30px 0 0 -30px}}@media (prefers-reduced-transparency:reduce){.video-facade .play{-webkit-backdrop-filter:none;backdrop-filter:none;background:#fff}}.strip-progress{left:var(--pad);right:var(--pad);bottom:calc(var(--strip-h) * .045);background:var(--line);height:1px;transition:opacity .3s;position:absolute}.strip-progress div{background:var(--fg);will-change:transform;height:1px}#details{scroll-margin-top:72px}.p-body-text .p-text{grid-column:1/span 8}@media (max-width:860px){.p-body-text .p-text{grid-column:1/-1}}@media (max-width:760px){.strip{height:auto;padding:0 var(--pad);display:block;overflow:visible}.strip:after,.strip-progress{display:none}.strip-caption{padding:28px 0}.strip-item{width:100%;height:auto;margin-bottom:12px}}.home-hero{margin-top:calc(-1 * var(--header-h))}.home-hero-img{background:var(--soft);height:calc(100svh - 48px);min-height:420px;display:block;overflow:hidden}.home-hero-img:active{opacity:1}.home-hero-img img{object-fit:cover;width:100%;height:100%}.home-hero .hero-bar{padding-bottom:14px}.home-hero .hero-bar a:hover{text-underline-offset:3px;text-decoration:underline}@media (max-width:760px){:root{--header-h:120px}.home-hero .hero-view{display:none}.home-hero-img{height:calc(64svh + var(--header-h));min-height:0}}.projects{padding-top:clamp(56px,8vw,120px)}.page-title{letter-spacing:-.035em;max-width:12em;margin:0;padding-top:clamp(40px,7vw,110px);font-size:clamp(2.25rem,6.2vw,6rem);font-weight:500;line-height:.98}.lead{max-width:30em;color:var(--muted);margin:24px 0 0;font-size:clamp(1.125rem,1.6vw,1.5rem);line-height:1.35}.services{border-top:1px solid var(--line);margin-top:clamp(48px,7vw,110px)}.service{border-bottom:1px solid var(--line);grid-template-columns:48px minmax(0,1fr) minmax(0,1fr);gap:24px;padding:28px 0 32px;display:grid}.service h2{letter-spacing:-.02em;margin:0;font-size:clamp(1.375rem,2.4vw,2.125rem);font-weight:500;line-height:1.1}.service p{max-width:32em;margin:4px 0 0;font-size:1rem}@media (max-width:760px){.service{grid-template-columns:32px minmax(0,1fr)}.service p{grid-column:2}}.cta{border-bottom:2px solid;margin-top:48px;padding-bottom:2px;font-size:clamp(1.25rem,2vw,1.75rem);font-weight:500;display:inline-block}.contact-list{border-top:1px solid var(--line);margin:clamp(48px,7vw,110px) 0 0}.contact-list>div{border-bottom:1px solid var(--line);grid-template-columns:minmax(120px,1fr) minmax(0,3fr);align-items:baseline;gap:24px;padding:22px 0;display:grid}.contact-list dt{color:var(--muted);font-size:.875rem}.contact-list dd{letter-spacing:-.015em;overflow-wrap:anywhere;margin:0;font-size:clamp(1.25rem,2.2vw,2rem)}.contact-list dd a:hover{text-underline-offset:5px;text-decoration:underline;text-decoration-thickness:1px}.contact-list .apps{flex-wrap:wrap;gap:8px 28px;display:flex}.site-footer{border-top:1px solid var(--line);grid-template-columns:repeat(12,minmax(0,1fr));gap:24px;margin-top:clamp(80px,12vw,180px);padding-top:28px;padding-bottom:28px;font-size:.875rem;display:grid}.site-footer .big{letter-spacing:-.025em;grid-column:1/span 6;font-size:clamp(1.5rem,3vw,2.75rem);font-weight:500;line-height:1.05}.site-footer .big:hover{text-underline-offset:6px;text-decoration:underline;text-decoration-thickness:2px}.site-footer .cols{grid-column:8/span 5;align-content:start;gap:4px;display:grid}.site-footer .bottom{color:var(--muted);letter-spacing:.01em;grid-column:1/-1;justify-content:space-between;gap:16px;padding-top:40px;font-size:.75rem;display:flex}@media (max-width:760px){.site-footer .big,.site-footer .cols{grid-column:1/-1}}.lightbox{z-index:100;overscroll-behavior:contain;grid-template-rows:auto minmax(0,1fr) auto;display:grid;position:fixed;inset:0;overflow:hidden}.lb-backdrop{background:var(--bg);opacity:0;position:absolute;inset:0}.lb-top,.lb-bottom{z-index:1;opacity:0;padding:14px var(--pad);justify-content:space-between;align-items:center;font-size:.875rem;display:flex;position:relative}.lb-stage{z-index:2;padding:0 var(--pad);touch-action:pinch-zoom;-webkit-user-select:none;user-select:none;min-height:0;position:relative}.lb-stage.is-dragging{cursor:grabbing}.lb-slide{transform-origin:50%;will-change:transform, opacity;background-size:100% 100%;width:0;height:0;position:absolute;top:0;left:0}.lb-slide img{-webkit-user-drag:none;pointer-events:none;width:100%;height:100%;display:block}.lb-bottom button:disabled{opacity:.3;cursor:default}.lb-bottom button:hover:not(:disabled),.lb-top button:hover{text-underline-offset:3px;text-decoration:underline}.not-found{padding-top:120px;padding-bottom:120px}.about-top{grid-template-columns:repeat(12,minmax(0,1fr));gap:24px;padding-top:clamp(40px,7vw,110px);display:grid}.about-side{grid-column:1/span 3;align-content:start;gap:18px;font-size:.875rem;display:grid}.portrait{aspect-ratio:4/5;background:var(--soft);width:100%;max-width:260px;overflow:hidden}.portrait img{object-fit:cover;width:100%;height:100%}.about-id{gap:2px;display:grid}.about-id strong{font-size:.9375rem;font-weight:500}.about-links{gap:4px;display:grid}.about-links a:hover{text-underline-offset:3px;text-decoration:underline}.about-main{grid-column:5/span 8}.about-intro{max-width:40em;margin-top:clamp(28px,4vw,56px)}.about-intro p{margin:0 0 1.1em;font-size:clamp(1.0625rem,1.35vw,1.25rem);line-height:1.55}.about-intro p.first{letter-spacing:-.015em;font-size:clamp(1.375rem,2.3vw,2.125rem);line-height:1.2}@media (max-width:860px){.about-side,.about-main{grid-column:1/-1}.about-main{order:-1}.portrait{max-width:200px}}.cv-row{border-bottom:1px solid var(--line);grid-template-columns:minmax(110px,3fr) minmax(0,9fr);gap:24px;padding:18px 0 20px;display:grid}.cv-row:first-child{padding-top:0}.cv-when{color:var(--muted);font-variant-numeric:tabular-nums;letter-spacing:.01em;font-size:.875rem}.cv-row h3{letter-spacing:-.01em;margin:0;font-size:clamp(1.0625rem,1.4vw,1.25rem);font-weight:500}.cv-place{color:var(--muted);margin-top:2px;font-size:.875rem}.cv-row p{max-width:44em;margin:10px 0 0;font-size:.9375rem;line-height:1.55}@media (max-width:600px){.cv-row{grid-template-columns:minmax(0,1fr);gap:6px}}.about-lists{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px 48px;display:grid}.about-lists ul{margin:0;padding:0;list-style:none}.about-lists li{border-bottom:1px solid var(--line);padding:10px 0;font-size:1rem}@media (max-width:760px){.about-lists{grid-template-columns:minmax(0,1fr)}}@media (prefers-reduced-motion:reduce){.card .thumb,.card .thumb img,.gallery button img,.strip-item img,.row>*{transition:none}.card:hover .thumb img,.row:hover>:not(.y){transform:none}.grid.animate>.card,.list.animate>.row{animation-name:fade-in;animation-duration:.2s;animation-delay:0s}.link-underline{transition:none}}@keyframes fade-in{0%{opacity:0}}@media (prefers-reduced-transparency:reduce){.site-header .logo,.site-header .nav{background:var(--bg);-webkit-backdrop-filter:none;backdrop-filter:none}}@media (prefers-contrast:more){:root{--muted:#4f4d48;--line:#9c998f}.site-header .logo,.site-header .nav{background:var(--bg);-webkit-backdrop-filter:none;backdrop-filter:none;border-color:var(--fg)}}
