:root{
  --ink:#141414; --paper:#f3f0ea; --stone:#e4dfd5; --muted:#6f6a62; --brass:#c8a46a; --line:rgba(20,20,20,.14);
  --sans:"Archivo",system-ui,sans-serif; --serif:"Instrument Serif",Georgia,serif;
  --gutter:clamp(16px,4vw,56px); --max:1320px;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{background:var(--paper);color:var(--ink);font:400 17px/1.6 var(--sans);-webkit-font-smoothing:antialiased;overflow-x:hidden}
img{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
.wrap{max-width:var(--max);margin:0 auto;padding:0 var(--gutter)}
.eyebrow{font:500 12px/1.4 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.muted{color:var(--muted)} .small{font-size:13px}
h1,h2,h3{font-family:var(--sans);font-weight:900;text-transform:uppercase;letter-spacing:-.02em;line-height:.95}
h1{font-size:clamp(34px,8.5vw,112px);hyphens:manual;-webkit-hyphens:manual;overflow-wrap:normal} h2{font-size:clamp(30px,4.5vw,56px)} h3{font-size:22px;letter-spacing:0}
h1 em,h2 em{font-family:var(--serif);font-style:italic;font-weight:400;text-transform:none;letter-spacing:-.01em}
.lead{font-size:clamp(18px,1.6vw,21px);max-width:38em}
.big{font-size:clamp(22px,2.4vw,32px);line-height:1.3;font-weight:500;letter-spacing:-.01em}
.btn{display:inline-block;background:var(--ink);color:var(--paper);padding:16px 28px;font-weight:800;text-transform:uppercase;letter-spacing:.08em;font-size:14px;transition:background .2s}
.btn:hover{background:var(--brass);color:var(--ink)}
.btn.light{background:var(--paper);color:var(--ink)} .btn.ghost{background:transparent;border:1px solid rgba(243,240,234,.4);color:var(--paper)}
.arrow{font-weight:800;text-transform:uppercase;font-size:14px;letter-spacing:.08em;border-bottom:2px solid var(--brass);padding-bottom:2px}

/* header */
.site-header{position:sticky;top:0;z-index:50;display:flex;align-items:center;justify-content:space-between;padding:18px var(--gutter);background:rgba(243,240,234,.92);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
.logo{font-weight:900;font-size:24px;letter-spacing:.04em}
.site-header nav{display:flex;gap:32px}
.site-header nav a{font-weight:500;text-transform:uppercase;font-size:13px;letter-spacing:.12em}
.site-header nav a:hover,.site-header nav a[aria-current]{color:var(--brass)}
.nav-toggle{display:none;background:none;border:0;font:800 13px var(--sans);text-transform:uppercase;letter-spacing:.12em;cursor:pointer;color:var(--ink)}
@media (max-width:760px){
  .nav-toggle{display:block}
  .site-header nav{position:absolute;top:100%;left:0;right:0;flex-direction:column;gap:0;background:var(--paper);border-bottom:1px solid var(--line);display:none}
  .site-header nav.open{display:flex}
  .site-header nav a{padding:16px var(--gutter);border-top:1px solid var(--line);font-size:15px}
}

/* hero */
.hero{position:relative;min-height:calc(100svh - 64px);display:flex;align-items:flex-end;color:var(--paper);overflow:hidden}
.hero.short{min-height:70svh}
.hero{background:var(--paper)}
.hero.collage img{mix-blend-mode:darken}
.hero img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.hero::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(78,72,52,0) 30%,rgba(78,72,52,.72))}
.hero-text{position:relative;z-index:1;width:100%;padding-bottom:clamp(40px,7vw,96px)}
.hero .eyebrow{color:rgba(243,240,234,.8);margin-bottom:18px}
.hero h1{max-width:12ch;margin-bottom:22px}
.hero .lead{margin-bottom:30px}
.hero .btn{background:var(--paper);color:var(--ink)} .hero .btn:hover{background:var(--brass)}

.intro{padding:clamp(64px,10vw,140px) var(--gutter)}
.intro .big{max-width:28em}
.page-head{padding-top:clamp(48px,8vw,110px);padding-bottom:clamp(32px,5vw,64px)}
.page-head .eyebrow{margin-bottom:18px} .page-head .eyebrow a{border-bottom:1px solid currentColor}
.page-head .lead{margin-top:24px}
.page-head .btn{margin-top:28px}
.section-head{display:flex;justify-content:space-between;align-items:end;gap:20px;margin:clamp(48px,7vw,96px) auto 32px}

/* cards */
.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,380px),1fr));gap:clamp(20px,3vw,40px)}
.card-img{aspect-ratio:4/3;overflow:hidden;background:var(--stone)}
.card-img img{width:100%;height:100%;object-fit:cover;transition:transform .8s cubic-bezier(.2,.7,.2,1)}
.card:hover .card-img img{transform:scale(1.04)}
.card-body{padding-top:16px} .card-body .eyebrow{margin-bottom:8px} .card-body h3{margin-bottom:8px} .card-body p:last-child{color:var(--muted)}

.split{display:grid;grid-template-columns:1fr 1fr;gap:clamp(16px,2vw,24px);margin-top:clamp(64px,9vw,120px)}
.panel{background:var(--stone);padding:clamp(28px,4vw,56px);display:flex;flex-direction:column;gap:16px;min-height:340px;transition:transform .3s}
.panel:hover{transform:translateY(-4px)}
.panel.dark{background:var(--ink);color:var(--paper)} .panel.dark .eyebrow{color:rgba(243,240,234,.6)}
.panel .arrow{margin-top:auto;align-self:flex-start}
@media (max-width:760px){.split{grid-template-columns:1fr}}

