@font-face {
  font-family: "Plus Jakarta Sans";
  font-style: normal;
  font-weight: 500 800;
  font-display: swap;
  src: url("/assets/fonts/plus-jakarta-latin-ext.woff2") format("woff2");
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
  font-family: "Plus Jakarta Sans";
  font-style: normal;
  font-weight: 500 800;
  font-display: swap;
  src: url("/assets/fonts/plus-jakarta-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: "Noto Sans Arabic";
  font-style: normal;
  font-weight: 500 800;
  font-display: swap;
  src: url("/assets/fonts/noto-sans-arabic.woff2") format("woff2");
  unicode-range: U+0600-06FF, U+0750-077F, U+0870-088E, U+0890-0891, U+0897-08E1, U+08E3-08FF, U+200C-200D, U+204F, U+2E41, U+FB50-FDFF, U+FE70-FEFC, U+1EE00-1EEFF;
}

@font-face {
  font-family: "Noto Sans Arabic";
  font-style: normal;
  font-weight: 500 800;
  font-display: swap;
  src: url("/assets/fonts/noto-sans-arabic-latin-ext.woff2") format("woff2");
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
  font-family: "Noto Sans Arabic";
  font-style: normal;
  font-weight: 500 800;
  font-display: swap;
  src: url("/assets/fonts/noto-sans-arabic-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: "Great Vibes";
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("/assets/fonts/great-vibes-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 {
  --cream: #f3ead9;
  --muted: #b7ad9c;
  --dark: #171412;
  --brown: #4a2418;
  --gray: #665f56;
  --dash: rgba(243, 234, 217, 0.68);
  --header-ink: #f3ead9;
  --outro-title-ink: #f3ead9;
  --outro-secondary-ink: rgba(243, 234, 217, 0.74);
  --outro-copy-ink: rgba(243, 234, 217, 0.64);
  --theme-text-shadow: 0 0 0 rgba(20, 15, 12, 0);
  --theme-logo-filter: brightness(1) drop-shadow(0 0 0 rgba(20, 15, 12, 0));
  --mobile-header-scrim: rgba(24, 22, 19, 0.92);
  --scroll-track: rgba(243, 234, 217, 0.15);
  --scroll-thumb: rgba(243, 234, 217, 0.8);
  --scroll-glow: rgba(243, 234, 217, 0.14);
}

* {
  box-sizing: border-box;
}

html,
body {
  margin: 0;
  min-height: 100vh;
  background: var(--dark);
  scrollbar-width: none;
}

html::-webkit-scrollbar,
body::-webkit-scrollbar {
  display: none;
  width: 0;
  height: 0;
}

body {
  overflow: hidden;
  color: var(--header-ink);
  font-family: "Plus Jakarta Sans", ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

html[dir="rtl"] body {
  direction: ltr;
}

.sr-only {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}

:where(a, button, input, select, textarea, [tabindex]):focus-visible {
  outline: 2px solid #f3ead9 !important;
  outline-offset: 3px !important;
  box-shadow: 0 0 0 5px rgba(33, 27, 23, 0.92) !important;
}

body.is-native-scroll {
  overflow-x: hidden;
  overflow-y: auto;
  overscroll-behavior-y: none;
}

body.is-nav-transitioning {
  overflow: hidden;
}

body.is-nav-transitioning .site-cursor {
  opacity: 0 !important;
}

.nav-transition {
  --nav-transition-bg: rgba(18, 16, 14, 0.36);
  position: fixed;
  inset: 0;
  z-index: 900;
  background: var(--nav-transition-bg);
  -webkit-backdrop-filter: blur(0) saturate(1);
  backdrop-filter: blur(0) saturate(1);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transform: translateZ(0);
  will-change: opacity, backdrop-filter;
  transition:
    opacity 400ms cubic-bezier(0.16, 1, 0.3, 1),
    -webkit-backdrop-filter 500ms cubic-bezier(0.16, 1, 0.3, 1),
    backdrop-filter 500ms cubic-bezier(0.16, 1, 0.3, 1),
    visibility 0s linear 700ms;
}

.nav-transition[data-theme="light"] {
  --nav-transition-bg: rgba(235, 229, 219, 0.38);
}

.nav-transition::before,
.nav-transition__line {
  display: none;
}

body.is-nav-transitioning .nav-transition {
  visibility: visible;
  pointer-events: auto;
  transition-delay: 0s;
}

body.is-nav-transition-covering .nav-transition {
  opacity: 1;
  -webkit-backdrop-filter: blur(28px) saturate(0.78);
  backdrop-filter: blur(28px) saturate(0.78);
}

body.is-nav-transition-revealing .nav-transition {
  opacity: 0;
  -webkit-backdrop-filter: blur(2px) saturate(0.98);
  backdrop-filter: blur(2px) saturate(0.98);
  transition:
    opacity 620ms cubic-bezier(0.16, 1, 0.3, 1),
    -webkit-backdrop-filter 620ms cubic-bezier(0.16, 1, 0.3, 1),
    backdrop-filter 620ms cubic-bezier(0.16, 1, 0.3, 1),
    visibility 0s linear 620ms;
}

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

.stage {
  position: relative;
  width: 100vw;
  height: 100vh;
  overflow: hidden;
  background:
    linear-gradient(90deg, rgba(24, 22, 19, 0) 0%, rgba(24, 22, 19, 0.22) 31%, rgba(24, 22, 19, 0.74) 56%, #181613 82%, #181613 100%),
    linear-gradient(180deg, #231b15 0%, #241c17 20%, #2b2018 46%, #3e2a1a 74%, #58371f 100%);
}

.stage::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  background:
    radial-gradient(circle at 50% 54%, rgba(243, 234, 217, 0.035), transparent 29%),
    linear-gradient(180deg, #171412 0%, #151210 52%, #1c1511 100%);
  opacity: var(--gallery-bg-progress, 0);
  will-change: opacity;
}

.stage.is-intro-running {
  cursor: progress;
}

.stage.is-intro-ready {
  cursor: default;
}

.intro-overlay {
  position: absolute;
  inset: 0;
  z-index: 40;
  display: grid;
  place-items: center;
  overflow: hidden;
  color: var(--cream);
  background:
    radial-gradient(circle at 50% 42%, rgba(243, 234, 217, 0.13), transparent 24%),
    linear-gradient(120deg, #110f0d 0%, #19130f 36%, #2d1d14 70%, #151311 100%);
  pointer-events: auto;
  clip-path: inset(0);
  transform: scale(1);
  will-change: clip-path, opacity, transform;
  transition:
    clip-path 980ms cubic-bezier(0.76, 0, 0.24, 1),
    opacity 820ms cubic-bezier(0.22, 1, 0.36, 1),
    transform 980ms cubic-bezier(0.22, 1, 0.36, 1),
    visibility 0s linear 980ms;
}

.intro-overlay::before,
.intro-overlay::after {
  content: "";
  position: absolute;
  pointer-events: none;
}

.intro-overlay::before {
  inset: -18%;
  background:
    linear-gradient(90deg, transparent 0%, rgba(243, 234, 217, 0.055) 48%, transparent 57%),
    radial-gradient(circle at 18% 82%, rgba(88, 55, 31, 0.54), transparent 26%),
    radial-gradient(circle at 76% 18%, rgba(243, 234, 217, 0.08), transparent 22%);
  filter: blur(18px);
  opacity: 0.78;
  transform: translate3d(-4%, 0, 0) scale(1.03);
  animation: introAtmosphere 2400ms cubic-bezier(0.22, 1, 0.36, 1) forwards;
}

.intro-overlay::after {
  inset: 0;
  background:
    linear-gradient(90deg, rgba(243, 234, 217, 0) 0%, rgba(243, 234, 217, 0.16) 48%, rgba(243, 234, 217, 0) 100%);
  opacity: 0;
  transform: translate3d(-105%, 0, 0) skewX(-12deg);
  animation: introSweep 1700ms 320ms cubic-bezier(0.76, 0, 0.24, 1) forwards;
}

.stage.is-intro-complete .intro-overlay {
  opacity: 0;
  clip-path: inset(50% 0 50% 0);
  transform: scale(1.012);
  visibility: hidden;
  pointer-events: none;
}

.intro-shell {
  position: relative;
  z-index: 1;
  width: min(66vw, 720px);
  display: grid;
  justify-items: center;
  gap: clamp(1.35rem, 2.8vh, 2.1rem);
  text-align: center;
  transform: translate3d(0, 10px, 0);
  opacity: 0;
  animation: introShellIn 760ms 140ms cubic-bezier(0.22, 1, 0.36, 1) forwards;
}

.stage.is-intro-leaving .intro-shell {
  animation: introShellOut 520ms cubic-bezier(0.76, 0, 0.24, 1) forwards;
}

.intro-brand {
  display: flex;
  align-items: center;
  gap: clamp(0.95rem, 1.3vw, 1.35rem);
  color: var(--cream);
}

.intro-brand__mark {
  width: auto;
  height: clamp(60px, 4.7vw, 86px);
  filter:
    drop-shadow(0 0 24px rgba(243, 234, 217, 0.16))
    drop-shadow(0 20px 50px rgba(0, 0, 0, 0.42));
  animation: introMarkBreath 1380ms 120ms cubic-bezier(0.22, 1, 0.36, 1) both;
}

.intro-brand__type {
  display: grid;
  width: clamp(9.2rem, 11vw, 12.8rem);
  gap: clamp(0.35rem, 0.42vw, 0.52rem);
  overflow: hidden;
  text-align: left;
}

.intro-brand__name,
.intro-brand__place {
  opacity: 0;
  filter: blur(7px);
  transform: translate3d(-18px, 0, 0);
  animation: introTypeReveal 760ms cubic-bezier(0.22, 1, 0.36, 1) forwards;
}

.intro-brand__name {
  font-size: clamp(1.65rem, 2.2vw, 2.75rem);
  line-height: 0.84;
  font-weight: 800;
  animation-delay: 300ms;
}

.intro-brand__place {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  box-sizing: border-box;
  padding-right: 20%;
  padding-left: 0;
  color: rgba(243, 234, 217, 0.72);
  font-size: calc(clamp(0.56rem, 0.68vw, 0.82rem) - 1px);
  line-height: 1;
  font-weight: 500;
  animation-delay: 420ms;
}

.intro-progress {
  display: grid;
  width: min(31vw, 350px);
  gap: 0.65rem;
}

.intro-line {
  position: relative;
  width: 100%;
  height: 1px;
  overflow: hidden;
  background: rgba(243, 234, 217, 0.16);
}

.intro-line::before {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(243, 234, 217, 0.82);
  transform-origin: left;
  transform: scaleX(0);
  animation: introLine 1450ms 430ms cubic-bezier(0.65, 0, 0.35, 1) forwards;
}

.intro-line::after {
  content: "";
  position: absolute;
  top: -4px;
  bottom: -4px;
  left: 0;
  width: 18%;
  background: linear-gradient(90deg, transparent, rgba(255, 250, 240, 0.92), transparent);
  filter: blur(2px);
  opacity: 0;
  transform: translate3d(-120%, 0, 0);
  animation: introLineGlow 720ms 1450ms cubic-bezier(0.76, 0, 0.24, 1) forwards;
}

.intro-progress__meta {
  display: flex;
  justify-content: space-between;
  color: rgba(243, 234, 217, 0.66);
  font-size: clamp(0.4rem, 0.44vw, 0.5rem);
  line-height: 1;
  font-weight: 650;
  text-transform: uppercase;
  opacity: 0;
  transform: translate3d(0, 6px, 0);
  animation: introMetaIn 520ms 620ms ease forwards;
}

.intro-cta {
  display: inline-flex;
  align-items: center;
  gap: 0.82rem;
  min-height: 2.85rem;
  padding: 0;
  border: 0;
  color: rgba(243, 234, 217, 0.88);
  background: transparent;
  font: inherit;
  font-size: clamp(0.63rem, 0.66vw, 0.78rem);
  line-height: 1;
  font-weight: 650;
  text-transform: uppercase;
  cursor: pointer;
  opacity: 0;
  visibility: hidden;
  filter: blur(7px);
  transform: translate3d(0, 12px, 0);
  pointer-events: none;
  transition:
    color 320ms ease,
    opacity 620ms cubic-bezier(0.22, 1, 0.36, 1),
    filter 620ms cubic-bezier(0.22, 1, 0.36, 1),
    transform 620ms cubic-bezier(0.22, 1, 0.36, 1),
    visibility 0s linear 620ms;
}

.stage.is-intro-ready .intro-cta {
  opacity: 1;
  visibility: visible;
  filter: blur(0);
  transform: none;
  pointer-events: auto;
  transition-delay: 120ms;
}

.stage.is-intro-leaving .intro-cta {
  opacity: 0;
  filter: blur(5px);
  transform: translate3d(0, -8px, 0);
  pointer-events: none;
  transition-delay: 0ms;
}

.intro-cta__label {
  position: relative;
  padding-bottom: 0.28rem;
}

.intro-cta__label::after {
  content: "";
  position: absolute;
  right: 0;
  bottom: 0;
  left: 0;
  height: 1px;
  background: currentColor;
  opacity: 0.4;
  transform: scaleX(0.28);
  transform-origin: left;
  transition: opacity 320ms ease, transform 480ms cubic-bezier(0.22, 1, 0.36, 1);
}

.intro-cta__arrow {
  display: grid;
  width: 2.25rem;
  aspect-ratio: 1;
  place-items: center;
  border: 1px solid rgba(243, 234, 217, 0.28);
  border-radius: 50%;
  color: var(--cream);
  font-size: 1rem;
  font-weight: 400;
  transition:
    border-color 320ms ease,
    color 320ms ease,
    transform 480ms cubic-bezier(0.22, 1, 0.36, 1),
    background 320ms ease;
}

.intro-cta:hover,
.intro-cta:focus-visible {
  color: var(--cream);
  outline: none;
}

.intro-cta:hover .intro-cta__label::after,
.intro-cta:focus-visible .intro-cta__label::after {
  opacity: 0.86;
  transform: scaleX(1);
}

.intro-cta:hover .intro-cta__arrow,
.intro-cta:focus-visible .intro-cta__arrow {
  border-color: rgba(243, 234, 217, 0.72);
  background: rgba(243, 234, 217, 0.08);
  transform: translate3d(3px, 0, 0);
}

.intro-cta:disabled {
  cursor: default;
}

.intro-partners {
  position: absolute;
  bottom: clamp(1.8rem, 4.2vh, 3.4rem);
  left: 50%;
  z-index: 2;
  display: flex;
  align-items: center;
  gap: clamp(1rem, 1.45vw, 1.45rem);
  opacity: 0;
  filter: blur(7px);
  transform: translate3d(-50%, 12px, 0);
  animation: introPartnersIn 720ms 720ms cubic-bezier(0.22, 1, 0.36, 1) forwards;
}

.stage.is-intro-leaving .intro-partners {
  animation: introPartnersOut 380ms cubic-bezier(0.76, 0, 0.24, 1) forwards;
}

.intro-partners__logo {
  display: block;
  width: auto;
  height: auto;
  opacity: 0.72;
  filter: drop-shadow(0 12px 28px rgba(0, 0, 0, 0.28));
}

.intro-partners__logo--oner {
  width: clamp(5rem, 6vw, 7rem);
}

.intro-partners__logo--paris {
  width: clamp(6rem, 7.2vw, 8.4rem);
}

.intro-partners__divider {
  width: 1px;
  height: clamp(0.95rem, 1.25vw, 1.25rem);
  background: rgba(243, 234, 217, 0.22);
}

@keyframes introShellIn {
  to {
    opacity: 1;
    transform: translate3d(0, 0, 0);
  }
}

@keyframes introShellOut {
  to {
    opacity: 0;
    transform: translate3d(0, -18px, 0) scale(0.985);
  }
}

@keyframes introMarkBreath {
  0% {
    opacity: 0;
    filter: blur(10px) drop-shadow(0 0 0 rgba(243, 234, 217, 0));
    transform: translate3d(-12px, 0, 0) scale(0.92);
  }

  100% {
    opacity: 1;
    filter:
      blur(0)
      drop-shadow(0 0 24px rgba(243, 234, 217, 0.16))
      drop-shadow(0 20px 50px rgba(0, 0, 0, 0.42));
    transform: scale(1);
  }
}

@keyframes introTypeReveal {
  to {
    opacity: 1;
    filter: blur(0);
    transform: none;
  }
}

@keyframes introLine {
  to {
    transform: scaleX(1);
  }
}

@keyframes introLineGlow {
  20% {
    opacity: 0.85;
  }

  100% {
    opacity: 0;
    transform: translate3d(680%, 0, 0);
  }
}

@keyframes introMetaIn {
  to {
    opacity: 1;
    transform: none;
  }
}

@keyframes introPartnersIn {
  to {
    opacity: 1;
    filter: blur(0);
    transform: translate3d(-50%, 0, 0);
  }
}

@keyframes introPartnersOut {
  from {
    opacity: 1;
    filter: blur(0);
    transform: translate3d(-50%, 0, 0);
  }

  to {
    opacity: 0;
    filter: blur(5px);
    transform: translate3d(-50%, 10px, 0);
  }
}

@keyframes introSweep {
  0% {
    opacity: 0;
    transform: translate3d(-105%, 0, 0) skewX(-12deg);
  }

  28%,
  58% {
    opacity: 0.55;
  }

  100% {
    opacity: 0;
    transform: translate3d(105%, 0, 0) skewX(-12deg);
  }
}

@keyframes introAtmosphere {
  to {
    opacity: 0.44;
    transform: translate3d(4%, -2%, 0) scale(1.08);
  }
}

.brand-lockup {
  position: fixed;
  top: clamp(24px, 3.2vh, 44px);
  left: calc(clamp(26px, 2.55vw, 56px) + 24px);
  z-index: 36;
  display: flex;
  align-items: center;
  gap: clamp(0.62rem, 0.72vw, 0.9rem);
  color: var(--header-ink);
  text-shadow: var(--theme-text-shadow);
}

.logo {
  width: auto;
  height: clamp(30px, 1.9vw, 38px);
  display: block;
  flex: none;
  filter: var(--theme-logo-filter);
}

.brand-lockup__type {
  display: grid;
  width: clamp(4.65rem, 5.15vw, 6.25rem);
  gap: clamp(0.17rem, 0.22vw, 0.26rem);
  transform: translateY(-1px);
}

.brand-lockup__name {
  font-size: clamp(0.78rem, 0.92vw, 1.12rem);
  line-height: 0.86;
  font-weight: 800;
  letter-spacing: 0;
}

.brand-lockup__place {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  box-sizing: border-box;
  padding-right: 20%;
  padding-left: 0;
  font-size: calc(clamp(0.38rem, 0.46vw, 0.56rem) - 1px);
  line-height: 1;
  font-weight: 500;
  letter-spacing: 0;
}

.brand-lockup__contact {
  display: grid;
  gap: 0.28rem;
  margin-left: clamp(0.28rem, 0.5vw, 0.7rem);
  padding-left: clamp(0.8rem, 1vw, 1.2rem);
  border-left: 1px solid color-mix(in srgb, currentColor 32%, transparent);
  white-space: nowrap;
}

.brand-lockup__contact-label {
  color: color-mix(in srgb, var(--header-ink) 82%, transparent);
  font-size: clamp(0.42rem, 0.44vw, 0.52rem);
  line-height: 1;
  font-weight: 680;
  letter-spacing: 0.11em;
  text-transform: uppercase;
}

.brand-lockup__phone {
  position: relative;
  color: currentColor;
  font-size: clamp(0.58rem, 0.62vw, 0.72rem);
  line-height: 1;
  font-weight: 700;
  letter-spacing: 0.01em;
  opacity: 0.88;
  transition: opacity 240ms ease;
}

.brand-lockup__phone:hover,
.brand-lockup__phone:focus-visible {
  opacity: 1;
  outline: none;
}

.brand-lockup__socials {
  display: flex;
  align-items: center;
  margin-left: clamp(0.04rem, 0.18vw, 0.24rem);
  padding-left: clamp(0.8rem, 1vw, 1.2rem);
  border-left: 1px solid color-mix(in srgb, currentColor 32%, transparent);
  white-space: nowrap;
}

.brand-lockup__social-links {
  display: flex;
  align-items: center;
  gap: clamp(0.12rem, 0.2vw, 0.24rem);
}

.brand-lockup__social-link {
  position: relative;
  width: clamp(1.65rem, 1.7vw, 1.95rem);
  height: clamp(1.65rem, 1.7vw, 1.95rem);
  display: inline-grid;
  place-items: center;
  border-radius: 50%;
  color: currentColor;
  opacity: 0.72;
  transition:
    opacity 220ms ease,
    transform 360ms cubic-bezier(0.22, 1, 0.36, 1);
}

.brand-lockup__social-link::before {
  content: "";
  position: absolute;
  inset: 0;
  border: 1px solid currentColor;
  border-radius: inherit;
  opacity: 0;
  transform: scale(0.78);
  transition:
    opacity 220ms ease,
    transform 360ms cubic-bezier(0.22, 1, 0.36, 1);
}

.brand-lockup__social-link svg {
  width: clamp(0.92rem, 0.94vw, 1.08rem);
  height: clamp(0.92rem, 0.94vw, 1.08rem);
  display: block;
  overflow: visible;
}

.brand-lockup__social-link:hover,
.brand-lockup__social-link:focus-visible {
  opacity: 1;
  transform: translate3d(0, -1px, 0);
}

.brand-lockup__social-link:hover::before,
.brand-lockup__social-link:focus-visible::before {
  opacity: 0.28;
  transform: scale(1);
}

.brand-lockup__social-link:focus-visible {
  border-radius: 50%;
  outline: 1px solid color-mix(in srgb, currentColor 56%, transparent);
  outline-offset: 2px;
}

.header-tools {
  position: fixed;
  bottom: clamp(1.2rem, 3.1vh, 2.15rem);
  left: calc(clamp(26px, 2.55vw, 56px) + 24px);
  z-index: 38;
  display: flex;
  align-items: center;
  gap: 0.5rem;
  color: var(--header-ink);
  text-shadow: var(--theme-text-shadow);
  transition:
    opacity 420ms ease,
    visibility 0s linear 0s,
    transform 520ms cubic-bezier(0.22, 1, 0.36, 1),
    bottom 420ms cubic-bezier(0.22, 1, 0.36, 1);
}

body.is-contact-tools-hidden .header-tools {
  opacity: 0;
  visibility: hidden;
  transform: translate3d(0, 14px, 0);
  pointer-events: none;
  transition-delay: 0s, 420ms, 0s, 0s;
}

.language-picker {
  position: relative;
}

.language-picker__trigger,
.sound-toggle {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 2.15rem;
  border: 1px solid color-mix(in srgb, currentColor 24%, transparent);
  border-radius: 4px;
  color: currentColor;
  background: color-mix(in srgb, var(--dark) 10%, transparent);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  font: inherit;
  transition:
    border-color 240ms ease,
    background-color 240ms ease,
    opacity 240ms ease,
    transform 360ms cubic-bezier(0.22, 1, 0.36, 1);
}

.language-picker__trigger {
  gap: 0.48rem;
  min-width: 7.4rem;
  padding: 0 0.72rem;
}

.language-picker__trigger:hover,
.language-picker__trigger:focus-visible,
.language-picker.is-open .language-picker__trigger,
.sound-toggle:hover,
.sound-toggle:focus-visible {
  border-color: color-mix(in srgb, currentColor 56%, transparent);
  background: color-mix(in srgb, var(--dark) 18%, transparent);
  outline: none;
}

.header-tool-icon {
  width: 0.86rem;
  height: 0.86rem;
  flex: none;
}

.language-picker__value {
  min-width: 4.4rem;
  font-size: clamp(0.48rem, 0.52vw, 0.6rem);
  line-height: 1;
  font-weight: 720;
  letter-spacing: 0.08em;
  text-align: left;
  text-transform: uppercase;
}

.language-picker__chevron {
  width: 0.35rem;
  height: 0.35rem;
  border-right: 1px solid currentColor;
  border-bottom: 1px solid currentColor;
  opacity: 0.68;
  transform: translateY(-2px) rotate(45deg);
  transition: transform 320ms cubic-bezier(0.22, 1, 0.36, 1);
}

.language-picker.is-open .language-picker__chevron {
  transform: translateY(2px) rotate(225deg);
}

.language-picker__menu {
  position: absolute;
  bottom: calc(100% + 0.52rem);
  left: 0;
  display: grid;
  width: 100%;
  padding: 0.35rem;
  border: 1px solid rgba(243, 234, 217, 0.16);
  border-radius: 4px;
  color: #f3ead9;
  background: rgba(23, 20, 18, 0.9);
  box-shadow: 0 18px 48px rgba(12, 9, 7, 0.24);
  opacity: 0;
  visibility: hidden;
  filter: blur(4px);
  transform: translate3d(0, 8px, 0);
  transform-origin: bottom center;
  pointer-events: none;
  transition:
    opacity 220ms ease,
    visibility 0s linear 280ms,
    filter 260ms ease,
    transform 340ms cubic-bezier(0.22, 1, 0.36, 1);
}

.language-picker.is-open .language-picker__menu {
  opacity: 1;
  visibility: visible;
  filter: blur(0);
  transform: none;
  pointer-events: auto;
  transition-delay: 0s;
}

.language-picker__option {
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: 2rem;
  padding: 0 0.52rem;
  border: 0;
  border-radius: 2px;
  color: rgba(243, 234, 217, 0.62);
  background: transparent;
  font: inherit;
  font-size: 0.52rem;
  font-weight: 680;
  letter-spacing: 0.08em;
  text-align: left;
  text-transform: uppercase;
  transition: color 200ms ease, background-color 200ms ease;
}

body[data-language="ar"] .language-picker__option[data-language="ar"] {
  direction: rtl;
  font-family: "Noto Sans Arabic", ui-sans-serif, system-ui, sans-serif;
  letter-spacing: 0;
  text-transform: none;
}

.language-picker__option:hover,
.language-picker__option:focus-visible,
.language-picker__option[aria-selected="true"] {
  color: #f3ead9;
  background: rgba(243, 234, 217, 0.08);
  outline: none;
}

.language-picker__option[aria-selected="true"]::after {
  content: "";
  width: 0.28rem;
  height: 0.28rem;
  border-radius: 50%;
  background: currentColor;
}

.sound-toggle {
  position: relative;
  width: 2.15rem;
  padding: 0;
}

.sound-toggle__slash {
  position: absolute;
  width: 1.05rem;
  height: 1px;
  background: currentColor;
  opacity: 0.8;
  transform: rotate(-45deg) scaleX(1);
  transition: opacity 220ms ease, transform 300ms cubic-bezier(0.22, 1, 0.36, 1);
}

.sound-toggle[aria-pressed="true"] .sound-toggle__slash {
  opacity: 0;
  transform: rotate(-45deg) scaleX(0.35);
}

.nav {
  position: fixed;
  top: clamp(24px, 3.35vh, 48px);
  right: clamp(42px, 4vw, 82px);
  display: flex;
  align-items: center;
  gap: clamp(0.74rem, 1.05vw, 1.48rem);
  font-size: clamp(0.62rem, 0.64vw, 0.82rem);
  font-weight: 700;
  color: var(--header-ink);
  text-shadow: var(--theme-text-shadow);
  text-transform: uppercase;
  white-space: nowrap;
  z-index: 36;
}

.nav a {
  position: relative;
  transition: opacity 220ms ease;
}

.nav a::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  top: calc(100% + 0.42rem);
  border-bottom: 1px dashed currentColor;
  opacity: 0;
  transform: scaleX(0.35);
  transform-origin: left;
  transition: opacity 260ms ease, transform 360ms cubic-bezier(0.22, 1, 0.36, 1);
}

.nav a[aria-current="page"]::after {
  opacity: 1;
  transform: scaleX(1);
}

body[data-language="ar"] [data-i18n]:not([data-i18n-dir="ltr"]),
body[data-language="ar"] [data-i18n-html]:not([data-i18n-dir="ltr"]),
body[data-language="ar"] .language-picker__value,
body[data-language="ar"] .site-cursor__label,
body[data-language="ar"] .slide-caption__text {
  font-family: "Noto Sans Arabic", ui-sans-serif, system-ui, sans-serif;
  letter-spacing: 0;
  text-transform: none;
}

body[data-language="ar"] [data-i18n],
body[data-language="ar"] [data-i18n-html],
body[data-language="ar"] .site-cursor__label {
  unicode-bidi: plaintext;
}

body[data-language="ar"] .brand-lockup__contact-label {
  font-size: clamp(0.48rem, 0.5vw, 0.58rem);
  line-height: 1.1;
}

body[data-language="ar"] .nav {
  direction: rtl;
  font-size: clamp(0.66rem, 0.69vw, 0.86rem);
}

body[data-language="ar"] .nav a::after {
  transform-origin: right center;
}

body[data-language="ar"] .nav a > span,
body[data-language="ar"] .scroll-cue__label {
  line-height: 1.3;
}

body[data-language="ar"] .copy {
  text-align: right;
}

body[data-language="ar"] .copy h1,
body[data-language="ar"] .final-partners__intro,
body[data-language="ar"] .slide-caption__text {
  direction: rtl;
}

body[data-language="ar"] .final-partners__intro strong {
  direction: ltr;
  unicode-bidi: isolate;
  font-family: "Plus Jakarta Sans", ui-sans-serif, system-ui, sans-serif;
}

body[data-language="ar"] .hero-stat__label,
body[data-language="ar"] .final-partners,
body[data-language="ar"] .final-partners__intro,
body[data-language="ar"] .slide-caption__text {
  text-align: right;
}

body[data-language="ar"] .hero-stats {
  direction: rtl;
}

body[data-language="ar"] .hero-stat {
  padding-right: 0;
  padding-left: clamp(0.9rem, 1.4vw, 1.45rem);
}

body[data-language="ar"] .hero-stat:nth-child(2),
body[data-language="ar"] .hero-stat:nth-child(4),
body[data-language="ar"] .hero-stat:nth-child(6) {
  padding-right: clamp(1rem, 1.65vw, 1.9rem);
  padding-left: 0;
}

body[data-language="ar"] .hero-stat:nth-child(2)::before,
body[data-language="ar"] .hero-stat:nth-child(4)::before,
body[data-language="ar"] .hero-stat:nth-child(6)::before {
  right: 0;
  left: auto;
}

body[data-language="ar"] .features-cta {
  direction: rtl;
}

body[data-language="ar"] .features-cta::before {
  transform-origin: right center;
}

body[data-language="ar"] .features-intro,
body[data-language="ar"] .feature-row {
  direction: rtl;
}

body[data-language="ar"] .features-intro__eyebrow,
body[data-language="ar"] .features-intro__title,
body[data-language="ar"] .features-intro__body,
body[data-language="ar"] .feature-row__eyebrow,
body[data-language="ar"] .feature-row__title,
body[data-language="ar"] .feature-row__body {
  text-align: right;
}

body[data-language="ar"] .features-intro__eyebrow {
  clip-path: inset(0 0 0 var(--intro-eyebrow-clip));
}

body[data-language="ar"] .feature-row__eyebrow {
  clip-path: inset(0 0 0 var(--row-eyebrow-clip));
}

body[data-language="ar"] .feature-row__number {
  margin-right: 0.72rem;
  margin-left: 0;
  direction: ltr;
  unicode-bidi: isolate;
}

@media (min-width: 1001px) {
  body[data-language="ar"] .feature-row__copy {
    margin-right: clamp(42px, 4vw, 72px);
    margin-left: 0;
  }
}

body[data-language="ar"] .feature-outro-kicker,
body[data-language="ar"] .feature-outro-title,
body[data-language="ar"] .feature-outro-copy,
body[data-language="ar"] .residence-card,
body[data-language="ar"] .commercial-scene__inner,
body[data-language="ar"] .commercial-detail {
  direction: rtl;
}

body[data-language="ar"] .feature-outro-mini {
  right: calc(clamp(26px, 2.55vw, 56px) + 24px - ((100vw - min(89vw, 1680px)) / 2));
  left: auto;
  direction: rtl;
  text-align: right;
  clip-path: inset(0 0 0 calc((1 - var(--outro-mini-progress, 0)) * 100%));
  transform: translate3d(calc((1 - var(--outro-mini-progress, 0)) * 12px), 0, 0);
}

body[data-language="ar"] .feature-outro-title,
body[data-language="ar"] .feature-outro-title::after,
body[data-language="ar"] .feature-outro-phrase {
  text-align: right;
}

body[data-language="ar"] .feature-outro-title {
  font-size: clamp(3.4rem, 7.2vw, 9.5rem);
}

body[data-language="en"] .feature-outro-title {
  font-size: clamp(3.8rem, 9.2vw, 12rem);
}

body[data-language="en"] .feature-outro-title,
body[data-language="en"] .feature-outro-title::after,
body[data-language="en"] .feature-outro-phrase {
  text-align: left;
}

body[data-language="ar"] .feature-outro-brand,
body[data-language="ar"] .residence-card__brand,
body[data-language="ar"] .residence-card__index,
body[data-language="ar"] .residence-card__type,
body[data-language="ar"] .residence-card__total,
body[data-language="ar"] .commercial-detail__index,
body[data-language="ar"] .commercial-detail__value {
  direction: ltr;
  unicode-bidi: isolate;
}

body[data-language="ar"] .residence-card,
body[data-language="ar"] .commercial-scene__title,
body[data-language="ar"] .commercial-scene__copy,
body[data-language="ar"] .commercial-detail__left,
body[data-language="ar"] .commercial-detail__copy,
body[data-language="ar"] .commercial-detail__features,
body[data-language="ar"] .commercial-detail__note {
  text-align: right;
}

body[data-language="ar"] .residence-card__index {
  right: auto;
  left: clamp(1.7rem, 2.5vw, 3.2rem);
}

body[data-language="ar"] .commercial-detail__label {
  direction: rtl;
  clip-path: inset(0 0 0 calc((1 - var(--commercial-label-progress)) * 100%));
  transform: translate3d(calc((1 - var(--commercial-label-progress)) * 14px), 0, 0);
}

body[data-language="ar"] .commercial-detail__metric {
  direction: rtl;
}

.copy {
  position: absolute;
  top: calc(25vh - 18px);
  left: calc(clamp(26px, 2.5vw, 56px) + 24px);
  width: min(28vw, 500px);
  z-index: 4;
  opacity: calc(1 - var(--ui-exit, 0));
  pointer-events: none;
  will-change: opacity;
}

.copy p {
  margin: 0 0 clamp(0.64rem, 1vh, 0.82rem);
  color: rgba(205, 194, 176, 0.76);
  font-size: clamp(0.66rem, 0.76vw, 0.88rem);
  line-height: 1.15;
  font-weight: 620;
  letter-spacing: 0.17em;
  text-transform: uppercase;
  white-space: nowrap;
}

.copy h1 {
  margin: 0;
  color: rgba(236, 226, 208, 0.82);
  display: flex;
  align-items: baseline;
  gap: 0.25em;
  font-size: clamp(1.32rem, 1.84vw, 2.5rem);
  line-height: 1;
  font-weight: 520;
  letter-spacing: 0.012em;
  text-transform: uppercase;
  white-space: nowrap;
  text-shadow: 0 10px 26px rgba(0, 0, 0, 0.24);
}

.copy h1 .hero-title__support {
  color: rgba(236, 226, 208, 0.78);
  font-size: 1em;
  line-height: inherit;
  font-weight: 520;
  letter-spacing: inherit;
}

.copy h1 strong {
  color: rgba(255, 255, 255, 0.98);
  font-weight: 760;
  letter-spacing: -0.018em;
}

.hero-stats {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0;
  margin-top: clamp(2rem, 4.6vh, 4rem);
  border-top: 1px solid rgb(243 234 217 / calc(var(--stat-1-progress, 0) * 0.2));
  border-bottom: 1px solid rgb(243 234 217 / calc(var(--stat-6-progress, 0) * 0.12));
}

.hero-stat {
  position: relative;
  min-height: clamp(5.35rem, 9vh, 7.8rem);
  padding: clamp(1rem, 2.05vh, 1.75rem) clamp(0.9rem, 1.4vw, 1.45rem) clamp(1.05rem, 2.2vh, 1.85rem) 0;
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  opacity: var(--stat-progress, 0);
  transform: translate3d(0, calc((1 - var(--stat-progress, 0)) * 14px), 0);
  will-change: opacity, transform;
}

.hero-stat:nth-child(2),
.hero-stat:nth-child(4),
.hero-stat:nth-child(6) {
  padding-left: clamp(1rem, 1.65vw, 1.9rem);
}

.hero-stat:nth-child(2)::before,
.hero-stat:nth-child(4)::before,
.hero-stat:nth-child(6)::before {
  content: "";
  position: absolute;
  top: 18%;
  bottom: 18%;
  left: 0;
  width: 1px;
  background: rgb(243 234 217 / calc(var(--stat-progress, 0) * 0.14));
}

.hero-stat:nth-child(1),
.hero-stat:nth-child(2),
.hero-stat:nth-child(3),
.hero-stat:nth-child(4) {
  border-bottom: 1px solid rgb(243 234 217 / calc(var(--stat-progress, 0) * 0.1));
}

.hero-stat:nth-child(1) {
  --stat-progress: var(--stat-1-progress, 0);
}

.hero-stat:nth-child(2) {
  --stat-progress: var(--stat-2-progress, 0);
}

.hero-stat:nth-child(3) {
  --stat-progress: var(--stat-3-progress, 0);
}

.hero-stat:nth-child(4) {
  --stat-progress: var(--stat-4-progress, 0);
}

.hero-stat:nth-child(5) {
  --stat-progress: var(--stat-5-progress, 0);
}

.hero-stat:nth-child(6) {
  --stat-progress: var(--stat-6-progress, 0);
}

.hero-stat__value {
  display: block;
  color: var(--cream);
  font-size: clamp(1.48rem, 2.04vw, 2.74rem);
  line-height: 0.92;
  font-weight: 700;
  letter-spacing: -0.015em;
  white-space: nowrap;
  font-feature-settings: "tnum";
}

.hero-stat__unit {
  margin-left: 0.16em;
  color: rgba(243, 234, 217, 0.76);
  font-size: 0.56em;
  font-weight: 700;
  vertical-align: 0.24em;
}

.hero-stat__label {
  display: block;
  margin-top: clamp(0.64rem, 1.05vh, 0.95rem);
  color: rgba(243, 234, 217, 0.54);
  font-size: clamp(0.46rem, 0.49vw, 0.66rem);
  line-height: 1;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  white-space: nowrap;
}

.features-cta {
  position: relative;
  width: max-content;
  max-width: 100%;
  margin-top: clamp(1.05rem, 2.1vh, 1.8rem);
  display: inline-flex;
  align-items: center;
  gap: 0.72rem;
  color: rgba(243, 234, 217, 0.86);
  font-size: clamp(0.58rem, 0.62vw, 0.78rem);
  line-height: 1;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  opacity: var(--features-cta-progress, 0);
  transform: translate3d(0, calc((1 - var(--features-cta-progress, 0)) * 10px), 0);
  pointer-events: none;
  will-change: opacity, transform;
}

.features-cta.is-active {
  pointer-events: auto;
}

.features-cta::before {
  content: "";
  width: clamp(2.35rem, 3.2vw, 4.2rem);
  border-top: 1px solid rgba(243, 234, 217, 0.34);
  transform: scaleX(var(--features-cta-progress, 0));
  transform-origin: left;
}

.features-cta::after {
  content: "↗";
  display: grid;
  place-items: center;
  width: clamp(1.65rem, 1.9vw, 2.3rem);
  height: clamp(1.65rem, 1.9vw, 2.3rem);
  border: 1px solid rgba(243, 234, 217, 0.28);
  border-radius: 999px;
  font-size: 0.82em;
  transition: border-color 180ms ease, transform 180ms ease, color 180ms ease;
}

.features-cta:hover {
  color: var(--cream);
}

.features-cta:hover::after {
  border-color: rgba(243, 234, 217, 0.68);
  transform: translate3d(2px, -2px, 0);
}

.final-partners {
  position: absolute;
  top: 51.5%;
  left: calc(34.05vw + max(32.35vw, 440px) + clamp(5.6rem, 8.2vw, 12rem));
  right: clamp(58px, 6vw, 116px);
  z-index: 4;
  margin: 0;
  padding: 0;
  color: rgba(243, 234, 217, 0.94);
  display: grid;
  place-items: center;
  text-align: left;
  opacity: var(--final-slogan-progress, 0);
  transform: translate3d(0, calc(-50% + (1 - var(--final-slogan-progress, 0)) * 8px), 0);
  pointer-events: none;
  will-change: opacity, transform;
}

.final-partners::before,
.final-partners::after {
  content: none;
}

.final-partners__intro {
  width: min(31rem, 100%);
  margin: 0;
  color: rgba(243, 234, 217, 0.58);
  font-size: clamp(0.72rem, 0.72vw, 0.92rem);
  line-height: 1.82;
  font-weight: 500;
  letter-spacing: 0.005em;
  text-wrap: balance;
  opacity: var(--final-slogan-progress, 0);
  transform: translate3d(0, calc((1 - var(--final-slogan-progress, 0)) * 8px), 0);
  will-change: opacity, transform;
}

.final-partners__intro strong {
  color: rgba(243, 234, 217, 0.82);
  font-weight: 600;
}

.final-partners__intro::before {
  content: none;
}

.growth-signature {
  position: absolute;
  top: 50%;
  z-index: 5;
  display: block;
  width: auto;
  opacity: var(--growth-signature-opacity, 0);
  pointer-events: none;
  filter: drop-shadow(0 20px 46px rgba(0, 0, 0, 0.28));
  will-change: opacity, transform;
}

.growth-signature--paris {
  left: calc((34.05vw - clamp(22px, 1.7vw, 36px)) / 2);
  height: clamp(2.105rem, 2.432vw, 3.34rem);
  transform: translate3d(-50%, -50%, 0);
}

.growth-signature--oner {
  right: calc((100vw - (34.05vw + max(32.35vw, 440px) + clamp(22px, 1.7vw, 36px))) / 2);
  height: clamp(1.74rem, 2.01vw, 2.76rem);
  transform: translate3d(50%, -50%, 0);
}

.growth-signature-cta {
  position: absolute;
  top: calc(91.55vh - 24px);
  z-index: 6;
  display: flex;
  justify-content: center;
  opacity: var(--growth-signature-cta-opacity, 0);
  filter: blur(calc((1 - var(--growth-signature-cta-opacity, 0)) * 4px));
  transform: translate3d(0, calc(-100% + (1 - var(--growth-signature-cta-opacity, 0)) * 10px), 0);
  pointer-events: none;
  will-change: opacity, filter, transform;
}

.growth-signature-cta--paris {
  left: 0;
  width: calc(34.05vw - clamp(22px, 1.7vw, 36px));
}

.growth-signature-cta--oner {
  right: 0;
  left: calc(34.05vw + max(32.35vw, 440px) + clamp(22px, 1.7vw, 36px));
}

.growth-signature-cta a {
  display: inline-flex;
  align-items: center;
  padding-bottom: 0.5rem;
  border-bottom: 1px solid rgba(243, 234, 217, 0.28);
  color: rgba(243, 234, 217, 0.64);
  font-size: clamp(0.58rem, 0.62vw, 0.72rem);
  line-height: 1;
  font-weight: 700;
  letter-spacing: 0;
  text-transform: uppercase;
  transition: color 240ms ease, border-color 240ms ease, transform 360ms cubic-bezier(0.22, 1, 0.36, 1);
}

.stage.is-growth-cta-active .growth-signature-cta {
  pointer-events: auto;
}

.growth-signature-cta a:hover,
.growth-signature-cta a:focus-visible {
  border-color: rgba(243, 234, 217, 0.74);
  color: var(--cream);
  transform: translate3d(0, -2px, 0);
}

.main-frame {
  --frame-pad-base: clamp(7px, 0.44vw, 10px);
  --frame-pad: calc(var(--frame-pad-base) * (1 - var(--fullscreen-progress, 0)));
  position: absolute;
  top: 9.25vh;
  left: 34.05vw;
  width: 32.35vw;
  height: 82.3vh;
  min-width: 440px;
  padding: var(--frame-pad);
  background: transparent;
  box-shadow: 0 34px 90px rgba(0, 0, 0, calc(0.22 * (1 - var(--fullscreen-progress, 0))));
  z-index: 3;
}

.frame-controls {
  position: absolute;
  top: calc(91.55vh - clamp(27px, 1.7vw, 36px));
  left: 0;
  z-index: 7;
  width: 100vw;
  height: clamp(27px, 1.7vw, 36px);
  pointer-events: none;
  opacity: calc((1 - var(--left-exit, 0)) * (1 - var(--ui-exit, 0)) * (1 - var(--fullscreen-progress, 0)));
  transform: translate3d(calc(var(--left-exit, 0) * -2.2vw), 0, 0);
  will-change: opacity, transform;
}

.frame-control {
  position: absolute;
  top: 0;
  width: clamp(27px, 1.7vw, 36px);
  height: clamp(27px, 1.7vw, 36px);
  padding: 0;
  display: grid;
  place-items: center;
  border: 0;
  color: rgba(243, 234, 217, 0.62);
  background: transparent;
  font: inherit;
  font-size: clamp(0.9rem, 0.92vw, 1.1rem);
  line-height: 1;
  cursor: pointer;
  opacity: 1;
  transform: translate3d(-50%, 0, 0);
  transition: color 180ms ease, opacity 220ms ease, transform 240ms cubic-bezier(0.22, 1, 0.36, 1);
}

.frame-control--prev {
  left: calc(34.05vw - (clamp(22px, 1.7vw, 36px) / 2));
}

.frame-control--next {
  left: calc(34.05vw + max(32.35vw, 440px) + (clamp(22px, 1.7vw, 36px) / 2));
}

.stage.is-carousel-interactive .frame-controls {
  pointer-events: auto;
}

.frame-control:hover {
  color: var(--cream);
}

.frame-control--prev:hover {
  transform: translate3d(calc(-50% - 3px), 0, 0);
}

.frame-control--next:hover {
  transform: translate3d(calc(-50% + 3px), 0, 0);
}

.frame-control:disabled {
  opacity: 0;
  pointer-events: none;
}

.frame-control:focus-visible {
  outline: 1px solid rgba(243, 234, 217, 0.76);
  outline-offset: 2px;
}

.fullscreen-media {
  position: absolute;
  inset: 0;
  z-index: 4;
  pointer-events: none;
  opacity: var(--final-media-progress, 0);
  overflow: hidden;
  clip-path: inset(
    calc(var(--fullscreen-clip-top, 0px) * (1 - var(--fullscreen-y-progress, 0)))
    calc(var(--fullscreen-clip-right, 0px) * (1 - var(--fullscreen-side-progress, 0)))
    calc(var(--fullscreen-clip-bottom, 0px) * (1 - var(--fullscreen-y-progress, 0)))
    calc(var(--fullscreen-clip-left, 0px) * (1 - var(--fullscreen-side-progress, 0)))
  );
  will-change: clip-path, opacity;
}

.fullscreen-media::before,
.fullscreen-media::after {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  width: var(--fullscreen-surface-w, 100px);
  height: var(--fullscreen-surface-h, 100px);
  transform: translate3d(var(--fullscreen-surface-x, 0px), var(--fullscreen-surface-y, 0px), 0) scale(var(--fullscreen-surface-scale, 1));
  transform-origin: top left;
  backface-visibility: hidden;
  will-change: transform, opacity;
}

.fullscreen-media::before {
  background: var(--final-image-day, none) center / 100% 100% no-repeat;
}

.fullscreen-media::after {
  opacity: var(--fullscreen-image-blend, 0);
  background: var(--final-image-night, none) center / 100% 100% no-repeat;
}

.brand-title {
  position: absolute;
  top: clamp(52px, 7vh, 84px);
  left: 50%;
  width: min(37.4vw, 561px);
  max-width: calc(100vw - clamp(54px, 4.75vw, 104px) * 2);
  z-index: 6;
  opacity: calc(var(--brand-title-progress, 0) * (1 - var(--gallery-logo-progress, 0)));
  transform: translate3d(-50%, calc((1 - var(--brand-title-progress, 0)) * 28px), 0);
  pointer-events: none;
  will-change: opacity, transform;
}

.postcard-stream {
  position: absolute;
  inset: 0;
  z-index: 7;
  overflow: hidden;
  pointer-events: none;
}

.postcard {
  --postcard-left: 50%;
  --postcard-width: 36vw;
  --postcard-rotate: 0deg;
  --postcard-opacity: 0;
  --postcard-y: 112vh;
  --postcard-scale: 0.96;
  --postcard-x-drift: 0px;
  position: absolute;
  top: 0;
  left: var(--postcard-left);
  width: var(--postcard-width);
  margin: 0;
  color: #f1e8d8;
  opacity: var(--postcard-opacity);
  transform: translate3d(calc(-50% + var(--postcard-x-drift)), var(--postcard-y), 0) rotate(var(--postcard-rotate)) scale(var(--postcard-scale));
  transform-origin: center;
  backface-visibility: hidden;
  will-change: transform, opacity;
}

.postcard--image {
  overflow: hidden;
  background: #181613;
  border: 1px solid rgba(241, 232, 216, 0.22);
  border-radius: 2px;
  box-shadow:
    0 38px 86px rgba(0, 0, 0, 0.36),
    0 10px 28px rgba(0, 0, 0, 0.2);
}

.postcard__image {
  display: block;
  width: 100%;
  aspect-ratio: var(--postcard-aspect, 1.55 / 1);
  object-fit: cover;
  object-position: var(--postcard-image-position, center);
  background: #69645d;
}

.postcard--text {
  min-height: clamp(180px, 25vh, 270px);
  display: flex;
  align-items: flex-end;
  padding: clamp(1.55rem, 2.35vw, 3.1rem);
  background: rgba(24, 22, 19, 0.82);
  border: 1px solid rgba(241, 232, 216, 0.2);
  border-radius: 2px;
  box-shadow: 0 32px 82px rgba(0, 0, 0, 0.32);
  -webkit-backdrop-filter: blur(18px) saturate(112%);
  backdrop-filter: blur(18px) saturate(112%);
}

.postcard__copy {
  width: 100%;
  display: flex;
  flex-direction: column;
  gap: clamp(0.78rem, 1.15vw, 1.3rem);
}

.postcard__index {
  display: flex;
  align-items: center;
  gap: 0.72rem;
  color: rgba(241, 232, 216, 0.48);
  font-size: clamp(0.58rem, 0.56vw, 0.68rem);
  line-height: 1;
  font-weight: 700;
  letter-spacing: 0.14em;
}

.postcard__index::after {
  content: "";
  width: clamp(34px, 3.3vw, 64px);
  height: 1px;
  background: rgba(241, 232, 216, 0.28);
}

.postcard__title {
  margin: 0;
  max-width: 13ch;
  color: #f1e8d8;
  font-size: clamp(1.2rem, 1.7vw, 2.3rem);
  line-height: 1.03;
  font-weight: 700;
  letter-spacing: 0;
}

.postcard__description {
  margin: 0;
  max-width: 42ch;
  color: rgba(241, 232, 216, 0.64);
  font-size: clamp(0.72rem, 0.72vw, 0.92rem);
  line-height: 1.58;
  font-weight: 500;
  letter-spacing: 0;
}

.postcard:last-child {
  box-shadow:
    0 46px 118px rgba(0, 0, 0, 0.44),
    0 14px 34px rgba(0, 0, 0, 0.22);
}

.project-features {
  position: relative;
  z-index: 12;
  overflow: clip;
  color: var(--cream);
  background:
    linear-gradient(90deg, rgba(24, 22, 19, 0) 0%, rgba(24, 22, 19, 0.22) 31%, rgba(24, 22, 19, 0.74) 56%, #181613 82%, #181613 100%),
    linear-gradient(180deg, #231b15 0%, #241c17 20%, #2b2018 46%, #3e2a1a 74%, #58371f 100%);
}

.features-shell {
  width: min(89vw, 1680px);
  margin: 0 auto;
}

.features-intro {
  --intro-eyebrow-progress: 0;
  --intro-eyebrow-clip: 100%;
  --intro-eyebrow-y: 16px;
  --intro-title-progress: 0;
  --intro-title-clip: 100%;
  --intro-title-y: 34px;
  --intro-body-progress: 0;
  --intro-body-y: 24px;
  min-height: min(82vh, 850px);
  display: grid;
  grid-template-columns: minmax(0, 1.2fr) minmax(280px, 0.58fr);
  gap: clamp(3rem, 8vw, 10rem);
  align-items: end;
  padding: clamp(7.5rem, 14vh, 11rem) 0 clamp(5.5rem, 11vh, 9rem);
}

.features-intro__eyebrow,
.feature-row__eyebrow {
  margin: 0;
  color: rgba(243, 234, 217, 0.5);
  font-size: clamp(0.62rem, 0.64vw, 0.78rem);
  line-height: 1;
  font-weight: 700;
  letter-spacing: 0.16em;
  text-transform: uppercase;
}

.features-intro__eyebrow {
  opacity: var(--intro-eyebrow-progress);
  clip-path: inset(0 var(--intro-eyebrow-clip) 0 0);
  transform: translate3d(0, var(--intro-eyebrow-y), 0);
  will-change: opacity, clip-path, transform;
}

.features-intro__title {
  max-width: 11ch;
  margin: clamp(1.2rem, 2.2vh, 1.8rem) 0 0;
  color: var(--cream);
  font-size: clamp(3.1rem, 6.5vw, 7.9rem);
  line-height: 0.94;
  font-weight: 700;
  letter-spacing: 0;
  opacity: var(--intro-title-progress);
  clip-path: none;
  transform: translate3d(0, var(--intro-title-y), 0);
  will-change: opacity, transform;
}

.features-intro__body {
  max-width: 43ch;
  margin: 0 0 0.45rem;
  color: rgba(243, 234, 217, 0.62);
  font-size: clamp(0.92rem, 1.02vw, 1.22rem);
  line-height: 1.72;
  font-weight: 500;
  opacity: var(--intro-body-progress);
  transform: translate3d(0, var(--intro-body-y), 0);
  will-change: opacity, transform;
}

.feature-list {
  position: relative;
  height: 930vh;
  height: 930svh;
  border-top: 1px solid rgba(243, 234, 217, 0.16);
}

.feature-list__sticky {
  position: sticky;
  top: 0;
  height: 100vh;
  height: 100svh;
  overflow: visible;
  isolation: isolate;
}

.feature-list__sticky::before {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  left: calc((100% - 100vw) / 2);
  z-index: 0;
  width: 100vw;
  background: linear-gradient(90deg, #e7dccd 0%, #f3ede3 54%, #eee6da 100%);
  opacity: var(--light-theme-progress, 0);
  pointer-events: none;
  will-change: opacity;
}

.feature-list__sticky::after {
  content: "";
  position: absolute;
  right: 0;
  bottom: 0;
  left: 0;
  height: 1px;
  background: rgba(243, 234, 217, 0.14);
  z-index: 1;
}

.feature-dots {
  position: absolute;
  top: 50%;
  left: 0;
  z-index: 28;
  display: grid;
  gap: clamp(0.48rem, 1.05vh, 0.72rem);
  opacity: var(--dots-progress, 0);
  transform: translate3d(0, calc(-50% + var(--dots-y, 12px)), 0);
  pointer-events: none;
  will-change: opacity, transform;
}

.feature-dot {
  position: relative;
  width: 28px;
  height: 28px;
  padding: 0;
  border: 0;
  border-radius: 50%;
  color: var(--cream);
  background: transparent;
  opacity: var(--dot-opacity, 0.34);
  cursor: pointer;
}

.feature-dot::before,
.feature-dot::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  border-radius: 50%;
  pointer-events: none;
}

.feature-dot::before {
  width: 9px;
  height: 9px;
  background: currentColor;
  transform: translate(-50%, -50%) scale(var(--dot-scale, 1));
  box-shadow: 0 0 14px rgba(243, 234, 217, var(--dot-glow, 0));
}

.feature-dot::after {
  width: 22px;
  height: 22px;
  border: 1px solid rgba(243, 234, 217, 0.56);
  opacity: var(--dot-ring, 0);
  transform: translate(-50%, -50%) scale(var(--dot-ring-scale, 0.78));
}

.feature-dot:focus-visible {
  outline: 1px solid rgba(243, 234, 217, 0.9);
  outline-offset: 2px;
}

.feature-row {
  --row-eyebrow-progress: 0;
  --row-eyebrow-clip: 100%;
  --row-eyebrow-y: 16px;
  --row-title-progress: 0;
  --row-title-clip: 100%;
  --row-title-y: 34px;
  --row-body-progress: 0;
  --row-body-y: 24px;
  --row-media-progress: 0;
  --row-media-opacity: 0;
  --row-media-clip: 100%;
  --row-media-mask-start: 0%;
  --row-media-mask-end: 0%;
  --row-media-y: 0px;
  --row-image-scale: 1;
  position: absolute;
  inset: 0;
  min-height: 0;
  height: 100%;
  display: grid;
  grid-template-columns: minmax(290px, 0.68fr) minmax(0, 1.32fr);
  gap: clamp(3rem, 7.5vw, 9rem);
  align-items: center;
  padding: clamp(5.2rem, 11vh, 8.5rem) 0;
  pointer-events: none;
  visibility: hidden;
}

.feature-row__copy {
  max-width: 480px;
  margin-left: clamp(42px, 4vw, 72px);
}

.feature-row__eyebrow {
  opacity: var(--row-eyebrow-progress);
  clip-path: inset(0 var(--row-eyebrow-clip) 0 0);
  transform: translate3d(0, var(--row-eyebrow-y), 0);
  will-change: opacity, clip-path, transform;
}

.feature-row__number {
  display: inline-block;
  margin-left: 0.72rem;
  color: rgba(243, 234, 217, 0.66);
}

.feature-row__title {
  max-width: 13ch;
  margin: clamp(1.1rem, 2.1vh, 1.8rem) 0 clamp(1.15rem, 2.4vh, 2rem);
  color: var(--cream);
  font-size: clamp(2rem, 3.3vw, 4.25rem);
  line-height: 1.08;
  font-weight: 700;
  letter-spacing: 0;
  opacity: var(--row-title-progress);
  clip-path: none;
  transform: translate3d(0, var(--row-title-y), 0);
  will-change: opacity, transform;
}

.feature-row__body {
  max-width: 44ch;
  margin: 0;
  color: rgba(243, 234, 217, 0.6);
  font-size: clamp(0.84rem, 0.9vw, 1.06rem);
  line-height: 1.72;
  font-weight: 500;
  opacity: var(--row-body-progress);
  transform: translate3d(0, var(--row-body-y), 0);
  will-change: opacity, transform;
}

.reveal-word {
  display: inline-block;
  opacity: var(--word-progress, 0);
  filter: blur(var(--word-blur, 4px));
  transform: translate3d(0, var(--word-y, 0.55em), 0);
  transform-origin: 50% 100%;
  will-change: opacity, filter, transform;
}

.reveal-word--body {
  transform: translate3d(0, var(--word-y, 0.32em), 0);
}

.feature-row__media {
  position: relative;
  overflow: hidden;
  aspect-ratio: 1.62 / 1;
  margin: 0;
  background: #25211d;
  opacity: var(--row-media-opacity);
  clip-path: inset(0 var(--row-media-clip) 0 0);
  -webkit-mask-image: linear-gradient(to right, #000 0%, #000 var(--row-media-mask-start), transparent var(--row-media-mask-end));
  mask-image: linear-gradient(to right, #000 0%, #000 var(--row-media-mask-start), transparent var(--row-media-mask-end));
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  transform: none;
  will-change: opacity, clip-path;
}

.feature-row__media::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  box-shadow: 0 0 0 1px rgba(243, 234, 217, 0.12) inset;
}

.feature-row__media img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: var(--feature-position, center);
  transform: none;
}

.scroll-cue.feature-final-cue {
  left: 50%;
  bottom: 2.7vh;
  z-index: 64;
  color: rgba(243, 234, 217, 0.72);
  opacity: var(--feature-cue-progress, 0);
  transform: translate3d(-50%, calc((1 - var(--feature-cue-progress, 0)) * 10px), 0);
  pointer-events: none;
  will-change: opacity, transform;
}

.scroll-cue.feature-outro-cue {
  left: 50%;
  bottom: 2.7vh;
  z-index: 65;
  color: var(--outro-secondary-ink);
  opacity: var(--outro-cue-progress, 0);
  transform: translate3d(-50%, calc((1 - var(--outro-cue-progress, 0)) * 10px), 0);
  pointer-events: none;
  will-change: opacity, transform;
}

.feature-outro-title {
  position: absolute;
  top: 50%;
  left: calc(clamp(26px, 2.55vw, 56px) + 24px - ((100vw - min(89vw, 1680px)) / 2));
  right: calc(clamp(42px, 4vw, 82px) - ((100vw - min(89vw, 1680px)) / 2));
  z-index: 62;
  width: auto;
  margin: 0;
  padding: 0;
  display: block;
  color: var(--outro-title-ink);
  text-shadow: var(--theme-text-shadow);
  font-size: clamp(4rem, 11.18vw, 14.75rem);
  line-height: 0.94;
  font-weight: 650;
  letter-spacing: 0;
  text-align: center;
  white-space: nowrap;
  transform: translate3d(0, -50%, 0);
  pointer-events: none;
  visibility: hidden;
}

.feature-outro-title::after {
  content: attr(data-text);
  position: absolute;
  inset: 0;
  color: rgba(255, 250, 240, 0.98);
  text-align: center;
  text-shadow:
    0 0 16px rgba(255, 248, 232, 0.36),
    0 0 38px rgba(255, 248, 232, 0.18);
  opacity: var(--shine-opacity, 0);
  -webkit-mask-image: linear-gradient(90deg, transparent 0%, rgba(0, 0, 0, 0.32) 24%, #000 45%, #000 55%, rgba(0, 0, 0, 0.32) 76%, transparent 100%);
  mask-image: linear-gradient(90deg, transparent 0%, rgba(0, 0, 0, 0.32) 24%, #000 45%, #000 55%, rgba(0, 0, 0, 0.32) 76%, transparent 100%);
  -webkit-mask-size: 24% 100%;
  mask-size: 24% 100%;
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-position: var(--shine-position, -15%) 50%;
  mask-position: var(--shine-position, -15%) 50%;
  pointer-events: none;
  will-change: opacity, mask-position;
}

.feature-outro-word {
  display: inline-flex;
  align-items: baseline;
}

.feature-outro-word__current {
  display: inline-flex;
  align-items: baseline;
}

.feature-outro-phrase {
  display: block;
}

.feature-outro-phrase--current {
  opacity: var(--swap-old-opacity, 1);
  filter: blur(var(--swap-old-blur, 0));
  transform: translate3d(0, calc(var(--outro-word-swap, 0) * -0.58em), 0);
  will-change: opacity, filter, transform;
}

.feature-outro-phrase--next {
  position: absolute;
  inset: 0;
  display: block;
  text-align: center;
  opacity: var(--swap-new-opacity, 0);
  filter: blur(var(--swap-new-blur, 11px));
  transform: translate3d(0, calc((1 - var(--outro-word-swap, 0)) * 0.58em), 0);
  will-change: opacity, filter, transform;
}

.feature-outro-letter {
  display: inline-block;
  opacity: var(--letter-progress, 0);
  filter: blur(var(--letter-blur, 5px));
  transform: translate3d(var(--letter-x, -0.18em), var(--letter-y, 0.08em), 0);
  will-change: opacity, filter, transform;
}

.feature-outro-kicker,
.feature-outro-mini,
.feature-outro-copy {
  position: absolute;
  z-index: 63;
  margin: 0;
  pointer-events: none;
  text-shadow: var(--theme-text-shadow);
}

.feature-outro-kicker {
  top: clamp(4.25rem, 8.5vh, 6.5rem);
  left: calc((min(89vw, 1680px) - 100vw) / 2);
  width: 100vw;
  color: var(--outro-secondary-ink);
  font-size: clamp(0.58rem, 0.62vw, 0.78rem);
  line-height: 1;
  font-weight: 700;
  letter-spacing: 0.11em;
  text-align: center;
  text-transform: uppercase;
  opacity: var(--outro-kicker-progress, 0);
  transform: translate3d(0, calc((1 - var(--outro-kicker-progress, 0)) * -16px), 0);
  will-change: opacity, transform;
}

.feature-outro-mini {
  top: 35.5vh;
  left: calc(clamp(26px, 2.55vw, 56px) + 24px - ((100vw - min(89vw, 1680px)) / 2));
  color: var(--outro-secondary-ink);
  font-size: clamp(1rem, 1.25vw, 1.5rem);
  line-height: 1;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  opacity: var(--outro-mini-progress, 0);
  clip-path: inset(0 calc((1 - var(--outro-mini-progress, 0)) * 100%) 0 0);
  transform: translate3d(calc((1 - var(--outro-mini-progress, 0)) * -12px), 0, 0);
  will-change: opacity, clip-path, transform;
}

.feature-outro-copy {
  top: 78%;
  left: 50%;
  width: min(44rem, 54vw);
  display: grid;
  justify-items: center;
  color: var(--outro-copy-ink);
  font-size: clamp(0.98rem, 1.16vw, 1.38rem);
  line-height: 1.58;
  font-weight: 500;
  letter-spacing: 0;
  text-align: center;
  transform: translateX(-50%);
}

.feature-outro-line {
  display: block;
  opacity: var(--line-progress, 0);
  transform: translate3d(0, calc((1 - var(--line-progress, 0)) * 15px), 0);
  filter: blur(calc((1 - var(--line-progress, 0)) * 2px));
  will-change: opacity, filter, transform;
}

.feature-outro-shadow {
  position: absolute;
  inset: 0 auto 0 calc((100% - 100vw) / 2);
  z-index: 2;
  width: 100vw;
  overflow: hidden;
  opacity: calc(var(--outro-shadow-progress, 0) * 0.08);
  pointer-events: none;
  will-change: opacity;
}

.feature-outro-shadow img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  transform: translate3d(var(--shadow-x, 0px), var(--shadow-y, 0px), 0) scale(1.018);
  transition: transform 1050ms cubic-bezier(0.16, 1, 0.3, 1);
  will-change: transform;
}

.commercial-flow {
  --commercial-outro-progress: 0;
  --commercial-outro-opacity: 1;
  --commercial-outro-y: 0px;
  --commercial-outro-scale: 1;
  --commercial-outro-blur: 0px;
  position: relative;
  z-index: 3;
  width: 100vw;
  margin-left: calc((100% - 100vw) / 2);
  color: #211b17;
  background: linear-gradient(104deg, #e7dccd 0%, #f3ede3 52%, #eee6da 100%);
  isolation: isolate;
}

.commercial-flow::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  background:
    radial-gradient(circle at 50% 78%, rgba(255, 252, 246, 0.44), transparent 34%),
    linear-gradient(90deg, rgba(104, 78, 55, 0.035), transparent 32% 68%, rgba(104, 78, 55, 0.03));
  pointer-events: none;
}

.commercial-flow::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  background:
    radial-gradient(circle at 17% 82%, rgba(88, 55, 31, 0.38), transparent 34%),
    linear-gradient(104deg, #2b211a 0%, #1e1a17 48%, #181613 78%, #181613 100%);
  opacity: var(--commercial-outro-progress);
  pointer-events: none;
  will-change: opacity;
}

.commercial-flow__media-stage {
  position: sticky;
  top: 0;
  z-index: 2;
  height: 100vh;
  height: 100svh;
  margin-bottom: -100vh;
  margin-bottom: -100svh;
  opacity: var(--commercial-outro-opacity);
  filter: blur(var(--commercial-outro-blur));
  pointer-events: none;
  will-change: opacity, filter;
}

.commercial-flow__media {
  position: absolute;
  top: 50%;
  left: 50%;
  width: clamp(15rem, 25vw, 32rem);
  height: min(68svh, 680px);
  margin: 0;
  overflow: hidden;
  background: #d8c9b5;
  opacity: var(--commercial-media-opacity, 0);
  transform: translate3d(-50%, calc(-50% + var(--commercial-outro-y)), 0)
    scale(var(--commercial-outro-scale));
  box-shadow: 0 35px 80px rgba(49, 36, 27, 0.11);
  will-change: opacity, transform;
}

.commercial-flow__media img {
  position: absolute;
  inset: 0;
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: var(--commercial-detail-position, center);
  opacity: var(--commercial-detail-image-opacity, 0);
  filter: blur(calc((1 - var(--commercial-detail-image-opacity, 0)) * 5px));
  transform: scale(calc(1.026 - var(--commercial-detail-image-opacity, 0) * 0.026));
  will-change: opacity, filter, transform;
}

.commercial-flow__media img:first-child {
  --commercial-detail-image-opacity: 1;
}

.residence-types {
  --residence-content-width: min(89vw, 1680px);
  --residence-gap: clamp(0.7rem, 1vw, 1.25rem);
  position: relative;
  z-index: 3;
  height: var(--residence-section-height, 560vh);
  min-height: 100vh;
  min-height: 100svh;
  padding: 0;
  color: #211b17;
  isolation: isolate;
}

.residence-types::before {
  content: none;
}

.residence-types__sticky {
  position: sticky;
  top: 0;
  width: 100vw;
  height: 100vh;
  height: 100svh;
  margin-left: 0;
  overflow: hidden;
  background: transparent;
  isolation: isolate;
}

.residence-rail {
  position: absolute;
  top: 50%;
  left: calc((100vw - var(--residence-content-width)) / 2);
  z-index: 2;
  display: flex;
  align-items: stretch;
  gap: var(--residence-gap);
  width: max-content;
  transform: translate3d(var(--residence-rail-x, 0px), -50%, 0);
  will-change: transform;
}

.residence-grid {
  flex: 0 0 auto;
  width: auto;
  display: grid;
  grid-template-columns:
    minmax(0, calc(var(--residence-content-width) * 0.258))
    repeat(2, minmax(0, calc(var(--residence-content-width) * 0.264)));
  gap: var(--residence-gap);
  align-items: stretch;
}

.residence-card {
  --residence-card-progress: 0;
  position: relative;
  min-height: min(68svh, 680px);
  overflow: hidden;
  padding: clamp(1.7rem, 2.5vw, 3.2rem);
  border: 1px solid rgba(43, 35, 29, 0.08);
  opacity: var(--residence-card-progress);
  clip-path: inset(calc((1 - var(--residence-card-progress)) * 13%) 0 0 0);
  transform: translate3d(0, calc((1 - var(--residence-card-progress)) * 34px), 0);
  box-shadow: 0 28px 70px rgba(52, 39, 29, calc(var(--residence-card-progress) * 0.08));
  will-change: opacity, clip-path, transform;
}

.residence-card__eyebrow {
  margin: 0;
  font-size: clamp(0.62rem, 0.66vw, 0.82rem);
  line-height: 1.15;
  font-weight: 700;
  letter-spacing: 0.13em;
  text-transform: uppercase;
  opacity: var(--residence-card-progress);
  transform: translate3d(0, calc((1 - var(--residence-card-progress)) * 13px), 0);
}

.residence-card--summary {
  display: flex;
  flex-direction: column;
  background: #29271f;
  color: #f2e8d7;
}

.residence-card--summary h2 {
  max-width: 9ch;
  margin: clamp(2.2rem, 4.2vh, 3.7rem) 0 0;
  font-size: clamp(1.85rem, 2.55vw, 3.45rem);
  line-height: 0.98;
  font-weight: 700;
  letter-spacing: 0;
  text-transform: uppercase;
}

.residence-card--summary p:not(.residence-card__eyebrow) {
  max-width: 25ch;
  margin: clamp(2rem, 4vh, 3.2rem) 0 0;
  color: rgba(242, 232, 215, 0.68);
  font-size: clamp(0.78rem, 0.86vw, 1rem);
  line-height: 1.7;
  font-weight: 500;
}

.residence-card__total {
  position: absolute;
  left: 50%;
  bottom: -0.19em;
  color: rgba(242, 232, 215, 0.14);
  font-size: clamp(9rem, 16vw, 19rem);
  line-height: 1;
  font-weight: 700;
  letter-spacing: 0;
  transform: translate3d(-50%, calc((1 - var(--residence-card-progress)) * 24px), 0);
}

.residence-card--plan {
  display: grid;
  grid-template-rows: auto 1fr auto;
  background: #dfd1be;
}

.residence-card--plan:nth-child(3) {
  background: #e9decf;
}

.residence-card__index {
  position: absolute;
  top: clamp(1.7rem, 2.5vw, 3.2rem);
  right: clamp(1.7rem, 2.5vw, 3.2rem);
  color: rgba(33, 27, 23, 0.68);
  font-size: clamp(0.62rem, 0.66vw, 0.82rem);
  line-height: 1;
  font-weight: 700;
}

.residence-card__type {
  align-self: center;
  justify-self: center;
  margin: 0;
  color: #211b17;
  font-size: clamp(6.5rem, 10.6vw, 13.5rem);
  line-height: 0.88;
  font-weight: 650;
  letter-spacing: 0;
  opacity: var(--residence-card-progress);
  transform: translate3d(0, calc((1 - var(--residence-card-progress)) * 22px), 0) scale(calc(0.96 + var(--residence-card-progress) * 0.04));
  transform-origin: center;
}

.residence-card__footer {
  margin: 0;
  padding-top: clamp(1rem, 2.2vh, 1.6rem);
  border-top: 1px solid rgba(33, 27, 23, 0.15);
  color: rgba(33, 27, 23, 0.66);
  font-size: clamp(0.75rem, 0.82vw, 0.96rem);
  line-height: 1.58;
  font-weight: 600;
  opacity: var(--residence-card-progress);
  transform: translate3d(0, calc((1 - var(--residence-card-progress)) * 15px), 0);
}

.residence-gallery-card {
  position: relative;
  flex: 0 0 auto;
  height: min(68svh, 680px);
  margin: 0;
  overflow: hidden;
  background: #d8c9b5;
  box-shadow: 0 28px 70px rgba(52, 39, 29, 0.1);
}

.residence-gallery-card--landscape {
  width: min(62vw, 940px);
}

.residence-gallery-card--portrait {
  width: min(32vw, 460px);
}

.residence-gallery-card img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: var(--residence-image-position, center);
  transform: scale(calc(1.018 - var(--residence-image-presence, 0) * 0.018));
  will-change: transform;
}

.residence-gallery-card--placeholder {
  display: grid;
  place-items: center;
  background: #a7a7a4;
  box-shadow: 0 28px 70px rgba(52, 39, 29, 0.08);
}

.residence-gallery-card__placeholder {
  color: #3b3530;
  font-size: clamp(0.7rem, 0.78vw, 0.9rem);
  line-height: 1;
  font-weight: 600;
  letter-spacing: 0.16em;
  text-transform: uppercase;
}

.residence-gallery-card::after {
  content: attr(data-index);
  position: absolute;
  top: clamp(1rem, 1.45vw, 1.65rem);
  right: clamp(1rem, 1.45vw, 1.65rem);
  color: rgba(243, 234, 217, 0.78);
  font-size: clamp(0.58rem, 0.6vw, 0.74rem);
  line-height: 1;
  font-weight: 700;
  letter-spacing: 0.11em;
  text-shadow: 0 2px 14px rgba(18, 15, 12, 0.42);
}

.scroll-cue.residence-cue {
  left: 50%;
  bottom: 2.7vh;
  z-index: 8;
  color: rgba(44, 37, 31, 0.64);
  opacity: var(--residence-cue-progress, 0);
  transform: translate3d(-50%, calc((1 - var(--residence-cue-progress, 0)) * 10px), 0);
  pointer-events: none;
  will-change: opacity, transform;
}

.scroll-cue.commercial-final-cue {
  left: 50%;
  bottom: 2.7vh;
  z-index: 8;
  color: rgba(33, 27, 23, 0.58);
  opacity: var(--commercial-cue-progress, 0);
  transform: translate3d(-50%, calc((1 - var(--commercial-cue-progress, 0)) * 10px), 0);
  pointer-events: none;
  will-change: opacity, transform;
}

.scroll-cue.commercial-final-cue .scroll-cue__icon::before {
  border-color: rgba(33, 27, 23, 0.3);
}

.scroll-cue.commercial-final-cue .scroll-cue__icon::after {
  border-color: rgba(33, 27, 23, 0.72);
}

.commercial-scene {
  --commercial-top-pad: clamp(6rem, 12vh, 9rem);
  --commercial-bottom-pad: clamp(2.2rem, 5vh, 4.5rem);
  position: absolute;
  inset: 0;
  z-index: 1;
  overflow: hidden;
  color: #211b17;
  background: transparent;
  isolation: isolate;
  pointer-events: none;
}

.commercial-scene::before {
  content: none;
}

.commercial-scene__inner {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1.06fr) minmax(18rem, 0.7fr) minmax(0, 0.94fr);
  align-items: center;
  gap: clamp(2rem, 4vw, 5.5rem);
  width: min(89vw, 1680px);
  min-height: 100vh;
  min-height: 100svh;
  margin: 0 auto;
  padding: var(--commercial-top-pad) 0 var(--commercial-bottom-pad);
}

.commercial-scene__title {
  grid-column: 1;
  align-self: center;
  justify-self: center;
  width: max-content;
  margin: 0;
  font-size: clamp(1rem, 1.25vw, 1.5rem);
  line-height: 1.22;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  opacity: var(--commercial-title-opacity, 0);
  transform: translate3d(0, -48px, 0);
  will-change: opacity;
}

.commercial-scene__title span {
  display: block;
  overflow: hidden;
  padding-bottom: 0.08em;
}

.commercial-scene__copy {
  grid-column: 3;
  align-self: center;
  justify-self: center;
  width: min(100%, 31rem);
  margin: 0;
  color: rgba(33, 27, 23, 0.72);
  font-size: clamp(0.98rem, 1.22vw, 1.38rem);
  line-height: 1.65;
  font-weight: 600;
  text-align: left;
  text-wrap: balance;
  opacity: var(--commercial-copy-opacity, 0);
  transform: translate3d(0, 48px, 0);
  will-change: opacity;
}

.commercial-scene__copy span {
  display: block;
}

.commercial-details {
  --commercial-detail-width: min(89vw, 1680px);
  position: relative;
  z-index: 4;
  width: 100vw;
  margin: 0;
  overflow: clip;
  color: #211b17;
  background: transparent;
  isolation: isolate;
}

.commercial-details::before {
  content: none;
}

.commercial-details__rows {
  position: relative;
  z-index: 2;
  margin-top: 0;
}

.commercial-detail {
  --commercial-detail-progress: 0;
  --commercial-label-progress: 0;
  --commercial-copy-progress: 0;
  --commercial-feature-progress: 0;
  --commercial-metric-progress: 0;
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1.06fr) minmax(18rem, 0.7fr) minmax(0, 0.94fr);
  align-items: center;
  gap: clamp(2rem, 4vw, 5.5rem);
  width: var(--commercial-detail-width);
  min-height: 100vh;
  min-height: 100svh;
  margin: 0 auto;
  padding: clamp(6rem, 12vh, 9rem) 0 clamp(2.2rem, 5vh, 4.5rem);
}

.commercial-detail::before {
  content: none;
}

.commercial-detail:last-child {
  opacity: var(--commercial-outro-opacity);
  filter: blur(var(--commercial-outro-blur));
  will-change: opacity, filter;
}

.commercial-details__outro {
  position: relative;
  z-index: 2;
  height: 22vh;
  height: 22svh;
  pointer-events: none;
}

.commercial-detail__left {
  grid-column: 1;
  justify-self: start;
  width: min(100%, 34rem);
}

.commercial-detail__label {
  display: flex;
  align-items: center;
  gap: 0.9rem;
  margin: 0;
  color: rgba(33, 27, 23, 0.7);
  font-size: clamp(0.62rem, 0.66vw, 0.8rem);
  line-height: 1.25;
  font-weight: 750;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  opacity: var(--commercial-label-progress);
  clip-path: inset(0 calc((1 - var(--commercial-label-progress)) * 100%) 0 0);
  transform: translate3d(calc((1 - var(--commercial-label-progress)) * -14px), 0, 0);
  will-change: opacity, clip-path, transform;
}

.commercial-detail__index {
  flex: 0 0 auto;
  color: rgba(33, 27, 23, 0.68);
  font-variant-numeric: tabular-nums;
}

.commercial-detail__copy {
  max-width: 27ch;
  margin: clamp(2rem, 4.2vh, 3.4rem) 0 0;
  color: rgba(33, 27, 23, 0.66);
  font-size: clamp(1.08rem, 1.42vw, 1.72rem);
  line-height: 1.58;
  font-weight: 560;
  letter-spacing: 0;
  text-wrap: pretty;
  opacity: var(--commercial-copy-progress);
  filter: blur(calc((1 - var(--commercial-copy-progress)) * 4px));
  transform: translate3d(0, calc((1 - var(--commercial-copy-progress)) * 24px), 0);
  will-change: opacity, filter, transform;
}

.commercial-detail__copy strong {
  color: #211b17;
  font-weight: 760;
}

.commercial-detail__features {
  max-width: 38rem;
  margin: clamp(2rem, 4.8vh, 4rem) 0 0;
  padding-top: clamp(1rem, 1.8vh, 1.5rem);
  border-top: 1px solid rgba(33, 27, 23, calc(var(--commercial-feature-progress) * 0.16));
  color: rgba(33, 27, 23, 0.7);
  font-size: clamp(0.58rem, 0.61vw, 0.74rem);
  line-height: 1.65;
  font-weight: 750;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  opacity: var(--commercial-feature-progress);
  transform: translate3d(0, calc((1 - var(--commercial-feature-progress)) * 16px), 0);
  will-change: opacity, transform;
}

.commercial-detail__metric {
  grid-column: 3;
  justify-self: center;
  display: grid;
  justify-items: center;
  width: min(100%, 26rem);
  color: #211b17;
  text-align: center;
  opacity: var(--commercial-metric-progress);
  filter: blur(calc((1 - var(--commercial-metric-progress)) * 5px));
  transform: translate3d(0, calc((1 - var(--commercial-metric-progress)) * 26px), 0)
    scale(calc(0.97 + var(--commercial-metric-progress) * 0.03));
  transform-origin: center;
  will-change: opacity, filter, transform;
}

.commercial-detail__value {
  display: block;
  font-size: clamp(5.6rem, 9.6vw, 12rem);
  line-height: 0.82;
  font-weight: 650;
  letter-spacing: 0;
  white-space: nowrap;
}

.commercial-detail__value--range {
  font-size: clamp(3.2rem, 5.6vw, 7rem);
}

.commercial-detail__metric-label {
  margin-top: clamp(1.3rem, 2.5vh, 2.2rem);
  font-size: clamp(1.05rem, 1.55vw, 1.9rem);
  line-height: 1.08;
  font-weight: 760;
  letter-spacing: 0.02em;
  text-transform: uppercase;
}

.commercial-detail__note {
  max-width: 28ch;
  margin: clamp(0.8rem, 1.5vh, 1.25rem) 0 0;
  color: rgba(33, 27, 23, 0.68);
  font-size: clamp(0.64rem, 0.7vw, 0.82rem);
  line-height: 1.5;
  font-style: italic;
  font-weight: 560;
}

.location-section {
  position: relative;
  z-index: 4;
  width: 100%;
  padding-bottom: clamp(34rem, 70svh, 56rem);
  color: #f3ead9;
  background: transparent;
  isolation: isolate;
  scroll-margin-top: 0;
}

.location-map-cta {
  --location-map-progress: 0;
  position: fixed;
  top: 50%;
  right: clamp(14px, 1.55vw, 32px);
  left: auto;
  z-index: 35;
  display: grid;
  justify-items: center;
  gap: clamp(0.95rem, 2vh, 1.45rem);
  padding: 0.55rem 0;
  color: var(--header-ink);
  font-size: clamp(0.84rem, 0.92vw, 1.1rem);
  line-height: 1;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  writing-mode: vertical-rl;
  opacity: calc(var(--location-map-progress) * 0.82);
  filter: blur(calc((1 - var(--location-map-progress)) * 5px));
  transform: translate3d(
      calc((1 - var(--location-map-progress)) * 28px),
      -50%,
      0
    )
    rotate(180deg);
  pointer-events: none;
  transition: color 260ms ease, opacity 140ms linear;
  will-change: opacity, filter, transform;
}

.location-map-cta::before {
  content: "";
  width: 1px;
  height: clamp(3rem, 6.5vh, 4.75rem);
  background: currentColor;
  opacity: 0.34;
  transform: scaleY(var(--location-map-progress));
  transform-origin: bottom center;
}

.location-map-cta::after {
  content: "";
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: currentColor;
  opacity: 0.68;
}

.location-map-cta.is-active {
  pointer-events: auto;
}

.location-map-cta:hover,
.location-map-cta:focus-visible {
  color: #e0b988;
  opacity: 1;
}

.location-hero {
  --location-line-one: 0;
  --location-line-two: 0;
  --location-accent: 0;
  --location-aside: 0;
  position: relative;
  display: grid;
  place-items: center;
  min-height: clamp(17rem, 34vh, 23rem);
  min-height: clamp(17rem, 34svh, 23rem);
  padding: clamp(5.6rem, 8vh, 7rem) 5.5vw clamp(1.35rem, 2.6vh, 2.2rem);
  overflow: hidden;
}

.location-hero__headline {
  position: relative;
  z-index: 2;
  width: min(89vw, 1680px);
  margin: 0;
  color: #f3ead9;
  font-family: "Iowan Old Style", "Baskerville", "Times New Roman", serif;
  font-size: clamp(2rem, 3.15vw, 4.15rem);
  line-height: 1.04;
  font-weight: 400;
  letter-spacing: 0;
  text-align: center;
  text-wrap: balance;
}

.location-hero__line,
.location-hero__accent {
  display: block;
  will-change: opacity, filter, transform;
}

.location-hero__line {
  white-space: nowrap;
}

.location-hero__line:first-child {
  opacity: var(--location-line-one);
  filter: blur(calc((1 - var(--location-line-one)) * 5px));
  transform: translate3d(0, calc((1 - var(--location-line-one)) * 34px), 0);
}

.location-hero__line:nth-child(2) {
  opacity: var(--location-line-two);
  filter: blur(calc((1 - var(--location-line-two)) * 5px));
  transform: translate3d(0, calc((1 - var(--location-line-two)) * 38px), 0);
}

.location-hero__accent {
  margin-top: clamp(0.65rem, 1.7vh, 1.4rem);
  color: #e0b988;
  font-size: 1.32em;
  line-height: 0.9;
  font-style: italic;
  opacity: var(--location-accent);
  filter: blur(calc((1 - var(--location-accent)) * 7px));
  transform: translate3d(0, calc((1 - var(--location-accent)) * 42px), 0)
    scale(calc(0.965 + var(--location-accent) * 0.035));
}

.location-hero__aside {
  position: absolute;
  top: 55%;
  left: 5.5vw;
  z-index: 3;
  width: min(18vw, 15rem);
  margin: 0;
  color: rgba(243, 234, 217, 0.58);
  font-family: "Great Vibes", cursive;
  font-size: clamp(1.55rem, 2.1vw, 2.7rem);
  line-height: 1.05;
  letter-spacing: 0;
  opacity: var(--location-aside);
  filter: blur(calc((1 - var(--location-aside)) * 4px));
  transform: translate3d(calc((1 - var(--location-aside)) * -28px), 0, 0) rotate(-3deg);
  transform-origin: left center;
  will-change: opacity, filter, transform;
}

.location-hero__aside::before {
  content: "";
  position: absolute;
  right: calc(100% + 0.8rem);
  top: 50%;
  width: clamp(1.8rem, 3.2vw, 4rem);
  height: 1px;
  background: rgba(243, 234, 217, calc(var(--location-aside) * 0.24));
  transform: translateY(-50%) scaleX(var(--location-aside));
  transform-origin: right center;
}

.location-list {
  width: min(76vw, 1320px);
  margin: clamp(1.75rem, 3.5vh, 3rem) auto 0;
  border-bottom: 1px solid rgba(243, 234, 217, 0.15);
}

.location-row {
  --location-title-progress: 0;
  --location-copy-progress: 0;
  --location-divider-progress: 0;
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 0.88fr) minmax(0, 1.12fr);
  align-items: center;
  gap: clamp(3rem, 7vw, 10rem);
  min-height: clamp(9.5rem, 22vh, 15rem);
  padding: clamp(1.75rem, 3.4vh, 2.8rem) clamp(0.3rem, 1.2vw, 1.5rem);
}

.location-row::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 1px;
  background: rgba(243, 234, 217, 0.15);
  transform: scaleX(var(--location-divider-progress));
  transform-origin: left center;
  will-change: transform;
}

.location-row__title {
  position: relative;
  max-width: 17ch;
  margin: 0;
  color: #f3ead9;
  font-family: "Iowan Old Style", "Baskerville", "Times New Roman", serif;
  font-size: clamp(1.5rem, 2.15vw, 2.9rem);
  line-height: 1.06;
  font-weight: 400;
  letter-spacing: 0;
  text-wrap: balance;
  opacity: var(--location-title-progress);
  filter: blur(calc((1 - var(--location-title-progress)) * 4px));
  transform: translate3d(calc((1 - var(--location-title-progress)) * -24px), 0, 0);
  will-change: opacity, filter, transform;
}

.location-row__title::before {
  content: "";
  position: absolute;
  top: 0.53em;
  left: -2.3rem;
  width: 0.58rem;
  height: 0.58rem;
  border: 1px solid rgba(243, 234, 217, 0.58);
  border-radius: 50%;
  background: radial-gradient(
    circle,
    rgba(243, 234, 217, 0.94) 0 1.5px,
    transparent 1.7px
  );
  box-shadow: 0 0 0 5px rgba(243, 234, 217, 0.035);
  transform: translate3d(-50%, -50%, 0)
    scale(calc(0.72 + (var(--location-title-progress) * 0.28)));
  transform-origin: center;
}

.location-row__title::after {
  content: "";
  position: absolute;
  top: 0.53em;
  left: -1.82rem;
  width: 1rem;
  height: 1px;
  background: rgba(243, 234, 217, 0.28);
  transform: translateY(-50%) scaleX(var(--location-title-progress));
  transform-origin: left center;
}

.location-row__copy {
  justify-self: end;
  width: min(100%, 43rem);
  margin: 0;
  color: rgba(243, 234, 217, 0.58);
  font-size: clamp(0.82rem, 0.92vw, 1.08rem);
  line-height: 1.68;
  font-weight: 560;
  letter-spacing: 0;
  text-wrap: pretty;
  opacity: var(--location-copy-progress);
  filter: blur(calc((1 - var(--location-copy-progress)) * 3px));
  transform: translate3d(0, calc((1 - var(--location-copy-progress)) * 22px), 0);
  will-change: opacity, filter, transform;
}

.contact-section {
  --contact-theme-progress: 0;
  --contact-entry-progress: 0;
  position: relative;
  z-index: 6;
  width: 100%;
  min-height: 100vh;
  min-height: 100svh;
  overflow: hidden;
  color: #211b17;
  background: transparent;
  isolation: isolate;
  scroll-margin-top: 0;
}

.contact-section::before,
.contact-section::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
}

.contact-section::before {
  content: none;
}

.contact-section::after {
  z-index: 1;
  background:
    linear-gradient(90deg, rgba(65, 47, 34, 0.035), transparent 34% 68%, rgba(65, 47, 34, 0.025)),
    radial-gradient(circle at 50% 110%, rgba(255, 255, 255, 0.42), transparent 37%);
  opacity: var(--contact-theme-progress);
}

.contact-shell {
  position: relative;
  z-index: 2;
  display: flex;
  flex-direction: column;
  width: min(89vw, 1680px);
  min-height: 100vh;
  min-height: 100svh;
  margin: 0 auto;
  padding: clamp(7rem, 13vh, 10rem) 0 clamp(1.5rem, 3.2vh, 2.6rem);
}

.contact-grid {
  display: grid;
  grid-template-columns: minmax(12rem, 0.62fr) minmax(30rem, 1.75fr);
  align-items: center;
  gap: clamp(3rem, 6vw, 8.5rem);
  flex: 1;
  min-height: 0;
}

.contact-office {
  align-self: center;
}

.contact-main {
  display: grid;
  grid-template-columns: minmax(14rem, 0.72fr) minmax(24rem, 1.28fr);
  align-items: center;
  gap: clamp(2.5rem, 4.5vw, 5.5rem);
  align-self: center;
  justify-self: end;
  width: min(100%, 72rem);
}

.contact-communications {
  align-self: center;
}

.contact-reveal {
  --contact-item-progress: 0;
  opacity: var(--contact-item-progress);
  filter: blur(calc((1 - var(--contact-item-progress)) * 6px));
  transform: translate3d(0, calc((1 - var(--contact-item-progress)) * 30px), 0);
  will-change: opacity, filter, transform;
}

.contact-label {
  margin: 0 0 clamp(1.1rem, 2.2vh, 1.8rem);
  color: rgba(33, 27, 23, 0.7);
  font-size: clamp(0.6rem, 0.68vw, 0.78rem);
  line-height: 1;
  font-weight: 760;
  letter-spacing: 0.16em;
  text-transform: uppercase;
}

.contact-address {
  margin: 0;
  color: #211b17;
  font-size: clamp(0.95rem, 1.08vw, 1.28rem);
  line-height: 1.58;
  font-style: normal;
  font-weight: 440;
}

.contact-inline-link,
.contact-socials a,
.contact-channel__phone,
.contact-channel__email,
.contact-footer a {
  position: relative;
  width: fit-content;
}

.contact-inline-link::after,
.contact-socials a::after,
.contact-channel__phone::after,
.contact-channel__email::after,
.contact-footer a::after {
  content: "";
  position: absolute;
  right: 0;
  bottom: -0.25rem;
  left: 0;
  height: 1px;
  background: currentColor;
  opacity: 0.34;
  transform: scaleX(0);
  transform-origin: right center;
  transition: transform 420ms cubic-bezier(0.22, 1, 0.36, 1);
}

.contact-inline-link:hover::after,
.contact-inline-link:focus-visible::after,
.contact-socials a:hover::after,
.contact-socials a:focus-visible::after,
.contact-channel__phone:hover::after,
.contact-channel__phone:focus-visible::after,
.contact-channel__email:hover::after,
.contact-channel__email:focus-visible::after,
.contact-footer a:hover::after,
.contact-footer a:focus-visible::after {
  transform: scaleX(1);
  transform-origin: left center;
}

.contact-inline-link {
  display: inline-block;
  margin-top: clamp(1.25rem, 2.7vh, 2.1rem);
  color: #211b17;
  font-size: clamp(0.8rem, 0.9vw, 1.06rem);
  font-weight: 700;
}

.contact-socials {
  display: grid;
  gap: 0.72rem;
  margin: 0 0 clamp(3rem, 6.2vh, 5rem);
  font-size: clamp(0.8rem, 0.9vw, 1.06rem);
  line-height: 1.35;
  font-weight: 700;
}

.contact-channels {
  display: grid;
  gap: clamp(2.8rem, 5.8vh, 4.8rem);
}

.contact-channel__copy {
  max-width: 34ch;
  margin: 0;
  color: rgba(33, 27, 23, 0.7);
  font-size: clamp(0.76rem, 0.84vw, 0.98rem);
  line-height: 1.62;
  font-weight: 440;
  text-wrap: pretty;
}

.contact-channel__links {
  display: grid;
  justify-items: start;
  gap: 0.62rem;
  margin-top: clamp(1.15rem, 2.4vh, 1.8rem);
}

.contact-channel--sales .contact-channel__links {
  margin-top: clamp(1.7rem, 3.5vh, 2.7rem);
}

.contact-channel__phone,
.contact-channel__email {
  display: inline-block;
  color: #211b17;
  font-size: clamp(0.8rem, 0.9vw, 1.06rem);
  font-weight: 700;
}

.contact-channel__email {
  margin-top: 0.12rem;
  padding-top: 0.72rem;
  border-top: 1px solid rgba(33, 27, 23, 0.14);
}

.contact-inquiry {
  align-self: center;
  width: 100%;
}

.contact-title {
  max-width: none;
  margin: 0;
  color: #211b17;
  font-family: "Iowan Old Style", "Baskerville", "Times New Roman", serif;
  font-size: clamp(3rem, 4.35vw, 5.9rem);
  line-height: 0.93;
  font-weight: 400;
  letter-spacing: 0;
  text-wrap: balance;
}

.contact-title span {
  display: block;
  white-space: nowrap;
}

.contact-form__label {
  color: rgba(33, 27, 23, 0.7);
  font-size: clamp(0.58rem, 0.64vw, 0.74rem);
  line-height: 1;
  font-weight: 760;
  letter-spacing: 0.16em;
  text-transform: uppercase;
}

.contact-inquiry__copy {
  max-width: 39ch;
  margin: clamp(1.5rem, 3vh, 2.4rem) 0 0;
  color: rgba(33, 27, 23, 0.7);
  font-size: clamp(0.78rem, 0.88vw, 1.02rem);
  line-height: 1.62;
  font-weight: 560;
}

.contact-form {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: end;
  gap: clamp(1.25rem, 2.4vw, 2.5rem);
  width: 100%;
  min-height: clamp(5rem, 9vh, 6.4rem);
  margin-top: clamp(3rem, 6.2vh, 5rem);
  padding: 0 0 clamp(1rem, 2vh, 1.4rem);
  border-bottom: 1px solid rgba(33, 27, 23, 0.16);
  background: transparent;
}

.contact-form::after {
  content: "";
  position: absolute;
  right: 0;
  bottom: -1px;
  left: 0;
  height: 1px;
  background: #58371f;
  transform: scaleX(0);
  transform-origin: right center;
  transition: transform 560ms cubic-bezier(0.22, 1, 0.36, 1);
}

.contact-form:focus-within::after {
  transform: scaleX(1);
  transform-origin: left center;
}

.contact-form__field {
  display: grid;
  gap: clamp(0.85rem, 1.6vh, 1.15rem);
  min-width: 0;
}

.contact-form input {
  width: 100%;
  min-width: 0;
  border: 0;
  outline: 0;
  color: #211b17;
  background: transparent;
  font: inherit;
  font-size: clamp(1rem, 1.2vw, 1.42rem);
  line-height: 1.25;
  font-weight: 480;
}

.contact-form input::placeholder {
  color: rgba(33, 27, 23, 0.68);
  opacity: 1;
}

.contact-form__note {
  display: flex;
  align-items: center;
  gap: 0.52rem;
  max-width: 46ch;
  margin-top: -0.35rem;
  color: rgba(33, 27, 23, 0.7);
  font-size: clamp(0.56rem, 0.58vw, 0.66rem);
  line-height: 1.45;
  font-weight: 620;
  letter-spacing: 0.045em;
}

.contact-form__note::before {
  content: "";
  flex: 0 0 auto;
  width: 0.28rem;
  height: 0.28rem;
  border: 1px solid rgba(88, 55, 31, 0.72);
  border-radius: 50%;
}

.contact-form button {
  display: inline-flex;
  align-items: center;
  justify-content: flex-end;
  width: clamp(2.4rem, 3.2vw, 3rem);
  height: clamp(2.4rem, 3.2vw, 3rem);
  padding: 0 0 0.12em;
  border: 0;
  border-radius: 0;
  color: #211b17;
  background: transparent;
  font: inherit;
  font-size: clamp(1.55rem, 1.9vw, 2.2rem);
  font-weight: 400;
  line-height: 1;
  cursor: pointer;
  margin-bottom: 0.34rem;
  transition: color 240ms ease, transform 420ms cubic-bezier(0.22, 1, 0.36, 1);
}

.contact-form button:hover,
.contact-form button:focus-visible {
  color: #58371f;
  background: transparent;
  transform: translate3d(6px, 0, 0);
}

.contact-footer {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
  align-items: end;
  gap: 2rem;
  margin-top: clamp(3rem, 6vh, 5rem);
  padding-top: clamp(1.2rem, 2.4vh, 1.8rem);
  border-top: 1px solid rgba(33, 27, 23, 0.14);
  color: rgba(33, 27, 23, 0.56);
  font-size: clamp(0.58rem, 0.66vw, 0.76rem);
  line-height: 1.45;
  font-weight: 620;
}

.contact-footer__partners {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: clamp(0.85rem, 1.2vw, 1.3rem);
  justify-self: center;
}

.contact-footer__partner-separator {
  color: rgba(33, 27, 23, 0.38);
  font-family: "Iowan Old Style", "Baskerville", "Times New Roman", serif;
  font-size: clamp(0.82rem, 0.9vw, 1.04rem);
  line-height: 1;
  font-style: italic;
  font-weight: 400;
  transform: translate3d(0, -0.04em, 0);
}

.contact-footer__partner {
  display: inline-flex;
  align-items: center;
}

.contact-footer__partner::after {
  display: none;
}

.contact-footer__partner img {
  display: block;
  width: auto;
  filter: brightness(0) saturate(100%);
  opacity: 0.68;
  transition:
    opacity 240ms ease,
    transform 420ms cubic-bezier(0.22, 1, 0.36, 1);
}

.contact-footer__partner--paris img {
  height: clamp(1.26rem, 1.5vw, 1.68rem);
}

.contact-footer__partner--oner img {
  height: clamp(0.92rem, 1.08vw, 1.2rem);
}

.contact-footer__partner:hover img,
.contact-footer__partner:focus-visible img {
  opacity: 0.9;
  transform: translate3d(0, -1px, 0);
}

.contact-footer__copyright {
  color: rgba(33, 27, 23, 0.66);
  font-size: clamp(0.6rem, 0.68vw, 0.8rem);
  font-weight: 720;
  letter-spacing: 0.08em;
}

.contact-footer__credit {
  display: grid;
  justify-items: end;
  gap: 0.32rem;
  color: rgba(33, 27, 23, 0.66);
  letter-spacing: 0;
  text-transform: none;
}

.contact-footer__credit::after {
  bottom: -0.48rem;
  opacity: 0.18;
}

.contact-footer__credit-label {
  color: rgba(33, 27, 23, 0.68);
  font-size: clamp(0.48rem, 0.52vw, 0.6rem);
  line-height: 1;
  font-weight: 720;
  letter-spacing: 0.16em;
  text-transform: uppercase;
}

.contact-footer__credit-name {
  display: inline-flex;
  align-items: baseline;
  gap: 0.48rem;
  color: rgba(33, 27, 23, 0.82);
  font-size: clamp(0.72rem, 0.82vw, 0.96rem);
  line-height: 1;
  font-weight: 680;
}

.contact-footer__credit-arrow {
  display: inline-block;
  color: rgba(88, 55, 31, 0.72);
  font-size: 0.9em;
  transition: transform 420ms cubic-bezier(0.22, 1, 0.36, 1);
}

.contact-footer__credit:hover .contact-footer__credit-arrow,
.contact-footer__credit:focus-visible .contact-footer__credit-arrow {
  transform: translate3d(3px, -3px, 0);
}

.contact-footer__legal {
  display: grid;
  justify-items: start;
  gap: 0.68rem;
}

.contact-footer__policies {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.42rem;
  color: rgba(33, 27, 23, 0.68);
  font-size: clamp(0.48rem, 0.52vw, 0.6rem);
  line-height: 1.35;
  font-weight: 600;
  letter-spacing: 0.035em;
}

.contact-footer__policy {
  position: relative;
  padding: 0;
  border: 0;
  color: inherit;
  background: transparent;
  font: inherit;
  letter-spacing: inherit;
  transition: color 220ms ease;
}

.contact-footer__policy:hover,
.contact-footer__policy:focus-visible {
  color: rgba(33, 27, 23, 0.78);
  outline: none;
}

.contact-footer__policy + .contact-footer__policy::before {
  content: "·";
  margin-right: 0.42rem;
  color: rgba(33, 27, 23, 0.24);
}

.contact-footer__credit {
  justify-self: end;
  text-align: right;
}

.whatsapp-tab {
  position: fixed;
  right: 0;
  bottom: clamp(1.35rem, 3.8vh, 2.8rem);
  z-index: 37;
  display: grid;
  grid-template-rows: auto minmax(0, 1fr);
  justify-items: center;
  gap: 0.72rem;
  width: clamp(2.85rem, 3.1vw, 3.35rem);
  height: clamp(8.8rem, 15.8vh, 10.2rem);
  padding: 0.78rem 0 0.92rem;
  overflow: hidden;
  border: 1px solid rgba(255, 255, 255, 0.2);
  border-right: 0;
  border-radius: 4px 0 0 4px;
  color: #fff;
  background: #25d366;
  box-shadow: -14px 20px 42px rgba(8, 48, 25, 0.22);
  opacity: 0;
  visibility: hidden;
  filter: blur(4px);
  transform: translate3d(102%, 10px, 0);
  pointer-events: none;
  transition:
    opacity 480ms ease,
    visibility 0s linear 720ms,
    filter 560ms ease,
    transform 720ms cubic-bezier(0.22, 1, 0.36, 1),
    background-color 240ms ease,
    box-shadow 420ms ease;
  will-change: opacity, filter, transform;
}

.whatsapp-tab::before {
  content: "";
  position: absolute;
  inset: 0;
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.12), transparent 42%),
    linear-gradient(120deg, transparent 25%, rgba(8, 78, 37, 0.13) 100%);
  pointer-events: none;
}

body.is-whatsapp-visible .whatsapp-tab {
  opacity: 1;
  visibility: visible;
  filter: blur(0);
  transform: translate3d(0, 0, 0);
  pointer-events: auto;
  transition-delay: 0s;
}

.whatsapp-tab__icon,
.whatsapp-tab__label {
  position: relative;
  z-index: 1;
}

.whatsapp-tab__icon {
  width: 1.28rem;
  height: 1.28rem;
  transition: transform 420ms cubic-bezier(0.22, 1, 0.36, 1);
}

.whatsapp-tab__label {
  writing-mode: vertical-rl;
  color: rgba(255, 255, 255, 0.94);
  font-size: clamp(0.56rem, 0.59vw, 0.66rem);
  line-height: 1;
  font-weight: 760;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.whatsapp-tab:hover,
.whatsapp-tab:focus-visible {
  background: #20c760;
  box-shadow: -18px 22px 48px rgba(8, 48, 25, 0.28);
  outline: none;
}

.whatsapp-tab:hover .whatsapp-tab__icon,
.whatsapp-tab:focus-visible .whatsapp-tab__icon {
  transform: scale(1.08);
}

.cookie-banner {
  position: fixed;
  right: 50%;
  bottom: clamp(1.2rem, 3vh, 2rem);
  z-index: 72;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: clamp(1.5rem, 2.1vw, 2rem);
  width: min(calc(100vw - 3rem), 680px);
  padding: clamp(1.1rem, 1.35vw, 1.3rem) clamp(1.2rem, 1.55vw, 1.45rem);
  overflow: hidden;
  border: 1px solid rgba(243, 234, 217, 0.22);
  border-radius: 2px;
  color: #f3ead9;
  background:
    linear-gradient(90deg, rgba(243, 234, 217, 0.025), transparent 42%),
    linear-gradient(135deg, rgba(38, 31, 26, 0.97), rgba(18, 16, 14, 0.985));
  box-shadow:
    0 26px 58px rgba(8, 6, 5, 0.34),
    0 5px 15px rgba(8, 6, 5, 0.2),
    inset 0 1px rgba(243, 234, 217, 0.065);
  opacity: 0;
  visibility: hidden;
  transform: translate3d(50%, 22px, 0);
  pointer-events: none;
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  transition:
    opacity 420ms ease,
    visibility 0s linear 520ms,
    transform 680ms cubic-bezier(0.22, 1, 0.36, 1);
}

.cookie-banner::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 38%;
  height: 1px;
  background: linear-gradient(90deg, rgba(243, 234, 217, 0.72), transparent);
  pointer-events: none;
}

.cookie-banner.is-visible {
  opacity: 1;
  visibility: visible;
  transform: translate3d(50%, 0, 0);
  pointer-events: auto;
  transition-delay: 0s;
}

.cookie-banner__copy {
  display: grid;
  justify-items: start;
  gap: 0.45rem;
}

.cookie-banner__eyebrow {
  margin: 0;
  color: rgba(243, 234, 217, 0.6);
  font-size: clamp(0.56rem, 0.6vw, 0.66rem);
  line-height: 1;
  font-weight: 720;
  letter-spacing: 0.2em;
  text-transform: uppercase;
}

.cookie-banner__text {
  max-width: 50ch;
  margin: 0;
  color: rgba(243, 234, 217, 0.84);
  font-size: clamp(0.74rem, 0.78vw, 0.86rem);
  line-height: 1.56;
  font-weight: 500;
  text-wrap: pretty;
}

.cookie-banner__policy {
  position: relative;
  margin-top: 0.08rem;
  padding: 0 0 0.15rem;
  border: 0;
  color: rgba(243, 234, 217, 0.52);
  background: transparent;
  font: inherit;
  font-size: clamp(0.56rem, 0.58vw, 0.64rem);
  line-height: 1.1;
  font-weight: 650;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  transition: color 220ms ease;
}

.cookie-banner__policy::after {
  content: "";
  position: absolute;
  right: 0;
  bottom: 0;
  left: 0;
  height: 1px;
  background: currentColor;
  opacity: 0.34;
  transform: scaleX(0.34);
  transform-origin: left center;
  transition: transform 360ms cubic-bezier(0.22, 1, 0.36, 1), opacity 220ms ease;
}

.cookie-banner__policy:hover,
.cookie-banner__policy:focus-visible {
  color: #f3ead9;
  outline: none;
}

.cookie-banner__policy:hover::after,
.cookie-banner__policy:focus-visible::after {
  opacity: 0.72;
  transform: scaleX(1);
}

.cookie-banner__actions {
  display: flex;
  align-items: center;
  align-self: stretch;
  padding-left: clamp(1.25rem, 1.8vw, 1.6rem);
  border-left: 1px solid rgba(243, 234, 217, 0.14);
}

.cookie-banner__button {
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  min-width: 7.6rem;
  min-height: 44px;
  padding: 0 1rem;
  border: 1px solid rgba(243, 234, 217, 0.38);
  border-radius: 2px;
  color: #f3ead9;
  background: transparent;
  font: inherit;
  font-size: clamp(0.58rem, 0.62vw, 0.68rem);
  line-height: 1;
  font-weight: 720;
  letter-spacing: 0.13em;
  white-space: nowrap;
  text-transform: uppercase;
  transition:
    color 220ms ease,
    border-color 220ms ease,
    background-color 220ms ease,
    transform 360ms cubic-bezier(0.22, 1, 0.36, 1);
}

.cookie-banner__button-arrow {
  display: inline-block;
  font-size: 0.88rem;
  line-height: 1;
  letter-spacing: 0;
  transform: translateX(0);
  transition: transform 360ms cubic-bezier(0.22, 1, 0.36, 1);
}

.cookie-banner__button:hover {
  color: #211b17;
  border-color: #f3ead9;
  background: #f3ead9;
  outline: none;
  transform: translate3d(0, -1px, 0);
}

.cookie-banner__button:hover .cookie-banner__button-arrow {
  transform: translateX(3px);
}

.cookie-banner__button:focus-visible,
.cookie-banner__policy:focus-visible {
  outline: 2px solid #f3ead9;
  outline-offset: 3px;
}

.cookie-banner__button--primary {
  color: #f3ead9;
  border-color: rgba(243, 234, 217, 0.42);
  background: rgba(243, 234, 217, 0.025);
}

.cookie-banner__button--primary:hover,
.cookie-banner__button--primary:focus-visible {
  color: #211b17;
  border-color: #f3ead9;
  background: #f3ead9;
}

.legal-modal {
  position: fixed;
  inset: 0;
  z-index: 94;
  display: grid;
  place-items: center;
  padding: clamp(1rem, 3vw, 3rem);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity 340ms ease, visibility 0s linear 520ms;
}

.legal-modal.is-open {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transition-delay: 0s;
}

.legal-modal__backdrop {
  position: absolute;
  inset: 0;
  border: 0;
  background: rgba(14, 11, 9, 0.68);
  backdrop-filter: blur(18px) saturate(78%);
  -webkit-backdrop-filter: blur(18px) saturate(78%);
}

.legal-modal__dialog {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-rows: auto auto minmax(0, 1fr);
  width: min(92vw, 1040px);
  max-height: min(86vh, 820px);
  overflow: hidden;
  border: 1px solid rgba(33, 27, 23, 0.15);
  border-radius: 6px;
  color: #211b17;
  background: rgba(246, 240, 230, 0.98);
  box-shadow: 0 36px 110px rgba(10, 7, 5, 0.38);
  opacity: 0;
  filter: blur(8px);
  transform: translate3d(0, 24px, 0) scale(0.985);
  transition:
    opacity 320ms ease,
    filter 460ms ease,
    transform 620ms cubic-bezier(0.22, 1, 0.36, 1);
}

.legal-modal.is-open .legal-modal__dialog {
  opacity: 1;
  filter: blur(0);
  transform: none;
}

.legal-modal__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 2rem;
  padding: clamp(1.1rem, 2vw, 1.6rem) clamp(1.2rem, 2.5vw, 2.2rem) 0.9rem;
}

