:root {
  --font-geist-sans: -apple-system, BlinkMacSystemFont, "Helvetica Neue", Arial, sans-serif;
  --font-company: "JetBrains Mono";
  --ink: #141512;
  --paper: #f1f0eb;
  --paper-deep: #e7e4dc;
  --ash: #b99160;
  --mineral: #b8b3a8;
  --rule: rgba(20, 21, 18, 0.19);
}

img { display: block; }

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  background: var(--paper);
  color: var(--ink);
  font-family: var(--font-geist-sans), Helvetica, Arial, sans-serif;
  -webkit-font-smoothing: antialiased;
}
a { color: inherit; text-decoration: none; }
button, input, select, textarea { color: inherit; font: inherit; }
::selection { background: var(--ink); color: var(--paper); }

.site-header {
  align-items: center;
  backdrop-filter: blur(18px);
  background: rgba(241, 240, 235, .74);
  border-bottom: 1px solid rgba(20, 21, 18, .08);
  display: flex;
  height: 72px;
  justify-content: space-between;
  left: 0;
  padding: 0 3.2vw;
  position: fixed;
  top: 0;
  width: 100%;
  z-index: 50;
}
.company-name, .wordmark, .footer-wordmark { font-family: var(--font-company), monospace; }
.wordmark, .footer-wordmark { font-size: 13px; font-weight: 520; letter-spacing: -.015em; }
nav { align-items: center; display: flex; gap: 28px; font-size: 12px; }
nav a { opacity: .72; transition: opacity .25s ease; }
nav a:hover { opacity: 1; }
.nav-action { border: 1px solid currentColor; border-radius: 999px; opacity: 1; padding: 9px 16px; }

