:root{
  --bg:#E9E4DC;
  --fg:#29241F;
  --muted:#81786D;
  --edge:30px;
  --header-height:82px;
  --footer-height:68px;
}
*{box-sizing:border-box}
html,body{margin:0;min-height:100%;background:var(--bg)}
body{
  color:var(--fg);
  font-family:"neue-haas-grotesk-text","Neue Haas Grotesk","Helvetica Neue",Helvetica,Arial,sans-serif;
  font-size:12px;line-height:1.25;
}
a{color:inherit;text-decoration:none}
.site-header{
  position:fixed;z-index:20;inset:0 0 auto 0;height:var(--header-height);
  padding:20px 30px;display:flex;justify-content:space-between;align-items:flex-start;
}
.brand{display:block;width:min(190px,20vw)}
.brand img{display:block;width:100%;height:auto;filter:brightness(.22)}
.desktop-nav{
  display:flex;flex-direction:row;align-items:center;justify-content:flex-end;gap:22px;
  margin-top:32px;
  text-transform:uppercase;letter-spacing:.045em;white-space:nowrap;
}
.desktop-nav a,.site-footer a,.mobile-menu a{transition:opacity .2s ease}
.desktop-nav{font-size:13px}
.desktop-nav a:hover,.site-footer a:hover,.mobile-menu a:hover{opacity:.45}
.menu-toggle{display:none}
.landing-grid{
  position:fixed;z-index:1;top:var(--header-height);left:var(--edge);right:var(--edge);
  bottom:var(--footer-height);display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px;
}
.landing-tile{position:relative;min-width:0;min-height:0;display:flex;align-items:center;justify-content:center;overflow:hidden}
.landing-tile img{width:100%;height:100%;display:block;object-fit:contain;object-position:center;transition:opacity .3s ease}
.landing-tile:hover img{opacity:.38}
.landing-tile span{
  position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);
  padding:0;background:none;text-transform:uppercase;letter-spacing:.055em;
  font-size:clamp(26px,2.5vw,42px);line-height:1;font-weight:400;
  text-align:center;opacity:0;transition:opacity .2s ease;
}
.landing-tile:hover span{opacity:1}
.site-footer{
  position:fixed;z-index:20;left:0;right:0;bottom:0;height:var(--footer-height);
  padding:8px 30px 0;display:grid;grid-template-columns:1fr 1fr 1fr;align-items:start;
  text-transform:uppercase;letter-spacing:.045em;
}
.site-footer>a:first-child{justify-self:start}.site-footer>a:last-child{justify-self:end}
.socials{justify-self:center;display:flex;gap:18px}.socials a{display:flex}
.socials svg{width:26px;height:26px;fill:none;stroke:currentColor;stroke-width:1.5}
.socials .linkedin{fill:currentColor;stroke:none}
.mobile-menu{display:none}

.page{
  min-height:100vh;padding:120px 5px 90px;
}
.page-inner{max-width:1600px;margin:0 auto}
.page-title{font-size:12px;font-weight:400;text-transform:uppercase;letter-spacing:.055em;margin:0 5px 18px}
.project-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px}
.project-card img{width:100%;height:auto;display:block}
.project-card h2{font-size:11px;font-weight:400;margin:8px 5px 30px;text-transform:uppercase;letter-spacing:.04em}
.text-page{max-width:800px;padding:160px 5vw 120px}
.text-page h1{font-size:clamp(42px,7vw,100px);font-weight:400;line-height:.95;margin:0 0 50px;letter-spacing:-.04em}
.text-page p,.text-page li{font-size:16px;line-height:1.45}
.text-page ul{padding-left:20px}

@media(max-width:700px){
.project-view{padding:92px 10px 85px}
  :root{--header-height:62px;--footer-height:60px}
  body{overflow-x:hidden}
  .site-header{padding:16px 20px}
  .brand{width:145px}
  .desktop-nav{display:none}
  .menu-toggle{
    display:block;border:0;padding:0;background:none;color:inherit;font:inherit;
    text-transform:uppercase;letter-spacing:.045em;cursor:pointer;
  }
  .landing-grid{
    position:relative;top:auto;left:auto;right:auto;bottom:auto;
    margin-top:var(--header-height);margin-bottom:var(--footer-height);
    padding:0 10px;display:flex;flex-direction:column;gap:5px;
  }
  .landing-tile{overflow:visible}
  .landing-tile img{width:100%;height:auto;object-fit:contain}
  .landing-tile span{opacity:1;font-size:28px}
  .site-footer{padding:12px 15px}
  .mobile-menu{
    position:fixed;z-index:50;inset:0;background:var(--bg);
    padding:80px 20px;display:none;
  }
  .mobile-menu.is-open{display:block}
  .mobile-menu nav{display:flex;flex-direction:column;gap:9px;font-size:15px;text-transform:uppercase}
  .menu-close{position:absolute;top:14px;right:10px;border:0;background:none;color:inherit;font-size:28px}
  .page{padding:105px 5px 80px}
  .project-grid{display:block}
  .project-card{margin-bottom:55px}
  .text-page{padding:120px 20px 100px}
}