.legal-modal__kicker {
  margin: 0;
  color: rgba(33, 27, 23, 0.68);
  font-size: clamp(0.46rem, 0.52vw, 0.6rem);
  line-height: 1;
  font-weight: 760;
  letter-spacing: 0.15em;
  text-transform: uppercase;
}

.legal-modal__close {
  position: relative;
  display: grid;
  place-items: center;
  width: 2.35rem;
  height: 2.35rem;
  padding: 0;
  border: 1px solid rgba(33, 27, 23, 0.18);
  border-radius: 50%;
  color: #211b17;
  background: transparent;
  font: inherit;
  transition: border-color 220ms ease, transform 380ms cubic-bezier(0.22, 1, 0.36, 1);
}

.legal-modal__close::before,
.legal-modal__close::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 0.82rem;
  height: 1px;
  border-radius: 1px;
  background: currentColor;
  transform-origin: center;
}

.legal-modal__close::before {
  transform: translate(-50%, -50%) rotate(45deg);
}

.legal-modal__close::after {
  transform: translate(-50%, -50%) rotate(-45deg);
}

.legal-modal__close:hover,
.legal-modal__close:focus-visible {
  border-color: rgba(33, 27, 23, 0.56);
  outline: none;
  transform: rotate(4deg) scale(1.04);
}

