:root {
  --black:#050505;
  --black2:#0b0b0b;
  --ivory:#eeeae2;
  --warm:#c9c3b9;
  --muted:#98938b;
  --line:rgba(255,255,255,.18);
  --dark-line:rgba(5,5,5,.18);
  --pad:clamp(22px,4.8vw,78px);
  --serif:"Bodoni 72","Didot","Bodoni MT","Times New Roman",serif;
  --sans:"Helvetica Neue",Helvetica,Arial,sans-serif;
}

* {
  box-sizing:border-box
}

html {
  scroll-behavior:smooth;
  background:var(--black)
}

body {
  margin:0;
  background:var(--black);
  color:#fff;
  font-family:var(--sans);
  font-size:16px;
  line-height:1.5;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility
}

body.menu-open {
  overflow:hidden
}

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

img {
  display:block;
  width:100%
}

button,input,textarea,select {
  font:inherit
}

button {
  color:inherit
}

::selection {
  background:#fff;
  color:#000
}

.page-shell {
  overflow:hidden
}

.kicker {
  font-size:10px;
  letter-spacing:.26em;
  text-transform:uppercase;
  line-height:1.5
}

.serif {
  font-family:var(--serif);
  font-weight:400;
  letter-spacing:-.04em
}

.text-link {
  display:inline-flex;
  gap:16px;
  align-items:center;
  border-bottom:1px solid currentColor;
  padding:0 0 8px;
  font-size:10px;
  letter-spacing:.21em;
  text-transform:uppercase
}

.text-link span {
  font-size:14px
}

.reveal {
  transform:translateY(0);
  opacity:1;
  transition:transform .8s cubic-bezier(.2,.65,.2,1),opacity .8s ease
}

.reveal.will-reveal {
  transform:translateY(22px);
  opacity:.001
}

.reveal.will-reveal.in {
  transform:none;
  opacity:1
}

/* Header */
.site-header {
  position:fixed;
  inset:0 0 auto;
  z-index:300;
  color:#fff;
  transition:background .35s ease,backdrop-filter .35s ease
}

.site-header::after {
  content:"";
  position:absolute;
  left:var(--pad);
  right:var(--pad);
  bottom:0;
  height:1px;
  background:rgba(255,255,255,.17)
}

.header-inner {
  height:96px;
  padding:0 var(--pad);
  display:grid;
  grid-template-columns:190px 1fr auto;
  align-items:center;
  gap:30px
}

.brand {
  display:block;
  width:165px;
  line-height:0
}

.brand img {
  height:58px;
  object-fit:contain;
  object-position:left center
}

.logo-dark {
  display:none
}

.nav {
  display:flex;
  justify-content:flex-end;
  gap:34px;
  align-items:center
}

.nav a,.header-cta,.menu-toggle {
  font-size:9px;
  letter-spacing:.22em;
  text-transform:uppercase;
  white-space:nowrap
}

.nav a {
  padding:8px 0;
  position:relative
}

.nav a::after {
  content:"";
  position:absolute;
  left:0;
  right:100%;
  bottom:2px;
  height:1px;
  background:currentColor;
  transition:right .28s ease
}

.nav a:hover::after,.nav a.active::after {
  right:0
}

.header-cta {
  margin-left:12px;
  border:1px solid rgba(255,255,255,.5);
  padding:13px 16px;
  transition:.25s
}

.header-cta:hover {
  background:#fff;
  color:#000
}

.menu-toggle {
  display:none;
  border:0;
  background:transparent;
  padding:12px 0 12px 18px;
  cursor:pointer;
  position:relative;
  z-index:320
}

.site-header.scrolled {
  background:rgba(5,5,5,.92);
  backdrop-filter:blur(12px)
}

.mobile-panel {
  display:none
}

/* Home hero */
.hero {
  position:relative;
  height:100svh;
  min-height:660px;
  background:#000;
  overflow:hidden
}

.hero-media {
  position:absolute;
  inset:0
}

.hero-media picture,.hero-media img {
  width:100%;
  height:100%
}

.hero-media img {
  object-fit:cover;
  object-position:center center;
  filter:grayscale(1) contrast(1.06)
}

.hero-media::after {
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(90deg,rgba(0,0,0,.52),rgba(0,0,0,.06) 50%,rgba(0,0,0,.22)),linear-gradient(180deg,rgba(0,0,0,.24),transparent 30%,rgba(0,0,0,.48))
}

.hero-content {
  position:relative;
  z-index:2;
  height:100%;
  padding:138px var(--pad) 42px;
  display:flex;
  flex-direction:column;
  justify-content:space-between
}

.hero-top {
  width:min(690px,52vw)
}

.hero-title {
  margin:24px 0 0;
  font-family:var(--serif);
  font-size:clamp(78px,10.3vw,178px);
  font-weight:400;
  line-height:.76;
  letter-spacing:-.055em;
  text-transform:uppercase
}