@media(min-width:701px) and (max-height:850px){
  :root{--header-height:72px;--footer-height:64px}
  .site-header{padding-top:16px}
  .brand{width:165px}
}

.desktop-nav a.active{opacity:.45}.muted{color:var(--muted)}
.project-view{padding:105px 30px 90px}.gallery-item{border:0;background:none;padding:0;cursor:zoom-in;width:100%;display:block;break-inside:avoid;margin:0 0 5px}.gallery-item img{display:block;width:100%;height:auto;max-height:none}.lightbox{position:fixed;inset:0;background:rgba(41,36,31,.96);z-index:100;display:none;align-items:center;justify-content:center}.lightbox.is-open{display:flex}.lightbox>img{max-width:calc(100vw - 120px);max-height:calc(100vh - 90px);object-fit:contain}.lightbox button{position:absolute;background:none;color:#fff;border:0;font:34px/1 Arial;cursor:pointer}.lb-close{right:20px;top:14px}.lb-prev{left:18px;top:50%;transform:translateY(-50%);font-size:54px!important}.lb-next{right:18px;top:50%;transform:translateY(-50%);font-size:54px!important}.lb-count{position:absolute;bottom:18px;left:50%;transform:translateX(-50%);color:#fff;font-size:12px;letter-spacing:.05em}.no-scroll{overflow:hidden}
@media(max-width:700px){
.project-view{padding:92px 10px 85px}.project-view{padding:82px 5px 70px}.lightbox>img{max-width:calc(100vw - 40px);max-height:calc(100vh - 100px)}.lb-prev{left:4px}.lb-next{right:4px}.lb-close{right:8px}}

/* v10: editorial personal/publications/about layouts */
.landing-tile:hover img{opacity:.38}
.publication-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:5px}
.publication-card{position:relative;display:block;overflow:hidden;background:#ddd6cc}
.publication-card img{display:block;width:100%;height:auto}
.publication-card .publication-meta{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;text-align:center;padding:20px;text-transform:uppercase;letter-spacing:.045em;font-size:clamp(15px,1.4vw,23px);line-height:1.15;opacity:0;transition:opacity .2s ease;background:rgba(233,228,220,.62)}
.publication-card:hover .publication-meta{opacity:1}
.publication-detail{padding:125px 30px 100px;max-width:1600px;margin:0 auto}
.publication-detail-head{display:flex;justify-content:space-between;align-items:flex-end;gap:30px;margin-bottom:35px}
.publication-detail-head h1{font-size:clamp(28px,4vw,58px);font-weight:400;line-height:.95;margin:0;text-transform:uppercase;letter-spacing:-.025em}
.publication-detail-head p{margin:0;color:var(--muted);text-transform:uppercase;letter-spacing:.045em}
.publication-gallery{display:flex;flex-direction:column;gap:5px}
.publication-gallery img{display:block;width:100%;height:auto}
.personal-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px}
.personal-card{display:block}.personal-card img{display:block;width:100%;height:auto}.personal-card h2{font-size:13px;font-weight:400;margin:9px 5px 6px;text-transform:uppercase;letter-spacing:.04em}.personal-card p{font-size:13px;line-height:1.35;color:var(--muted);margin:0 5px 28px;max-width:45em}
.personal-detail{padding:125px 30px 100px;max-width:1600px;margin:0 auto}.personal-detail h1{font-size:clamp(30px,4.5vw,62px);font-weight:400;line-height:.95;text-transform:uppercase;letter-spacing:-.03em;margin:0 0 10px}.personal-detail .description{max-width:700px;font-size:16px;line-height:1.45;color:var(--muted);margin:0 0 35px}.personal-gallery{display:flex;flex-direction:column;gap:5px}.personal-gallery img{display:block;width:100%;height:auto}
.about-page{padding:125px 30px 100px;max-width:1400px;margin:0 auto}.about-layout{display:grid;grid-template-columns:minmax(280px,42%) 1fr;gap:6vw;align-items:start}.about-portrait{display:block;width:100%;height:auto}.about-copy h1{font-size:clamp(40px,6vw,90px);font-weight:400;line-height:.9;letter-spacing:-.04em;margin:0 0 45px}.about-copy .richtext{font-size:18px;line-height:1.5;max-width:680px}.about-copy .richtext p{margin:0 0 1.1em}.about-copy .richtext a{text-decoration:underline;text-underline-offset:3px}
.simple-page{padding:125px 30px 100px;max-width:1000px;margin:0 auto}.simple-page h1{font-size:clamp(38px,5vw,72px);font-weight:400;line-height:.92;text-transform:uppercase;letter-spacing:-.035em;margin:0 0 45px}.simple-page .contact-lines,.simple-page .legal-copy{font-size:16px;line-height:1.55}.simple-page .legal-copy p{margin:0 0 1.2em}.simple-page .contact-lines{display:grid;gap:3px}.simple-page .copyright{margin-top:50px;text-transform:uppercase;letter-spacing:.045em;font-size:12px}
@media(max-width:900px){
.publication-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.personal-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.about-layout{grid-template-columns:1fr 1fr}}
@media(max-width:700px){
.project-view{padding:92px 10px 85px}.publication-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.publication-detail,.personal-detail,.about-page,.simple-page{padding:92px 20px 85px}.publication-detail-head{display:block;margin-bottom:25px}.publication-detail-head p{margin-top:10px}.personal-grid{display:block}.personal-card{margin-bottom:45px}.about-layout{display:flex;flex-direction:column;gap:35px}.about-copy h1{margin-bottom:30px}.about-copy .richtext{font-size:16px}.publication-card .publication-meta{opacity:1;font-size:13px;background:rgba(233,228,220,.62)}}