.legal-modal__tabs {
  display: flex;
  align-items: end;
  gap: clamp(1rem, 2.4vw, 2.4rem);
  padding: 0 clamp(1.2rem, 2.5vw, 2.2rem);
  border-bottom: 1px solid rgba(33, 27, 23, 0.12);
}

.legal-modal__tab {
  position: relative;
  min-height: 2.7rem;
  padding: 0 0 0.82rem;
  border: 0;
  color: rgba(33, 27, 23, 0.68);
  background: transparent;
  font: inherit;
  font-size: clamp(0.52rem, 0.59vw, 0.68rem);
  line-height: 1;
  font-weight: 740;
  letter-spacing: 0.07em;
  text-transform: uppercase;
  transition: color 220ms ease;
}

.legal-modal__tab::after {
  content: "";
  position: absolute;
  right: 0;
  bottom: -1px;
  left: 0;
  height: 1px;
  background: #58371f;
  transform: scaleX(0);
  transform-origin: left center;
  transition: transform 420ms cubic-bezier(0.22, 1, 0.36, 1);
}

.legal-modal__tab:hover,
.legal-modal__tab:focus-visible,
.legal-modal__tab[aria-selected="true"] {
  color: #211b17;
  outline: none;
}

.legal-modal__tab[aria-selected="true"]::after {
  transform: scaleX(1);
}

