body.film-open{overflow:hidden}
.hero>.hero-image{width:100%;height:100%;object-fit:cover}
.hero::after{content:'';position:absolute;inset:70% 0 0;background:linear-gradient(transparent,#0005);pointer-events:none}
.hero .film-caption{z-index:1}
dialog.intro-film{position:fixed;inset:0;margin:0;padding:0;border:0;width:100vw;max-width:none;height:100svh;max-height:none;overflow:hidden;background:#141511;color:#fff;opacity:1;transition:opacity .4s ease;cursor:pointer;isolation:isolate}
.intro-film::backdrop{background:#fff}
.intro-film.is-leaving{opacity:0;pointer-events:none}
.intro-film>video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
.intro-film-shade{position:absolute;inset:0;pointer-events:none;background:linear-gradient(#0004,transparent 23%,transparent 72%,#0006);transition:opacity .5s}
.intro-film-top,.intro-film-bottom{position:absolute;left:clamp(24px,4vw,70px);right:clamp(24px,4vw,70px);display:flex;justify-content:space-between;align-items:center;gap:24px;z-index:2}
.intro-film-top{top:clamp(24px,4vh,50px)}
.intro-film-top>img{width:98px;height:auto;filter:invert(1);transition:filter .5s}
.intro-film button{color:inherit;background:transparent;border:0;font-size:13px;line-height:1.4;padding:12px 0;cursor:pointer}
.intro-film button:focus-visible{outline:1px solid currentColor;outline-offset:7px}
.intro-film #film-sound{border-bottom:1px solid #ffffff60;padding:8px 0}
.intro-film-bottom{bottom:clamp(34px,5vh,64px);align-items:flex-end;font-size:13px;line-height:1.6}
.intro-film-bottom #film-help{font-size:11px;opacity:.65;margin-top:4px}
.intro-film #film-enter{font-size:15px;border-bottom:1px solid currentColor;padding-bottom:9px;white-space:nowrap}
.intro-film #film-enter span{display:inline-block;margin-left:35px;font-size:23px;transition:transform .25s}
.intro-film #film-enter:hover span{transform:translate(3px,-3px)}
.intro-film .film-play{position:absolute;top:66%;left:50%;transform:translate(-50%,-50%);padding:13px 24px;border:1px solid #fff8;background:#0004;font-size:16px;z-index:3}
.intro-film [hidden]{display:none!important}
.film-timeline{position:absolute;bottom:0;left:0;right:0;height:2px;background:#ffffff30;z-index:2}
.film-timeline>span{display:block;width:0;height:100%;background:currentColor;transition:width .2s linear}
.intro-film.film-ending{color:#171717}
.film-ending .intro-film-shade{opacity:0}
.film-ending .intro-film-top>img{filter:none}
.film-ending #film-sound{border-color:#17171760}
#film-error{max-width:280px;font-size:12px;margin-top:9px}
@media(max-width:760px){.intro-film-top>img{width:80px}.intro-film-bottom{left:24px;right:24px;bottom:32px;gap:16px}.intro-film-bottom>div{max-width:155px}.intro-film #film-enter{font-size:13px}.intro-film #film-enter span{margin-left:18px;font-size:20px}.hero>.hero-image{object-position:52% center}}
@media(prefers-reduced-motion:reduce){dialog.intro-film,.film-timeline>span,.intro-film-shade{transition:none}}
:root{--ink:#171717;--muted:#656565;--line:#d9d9d9;--serif:'Cormorant Garamond',Georgia,serif;--sans:Inter,Arial,sans-serif;--pad:clamp(24px,5vw,90px)}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:105px}body{margin:0;background:#fff;color:var(--ink);font:16px/1.7 var(--sans)}body.modal-open{overflow:hidden}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}img{display:block;max-width:100%;object-fit:cover}h1,h2,h3,p{margin:0}h1,h2,h3{font-family:var(--serif);font-weight:400;line-height:1.05}h2{font-size:clamp(48px,5vw,78px)}h3{font-size:clamp(30px,3vw,44px)}em{font-weight:400}button,a{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:2px solid var(--ink);outline-offset:5px}.skip{position:fixed;top:-100px;left:20px;z-index:50;padding:12px 18px;background:#fff}.skip:focus{top:10px}.eyebrow{font-size:14px;line-height:1.5;color:var(--muted)}
.header{height:94px;padding:22px var(--pad);display:flex;align-items:center;gap:36px;background:#fff;position:sticky;top:0;z-index:15;border-bottom:1px solid #eee}.brand img{width:138px;height:auto}.atelier{font-size:14px;color:var(--muted)}.header nav{margin-left:auto;display:flex;gap:30px}.header nav a{font-size:16px;line-height:1.5}.header nav a:hover{text-decoration:underline;text-underline-offset:6px}.menu-toggle{display:none}.hero{position:relative;height:calc(100svh - 94px);min-height:560px;max-height:1080px;background:#ecece9;overflow:hidden}.hero video{width:100%;height:100%;object-fit:cover;display:block}.film-caption{position:absolute;left:var(--pad);right:var(--pad);bottom:30px;display:flex;justify-content:space-between;gap:20px;align-items:center;color:#fff;text-shadow:0 1px 8px #0006;font-size:14px}.film-caption button{border:1px solid #fff9;padding:7px 15px;background:#17171740;color:#fff;font-size:14px}.film-caption button:focus-visible{outline-color:#fff}.section-pad{padding:95px var(--pad) 115px}.intro{display:grid;grid-template-columns:1fr auto;align-items:end;padding-top:85px;padding-bottom:100px}.intro>.eyebrow{grid-column:1/-1;margin-bottom:28px}.intro h1{font-size:clamp(52px,6.5vw,104px);letter-spacing:-.025em}.intro-note{font-size:14px;color:var(--muted);padding-bottom:10px}.section-heading{display:flex;justify-content:space-between;align-items:center;gap:25px;border-top:1px solid var(--line);padding-top:24px;margin-bottom:75px}.section-heading>p{font-size:14px;color:var(--muted)}
.projects{padding-top:20px}.year-group{display:grid;grid-template-columns:170px 1fr;gap:45px;margin-bottom:90px}.year-group:last-child{margin-bottom:0}.year-label{font-size:42px;align-self:start;position:sticky;top:130px}.year-projects{display:flex;flex-direction:column;gap:70px}.image-button{width:100%;border:0;padding:0;background:#f0f0ed;display:block;position:relative;overflow:hidden;text-align:left}.image-button img{width:100%;height:auto;aspect-ratio:1.62;transition:transform .8s}.image-button:hover img{transform:scale(1.018)}.image-action{position:absolute;bottom:20px;right:20px;font-size:14px;background:#fff;padding:8px 16px;opacity:0;transition:opacity .2s}.image-button:hover .image-action,.image-button:focus-visible .image-action{opacity:1}.card-caption{display:flex;justify-content:space-between;align-items:flex-start;gap:24px;margin-top:22px}.card-caption h3{font-size:36px}.card-caption p{font-size:14px;color:var(--muted);text-align:right}.card-caption p span{display:block}.furniture-grid{display:grid;grid-template-columns:1fr 1fr;gap:65px}.object-card .image-button img{aspect-ratio:1.14}.object-card h3{margin-top:24px;margin-bottom:24px}.object-card p{max-width:520px}.object-card p+p,.object-copy p+p{margin-top:16px}.underlined{display:inline-block;margin-top:25px;border-bottom:1px solid var(--ink);font-size:14px;line-height:1.8;padding-bottom:3px}.light-layout{display:grid;grid-template-columns:1.05fr .75fr;gap:9%;align-items:center}.light-layout .image-button img{aspect-ratio:1.07}.object-copy h3{margin-bottom:30px}.about-layout{display:grid;grid-template-columns:.65fr 1fr;gap:12%;align-items:center;max-width:1250px;margin:auto}.portrait{width:100%;height:auto;aspect-ratio:.76;object-position:center 20%}.about-copy h3{font-size:62px;margin-top:15px;margin-bottom:28px}.about-copy p+p{margin-top:22px}.about-copy .bio{font-size:20px;line-height:1.65}.contact-layout{display:grid;grid-template-columns:.9fr 1.1fr;gap:10%}.contact-email{font:clamp(29px,3.2vw,49px)/1.3 var(--serif);border-bottom:1px solid var(--ink)}.addresses{display:flex;gap:55px;margin-top:60px}address{font-style:normal;font-size:14px;line-height:1.9}address h3{font-size:32px;margin-bottom:18px}address a{display:inline-block;margin-top:12px}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:30px}form label{display:block;font-size:14px;margin-bottom:25px}input,select,textarea{display:block;width:100%;padding:10px 0;border:0;border-bottom:1px solid #888;background:#fff;border-radius:0;min-height:46px}textarea{resize:vertical;line-height:1.6}select{cursor:pointer}.honeypot{position:absolute!important;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}.form-note{color:var(--muted);font-size:14px;margin-bottom:22px}.submit-button{padding:12px 29px;border:1px solid var(--ink);background:var(--ink);color:#fff;font-size:14px}.submit-button:hover{background:#fff;color:var(--ink)}.submit-button:disabled{opacity:.45;cursor:default}.form-status{font-size:14px;line-height:1.6;min-height:24px;margin-top:15px}.form-status.error{color:#8b2929}.footer{padding:40px var(--pad) 30px;border-top:1px solid var(--line)}.footer-top{display:flex;gap:35px;align-items:center;padding-bottom:34px}.footer-top .brand img{width:105px}.footer-top>span{flex:1;font-size:14px;color:var(--muted)}.footer-top>a:last-child{font-size:14px}.footer-bottom{border-top:1px solid var(--line);padding-top:26px;display:grid;grid-template-columns:1fr 1.5fr;gap:65px;font-size:12px;color:var(--muted);line-height:1.8}
dialog{padding:25px 30px;border:0;background:#fff;color:var(--ink);width:min(1150px,95vw);max-height:95svh;overflow:auto}dialog::backdrop{background:#ffffffec}.gallery-top{display:flex;justify-content:space-between;gap:20px;align-items:center;margin-bottom:22px}.gallery-top h2{font-size:42px;margin-top:7px}.icon-button{border:1px solid var(--line);padding:9px 16px;font-size:14px;background:#fff}.gallery-frame{height:min(60svh,650px);position:relative;background:#f4f4f2}.gallery-frame>img{width:100%;height:100%;object-fit:contain}.gallery-prev,.gallery-next{position:absolute;top:calc(50% - 23px)}.gallery-prev{left:15px}.gallery-next{right:15px}.gallery-bottom{display:flex;justify-content:space-between;gap:25px;font-size:14px;padding:16px 0}.gallery-bottom p{max-width:800px}.gallery-bottom>span{white-space:nowrap}#gallery-thumbs{display:flex;gap:9px;overflow:auto;padding:3px}#gallery-thumbs button{background:none;border:2px solid transparent;padding:2px;width:65px;flex:none}#gallery-thumbs button[aria-current=true]{border-color:var(--ink)}#gallery-thumbs img{width:57px;height:57px}
@media(min-width:1800px){.section-pad,.footer{padding-left:max(var(--pad),calc((100vw - 1540px)/2));padding-right:max(var(--pad),calc((100vw - 1540px)/2))}}
@media(max-width:1100px){.atelier{display:none}.header nav{gap:23px}.year-group{grid-template-columns:100px 1fr;gap:25px}.furniture-grid{gap:35px}.about-layout{gap:7%}.about-copy h3{font-size:52px}.contact-layout{gap:6%}.addresses{gap:25px}.light-layout{gap:6%}}
@media(max-width:760px){html{scroll-padding-top:84px}.header{height:80px;padding:20px 24px;gap:15px}.brand img{width:115px}.menu-toggle{display:block;margin-left:auto;border:0;background:none;padding:7px 0;font-size:16px}.header nav{display:none;position:absolute;left:0;right:0;top:80px;background:#fff;padding:18px 24px 28px;border-bottom:1px solid var(--line);margin:0;flex-direction:column;gap:18px}.header nav.is-open{display:flex}.hero{height:calc(85svh - 80px);min-height:450px;max-height:780px}.hero video{object-position:52% center}.film-caption{left:24px;right:24px;bottom:24px;font-size:14px}.section-pad{padding:58px 24px 68px}.intro{display:block;padding-top:48px;padding-bottom:65px}.intro>.eyebrow{margin-bottom:25px}.intro h1{font-size:clamp(48px,10.2vw,72px)}.intro-note{margin-top:28px;padding:0}.section-heading{margin-bottom:40px;align-items:flex-start;flex-direction:column;gap:14px;padding-top:20px}.section-heading h2{font-size:54px}.projects{padding-top:15px}.year-group{display:block;margin-bottom:58px}.year-label{position:static;font-size:35px;margin-bottom:23px}.year-projects{gap:45px}.image-button img{aspect-ratio:1.18}.image-action{opacity:1;right:14px;bottom:14px;padding:6px 12px;font-size:14px}.card-caption{display:block;margin-top:18px}.card-caption h3{font-size:33px}.card-caption p{text-align:left;margin-top:9px}.card-caption p span{display:inline;margin-left:15px}.furniture-grid{grid-template-columns:1fr;gap:55px}.object-card .image-button img{aspect-ratio:1.1}.object-card h3{font-size:38px;margin-bottom:20px}.light-layout,.about-layout,.contact-layout{grid-template-columns:1fr;gap:35px}.object-copy h3{font-size:40px}.portrait{max-width:430px}.about-copy h3{font-size:51px}.about-copy .bio{font-size:19px}.addresses{gap:35px;justify-content:space-between;margin-top:40px}.contact-layout{gap:50px}.contact-email{font-size:35px}.form-row{grid-template-columns:1fr;gap:0}.footer{padding:28px 24px}.footer-top{gap:24px;flex-wrap:wrap}.footer-top>span{min-width:45%;text-align:right}.footer-top .brand img{width:100px}.footer-bottom{grid-template-columns:1fr;gap:18px}dialog{padding:20px 15px;width:calc(100vw - 20px)}.gallery-top h2{font-size:30px}.gallery-meta{font-size:12px}.gallery-frame{height:53svh}.gallery-prev,.gallery-next{padding:7px 11px;font-size:12px}.gallery-prev{left:7px}.gallery-next{right:7px}.gallery-bottom{font-size:14px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}

@media(max-width:760px){
  body.menu-open{overflow:hidden;overscroll-behavior:none}
  .menu-toggle{min-width:82px;min-height:44px;display:flex;align-items:center;justify-content:flex-end;gap:10px;position:relative;z-index:3}
  .menu-toggle span{font-size:24px;font-weight:400;line-height:1}
  .header .brand{position:relative;z-index:3}
  .menu-open .header{background:transparent;border-color:transparent}
  .header nav{position:fixed;inset:0;top:0;width:100%;height:100vh;height:100dvh;max-height:none;margin:0;padding:calc(100px + env(safe-area-inset-top)) 38px calc(48px + env(safe-area-inset-bottom));border:0;z-index:2;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;gap:clamp(14px,3.8vh,32px);overflow-y:auto;overscroll-behavior:contain;background:rgba(255,255,255,.65);-webkit-backdrop-filter:blur(24px) saturate(.85);backdrop-filter:blur(24px) saturate(.85);opacity:0;visibility:hidden;pointer-events:none;transition:opacity .3s ease,visibility .3s}
  .header nav.is-open{opacity:1;visibility:visible;pointer-events:auto;transition:opacity .3s ease}
  .header nav a{font:400 clamp(42px,11.5vw,64px)/1.12 var(--serif);letter-spacing:-.02em;display:block;width:100%;padding:3px 0;transform:translateY(14px);opacity:0;transition:transform .4s ease,opacity .4s ease;text-decoration:none}
  .header nav.is-open a{transform:translateY(0);opacity:1}
  .header nav.is-open a:nth-child(2){transition-delay:.04s}
  .header nav.is-open a:nth-child(3){transition-delay:.08s}
  .header nav.is-open a:nth-child(4){transition-delay:.12s}
  .header nav.is-open a:nth-child(5){transition-delay:.16s}
  .header nav a:hover{text-decoration:none;opacity:.6}
}
@media(max-width:760px) and (max-height:540px){.header nav{padding-top:90px;padding-bottom:25px;gap:8px;justify-content:flex-start}.header nav a{font-size:32px}}
@supports not ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){@media(max-width:760px){.header nav{background:rgba(255,255,255,.94)}}}