.hero-bottom {
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:30px
}

.hero-tagline {
  font-size:10px;
  letter-spacing:.29em;
  text-transform:uppercase
}

.hero-scroll {
  display:flex;
  align-items:center;
  gap:18px;
  font-size:9px;
  letter-spacing:.23em;
  text-transform:uppercase
}

/* Intro */
.intro {
  background:var(--black);
  padding:clamp(88px,9vw,150px) var(--pad)
}

.intro-grid {
  display:grid;
  grid-template-columns:minmax(130px,.34fr) minmax(0,1.66fr);
  gap:clamp(44px,7vw,120px);
  align-items:start
}

.intro-copy {
  max-width:1150px
}

.intro h2 {
  margin:24px 0 0;
  font-size:clamp(58px,7.4vw,126px);
  line-height:.86
}

.intro-body {
  margin-top:clamp(48px,5.5vw,82px);
  display:grid;
  grid-template-columns:.8fr 1.2fr;
  gap:clamp(30px,5vw,80px);
  max-width:920px
}

.intro-body .lead {
  font-family:var(--serif);
  font-size:clamp(26px,2.6vw,42px);
  line-height:1.15;
  letter-spacing:-.02em;
  margin:0
}

.intro-body p:not(.lead) {
  margin:0;
  color:#b3afa7;
  font-size:15px;
  line-height:1.9
}

/* Editorial rail */
.visual-rail {
  background:#000;
  padding:0 var(--pad) clamp(88px,9vw,145px)
}

.rail-grid {
  display:grid;
  grid-template-columns:1.28fr .72fr;
  gap:18px;
  align-items:end
}

.rail-primary {
  height:clamp(520px,55vw,820px);
  overflow:hidden
}

.rail-secondary {
  display:grid;
  gap:18px
}

.rail-small {
  height:clamp(240px,26vw,390px);
  overflow:hidden
}

.rail-grid img {
  height:100%;
  object-fit:cover;
  filter:grayscale(1);
  transition:filter .45s ease,transform .8s ease
}

.rail-grid figure {
  margin:0;
  overflow:hidden;
  background:#111
}

.rail-grid figure:hover img {
  filter:grayscale(0);
  transform:scale(1.012)
}

.rail-caption {
  padding-top:13px;
  font-size:9px;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:#8f8b84
}

/* Hospitality split */
.editorial-split {
  display:grid;
  grid-template-columns:1.06fr .94fr;
  background:var(--ivory);
  color:#111
}

.editorial-image {
  min-height:700px;
  overflow:hidden
}

.editorial-image img {
  height:100%;
  object-fit:cover;
  filter:grayscale(1)
}

.editorial-copy {
  padding:clamp(70px,8vw,130px) clamp(34px,6.5vw,100px);
  display:flex;
  flex-direction:column;
  justify-content:center
}

.editorial-copy h2 {
  margin:28px 0 38px;
  font-size:clamp(50px,5.7vw,98px);
  line-height:.9
}

.editorial-copy p {
  max-width:520px;
  color:#4d4a44;
  font-size:15px;
  line-height:1.85;
  margin:0
}

.editorial-copy .quote {
  margin-top:48px;
  padding-top:28px;
  border-top:1px solid var(--dark-line);
  font-family:var(--serif);
  font-size:clamp(28px,2.6vw,46px);
  line-height:1.08;
  letter-spacing:-.025em
}

.editorial-copy .text-link {
  margin-top:42px
}

/* House feature */
.house-feature {
  background:#050505;
  padding:clamp(88px,9vw,145px) var(--pad)
}

.house-feature-grid {
  display:grid;
  grid-template-columns:.82fr 1.18fr;
  gap:clamp(45px,7vw,110px);
  align-items:center
}

.house-feature-image {
  height:clamp(520px,55vw,760px);
  overflow:hidden
}

.house-feature-image img {
  height:100%;
  object-fit:cover;
  filter:grayscale(1)
}

.house-feature-copy h2 {
  font-size:clamp(58px,7.4vw,126px);
  line-height:.84;
  margin:26px 0 36px
}

.house-feature-copy p {
  max-width:600px;
  color:#aaa69e;
  line-height:1.9;
  margin:0 0 40px
}

/* CTA */
.ascent {
  position:relative;
  background:#0a0a0a;
  padding:clamp(100px,11vw,180px) var(--pad);
  overflow:hidden
}

.ascent::before {
  content:"";
  position:absolute;
  width:64vw;
  height:1px;
  background:rgba(255,255,255,.19);
  left:-7vw;
  top:50%;
  transform:rotate(-28deg);
  transform-origin:left center
}

.ascent::after {
  content:"";
  position:absolute;
  width:20vw;
  height:1px;
  background:rgba(255,255,255,.16);
  left:39vw;
  top:58%;
  transform:rotate(42deg);
  transform-origin:left center
}