.legal-modal__body {
  overflow: auto;
  overscroll-behavior: contain;
  scrollbar-width: thin;
  scrollbar-color: rgba(88, 55, 31, 0.42) transparent;
}

.legal-modal__panel {
  display: none;
  grid-template-columns: minmax(13rem, 0.72fr) minmax(0, 1.28fr);
  gap: clamp(2rem, 5vw, 5rem);
  padding: clamp(1.8rem, 4vw, 3.8rem) clamp(1.2rem, 2.5vw, 2.2rem) clamp(2.4rem, 5vw, 4.5rem);
}

.legal-modal__panel.is-active {
  display: grid;
}

.legal-modal__intro {
  position: sticky;
  top: 0;
  align-self: start;
}

.legal-modal__number {
  display: block;
  margin-bottom: 0.9rem;
  color: rgba(88, 55, 31, 0.54);
  font-size: 0.56rem;
  font-weight: 760;
  letter-spacing: 0.14em;
}

.legal-modal__title {
  max-width: 8ch;
  margin: 0;
  font-size: clamp(2.2rem, 4.5vw, 4.8rem);
  line-height: 0.95;
  font-weight: 650;
  letter-spacing: 0;
}

.legal-modal__date {
  margin: 1.15rem 0 0;
  color: rgba(33, 27, 23, 0.68);
  font-size: 0.62rem;
  line-height: 1.5;
  font-weight: 600;
}

