
:root{
  --bg:#f3f2ee; --ink:#111; --mute:#9a9a96; --line:#dcdad3; --soft:#e9e7e1;
  --sans:"Inter Tight",system-ui,sans-serif; --mono:"JetBrains Mono",ui-monospace,monospace;
  --pad:clamp(18px,2.6vw,40px);
}
*{box-sizing:border-box;margin:0;padding:0}
html,body{background:var(--bg);color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}
img{display:block;width:100%;height:100%;object-fit:cover}
.mono{font-family:var(--mono);font-size:11px;letter-spacing:.04em;text-transform:uppercase}
.ph{background:#fff2a8;padding:0 4px;border-radius:2px}

/* header */
header{position:fixed;inset:0 0 auto 0;z-index:50;display:flex;justify-content:space-between;align-items:center;padding:var(--pad);pointer-events:none}
header>*{pointer-events:auto}
.mark{display:flex;align-items:center;gap:10px;font-weight:700;font-size:15px;letter-spacing:-.01em}
.mark img{height:clamp(16px,1.35vw,20px);width:auto;object-fit:contain}
nav{display:flex;gap:14px;font-weight:700;font-size:clamp(15px,1.25vw,19px);letter-spacing:-.02em}
nav a{color:var(--mute);transition:color .15s}
body:has(#home.on) nav a:not(.on){color:#4a4a47}
nav a:hover,nav a.on{color:var(--ink)}
nav a.on{background:var(--ink);color:var(--bg);padding:0 4px}

.view{display:none;min-height:100vh}
.view.on{display:block}

/* HOME — static hero */
.hero{position:relative;height:100vh;min-height:640px;overflow:hidden;background:linear-gradient(rgba(243,242,238,.35),rgba(243,242,238,.35)),url(/img/hero-bg2.jpg) center/cover no-repeat}
.hero .ph-img{display:none!important}
.hero .ph-img{position:absolute;overflow:hidden;background:var(--soft)}
.hero .h1{left:9%;top:24%;width:22%;aspect-ratio:4/5}
.hero .h2{left:33%;top:6%;width:15%;aspect-ratio:4/3}
.hero .h3{right:4%;top:9%;width:24%;aspect-ratio:3/4}
.hero .h4{right:16%;bottom:6%;width:21%;aspect-ratio:16/10}
.hero .h5{left:38%;bottom:-4%;width:12%;aspect-ratio:9/14}
.wordmark{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:5;white-space:nowrap;font-weight:600;letter-spacing:-.055em;font-size:clamp(54px,8.6vw,150px);line-height:.9}
.wordmark span{color:#0e044b}
.hero-foot{position:absolute;left:var(--pad);bottom:var(--pad);z-index:6;max-width:330px}
.hero-foot p{font-size:15px;line-height:1.4;font-weight:500;letter-spacing:-.01em}
.hero-foot a{display:inline-block;margin-top:14px;font-weight:700;border-bottom:2px solid var(--ink)}
.hero-loc{position:absolute;right:var(--pad);bottom:var(--pad);z-index:6;text-align:right;line-height:1.6}

/* PROJECTS index */
.plist-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;gap:clamp(24px,4vw,64px);padding:120px var(--pad) 80px}
.preview{width:clamp(220px,20vw,320px);aspect-ratio:3/4;background:var(--soft);overflow:hidden;flex:none}
.plist{list-style:none}
.plist li{display:flex;align-items:baseline;gap:14px;padding:3px 0}
.plist .n{width:22px;color:var(--mute)}
.plist .t{font-size:clamp(24px,2.5vw,38px);font-weight:700;letter-spacing:-.035em;color:#c3c2bd;transition:color .15s}
.plist .tags{display:flex;gap:12px;opacity:0;transition:opacity .15s;color:#555}
.plist li.live .t{color:var(--ink)}
.plist li.live:hover .tags,.plist li.live.hl .tags{opacity:1}
.plist li.soon{cursor:default}
.plist li.soon .tags{opacity:1;color:#bbb;text-transform:none;letter-spacing:0}
.plist li.live a{display:flex;align-items:baseline;gap:14px}

/* PROJECT page */
.proj{background:var(--bg)}
.ptitle{font-weight:800;letter-spacing:-.07em;font-size:clamp(110px,27vw,460px);line-height:.78;padding:clamp(70px,8vw,110px) 0 0 calc(var(--pad) - .04em);white-space:nowrap;overflow:hidden;padding-bottom:.12em}
.ptitle.two{font-size:clamp(64px,13.5vw,230px);line-height:.82;white-space:normal}
.pclose{position:fixed;right:var(--pad);top:var(--pad);z-index:60;font-weight:800;font-size:18px;letter-spacing:-.01em;display:none}
.pmeta{display:grid;grid-template-columns:minmax(220px,300px) minmax(0,560px);gap:clamp(24px,4vw,60px);padding:clamp(30px,4vw,60px) var(--pad) 0;justify-content:center}
.spec{width:100%;border-collapse:collapse}
.spec td{padding:7px 0;border-bottom:1px solid var(--line);font-size:13px;vertical-align:top}
.spec td:first-child{font-family:var(--mono);font-size:10.5px;color:#777;text-transform:uppercase;letter-spacing:.05em;padding-right:14px;white-space:nowrap}
.spec td:last-child{text-align:right;font-weight:500}
.lede p{font-size:clamp(16px,1.25vw,19px);line-height:1.42;font-weight:500;letter-spacing:-.012em}
.lede p+p{margin-top:16px}
.gal{max-width:1180px;margin:clamp(50px,7vw,100px) auto 0;padding:0 var(--pad);display:grid;grid-template-columns:1fr 1fr;gap:clamp(12px,1.6vw,24px)}
.gal figure{overflow:hidden;background:var(--soft)}
.gal.three{grid-template-columns:repeat(3,1fr)}
.gal .full{grid-column:1/-1;aspect-ratio:16/9}
.gal .half{aspect-ratio:4/5}
.gal .wide{aspect-ratio:16/10}
.gal .tall{aspect-ratio:9/14}
.gal .draw{background:#fff}
.gal .draw img{object-fit:contain;padding:4%}
figcaption{font-family:var(--mono);font-size:10.5px;text-transform:uppercase;letter-spacing:.05em;color:#777;padding-top:8px;background:var(--bg)}
.gal figure.cap{background:none}
.gal figure.cap .fr{overflow:hidden;background:var(--soft)}
.chapter{max-width:1180px;margin:clamp(70px,9vw,130px) auto 0;padding:0 var(--pad);display:grid;grid-template-columns:minmax(220px,300px) 1fr;gap:clamp(24px,4vw,60px)}
.chapter h3{font-size:clamp(26px,2.4vw,36px);letter-spacing:-.04em;font-weight:700;line-height:1}
.chapter h3 .mono{display:block;margin-bottom:10px;color:#888;font-weight:400}
.chapter .body p{font-size:16px;line-height:1.5;max-width:620px}
.chapter .body p+p{margin-top:14px}
.mats{margin-top:22px;border-top:1px solid var(--line)}
.mats div{display:grid;grid-template-columns:160px 1fr;gap:16px;padding:10px 0;border-bottom:1px solid var(--line);font-size:14px}
.mats div span:first-child{font-family:var(--mono);font-size:10.5px;text-transform:uppercase;letter-spacing:.05em;color:#777;padding-top:3px}
.nums{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;max-width:1180px;margin:clamp(70px,9vw,130px) auto 0;padding:0 var(--pad)}
.nums div{border-top:2px solid var(--ink);padding-top:14px}
.nums b{display:block;font-size:clamp(40px,5vw,76px);font-weight:700;letter-spacing:-.05em;line-height:1}
.nums span{display:block;margin-top:8px;font-size:13px;color:#555}

.palette{max-width:1180px;margin:clamp(50px,6vw,80px) auto 0;padding:0 var(--pad)}
.palette h4{font-weight:400;color:#777;margin-bottom:14px}
.sw{display:grid;grid-template-columns:repeat(6,1fr);gap:clamp(10px,1.4vw,20px)}
.sw div{display:flex;flex-direction:column}
.sw i{display:block;aspect-ratio:1;margin-bottom:10px}
.sw b{font-size:15px;letter-spacing:-.02em}
.sw span{margin-top:3px;color:#444}
.sw em{font-style:normal;font-size:12px;color:#888;margin-top:4px}
@media (max-width:860px){.sw{grid-template-columns:repeat(3,1fr)}}

/* CTA band */
.cta{margin-top:clamp(90px,11vw,160px);padding:clamp(60px,8vw,110px) var(--pad);background:var(--ink);color:var(--bg)}
.cta h2{font-size:clamp(40px,6.4vw,104px);letter-spacing:-.055em;line-height:.92;font-weight:700;max-width:1100px}
.cta h2 span{color:#6f6f6b}
.cta .row{display:flex;flex-wrap:wrap;gap:12px;margin-top:36px}
.btn{display:inline-flex;align-items:center;gap:10px;padding:14px 22px;border-radius:999px;font-weight:700;font-size:15px;border:1.5px solid currentColor}
.btn.solid{background:var(--bg);color:var(--ink);border-color:var(--bg)}

/* ABOUT */
.about{padding:clamp(120px,14vw,190px) var(--pad) 0}
.statement{font-size:clamp(30px,3.9vw,62px);letter-spacing:-.045em;line-height:1.02;font-weight:600;max-width:1250px}
.statement span{color:var(--mute)}
.sec{display:grid;grid-template-columns:minmax(200px,300px) 1fr;gap:clamp(24px,4vw,60px);margin-top:clamp(80px,10vw,140px);max-width:1250px}
.sec>h4{font-family:var(--mono);font-weight:400;font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:#777;padding-top:10px}
.svc{list-style:none;border-top:1px solid var(--line)}
.svc li{display:grid;grid-template-columns:44px 1fr 1.25fr;gap:16px;padding:20px 0;border-bottom:1px solid var(--line);align-items:baseline}
.svc li b{font-size:clamp(20px,1.9vw,28px);letter-spacing:-.035em;font-weight:700}
.svc li p{font-size:15px;line-height:1.45;color:#444}
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(14px,2vw,28px)}
.steps div{border-top:2px solid var(--ink);padding-top:14px}
.steps b{display:block;font-size:22px;letter-spacing:-.03em;margin:8px 0 8px}
.steps p{font-size:14px;line-height:1.45;color:#444}
.matgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:0;border-top:1px solid var(--line)}
.matgrid div{padding:18px 18px 18px 0;border-bottom:1px solid var(--line)}
.matgrid b{display:block;font-size:17px;letter-spacing:-.02em;margin-bottom:5px}
.matgrid p{font-size:13.5px;color:#555;line-height:1.4}
.photo-strip{display:grid;grid-template-columns:1.1fr .55fr 1fr;gap:clamp(12px,1.6vw,24px);margin-top:clamp(80px,10vw,140px);max-width:1250px}
.photo-strip figure{aspect-ratio:4/5;overflow:hidden;background:var(--soft)}
.photo-strip figure:first-child,.photo-strip figure:last-child{aspect-ratio:auto}

.about-band+.cta{margin-top:0}
.about-band{margin-top:clamp(50px,6vw,90px);overflow:hidden;background:#111}
.about-band img{height:auto;display:block}
/* CONTACT */
.contact{min-height:100vh;padding:clamp(120px,14vw,190px) var(--pad) 60px;display:flex;flex-direction:column;justify-content:space-between}
.contact h1{font-size:clamp(52px,9vw,160px);letter-spacing:-.065em;line-height:.88;font-weight:700}
.contact h1 span{color:var(--mute)}
.cgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;margin-top:70px}
.cgrid div{border-top:1px solid var(--ink);padding-top:12px}
.cgrid .mono{color:#777;display:block;margin-bottom:8px}
.cgrid p{font-size:17px;font-weight:600;letter-spacing:-.02em;line-height:1.35}

footer{display:flex;justify-content:space-between;gap:20px;padding:22px var(--pad);color:#888;flex-wrap:wrap}
.cta+footer{background:var(--ink);color:#777}

.wa{position:fixed;right:var(--pad);bottom:var(--pad);z-index:70;display:flex;align-items:center;gap:8px;background:#111;color:#fff;padding:12px 16px 12px 14px;border-radius:999px;font-weight:700;font-size:14px;box-shadow:0 6px 24px rgba(0,0,0,.18)}
.wa svg{width:18px;height:18px}
#home.on ~ .wa{bottom:calc(var(--pad) + 46px)}

@media (max-width:860px){
  nav{gap:8px;font-size:14px}
  .mark img{height:12px}
  .hero{height:100vh;height:100svh;min-height:760px}
  .hero .h1{left:5%;top:13%;width:44%}
  .hero .h2{right:5%;top:10%;left:auto;width:40%}
  .hero .h3{right:5%;top:57%;width:42%}
  .hero .h4{left:5%;bottom:auto;top:60%;right:auto;width:46%}
  .hero .h5{left:auto;right:30%;top:31%;bottom:auto;width:17%}
  .wordmark{font-size:12.6vw;top:49%}
  .hero-foot{bottom:calc(var(--pad) + 4px);max-width:56%}
  .hero-foot p{font-size:13px}
  .hero-foot a{margin-top:8px;font-size:14px}
  .hero-loc{display:none}
  .plist-wrap{flex-direction:column;align-items:flex-start}
  .preview{display:none}
  .plist .tags{display:none}
  .pmeta,.chapter,.sec{grid-template-columns:1fr}
  .gal,.gal.three{grid-template-columns:1fr}
  .gal .half,.gal .tall{aspect-ratio:4/5}
  .nums{grid-template-columns:1fr}
  .svc li{grid-template-columns:34px 1fr}
  .svc li p{grid-column:2}
  .steps,.cgrid{grid-template-columns:1fr 1fr}
  .matgrid{grid-template-columns:1fr}
  .photo-strip{grid-template-columns:1fr 1fr}
  .photo-strip figure:first-child{grid-column:1/-1;aspect-ratio:16/10}
  .mats div{grid-template-columns:110px 1fr}
}

.view{display:block}