.ascent-inner {
  position:relative;
  z-index:2;
  display:grid;
  grid-template-columns:minmax(130px,.34fr) minmax(0,1.66fr);
  gap:clamp(44px,7vw,120px)
}

.ascent h2 {
  font-size:clamp(56px,7vw,120px);
  line-height:.87;
  margin:24px 0 45px;
  max-width:1100px
}

/* Footer */
.site-footer {
  border-top:1px solid var(--line);
  padding:40px var(--pad);
  background:#050505
}

.footer-grid {
  display:grid;
  grid-template-columns:1fr auto auto;
  gap:40px;
  align-items:center
}

.footer-logo {
  width:175px
}

.footer-logo img {
  height:66px;
  object-fit:contain;
  object-position:left center
}

.footer-nav {
  display:flex;
  gap:22px;
  flex-wrap:wrap
}

.footer-nav a,.footer-meta {
  font-size:8px;
  letter-spacing:.19em;
  text-transform:uppercase;
  color:#9b978f
}

.footer-nav a:hover {
  color:#fff
}

/* Inner hero */
.inner-hero {
  position:relative;
  min-height:68svh;
  padding:150px var(--pad) 62px;
  display:flex;
  align-items:flex-end;
  overflow:hidden;
  background:#050505
}

.inner-hero .inner-media {
  position:absolute;
  inset:0
}

.inner-hero .inner-media img {
  height:100%;
  object-fit:cover;
  filter:grayscale(1) brightness(.58)
}

.inner-hero .inner-media::after {
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(90deg,rgba(0,0,0,.58),rgba(0,0,0,.12) 68%),linear-gradient(180deg,rgba(0,0,0,.18),rgba(0,0,0,.5))
}

.inner-hero-content {
  position:relative;
  z-index:2;
  width:100%;
  display:grid;
  grid-template-columns:1.3fr .7fr;
  gap:60px;
  align-items:end
}

.inner-hero h1 {
  font-size:clamp(72px,9vw,156px);
  line-height:.78;
  margin:20px 0 0;
  text-transform:uppercase
}

.inner-hero p {
  margin:0 0 6px;
  color:#c4c0b8;
  max-width:480px;
  font-size:15px;
  line-height:1.8
}

/* Long copy */
.long-copy {
  background:#050505;
  padding:clamp(85px,9vw,145px) var(--pad)
}

.long-copy-grid {
  display:grid;
  grid-template-columns:minmax(130px,.34fr) minmax(0,1.66fr);
  gap:clamp(44px,7vw,120px)
}

.long-copy h2 {
  font-size:clamp(56px,6.8vw,116px);
  line-height:.88;
  margin:0
}

.long-copy-body {
  max-width:800px;
  margin-top:48px;
  display:grid;
  gap:22px
}

.long-copy-body p {
  font-size:16px;
  line-height:1.85;
  color:#b2aea6;
  margin:0
}

.long-copy-body .lead {
  font-family:var(--serif);
  font-size:clamp(28px,2.7vw,46px);
  line-height:1.14;
  color:#fff;
  letter-spacing:-.02em
}

.full-image {
  height:70svh;
  min-height:560px;
  overflow:hidden
}

.full-image img {
  height:100%;
  object-fit:cover;
  filter:grayscale(1)
}

/* Gallery/archive */
.gallery-band {
  background:#050505;
  padding:clamp(85px,9vw,145px) var(--pad)
}

.gallery-heading {
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
  gap:35px;
  padding-bottom:38px;
  border-bottom:1px solid var(--line);
  margin-bottom:24px
}

.gallery-heading h2 {
  margin: 18px 0 0;
  font-size: clamp(28px, 2.7vw, 46px);
  line-height: 1.14;
  letter-spacing: -.02em;
}

.gallery-collage {
  display:grid;
  grid-template-columns:1.2fr .8fr .92fr;
  gap:14px;
  align-items:start
}

.gallery-collage figure {
  margin:0;
  overflow:hidden;
  background:#111
}

.gallery-collage figure:nth-child(1) {
  height:610px
}

.gallery-collage figure:nth-child(2) {
  height:470px;
  margin-top:70px
}

.gallery-collage figure:nth-child(3) {
  height:560px;
  margin-top:24px
}

.gallery-collage img {
  height:100%;
  object-fit:cover;
  filter:grayscale(1);
  transition:.55s
}

.gallery-collage figure:hover img {
  filter:grayscale(0);
  transform:scale(1.01)
}

.gallery-collage figcaption {
  display:none
}

/* Hospitality page — equal three-image gallery */
.hospitality-page .gallery-collage {
  grid-template-columns: repeat(3, 1fr);
  gap: 14px;
  align-items: start;
}

.hospitality-page .gallery-collage figure:nth-child(1),
.hospitality-page .gallery-collage figure:nth-child(2),
.hospitality-page .gallery-collage figure:nth-child(3) {
  height: 520px;
  margin-top: 0;
}