.legal-modal__content {
  display: grid;
  gap: 1.9rem;
  color: rgba(33, 27, 23, 0.76);
}

.legal-modal__section {
  display: grid;
  gap: 0.58rem;
  padding-top: 1.15rem;
  border-top: 1px solid rgba(33, 27, 23, 0.12);
}

.legal-modal__section:first-child {
  padding-top: 0;
  border-top: 0;
}

.legal-modal__section h3 {
  margin: 0;
  color: #211b17;
  font-size: clamp(0.72rem, 0.84vw, 0.96rem);
  line-height: 1.35;
  font-weight: 760;
}

.legal-modal__section p,
.legal-modal__section li {
  margin: 0;
  font-size: clamp(0.66rem, 0.76vw, 0.86rem);
  line-height: 1.72;
  font-weight: 520;
}

.legal-modal__section ul {
  display: grid;
  gap: 0.38rem;
  margin: 0;
  padding-left: 1.15rem;
}

.legal-modal__section a {
  color: #58371f;
  font-weight: 680;
}

.legal-modal__storage-list {
  display: grid;
  gap: 0;
  margin: 0;
  border-top: 1px solid rgba(33, 27, 23, 0.12);
}

.legal-modal__storage-row {
  display: grid;
  grid-template-columns: minmax(8rem, 0.7fr) minmax(0, 1.3fr);
  gap: 1rem;
  padding: 0.85rem 0;
  border-bottom: 1px solid rgba(33, 27, 23, 0.12);
}

.legal-modal__storage-row dt,
.legal-modal__storage-row dd {
  margin: 0;
  font-size: clamp(0.6rem, 0.7vw, 0.8rem);
  line-height: 1.55;
}

.legal-modal__storage-row dt {
  color: #211b17;
  font-weight: 720;
}

.legal-modal__storage-row dd {
  color: rgba(33, 27, 23, 0.64);
}

.legal-modal__cookie-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.55rem;
  padding-top: 0.6rem;
}

.legal-modal__cookie-action {
  min-height: 2.55rem;
  padding: 0 0.92rem;
  border: 1px solid rgba(33, 27, 23, 0.2);
  border-radius: 3px;
  color: #211b17;
  background: transparent;
  font: inherit;
  font-size: 0.56rem;
  font-weight: 720;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  transition: color 220ms ease, border-color 220ms ease, background-color 220ms ease;
}

.legal-modal__cookie-action:hover,
.legal-modal__cookie-action:focus-visible {
  color: #f3ead9;
  border-color: #58371f;
  background: #58371f;
  outline: none;
}

body.is-legal-open {
  overflow: hidden !important;
}

.site-cursor {
  position: fixed;
  top: 0;
  left: 0;
  z-index: 100;
  width: 1px;
  height: 1px;
  opacity: 0;
  pointer-events: none;
  transform: translate3d(-80px, -80px, 0);
  transition: opacity 160ms ease;
  will-change: transform;
}

.site-cursor.is-visible {
  opacity: 1;
}

.site-cursor__arrow {
  position: absolute;
  top: -2px;
  left: -2px;
  width: 27px;
  height: 35px;
  overflow: visible;
  color: #58371f;
  filter: drop-shadow(0 2px 7px rgba(16, 12, 9, 0.28));
  transform-origin: 2px 2px;
  transition: transform 260ms cubic-bezier(0.22, 1, 0.36, 1);
}

.site-cursor__label {
  position: absolute;
  top: 22px;
  left: 19px;
  min-width: max-content;
  padding: 0.48rem 0.62rem 0.45rem;
  color: #f3ead9;
  background: #58371f;
  box-shadow: 0 10px 28px rgba(20, 13, 9, 0.2);
  font-size: 0.62rem;
  line-height: 1;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  opacity: 0;
  filter: blur(3px);
  transform: translate3d(-5px, -4px, 0) scale(0.92);
  transform-origin: top left;
  transition:
    opacity 180ms ease,
    filter 220ms ease,
    transform 260ms cubic-bezier(0.22, 1, 0.36, 1);
}

.site-cursor.is-action .site-cursor__arrow {
  transform: rotate(-3deg) scale(1.04);
}

.site-cursor.is-action .site-cursor__label {
  opacity: 1;
  filter: blur(0);
  transform: translate3d(0, 0, 0) scale(1);
}

.site-cursor.is-flipped-x .site-cursor__label {
  right: -2px;
  left: auto;
  transform-origin: top right;
}

.site-cursor.is-flipped-y .site-cursor__label {
  top: auto;
  bottom: 10px;
  transform-origin: bottom left;
}

.site-cursor.is-flipped-x.is-flipped-y .site-cursor__label {
  transform-origin: bottom right;
}

@media (pointer: fine) {
  html.has-custom-cursor,
  html.has-custom-cursor * {
    cursor: none !important;
  }
}

.page-scrollbar {
  position: fixed;
  top: 50%;
  right: clamp(5px, 0.65vw, 12px);
  z-index: 35;
  width: 14px;
  height: min(31vh, 260px);
  opacity: 0;
  transform: translate3d(0, -50%, 0);
  pointer-events: none;
  transition:
    opacity 420ms ease,
    transform 420ms cubic-bezier(0.22, 1, 0.36, 1);
}

body.is-native-scroll .page-scrollbar {
  opacity: 0.34;
}

body.is-native-scroll.is-scrolling .page-scrollbar {
  opacity: 0.78;
}

body.is-native-scroll.is-feature-slider .page-scrollbar,
body.is-native-scroll.is-feature-slider.is-scrolling .page-scrollbar,
body.is-native-scroll.is-residence-slider .page-scrollbar,
body.is-native-scroll.is-residence-slider.is-scrolling .page-scrollbar {
  opacity: 0;
  transition-duration: 260ms;
}

body.is-native-scroll.is-location-map-phase .page-scrollbar,
body.is-native-scroll.is-location-map-phase.is-scrolling .page-scrollbar {
  opacity: 0;
  transform: translate3d(10px, -50%, 0);
  transition-duration: 260ms;
}

.page-scrollbar__track {
  position: absolute;
  top: 0;
  bottom: 0;
  left: 50%;
  width: 1px;
  background: var(--scroll-track);
  transform: translateX(-50%);
}

.page-scrollbar__thumb {
  position: absolute;
  top: 0;
  left: -1px;
  width: 3px;
  height: clamp(34px, 5.5vh, 48px);
  background: var(--scroll-thumb);
  box-shadow: 0 0 14px var(--scroll-glow);
  transform: translate3d(0, var(--scroll-thumb-y, 0px), 0);
  will-change: transform;
}

.gallery-stage {
  position: absolute;
  inset: 0;
  z-index: 5;
  pointer-events: none;
  opacity: var(--gallery-stage-progress, 0);
  perspective: 1800px;
  transform-style: preserve-3d;
  will-change: opacity;
}

.gallery-card {
  --gallery-card-opacity: 0;
  --gallery-card-scale: 1;
  --gallery-card-y: 72vh;
  --gallery-card-tone: 0;
  position: absolute;
  left: 50%;
  top: clamp(118px, 13.5vh, 154px);
  width: min(76vw, 1280px);
  height: min(56vh, 590px);
  background:
    linear-gradient(120deg, rgba(243, 234, 217, 0.12), transparent 34%, rgba(0, 0, 0, 0.18) 100%),
    radial-gradient(circle at calc(26% + var(--gallery-card-tone) * 8%) 34%, rgba(255, 255, 255, 0.12), transparent 26%),
    linear-gradient(180deg, #77736b 0%, #5c5851 52%, #48443f 100%);
  opacity: var(--gallery-card-opacity);
  transform: translate3d(-50%, var(--gallery-card-y), 0) scale(var(--gallery-card-scale));
  transform-origin: center top;
  overflow: hidden;
  box-shadow:
    0 38px 110px rgba(0, 0, 0, 0.34),
    inset 0 0 0 1px rgba(243, 234, 217, 0.09);
  will-change: transform, opacity;
}

.gallery-card::before {
  content: "";
  position: absolute;
  inset: 0;
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.12), transparent 28%),
    radial-gradient(circle at 48% 36%, rgba(255, 255, 255, 0.07), transparent 33%);
  opacity: 0.66;
}

.gallery-card--day {
  background:
    linear-gradient(120deg, rgba(243, 234, 217, 0.07), transparent 34%, rgba(0, 0, 0, 0.16) 100%),
    var(--final-image-day, none) center top / cover no-repeat;
}

.gallery-card--night {
  background:
    linear-gradient(120deg, rgba(243, 234, 217, 0.06), transparent 34%, rgba(0, 0, 0, 0.18) 100%),
    var(--final-image-night, none) center top / cover no-repeat;
}

.gallery-card::after {
  content: "";
  position: absolute;
  inset: 0;
  background:
    linear-gradient(90deg, rgba(10, 9, 8, 0.24), transparent 28%, transparent 72%, rgba(10, 9, 8, 0.24)),
    linear-gradient(180deg, rgba(10, 9, 8, 0.18), transparent 26%, rgba(10, 9, 8, 0.26));
}

.gallery-copy {
  --gallery-copy-y: 18px;
  --gallery-copy-opacity: 0;
  position: absolute;
  left: 50%;
  top: calc(clamp(118px, 13.5vh, 154px) + min(56vh, 590px) - clamp(128px, 12.6vh, 152px));
  width: min(68vw, 1120px);
  min-height: clamp(96px, 11.5vh, 132px);
  display: grid;
  grid-template-columns: minmax(13rem, 0.72fr) minmax(0, 1.28fr);
  column-gap: clamp(1.6rem, 3.4vw, 4.2rem);
  align-items: end;
  padding: clamp(1rem, 1.55vw, 1.5rem) clamp(1.1rem, 2vw, 2rem) clamp(1.05rem, 1.75vw, 1.75rem);
  color: rgba(243, 234, 217, 0.68);
  text-align: left;
  background:
    linear-gradient(90deg, rgba(16, 13, 10, 0.7), rgba(21, 17, 13, 0.44) 48%, rgba(21, 17, 13, 0.08) 100%),
    linear-gradient(180deg, rgba(243, 234, 217, 0.08), rgba(243, 234, 217, 0));
  border-top: 1px solid rgba(243, 234, 217, 0.2);
  border-left: 1px solid rgba(243, 234, 217, 0.08);
  backdrop-filter: blur(18px) saturate(1.05);
  -webkit-backdrop-filter: blur(18px) saturate(1.05);
  box-shadow: 0 28px 88px rgba(0, 0, 0, 0.22);
  opacity: var(--gallery-copy-opacity);
  transform: translate3d(-50%, var(--gallery-copy-y), 0);
  will-change: opacity, transform;
}

.gallery-copy::before {
  content: "01";
  position: absolute;
  left: clamp(1.1rem, 2vw, 2rem);
  top: clamp(0.86rem, 1.2vw, 1.15rem);
  color: rgba(243, 234, 217, 0.42);
  font-size: clamp(0.54rem, 0.58vw, 0.68rem);
  line-height: 1;
  font-weight: 800;
  letter-spacing: 0.26em;
}

.gallery-copy h2 {
  margin: 0;
  padding-top: clamp(1.35rem, 2vw, 1.9rem);
  color: rgba(243, 234, 217, 0.94);
  font-size: clamp(0.96rem, 1.02vw, 1.34rem);
  line-height: 1.04;
  font-weight: 760;
  letter-spacing: 0;
  text-wrap: balance;
}

.gallery-copy p {
  max-width: 47rem;
  margin: 0;
  font-size: clamp(0.63rem, 0.68vw, 0.82rem);
  line-height: 1.68;
  font-weight: 500;
  text-wrap: pretty;
}

.brand-title img {
  display: block;
  width: 100%;
  height: auto;
}

.frame-corner {
  position: absolute;
  pointer-events: none;
  z-index: 4;
}

