*{box-sizing:border-box}
:root{
  --bg:#090909;
  --soft:#111;
  --text:#f5f4ef;
  --muted:#b8b6af;
  --accent:#5c4630;
  --line:rgba(255,255,255,.18);
}
html{scroll-behavior:smooth}
body{
  margin:0;
  background:var(--bg);
  color:var(--text);
  font-family:"Montserrat",Arial,sans-serif;
  overflow-x:hidden;
}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
.nav{
  position:fixed;
  top:0;left:0;right:0;
  z-index:20;
  display:flex;
  justify-content:space-between;
  align-items:center;
  padding:24px 4vw;
  background:linear-gradient(to bottom,rgba(0,0,0,.76),transparent);
}
.brand img{width:220px;height:auto}
.nav nav{display:flex;gap:28px;font-size:.72rem;letter-spacing:.16em;text-transform:uppercase}
.nav nav a{opacity:.75}
.nav nav a:hover{opacity:1}
.hero{
  min-height:100vh;
  position:relative;
  display:flex;
  align-items:flex-end;
  padding:0 5vw 8vh;
  overflow:hidden;
}
.hero-media{
  position:absolute;inset:0;
  background:url("hero.jpg") center/cover no-repeat;
  transform:scale(1.015);
}
.hero-shade{
  position:absolute;inset:0;
  background:
    linear-gradient(90deg,rgba(3,3,3,.92) 0%,rgba(3,3,3,.74) 36%,rgba(3,3,3,.18) 70%,rgba(3,3,3,.08) 100%),
    linear-gradient(0deg,rgba(3,3,3,.84) 0%,rgba(3,3,3,.05) 52%);
}
.hero-copy{position:relative;z-index:2;max-width:880px}
.kicker,.section-label{
  font-size:.7rem;
  letter-spacing:.23em;
  text-transform:uppercase;
  color:var(--muted);
}
h1{
  margin:18px 0 24px;
  font-size:clamp(3rem,6vw,6.7rem);
  line-height:1.01;
  font-weight:300;
  letter-spacing:-.045em;
}
.lead{
  max-width:730px;
  line-height:1.7;
  color:#deddd7;
  font-size:clamp(1rem,1.3vw,1.25rem);
}
.actions,.contact-actions{display:flex;gap:14px;flex-wrap:wrap;margin-top:32px}
.button{
  min-height:52px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:0 22px;
  border:1px solid var(--line);
  text-transform:uppercase;
  letter-spacing:.1em;
  font-size:.72rem;
}
.button.light{background:var(--text);color:#111;border-color:var(--text)}
.button.outline{background:rgba(0,0,0,.2);backdrop-filter:blur(10px)}
.scroll{
  position:absolute;right:4vw;bottom:4vh;z-index:2;
  font-size:2rem;font-weight:300;
}
.intro,.contact{padding:130px 7vw;position:relative}
.intro-grid{
  display:grid;
  grid-template-columns:1.15fr 1fr;
  gap:10vw;
  align-items:start;
  margin-top:38px;
}
.intro h2,.project h2,.contact h2{
  margin:0;
  font-size:clamp(2.3rem,4.5vw,5.3rem);
  line-height:1.05;
  font-weight:300;
  letter-spacing:-.035em;
}
.intro-grid p,.contact-copy{
  margin:0;
  color:var(--muted);
  line-height:1.8;
  font-size:1.02rem;
}
.pillars{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:1px;
  background:var(--line);
  margin-top:90px;
}
.pillars article{
  background:var(--bg);
  padding:38px 32px 42px;
}
.pillars span{color:var(--accent);font-size:.75rem;letter-spacing:.15em}
.pillars h3{font-size:1.55rem;font-weight:400;margin:45px 0 14px}
.pillars p{color:var(--muted);line-height:1.7;margin:0}
.project{padding:0 3vw 120px}
.project-image{
  height:min(72vw,820px);
  overflow:hidden;
}
.project-image img{width:100%;height:100%;object-fit:cover}
.project-copy{
  display:grid;
  grid-template-columns:1fr auto;
  align-items:end;
  gap:40px;
  padding:34px 1vw 0;
}
.project h2{margin-top:12px}
.project-meta{
  text-transform:uppercase;
  letter-spacing:.16em;
  font-size:.68rem;
  color:var(--muted);
  text-align:right;
}
.project-meta p{margin:8px 0}
.contact{
  border-top:1px solid var(--line);
  min-height:70vh;
  display:flex;
  flex-direction:column;
  justify-content:center;
}
.contact h2{max-width:850px;margin:22px 0}
.contact-copy{max-width:650px}
.text-link{
  display:inline-flex;align-items:center;
  min-height:52px;
  padding:0 10px;
  text-transform:uppercase;
  letter-spacing:.1em;
  font-size:.72rem;
}
footer{
  border-top:1px solid var(--line);
  padding:28px 4vw;
  display:flex;
  justify-content:space-between;
  gap:20px;
  color:var(--muted);
  font-size:.62rem;
  letter-spacing:.16em;
  text-transform:uppercase;
}
.contours{
  position:fixed;
  pointer-events:none;
  z-index:0;
  opacity:.22;
  filter:blur(.1px);
}
.contours-a{
  width:52vw;height:72vh;right:-12vw;top:12vh;
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 800 1000'%3E%3Cg fill='none' stroke='%235c4630' stroke-width='5'%3E%3Cpath d='M150 80C60 180 100 300 230 310s180-80 290-30 150 160 90 250-180 60-220 170 110 210 250 160'/%3E%3Cpath d='M190 120c-70 80-35 160 65 170s130-60 220-20 120 130 65 190-150 40-180 130 90 160 190 130'/%3E%3Cpath d='M245 170c-35 45-5 95 55 100s80-40 135-15 75 75 35 120-90 15-110 70 45 100 100 85'/%3E%3Cpath d='M80 600c120-80 210-20 260 100s150 160 250 100 150-10 170 80'/%3E%3Cpath d='M120 650c90-55 145-5 185 80s120 115 190 70 110-5 120 55'/%3E%3Cpath d='M170 705c55-30 90 0 115 50s75 70 120 42 65 0 70 35'/%3E%3C/g%3E%3C/svg%3E") center/contain no-repeat;
}
.contours-b{
  width:46vw;height:55vh;left:-20vw;bottom:-12vh;
  transform:rotate(18deg);
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 800 800'%3E%3Cg fill='none' stroke='%235c4630' stroke-width='5'%3E%3Cpath d='M110 120c100-90 250-70 310 20s-15 170 60 250 210 60 230 190'/%3E%3Cpath d='M150 160c80-60 190-45 235 25s-10 120 45 180 155 45 170 140'/%3E%3Cpath d='M195 205c50-40 120-30 150 15s-5 80 30 115 95 30 110 85'/%3E%3C/g%3E%3C/svg%3E") center/contain no-repeat;
}
main,footer{position:relative;z-index:1}
@media(max-width:820px){
  .nav nav{display:none}
  .brand img{width:180px}
  .hero{padding-bottom:7vh}
  .hero-shade{
    background:linear-gradient(0deg,rgba(3,3,3,.95) 0%,rgba(3,3,3,.62) 60%,rgba(3,3,3,.25) 100%);
  }
  .hero-media{background-position:60% center}
  .intro-grid,.project-copy{grid-template-columns:1fr}
  .pillars{grid-template-columns:1fr}
  .project-meta{text-align:left}
  .project-image{height:68vh}
  footer{flex-direction:column}
}