.hospitality-page .gallery-collage img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

@media (max-width: 1024px) {

  .hospitality-page .gallery-collage {
    grid-template-columns: 1fr;
    gap: 12px;
  }

  .hospitality-page .gallery-collage figure:nth-child(1),
  .hospitality-page .gallery-collage figure:nth-child(2),
  .hospitality-page .gallery-collage figure:nth-child(3) {
    height: auto;
    margin-top: 0;
  }

  .hospitality-page .gallery-collage img {
    width: 100%;
    height: auto;
  }
}

.archive {
  padding:145px var(--pad) 90px;
  background:#050505
}

.archive-head {
  display:flex;
  justify-content:space-between;
  align-items:end;
  gap:35px;
  margin-bottom:42px
}

.archive-head h1 {
  font-size:clamp(72px,9vw,150px);
  line-height:.77;
  margin:0;
  text-transform:uppercase
}

.archive-grid {
  columns:3;
  column-gap:12px
}

.archive-item {
  break-inside:avoid;
  margin:0 0 12px;
  overflow:hidden;
  background:#111
}

.archive-item img {
  filter:grayscale(1);
  transition:.45s
}

.archive-item:hover img {
  filter:grayscale(0)
}

.archive-item figcaption {
  display:none
}

/* House page */
.house-portraits {
  background:var(--ivory);
  color:#111;
  padding:clamp(80px,8vw,130px) var(--pad)
}

.house-grid {
  display:grid;
  grid-template-columns:1.1fr .9fr;
  gap:16px;
  align-items:start
}

.house-card {
  margin:0;
  overflow:hidden;
  background:#d2cdc4
}

.house-card:first-child {
  height:690px
}

.house-card:last-child {
  height:560px;
  margin-top:90px
}

.house-card img {
  height:100%;
  object-fit:cover;
  filter:grayscale(1)
}

.house-copy {
  margin-top:65px;
  display:grid;
  grid-template-columns:minmax(130px,.34fr) minmax(0,1.66fr);
  gap:clamp(44px,7vw,120px)
}

.house-copy h2 {
  font-size:clamp(54px,6.6vw,112px);
  line-height:.88;
  margin:0
}

.house-copy p {
  max-width:660px;
  font-size:16px;
  line-height:1.85;
  color:#4d4943;
  margin:18px 0 0
}

/* ========================================
   HOUSE PAGE — CUSTOM OVERRIDES
   ======================================== */

/* Equal portrait image layout */
.house-page .house-grid {
  grid-template-columns: repeat(2, 1fr);
  gap: 16px;
  align-items: start;
}

.house-page .house-card:first-child,
.house-page .house-card:last-child {
  height: 620px;
  margin-top: 0;
}

.house-page .house-card img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

@media (max-width: 1024px) {

  .house-page .house-grid {
    grid-template-columns: 1fr;
    gap: 12px;
  }

  .house-page .house-card:first-child,
  .house-page .house-card:last-child {
    height: auto;
    margin: 0;
  }

  .house-page .house-card img {
    width: 100%;
    height: auto;
  }
}

/* Match House statement typography */
.house-page .house-copy h2 {
  font-size: clamp(30px, 3vw, 52px);
  line-height: 1.1;
}

.house-page .ascent h2 {
  font-size: clamp(30px, 3vw, 52px);
  line-height: 1.1;
}

/* Tighten space after House copy on desktop */
@media (min-width: 1025px) {
  .house-page .house-portraits {
    padding-bottom: 55px;
  }
}

.statement {
  background:#050505;
  padding:clamp(95px,10vw,165px) var(--pad)
}

.statement h2 {
  margin:24px 0 0;
  font-size:clamp(62px,8.2vw,138px);
  line-height:.82
}

.statement h2 em {
  color:#d5d1c9
}

/* Contact */
.contact-page {
  min-height:100vh;
  background:#050505
}

.contact-wrap {
  padding:155px var(--pad) 85px;
  display:grid;
  grid-template-columns:.8fr 1.2fr;
  gap:clamp(55px,8vw,125px)
}

.contact-intro h1 {
  font-size:clamp(70px,8.8vw,150px);
  line-height:.78;
  margin:22px 0 38px;
  text-transform:uppercase
}

.contact-intro p {
  max-width:470px;
  color:#aaa69f;
  line-height:1.85
}

.contact-meta {
  margin-top:48px;
  display:grid;
  gap:18px
}

.contact-meta span {
  font-size:8px;
  letter-spacing:.2em;
  text-transform:uppercase;
  color:#77736c;
  display:block;
  margin-bottom:5px
}

.form {
  padding-top:8px
}

.form-row {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:26px
}

.field {
  margin-bottom:26px
}