.frame-corner::before,
.frame-corner::after {
  content: "";
  position: absolute;
  display: block;
  opacity: calc((1 - var(--frame-line-exit, 0)) * (1 - var(--fullscreen-progress, 0)));
  will-change: transform, opacity;
}

.frame-corner::before {
  width: calc(54% * (1 - var(--frame-line-exit, 0)));
  height: 0;
  border-top: 1px dashed var(--dash);
}

.frame-corner::after {
  width: 0;
  height: calc(54% * (1 - var(--frame-line-exit, 0)));
  border-left: 1px dashed var(--dash);
}

.frame-corner.top-left {
  inset: 0 auto auto 0;
  width: 100%;
  height: 100%;
}

.frame-corner.top-left::before,
.frame-corner.top-left::after {
  top: 0;
  left: 0;
  transform-origin: top left;
}

.frame-corner.bottom-right {
  inset: auto 0 0 auto;
  width: 100%;
  height: 100%;
}

.frame-corner.bottom-right::before,
.frame-corner.bottom-right::after {
  right: 0;
  bottom: 0;
  transform-origin: bottom right;
}

.frame-corner.bottom-right::before {
  border-top: 0;
  border-bottom: 1px dashed var(--dash);
}

.frame-corner.bottom-right::after {
  border-left: 0;
  border-right: 1px dashed var(--dash);
}

.frame-viewport {
  position: absolute;
  inset: var(--frame-pad);
  overflow: hidden;
  background: #34281f;
  opacity: calc(1 - var(--final-media-progress, 0));
  will-change: opacity;
}

.stage.is-carousel-interactive .thumb-window {
  pointer-events: auto;
}

.frame-viewport::after {
  content: none;
}

.main-frame::after {
  content: "";
  position: absolute;
  top: clamp(18px, 1.56vh, 24px);
  right: clamp(18px, 0.98vw, 24px);
  width: clamp(8px, 0.62vw, 13px);
  height: clamp(8px, 0.62vw, 13px);
  border-radius: 999px;
  background: var(--cream);
  z-index: 5;
  opacity: calc((1 - var(--ui-exit, 0)) * (1 - var(--fullscreen-progress, 0)));
}

.frame-track {
  position: relative;
  z-index: 1;
  height: 100%;
  display: flex;
  transform: translate3d(0, 0, 0);
  will-change: transform;
}

.frame-viewport.is-pulsing {
  animation: framePulse 220ms ease-out;
}

@keyframes framePulse {
  0%,
  100% {
    filter: brightness(1);
  }

  45% {
    filter: brightness(1.004);
  }
}

.frame-panel {
  position: relative;
  width: 100%;
  height: 100%;
  flex: 0 0 100%;
  background: var(--slide-bg);
  background-size: cover;
  background-position: center;
}

.frame-panel.final-panel::after {
  content: none;
}

.video-info {
  position: absolute;
  inset: 0 auto 0 0;
  width: min(31.5vw, 640px);
  padding: clamp(88px, 11vh, 140px) clamp(34px, 3.2vw, 64px) clamp(44px, 6vh, 82px);
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  z-index: 7;
  color: rgba(243, 234, 217, 0.92);
  background:
    linear-gradient(90deg, rgba(12, 11, 9, 0.72), rgba(22, 19, 15, 0.54) 58%, rgba(22, 19, 15, 0));
  backdrop-filter: blur(calc(var(--video-mask-progress, 0) * 24px)) saturate(1.08);
  -webkit-backdrop-filter: blur(calc(var(--video-mask-progress, 0) * 24px)) saturate(1.08);
  opacity: var(--video-mask-progress, 0);
  transform: translate3d(calc((1 - var(--video-mask-progress, 0)) * -18%), 0, 0);
  pointer-events: none;
  will-change: opacity, transform, backdrop-filter;
}

.video-info__icon {
  width: clamp(44px, 3.2vw, 64px);
  height: clamp(44px, 3.2vw, 64px);
  margin-bottom: clamp(2.2rem, 5.2vh, 4.4rem);
  display: grid;
  place-items: center;
  border-radius: 999px;
  background: rgba(243, 234, 217, 0.18);
  font-size: clamp(1rem, 1.4vw, 1.5rem);
  opacity: var(--info-icon-progress, 0);
}

.video-info__eyebrow {
  margin: 0 0 1.25rem;
  font-size: clamp(0.95rem, 1.06vw, 1.34rem);
  line-height: 1.2;
  font-weight: 800;
  text-transform: uppercase;
  opacity: var(--info-title-progress, 0);
  transform: translate3d(calc((1 - var(--info-title-progress, 0)) * 24px), 0, 0);
  will-change: opacity, transform;
}

.video-info__body {
  max-width: 29rem;
  margin: 0;
  font-size: clamp(0.9rem, 1.08vw, 1.35rem);
  line-height: 1.42;
  font-weight: 700;
  opacity: var(--info-body-progress, 0);
  transform: translate3d(0, calc((1 - var(--info-body-progress, 0)) * 18px), 0);
  will-change: opacity, transform;
}

.video-info__rule {
  width: 100%;
  border: 0;
  border-top: 1px dashed rgba(243, 234, 217, 0.72);
  margin: 0 0 clamp(2rem, 5vh, 4rem);
  opacity: var(--info-slogan-progress, 0);
}

.video-info__title {
  max-width: 11ch;
  margin: 0;
  font-size: clamp(1.24rem, 1.92vw, 2.52rem);
  line-height: 1.08;
  font-weight: 800;
  letter-spacing: 0;
  text-transform: uppercase;
  opacity: var(--info-slogan-progress, 0);
  transform: translate3d(0, calc((1 - var(--info-slogan-progress, 0)) * 20px), 0);
  will-change: opacity, transform;
}

.thumb-window {
  position: absolute;
  top: 36vh;
  height: clamp(250px, 28.5vh, 334px);
  overflow: hidden;
  pointer-events: none;
  z-index: 2;
}

.thumb-window.left {
  left: 0;
  width: calc(34.05vw - clamp(22px, 1.7vw, 36px));
  -webkit-mask-image: linear-gradient(90deg, transparent 0%, black 10%, black 100%);
  mask-image: linear-gradient(90deg, transparent 0%, black 10%, black 100%);
  opacity: calc(1 - var(--left-exit, 0));
  transform: translate3d(calc(var(--left-exit, 0) * -24vw), 0, 0);
  will-change: transform, opacity;
}

.thumb-window.right {
  left: calc(34.05vw + max(32.35vw, 440px) + clamp(22px, 1.7vw, 36px));
  right: 0;
  -webkit-mask-image: linear-gradient(90deg, black 0%, black 88%, transparent 100%);
  mask-image: linear-gradient(90deg, black 0%, black 88%, transparent 100%);
}

.thumb-layer {
  --thumb-w: clamp(170px, 10.88vw, 236px);
  --thumb-gap: clamp(16px, 0.82vw, 22px);
  position: absolute;
  inset: 0;
}

.thumb {
  position: absolute;
  top: 0;
  left: 0;
  width: var(--thumb-w);
  height: clamp(250px, 28.5vh, 334px);
  background: var(--slide-bg);
  background-size: cover;
  background-position: center;
  box-shadow: 0 22px 52px rgba(0, 0, 0, 0.22);
  padding: 0;
  border: 0;
  cursor: pointer;
  opacity: var(--thumb-opacity, 0.74);
  transform: translate3d(var(--thumb-x, 0px), 0, 0);
  transition: opacity 220ms ease, filter 220ms ease;
  will-change: transform, opacity;
}

.thumb:hover {
  opacity: 0.94;
  filter: brightness(1.04);
}

.thumb:focus-visible {
  outline: 1px solid rgba(243, 234, 217, 0.86);
  outline-offset: -3px;
}

.slide-caption {
  position: absolute;
  top: calc(36vh + clamp(250px, 28.5vh, 334px) + ((100vh - 36vh - clamp(250px, 28.5vh, 334px) - 10vh) / 2));
  left: calc(34.05vw + max(32.35vw, 440px) + clamp(22px, 1.7vw, 36px));
  right: clamp(42px, 4vw, 82px);
  z-index: 3;
  display: grid;
  place-items: center;
  pointer-events: none;
  opacity: calc(var(--slide-caption-progress, 0) * (1 - var(--left-exit, 0)) * (1 - var(--ui-exit, 0)));
  transform: translate3d(0, calc(-50% + (1 - var(--slide-caption-progress, 0)) * 8px), 0);
  will-change: opacity, transform;
}

.slide-caption__text {
  position: relative;
  display: block;
  width: min(31rem, 100%);
  color: rgba(243, 234, 217, 0.58);
  font-size: clamp(0.72rem, 0.72vw, 0.92rem);
  line-height: 1.82;
  font-weight: 500;
  letter-spacing: 0.005em;
  text-align: center;
  white-space: pre-line;
  text-wrap: balance;
  text-shadow: 0 14px 34px rgba(0, 0, 0, 0.32);
}

.slide-caption__text strong {
  color: rgba(255, 255, 255, 0.96);
  font-weight: 600;
}

.slide-caption__text::before,
.slide-caption__text::after {
  content: none;
}

.scroll-cue {
  position: absolute;
  left: 50%;
  bottom: 2.2vh;
  display: flex;
  align-items: center;
  gap: 0.58rem;
  transform: translateX(-50%);
  font-size: clamp(0.58rem, 0.62vw, 0.76rem);
  font-weight: 700;
  color: rgba(243, 234, 217, 0.72);
  text-transform: uppercase;
  white-space: nowrap;
  opacity: calc(1 - var(--ui-exit, 0));
  will-change: opacity;
}

.scroll-cue__icon {
  position: relative;
  width: clamp(24px, 1.46vw, 32px);
  height: clamp(24px, 1.46vw, 32px);
  display: block;
  flex: 0 0 auto;
  border-radius: 999px;
  color: transparent;
  font-size: 0;
}

.scroll-cue__icon::before,
.scroll-cue__icon::after {
  content: "";
  position: absolute;
}

.scroll-cue__icon::before {
  inset: 0;
  border: 1px dashed rgba(243, 234, 217, 0.42);
  border-radius: inherit;
  animation: rotateCue 7s linear infinite;
}

.scroll-cue__icon::after {
  top: 47%;
  left: 50%;
  width: 0.36rem;
  height: 0.36rem;
  border-right: 1.5px solid rgba(243, 234, 217, 0.82);
  border-bottom: 1.5px solid rgba(243, 234, 217, 0.82);
  transform: translate(-50%, -62%) rotate(45deg);
  animation: arrowDrop 2.2s ease-in-out infinite;
}

.scroll-cue__label {
  display: block;
}

.scroll-cue--final {
  z-index: 7;
  bottom: 2.55vh;
  color: rgba(243, 234, 217, 0.82);
  opacity: 0;
  transform: translate3d(-50%, 10px, 0);
  transition: opacity 520ms ease, transform 520ms ease;
}

.stage.is-final-cue-ready .scroll-cue--final {
  opacity: 1;
  transform: translate3d(-50%, 0, 0);
}

@keyframes rotateCue {
  to {
    transform: rotate(360deg);
  }
}

@keyframes arrowDrop {
  0% {
    opacity: 0;
    transform: translate(-50%, -112%) rotate(45deg);
  }

  18%,
  42% {
    opacity: 0.86;
    transform: translate(-50%, -62%) rotate(45deg);
  }

  74% {
    opacity: 0.42;
    transform: translate(-50%, 18%) rotate(45deg);
  }

  100% {
    opacity: 0;
    transform: translate(-50%, 18%) rotate(45deg);
  }
}

@media (max-width: 1000px) {
  .stage {
    min-height: 100svh;
    height: 100svh;
  }

  .brand-lockup__contact,
  .brand-lockup__socials {
    display: none;
  }

  .nav {
    display: none;
  }

  .copy {
    top: calc(25vh - 18px);
    left: calc(7vw + 24px);
    width: 31vw;
    z-index: 2;
  }

  .copy p {
    font-size: clamp(0.62rem, 1.5vw, 0.82rem);
  }

  .copy h1 {
    font-size: clamp(1.12rem, 5.35vw, 2rem);
  }

  .hero-stats {
    grid-template-columns: 1fr;
    gap: 0.72rem;
  }

  .final-partners {
    display: none;
  }

  .growth-signature-cta {
    display: none;
  }

  .main-frame {
    top: 15vh;
    left: 44vw;
    width: 46vw;
    min-width: 0;
    height: 68vh;
  }

  .frame-controls {
    top: calc(83vh - clamp(27px, 1.7vw, 36px));
    left: 0;
    width: 100vw;
  }

  .frame-control--prev {
    left: calc(44vw - 9px);
  }

  .frame-control--next {
    left: calc(90vw + 9px);
  }

  .thumb-window {
    top: 44vh;
    height: 31vh;
  }

  .thumb-window.left {
    width: calc(44vw - 18px);
  }

  .thumb-window.right {
    left: calc(90vw + 18px);
  }

  .thumb {
    width: 25vw;
    height: 31vh;
  }

  .scroll-cue {
    left: calc(7vw + 24px);
    bottom: 2.4vh;
    transform: none;
  }

  .video-info {
    width: min(78vw, 420px);
    padding: 6rem 2rem 3rem;
  }

  .postcard {
    --postcard-width: 88vw !important;
    --postcard-rotate: 0deg !important;
  }

  .postcard--text {
    --postcard-width: 78vw !important;
    min-height: 178px;
  }

  .postcard:nth-child(odd) {
    --postcard-left: 44% !important;
  }

  .postcard:nth-child(even) {
    --postcard-left: 58% !important;
  }

  .postcard:last-child {
    --postcard-left: 50% !important;
    --postcard-width: 94vw !important;
  }

  .postcard__copy {
    gap: 0.72rem;
  }

  .features-shell {
    width: min(88vw, 720px);
  }

  .features-intro {
    min-height: auto;
    grid-template-columns: 1fr;
    gap: 2.4rem;
    padding: 7rem 0 5rem;
  }

  .features-intro__title {
    font-size: clamp(3rem, 14vw, 5.4rem);
  }

  .feature-row {
    grid-template-columns: 1fr;
    gap: clamp(1.55rem, 4vh, 2.5rem);
    padding: clamp(5rem, 9vh, 6.5rem) 0 clamp(2.2rem, 5vh, 3.5rem);
  }

  .feature-row__copy {
    max-width: 34rem;
  }

  .feature-row__media {
    aspect-ratio: 1.3 / 1;
    max-height: 38svh;
  }

  .feature-outro-title {
    left: 0;
    right: 0;
    font-size: clamp(2.15rem, 8.6vw, 4.8rem);
  }

  .feature-outro-kicker {
    left: calc((min(88vw, 720px) - 100vw) / 2);
  }

  .feature-outro-mini {
    top: 34vh;
    left: 0;
    font-size: 0.72rem;
  }

  .feature-outro-copy {
    top: 67%;
    width: min(82vw, 31rem);
    font-size: 0.78rem;
  }

  .residence-types {
    --residence-content-width: min(92vw, 720px);
  }

  .residence-grid {
    grid-template-columns:
      minmax(0, calc(var(--residence-content-width) * 0.279))
      repeat(2, minmax(0, calc(var(--residence-content-width) * 0.265)));
  }

  .residence-card,
  .residence-gallery-card {
    min-height: 0;
    height: min(58svh, 560px);
  }

  .residence-card--summary h2 {
    font-size: clamp(1.1rem, 3.5vw, 2rem);
  }

  .residence-card__type {
    font-size: clamp(3.1rem, 11vw, 6rem);
  }

  .residence-gallery-card--landscape {
    width: min(78vw, 700px);
  }

  .residence-gallery-card--portrait {
    width: min(46vw, 410px);
  }

  .commercial-scene__inner {
    grid-template-columns: minmax(0, 1fr) minmax(14rem, 0.62fr);
    grid-template-rows: auto 1fr;
    gap: clamp(1.4rem, 4vw, 3rem);
    width: min(88vw, 720px);
  }

  .commercial-scene {
    --commercial-top-pad: clamp(5.8rem, 11vh, 7.5rem);
    --commercial-bottom-pad: clamp(2rem, 4.5vh, 3.6rem);
  }

  .commercial-scene__title {
    grid-column: 1;
    grid-row: 1 / -1;
    font-size: 0.72rem;
  }

  .commercial-flow__media {
    width: clamp(11rem, 34vw, 18rem);
    height: min(58svh, 560px);
  }

  .commercial-scene__copy {
    grid-column: 2;
    grid-row: 1 / -1;
    align-self: center;
    justify-self: center;
    font-size: clamp(0.82rem, 2vw, 1.05rem);
  }

  .commercial-details {
    --commercial-detail-width: min(88vw, 720px);
  }

  .commercial-detail {
    grid-template-columns: minmax(0, 1fr) minmax(11rem, 34vw) minmax(0, 1fr);
    gap: clamp(1.2rem, 3vw, 2.4rem);
    padding-top: clamp(5.8rem, 11vh, 7.5rem);
    padding-bottom: clamp(2rem, 4.5vh, 3.6rem);
  }

  .commercial-detail__copy {
    font-size: clamp(0.78rem, 1.65vw, 1rem);
  }

  .commercial-detail__features {
    font-size: clamp(0.48rem, 1vw, 0.64rem);
  }

  .commercial-detail__value {
    font-size: clamp(3.4rem, 8vw, 6rem);
  }

  .commercial-detail__value--range {
    font-size: clamp(2.8rem, 6vw, 4.6rem);
  }

  .commercial-detail__metric-label {
    font-size: clamp(0.78rem, 1.7vw, 1.08rem);
  }

  .location-hero {
    padding-right: 6vw;
    padding-left: 6vw;
  }

  .location-hero__headline {
    width: 88vw;
    font-size: clamp(2.15rem, 5.3vw, 4rem);
  }

  .location-hero__aside {
    top: 67%;
    left: 6vw;
    width: 24vw;
    font-size: clamp(1.35rem, 3vw, 2rem);
  }

  .location-list {
    width: min(82vw, 700px);
  }

  .location-row {
    grid-template-columns: minmax(0, 0.86fr) minmax(0, 1.14fr);
    gap: clamp(1.8rem, 5vw, 4rem);
  }

  .location-row__copy {
    font-size: clamp(0.74rem, 1.75vw, 0.92rem);
  }

  .contact-shell {
    width: 88vw;
    padding-top: clamp(6.5rem, 10vh, 8rem);
  }

  .contact-grid {
    grid-template-columns: minmax(9.5rem, 0.55fr) minmax(22rem, 1.45fr);
    gap: clamp(2rem, 4vw, 3.8rem);
  }

  .contact-main {
    grid-template-columns: minmax(12rem, 0.74fr) minmax(18rem, 1.26fr);
    gap: clamp(1.8rem, 3.5vw, 3rem);
  }

  .contact-title {
    font-size: clamp(2.75rem, 6vw, 4.8rem);
  }

  .contact-footer {
    grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
  }

  .contact-footer__legal {
    justify-self: start;
  }

  .contact-footer__credit {
    grid-column: auto;
    justify-self: end;
  }

  .page-scrollbar {
    right: 1px;
    width: 10px;
    height: 24vh;
  }
}

@media (max-width: 640px) {
  .intro-shell {
    width: min(82vw, 30rem);
    gap: 1.2rem;
  }

  .intro-progress {
    width: min(64vw, 17rem);
  }

  .intro-partners {
    bottom: 1.55rem;
    gap: 0.8rem;
  }

  .intro-partners__logo--oner {
    width: 4.25rem;
  }

  .intro-partners__logo--paris {
    width: 5.1rem;
  }

  .brand-lockup {
    gap: 0.52rem;
  }

  .header-tools {
    bottom: 1rem;
    left: calc(5vw + 24px);
    gap: 0.35rem;
  }

  body.is-cookie-visible:not(.is-contact-tools-hidden) .header-tools {
    bottom: 10.25rem;
  }

  .language-picker__trigger {
    min-width: 2.15rem;
    width: 2.15rem;
    padding: 0;
  }

  .language-picker__value,
  .language-picker__chevron {
    display: none;
  }

  .language-picker__menu {
    right: 0;
    left: auto;
    width: 7.4rem;
  }

  .brand-lockup__type {
    width: 4.1rem;
  }

  .brand-lockup__name {
    font-size: 0.7rem;
  }

  .brand-lockup__place {
    font-size: calc(0.34rem - 1px);
  }

  .feature-row {
    gap: clamp(1rem, 3vh, 1.5rem);
    padding: clamp(4rem, 8vh, 5rem) 0 clamp(1.35rem, 3vh, 2rem);
  }

  .feature-row__title {
    margin: 0.8rem 0 0.9rem;
    font-size: clamp(1.8rem, 8vw, 2.35rem);
  }

  .feature-row__body {
    font-size: 0.76rem;
    line-height: 1.58;
  }

  .feature-row__media {
    width: 100%;
    height: clamp(170px, 31svh, 280px);
    max-height: none;
    aspect-ratio: auto;
  }

  .commercial-scene__inner {
    grid-template-columns: minmax(0, 1fr) minmax(8rem, 0.68fr);
    gap: 1.1rem;
    width: 90vw;
  }

  .commercial-scene {
    --commercial-top-pad: 5.2rem;
    --commercial-bottom-pad: 1.2rem;
  }

  .commercial-scene__title {
    font-size: 0.72rem;
  }

  .commercial-flow__media {
    width: clamp(8.5rem, 34vw, 13rem);
    height: min(58svh, 560px);
  }

  .commercial-scene__copy {
    font-size: clamp(0.66rem, 2.7vw, 0.82rem);
    line-height: 1.55;
  }

  .commercial-details {
    --commercial-detail-width: 90vw;
  }

  .commercial-detail {
    grid-template-columns: minmax(0, 1fr) minmax(8.5rem, 34vw) minmax(0, 1fr);
    gap: 0.8rem;
    padding: 5.2rem 0 1.2rem;
  }

  .commercial-detail::before {
    top: 4.8rem;
  }

  .commercial-detail__label {
    gap: 0.45rem;
    font-size: clamp(0.43rem, 1.7vw, 0.58rem);
    letter-spacing: 0.08em;
  }

  .commercial-detail__copy {
    margin-top: 1.25rem;
    font-size: clamp(0.62rem, 2.25vw, 0.76rem);
    line-height: 1.52;
  }

  .commercial-detail__features {
    margin-top: 1.4rem;
    padding-top: 0.7rem;
    font-size: clamp(0.4rem, 1.45vw, 0.5rem);
    line-height: 1.55;
    letter-spacing: 0.05em;
  }

  .commercial-detail__value {
    font-size: clamp(2.4rem, 9vw, 3.6rem);
  }

  .commercial-detail__value--range {
    font-size: clamp(1.9rem, 6.8vw, 2.8rem);
  }

  .commercial-detail__metric-label {
    margin-top: 0.7rem;
    font-size: clamp(0.58rem, 2vw, 0.72rem);
  }

  .commercial-detail__note {
    margin-top: 0.55rem;
    font-size: clamp(0.46rem, 1.55vw, 0.56rem);
  }

  .location-section {
    padding-bottom: clamp(28rem, 68svh, 38rem);
  }

  .location-hero {
    min-height: 88svh;
    place-items: center start;
    padding: 6.5rem 5vw 4.5rem;
  }

  .location-hero__headline {
    width: 90vw;
    font-size: clamp(2.1rem, 9.2vw, 3.75rem);
    line-height: 1.02;
    text-align: left;
  }

  .location-hero__line {
    white-space: normal;
  }

  .location-hero__accent {
    margin-top: 1rem;
    font-size: 1.32em;
  }

  .location-hero__aside {
    top: auto;
    right: 5vw;
    bottom: 9vh;
    left: auto;
    width: 11rem;
    font-size: 1.7rem;
    text-align: right;
  }

  .location-hero__aside::before {
    right: auto;
    left: calc(100% + 0.75rem);
    transform-origin: left center;
  }

  .location-list {
    width: 90vw;
  }

  .location-row {
    grid-template-columns: 1fr;
    gap: 1.25rem;
    min-height: 0;
    padding: 3.1rem 0.2rem 3.35rem;
  }

  .location-row__title {
    max-width: 18ch;
    font-size: clamp(1.75rem, 7.4vw, 2.55rem);
  }

  .location-row__copy {
    justify-self: start;
    max-width: 35rem;
    font-size: clamp(0.78rem, 3.4vw, 0.98rem);
    line-height: 1.66;
  }

  .contact-section {
    min-height: auto;
  }

  .contact-shell {
    width: 90vw;
    min-height: auto;
    padding: 7rem 0 2rem;
  }

  .contact-grid {
    grid-template-columns: 1fr;
    gap: 4.5rem;
  }

  .contact-office,
  .contact-main,
  .contact-inquiry {
    width: 100%;
  }

  .contact-main {
    grid-template-columns: 1fr;
    gap: 4.5rem;
    justify-self: stretch;
  }

  .contact-socials {
    margin-bottom: 3rem;
  }

  .contact-title {
    max-width: none;
    font-size: clamp(2.55rem, 11.2vw, 4.2rem);
  }

  .contact-inquiry__copy {
    max-width: 32ch;
  }

  .contact-form {
    min-height: 4.5rem;
    margin-top: 2rem;
    padding-left: 0;
  }

  .contact-footer {
    grid-template-columns: 1fr;
    align-items: start;
    gap: 1rem;
    margin-top: 5.5rem;
  }

  .contact-footer__legal,
  .contact-footer__credit {
    justify-self: start;
    text-align: left;
  }

  .contact-footer__partners {
    justify-self: center;
    margin: 0.35rem 0;
  }

  .whatsapp-tab {
    bottom: 1rem;
    width: 2.75rem;
    height: 8.4rem;
  }

  .cookie-banner {
    grid-template-columns: 1fr;
    gap: 1rem;
    width: 90vw;
    padding: 1.2rem;
  }

  .cookie-banner__actions {
    display: flex;
    justify-content: flex-end;
    padding-top: 1rem;
    padding-left: 0;
    border-top: 1px solid rgba(243, 234, 217, 0.14);
    border-left: 0;
  }

  .cookie-banner__button {
    width: auto;
    min-width: 7.25rem;
    padding: 0 1rem;
    white-space: nowrap;
  }

  .legal-modal {
    padding: 0.65rem;
  }

  .legal-modal__dialog {
    width: 100%;
    max-height: 92svh;
  }

  .legal-modal__tabs {
    gap: 0.9rem;
    overflow-x: auto;
  }

  .legal-modal__tab {
    white-space: nowrap;
  }

  .legal-modal__panel {
    grid-template-columns: 1fr;
    gap: 2rem;
  }

  .legal-modal__intro {
    position: static;
  }

  .legal-modal__title {
    max-width: none;
    font-size: clamp(2.35rem, 13vw, 4rem);
  }

  .legal-modal__storage-row {
    grid-template-columns: 1fr;
    gap: 0.35rem;
  }
}