/* cta */
.cta{background:var(--ink);color:var(--paper);padding:clamp(64px,10vw,130px) 0;margin-top:clamp(64px,9vw,120px)}
.cta h2{margin-bottom:18px} .cta .lead{color:rgba(243,240,234,.75);margin-bottom:32px}
.btns{display:flex;flex-wrap:wrap;gap:12px}

/* carousel */
.carousel{margin:0 0 clamp(40px,6vw,72px)}
.track{display:flex;gap:12px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;padding:0 var(--gutter);scroll-padding:0 var(--gutter);outline:none}
.track::-webkit-scrollbar{display:none}
.slide{flex:0 0 auto;height:clamp(300px,68svh,760px);scroll-snap-align:start;background:var(--stone);cursor:zoom-in}
.slide img{height:100%;width:auto;max-width:none;object-fit:cover}
@media (max-width:600px){.slide{height:auto;width:calc(100vw - 2*var(--gutter))}.slide img{width:100%;height:auto;aspect-ratio:4/3}}
.carousel-ui{display:flex;justify-content:space-between;align-items:center;margin-top:16px}
.count{font-size:14px;color:var(--muted);font-variant-numeric:tabular-nums} .count b{color:var(--ink)}
.carousel-ui button{width:52px;height:52px;border:1px solid var(--line);background:none;font-size:20px;cursor:pointer;margin-left:8px;color:var(--ink);transition:.2s}
.carousel-ui button:hover{background:var(--ink);color:var(--paper)}

/* project */
.project{display:grid;grid-template-columns:1.6fr 1fr;gap:clamp(32px,6vw,96px);padding-top:clamp(16px,3vw,32px)}
.project-text p{margin-bottom:1.2em;max-width:38em}
.project-text p:first-child{font-size:clamp(20px,2vw,26px);line-height:1.35;font-weight:500}
.facts dl{display:grid;grid-template-columns:auto 1fr;gap:10px 24px;padding:24px 0;border-top:2px solid var(--ink);border-bottom:1px solid var(--line)}
.facts dt{font:500 12px/1.9 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.facts dd{font-weight:500}
.features{list-style:none;margin-top:24px}
.features li{padding:12px 0;border-bottom:1px solid var(--line);font-weight:500}
.features li::before{content:"";display:inline-block;width:8px;height:8px;background:var(--brass);margin-right:14px;vertical-align:middle}
@media (max-width:860px){.project{grid-template-columns:1fr}}
.next{margin-top:clamp(56px,8vw,110px)}
.next a{display:flex;flex-direction:column;gap:10px;padding:32px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.next-name{font-weight:900;text-transform:uppercase;font-size:clamp(28px,5vw,64px);letter-spacing:-.02em;line-height:1;transition:color .2s}
.next a:hover .next-name{color:var(--brass)}

/* steps */
.steps{list-style:none;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));gap:0;margin-top:clamp(56px,8vw,100px);border-top:2px solid var(--ink)}
.steps li{padding:28px 24px 28px 0;border-bottom:1px solid var(--line)}
.steps .num{font-family:var(--serif);font-style:italic;font-size:44px;color:var(--brass);line-height:1}
.steps h3{margin:14px 0 10px}
.steps p{color:var(--muted);font-size:16px}

/* contact */
.contact-grid{display:grid;grid-template-columns:1fr 1fr;border-top:2px solid var(--ink);margin-bottom:clamp(64px,9vw,120px)}
.contact-item{display:flex;flex-direction:column;gap:10px;padding:32px 24px 32px 0;border-bottom:1px solid var(--line);transition:color .2s}
.contact-item:hover{color:var(--brass)}
@media (max-width:640px){.contact-grid{grid-template-columns:1fr}}

/* footer */
.site-footer{background:var(--ink);color:var(--paper);padding:56px 0 32px;border-top:1px solid rgba(243,240,234,.12)}
.cta + .site-footer{padding-top:0}
.footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr;gap:32px;padding-bottom:40px}
.site-footer .logo{margin-bottom:12px} .site-footer .eyebrow{color:rgba(243,240,234,.5);margin-bottom:12px}
.site-footer a:hover{color:var(--brass)} .site-footer .muted{color:rgba(243,240,234,.55)}
@media (max-width:760px){.footer-grid{grid-template-columns:1fr}}

/* lightbox */
.lightbox{position:fixed;inset:0;z-index:100;background:rgba(10,10,10,.96);display:flex;align-items:center;justify-content:center}
.lightbox[hidden]{display:none}
.lightbox img{max-width:92vw;max-height:88svh;object-fit:contain}
.lightbox button{position:absolute;background:none;border:0;color:var(--paper);font-size:44px;cursor:pointer;padding:16px;line-height:1}
.lb-close{top:8px;right:12px} .lb-prev{left:8px;top:50%;transform:translateY(-50%)} .lb-next{right:8px;top:50%;transform:translateY(-50%)}
.lb-count{position:absolute;bottom:18px;left:50%;transform:translateX(-50%);color:rgba(243,240,234,.7);font-size:14px}

@media (prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}
