:root {
  --ink: #182019;
  --forest: #122019;
  --forest-deep: #0b1510;
  --paper: #f3f0e8;
  --paper-warm: #eae4d8;
  --mist: #c9cec7;
  --line: rgba(24, 32, 25, 0.17);
  --shell: min(1180px, calc(100vw - 72px));
  --serif: "Cormorant Garamond", "Bodoni 72", Didot, Georgia, serif;
  --sans: Manrope, "Helvetica Neue", Arial, sans-serif;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; background: var(--forest-deep); }
body { margin: 0; color: var(--ink); background: var(--paper); font-family: var(--sans); font-size: 16px; line-height: 1.5; }
img, video { display: block; max-width: 100%; }
figure, h1, h2, p { margin: 0; }
button { font: inherit; }
.shell { width: var(--shell); margin-inline: auto; }
.section { position: relative; padding: clamp(72px, 8vw, 128px) 0; overflow: hidden; }
.section--dark { color: #f4f2eb; background: var(--forest-deep); }
.eyebrow { margin-bottom: 20px; font-size: .68rem; font-weight: 600; letter-spacing: .2em; text-transform: uppercase; opacity: .64; }
.display { max-width: 900px; font-family: var(--serif); font-size: clamp(3rem, 6.4vw, 6.5rem); font-weight: 400; line-height: .92; letter-spacing: -.035em; }
.display--dark { color: var(--ink); }
.section-index { display: flex; justify-content: flex-start; margin-bottom: clamp(38px, 5vw, 70px); padding-top: 12px; border-top: 1px solid currentColor; font-size: .63rem; letter-spacing: .18em; opacity: .35; }

.hero { position: relative; min-height: 100svh; display: flex; align-items: flex-end; color: #fff; background: #0c1711; overflow: hidden; }
.hero__video { position: absolute; inset: -1%; width: 102%; height: 102%; max-width: none; object-fit: cover; filter: saturate(.88) contrast(1.04); animation: hero-breathe 18s ease-in-out infinite alternate; }
@keyframes hero-breathe { from { transform: scale(1); } to { transform: scale(1.035); } }
.hero__shade { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(7,15,11,.1), rgba(7,15,11,.16) 45%, rgba(7,15,11,.82)); }
.hero__folio { position: absolute; z-index: 2; top: 28px; left: 36px; font-size: .66rem; letter-spacing: .2em; text-transform: uppercase; opacity: .74; }
.hero__content { position: relative; z-index: 1; display: grid; grid-template-columns: minmax(0, 1.7fr) minmax(220px, .65fr); gap: 6vw; align-items: end; padding-bottom: clamp(52px, 7vh, 88px); }
.hero__title { font-family: var(--serif); font-weight: 400; font-size: clamp(3.5rem, 7.1vw, 7.3rem); line-height: .88; letter-spacing: -.04em; text-shadow: 0 2px 30px rgba(0,0,0,.24); }
.hero__title span, .hero__facts span { display: block; }
.hero__facts { max-width: 330px; padding-bottom: .2rem; font-size: clamp(.9rem, 1.1vw, 1.08rem); line-height: 1.55; letter-spacing: .01em; }
.hero__facts span + span { margin-top: 1rem; }
.hero__scroll { position: absolute; right: 28px; bottom: 0; z-index: 2; width: 1px; height: 56px; background: rgba(255,255,255,.28); overflow: hidden; }
.hero__scroll span { display: block; width: 100%; height: 28px; background: #fff; animation: scroll-line 2.6s ease-in-out infinite; }
@keyframes scroll-line { 0% { transform: translateY(-34px); } 55%,100% { transform: translateY(62px); } }

.atmosphere__intro { display: grid; grid-template-columns: .62fr 1.65fr; column-gap: 6vw; row-gap: clamp(32px, 4vw, 52px); }
.atmosphere__intro .eyebrow { grid-column: 1; }
.atmosphere__intro .display { grid-column: 2; }
.atmosphere__copy { grid-column: 2; max-width: 620px; font-family: var(--serif); font-size: clamp(1.35rem, 2.1vw, 2.05rem); line-height: 1.27; color: var(--mist); }
.atmosphere__copy p + p { margin-top: .28em; }
.gallery { margin-top: clamp(64px, 8vw, 112px); display: grid; grid-template-columns: repeat(12, 1fr); gap: clamp(16px, 2vw, 28px); align-items: start; }
.gallery__item { overflow: hidden; background: #1b2a21; }
.gallery__item img { width: 100%; height: 100%; object-fit: cover; transition: transform 1.2s cubic-bezier(.2,.8,.2,1); }
.gallery__item:hover img { transform: scale(1.02); }
.gallery__item--wide { grid-column: 1 / 13; height: min(68vh, 650px); }
.gallery__item--portrait { grid-column: span 6; height: min(78vh, 760px); }
.gallery__item--landscape, .gallery__item--cinema { grid-column: 1 / 13; height: min(68vh, 650px); }

.lake { padding-bottom: 0; background: var(--paper); }
.lake__header { display: grid; grid-template-columns: .85fr 1.25fr; gap: 5vw; align-items: start; }
.lake__header .eyebrow { grid-column: 1; }
.lake__header .display { grid-column: 1 / 3; max-width: 980px; }
.lake__copy { grid-column: 2; max-width: 560px; margin-top: 24px; font-size: clamp(1rem, 1.25vw, 1.22rem); line-height: 1.65; }
.lake__copy p + p { margin-top: 1.1em; }
.lake__aerial { position: relative; margin-top: clamp(48px, 6vw, 82px); width: 100vw; margin-left: calc(50% - 50vw); padding: 0; border: 0; background: transparent; overflow: hidden; }
.lake__aerial img { display: block; width: 100%; height: auto; max-height: none; object-fit: initial; }

.possibilities { background: #ece7dc; }
.possibilities::before { content: ""; position: absolute; inset: 0; opacity: .14; pointer-events: none; background-image: radial-gradient(rgba(35,45,36,.22) .55px, transparent .55px); background-size: 5px 5px; }
.possibilities__grid { position: relative; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(48px, 6vw, 84px) 7vw; }
.possibilities .display { max-width: 100%; font-size: clamp(2.9rem, 4.7vw, 5rem); line-height: .94; overflow-wrap: anywhere; }
.possibilities__lead { align-self: end; max-width: 520px; font-family: var(--serif); font-size: clamp(1.3rem, 2vw, 1.95rem); line-height: 1.3; }
.uses, .infrastructure { border-top: 1px solid var(--line); padding-top: 22px; }
.uses__label { margin-bottom: 24px; font-size: .68rem; font-weight: 600; letter-spacing: .15em; text-transform: uppercase; opacity: .62; }
.uses ul { margin: 0; padding: 0; list-style: none; }
.uses li { padding: 12px 0; border-bottom: 1px solid var(--line); font-family: var(--serif); font-size: clamp(1.25rem, 1.65vw, 1.7rem); line-height: 1.15; }
.uses li span { font-family: var(--sans); font-size: .45em; letter-spacing: .02em; opacity: .54; }
.infrastructure__item { display: grid; grid-template-columns: minmax(0, 1fr) minmax(170px, .75fr); gap: 24px; padding: 22px 0; border-bottom: 1px solid var(--line); align-items: end; }
.infrastructure__item strong { min-width: 0; font-family: var(--serif); font-size: clamp(2rem, 3vw, 3.5rem); font-weight: 400; line-height: .92; letter-spacing: -.025em; overflow-wrap: anywhere; }
.infrastructure__item span { max-width: 260px; font-size: .95rem; line-height: 1.45; }

.letter { min-height: auto; display: block; background: #f5f2eb; }
.letter__paper { max-width: 960px; }
.letter__title { max-width: 780px; font-family: var(--serif); font-size: clamp(3.1rem, 6vw, 6rem); font-weight: 400; line-height: .92; letter-spacing: -.035em; }
.letter__text { max-width: 650px; margin: clamp(42px, 6vw, 72px) 0 0 auto; font-family: var(--serif); font-size: clamp(1.18rem, 1.65vw, 1.55rem); line-height: 1.45; }
.letter__text p + p { margin-top: .95em; }
.letter__closing { margin-top: 1.8em !important; font-size: 1.14em; line-height: 1.36; }


.reveal { opacity: 0; transform: translateY(20px); transition: opacity .85s ease, transform .85s cubic-bezier(.22,.61,.36,1); }
.reveal.is-visible { opacity: 1; transform: none; }
.reveal--delay { transition-delay: .12s; }

@media (max-height: 820px) and (min-width: 901px) {
  .section { padding: 62px 0; }
  .section-index { margin-bottom: 32px; }
  .display { font-size: clamp(2.8rem, 5.3vw, 5.35rem); }
  .hero__title { font-size: clamp(3.2rem, 6.2vw, 6.2rem); }
  .hero__content { padding-bottom: 44px; }
  .gallery { margin-top: 54px; }
  .gallery__item--wide, .gallery__item--landscape, .gallery__item--cinema { height: min(62vh, 560px); }
  .gallery__item--portrait { height: min(72vh, 640px); }
  .possibilities__grid { gap: 42px 6vw; }
  .uses li { padding: 9px 0; }
  .infrastructure__item { padding: 18px 0; }
  .letter__text { margin-top: 34px; font-size: 1.22rem; }
}

@media (max-width: 900px) {
  :root { --shell: min(100% - 36px, 720px); }
  .section { padding: 72px 0; }
  .hero__folio { left: 18px; top: 18px; }
  .hero__content { grid-template-columns: 1fr; gap: 24px; padding-bottom: 58px; }
  .hero__facts { max-width: 420px; }
  .hero__scroll { right: 18px; height: 46px; }
  .atmosphere__intro, .lake__header, .possibilities__grid { grid-template-columns: 1fr; }
  .atmosphere__intro .eyebrow, .atmosphere__intro .display, .atmosphere__copy, .lake__header .eyebrow, .lake__header .display, .lake__copy { grid-column: 1; }
  .atmosphere__intro { row-gap: 30px; }
  .lake__copy { margin-top: 0; }
  .possibilities__lead { max-width: none; }
  .infrastructure__item { grid-template-columns: 1fr; gap: 6px; }
}

@media (max-width: 620px) {
  :root { --shell: calc(100vw - 28px); }
  .section { padding: 58px 0; }
  .section-index { margin-bottom: 28px; }
  .hero { min-height: 100svh; }
  .hero__title { font-size: clamp(3rem, 13.5vw, 4.7rem); }
  .hero__video { object-position: 50% 50%; }
  .display { font-size: clamp(2.65rem, 12vw, 4.4rem); }
  .atmosphere__copy { font-size: 1.35rem; }
  .gallery { display: block; margin-top: 48px; }
  .gallery__item { height: auto; margin: 0 0 14px; aspect-ratio: auto; }
  .gallery__item img { width: 100%; height: auto; }
  .lake__aerial img { width: 100%; max-height: none; }
  .possibilities .display { font-size: clamp(2.65rem, 12vw, 4.3rem); }
  .letter__text { margin-left: 0; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
  .reveal { opacity: 1; transform: none; }
}

/* Final responsive safeguards */
body { overflow-x: clip; }
.hero__title, .display, .letter__title, .infrastructure__item strong { text-wrap: balance; }

@media (max-width: 420px) {
  :root { --shell: calc(100vw - 24px); }
  .hero__folio { max-width: calc(100vw - 72px); font-size: .58rem; }
  .hero__content { gap: 18px; padding-bottom: 46px; }
  .hero__title { font-size: clamp(2.7rem, 13.2vw, 3.55rem); line-height: .91; }
  .hero__facts { font-size: .88rem; line-height: 1.48; }
  .display, .possibilities .display { font-size: clamp(2.45rem, 11.7vw, 3.55rem); line-height: .96; }
  .letter__title { font-size: clamp(2.65rem, 12vw, 3.8rem); }
  .section { padding: 50px 0; }
  .gallery { margin-top: 40px; }
  .uses li { font-size: 1.25rem; }
  .infrastructure__item strong { font-size: 2.2rem; }
}

@media (max-height: 520px) and (orientation: landscape) {
  .hero { min-height: 100dvh; }
  .hero__content { grid-template-columns: minmax(0, 1.5fr) minmax(190px, .65fr); gap: 28px; padding-bottom: 24px; }
  .hero__title { font-size: clamp(2.4rem, 7vw, 4rem); }
  .hero__facts { font-size: .78rem; line-height: 1.4; }
  .hero__facts span + span { margin-top: .55rem; }
  .hero__folio { top: 12px; left: 16px; }
  .hero__scroll { display: none; }
}

/* v7: refined mobile editorial layout */
@media (max-width: 620px) {
  .section-index { width: var(--shell); }
  .hero__title span { max-width: 10.5ch; }
  .hero__facts { max-width: 29ch; }
  .atmosphere__intro .display br { display: none; }
  .atmosphere__copy { max-width: 30ch; }
  .gallery__item { margin-bottom: 10px; }
  .lake__aerial { margin-top: 38px; }
  .lake__aerial img { min-height: 0; }
  .possibilities__grid { gap: 42px; }
  .uses__label { margin-bottom: 16px; }
  .infrastructure__item { padding: 18px 0; }
  .letter__text { max-width: 31ch; }
}