.mobile-nav-toggle {
  display: none;
}

@media (max-width: 1000px) {
  html,
  body {
    overscroll-behavior: none;
  }

  .stage {
    touch-action: none;
  }

  .legal-modal__body,
  .legal-modal__dialog,
  input,
  textarea,
  select {
    touch-action: pan-y;
  }

  body.is-mobile-nav-open {
    overflow: hidden !important;
  }

  body.is-native-scroll::after {
    content: "";
    position: fixed;
    top: 0;
    right: 0;
    left: 0;
    z-index: 35;
    height: max(88px, calc(env(safe-area-inset-top) + 76px));
    background: linear-gradient(
      180deg,
      var(--mobile-header-scrim) 0%,
      color-mix(in srgb, var(--mobile-header-scrim) 76%, transparent) 56%,
      transparent 100%
    );
    backdrop-filter: blur(8px) saturate(0.92);
    -webkit-backdrop-filter: blur(8px) saturate(0.92);
    pointer-events: none;
  }

  body.is-mobile-nav-open::after {
    opacity: 0;
  }

  .mobile-nav-toggle {
    position: fixed;
    top: max(20px, calc(env(safe-area-inset-top) + 16px));
    right: max(20px, calc(env(safe-area-inset-right) + 18px));
    z-index: 92;
    width: 44px;
    height: 44px;
    padding: 0;
    display: grid;
    place-items: center;
    border: 1px solid color-mix(in srgb, var(--header-ink) 22%, transparent);
    border-radius: 4px;
    color: var(--header-ink);
    background: color-mix(in srgb, var(--dark) 18%, transparent);
    backdrop-filter: blur(16px) saturate(112%);
    -webkit-backdrop-filter: blur(16px) saturate(112%);
    transition:
      opacity 360ms ease,
      visibility 0s linear 0s,
      color 320ms ease,
      border-color 320ms ease,
      background-color 320ms ease,
      transform 420ms cubic-bezier(0.22, 1, 0.36, 1);
  }

  .brand-lockup {
    transition:
      opacity 420ms ease,
      visibility 0s linear 0s,
      color 320ms ease;
  }

  .stage.is-intro-running .brand-lockup,
  .stage.is-intro-running .mobile-nav-toggle {
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition-delay: 0s, 420ms, 0s;
  }

  .mobile-nav-toggle span {
    position: absolute;
    width: 17px;
    height: 1px;
    background: currentColor;
    transform-origin: center;
    transition: transform 520ms cubic-bezier(0.22, 1, 0.36, 1);
  }

  .mobile-nav-toggle span:first-child {
    transform: translateY(-3px);
  }

  .mobile-nav-toggle span:last-child {
    transform: translateY(3px);
  }

  body.is-mobile-nav-open .mobile-nav-toggle {
    color: #f3ead9;
    border-color: rgba(243, 234, 217, 0.34);
    background: rgba(243, 234, 217, 0.06);
  }

  body.is-mobile-nav-open .mobile-nav-toggle span:first-child {
    transform: rotate(45deg);
  }

  body.is-mobile-nav-open .mobile-nav-toggle span:last-child {
    transform: rotate(-45deg);
  }

  .nav {
    counter-reset: mobile-nav;
    position: fixed;
    inset: 0;
    z-index: 90;
    width: auto;
    min-height: 100svh;
    padding:
      max(7.6rem, calc(env(safe-area-inset-top) + 7rem))
      max(24px, calc(env(safe-area-inset-right) + 6vw))
      max(3rem, calc(env(safe-area-inset-bottom) + 2.4rem))
      max(24px, calc(env(safe-area-inset-left) + 6vw));
    display: grid;
    align-content: center;
    align-items: stretch;
    gap: 0;
    color: #f3ead9;
    background:
      linear-gradient(135deg, rgba(88, 55, 31, 0.3), transparent 42%),
      rgba(20, 17, 15, 0.965);
    opacity: 0;
    visibility: hidden;
    filter: blur(8px);
    transform: translate3d(0, -12px, 0);
    pointer-events: none;
    transition:
      opacity 360ms ease,
      visibility 0s linear 620ms,
      filter 520ms ease,
      transform 720ms cubic-bezier(0.22, 1, 0.36, 1);
  }

  .nav::before {
    content: none;
  }

  body.is-mobile-nav-open .nav {
    opacity: 1;
    visibility: visible;
    filter: blur(0);
    transform: none;
    pointer-events: auto;
    transition-delay: 0s;
  }

  .nav a {
    counter-increment: mobile-nav;
    display: grid;
    grid-template-columns: 2.3rem minmax(0, 1fr) auto;
    align-items: center;
    min-height: clamp(3.5rem, 8.6svh, 5rem);
    border-bottom: 1px solid rgba(243, 234, 217, 0.12);
    font-family: "Iowan Old Style", "Baskerville", "Times New Roman", serif;
    font-size: clamp(1.65rem, 5.2vw, 2.45rem);
    line-height: 1;
    font-weight: 400;
    text-transform: none;
    opacity: 0;
    transform: translate3d(0, 18px, 0);
    transition:
      color 220ms ease,
      opacity 420ms ease,
      transform 620ms cubic-bezier(0.22, 1, 0.36, 1);
  }

  body.is-mobile-nav-open .nav a {
    opacity: 1;
    transform: none;
  }

  body.is-mobile-nav-open .nav a:nth-child(1) { transition-delay: 90ms; }
  body.is-mobile-nav-open .nav a:nth-child(2) { transition-delay: 125ms; }
  body.is-mobile-nav-open .nav a:nth-child(3) { transition-delay: 160ms; }
  body.is-mobile-nav-open .nav a:nth-child(4) { transition-delay: 195ms; }
  body.is-mobile-nav-open .nav a:nth-child(5) { transition-delay: 230ms; }
  body.is-mobile-nav-open .nav a:nth-child(6) { transition-delay: 265ms; }
  body.is-mobile-nav-open .nav a:nth-child(7) { transition-delay: 300ms; }

  .nav a::before {
    content: "0" counter(mobile-nav);
    color: rgba(243, 234, 217, 0.34);
    font-family: "Plus Jakarta Sans", sans-serif;
    font-size: 0.52rem;
    font-weight: 700;
    letter-spacing: 0.12em;
  }

  .nav a::after {
    content: "↗";
    position: static;
    border: 0;
    color: rgba(243, 234, 217, 0.34);
    font-family: "Plus Jakarta Sans", sans-serif;
    font-size: 0.74rem;
    opacity: 1;
    transform: none;
  }

  .nav a[aria-current="page"] {
    color: #e0b988;
  }

  .brand-lockup {
    top: max(20px, calc(env(safe-area-inset-top) + 16px));
    left: max(20px, calc(env(safe-area-inset-left) + 18px));
    z-index: 91;
  }

  body.is-mobile-nav-open .brand-lockup {
    color: #f3ead9;
    text-shadow: none;
  }

  body.is-mobile-nav-open .logo {
    filter: brightness(1);
  }

  .header-tools {
    left: max(20px, calc(env(safe-area-inset-left) + 18px));
    bottom: max(16px, calc(env(safe-area-inset-bottom) + 12px));
  }

  body.is-mobile-nav-open .header-tools {
    z-index: 93;
    color: #f3ead9;
  }

  .language-picker__trigger,
  .sound-toggle {
    min-height: 44px;
  }

  .language-picker__trigger {
    min-width: 7.75rem;
  }

  .language-picker__menu {
    bottom: calc(100% + 0.55rem);
  }

  .page-scrollbar {
    right: 0;
    width: 7px;
    height: 22svh;
  }

  .page-scrollbar__thumb {
    width: 2px;
  }
}

@media (hover: none), (pointer: coarse), (max-width: 1000px) {
  html.has-custom-cursor,
  html.has-custom-cursor * {
    cursor: auto !important;
  }

  .site-cursor {
    display: none !important;
  }

  button,
  a,
  [role="button"] {
    -webkit-tap-highlight-color: transparent;
  }
}

@media (min-width: 641px) and (max-width: 1000px) {
  .intro-shell {
    width: min(62vw, 29rem);
    gap: clamp(1.6rem, 3.2vh, 2.2rem);
  }

  .intro-brand__mark {
    width: auto;
    height: clamp(70px, 9vw, 82px);
  }

  .intro-brand__type {
    width: clamp(12rem, 24vw, 14rem);
  }

  .intro-brand__name {
    font-size: clamp(2.1rem, 4.4vw, 2.65rem);
  }

  .intro-brand__place {
    font-size: calc(clamp(0.7rem, 1.35vw, 0.84rem) - 1px);
  }

  .intro-progress {
    width: min(42vw, 20rem);
  }

  .intro-cta {
    font-size: 0.74rem;
  }

  .intro-partners__logo--paris {
    width: clamp(7rem, 16vw, 8.2rem);
  }

  .intro-partners__logo--oner {
    width: clamp(5.8rem, 13.4vw, 6.8rem);
  }

  .copy {
    top: 25svh;
    left: 6vw;
    width: 25vw;
  }

  .copy p {
    font-size: clamp(0.5rem, 1.05vw, 0.7rem);
  }

  .copy h1 {
    font-size: clamp(0.88rem, 1.85vw, 1.15rem);
  }

  .main-frame {
    top: 15svh;
    left: 36vw;
    width: 56vw;
    height: 72svh;
  }

  .thumb-window {
    top: 37svh;
    height: 32svh;
  }

  .thumb-window.left {
    width: calc(36vw - 18px);
  }

  .thumb-window.right {
    left: calc(92vw + 18px);
  }

  .thumb,
  .thumb-layer {
    --thumb-w: clamp(132px, 21vw, 188px);
  }

  .thumb {
    height: 32svh;
  }

  .frame-controls {
    top: calc(87svh + 8px);
  }

  .frame-control--prev {
    left: calc(36vw - 11px);
  }

  .frame-control--next {
    left: calc(92vw + 11px);
  }

  .slide-caption {
    top: auto;
    right: 7vw;
    bottom: 7svh;
    left: 39vw;
  }

  .feature-row {
    gap: clamp(1.2rem, 2.6vh, 1.8rem);
    padding-top: clamp(5.2rem, 8.5vh, 6rem);
    padding-bottom: clamp(1.8rem, 3.5vh, 2.6rem);
  }

  .feature-row__media {
    max-height: 32svh;
  }

  .commercial-flow__media {
    width: clamp(11rem, 30vw, 15rem);
  }

  .commercial-scene__copy {
    justify-self: end;
    width: min(27vw, 13rem);
    font-size: clamp(0.76rem, 1.65vw, 0.95rem);
  }

  .contact-grid {
    grid-template-columns: minmax(0, 0.58fr) minmax(0, 1.42fr);
    gap: clamp(1.5rem, 3vw, 2.4rem);
  }

  .contact-main {
    grid-template-columns: minmax(0, 1fr);
    gap: clamp(2rem, 3.8vh, 2.8rem);
  }

  .contact-communications {
    display: grid;
    grid-template-columns: minmax(7rem, 0.52fr) minmax(0, 1.48fr);
    align-items: start;
    gap: clamp(1.3rem, 2.8vw, 2rem);
  }

  .contact-socials {
    margin-bottom: 0;
  }

  .contact-channels {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: clamp(1rem, 2.4vw, 1.6rem);
  }

  .contact-channel__copy {
    font-size: clamp(0.67rem, 1.38vw, 0.78rem);
  }

  .contact-channel__phone,
  .contact-channel__email {
    font-size: clamp(0.66rem, 1.35vw, 0.8rem);
    white-space: nowrap;
  }

  .contact-channel--sales .contact-channel__links {
    margin-top: clamp(1.15rem, 2.4vh, 1.8rem);
  }

  .contact-title {
    font-size: clamp(2.45rem, 5.45vw, 3.45rem);
  }

  .contact-form {
    width: 100%;
    min-height: 4.5rem;
    margin-top: clamp(1.7rem, 3.4vh, 2.4rem);
  }

  .contact-footer {
    padding-right: 3.25rem;
  }

  .scroll-cue,
  .scroll-cue--final {
    left: 50%;
    bottom: max(13px, calc(env(safe-area-inset-bottom) + 10px));
    transform: translateX(-50%);
  }

  .stage.is-final-cue-ready .scroll-cue--final {
    transform: translateX(-50%);
  }
}

@media (max-width: 640px) {
  :root {
    --mobile-gutter: max(20px, 5.2vw);
  }

  html,
  body {
    min-height: 100%;
  }

  .stage {
    width: 100%;
    height: 100svh;
    min-height: 100svh;
  }

  .intro-shell {
    width: calc(100vw - (var(--mobile-gutter) * 2));
    gap: clamp(1.3rem, 3.2svh, 1.8rem);
  }

  .intro-brand {
    gap: 0.85rem;
  }

  .intro-brand__mark {
    width: auto;
    height: clamp(52px, 14vw, 64px);
  }

  .intro-brand__type {
    width: clamp(9.2rem, 43vw, 11.2rem);
  }

  .intro-brand__name {
    font-size: clamp(1.65rem, 8.2vw, 2.35rem);
  }

  .intro-brand__place {
    font-size: calc(clamp(0.56rem, 2.7vw, 0.72rem) - 1px);
  }

  .intro-progress {
    width: min(72vw, 18rem);
  }

  .intro-cta {
    min-width: min(70vw, 17rem);
    min-height: 3rem;
  }

  .intro-partners {
    right: auto;
    bottom: max(1.4rem, calc(env(safe-area-inset-bottom) + 1rem));
    left: 50%;
    justify-content: center;
    width: calc(100vw - (var(--mobile-gutter) * 2));
    transform: translate3d(-50%, 12px, 0);
  }

  .stage.is-intro-leaving .intro-partners {
    transform: translate3d(-50%, 10px, 0);
  }

  .intro-partners__logo--paris {
    width: 5.4rem;
  }

  .intro-partners__logo--oner {
    width: 4.5rem;
  }

  .brand-lockup {
    gap: 0.48rem;
  }

  .logo {
    width: auto;
    height: 28px;
  }

  .brand-lockup__type {
    width: 4.55rem;
    gap: 0.19rem;
  }

  .brand-lockup__name {
    font-size: 0.78rem;
  }

  .brand-lockup__place {
    font-size: calc(0.37rem - 1px);
  }

  .mobile-nav-toggle {
    top: max(16px, calc(env(safe-area-inset-top) + 12px));
    right: max(16px, calc(env(safe-area-inset-right) + 14px));
  }

  .nav {
    padding-right: var(--mobile-gutter);
    padding-left: var(--mobile-gutter);
  }

  .nav::before {
    left: var(--mobile-gutter);
  }

  .copy {
    top: max(5.4rem, calc(env(safe-area-inset-top) + 5.1rem));
    left: var(--mobile-gutter);
    z-index: 8;
    width: calc(100vw - (var(--mobile-gutter) * 2));
  }

  .copy::before {
    content: "";
    position: absolute;
    inset: -0.9rem -0.8rem -1rem;
    z-index: -1;
    border: 1px solid rgb(243 234 217 / calc(var(--stat-1-progress, 0) * 0.1));
    border-radius: 4px;
    background: rgb(18 15 13 / calc(var(--stat-1-progress, 0) * 0.76));
    box-shadow: 0 20px 54px rgb(0 0 0 / calc(var(--stat-1-progress, 0) * 0.2));
    backdrop-filter: blur(calc(var(--stat-1-progress, 0) * 16px));
    -webkit-backdrop-filter: blur(calc(var(--stat-1-progress, 0) * 16px));
    opacity: var(--stat-1-progress, 0);
    pointer-events: none;
  }

  .copy p {
    margin-bottom: 0.48rem;
    font-size: clamp(0.62rem, 2.4vw, 0.76rem);
    line-height: 1.15;
  }

  .copy h1 {
    font-size: clamp(1.22rem, 5.7vw, 1.55rem);
    line-height: 1.02;
  }

  .hero-stats {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    margin-top: 1.1rem;
  }

  .hero-stat {
    min-height: 3.65rem;
    padding: 0.7rem 0.62rem 0.68rem 0;
  }

  .hero-stat:nth-child(2),
  .hero-stat:nth-child(4),
  .hero-stat:nth-child(6) {
    padding-left: 0.78rem;
  }

  .hero-stat__value {
    font-size: clamp(1.18rem, 5.7vw, 1.48rem);
  }

  .hero-stat__label {
    margin-top: 0.45rem;
    font-size: clamp(0.4rem, 1.75vw, 0.48rem);
    white-space: normal;
  }

  .features-cta {
    margin-top: 0.85rem;
    font-size: 0.52rem;
  }

  .main-frame {
    top: 20svh;
    left: 9vw;
    width: 82vw;
    min-width: 0;
    height: 64svh;
    padding: var(--frame-pad);
    box-shadow: 0 24px 64px rgba(0, 0, 0, calc(0.28 * (1 - var(--fullscreen-progress, 0))));
  }

  .main-frame::after {
    top: 13px;
    right: 13px;
    width: 8px;
    height: 8px;
  }

  .frame-panel {
    background-position: center;
  }

  .thumb-window {
    top: 35svh;
    height: 32svh;
  }

  .thumb-window.left {
    width: 9vw;
    -webkit-mask-image: linear-gradient(90deg, transparent, black 42%, black);
    mask-image: linear-gradient(90deg, transparent, black 42%, black);
  }

  .thumb-window.right {
    right: 0;
    left: 91vw;
    -webkit-mask-image: linear-gradient(90deg, black, black 58%, transparent);
    mask-image: linear-gradient(90deg, black, black 58%, transparent);
  }

  .thumb-layer {
    --thumb-w: 21vw;
    --thumb-gap: 10px;
  }

  .thumb {
    height: 32svh;
  }

  .frame-controls {
    top: calc(84svh + 5px);
    height: 44px;
  }

  .frame-control {
    width: 44px;
    height: 44px;
    font-size: 1.1rem;
  }

  .frame-control--prev {
    left: calc(9vw - 2px);
  }

  .frame-control--next {
    left: calc(91vw + 2px);
  }

  .slide-caption {
    top: auto;
    right: 12vw;
    bottom: 18.5svh;
    left: 12vw;
    place-items: end stretch;
    padding: 0.78rem 0.85rem 0.82rem;
    background: linear-gradient(90deg, rgba(15, 12, 10, 0.78), rgba(15, 12, 10, 0.36));
    border-left: 1px solid rgba(243, 234, 217, 0.16);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    transform: translate3d(0, calc((1 - var(--slide-caption-progress, 0)) * 8px), 0);
  }

  .slide-caption__text {
    width: 100%;
    font-size: clamp(0.68rem, 2.9vw, 0.76rem);
    line-height: 1.46;
    text-align: left;
  }

  .final-partners {
    top: auto;
    right: 12vw;
    bottom: 18.5svh;
    left: 12vw;
    display: grid;
    padding: 0.82rem 0.9rem;
    background: linear-gradient(90deg, rgba(15, 12, 10, 0.82), rgba(15, 12, 10, 0.45));
    border-left: 1px solid rgba(243, 234, 217, 0.16);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    transform: translate3d(0, calc((1 - var(--final-slogan-progress, 0)) * 8px), 0);
  }

  .final-partners__intro {
    width: 100%;
    font-size: 0.62rem;
    line-height: 1.55;
  }

  .growth-signature {
    top: 51%;
    z-index: 6;
    padding: 0.4rem;
    background: rgba(23, 20, 18, 0.32);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
  }

  .growth-signature--paris {
    left: 29%;
    height: clamp(1.7rem, 7.4vw, 2.15rem);
  }

  .growth-signature--oner {
    right: 27%;
    height: clamp(1.34rem, 5.8vw, 1.68rem);
  }

  .growth-signature-cta {
    top: calc(51% + 2.65rem);
    display: flex;
    width: 44%;
    transform: translate3d(0, calc((1 - var(--growth-signature-cta-opacity, 0)) * 8px), 0);
  }

  .growth-signature-cta--paris {
    left: 3%;
  }

  .growth-signature-cta--oner {
    right: 3%;
    left: auto;
  }

  .growth-signature-cta a {
    min-height: 40px;
    justify-content: center;
    padding-bottom: 0.36rem;
    border-color: rgba(243, 234, 217, 0.46);
    color: rgba(243, 234, 217, 0.84);
    font-size: clamp(0.5rem, 2.1vw, 0.58rem);
    text-shadow: 0 2px 10px rgba(0, 0, 0, 0.72);
  }

  .brand-title {
    top: 11svh;
    width: min(74.8vw, 28.9rem);
    max-width: none;
  }

  .scroll-cue,
  .scroll-cue--final {
    left: 50%;
    bottom: max(10px, calc(env(safe-area-inset-bottom) + 7px));
    gap: 0.42rem;
    font-size: 0.5rem;
    transform: translateX(-50%);
  }

  .scroll-cue__icon {
    width: 25px;
    height: 25px;
  }

  .header-tools {
    gap: 0.4rem;
  }

  .language-picker__trigger,
  .sound-toggle {
    width: 44px;
    min-width: 44px;
    height: 44px;
    padding: 0;
  }

  .language-picker__value,
  .language-picker__chevron {
    display: none;
  }

  .language-picker__menu {
    right: auto;
    left: 0;
    width: 8.2rem;
  }

  body.is-cookie-visible:not(.is-contact-tools-hidden) .header-tools {
    bottom: max(11.75rem, calc(env(safe-area-inset-bottom) + 11rem));
  }

  .project-features {
    overflow: clip;
  }

  .features-shell {
    width: 100%;
  }

  .features-intro {
    width: calc(100% - (var(--mobile-gutter) * 2));
    min-height: 82svh;
    margin: 0 auto;
    gap: 1.8rem;
    padding: max(6.5rem, calc(env(safe-area-inset-top) + 6rem)) 0 4.2rem;
  }

  .features-intro__title {
    max-width: 10ch;
    font-size: clamp(2.7rem, 13vw, 3.75rem);
    line-height: 0.96;
  }

  .features-intro__body {
    max-width: 34ch;
    font-size: 0.82rem;
    line-height: 1.62;
  }

  .feature-list {
    height: 900svh;
  }

  .feature-list__sticky {
    height: 100svh;
    overflow: hidden;
  }

  .feature-row {
    grid-template-columns: 1fr;
    grid-template-rows: auto minmax(0, 1fr);
    gap: clamp(1.25rem, 3svh, 1.8rem);
    align-content: center;
    padding:
      max(5.8rem, calc(env(safe-area-inset-top) + 5.3rem))
      var(--mobile-gutter)
      max(4.2rem, calc(env(safe-area-inset-bottom) + 3.7rem));
  }

  .feature-row__copy {
    max-width: 100%;
    margin-left: 0;
  }

  .feature-row__eyebrow,
  .features-intro__eyebrow {
    font-size: 0.56rem;
  }

  .feature-row__title {
    max-width: 12ch;
    margin: 0.78rem 0 0.85rem;
    font-size: clamp(1.8rem, 8.4vw, 2.4rem);
    line-height: 1.02;
  }

  .feature-row__body {
    max-width: 38ch;
    font-size: clamp(0.72rem, 3.15vw, 0.82rem);
    line-height: 1.58;
  }

  .feature-row__media {
    align-self: stretch;
    width: 100%;
    height: auto;
    min-height: 29svh;
    max-height: 38svh;
    aspect-ratio: 1.38 / 1;
  }

  .feature-dots {
    top: auto;
    bottom: max(3.55rem, calc(env(safe-area-inset-bottom) + 3.1rem));
    left: 50%;
    display: flex;
    gap: 0.35rem;
    transform: translate3d(-50%, var(--dots-y, 12px), 0);
  }

  .feature-dot {
    width: 40px;
    height: 40px;
  }

  .feature-dot::before {
    width: 7px;
    height: 7px;
  }

  .feature-dot::after {
    width: 20px;
    height: 20px;
  }

  .feature-outro-title {
    top: 50%;
    right: var(--mobile-gutter);
    left: var(--mobile-gutter);
    font-size: clamp(3.1rem, 15vw, 4.3rem);
    line-height: 0.92;
    text-align: left;
    white-space: normal;
  }

  .feature-outro-title::after {
    text-align: left;
  }

  .feature-outro-kicker {
    top: max(5.5rem, calc(env(safe-area-inset-top) + 5rem));
    left: 0;
    width: 100vw;
    font-size: 0.52rem;
  }

  .feature-outro-mini {
    top: 29svh;
    left: var(--mobile-gutter);
    font-size: 0.72rem;
  }

  .feature-outro-copy {
    top: auto;
    bottom: max(5.4rem, calc(env(safe-area-inset-bottom) + 4.9rem));
    width: calc(100vw - (var(--mobile-gutter) * 2));
    font-size: clamp(0.7rem, 3vw, 0.82rem);
    line-height: 1.55;
  }

  .commercial-flow__media {
    top: 51%;
    width: 44vw;
    height: 42svh;
  }

  .residence-types {
    --residence-content-width: 88vw;
    --residence-gap: 0.72rem;
  }

  .residence-rail {
    left: 6vw;
    gap: var(--residence-gap);
  }

  .residence-grid {
    flex: 0 0 auto;
    width: max-content;
    display: flex;
    gap: var(--residence-gap);
  }

  .residence-card {
    flex: 0 0 82vw;
    width: 82vw;
    min-height: 0;
    height: min(70svh, 610px);
    padding: 1.45rem;
  }

  .residence-card--plan {
    flex-basis: 60.8vw;
    width: 60.8vw;
  }

  .residence-card--summary h2 {
    font-size: clamp(1.55rem, 7.2vw, 2.2rem);
  }

  .residence-card--summary p:not(.residence-card__eyebrow) {
    font-size: 0.74rem;
  }

  .residence-card__total {
    font-size: clamp(9rem, 45vw, 13rem);
  }

  .residence-card__type {
    font-size: clamp(5.8rem, 34vw, 8.5rem);
  }

  .residence-card__footer {
    font-size: 0.72rem;
  }

  .residence-gallery-card {
    height: min(70svh, 610px);
  }

  .residence-gallery-card--landscape {
    width: 86vw;
  }

  .residence-gallery-card--portrait {
    width: 68vw;
  }

  .commercial-scene {
    --commercial-top-pad: 0;
    --commercial-bottom-pad: 0;
  }

  .commercial-scene__inner {
    display: block;
    width: 88vw;
    min-height: 100svh;
    padding: 0;
  }

  .commercial-scene__title {
    position: absolute;
    top: max(6rem, calc(env(safe-area-inset-top) + 5.5rem));
    left: 0;
    width: 56vw;
    font-size: 0.78rem;
    line-height: 1.12;
    transform: none;
  }

  .commercial-scene__copy {
    position: absolute;
    right: 0;
    bottom: max(4.5rem, calc(env(safe-area-inset-bottom) + 4rem));
    width: 58vw;
    font-size: 0.76rem;
    line-height: 1.55;
    transform: none;
  }

  .commercial-details {
    --commercial-detail-width: calc(100vw - (var(--mobile-gutter) * 2));
  }

  .commercial-detail {
    grid-template-columns: 1fr;
    grid-template-rows: auto minmax(0, 1fr) auto;
    gap: 1rem;
    min-height: 100svh;
    padding:
      max(5.8rem, calc(env(safe-area-inset-top) + 5.3rem))
      0
      max(5.2rem, calc(env(safe-area-inset-bottom) + 4.7rem));
  }

  .commercial-detail__left {
    grid-column: 1;
    grid-row: 1;
    width: 100%;
  }

  .commercial-detail__label {
    font-size: 0.5rem;
  }

  .commercial-detail__copy {
    max-width: 34ch;
    margin-top: 1rem;
    font-size: clamp(0.74rem, 3.35vw, 0.88rem);
    line-height: 1.52;
  }

  .commercial-detail__features {
    max-width: 58vw;
    margin-top: 1rem;
    padding-top: 0.68rem;
    font-size: 0.43rem;
  }

  .commercial-detail__metric {
    grid-column: 1;
    grid-row: 3;
    justify-self: end;
    width: 46vw;
    margin-right: 3.2rem;
    text-align: center;
  }

  .commercial-detail__value {
    font-size: clamp(3.55rem, 19vw, 5.25rem);
  }

  .commercial-detail__value--range {
    font-size: clamp(2.5rem, 13vw, 3.8rem);
  }

  .commercial-detail__metric-label {
    margin-top: 0.75rem;
    font-size: 0.72rem;
  }

  .commercial-detail__note {
    font-size: 0.48rem;
  }

  .commercial-details__outro {
    height: 18svh;
  }

  .location-section {
    padding-bottom: clamp(28rem, 68svh, 38rem);
  }

  .location-hero {
    min-height: 84svh;
    padding:
      max(6.5rem, calc(env(safe-area-inset-top) + 6rem))
      var(--mobile-gutter)
      4rem;
  }

  .location-hero__headline {
    width: 100%;
    font-size: clamp(2.15rem, 10vw, 3rem);
  }

  .location-hero__aside {
    right: var(--mobile-gutter);
    bottom: 10svh;
    width: 10rem;
    font-size: 1.65rem;
  }

  .location-list {
    width: calc(100vw - (var(--mobile-gutter) * 2));
  }

  .location-row {
    gap: 1.15rem;
    padding: 3.2rem 0 3.45rem;
  }

  .location-row__title {
    --location-marker-space: 2.15rem;
    max-width: calc(16ch + var(--location-marker-space));
    padding-left: var(--location-marker-space);
    font-size: clamp(1.72rem, 8vw, 2.35rem);
  }

  .location-row__title::before {
    left: 0.22rem;
  }

  .location-row__title::after {
    left: 0.72rem;
    width: 0.92rem;
  }

  .location-row__copy {
    font-size: 0.79rem;
    line-height: 1.62;
    padding-right: 3.3rem;
  }

  .location-map-cta {
    right: 0;
    min-width: 46px;
    padding: 0.72rem 0.65rem;
    font-size: 0.64rem;
    background: rgba(23, 20, 18, 0.52);
    border: 1px solid rgba(243, 234, 217, 0.12);
    border-right: 0;
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
  }

  .contact-section {
    min-height: auto;
    overflow: clip;
  }

  .contact-shell {
    width: calc(100vw - (var(--mobile-gutter) * 2));
    padding:
      max(6.8rem, calc(env(safe-area-inset-top) + 6.3rem))
      0
      max(1.5rem, calc(env(safe-area-inset-bottom) + 1rem));
  }

  .contact-grid,
  .contact-main {
    gap: 4rem;
  }

  .contact-address {
    font-size: 0.96rem;
  }

  .contact-socials {
    margin-bottom: 2.7rem;
    font-size: 0.9rem;
  }

  .contact-channels {
    gap: 3.2rem;
  }

  .contact-channel__copy {
    font-size: 0.75rem;
  }

  .contact-channel__phone,
  .contact-channel__email {
    font-size: clamp(0.78rem, 3.6vw, 0.92rem);
  }

  .contact-title {
    font-size: clamp(2.65rem, 13vw, 4rem);
    line-height: 0.94;
  }

  .contact-title span {
    white-space: normal;
  }

  .contact-form {
    min-height: 5.1rem;
    margin-top: 2.5rem;
    gap: 0.8rem;
  }

  .contact-form input {
    font-size: 0.92rem;
  }

  .contact-form button {
    width: 44px;
    height: 44px;
  }

  .contact-footer {
    gap: 1.35rem;
    margin-top: 5rem;
    padding-top: 1.3rem;
  }

  .contact-footer__copyright {
    max-width: 29ch;
    font-size: 0.58rem;
    line-height: 1.5;
  }

  .contact-footer__partners {
    justify-self: start;
    margin: 0.45rem 0;
  }

  .contact-footer__credit {
    justify-items: start;
    justify-self: start;
    text-align: left;
  }

  .whatsapp-tab {
    right: 0;
    bottom: max(16px, calc(env(safe-area-inset-bottom) + 12px));
    width: 48px;
    height: 48px;
    padding: 0;
    display: grid;
    grid-template-rows: 1fr;
    place-items: center;
    border-radius: 4px 0 0 4px;
  }

  .whatsapp-tab__icon {
    width: 1.25rem;
    height: 1.25rem;
  }

  .whatsapp-tab__label {
    display: none;
  }

  .cookie-banner {
    right: var(--mobile-gutter);
    bottom: max(0.9rem, calc(env(safe-area-inset-bottom) + 0.65rem));
    left: var(--mobile-gutter);
    width: auto;
    padding: 1.2rem;
    transform: translate3d(0, 20px, 0);
  }

  .cookie-banner.is-visible {
    transform: none;
  }

  .legal-modal {
    align-items: end;
    padding: 0;
  }

  .legal-modal__dialog {
    width: 100%;
    max-height: 94svh;
    border-right: 0;
    border-bottom: 0;
    border-left: 0;
    border-radius: 7px 7px 0 0;
  }

  .legal-modal__header {
    padding: 1rem var(--mobile-gutter) 0.8rem;
  }

  .legal-modal__kicker {
    max-width: 25ch;
    font-size: 0.45rem;
    line-height: 1.35;
  }

  .legal-modal__close {
    width: 44px;
    height: 44px;
  }

  .legal-modal__tabs {
    gap: 1.25rem;
    padding: 0 var(--mobile-gutter);
    scrollbar-width: none;
  }

  .legal-modal__tab {
    min-height: 3rem;
    font-size: 0.5rem;
  }

  .legal-modal__panel {
    gap: 1.7rem;
    padding: 1.7rem var(--mobile-gutter) 3rem;
  }

  .legal-modal__title {
    font-size: clamp(2.4rem, 12vw, 3.4rem);
  }
}