.field label {
  display:block;
  font-size:8px;
  text-transform:uppercase;
  letter-spacing:.2em;
  color:#99958e;
  margin-bottom:8px
}

.field input,.field textarea,.field select {
  width:100%;
  border:0;
  border-bottom:1px solid rgba(255,255,255,.28);
  background:transparent;
  color:#fff;
  border-radius:0;
  padding:11px 0 13px;
  outline:none
}

.field input:focus,.field textarea:focus,.field select:focus {
  border-color:#fff
}

.field textarea {
  min-height:110px;
  resize:vertical
}

.field select option {
  color:#000
}

.submit {
  border:1px solid #fff;
  background:transparent;
  color:#fff;
  padding:15px 20px;
  text-transform:uppercase;
  font-size:9px;
  letter-spacing:.21em;
  cursor:pointer
}

.submit:hover {
  background:#fff;
  color:#000
}

/* Mobile */
@media(max-width:1024px) {
  .header-inner {
    height:78px;
    grid-template-columns:145px 1fr auto
  }

  .brand {
    width:138px
  }

  .brand img {
    height:48px
  }

  .nav,.header-cta {
    display:none
  }

  .menu-toggle {
    display:block
  }

  .site-header::after {
    left:22px;
    right:22px
  }

  .mobile-panel {
    position:fixed;
    inset:0;
    background:#050505;
    z-index:250;
    display:flex;
    flex-direction:column;
    padding:105px 24px 30px;
    opacity:0;
    visibility:hidden;
    pointer-events:none;
    transform:translateY(-8px);
    transition:opacity .25s ease,visibility .25s ease,transform .25s ease
  }

  .mobile-panel.is-open,.menu-open .mobile-panel {
    opacity:1;
    visibility:visible;
    pointer-events:auto;
    transform:none
  }

  .mobile-panel nav {
    display:flex;
    flex-direction:column;
    gap:16px
  }

  .mobile-panel nav a {
    font-family:var(--serif);
    font-size:clamp(42px,12vw,68px);
    line-height:.94;
    text-transform:uppercase
  }

  .mobile-meta {
    margin-top:auto;
    font-size:8px;
    letter-spacing:.2em;
    text-transform:uppercase;
    color:#817d76
  }

  .hero {
    height:clamp(500px,128vw,640px);
    min-height:0
  }

  .hero-content {
    padding:104px 22px 26px
  }

  .hero-top {
    width:100%;
    max-width:300px
  }

  .hero-title {
    font-size:clamp(62px,19vw,94px);
    line-height:.79;
    margin-top:16px
  }

  .hero-bottom {
    align-items:flex-start;
    flex-direction:column;
    gap:14px
  }

  .hero-tagline {
    line-height:1.7
  }

  .hero-media img {
    object-position:center center
  }

  .hero-media::after {
    background:linear-gradient(90deg,rgba(0,0,0,.46),rgba(0,0,0,.05) 58%,rgba(0,0,0,.16)),linear-gradient(180deg,rgba(0,0,0,.20),rgba(0,0,0,.02) 45%,rgba(0,0,0,.52))
  }

  .intro,.visual-rail,.house-feature,.gallery-band,.long-copy,.house-portraits,.statement {
    padding-left:22px;
    padding-right:22px
  }

  .intro {
    padding-top:78px;
    padding-bottom:80px
  }

  .intro-grid,.ascent-inner,.long-copy-grid,.house-copy {
    grid-template-columns:1fr;
    gap:32px
  }

  .intro h2 {
    font-size:clamp(50px,15vw,78px)
  }

  .intro-body {
    grid-template-columns:1fr;
    gap:24px;
    margin-top:40px
  }

  .intro-body .lead {
    font-size:30px
  }

  .visual-rail {
    padding-bottom:80px
  }

  .rail-grid {
    grid-template-columns:1fr;
    gap:12px
  }

  .rail-primary {
    height:115vw;
    max-height:620px
  }

  .rail-secondary {
    grid-template-columns:1fr 1fr;
    gap:12px
  }

  .rail-small {
    height:64vw;
    max-height:360px
  }

  .rail-caption {
    display:none
  }

  .editorial-split {
    grid-template-columns:1fr
  }

  .editorial-image {
    min-height:108vw
  }

  .editorial-copy {
    padding:70px 22px 80px
  }

  .editorial-copy h2 {
    font-size:clamp(48px,14vw,72px)
  }

  .house-feature {
    padding-top:80px;
    padding-bottom:80px
  }

  .house-feature-grid {
    grid-template-columns:1fr;
    gap:44px
  }

  .house-feature-image {
    height:115vw;
    max-height:650px
  }

  .house-feature-copy h2 {
    font-size:clamp(52px,15vw,80px)
  }

  .ascent {
    padding:85px 22px
  }

  .ascent h2 {
    font-size:clamp(50px,14vw,76px)
  }

  .ascent::before {
    width:125vw;
    left:-35vw
  }

  .ascent::after {
    width:58vw;
    left:38vw
  }

  .footer-grid {
    grid-template-columns:1fr;
    gap:24px
  }

  .site-footer {
    padding:34px 22px
  }

  .footer-logo {
    width:160px
  }

  .footer-nav {
    gap:12px 20px
  }

  .inner-hero {
    min-height:62svh;
    padding:118px 22px 44px
  }

  .inner-hero-content {
    grid-template-columns:1fr;
    gap:24px
  }

  .inner-hero h1 {
    font-size:clamp(64px,18vw,94px)
  }

  .long-copy {
    padding-top:76px;
    padding-bottom:82px
  }

  .long-copy h2 {
    font-size:clamp(50px,14.5vw,76px)
  }

  .long-copy-body {
    margin-top:30px
  }

  .full-image {
    height:78svh;
    min-height:500px
  }

  .gallery-band {
    padding-top:78px;
    padding-bottom:80px
  }

  .gallery-heading {
    align-items:flex-start;
    flex-direction:column;
    gap:24px
  }

  .gallery-collage {
    grid-template-columns:1fr;
    gap:12px
  }

  .gallery-collage figure:nth-child(n) {
    height:auto;
    margin-top:0
  }

  .gallery-collage img {
    height:auto
  }

  .archive {
    padding:115px 14px 70px
  }

  .archive-head {
    padding:0 8px;
    align-items:flex-start;
    flex-direction:column;
    gap:22px
  }

  .archive-grid {
    columns:2;
    column-gap:8px
  }

  .archive-item {
    margin-bottom:8px
  }

  .house-grid {
    grid-template-columns:1fr;
    gap:12px
  }

  .house-card:first-child,.house-card:last-child {
    height:auto;
    margin:0
  }

  .house-copy {
    margin-top:52px
  }

  .house-copy h2 {
    font-size:clamp(50px,14vw,76px)
  }

  .statement {
    padding-top:82px;
    padding-bottom:88px
  }

  .statement h2 {
    font-size:clamp(56px,16vw,86px)
  }

  .contact-wrap {
    padding:118px 22px 70px;
    grid-template-columns:1fr;
    gap:52px
  }

  .contact-intro h1 {
    font-size:clamp(62px,18vw,92px)
  }

  .form-row {
    grid-template-columns:1fr
  }

}

