@font-face {
  font-family: "Cormorant Garamond";
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("fonts/cormorant-garamond-500-latin.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
  font-family: Inter;
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url("fonts/inter-italic-400-latin.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
  font-family: Inter;
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("fonts/inter-roman-latin.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
  font-family: Inter;
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("fonts/inter-roman-latin.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
  font-family: Inter;
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("fonts/inter-roman-latin.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

:root {
  --forest: #1a3329;
  --forest-deep: #102018;
  --ecru: #f3efe7;
  --ocre: #c4a035;
  --ocre-ink: #6e5314;
  --anthracite: #242424;
  --ink: #1c1c1c;
  --muted: #4a463f;
  --on-dark: #f6f1e8;
  --on-dark-soft: rgba(246, 241, 232, 0.84);
  --serif: "Cormorant Garamond", Georgia, serif;
  --sans: Inter, system-ui, sans-serif;
  --ease: cubic-bezier(0.22, 1, 0.36, 1);
  --max: 72rem;
  --gutter: clamp(1.25rem, 4vw, 2.5rem);
  --section: clamp(4.5rem, 8vw, 6.5rem);
  --text: 1.0625rem;
  --label: 0.875rem;
  --topo-dark: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='480' height='320' fill='none'%3E%3Cg stroke='%231a3329' stroke-width='0.8'%3E%3Cpath d='M-20 48c70-28 120 36 190 8s120-40 210 6'/%3E%3Cpath d='M-20 92c80-24 130 40 200 10s130-36 220 8'/%3E%3Cpath d='M-20 140c60-20 140 48 210 12s140-28 230 14'/%3E%3Cpath d='M-20 188c90-18 120 42 210 8s110-32 220 10'/%3E%3Cpath d='M-20 236c70-22 150 36 220 6s130-30 230 12'/%3E%3Cpath d='M-20 280c80-16 130 30 210 4s140-24 230 8'/%3E%3C/g%3E%3C/svg%3E");
  --topo-light: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='480' height='320' fill='none'%3E%3Cg stroke='%23f3efe7' stroke-width='0.8'%3E%3Cpath d='M-20 48c70-28 120 36 190 8s120-40 210 6'/%3E%3Cpath d='M-20 92c80-24 130 40 200 10s130-36 220 8'/%3E%3Cpath d='M-20 140c60-20 140 48 210 12s140-28 230 14'/%3E%3Cpath d='M-20 188c90-18 120 42 210 8s110-32 220 10'/%3E%3Cpath d='M-20 236c70-22 150 36 220 6s130-30 230 12'/%3E%3Cpath d='M-20 280c80-16 130 30 210 4s140-24 230 8'/%3E%3C/g%3E%3C/svg%3E");
}

*,
*::before,
*::after { box-sizing: border-box; }

html { scroll-behavior: smooth; }

body {
  margin: 0;
  font-family: var(--sans);
  font-size: var(--text);
  line-height: 1.55;
  color: var(--ink);
  background: var(--ecru);
  -webkit-font-smoothing: antialiased;
}

img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

a { color: inherit; }

:focus-visible {
  outline: 2px solid var(--ocre);
  outline-offset: 3px;
}

.skip {
  position: absolute;
  left: 1rem;
  top: -4rem;
  z-index: 200;
  padding: 0.75rem 1rem;
  background: var(--ocre);
  color: var(--forest-deep);
  font-weight: 600;
}

.skip:focus { top: 1rem; }

.wrap {
  width: min(100% - var(--gutter) * 2, var(--max));
  margin-inline: auto;
}

.site-header {
  position: fixed;
  inset: 0 0 auto;
  z-index: 40;
  background: rgba(16, 32, 24, 0.94);
  color: var(--on-dark);
  backdrop-filter: blur(10px);
}

.site-header__bar {
  display: grid;
  grid-template-columns: 1fr auto;
  grid-template-areas:
    "logo toggle"
    "cta cta"
    "nav nav";
  gap: 0.75rem 1rem;
  align-items: center;
  padding-block: 0.85rem 1rem;
}

.site-header__logo {
  grid-area: logo;
  font-family: var(--serif);
  font-size: 1.7rem;
  letter-spacing: 0.08em;
  text-decoration: none;
  line-height: 1;
}

.nav-toggle {
  grid-area: toggle;
  justify-self: end;
  display: inline-flex;
  align-items: center;
  gap: 0.55rem;
  min-height: 2.75rem;
  padding: 0.4rem 0;
  border: 0;
  background: transparent;
  color: var(--on-dark);
  font: inherit;
  font-size: var(--label);
  font-weight: 600;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  cursor: pointer;
}

.nav-toggle__bars,
.nav-toggle__bars::before,
.nav-toggle__bars::after {
  display: block;
  width: 1.15rem;
  height: 1px;
  background: currentColor;
  content: "";
}

.nav-toggle__bars { position: relative; }

.nav-toggle__bars::before,
.nav-toggle__bars::after {
  position: absolute;
  left: 0;
}

.nav-toggle__bars::before { top: -0.35rem; }
.nav-toggle__bars::after { top: 0.35rem; }

.site-nav { display: none; }

.site-nav.is-open { display: block; }

.site-nav ul {
  list-style: none;
  margin: 0.2rem 0 0;
  padding: 0.35rem 0 0;
  border-top: 1px solid rgba(243, 239, 231, 0.16);
}

.site-nav a {
  display: block;
  padding: 0.85rem 0;
  text-decoration: none;
  font-size: var(--label);
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.header-cta {
  grid-area: cta;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 3rem;
  padding: 0.75rem 1rem;
  background: var(--ocre);
  color: var(--forest-deep);
  text-decoration: none;
  font-size: var(--label);
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  text-align: center;
}

.header-cta:hover,
.btn--primary:hover { background: #d4b04a; }

main section { scroll-margin-top: 8.5rem; }

.hero {
  position: relative;
  min-height: 100svh;
  display: grid;
  align-items: end;
  color: var(--on-dark);
  background: var(--forest-deep);
  overflow: hidden;
}

.hero__media,
.hero__veil { position: absolute; inset: 0; }

.hero__media img { object-position: center 62%; }

.hero__veil {
  background:
    linear-gradient(180deg, rgba(16, 32, 24, 0.5) 0%, rgba(16, 32, 24, 0.58) 40%, rgba(16, 32, 24, 0.9) 100%),
    linear-gradient(90deg, rgba(16, 32, 24, 0.74) 0%, rgba(16, 32, 24, 0.32) 78%);
}

.hero__content {
  position: relative;
  z-index: 1;
  padding: 10.25rem 0 2.5rem;
}

.cartouche,
.surtitle,
.index {
  margin: 0 0 0.85rem;
  font-size: var(--label);
  font-weight: 600;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

.cartouche {
  display: inline-block;
  margin-bottom: 1.1rem;
  padding: 0.45rem 0.7rem;
  border: 1px solid rgba(243, 239, 231, 0.45);
}

.surtitle { color: var(--ocre); }

.band--light .index { color: var(--ocre-ink); }
.band--dark .index,
.band--deep .index { color: var(--ocre); }

h1, h2, h3,
.bridge,
.closing-line,
.stat__figure {
  font-family: var(--serif);
  font-weight: 500;
  letter-spacing: 0.01em;
  line-height: 0.96;
}

h1, h2, .stat__figure, .closing-line, .captions h3, .verbs h3, .principles h3, .origin h3, .stage h3, .spaces-title, .basecamp h3, .massif h3, .haag h3, .founder h3, .territory-close {
  text-transform: uppercase;
}

h1 {
  margin: 0 0 1rem;
  max-width: 14em;
  font-size: clamp(2.15rem, 7.2vw, 3.6rem);
  color: var(--on-dark);
}

.hero__lead {
  max-width: 22em;
  margin: 0 0 1rem;
  font-family: var(--serif);
  font-size: clamp(1.35rem, 2.5vw, 1.8rem);
  font-weight: 500;
  line-height: 1.15;
  color: var(--on-dark);
}

.hero__copy {
  max-width: 38rem;
  font-size: 1.125rem;
  font-weight: 500;
  line-height: 1.5;
  color: var(--on-dark);
}

.hero__copy p { margin: 0 0 0.8rem; }
.hero__copy p:last-child { margin-bottom: 0; }

.hero__closing {
  max-width: 12em;
  margin: 1.25rem 0 0;
  font-family: var(--serif);
  font-size: clamp(1.7rem, 3.4vw, 2.4rem);
  font-weight: 500;
  line-height: 0.96;
  letter-spacing: 0.02em;
  text-transform: uppercase;
  color: var(--ocre);
}

.hero__definition {
  max-width: 22em;
  margin: 0 0 0.85rem;
  font-family: var(--serif);
  font-size: clamp(1.2rem, 2.4vw, 1.55rem);
  font-weight: 500;
  line-height: 1.15;
  letter-spacing: 0.03em;
  text-transform: uppercase;
  color: var(--on-dark);
}

.hero__promise,
.origin__promise {
  margin: 0;
  font-family: var(--serif);
  font-weight: 500;
  line-height: 1;
  letter-spacing: 0.02em;
  text-transform: uppercase;
  color: var(--ocre);
}

.hero__promise {
  margin-bottom: 1.1rem;
  font-size: clamp(1.55rem, 3.2vw, 2.15rem);
}

.hero__promise span,
.origin__promise span { display: block; }

.hero__institutional {
  max-width: 36rem;
  font-size: 1rem;
  line-height: 1.5;
  color: var(--on-dark-soft);
}

.hero__institutional p { margin: 0 0 0.65rem; }
.hero__institutional p:last-child { margin-bottom: 0; }

.hero__status {
  margin: 1.15rem 0 0;
  font-size: var(--label);
  font-weight: 600;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--on-dark-soft);
}

h1 span,
h2 span { display: block; }

h2 {
  margin: 0 0 1.15rem;
  max-width: 14em;
  font-size: clamp(2.15rem, 6.2vw, 3.9rem);
}

.band--dark h2,
.band--deep h2 { color: var(--on-dark); }

h3 {
  margin: 0 0 0.35rem;
  font-size: clamp(1.7rem, 3vw, 2.15rem);
}

.hero__text,
.prose {
  max-width: 38rem;
  font-size: var(--text);
}

.hero__text p,
.prose p,
.space p,
.principles p,
.verbs p,
.split p,
.figures__stats p,
.placeholder p {
  margin: 0 0 0.8rem;
}

.hero__text p:last-child,
.prose p:last-child,
.space p:last-child,
.principles p,
.verbs p,
.split p:last-child { margin-bottom: 0; }

.prose--light,
.band--dark .principles p,
.band--deep .verbs p { color: var(--on-dark-soft); }

.band--light .space p,
.band--light .split p,
.figures__stats p,
.note { color: var(--muted); }

.cta-row {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  margin-top: 1.5rem;
}

.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 3.25rem;
  padding: 0.85rem 1.2rem;
  text-decoration: none;
  text-align: center;
  font-size: var(--label);
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.btn--primary {
  background: var(--ocre);
  color: var(--forest-deep);
}

.btn--ghost {
  border: 1px solid rgba(246, 241, 232, 0.75);
  color: var(--on-dark);
}

.btn--dossier { flex: 1 0 100%; }

.band {
  position: relative;
  padding: var(--section) 0;
  overflow: hidden;
}

.band::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background-repeat: repeat;
  background-size: 480px 320px;
  opacity: 0.16;
}

.band--light { background: var(--ecru); }
.band--light::before { background-image: var(--topo-dark); }
.band--dark { background: var(--forest); color: var(--on-dark); }
.band--deep { background: var(--forest-deep); color: var(--on-dark); }
.band--dark::before,
.band--deep::before { background-image: var(--topo-light); opacity: 0.12; }

.band > .wrap { position: relative; z-index: 1; }

.origin {
  display: grid;
  gap: 2.25rem;
  margin-top: 0.5rem;
}

.origin__label {
  margin: 0 0 0.55rem;
  font-size: var(--label);
  font-weight: 600;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--ocre-ink);
}

.origin__step h3,
.stage h3,
.spaces-title,
.basecamp h3 {
  max-width: 18em;
  margin-bottom: 0.8rem;
  font-size: clamp(1.7rem, 3vw, 2.15rem);
  font-weight: 500;
  line-height: 0.96;
}

.origin__promise {
  margin-top: 1.15rem;
  font-size: clamp(1.55rem, 3vw, 2.05rem);
  color: var(--forest);
}

.origin__step--strong .prose { margin-top: 0.85rem; }

.stage {
  display: grid;
  gap: 1.15rem;
  margin-top: 3rem;
}

.stage__frame { aspect-ratio: 16 / 9; }

.stage__copy p {
  margin: 0;
  max-width: 26rem;
  font-size: var(--text);
}

.spaces-title { margin-top: 3.25rem; }

.spaces {
  display: grid;
  gap: 2rem;
  margin-top: 1.15rem;
}

.space { margin: 0; }

.space figcaption {
  display: grid;
  gap: 0.35rem;
  margin-top: 0.7rem;
}

.space__name {
  font-family: var(--serif);
  font-size: clamp(1.35rem, 2.2vw, 1.7rem);
  font-weight: 500;
  line-height: 1.05;
  letter-spacing: 0.02em;
  text-transform: uppercase;
}

.space__text {
  max-width: 32rem;
  font-size: var(--text);
  line-height: 1.45;
  color: var(--muted);
}

.space .frame { aspect-ratio: 4 / 3; }
.space--table .frame,
.space--salon .frame { aspect-ratio: 16 / 9; }
.space--atelier .frame,
.space--room .frame,
.space--laundry .frame,
.space--dorm .frame { aspect-ratio: 4 / 5; }

.basecamp { margin-top: 3.25rem; }

.basecamp__frame {
  aspect-ratio: 16 / 9;
  margin-top: 1.15rem;
}

.basecamp figcaption {
  margin-top: 0.55rem;
  font-size: 0.95rem;
  font-style: italic;
  line-height: 1.4;
  color: var(--muted);
}

.territory-close {
  margin: 3.5rem 0 0;
  max-width: 12em;
  font-family: var(--serif);
  font-size: clamp(2.35rem, 6vw, 4.25rem);
  font-weight: 500;
  line-height: 0.92;
  letter-spacing: 0.01em;
  text-transform: uppercase;
  color: var(--on-dark);
}

.territory-close span { display: block; }

.journey {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 1.35rem;
  margin-top: 3rem;
}

.journey figure {
  margin: 0;
}

.moment figcaption {
  margin-top: 0.6rem;
  font-family: var(--serif);
  font-size: clamp(1.35rem, 2.4vw, 1.7rem);
  font-weight: 500;
  letter-spacing: 0.02em;
  line-height: 1;
  text-transform: uppercase;
}

.moment .frame { aspect-ratio: 4 / 3; }
.moment--go .frame { aspect-ratio: 16 / 9; }

.feast {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 1.35rem;
}

.journey .badge {
  position: static;
  display: block;
  margin: 0.35rem 0 0;
  padding: 0;
  background: none;
  color: var(--ocre-ink);
  font-size: var(--label);
  letter-spacing: 0.12em;
}

.spirit {
  max-width: 40rem;
  margin-top: 3rem;
}

.spirit h3 {
  max-width: 12em;
  margin-bottom: 0.85rem;
  font-size: clamp(1.85rem, 4vw, 2.6rem);
  text-transform: uppercase;
}

.spirit .origin__promise { color: var(--forest); }

.functions {
  list-style: none;
  display: grid;
  gap: 1.35rem;
  margin: 2.75rem 0 0;
  padding: 1.5rem 0 0;
  border-top: 1px solid rgba(26, 51, 41, 0.16);
}

.functions h3 {
  margin-bottom: 0.3rem;
  font-size: 1.45rem;
}

.functions p {
  margin: 0;
  max-width: 22rem;
  font-size: var(--text);
  color: var(--muted);
}

.frame {
  position: relative;
  background: var(--anthracite);
  overflow: hidden;
}

.frame img { position: absolute; inset: 0; }

.badge {
  position: absolute;
  left: 0.75rem;
  bottom: 0.75rem;
  z-index: 1;
  margin: 0;
  padding: 0.4rem 0.55rem;
  background: rgba(16, 32, 24, 0.88);
  color: var(--on-dark);
  font-size: var(--label);
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}


.implant {
  display: grid;
  gap: 1.75rem;
  margin-top: 2.25rem;
}

.frame--tall { aspect-ratio: 4 / 5; }

.implant__second {
  aspect-ratio: 21 / 9;
}

.principles {
  list-style: none;
  margin: 0;
  padding: 0;
}

.principles li {
  padding: 1.15rem 0;
  border-top: 1px solid rgba(246, 241, 232, 0.22);
}

.principles li:last-child { border-bottom: 1px solid rgba(246, 241, 232, 0.22); }

.callout {
  max-width: 44rem;
  margin: 2rem 0 0;
  padding: 1.15rem 0 1.15rem 1.15rem;
  border-left: 3px solid var(--ocre);
  font-size: var(--text);
  font-weight: 500;
}

.figures { margin-top: 2.25rem; }

.figures__photos {
  display: grid;
  gap: 1rem;
}

.figures__photos .frame { aspect-ratio: 16 / 10; }

.figures__stats {
  list-style: none;
  display: grid;
  gap: 1.75rem;
  margin: 1.5rem 0 0;
  padding: 0;
}

.stat__figure {
  margin: 0 0 0.6rem;
  font-size: clamp(4.25rem, 16vw, 6.5rem);
  line-height: 0.82;
  color: var(--forest);
}

.figures__stats p:last-child { font-size: var(--text); }

.source {
  margin: 1.35rem 0 0;
  max-width: 44rem;
  font-size: calc(var(--text) * 0.7);
  font-style: italic;
  line-height: 1.45;
  color: var(--ink);
}

.prose + .prose,
.source + .prose { margin-top: 1.25rem; }

.massif {
  margin-top: 2.75rem;
}

.massif h3 {
  max-width: 12em;
  margin-bottom: 0.85rem;
  font-size: clamp(2rem, 4vw, 3.1rem);
  font-weight: 500;
  line-height: 0.96;
}

.massif h3 span { display: block; }

.massif__line {
  display: block;
  margin: 0 0 0.55rem;
  font-family: var(--serif);
  font-weight: 500;
  font-size: clamp(1.45rem, 2.8vw, 1.9rem);
  line-height: 1.05;
  text-transform: uppercase;
  color: var(--forest);
}

.terrain {
  display: grid;
  gap: 2.75rem;
  margin-top: 2.75rem;
}

.terrain__figure {
  margin: 0;
  font-family: var(--serif);
  font-weight: 500;
  font-size: clamp(3.25rem, 12vw, 4.75rem);
  line-height: 0.88;
  letter-spacing: 0.01em;
  text-transform: uppercase;
  color: var(--forest);
}

.terrain__stat--lead .terrain__figure {
  font-size: clamp(4.25rem, 16vw, 7.25rem);
}

.terrain__stat > p:not(.terrain__figure):not(.source):not(.terrain__aside) {
  max-width: 28rem;
  margin: 0.7rem 0 0;
}

.terrain__aside {
  max-width: 22rem;
  margin: 0.45rem 0 0;
  font-family: var(--serif);
  font-size: clamp(1.25rem, 2.2vw, 1.5rem);
  font-weight: 500;
  line-height: 1.15;
}

.terrain .source,
.haag .source {
  margin-top: 0.45rem;
}

.haag {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 1.25rem;
  margin-top: 3rem;
  padding-top: 2.25rem;
  border-top: 1px solid rgba(26, 51, 41, 0.16);
}

.haag__visual {
  display: grid;
  gap: 0.65rem;
  width: 100%;
  max-width: 100%;
  min-width: 0;
  margin: 0;
}

.haag__visual img {
  width: 100%;
  height: auto;
  aspect-ratio: 3 / 2;
  object-fit: cover;
  object-position: 46% 46%;
}

.haag__credit {
  max-width: 38rem;
  margin: 0;
  font-size: 0.875rem;
  font-style: italic;
  line-height: 1.45;
  color: var(--ink);
}

.haag__credit a {
  color: inherit;
  text-decoration: underline;
  text-underline-offset: 0.16em;
}

.haag h3 {
  max-width: 12em;
  margin-bottom: 0.75rem;
  font-size: clamp(1.85rem, 3.4vw, 2.6rem);
  font-weight: 500;
  line-height: 0.96;
}

.haag__grade {
  margin: 0 0 0.85rem;
  font-family: var(--serif);
  font-weight: 500;
  font-size: clamp(2.15rem, 5vw, 3.15rem);
  line-height: 0.92;
  letter-spacing: 0.02em;
  text-transform: uppercase;
  color: var(--forest);
}

.haag__grade span { display: block; }

.haag__copy > p:not(.haag__grade):not(.source) {
  max-width: 36rem;
  margin: 0 0 0.75rem;
}

.haag__secondary {
  max-width: 24rem;
  margin-top: 1.35rem;
  padding-top: 1.15rem;
  border-top: 1px solid rgba(26, 51, 41, 0.16);
}

.haag__secondary .terrain__figure {
  font-size: clamp(2.4rem, 5vw, 3.15rem);
}

.haag__secondary > p:not(.terrain__figure):not(.source) {
  margin: 0.55rem 0 0;
}

.frame--panorama {
  aspect-ratio: 16 / 8;
  margin-top: 2rem;
}

.verbs {
  list-style: none;
  display: grid;
  gap: 1.5rem 1.25rem;
  margin: 1.75rem 0 0;
  padding: 0;
}

.verbs h3 { color: var(--on-dark); }

.eco {
  display: grid;
  gap: 1rem;
  margin-top: 2.25rem;
}

.eco__main { aspect-ratio: 4 / 5; }

.eco__side {
  display: grid;
  gap: 1rem;
}

.placeholder {
  display: grid;
  align-content: end;
  min-height: 11rem;
  padding: 1.15rem;
  background: rgba(26, 51, 41, 0.06);
}

.placeholder__kicker {
  margin: 0 0 0.4rem;
  font-size: var(--label);
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--ocre-ink);
}

.placeholder p:last-child {
  margin: 0;
  font-size: var(--text);
}

.captions {
  list-style: none;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.85rem 1.25rem;
  margin: 1.25rem 0 0;
  padding: 1.15rem 0 0;
  border-top: 1px solid rgba(26, 51, 41, 0.16);
}

.captions h3 { margin: 0; }

.split {
  display: grid;
  gap: 1.75rem;
  margin-top: 2.25rem;
  padding-top: 2rem;
  border-top: 1px solid rgba(26, 51, 41, 0.16);
}

.note {
  margin: 0.7rem 0 0;
  font-size: 1rem;
}

.closing-line {
  margin: 2.25rem 0 0;
  max-width: 12em;
  font-size: clamp(1.7rem, 4vw, 2.35rem);
  text-transform: uppercase;
  color: var(--forest);
}

.criteria {
  list-style: none;
  margin: 1.35rem 0 0;
  padding: 0;
}

.criteria li {
  padding: 0.8rem 0;
  border-top: 1px solid rgba(246, 241, 232, 0.22);
  font-size: var(--text);
}

.criteria li:last-child { border-bottom: 1px solid rgba(246, 241, 232, 0.22); }

.close { display: grid; gap: 1.75rem; }

.founder {
  display: grid;
  gap: 1.35rem;
  margin-top: 2.5rem;
  padding-top: 2rem;
  border-top: 1px solid rgba(246, 241, 232, 0.22);
}

.founder h3 { margin-bottom: 0.55rem; }

.founder__line {
  max-width: 11em;
  margin: 0.4rem 0 0;
  font-family: var(--serif);
  font-size: clamp(2rem, 6vw, 2.6rem);
  font-weight: 500;
  line-height: 0.96;
  letter-spacing: 0.02em;
  text-transform: uppercase;
  color: var(--ocre);
}

.founder__line span { display: block; }

.close__media .frame { aspect-ratio: 4 / 5; }

.coordonnees {
  margin: 1.35rem 0 0;
}

.coordonnees a {
  color: var(--on-dark);
  font-family: var(--sans);
  font-size: clamp(1.45rem, 2.4vw, 1.85rem);
  font-weight: 500;
  font-variant-numeric: slashed-zero;
  font-feature-settings: "zero";
  letter-spacing: 0.01em;
  line-height: 1.2;
  text-decoration: underline;
  text-underline-offset: 0.16em;
}

.site-footer {
  padding: 1.15rem 0 1.35rem;
  background: var(--anthracite);
  color: var(--on-dark-soft);
}

.site-footer p {
  margin: 0.15rem 0;
  font-size: 0.95rem;
}

.site-footer p:first-child {
  margin-bottom: 0.25rem;
  color: var(--on-dark);
  font-family: var(--serif);
  font-size: 1.25rem;
  letter-spacing: 0.06em;
}

.site-footer p:nth-child(n + 2) {
  font-size: var(--label);
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.motion [data-reveal] {
  opacity: 0;
  transform: translateY(0.75rem);
  transition: opacity 0.7s var(--ease), transform 0.7s var(--ease);
}

.motion [data-reveal].is-visible {
  opacity: 1;
  transform: none;
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .motion [data-reveal] {
    opacity: 1;
    transform: none;
    transition: none;
  }
}

@media (min-width: 760px) {
  .cta-row { flex-direction: row; flex-wrap: wrap; }
  .btn { width: auto; }
  .figures__photos {
    grid-template-columns: 1.2fr 0.8fr;
    height: 24rem;
  }

  .figures__photos .frame {
    aspect-ratio: auto;
    height: 100%;
  }
  .figures__stats { grid-template-columns: repeat(3, 1fr); gap: 1.5rem; }
  .stat__figure { font-size: clamp(4.5rem, 7vw, 6.75rem); }

  .terrain {
    grid-template-columns: 1.25fr 0.9fr 0.85fr;
    grid-template-areas:
      "nights nights trails"
      "vtt runners runners";
    gap: 3rem 2rem;
    align-items: end;
  }

  .terrain__stat--lead { grid-area: nights; }
  .terrain__stat--trails { grid-area: trails; }
  .terrain__stat--vtt { grid-area: vtt; }
  .terrain__stat--event { grid-area: runners; }

  .terrain__figure { font-size: clamp(3.4rem, 4.2vw, 4.6rem); }
  .terrain__stat--lead .terrain__figure { font-size: clamp(5rem, 7vw, 7.25rem); }

  .haag {
    grid-template-columns: 1.42fr 0.78fr;
    gap: 1.5rem 2.25rem;
    align-items: start;
  }

  .haag__visual img { aspect-ratio: 16 / 9; }
  .verbs { grid-template-columns: repeat(6, 1fr); }
  .verbs li { grid-column: span 2; }
  .verbs li:nth-child(4),
  .verbs li:nth-child(5) { grid-column: span 3; }
  .captions { grid-template-columns: repeat(4, 1fr); }
  .split { grid-template-columns: 1fr 1fr; gap: 3rem; }
}

@media (max-width: 759px) {
  .terrain { gap: 0; }
  .terrain__stat {
    min-height: 46vh;
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding-block: 1.75rem;
  }
  .terrain__figure { font-size: clamp(3.6rem, 16vw, 4.75rem); }
  .terrain__stat--lead .terrain__figure { font-size: clamp(4.6rem, 18vw, 6rem); }
}

@media (max-width: 979px) {
  .hero__content { padding-top: 9.5rem; }
  .hero h1 { margin-bottom: 0.7rem; }
  .hero__lead { margin-bottom: 0.7rem; }
  .hero__closing { margin-top: 0.9rem; }
}

@media (min-width: 980px) {
  .site-header__bar {
    grid-template-columns: auto 1fr auto;
    grid-template-areas: "logo nav cta";
    padding-block: 0.75rem;
  }

  .nav-toggle { display: none; }

  .site-nav,
  .site-nav.is-open { display: block; }

  .site-nav ul {
    display: flex;
    justify-content: flex-end;
    gap: 1.4rem;
    margin: 0;
    padding: 0;
    border: 0;
  }

  .site-nav a { padding: 0.35rem 0; }

  .header-cta { width: auto; white-space: nowrap; }

  main section { scroll-margin-top: 5.25rem; }

  .hero__content { padding-top: 18vh; }

  h1 { font-size: clamp(2.7rem, 3.6vw, 3.7rem); }

  .stage {
    grid-template-columns: 1.35fr 0.7fr;
    gap: 2rem;
    align-items: end;
  }

  .spaces {
    grid-template-columns: 1.15fr 0.85fr 1fr;
    grid-template-areas:
      "hall hall atelier"
      "laundry recover recover"
      "table table table"
      "ravito ravito room"
      "salon salon dorm";
    gap: 1.5rem 1.15rem;
    align-items: start;
  }

  .space--hall { grid-area: hall; }
  .space--atelier { grid-area: atelier; }
  .space--laundry { grid-area: laundry; }
  .space--recover { grid-area: recover; }
  .space--table { grid-area: table; }
  .space--ravito { grid-area: ravito; }
  .space--room { grid-area: room; }
  .space--salon { grid-area: salon; }
  .space--dorm { grid-area: dorm; }

  .space--hall .frame,
  .space--recover .frame,
  .space--ravito .frame { aspect-ratio: 16 / 10; }
  .space--table .frame { aspect-ratio: 21 / 8; }
  .space--salon .frame { aspect-ratio: 16 / 8; }
  .basecamp__frame { aspect-ratio: 21 / 9; }

  .journey {
    grid-template-columns: 1.3fr 1fr;
    gap: 1.15rem 1.15rem;
    align-items: stretch;
  }

  .moment--arrive { grid-column: 1; }
  .moment--prep { grid-column: 2; }
  .moment--go,
  .feast,
  .moment--rest { grid-column: 1 / -1; }
  .feast { grid-template-columns: 1fr; }

  .moment--arrive .frame,
  .moment--prep .frame,
  .moment--care .frame,
  .moment--recover .frame { aspect-ratio: 4 / 3; }
  .moment--go .frame { aspect-ratio: 21 / 9; }
  .moment--rest .frame { aspect-ratio: 21 / 8; }
  .feast .frame { aspect-ratio: 21 / 9; }
  .moment--share .frame { aspect-ratio: 21 / 8; }

  .functions { grid-template-columns: repeat(4, 1fr); gap: 1.5rem; }

  .implant {
    grid-template-columns: 1.05fr 0.95fr;
    gap: 1.25rem 3rem;
    align-items: stretch;
  }

  .frame--tall {
    aspect-ratio: auto;
    min-height: 100%;
  }

  .implant__second { grid-column: 1 / -1; }

  .frame--panorama { aspect-ratio: 21 / 8; }

  .eco {
    grid-template-columns: 1.45fr 0.7fr;
    align-items: stretch;
  }

  .eco__main { aspect-ratio: auto; min-height: 34rem; }
  .eco__side { grid-template-rows: 1fr 1fr; }
  .eco__side .placeholder { min-height: 0; height: 100%; }

  .close {
    grid-template-columns: 0.92fr 1.08fr;
    gap: 3rem;
    align-items: stretch;
  }

  .founder {
    grid-template-columns: 1.35fr 0.7fr;
    align-items: start;
    gap: 2rem 3.5rem;
  }

  .founder__line {
    margin: 0;
    font-size: clamp(2.15rem, 2.6vw, 2.85rem);
  }

  .close__media .frame {
    aspect-ratio: auto;
    height: 100%;
    min-height: 36rem;
  }
}