/* Responsive project gallery: 3-column desktop, 2-column tablet, 1-column mobile */
.project-view{padding:105px 30px 90px}
.gallery-item{display:block;width:100%;padding:0;margin:0;border:0;background:none;cursor:zoom-in;line-height:0}
.gallery-item img{display:block;width:100%;height:auto;max-width:100%}

/* v14: robust category overview */
.category-page{padding:105px 30px 90px;max-width:1600px;margin:0 auto}
.category-page .page-title{margin:0 0 18px}
.category-project-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px}
.category-project-card{display:block;min-width:0}
.category-project-card img{display:block;width:100%;height:auto}
.category-project-card h2{font-size:11px;font-weight:400;margin:8px 5px 30px;text-transform:uppercase;letter-spacing:.04em}
@media(max-width:900px){.category-project-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){.category-page{padding:85px 10px 75px}.category-project-grid{grid-template-columns:1fr}.category-project-card h2{margin-bottom:30px}}

.project-view{padding:105px 30px 90px}
@media(max-width:900px){.project-view{padding-left:20px;padding-right:20px}}
@media(max-width:700px){.project-view{padding:82px 10px 70px}}

/* v20: streamlined project gallery — explicit responsive columns */
.project-view{padding:105px 30px 90px}
.project-gallery{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:0 5px;
  width:100%;
  max-width:1600px;
  margin:0 auto;
  align-items:start;
}
.project-gallery-column{
  min-width:0;
  display:flex;
  flex-direction:column;
  gap:5px;
  margin:0;
  padding:0;
}
.project-gallery .gallery-item{
  display:block;
  width:100%;
  margin:0;
  padding:0;
  border:0;
  background:none;
  cursor:zoom-in;
  line-height:0;
  font-size:0;
}
.project-gallery .gallery-item img{
  display:block;
  width:100%;
  height:auto;
  max-width:100%;
  margin:0;
  padding:0;
  border:0;
}
@media(max-width:900px){
  .project-gallery{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:700px){
  .project-view{padding:82px 10px 70px}
  .project-gallery{grid-template-columns:1fr;gap:0}
  .project-gallery-column{gap:5px}
}


/* v22: horizontal project galleries — Interiors / Hospitality / Travel / Personal */
.project-view{
  height:100vh;
  min-height:0;
  padding:105px 30px 90px;
  overflow:hidden;
}
.project-gallery,
.personal-gallery{
  display:flex;
  flex-direction:row;
  align-items:stretch;
  gap:5px;
  width:100%;
  height:100%;
  max-width:none;
  margin:0;
  overflow-x:auto;
  overflow-y:hidden;
  overscroll-behavior-x:contain;
  overscroll-behavior-y:none;
  scrollbar-width:none;
  -ms-overflow-style:none;
}
.project-gallery::-webkit-scrollbar,
.personal-gallery::-webkit-scrollbar{display:none}
.project-gallery .gallery-item,
.personal-gallery .gallery-item{
  flex:0 0 auto;
  width:auto;
  height:100%;
  margin:0;
  padding:0;
  border:0;
  background:none;
  cursor:zoom-in;
  line-height:0;
}
.project-gallery .gallery-item img,
.personal-gallery .gallery-item img{
  display:block;
  width:auto;
  height:100%;
  max-width:none;
  max-height:100%;
  margin:0;
  padding:0;
  border:0;
  object-fit:contain;
}
.personal-detail{
  height:100vh;
  min-height:0;
  padding:125px 30px 100px;
  max-width:none;
  margin:0;
  overflow:hidden;
}
.personal-detail .personal-gallery{
  height:calc(100% - 125px);
}
.personal-detail h1{margin-bottom:10px}
.personal-detail .description{margin-bottom:25px}
@media(max-width:900px){
  .project-view{padding-left:20px;padding-right:20px}
  .personal-detail{padding-left:20px;padding-right:20px}
}
@media(max-width:700px){
  .project-view{height:100vh;padding:82px 10px 70px}
  .personal-detail{height:100vh;padding:92px 20px 85px}
  .personal-detail .personal-gallery{height:calc(100% - 110px)}
  .personal-detail .description{margin-bottom:20px}
}

/* v22: let Personal galleries use all remaining viewport space after the heading/description */
.personal-detail{display:flex;flex-direction:column;min-height:0}
.personal-detail .personal-gallery{flex:1 1 auto;height:auto;min-height:0}