.hero { height: 100svh; min-height: 700px; overflow: hidden; position: relative; }
.hero::after { background: linear-gradient(90deg, rgba(16,16,14,.72), rgba(16,16,14,.04) 53%, rgba(16,16,14,.08)); content: ""; inset: 0; pointer-events: none; position: absolute; }
.hero-copy { color: #f4f2ec; left: 5vw; position: absolute; top: 20vh; z-index: 4; }
.eyebrow, .section-number { font-size: 10px; letter-spacing: .17em; margin: 0 0 22px; text-transform: uppercase; }
h1 { font-size: clamp(66px, 9.7vw, 150px); font-weight: 420; letter-spacing: -.07em; line-height: .82; margin: 0; }
.hero-line { font-size: clamp(18px, 2vw, 28px); letter-spacing: -.035em; margin: 30px 0 0 7px; }
.hero-photograph { inset: 0; position: absolute; }
.hero-photograph img { object-fit: cover; object-position: center center; }
.atrium-model { height: 100%; width: 100%; --poster-color: transparent; }
.model-loading { background: url('/atrium-hero.png') center / contain no-repeat; }
.model-instruction { align-items: center; bottom: 11%; display: flex; font-size: 11px; gap: 9px; letter-spacing: .05em; opacity: .58; position: absolute; right: 11%; }
.model-instruction span { font-size: 16px; }
.scroll-cue { bottom: 34px; color: #f4f2ec; display: flex; font-size: 11px; gap: 16px; left: 3.2vw; position: absolute; z-index: 5; }

.introduction { padding: 16vw 9vw 17vw; }
.introduction h2, .section-heading h2, .study-copy h2, .dimensions h2, .contact h2 {
  font-size: clamp(48px, 7vw, 108px);
  font-weight: 420;
  letter-spacing: -.065em;
  line-height: .96;
  margin: 0;
}
.introduction h2 { max-width: 1050px; }
.introduction > p:last-child { font-size: clamp(18px, 1.65vw, 24px); line-height: 1.48; margin: 70px 0 0 50%; max-width: 580px; }

.lifestyle-image { height: 100svh; margin: 0; min-height: 650px; overflow: hidden; position: relative; }
.lifestyle-image::after { background: linear-gradient(transparent 62%, rgba(0,0,0,.5)); content: ""; inset: 0; position: absolute; }
.lifestyle-image img { object-fit: cover; }
.lifestyle-image figcaption { bottom: 38px; color: white; font-size: 12px; left: 3.2vw; letter-spacing: .03em; position: absolute; z-index: 2; }

.materials { display: grid; grid-template-columns: repeat(2, 1fr); padding: 13vw 3.2vw 4vw; }
.section-heading { grid-column: 1 / -1; padding: 0 5.8vw 11vw; }
.material-card { aspect-ratio: 1.15 / 1; display: flex; flex-direction: column; justify-content: space-between; padding: 34px; }
.ash-card { background: #b78750; color: #17140f; }
.mineral-card { background: #aaa69e; color: #171714; }
.material-index { border: 1px solid currentColor; border-radius: 50%; display: grid; font-size: 11px; height: 32px; place-items: center; width: 32px; }
.material-card > div:last-child { max-width: 560px; }
.material-name { font-size: clamp(34px, 4vw, 66px); letter-spacing: -.05em; line-height: 1; margin: 0 0 30px; }
.material-card > div:last-child > p:last-child { font-size: clamp(16px, 1.4vw, 20px); line-height: 1.5; margin: 0; max-width: 490px; }

.object-study { background: #11120f; color: var(--paper); display: grid; grid-template-columns: 36% 64%; min-height: 100svh; padding: 9vw 4vw 5vw 8vw; }
.study-copy { align-self: center; position: relative; z-index: 2; }
.study-copy h2 { font-size: clamp(48px, 6vw, 90px); }
.study-copy > p:last-child { font-size: 16px; line-height: 1.55; margin: 45px 0 0; max-width: 410px; opacity: .68; }
.study-model { min-height: 620px; position: relative; }
.model-hotspot { background: none; border: 0; height: 22px; padding: 0; position: relative; width: 22px; }
.model-hotspot::before { background: var(--paper); border: 4px solid rgba(255,255,255,.3); border-radius: 50%; box-shadow: 0 0 0 1px white; content: ""; display: block; height: 8px; margin: 7px; width: 8px; }
.model-hotspot span { background: rgba(17,18,15,.9); border: 1px solid rgba(255,255,255,.22); border-radius: 999px; color: white; font-size: 10px; left: 28px; letter-spacing: .04em; padding: 8px 11px; position: absolute; top: 0; white-space: nowrap; }

.dimensions { display: grid; gap: 10vw; grid-template-columns: 1fr 1fr; padding: 15vw 9vw; }
.dimensions dl { margin: 0; }
.dimensions dl div { align-items: baseline; border-top: 1px solid var(--rule); display: flex; justify-content: space-between; padding: 22px 0; }
.dimensions dl div:last-child { border-bottom: 1px solid var(--rule); }
.dimensions dt { font-size: 12px; opacity: .6; }
.dimensions dd { font-size: clamp(22px, 2.2vw, 34px); letter-spacing: -.04em; margin: 0; }
.dimensions dd span { font-size: 11px; letter-spacing: 0; margin-left: 10px; opacity: .5; }

.second-image img { object-position: center center; }
.manifesto { background: var(--paper); display: grid; grid-template-columns: 22% 78%; padding: 13vw 6vw 15vw; }
.manifesto-aside { align-self: start; display: grid; grid-template-columns: 1fr 1px; grid-template-rows: auto 220px auto; position: sticky; top: 120px; }
.manifesto-aside .section-number { grid-column: 1 / -1; }
.manifesto-aside > p:last-child { align-self: end; font-family: var(--font-company), monospace; font-size: 10px; grid-column: 1; margin: 0; opacity: .45; }
.manifesto-progress { background: var(--rule); grid-column: 2; grid-row: 2 / 4; overflow: hidden; position: relative; width: 1px; }
.manifesto-progress span { background: var(--ink); inset: 0; position: absolute; transform-origin: top; transition: transform .45s cubic-bezier(.22,.61,.36,1); }
.manifesto-lines { padding-left: 6vw; }
.manifesto-paragraph, .manifesto-lines > div { color: rgba(20,21,18,.27); margin: 0 0 clamp(58px, 7vw, 118px); max-width: 1050px; transition: color .7s ease; }
.manifesto-lines > div.is-read { color: rgba(20,21,18,.5); }
.manifesto-lines > div.is-active { color: var(--ink); }
.manifesto-lines > div > p { font-size: clamp(34px, 4.8vw, 76px); font-weight: 420; letter-spacing: -.055em; line-height: 1.05; margin: 0; }
.manifesto-lines > .manifesto-signature { color: var(--ink); font-size: 14px; letter-spacing: -.015em; margin-top: 9vw; }

.contact { background: #161713; color: var(--paper); display: grid; gap: 9vw; grid-template-columns: .8fr 1.2fr; padding: 12vw 7vw; }
.contact h2 { font-size: clamp(52px, 6vw, 92px); }
.contact-intro > h2 + p { line-height: 1.55; margin: 42px 0 0; max-width: 460px; opacity: .65; }
.instagram-link { border-bottom: 1px solid rgba(255,255,255,.35); display: inline-flex; font-family: var(--font-company), monospace; font-size: 12px; gap: 16px; margin-top: 36px; padding-bottom: 7px; }
.enquiry-form { align-self: start; }
.field-row { display: grid; gap: 22px; grid-template-columns: 1fr 1fr; }
.enquiry-form label { display: block; margin-bottom: 28px; }
.enquiry-form label > span { display: block; font-size: 10px; letter-spacing: .13em; margin-bottom: 10px; opacity: .58; text-transform: uppercase; }
.enquiry-form input, .enquiry-form select, .enquiry-form textarea {
  appearance: none;
  background: transparent;
  border: 0;
  border-bottom: 1px solid rgba(255,255,255,.28);
  border-radius: 0;
  outline: 0;
  padding: 13px 0;
  resize: vertical;
  width: 100%;
}
.enquiry-form input:focus, .enquiry-form select:focus, .enquiry-form textarea:focus { border-color: white; }
.enquiry-form input::placeholder, .enquiry-form textarea::placeholder { color: rgba(255,255,255,.34); }
.form-footer { align-items: center; display: flex; gap: 24px; justify-content: space-between; margin-top: 18px; }
.form-footer button { background: var(--paper); border: 0; border-radius: 999px; color: var(--ink); cursor: pointer; padding: 15px 22px; }
.form-footer button span { margin-left: 20px; }
.form-footer p { font-size: 10px; line-height: 1.4; margin: 0; max-width: 250px; opacity: .5; }

footer { background: #161713; border-top: 1px solid rgba(255,255,255,.14); color: var(--paper); padding: 42px 3.2vw 28px; }
.footer-wordmark { font-size: clamp(36px, 7.4vw, 118px); letter-spacing: -.055em; line-height: .9; }
.footer-meta { border-top: 1px solid rgba(255,255,255,.14); display: grid; font-size: 10px; grid-template-columns: 1fr 1fr auto auto; margin-top: 60px; opacity: .6; padding-top: 22px; }

@media (max-width: 880px) {
  .site-header { height: 66px; padding: 0 20px; }
  nav a:not(.nav-action) { display: none; }
  .hero { min-height: 680px; }
  .hero::after { background: linear-gradient(180deg, rgba(16,16,14,.62), transparent 66%); }
  .hero-copy { left: 22px; top: 15vh; }
  .hero-photograph img { object-position: 62% center; }
  .scroll-cue { left: 22px; }
  .introduction { padding: 130px 24px; }
  .introduction > p:last-child { margin: 52px 0 0; }
  .lifestyle-image { height: 75svh; min-height: 520px; }
  .materials { display: block; padding: 110px 18px 18px; }
  .section-heading { padding: 0 6px 75px; }
  .material-card { aspect-ratio: auto; min-height: 430px; padding: 26px; }
  .object-study { display: flex; flex-direction: column; padding: 110px 24px 20px; }
  .study-model { height: 60vh; min-height: 450px; order: 2; }
  .study-copy { order: 1; }
  .dimensions { display: block; padding: 120px 24px; }
  .dimensions dl { margin-top: 80px; }
  .manifesto { display: block; padding: 110px 24px 130px; }
  .manifesto-aside { display: flex; justify-content: space-between; margin-bottom: 70px; position: static; }
  .manifesto-aside .section-number { margin: 0; }
  .manifesto-progress { display: none; }
  .manifesto-lines { padding-left: 0; }
  .manifesto-lines > div { margin-bottom: 70px; }
  .contact { display: block; padding: 110px 24px; }
  .enquiry-form { margin-top: 80px; }
  .field-row { display: block; }
  .form-footer { align-items: flex-start; flex-direction: column; }
  footer { padding: 48px 22px 25px; }
  .footer-meta { gap: 14px; grid-template-columns: 1fr; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
}
