:root{--paper:#F4F1EB;--ink:#111;--muted:#55524C;--line:#D9D4CA;--accent:#FF6633;--accent-ink:#C2410C;--pad:clamp(20px,4.2vw,64px);--serif:'Fraunces',Georgia,serif;--sans:'Inter',system-ui,-apple-system,Segoe UI,Roboto,sans-serif;--hdr:72px}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;scroll-padding-top:var(--hdr);-webkit-text-size-adjust:100%}
body{background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:16px;line-height:1.65;-webkit-font-smoothing:antialiased}
img{display:block;max-width:100%;height:auto}
a{color:inherit}
:focus-visible{outline:2px solid var(--accent-ink);outline-offset:3px}
.skip{position:absolute;left:12px;top:-60px;background:var(--ink);color:var(--paper);padding:10px 16px;z-index:100;text-decoration:none;font-size:14px}
.skip:focus{top:12px}
.inner{padding:0 var(--pad);max-width:1480px;margin:0 auto}
/* header */
.top{position:sticky;top:0;z-index:50;height:var(--hdr);display:flex;align-items:center;justify-content:space-between;padding:0 var(--pad);background:rgba(244,241,235,.94);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}
.brand{display:block;width:132px;text-decoration:none}
.brand img{width:100%;height:auto}
.brand .sub{display:flex;justify-content:space-between;margin-top:5px;font:500 9px/1 var(--sans);color:var(--accent-ink);padding:0 1px 0 calc(132px*.33)}
.top nav{display:flex;gap:clamp(18px,2.6vw,38px)}
.top nav a{font-size:13px;letter-spacing:.04em;text-decoration:none;color:var(--ink);padding:6px 0;border-bottom:1px solid transparent;transition:border-color .25s}
.top nav a:hover{border-color:var(--ink)}
/* hero */
.hero{position:relative;display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);grid-template-rows:minmax(0,1fr);height:calc(100vh - var(--hdr));height:calc(100svh - var(--hdr));min-height:560px;max-height:1000px;overflow:hidden}
.hero-img{grid-column:2;grid-row:1;width:100%;height:100%;min-height:0;object-fit:cover;object-position:50% 62%}
.hero-copy{grid-column:1;grid-row:1;align-self:end;padding:0 var(--pad) clamp(40px,7vh,84px)}
.eyebrow{text-transform:uppercase;letter-spacing:.22em;font-size:11px;color:var(--accent-ink);font-weight:500;margin-bottom:22px}
h1,h2,h3{font-family:var(--serif);font-weight:300;letter-spacing:-.02em}
h1{font-size:clamp(36px,4.1vw,64px);line-height:1.06;text-wrap:balance;max-width:14ch}
h1 em{font-style:italic}
.tag{margin-top:22px;color:var(--muted);font-size:15px;max-width:34ch}
.scroll{display:inline-block;margin-top:34px;font-size:12px;letter-spacing:.14em;text-transform:uppercase;text-decoration:none;border-bottom:1px solid var(--ink);padding-bottom:4px}
.scroll:hover{color:var(--accent-ink);border-color:var(--accent-ink)}
/* projects */
.projects{padding-top:clamp(72px,11vw,160px)}
.head{display:grid;grid-template-columns:5fr 6fr;gap:var(--pad);align-items:end;margin-bottom:clamp(48px,7vw,100px)}
h2{font-size:clamp(30px,3vw,46px);line-height:1.1}
.head p{color:var(--muted);max-width:46ch;font-size:15px}
.proj{padding-bottom:clamp(72px,10vw,150px)}
.two{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:clamp(20px,3vw,48px);align-items:center}
.idx{font:400 12px/1 var(--sans);letter-spacing:.2em;color:var(--accent-ink);margin-bottom:18px}
.txt h3{font-size:clamp(26px,2.5vw,38px);line-height:1.12;margin-bottom:22px}
.desc{font-size:15.5px;line-height:1.75;color:#2a2926;max-width:60ch}
.meta{margin-top:30px;display:grid;grid-template-columns:1fr 1fr;gap:14px 28px;max-width:60ch;border-top:1px solid var(--line);padding-top:20px}
.meta dt{font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}
.meta dd{font-size:13.5px;margin-top:2px}
/* intro (project 01) */
.intro .txt{grid-column:3/10}
.seeabove{grid-column:10/13;align-self:end;font-size:12px;letter-spacing:.06em;color:var(--muted);line-height:1.6}
/* full-bleed */
.full .ph{margin-bottom:clamp(36px,5vw,72px)}
.full .ph img{width:100%}
.full .txt{grid-column:1/-1;display:grid;grid-template-columns:5fr 6fr;column-gap:var(--pad)}
.full .txt .idx,.full .txt h3{grid-column:1}
.full .txt .idx{grid-row:1}.full .txt h3{grid-row:2}
.full .txt .desc{grid-column:2;grid-row:1/3;align-self:start}
.full .txt .meta{grid-column:2;grid-row:3}
.full .inner{max-width:1480px}
/* split */
.split .ph{grid-column:1/8;grid-row:1}
.split .txt{grid-column:9/13;grid-row:1}
.split.right .ph{grid-column:6/13}
.split.right .txt{grid-column:1/5}
.split.portrait .ph{grid-column:2/7}
.split.portrait .txt{grid-column:8/13}
.split .ph img{width:100%}
/* about/contact */
.about,.contact{border-top:1px solid var(--line);padding:clamp(56px,8vw,110px) 0}
.about .two,.contact .two{align-items:start}
.about h2,.contact h2{grid-column:1/5}
.about .two>div,.contact .two>div{grid-column:5/12}
.lead{font-family:var(--serif);font-weight:300;font-size:clamp(22px,2.2vw,32px);line-height:1.3;letter-spacing:-.01em;max-width:30ch}
.about p+p{margin-top:20px;color:var(--muted);max-width:56ch;font-size:15.5px}
.contact .lead{color:var(--muted)}
/* footer */
.foot{background:var(--ink);color:#EDE9E1;padding:44px 0 52px}
.foot .inner{display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px 40px;align-items:baseline}
.foot a{text-decoration:none;border-bottom:1px solid rgba(237,233,225,.4);padding-bottom:2px;font-size:14px}
.foot a:hover{color:var(--accent);border-color:var(--accent)}
.foot .small{font-size:12px;color:#B5B0A6}
.foot :focus-visible{outline-color:var(--accent)}
/* reveal: visible without JS */
.js .reveal{opacity:0;transform:translateY(18px);transition:opacity .9s ease,transform .9s ease}
.js .reveal.in{opacity:1;transform:none}
/* tablet / mobile */
@media (max-width:900px){
  :root{--hdr:64px}
  .brand{width:112px}.brand .sub{padding-left:calc(112px*.33);font-size:8px}
  .hero{display:block;height:auto;min-height:0;max-height:none;overflow:visible}
  .hero-img{position:static;display:block;width:100%;height:auto;max-height:68svh;object-fit:cover;object-position:50% 70%;aspect-ratio:864/1152}
  .hero-copy{padding:28px var(--pad) 44px}
  .eyebrow{margin-bottom:14px}
  h1{font-size:clamp(34px,9.4vw,46px);max-width:13ch}
  .tag{margin-top:14px}
  .scroll{margin-top:24px}
  .head{grid-template-columns:1fr;gap:14px}
  .two{display:block}
  .split .ph,.split .txt,.intro .txt{grid-column:auto}
  .split .ph{margin-bottom:30px}
  .split.portrait .ph{max-width:420px}
  .seeabove{margin-top:22px}
  .full .txt{display:block}
  .meta{grid-template-columns:1fr 1fr}
  .about h2,.contact h2{margin-bottom:18px}
  .full .ph{margin-bottom:30px}
}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{animation:none!important;transition:none!important}.js .reveal{opacity:1;transform:none}}
