@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600&family=Manrope:wght@300;400;500;600;700&display=swap');
:root {
  --background:#111110;
  --foreground:#e9e8e4;
  --muted:#96948f;
  --line:#34332f;
  --accent:#c7bda9;
  font-family:'DM Sans',sans-serif;
  color:var(--foreground);
  background:var(--background)
}

* {
  box-sizing:border-box
}

html {
  scroll-behavior:smooth
}

body {
  margin:0
}

a {
  color:inherit;
  text-decoration:none
}

.container {
  width:min(1080px,calc(100% - 64px));
  margin-inline:auto
}

.site-header {
  height:86px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  border-bottom:1px solid var(--line)
}

.logo {
  font-family:Manrope,sans-serif;
  font-size:18px;
  letter-spacing:.18em;
  font-weight:300
}

.logo span {
  margin-left:7px;
  font-weight:700
}

.navigation {
  display:flex;
  gap:38px
}

.navigation a {
  color:#c4c1ba;
  font-size:12px
}

.navigation a:hover,.text-link:hover {
  color:var(--accent)
}

.menu-toggle {
  display:none
}

.hero {
  padding-top:48px
}

.hero-intro {
  padding:48px 0 34px
}

.eyebrow {
  margin:0 0 22px;
  color:var(--muted);
  font-size:10px;
  letter-spacing:.23em
}

h1,h2 {
  font-family:Manrope,sans-serif;
  font-weight:300;
  letter-spacing:-.055em
}

.hero h1 {
  margin:0;
  font-size:clamp(48px,7vw,84px);
  line-height:.99
}

h1 em,h2 em {
  color:var(--accent);
  font-style:normal
}

.hero-bottom {
  display:flex;
  align-items:end;
  justify-content:space-between;
  margin-top:34px
}

.hero-bottom p {
  margin:0;
  color:#aaa8a1;
  font-size:14px;
  line-height:1.65
}

.text-link {
  display:inline-flex;
  align-items:center;
  gap:12px;
  padding-bottom:10px;
  border-bottom:1px solid #77736a;
  font-size:11px;
  letter-spacing:.1em;
  text-transform:uppercase
}

.image-placeholder {
  background-color:#292824;
  background-position:center;
  background-size:cover
}

.hero-image {
  height:clamp(260px,41vw,460px);
  margin-top:28px;
  position:relative;
  background-image:linear-gradient(90deg,rgba(0,0,0,.18),transparent 55%),url('../assets/images/hero.jpg')
}

.image-caption {
  position:absolute;
  bottom:18px;
  left:20px;
  color:#d1cec6;
  font-size:9px;
  letter-spacing:.2em
}

.work {
  padding-top:108px
}

.section-heading {
  display:flex;
  align-items:end;
  justify-content:space-between;
  margin-bottom:32px
}

.section-heading .eyebrow {
  margin-bottom:14px
}

.section-heading h2 {
  margin:0;
  font-size:clamp(32px,4vw,48px);
  line-height:1.1
}

.section-heading h2 span {
  color:var(--muted)
}

.section-note {
  margin:0 0 4px;
  color:var(--muted);
  font-size:12px;
  line-height:1.6
}

.project-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:42px 22px
}

.project-wide {
  grid-column:span 2
}

.project-image {
  height:clamp(230px,30vw,380px);
  position:relative;
  overflow:hidden
}

.project-image::after {
  content:'';
  position:absolute;
  inset:0;
  background:transparent;
  transition:background .3s
}

.project:hover .project-image::after {
  background:rgba(0,0,0,.12)
}

.project-one {
  background-image:url('../assets/images/project-01.jpg')
}

.project-two {
  background-image:url('../assets/images/project-02.jpg')
}

.project-three {
  background-image:url('../assets/images/project-03.jpg')
}

.project-four {
  background-image:url('../assets/images/project-04.jpg')
}

.project-number,.project-arrow {
  position:absolute;
  z-index:1;
  top:16px
}

.project-number {
  left:17px;
  font-size:10px;
  letter-spacing:.12em
}

.project-arrow {
  right:16px;
  display:grid;
  width:34px;
  height:34px;
  place-items:center;
  border:1px solid #ffffff88;
  border-radius:50%;
  opacity:0;
  transition:opacity .2s
}

.project:hover .project-arrow {
  opacity:1
}

.project-meta {
  padding-top:14px
}

.project-meta h3 {
  margin:0 0 6px;
  font-size:15px;
  font-weight:500
}

.project-meta p {
  margin:0;
  color:var(--muted);
  font-size:9px;
  letter-spacing:.16em
}

.about {
  padding:124px 0 112px;
  border-bottom:1px solid var(--line)
}

.about-content {
  display:grid;
  grid-template-columns:1.2fr .8fr;
  gap:60px;
  align-items:end
}

.about h2,.footer h2 {
  margin:0;
  font-size:clamp(42px,5.5vw,68px);
  line-height:1
}

.about-copy p {
  max-width:390px;
  margin:0 0 28px;
  color:#aaa8a1;
  font-size:14px;
  line-height:1.8
}

.footer {
  display:flex;
  align-items:end;
  justify-content:space-between;
  padding:70px 0 34px
}

.footer h2 {
  font-size:clamp(42px,5vw,64px)
}

.footer-contact {
  text-align:right
}

.footer-contact>a {
  display:inline-flex;
  gap:12px;
  padding-bottom:12px;
  border-bottom:1px solid var(--line);
  font-size:13px
}

.footer-contact p {
  margin:40px 0 0;
  color:var(--muted);
  font-size:9px;
  letter-spacing:.15em
}

@media(max-width:700px) {
  .container {
    width:calc(100% - 40px)
  }
  .site-header {
    height:70px
  }
  .menu-toggle {
    display:flex;
    width:38px;
    height:38px;
    flex-direction:column;
    justify-content:center;
    gap:6px;
    padding:8px;
    border:0;
    background:transparent;
    cursor:pointer
  }
  .menu-toggle span {
    display:block;
    height:1px;
    width:100%;
    background:var(--foreground)
  }
  .navigation {
    display:none;
    position:absolute;
    z-index:5;
    top:70px;
    left:0;
    right:0;
    flex-direction:column;
    gap:22px;
    padding:22px 20px;
    background:var(--background);
    border-bottom:1px solid var(--line)
  }
  .navigation.is-open {
    display:flex
  }
  .hero {
    padding-top:25px
  }
  .hero-intro {
    padding:35px 0 26px
  }
  .hero h1 {
    font-size:clamp(46px,13vw,68px)
  }
  .hero-bottom {
    align-items:start;
    flex-direction:column;
    gap:24px
  }
  .hero-image {
    height:290px;
    margin-top:8px;
    background-position:58% center
  }
  .work {
    padding-top:76px
  }
  .section-heading {
    align-items:start;
    flex-direction:column;
    gap:18px
  }
  .section-note br {
    display:none
  }
  .project-grid {
    grid-template-columns:1fr;
    gap:30px
  }
  .project-wide {
    grid-column:auto
  }
  .project-image {
    height:270px
  }
  .project-arrow {
    opacity:1
  }
  .about {
    padding:86px 0 78px
  }
  .about-content {
    grid-template-columns:1fr;
    gap:30px
  }
  .about h2 {
    font-size:52px
  }
  .footer {
    align-items:start;
    flex-direction:column;
    gap:42px;
    padding:58px 0 28px
  }
  .footer-contact {
    text-align:left
  }
  .footer-contact p {
    margin-top:28px
  }
}

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