@media(max-width:560px) {
  .archive-grid {
    columns:1
  }

  .rail-secondary {
    grid-template-columns:1fr
  }

  .rail-small {
    height:88vw
  }

  .footer-nav {
    flex-direction:column
  }

  .hero-scroll {
    display:none
  }

}

/* V5 navigation + mobile hero hardening */
.site-header,.header-inner,.brand,.nav,.nav a,.header-cta,.menu-toggle {
  pointer-events:auto
}

.site-header {
  isolation:isolate
}

@media(max-width:1024px) {
  .hero {
    height:620px;
    min-height:0;
    background:#050505
  }

  .hero-media {
    height:auto;
    inset:0 0 auto 0;
    background:#050505
  }

  .hero-media picture {
    display:block;
    height:auto
  }

  .hero-media img {
    display:block;
    width:100%;
    height:auto;
    aspect-ratio:auto;
    object-fit:contain;
    object-position:center top
  }

  .hero-media::after {
    background:linear-gradient(180deg,rgba(0,0,0,.08) 0%,rgba(0,0,0,.08) 60%,#050505 100%)
  }

  .hero-content {
    padding-top:96px;
    pointer-events:none
  }

  .hero-content a {
    pointer-events:auto
  }

  .mobile-panel {
    z-index:290
  }

  .site-header {
    z-index:400
  }

}

@media(max-width:560px) {
  .hero {
    height:590px
  }

  .hero-title {
    margin-top:12px
  }

}

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

  .reveal,.reveal.will-reveal {
    opacity:1;
    transform:none;
    transition:none
  }

}

/* ======================================================
   V6 — MOBILE HERO + NAVIGATION FINAL OVERRIDES
   ====================================================== */
/* Keep the entire header interaction layer above hero media. */
.site-header {
  z-index:500;
  pointer-events:none;
}

.header-inner, .brand, .nav, .nav a, .header-cta, .menu-toggle {
  pointer-events:auto;
}

.nav a, .header-cta {
  position:relative;
  z-index:2;
}

/* Hero media never intercepts header/navigation clicks. */
.hero-media, .hero-media picture, .hero-media img, .hero-media::after, .hero-content {
  pointer-events:none;
}

.hero-scroll {
  pointer-events:auto;
}