@media (max-width: 640px) and (max-height: 620px) {
  .nav {
    padding-top: max(5.8rem, calc(env(safe-area-inset-top) + 5.4rem));
    padding-bottom: max(4.75rem, calc(env(safe-area-inset-bottom) + 4.35rem));
  }

  .nav a {
    min-height: 3rem;
    font-size: clamp(1.4rem, 7vw, 1.7rem);
  }

  .main-frame {
    top: 23svh;
    height: 61svh;
  }

  .feature-row {
    gap: 1rem;
    padding-top: max(5.35rem, calc(env(safe-area-inset-top) + 5rem));
    padding-bottom: max(3.55rem, calc(env(safe-area-inset-bottom) + 3.2rem));
  }

  .feature-row__title {
    margin-top: 0.62rem;
    margin-bottom: 0.62rem;
    font-size: clamp(1.62rem, 8vw, 2rem);
  }

  .feature-row__body {
    font-size: clamp(0.66rem, 3vw, 0.75rem);
    line-height: 1.5;
  }

  .feature-row__media {
    min-height: 25svh;
    max-height: 32svh;
  }
}

@media (max-width: 360px) {
  .contact-form input {
    font-size: 0.7rem;
  }
}

@media (orientation: landscape) and (max-width: 1000px) and (max-height: 520px) {
  .nav {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    grid-template-rows: repeat(4, auto);
    grid-auto-flow: column;
    align-content: center;
    column-gap: clamp(2.25rem, 7vw, 4.5rem);
    padding:
      max(4.2rem, calc(env(safe-area-inset-top) + 3.8rem))
      max(3rem, calc(env(safe-area-inset-right) + 5.5vw))
      max(3.75rem, calc(env(safe-area-inset-bottom) + 3.35rem))
      max(3rem, calc(env(safe-area-inset-left) + 5.5vw));
  }

  .nav a {
    grid-template-columns: 1.9rem minmax(0, 1fr) auto;
    min-height: clamp(2.55rem, 11svh, 3.1rem);
    font-size: clamp(1.2rem, 3.35vw, 1.72rem);
  }

  .nav a::before {
    font-size: 0.46rem;
  }

  .header-tools {
    bottom: max(4px, calc(env(safe-area-inset-bottom) + 2px));
  }

  .features-intro {
    min-height: 100svh;
    grid-template-columns: minmax(0, 1.08fr) minmax(15rem, 0.92fr);
    align-items: end;
    gap: clamp(2rem, 6vw, 4rem);
    padding:
      max(4.8rem, calc(env(safe-area-inset-top) + 4.35rem))
      0
      max(3.2rem, calc(env(safe-area-inset-bottom) + 2.8rem));
  }

  .features-intro__title {
    max-width: 11ch;
    font-size: clamp(2.15rem, 6.2vw, 3.25rem);
  }

  .features-intro__body {
    max-width: 38ch;
    font-size: clamp(0.68rem, 1.6vw, 0.8rem);
    line-height: 1.55;
  }

  .feature-row {
    grid-template-columns: minmax(0, 0.94fr) minmax(0, 1.06fr);
    grid-template-rows: minmax(0, 1fr);
    gap: clamp(1.75rem, 5vw, 3.5rem);
    align-items: center;
    padding:
      max(4.55rem, calc(env(safe-area-inset-top) + 4.2rem))
      max(3.25rem, calc(env(safe-area-inset-right) + 5.8vw))
      max(3.1rem, calc(env(safe-area-inset-bottom) + 2.75rem))
      max(4rem, calc(env(safe-area-inset-left) + 7vw));
  }

  .feature-row__copy {
    max-width: 25rem;
    margin-left: 0;
  }

  .feature-row__eyebrow,
  .features-intro__eyebrow {
    font-size: 0.48rem;
  }

  .feature-row__title {
    max-width: 13ch;
    margin: 0.62rem 0 0.68rem;
    font-size: clamp(1.7rem, 4.1vw, 2.25rem);
    line-height: 1.02;
  }

  .feature-row__body {
    max-width: 42ch;
    font-size: clamp(0.64rem, 1.45vw, 0.76rem);
    line-height: 1.5;
  }

  .feature-row__media {
    width: 100%;
    max-height: 58svh;
    aspect-ratio: 1.5 / 1;
  }

  .feature-dots {
    top: auto;
    right: max(3.25rem, calc(env(safe-area-inset-right) + 5.8vw));
    bottom: max(0.55rem, calc(env(safe-area-inset-bottom) + 0.35rem));
    left: auto;
    display: flex;
    gap: 0.22rem;
    transform: translate3d(0, var(--dots-y, 12px), 0);
  }

  .feature-dot {
    width: 36px;
    height: 36px;
  }

  .feature-dot::before {
    width: 7px;
    height: 7px;
  }

  .feature-dot::after {
    width: 19px;
    height: 19px;
  }

  .feature-outro-title {
    right: 6vw;
    left: 6vw;
    font-size: clamp(2.6rem, 8.4vw, 4.5rem);
    white-space: nowrap;
  }

  .feature-outro-kicker {
    top: max(4.6rem, calc(env(safe-area-inset-top) + 4.15rem));
  }

  .feature-outro-mini {
    top: 24svh;
  }

  .feature-outro-copy {
    top: auto;
    bottom: max(3.35rem, calc(env(safe-area-inset-bottom) + 3rem));
    width: min(62vw, 30rem);
    font-size: 0.68rem;
    line-height: 1.48;
  }

  .residence-card,
  .residence-gallery-card {
    height: min(70svh, 330px);
  }

  .residence-rail {
    top: calc(50% + 15px);
  }

  .residence-card {
    padding: 1.1rem 1.2rem;
  }

  .residence-card__eyebrow,
  .residence-card__index {
    font-size: 0.46rem;
  }

  .residence-card__index {
    top: 1.1rem;
    right: 1.2rem;
  }

  .residence-card--summary h2 {
    margin-top: 0.85rem;
    font-size: clamp(1.22rem, 3.15vw, 1.55rem);
  }

  .residence-card--summary p:not(.residence-card__eyebrow) {
    max-width: 28ch;
    margin-top: 0.78rem;
    font-size: 0.58rem;
    line-height: 1.45;
  }

  .residence-card__total {
    font-size: clamp(6rem, 17vw, 8rem);
  }

  .residence-card__type {
    font-size: clamp(3.4rem, 9vw, 4.8rem);
  }

  .residence-card__footer {
    padding-top: 0.62rem;
    font-size: 0.58rem;
    line-height: 1.42;
  }

  .commercial-scene__inner {
    grid-template-columns: minmax(0, 0.92fr) minmax(14rem, 0.78fr) minmax(0, 1fr);
    grid-template-rows: minmax(0, 1fr);
    gap: clamp(1.25rem, 3.4vw, 2.25rem);
    width: min(90vw, 52rem);
    padding:
      max(4.6rem, calc(env(safe-area-inset-top) + 4.25rem))
      0
      max(2.8rem, calc(env(safe-area-inset-bottom) + 2.45rem));
  }

  .commercial-scene__title {
    grid-column: 1;
    justify-self: start;
    width: min(100%, 10.5rem);
    font-size: clamp(0.64rem, 1.55vw, 0.76rem);
  }

  .commercial-scene__copy {
    grid-column: 3;
    justify-self: end;
    width: min(100%, 13rem);
    font-size: clamp(0.65rem, 1.5vw, 0.75rem);
    line-height: 1.48;
  }
}

body[data-language="ar"] .location-hero,
body[data-language="ar"] .location-row,
body[data-language="ar"] .contact-grid,
body[data-language="ar"] .contact-main,
body[data-language="ar"] .contact-footer,
body[data-language="ar"] .cookie-banner,
body[data-language="ar"] .legal-modal__dialog,
body[data-language="ar"] .legal-modal__panel,
body[data-language="ar"] .legal-modal__storage-row {
  direction: rtl;
}

body[data-language="ar"] .location-map-cta {
  right: auto;
  left: clamp(14px, 1.55vw, 32px);
  transform: translate3d(
      calc((1 - var(--location-map-progress)) * -28px),
      -50%,
      0
    )
    rotate(180deg);
}

body[data-language="ar"] .location-hero__headline {
  direction: rtl;
}

body[data-language="ar"] .location-hero__aside {
  right: 5.5vw;
  left: auto;
  text-align: right;
  transform: translate3d(calc((1 - var(--location-aside)) * 28px), 0, 0) rotate(3deg);
  transform-origin: right center;
}

body[data-language="ar"] .location-row::before {
  transform-origin: right center;
}

body[data-language="ar"] .location-row__title,
body[data-language="ar"] .location-row__copy {
  text-align: right;
}

body[data-language="ar"] .location-row__title {
  transform: translate3d(calc((1 - var(--location-title-progress)) * 24px), 0, 0);
}

body[data-language="ar"] .location-row__title::before {
  right: -2.3rem;
  left: auto;
}

body[data-language="ar"] .location-row__title::after {
  right: -1.82rem;
  left: auto;
  transform-origin: right center;
}

body[data-language="ar"] .contact-office,
body[data-language="ar"] .contact-communications,
body[data-language="ar"] .contact-inquiry,
body[data-language="ar"] .contact-footer__legal {
  text-align: right;
}

body[data-language="ar"] .contact-socials,
body[data-language="ar"] .contact-channels,
body[data-language="ar"] .contact-channel,
body[data-language="ar"] .contact-form,
body[data-language="ar"] .contact-footer__legal,
body[data-language="ar"] .contact-footer__policies {
  direction: rtl;
}

body[data-language="ar"] .contact-channel__links {
  justify-items: start;
}

body[data-language="ar"] .contact-form input {
  text-align: right;
}

body[data-language="ar"] .contact-form__note {
  text-align: right;
}

body[data-language="ar"] .contact-form::after {
  transform-origin: left center;
}

body[data-language="ar"] .contact-form:focus-within::after {
  transform-origin: right center;
}

body[data-language="ar"] .contact-form button {
  transform: rotate(180deg);
}

body[data-language="ar"] .contact-form button:hover,
body[data-language="ar"] .contact-form button:focus-visible {
  transform: translate3d(-6px, 0, 0) rotate(180deg);
}

body[data-language="ar"] .contact-inline-link::after,
body[data-language="ar"] .contact-socials a::after,
body[data-language="ar"] .contact-channel__phone::after,
body[data-language="ar"] .contact-channel__email::after,
body[data-language="ar"] .contact-footer a::after {
  transform-origin: left center;
}

body[data-language="ar"] .contact-inline-link:hover::after,
body[data-language="ar"] .contact-inline-link:focus-visible::after,
body[data-language="ar"] .contact-socials a:hover::after,
body[data-language="ar"] .contact-socials a:focus-visible::after,
body[data-language="ar"] .contact-channel__phone:hover::after,
body[data-language="ar"] .contact-channel__phone:focus-visible::after,
body[data-language="ar"] .contact-channel__email:hover::after,
body[data-language="ar"] .contact-channel__email:focus-visible::after,
body[data-language="ar"] .contact-footer a:hover::after,
body[data-language="ar"] .contact-footer a:focus-visible::after {
  transform-origin: right center;
}

body[data-language="ar"] .contact-channel__phone,
body[data-language="ar"] .contact-channel__email,
body[data-language="ar"] .contact-socials a,
body[data-language="ar"] .contact-footer__partner,
body[data-language="ar"] .contact-footer__credit-name {
  direction: ltr;
  unicode-bidi: isolate;
}

body[data-language="ar"] .contact-footer__credit {
  justify-items: start;
  text-align: left;
}

body[data-language="ar"] .contact-footer__policy + .contact-footer__policy::before {
  margin-right: 0;
  margin-left: 0.42rem;
}

body[data-language="ar"] .cookie-banner__copy {
  justify-items: start;
  text-align: right;
}

body[data-language="ar"] .cookie-banner__policy::after {
  transform-origin: right center;
}

body[data-language="ar"] .cookie-banner__actions {
  padding-right: clamp(1.25rem, 1.8vw, 1.6rem);
  padding-left: 0;
  border-right: 1px solid rgba(243, 234, 217, 0.14);
  border-left: 0;
}

body[data-language="ar"] .cookie-banner__button {
  direction: rtl;
}

body[data-language="ar"] .cookie-banner__button-arrow {
  transform: rotate(180deg);
}

body[data-language="ar"] .cookie-banner__button:hover .cookie-banner__button-arrow {
  transform: translateX(-3px) rotate(180deg);
}

body[data-language="ar"] .legal-modal__kicker,
body[data-language="ar"] .legal-modal__tab,
body[data-language="ar"] .legal-modal__intro,
body[data-language="ar"] .legal-modal__content,
body[data-language="ar"] .legal-modal__section,
body[data-language="ar"] .legal-modal__storage-row dd {
  text-align: right;
}

body[data-language="ar"] .legal-modal__tabs,
body[data-language="ar"] .legal-modal__cookie-actions {
  direction: rtl;
}

body[data-language="ar"] .legal-modal__tab::after {
  transform-origin: right center;
}

body[data-language="ar"] .legal-modal__section ul {
  padding-right: 1.15rem;
  padding-left: 0;
}

body[data-language="ar"] .legal-modal__number {
  direction: ltr;
  unicode-bidi: isolate;
  text-align: right;
}

body[data-language="ar"] .legal-modal__storage-row dt {
  direction: ltr;
  unicode-bidi: isolate;
  text-align: left;
}

body[data-language="ar"] .legal-modal__title {
  max-width: 11ch;
}

@media (max-width: 1000px) {
  body[data-language="ar"] .location-map-cta {
    right: auto;
    left: 0;
    border-right: 1px solid rgba(243, 234, 217, 0.12);
    border-left: 0;
  }

  body[data-language="ar"] .location-hero__aside {
    right: var(--mobile-gutter);
    left: auto;
  }

  body[data-language="ar"] .location-row__title {
    padding-right: var(--location-marker-space);
    padding-left: 0;
  }

  body[data-language="ar"] .location-row__title::before {
    right: 0.22rem;
    left: auto;
  }

  body[data-language="ar"] .location-row__title::after {
    right: 0.72rem;
    left: auto;
  }

  body[data-language="ar"] .location-row__copy {
    padding-right: 0;
    padding-left: 3.3rem;
  }

  body[data-language="ar"] .contact-footer__legal,
  body[data-language="ar"] .contact-footer__partners,
  body[data-language="ar"] .contact-footer__credit {
    justify-self: start;
  }

  body[data-language="ar"] .contact-footer__credit {
    justify-items: start;
    text-align: right;
  }
}

@media (max-width: 640px) {
  body[data-language="ar"] .location-hero {
    place-items: center start;
  }

  body[data-language="ar"] .location-hero__headline {
    text-align: right;
  }

  body[data-language="ar"] .location-row__copy {
    justify-self: start;
  }

  body[data-language="ar"] .cookie-banner__actions {
    justify-content: flex-start;
    padding-top: 1rem;
    padding-right: 0;
    border-top: 1px solid rgba(243, 234, 217, 0.14);
    border-right: 0;
  }

  body[data-language="ar"] .legal-modal__title {
    max-width: none;
  }
}

@media (prefers-reduced-motion: reduce) {
  .intro-overlay,
  .intro-overlay::before,
  .intro-overlay::after,
  .intro-shell,
  .intro-brand__mark,
  .intro-brand__name,
  .intro-brand__place,
  .intro-line::before,
  .intro-line::after,
  .intro-progress__meta,
  .intro-partners,
  .intro-cta,
  .cookie-banner,
  .legal-modal,
  .legal-modal__dialog,
  .language-picker__menu,
  .nav-transition,
  .nav-transition::before,
  .nav-transition__line {
    animation: none;
    transition: none;
  }

  .feature-outro-shadow img {
    transition: none;
  }

  .intro-shell,
  .intro-brand__mark,
  .intro-brand__name,
  .intro-brand__place,
  .intro-progress__meta,
  .intro-partners {
    opacity: 1;
    filter: none;
    transform: none;
  }

  .intro-partners {
    transform: translate3d(-50%, 0, 0);
  }

  .stage.is-intro-ready .intro-cta {
    opacity: 1;
    visibility: visible;
    filter: none;
    transform: none;
  }

  .features-intro,
  .feature-row,
  .residence-card,
  .location-hero,
  .location-row,
  .contact-section,
  .contact-reveal {
    --intro-eyebrow-progress: 1;
    --intro-eyebrow-clip: 0%;
    --intro-eyebrow-y: 0px;
    --intro-title-progress: 1;
    --intro-title-clip: 0%;
    --intro-title-y: 0px;
    --intro-body-progress: 1;
    --intro-body-y: 0px;
    --row-eyebrow-progress: 1;
    --row-title-progress: 1;
    --row-title-clip: 0%;
    --row-body-progress: 1;
    --row-media-progress: 1;
    --row-media-opacity: 1;
    --row-media-clip: 0%;
    --row-media-mask-start: 100%;
    --row-media-mask-end: 100%;
    --row-image-scale: 1;
    --residence-card-progress: 1;
    --location-line-one: 1;
    --location-line-two: 1;
    --location-accent: 1;
    --location-aside: 1;
    --location-title-progress: 1;
    --location-copy-progress: 1;
    --location-divider-progress: 1;
    --contact-theme-progress: 1;
    --contact-entry-progress: 1;
    --contact-item-progress: 1;
  }

  .features-intro__eyebrow,
  .features-intro__title,
  .features-intro__body,
  .features-intro .reveal-word {
    opacity: 1;
    filter: none;
    transform: none;
    clip-path: none;
    will-change: auto;
  }
}