@media(max-width:1024px) {
  /* Closed mobile menu must be completely non-interactive. */
  .mobile-panel {
    z-index:450;
    pointer-events:none !important;
  }

  .mobile-panel.is-open,   .menu-open .mobile-panel {
    pointer-events:auto !important;
  }

  /*
    The mobile asset is intentionally taller than the desktop crop.
    Show the FULL photograph at its native aspect ratio instead of
    forcing it into a viewport-height cover crop.
  */
  .hero {
    height:auto;
    min-height:0;
    display:flex;
    flex-direction:column;
    background:#050505;
  }

  .hero-media {
    position:relative;
    inset:auto;
    width:100%;
    height:auto;
    flex:0 0 auto;
    background:#050505;
  }

  .hero-media picture {
    display:block;
    width:100%;
    height:auto;
  }

  .hero-media img {
    display:block;
    width:100%;
    height:auto;
    max-height:none;
    object-fit:contain;
    object-position:center center;
    filter:grayscale(1) contrast(1.05);
  }

  .hero-media::after {
    background:       linear-gradient(180deg,         rgba(0,0,0,.06) 0%,         rgba(0,0,0,.02) 68%,         rgba(5,5,5,.72) 90%,         #050505 100%);
  }

  /* Put the editorial type directly beneath the uncropped image. */
  .hero-content {
    position:relative;
    height:auto;
    min-height:0;
    padding:34px 22px 30px;
    gap:34px;
    background:#050505;
  }

  .hero-top {
    width:100%;
    max-width:none;
  }

  .hero-title {
    margin-top:14px;
    max-width:100%;
    font-size:clamp(62px,19vw,102px);
    line-height:.78;
  }

  .hero-bottom {
    flex-direction:row;
    align-items:flex-end;
    justify-content:space-between;
    gap:20px;
  }

}

@media(max-width:560px) {
  .hero-content {
    padding-top:28px;
  }

  .hero-bottom {
    flex-direction:column;
    align-items:flex-start;
  }

}

/* ======================================================
   V8 — SUMMIT / ARCHITECTURAL SECTION DIVIDERS
   A restrained geometric language drawn from the Summit mark.
   ====================================================== */
/* Give the key transition sections a positioning context. */
.hero, .visual-rail, .editorial-split, .inner-hero {
  position:relative;
}

/* 01 — Hairline summit mark at the foot of cinematic hero areas. */
.hero::after, .inner-hero::after {
  content:"";
  position:absolute;
  z-index:6;
  left:var(--pad);
  bottom:0;
  width:clamp(150px,15vw,250px);
  height:clamp(48px,5vw,78px);
  pointer-events:none;
  opacity:.62;
  background:     linear-gradient(150deg,       transparent calc(50% - .65px),       rgba(255,255,255,.68) 50%,       transparent calc(50% + .65px)) left center / 50% 100% no-repeat,     linear-gradient(30deg,       transparent calc(50% - .65px),       rgba(255,255,255,.68) 50%,       transparent calc(50% + .65px)) right center / 50% 100% no-repeat;
}

/* 02 — Long architectural cut from black imagery into the ivory story panel. */
.visual-rail {
  overflow:hidden;
}

.visual-rail::after {
  content:"";
  position:absolute;
  z-index:5;
  left:0;
  right:0;
  bottom:-1px;
  height:clamp(72px,7vw,122px);
  background:var(--ivory);
  clip-path:polygon(0 100%, 73% 0, 100% 58%, 100% 100%);
  pointer-events:none;
}

/* 03 — Offset peak out of the ivory panel and back into black. */
.editorial-split {
  overflow:hidden;
  padding-bottom:clamp(62px,6vw,105px);
}

.editorial-split::after {
  content:"";
  position:absolute;
  z-index:5;
  left:0;
  right:0;
  bottom:-1px;
  height:clamp(64px,6vw,108px);
  background:#050505;
  clip-path:polygon(0 100%, 0 58%, 61% 0, 78% 52%, 100% 15%, 100% 100%);
  pointer-events:none;
}

/* Keep content above the decorative cut. */
.editorial-split > * {
  position:relative;
  z-index:2;
}

/* Inner-page hero version is intentionally subtler. */
.inner-hero::after {
  left:auto;
  right:var(--pad);
  width:clamp(120px,12vw,205px);
  height:clamp(40px,4vw,64px);
  opacity:.42;
}

/* Mobile: retain the motif, but avoid large wedges eating image/content space. */
@media(max-width:1024px) {
  .hero::after {
    left:22px;
    width:132px;
    height:42px;
    opacity:.45;
  }

  .inner-hero::after {
    right:22px;
    width:118px;
    height:38px;
  }

  .visual-rail::after {
    height:58px;
    clip-path:polygon(0 100%, 76% 0, 100% 52%, 100% 100%);
  }

  .editorial-split {
    padding-bottom:58px;
  }

  .editorial-split::after {
    height:58px;
    clip-path:polygon(0 100%, 0 64%, 58% 0, 77% 48%, 100% 18%, 100% 100%);
  }

}

/* Minimal homepage footer */
.home-footer {
  padding:22px var(--pad);
  background:#050505
}

.home-footer .home-footer-inner {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px
}

.home-footer .footer-meta,.home-footer .footer-meta a {
  font-size:8px;
  letter-spacing:.19em;
  text-transform:uppercase;
  color:#9b978f
}

.home-footer .footer-meta a:hover {
  color:#fff
}

@media(max-width:767px) {
  .home-footer {
    padding:22px
  }

  .home-footer .home-footer-inner {
    flex-direction:column;
    align-items:flex-start;
    gap:10px
  }

}

/* Consistent editorial arrow — avoids Unicode/mobile rendering */
.sh-arrow {
  display: inline-block;
  width: 9px;
  height: 9px;
  margin-left: 10px;
  position: relative;
  flex: 0 0 auto;
}

.sh-arrow::before {
  content: "";
  position: absolute;
  width: 8px;
  height: 1px;
  background: currentColor;
  top: 4px;
  left: 0;
  transform: rotate(-45deg);
  transform-origin: center;
}

.sh-arrow::after {
  content: "";
  position: absolute;
  width: 4px;
  height: 4px;
  border-top: 1px solid currentColor;
  border-right: 1px solid currentColor;
  top: 0;
  right: 0;
}

/* Keep Chrome autofill consistent with dark form styling */
input:-webkit-autofill, input:-webkit-autofill:hover, input:-webkit-autofill:focus, input:-webkit-autofill:active, textarea:-webkit-autofill, textarea:-webkit-autofill:hover, textarea:-webkit-autofill:focus, textarea:-webkit-autofill:active, select:-webkit-autofill, select:-webkit-autofill:hover, select:-webkit-autofill:focus, select:-webkit-autofill:active {
  -webkit-text-fill-color: #fff !important;
  caret-color: #fff;
  -webkit-box-shadow: 0 0 0 1000px #000 inset !important;
  box-shadow: 0 0 0 1000px #000 inset !important;
  transition: background-color 9999s ease-out 0s;
}

/* ======================================================
   IN GOOD COMPANY — selected client marquee
   ====================================================== */
.good-company {
  background:#050505;
  padding:clamp(84px,8vw,132px) 0 clamp(92px,8vw,138px);
  border-top:1px solid var(--line);
  overflow:hidden;
}

.good-company-heading {
  padding:0 var(--pad) clamp(48px,5vw,76px);
}

.good-company-heading .kicker {
  color:#9b978f;
  margin-bottom:18px;
}

.good-company-heading h2 {
  margin:0;
  max-width:760px;
  font-size:clamp(28px,2.7vw,46px);
  line-height:1.14;
  letter-spacing:-.02em;
}

.client-marquee {
  position:relative;
  width:100%;
  overflow:hidden;
}

.client-marquee::before,
.client-marquee::after {
  content:"";
  position:absolute;
  z-index:2;
  top:0;
  bottom:0;
  width:clamp(36px,7vw,120px);
  pointer-events:none;
}

.client-marquee::before {
  left:0;
  background:linear-gradient(90deg,#050505 0%,rgba(5,5,5,0) 100%);
}

.client-marquee::after {
  right:0;
  background:linear-gradient(270deg,#050505 0%,rgba(5,5,5,0) 100%);
}

.client-marquee-track {
  display:flex;
  align-items:center;
  width:max-content;
  animation:client-marquee-scroll 38s linear infinite;
  will-change:transform;
}

.client-logo {
  width:clamp(190px,16vw,270px);
  height:92px;
  flex:0 0 auto;
  padding:0 clamp(25px,2.6vw,44px);
  display:flex;
  align-items:center;
  justify-content:center;
}

.client-logo img {
  width:auto;
  height:auto;
  max-width:100%;
  max-height:52px;
  object-fit:contain;
  opacity:.82;
}

.client-logo--portrait img {
  max-width:132px;
  max-height:68px;
}

.client-logo--fkac img {
  max-height:64px;
}

.client-logo--tpac img {
  max-height:58px;
}

@keyframes client-marquee-scroll {
  from { transform:translate3d(0,0,0); }
  to { transform:translate3d(-50%,0,0); }
}

@media(max-width:767px) {
  .good-company {
    padding:74px 0 82px;
  }

  .good-company-heading {
    padding:0 22px 42px;
  }

  .good-company-heading h2 {
    max-width:310px;
  }

  .client-marquee-track {
    animation-duration:30s;
  }

  .client-logo {
    width:168px;
    height:78px;
    padding:0 24px;
  }

  .client-logo img {
    max-height:42px;
  }

  .client-logo--portrait img {
    max-width:105px;
    max-height:58px;
  }

  .client-logo--fkac img {
    max-height:52px;
  }

  .client-logo--tpac img {
    max-height:48px;
  }
}

@media(prefers-reduced-motion:reduce) {
  .client-marquee-track {
    animation:none;
  }
}
