/* --- Söhne (files in assets/fonts/, see README) --- */
@font-face { font-family: "Söhne"; src: url("assets/fonts/soehne-buch.woff2") format("woff2"); font-weight: 400; font-style: normal; font-display: swap; }
@font-face { font-family: "Söhne"; src: url("assets/fonts/soehne-kraftig.woff2") format("woff2"); font-weight: 500; font-style: normal; font-display: swap; }
@font-face { font-family: "Söhne"; src: url("assets/fonts/soehne-halbfett.woff2") format("woff2"); font-weight: 600; font-style: normal; font-display: swap; }
@font-face { font-family: "Söhne Schmal"; src: url("assets/fonts/soehne-schmal-buch.woff2") format("woff2"); font-weight: 400; font-style: normal; font-display: swap; }
@font-face { font-family: "Söhne Schmal"; src: url("assets/fonts/soehne-schmal-halbfett.woff2") format("woff2"); font-weight: 600; font-style: normal; font-display: swap; }
@font-face { font-family: "Söhne Schmal"; src: url("assets/fonts/soehne-schmal-dreiviertelfett.woff2") format("woff2"); font-weight: 700; font-style: normal; font-display: swap; }

:root {
  --paper: #f7f9fa;
  --paper-soft: #dce3e7;
  --ink: #071824;           /* dark architectural SURFACE (bg/borders) — unchanged */
  --black: #071824;
  --card: #0d2738;
  --card-2: #123249;
  --accent: #2f8fce;        /* harbor-blue accent — CTAs, active states, focus, key numbers */
  --signal: var(--accent);  /* semantic alias: keyboard focus / active detail */
  --white: #f7f9fa;
  --gray: #5e6b74;
  /* type colors sampled from the brand logo */
  --type-navy: #123653;     /* the "D" — primary type on light */
  --type-steel: #575757;    /* the "B" — secondary type */
  --type-grey: #525253;     /* tagline — muted labels on light */
  --rule: rgba(18, 54, 83, .22);
  --rule-dark: rgba(255, 255, 255, .18);
  --ease: cubic-bezier(.22, 1, .36, 1);
  --ease-glide: cubic-bezier(.16, 1, .3, 1);
  --nav-h: 61px;
  --sans: "Söhne", "Inter", "Avenir Next", "Helvetica Neue", Helvetica, sans-serif;
  --display: "Söhne Schmal", "Archivo Narrow", "Arial Narrow", "Avenir Next Condensed", sans-serif;
  --mono: "IBM Plex Mono", "SFMono-Regular", Consolas, "Liberation Mono", monospace;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; color: var(--type-navy); background: var(--paper); font-family: var(--sans); font-size: 16px; line-height: 1.25; overflow-x: hidden; }
body.dialog-open { overflow: hidden; }
a { color: inherit; text-decoration: none; }
img, video { display: block; max-width: 100%; }
button, input, select, textarea { font: inherit; }
button { color: inherit; }
:focus-visible { outline: 2px solid var(--accent); outline-offset: 3px; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.skip-link { position: fixed; z-index: 5000; top: 12px; left: 12px; padding: 10px 14px; color: var(--white); background: var(--black); transform: translateY(-160%); }
.skip-link:focus { transform: none; }
.mk-kicker { margin: 0; font: 500 11px/1.3 var(--mono); letter-spacing: .04em; text-transform: uppercase; }

/* Opening sequence */
.mk-loader { position: fixed; inset: 0; z-index: 4000; display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; padding: clamp(20px,5vw,64px); color: var(--ink); background: var(--paper); transition: transform .8s var(--ease), visibility .8s; }
.mk-loader__brand { display: grid; justify-items: center; font-family: var(--display); line-height: .78; letter-spacing: -.01em; }
.mk-loader__brand strong { font-size: clamp(180px, min(85vw, 50vh), 680px); font-weight: 700; }
.mk-loader__brand span { margin-top: .08em; font-size: clamp(36px, min(20vw, 13vh), 150px); font-weight: 600; letter-spacing: .1em; }
.mk-loader__count { position: absolute; right: clamp(20px,5vw,64px); bottom: clamp(20px,5vw,48px); font: 400 clamp(36px, 7vw, 100px)/.8 var(--sans); letter-spacing: -.02em; }
.mk-loader.is-complete { transform: translateY(-105%); visibility: hidden; }

/* Navigation */
.mk-nav, .site-header { position: fixed; inset: 0 0 auto; z-index: 1000; display: flex; align-items: center; justify-content: space-between; height: var(--nav-h); padding: 0 20px; border-bottom: 1px solid var(--rule); background: var(--paper); }
.mk-wordmark, .wordmark { display: inline-flex; align-items: center; align-self: stretch; color: var(--type-navy); font-family: var(--display); font-size: 20px; font-weight: 600; letter-spacing: .08em; }
.mk-nav__actions { display: flex; align-items: center; gap: 8px; height: 100%; }
.mk-nav__location { display: grid; place-items: center; padding: 0 4px; color: rgba(255,255,255,.72); font: 500 11px/1 var(--mono); letter-spacing: .16em; }
.mk-nav__cta, .mk-menu { height: 38px; border: 1px solid rgba(255,255,255,.5); border-radius: 999px; color: var(--white); background: rgba(255,255,255,.1); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); font: 500 11px/1 var(--mono); letter-spacing: .16em; text-transform: uppercase; cursor: pointer; transition: color .3s var(--ease-glide), background .3s var(--ease-glide), border-color .3s var(--ease-glide); }
.mk-nav__cta { padding: 0 22px; }
.mk-nav__cta:hover, .mk-menu:hover { color: var(--ink); background: var(--white); border-color: var(--white); }
.mk-menu { width: 40px; padding: 0; font-size: 15px; letter-spacing: 0; }

/* Header states: transparent over hero, glass when revealed, hidden on scroll-down */
.mk-nav { border-bottom-color: transparent; background: transparent; transition: transform .55s var(--ease-glide), opacity .45s var(--ease-glide), background .4s ease, border-color .4s ease; }
.mk-nav::before { content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none; background: linear-gradient(180deg, rgba(7,24,36,.5), transparent); transition: opacity .4s ease; }
.mk-nav .mk-wordmark { color: var(--white); transition: color .3s ease; }
.mk-nav.is-solid { background: rgba(247,249,250,.82); -webkit-backdrop-filter: saturate(1.4) blur(16px); backdrop-filter: saturate(1.4) blur(16px); border-bottom-color: var(--rule); }
.mk-nav.is-solid::before { opacity: 0; }
.mk-nav.is-hidden { transform: translateY(-100%); opacity: 0; pointer-events: none; }
.mk-nav.is-solid .mk-wordmark { color: var(--type-navy); }
.mk-nav.is-solid .mk-nav__location { color: var(--gray); }
.mk-nav.is-solid .mk-nav__cta, .mk-nav.is-solid .mk-menu { color: var(--ink); border-color: rgba(18,54,83,.26); background: rgba(18,54,83,.05); -webkit-backdrop-filter: none; backdrop-filter: none; }
.mk-nav.is-solid .mk-nav__cta:hover, .mk-nav.is-solid .mk-menu:hover { color: var(--white); background: var(--ink); border-color: var(--ink); }

/* Persistent tour CTA — stays while the header fades away */
.mk-sticky-cta { position: fixed; right: 22px; bottom: 22px; z-index: 1200; display: inline-flex; align-items: center; gap: 9px; height: 48px; padding: 0 24px; border: 0; border-radius: 999px; color: var(--white); background: var(--ink); font: 500 12px/1 var(--mono); letter-spacing: .12em; text-transform: uppercase; cursor: pointer; box-shadow: 0 12px 34px rgba(7,24,36,.3); opacity: 0; transform: translateY(14px) scale(.96); pointer-events: none; transition: opacity .45s var(--ease-glide), transform .45s var(--ease-glide), background .25s; }
.mk-sticky-cta::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: var(--accent); box-shadow: 0 0 0 4px rgba(47,143,206,.3); }
.mk-sticky-cta.is-visible { opacity: 1; transform: none; pointer-events: auto; }
.mk-sticky-cta:hover { background: var(--card-2); }
.mobile-menu { position: fixed; z-index: 990; inset: var(--nav-h) 0 auto; padding: 18px; color: var(--white); background: var(--black); }
.mobile-menu a, .mobile-menu button { display: block; width: 100%; padding: 16px 0; border: 0; border-bottom: 1px solid var(--rule-dark); color: inherit; background: none; text-align: left; text-transform: uppercase; }

/* Editorial hero */
.mk-hero { position: relative; min-height: 100svh; overflow: hidden; background: var(--ink); }
.mk-hero__media { position: absolute; inset: 0; }
.mk-hero__media img, .mk-hero__media video { width: 100%; height: 100%; object-fit: cover; object-position: 50% 60%; transform: scale(1.035); will-change: transform; }
.mk-hero__scrim { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(7,24,36,.05) 0%, rgba(7,24,36,.14) 42%, rgba(7,24,36,.74) 100%); }
.mk-hero__content { position: relative; z-index: 2; display: flex; flex-direction: column; justify-content: flex-end; min-height: 100svh; max-width: 640px; padding: calc(var(--nav-h) + 48px) clamp(20px, 4vw, 56px) clamp(44px, 6vw, 76px); color: var(--white); }
.mk-hero__eyebrow { color: var(--white); opacity: .82; }
.mk-hero__headline { margin: 16px 0 22px; font-family: var(--display); font-weight: 400; font-size: clamp(40px, 5.6vw, 84px); line-height: .96; letter-spacing: -.04em; text-wrap: balance; }
.mk-hero__facts { margin: 0 0 30px; padding: 0; list-style: none; font-size: 14px; letter-spacing: .01em; text-transform: uppercase; }
.mk-hero__facts li { padding: 7px 0; border-top: 1px solid rgba(247,249,250,.22); }
.mk-hero__facts li:last-child { border-bottom: 1px solid rgba(247,249,250,.22); }
.mk-hero__actions { display: flex; flex-wrap: wrap; gap: 4px; }
.mk-hero__actions .mk-button--dark { color: var(--ink); border-color: var(--white); background: var(--white); }
.mk-hero__actions .mk-button--dark:hover { color: var(--white); background: transparent; }
.mk-hero__actions .mk-button--line { color: var(--white); border-color: var(--white); }
.mk-hero__actions .mk-button--line:hover { color: var(--ink); background: var(--white); }

.mk-button { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; padding: 11px 16px; border: 1px solid currentColor; border-radius: 3px; background: transparent; font: 500 12px/1 var(--mono); letter-spacing: .035em; text-transform: uppercase; cursor: pointer; transition: color .25s, background .25s, transform .25s; }
.mk-button:hover { transform: translateY(-2px); }
.mk-button--dark { color: var(--white); border-color: var(--ink); background: var(--ink); }
.mk-button--dark:hover { color: var(--ink); background: transparent; }
.mk-button--line { color: var(--ink); background: transparent; }
.mk-button--line:hover { color: var(--white); background: var(--ink); }
.mk-button--accent { color: var(--ink); border-color: var(--accent); background: var(--accent); }

/* Hero entrance: one settle, no loop — a slower, quieter curve than the rest of the site */
.motion-ready .mk-hero__media img, .motion-ready .mk-hero__media video { transform: scale(1.035); }
.motion-ready.is-loaded .mk-hero__media img, .motion-ready.is-loaded .mk-hero__media video { transition: transform 2.6s var(--ease-glide); transform: scale(1); }
.motion-ready .mk-hero__eyebrow,
.motion-ready .mk-hero__headline,
.motion-ready .mk-hero__facts li,
.motion-ready .mk-hero__actions { opacity: 0; transform: translateY(18px); }
.motion-ready.is-loaded .mk-hero__eyebrow { transition: opacity .8s var(--ease-glide) .15s, transform .8s var(--ease-glide) .15s; opacity: 1; transform: none; }
.motion-ready.is-loaded .mk-hero__headline { transition: opacity .9s var(--ease-glide) .32s, transform .9s var(--ease-glide) .32s; opacity: 1; transform: none; }
.motion-ready.is-loaded .mk-hero__facts li:nth-child(1) { transition: opacity .7s var(--ease-glide) .56s, transform .7s var(--ease-glide) .56s; opacity: 1; transform: none; }
.motion-ready.is-loaded .mk-hero__facts li:nth-child(2) { transition: opacity .7s var(--ease-glide) .64s, transform .7s var(--ease-glide) .64s; opacity: 1; transform: none; }
.motion-ready.is-loaded .mk-hero__facts li:nth-child(3) { transition: opacity .7s var(--ease-glide) .72s, transform .7s var(--ease-glide) .72s; opacity: 1; transform: none; }
.motion-ready.is-loaded .mk-hero__actions { transition: opacity .75s var(--ease-glide) .9s, transform .75s var(--ease-glide) .9s; opacity: 1; transform: none; }

/* Portfolio lead-in: plain, unhurried — the two-property statement, relocated out of the hero */
.mk-portfolio-intro { padding: clamp(64px,10vh,120px) clamp(20px,4vw,56px); color: var(--white); background: var(--ink); }
.mk-portfolio-intro .mk-kicker { color: var(--gray); }
.mk-portfolio-intro h2 { max-width: 18ch; margin: 14px 0 0; font-family: var(--display); font-size: clamp(34px, 5vw, 64px); font-weight: 400; line-height: .98; letter-spacing: -.04em; text-wrap: balance; }

/* Scroll-expanding property film */
.mk-manifesto { height: 300svh; color: var(--white); background: var(--black); --manifesto-p: 0; }
.mk-manifesto__sticky { position: sticky; top: 0; height: 100svh; min-height: 620px; overflow: hidden; background: var(--black); }
.mk-dream-frame { position: absolute; z-index: 1; inset: 0; overflow: hidden; clip-path: inset(calc(var(--manifesto-inv, 1) * 25%) calc(var(--manifesto-inv, 1) * 32%)); will-change: clip-path; }
.mk-dream-frame::after { content: ""; position: absolute; inset: 0; background: linear-gradient(115deg, rgba(7,24,36,.62), rgba(7,24,36,.08) 52%, rgba(7,24,36,.48)); }
.mk-dream-frame video { width: 100%; height: 100%; object-fit: cover; filter: saturate(.82) contrast(1.04); transform: scale(calc(1.08 - var(--manifesto-p) * .08)); will-change: transform; }
.mk-manifesto__copy { position: absolute; z-index: 4; top: clamp(78px,11vh,118px); left: clamp(18px,3.3vw,50px); width: min(58vw,820px); transform: translateY(calc((.25 - var(--manifesto-p)) * 45px)); text-shadow: 0 2px 20px rgba(7,24,36,.85); }
.mk-manifesto__copy h2 { margin: 10px 0 0; font-family: var(--display); font-size: clamp(48px, 5.6vw, 82px); font-weight: 400; line-height: .92; letter-spacing: -.035em; text-wrap: balance; }
.mk-manifesto__body { position: absolute; z-index: 4; right: 4%; bottom: 8%; width: min(38%, 500px); margin: 0; font-size: clamp(18px, 1.55vw, 23px); line-height: 1.2; transform: translateY(calc((.62 - var(--manifesto-p)) * 55px)); text-shadow: 0 2px 16px rgba(7,24,36,.9); text-wrap: pretty; }
.mk-manifesto__meta { position: absolute; z-index: 4; top: 28px; right: 28px; color: var(--white); font: 11px/1.5 var(--mono); text-align: right; text-shadow: 0 2px 12px rgba(7,24,36,.9); }

/* Sticky horizontal property reel */
.mk-reel { height: 320svh; scroll-margin-top: var(--nav-h); color: var(--white); background: var(--black); --reel-p: 0; --reel-x: 0px; }
.mk-reel__sticky { position: sticky; top: var(--nav-h); display: grid; grid-template-columns: 182px minmax(0, 1fr); height: calc(100svh - var(--nav-h)); overflow: hidden; border-top: 1px solid var(--rule-dark); background: var(--black); }
.mk-reel__rail { position: relative; z-index: 5; display: flex; flex-direction: column; gap: 18px; padding: 22px 20px; border-right: 1px solid var(--rule-dark); background: var(--black); }
.mk-reel__thumb { display: grid; place-items: center; margin: 4px auto 0; }
.mk-reel__thumb span { display: grid; place-items: center; color: var(--accent); }
.mk-reel__thumb svg { width: 92px; height: 92px; }
.mk-reel__rail button { padding: 4px 0; border: 0; color: #77848f; background: none; font: 11px/1.3 var(--mono); text-align: left; cursor: pointer; transition: color .25s var(--ease); }
.mk-reel__rail button.is-active { color: var(--accent); }
.mk-reel__progress { height: 1px; margin-top: auto; overflow: hidden; background: var(--rule-dark); }
.mk-reel__progress i { display: block; width: 100%; height: 100%; background: var(--accent); transform: scaleX(var(--reel-p)); transform-origin: left; }
.mk-reel__content { min-width: 0; overflow: hidden; }
.mk-reel__heading { display: flex; align-items: start; justify-content: space-between; height: 172px; padding: 26px 24px 20px; }
.mk-reel__heading h2 { margin: 0; font-family: var(--display); font-size: clamp(40px, 4vw, 60px); font-weight: 400; line-height: .96; letter-spacing: -.02em; }
.mk-reel__counter { font: 12px/1 var(--mono); }
.mk-reel__viewport { height: calc(100% - 172px); overflow: hidden; padding-left: 24px; }
.mk-reel__track { display: grid; grid-auto-flow: column; grid-auto-columns: max-content; gap: 7px; width: max-content; height: calc(100% - 22px); transform: translate3d(var(--reel-x),0,0); will-change: transform; }
.mk-card { position: relative; height: 100%; overflow: hidden; border: 1px solid rgba(255,255,255,.1); border-radius: 4px; background: var(--card); }
.mk-card--locator { display: grid; grid-template-rows: 54% 46%; width: min(30vw, 405px); }
.mk-card__plot { position: relative; display: grid; place-items: center; overflow: hidden; border-bottom: 1px solid var(--rule-dark); background: #191718; }
.mk-card__plot::before, .mk-card__plot::after { content: ""; position: absolute; background: rgba(255,255,255,.12); }
.mk-card__plot::before { top: 0; bottom: 0; width: 1px; }
.mk-card__plot::after { left: 0; right: 0; height: 1px; }
.mk-card__building { position: relative; z-index: 2; color: var(--accent); font-size: clamp(105px, 11vw, 170px); letter-spacing: -.1em; line-height: 1; transform: translateX(-.05em); }
.mk-card__plot i { position: absolute; width: 9px; aspect-ratio: 1; border-radius: 50%; background: var(--accent); box-shadow: 0 0 0 1px #111; }
.mk-card__plot i:nth-child(2) { top: 16%; left: 16%; }
.mk-card__plot i:nth-child(3) { top: 26%; right: 14%; background: var(--paper-soft); }
.mk-card__plot i:nth-child(4) { bottom: 18%; left: 21%; background: var(--type-steel); }
.mk-card__plot i:nth-child(5) { bottom: 14%; right: 19%; background: var(--gray); }
/* Photo variant of the locator plot: real aerial instead of the site-plan graphic */
.mk-card__plot--photo { background: none; }
.mk-card__plot--photo::before, .mk-card__plot--photo::after { display: none; }
.mk-card__plot--photo img { width: 100%; height: 100%; object-fit: cover; filter: saturate(.6) contrast(1.06); transform: scale(1.04); }
.mk-card__plot-tag { position: absolute; z-index: 2; right: 14px; bottom: 12px; color: rgba(255,255,255,.82); font: 11px/1 var(--mono); letter-spacing: .04em; text-shadow: 0 1px 6px rgba(7,24,36,.7); }
.mk-card__copy { padding: 20px; }
.mk-card__copy h3 { margin: 10px 0 12px; font-size: 24px; font-weight: 400; line-height: .96; }
.mk-card__copy > p:not(.mk-kicker) { color: #b3afad; font-size: 13px; line-height: 1.25; }
.mk-card__link { position: absolute; z-index: 4; right: 20px; bottom: max(18px, env(safe-area-inset-bottom)); left: 20px; padding-top: 12px; border-top: 1px solid var(--rule-dark); font: 11px/1 var(--mono); }
/* Full-card click target on the property cards — sits above the media, below the top/footer bars */
.mk-card__cover { position: absolute; inset: 0; z-index: 2; }
/* Let decorative overlays pass taps through to the cover link; keep real links live */
.mk-card__topline, .mk-card__overlay, .mk-card__footer { pointer-events: none; }
.mk-card__footer a, .mk-card__link { pointer-events: auto; }
.mk-card--photo img, .mk-card__type-image, .mk-card__plot { transition: transform .6s var(--ease-glide); }
.mk-card--photo:hover img { transform: scale(1.12); }
.mk-card--feature:hover .mk-card__type-image { transform: scale(1.04) translateX(-.05em); }
.mk-card--feature, .mk-card--photo { width: min(47vw, 660px); }
.mk-card__topline, .mk-card__footer { position: absolute; z-index: 3; right: 0; left: 0; display: flex; justify-content: space-between; padding: 14px 16px; font: 11px/1 var(--mono); }
.mk-card__topline { top: 0; border-bottom: 1px solid var(--rule-dark); }
.mk-card__footer { bottom: 0; border-top: 1px solid var(--rule-dark); background: rgba(12,10,11,.88); }
.mk-card__footer a { color: var(--accent); }
.mk-card__type-image { display: grid; place-items: center; height: 100%; color: rgba(255,255,255,.09); background: radial-gradient(circle, #3e3a3a 0, #1c1a1b 58%); font-size: min(28vw, 390px); letter-spacing: -.12em; transform: translateX(-.05em); }
.mk-card--photo img { width: 100%; height: 100%; object-fit: cover; filter: saturate(.55) contrast(1.08); transform: scale(1.06); }
.mk-card--photo::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(7,24,36,.62) 0%, rgba(7,24,36,.12) 24%, rgba(7,24,36,.14) 50%, rgba(7,24,36,.9) 100%); }
.mk-card__overlay { position: absolute; z-index: 3; bottom: 74px; left: 22px; width: 65%; }
.mk-card__overlay h3 { margin: 0 0 8px; font-size: clamp(30px, 3.3vw, 48px); font-weight: 400; line-height: .92; }
.mk-card__overlay p { margin: 0; color: #d1ceca; }
.mk-card--facts { display: flex; flex-direction: column; width: min(28vw, 390px); padding: 22px; }
.mk-card--facts dl { margin: 26px 0 30px; }
.mk-card--facts dl div { display: grid; grid-template-columns: 80px 1fr; column-gap: 22px; align-items: center; padding: 18px 0; border-top: 1px solid var(--rule-dark); }
.mk-card--facts dt { color: var(--accent); font-family: var(--display); font-size: 44px; line-height: 1; letter-spacing: -.02em; }
.mk-card--facts dd { margin: 0; color: #bbb7b5; font-size: 13px; }
.mk-card--facts .mk-button { margin-top: auto; }

/* Approach */
/* Approach — sticky stacking cards: they pile up on scroll and un-stack on the way back up */
.mk-approach { position: relative; padding: var(--nav-h) 0 0; border-top: 1px solid var(--rule); background: var(--paper-soft); }
.mk-approach__index { padding: 22px clamp(24px,5vw,90px) 0; font: 11px/1.3 var(--mono); color: var(--type-grey); }
.mk-approach > h2 { max-width: 20ch; margin: 0; padding: clamp(36px,5vw,72px) clamp(24px,5vw,90px) clamp(52px,7vw,104px); font-size: clamp(46px,6.4vw,96px); font-weight: 400; line-height: .94; letter-spacing: -.05em; text-wrap: balance; }
.mk-approach__facts { display: flex; flex-direction: column; padding: 0 clamp(24px,5vw,90px) clamp(90px,14vh,180px); }
.mk-approach__facts > div { position: sticky; display: flex; flex-direction: column; justify-content: center; width: 100%; max-width: 1000px; min-height: 60vh; margin: 0 auto; padding: clamp(34px,4.6vw,64px); border: 1px solid var(--rule-dark); border-radius: 2px; color: var(--white); background: var(--ink); box-shadow: 0 -16px 40px -26px rgba(7,24,36,.6); }
.mk-approach__facts > div:nth-child(1) { top: calc(var(--nav-h) + 26px); }
.mk-approach__facts > div:nth-child(2) { top: calc(var(--nav-h) + 44px); }
.mk-approach__facts > div:nth-child(3) { top: calc(var(--nav-h) + 62px); }
.mk-approach__facts span { font: 500 clamp(24px,3.4vw,40px)/1 var(--mono); color: var(--signal); }
.mk-approach__facts h3 { margin: clamp(20px,3vw,34px) 0 14px; font-size: clamp(26px,3.4vw,40px); font-weight: 400; line-height: 1; }
.mk-approach__facts p { max-width: 46ch; margin: 0; color: rgba(247,249,250,.72); font-size: clamp(15px,1.4vw,18px); line-height: 1.36; text-wrap: pretty; }
.word { display: inline-block; margin-right: .17em; }
.motion-ready .word { opacity: .12; transform: translateY(.24em); transition: opacity .55s var(--ease), transform .55s var(--ease); transition-delay: calc(var(--word-index) * 38ms); }
.motion-ready [data-word-reveal].is-visible .word { opacity: 1; transform: none; }

/* Viewing and footer */
.mk-viewing { display: grid; grid-template-columns: 1.3fr .7fr; min-height: 84svh; padding: clamp(52px,7vw,104px) clamp(24px,5vw,64px); background: var(--accent); }
.mk-viewing > .mk-kicker { grid-column: 1 / -1; }
.mk-viewing h2 { align-self: end; margin: 0; font-size: clamp(75px, 10vw, 155px); font-weight: 400; line-height: .78; letter-spacing: -.075em; }
.mk-viewing__aside { align-self: end; display: grid; gap: 40px; padding: 0 0 4px 30px; }
.mk-viewing__aside p { max-width: 410px; margin: 0; font-size: 21px; line-height: 1.08; }
.mk-footer { display: grid; grid-template-columns: 1fr; justify-items: center; align-items: center; text-align: center; gap: 26px; padding: 48px 22px; color: var(--white); background: var(--black); font: 12px/1.45 var(--mono); }
.mk-footer img { width: min(230px, 42vw); }
.mk-footer img, .site-footer img { order: 1; }
.mk-footer > p, .site-footer > div { order: 2; }
.mk-footer > a, .site-footer > a { order: 3; padding: 8px 6px; }

/* Viewing dialog */
.viewing-dialog { width: min(1120px, calc(100% - 28px)); max-height: calc(100dvh - 28px); padding: 0; border: 0; border-radius: 0; color: var(--ink); background: var(--paper-soft); }
.viewing-dialog::backdrop { background: rgba(8,6,7,.82); backdrop-filter: blur(8px); }
.dialog-grid { display: grid; grid-template-columns: .9fr 1.1fr; min-height: min(720px, calc(100dvh - 28px)); }
.dialog-intro { position: relative; padding: clamp(30px,5vw,70px); color: var(--white); background: var(--black); }
.dialog-intro h2 { margin: 90px 0 25px; font-size: clamp(48px,5vw,72px); font-weight: 400; line-height: .9; letter-spacing: -.06em; }
.dialog-intro > p:last-of-type { color: #aaa6a4; }
.dialog-close { position: absolute; top: 22px; right: 22px; padding: 0; border: 0; color: inherit; background: none; font: 11px/1 var(--mono); cursor: pointer; }
.viewing-form { align-self: center; padding: clamp(30px,5vw,70px); }
.form-step { display: none; }
.form-step.is-active { display: block; animation: form-in .5s var(--ease); }
@keyframes form-in { from { opacity: 0; transform: translateX(18px); } }
fieldset { padding: 0; border: 0; }
legend { margin: 18px 0 22px; font-size: clamp(30px,3vw,44px); line-height: .96; letter-spacing: -.04em; }
.choice { display: block; position: relative; margin-bottom: 8px; cursor: pointer; }
.choice input { position: absolute; opacity: 0; }
.choice span { display: grid; gap: 3px; padding: 16px; border: 1px solid var(--rule); }
.choice input:checked + span { border-color: var(--ink); background: var(--accent); }
.choice small { color: var(--type-grey); }
.choice input:checked + span small { color: var(--ink); }
.field-row { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.viewing-form label:not(.choice) { display: grid; gap: 5px; margin-bottom: 15px; font-size: 12px; }
.viewing-form input, .viewing-form select, .viewing-form textarea { width: 100%; padding: 10px 0; border: 0; border-bottom: 1px solid #777; border-radius: 0; background: transparent; }
.form-actions { display: flex; align-items: center; justify-content: space-between; gap: 15px; margin-top: 22px; }
.text-button { padding: 0; border: 0; background: none; font: 11px/1 var(--mono); cursor: pointer; }
.form-error { min-height: 22px; color: #a72b2b; font-size: 12px; }
.form-success h3 { margin: 20px 0; font-size: 40px; font-weight: 400; line-height: .95; }

/* Dedicated property pages */
.property-page { background: var(--paper-soft); }
.site-header .desktop-nav { display: flex; align-items: center; gap: 26px; font-size: 12px; text-transform: uppercase; }
.site-header .text-button { text-transform: uppercase; }
.wordmark { display: flex; align-items: center; gap: 10px; }
.wordmark__monogram { display: grid; place-items: center; width: 34px; height: 34px; color: var(--paper); background: var(--ink); }
.menu-toggle { display: none; border: 0; background: none; font: 12px/1 var(--mono); }
.property-hero { display: grid; grid-template-columns: .8fr 1.2fr; min-height: 100svh; padding-top: var(--nav-h); }
.property-hero__copy { display: flex; flex-direction: column; justify-content: flex-end; padding: clamp(30px,5vw,70px); border-right: 1px solid var(--rule); }
.eyebrow, .utility { font: 11px/1.3 var(--mono); text-transform: uppercase; }
.property-hero__copy h1 { margin: 18px 0; font-size: clamp(62px,8vw,120px); font-weight: 400; line-height: .82; letter-spacing: -.07em; }
.property-hero__copy h1 span { display: block; font-size: .3em; letter-spacing: 0; }
.property-hero__copy > p:not(.eyebrow) { color: var(--type-grey); font-size: 18px; }
.property-hero__copy .button { align-self: flex-start; }
.button { display: inline-flex; justify-content: center; padding: 13px 16px; border: 1px solid var(--ink); color: var(--white); background: var(--ink); text-transform: uppercase; cursor: pointer; }
.property-hero__media { position: relative; min-height: calc(100svh - var(--nav-h)); overflow: hidden; background: var(--black); }
.property-hero__media img, .property-hero__media video { width: 100%; height: 100%; object-fit: cover; transform: scale(1.035); will-change: transform; }
.property-hero__media--typographic { display: grid; place-items: center; }
.property-hero__media--typographic::before, .property-hero__media--typographic::after { content: ""; position: absolute; background: rgba(255,255,255,.1); }
.property-hero__media--typographic::before { top: 0; bottom: 0; left: 50%; width: 1px; }
.property-hero__media--typographic::after { left: 0; right: 0; top: 50%; height: 1px; }
.property-hero__media--typographic span { position: relative; z-index: 2; color: rgba(255,255,255,.12); font-size: min(30vw,430px); letter-spacing: -.12em; }
.property-hero__media--typographic i { position: absolute; width: 8px; aspect-ratio: 1; border-radius: 50%; background: var(--signal); box-shadow: 0 0 0 1px var(--ink); }
.property-hero__media--typographic i:nth-child(2) { top: 22%; left: 20%; }
.property-hero__media--typographic i:nth-child(3) { top: 30%; right: 18%; background: var(--paper-soft); }
.property-hero__media--typographic i:nth-child(4) { bottom: 24%; left: 24%; background: var(--type-steel); }
.property-hero__media--typographic i:nth-child(5) { bottom: 20%; right: 22%; background: var(--gray); }
.property-hero__media--typographic .coord { position: absolute; z-index: 2; right: 18px; bottom: 18px; color: rgba(255,255,255,.55); font: 11px/1 var(--mono); text-transform: uppercase; }
.media-control { position: absolute; right: 18px; bottom: 18px; z-index: 2; padding: 8px 10px; border: 1px solid #fff; color: #fff; background: rgba(0,0,0,.45); font: 11px/1 var(--mono); }

/* Property hero entrance: one settle + a restrained stagger, same doctrine as the homepage hero */
.motion-ready .property-hero__media img, .motion-ready .property-hero__media video { transform: scale(1.035); }
.motion-ready.is-loaded .property-hero__media img, .motion-ready.is-loaded .property-hero__media video { transition: transform 2.6s var(--ease-glide); transform: scale(1); }
.motion-ready .property-hero__copy > * { opacity: 0; transform: translateY(18px); }
.motion-ready.is-loaded .property-hero__copy > *:nth-child(1) { transition: opacity .8s var(--ease-glide) .1s, transform .8s var(--ease-glide) .1s; opacity: 1; transform: none; }
.motion-ready.is-loaded .property-hero__copy > *:nth-child(2) { transition: opacity .9s var(--ease-glide) .26s, transform .9s var(--ease-glide) .26s; opacity: 1; transform: none; }
.motion-ready.is-loaded .property-hero__copy > *:nth-child(3) { transition: opacity .8s var(--ease-glide) .42s, transform .8s var(--ease-glide) .42s; opacity: 1; transform: none; }
.motion-ready.is-loaded .property-hero__copy > *:nth-child(4) { transition: opacity .75s var(--ease-glide) .58s, transform .75s var(--ease-glide) .58s; opacity: 1; transform: none; }
.location-band { display: grid; grid-template-columns: repeat(3,1fr); border-bottom: 1px solid var(--rule); }
.location-band div { padding: 30px; border-right: 1px solid var(--rule); }
.location-band strong { display: block; margin-bottom: 6px; font-size: 40px; font-weight: 400; }
.location-band span { color: var(--type-grey); font-size: 13px; }
.property-summary, .amenities { display: grid; grid-template-columns: .75fr 1.25fr; gap: clamp(30px,7vw,100px); padding: clamp(70px,10vw,140px) clamp(24px,6vw,90px); }
.property-summary h2, .amenities h2, .gallery-header h2, .viewing-cta h2 { margin: 15px 0; font-size: clamp(54px,7vw,100px); font-weight: 400; line-height: .88; letter-spacing: -.06em; }
.property-summary__body { max-width: 760px; font-size: 20px; }
.property-summary__body > p { color: var(--type-grey); }
.fact-grid { display: grid; grid-template-columns: repeat(3,1fr); margin-top: 40px; border-top: 1px solid var(--rule); }
.fact-grid div { padding: 18px 10px 0 0; }
.fact-grid strong, .fact-grid span { display: block; }
.fact-grid strong { font-size: 34px; font-weight: 400; }
.fact-grid span { color: var(--type-grey); font-size: 12px; }
.gallery-section { padding: 0 0 110px; }
.gallery-header { display: flex; align-items: end; justify-content: space-between; padding: 0 24px 24px; }
.gallery-controls { display: flex; gap: 5px; }
.gallery-controls button { padding: 10px 12px; border: 1px solid var(--ink); background: transparent; font: 11px/1 var(--mono); cursor: pointer; transition: background .2s, color .2s; }
.gallery-controls [data-gallery-toggle] { min-width: 64px; }
.gallery-controls__all { color: var(--white); background: var(--ink); text-transform: uppercase; letter-spacing: .04em; }
.gallery-controls__all:hover { background: var(--card-2); }
.gallery-track { position: relative; margin: 0 24px; aspect-ratio: 16/10; overflow: hidden; touch-action: pan-y; cursor: grab; }
.gallery-track:active { cursor: grabbing; }
.gallery-track figure { position: absolute; inset: 0; margin: 0; opacity: 0; transition: opacity .7s var(--ease-glide); pointer-events: none; }
.gallery-track figure.is-active { opacity: 1; pointer-events: auto; }
.gallery-track img { width: 100%; height: 100%; object-fit: cover; -webkit-user-drag: none; user-select: none; }
.gallery-track figure.is-active img { animation: gallery-kenburns var(--gallery-dwell, 3600ms) var(--ease-glide) forwards; }
@keyframes gallery-kenburns { from { transform: scale(1.001); } to { transform: scale(1.06); } }
.gallery-track figcaption { position: absolute; right: 0; bottom: 0; left: 0; padding: 34px 16px 14px; color: var(--white); background: linear-gradient(0deg, rgba(7,24,36,.9) 0%, rgba(7,24,36,.55) 45%, transparent 100%); font: 11px/1.3 var(--mono); text-transform: uppercase; }
/* Autoplay progress bar */
.gallery-progress { height: 2px; margin: 14px 24px 0; overflow: hidden; background: var(--rule); }
.gallery-progress i { display: block; width: 0; height: 100%; background: var(--ink); }
.gallery-progress.is-running i { width: 0; animation: gallery-progress var(--gallery-dwell, 3600ms) linear forwards; }
@keyframes gallery-progress { from { width: 0; } to { width: 100%; } }

/* Thumbnail filmstrip */
.gallery-filmstrip { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; padding: 16px 24px 0; }
.gallery-filmstrip button { width: 74px; height: 50px; padding: 0; border: 0; overflow: hidden; background: none; cursor: pointer; opacity: .48; filter: grayscale(.35); outline: 2px solid transparent; outline-offset: 2px; transition: opacity .25s, filter .25s, outline-color .2s; }
.gallery-filmstrip button img { display: block; width: 100%; height: 100%; object-fit: cover; }
.gallery-filmstrip button:hover { opacity: .8; filter: grayscale(0); }
.gallery-filmstrip button.is-active { opacity: 1; filter: none; outline-color: var(--ink); }

/* See-all lightbox */
.gallery-lightbox { width: min(1180px, 94vw); max-width: none; max-height: 92vh; padding: 0; border: 0; color: var(--ink); background: var(--paper); overflow: hidden; }
.gallery-lightbox::backdrop { background: rgba(7, 24, 36, .82); }
.gallery-lightbox[open] { display: flex; flex-direction: column; }
.gallery-lightbox__head { display: flex; align-items: start; justify-content: space-between; gap: 20px; padding: 20px 22px; border-bottom: 1px solid var(--rule); }
.gallery-lightbox__title { margin: 0 0 4px; font: 12px/1.2 var(--mono); text-transform: uppercase; letter-spacing: .04em; }
.gallery-lightbox__trust { margin: 0; max-width: 46ch; color: var(--gray); font-size: 13px; line-height: 1.35; }
.gallery-lightbox__close { flex: none; padding: 9px 14px; border: 1px solid var(--ink); background: transparent; font: 11px/1 var(--mono); text-transform: uppercase; cursor: pointer; }
.gallery-lightbox__close:hover { color: var(--white); background: var(--ink); }
.gallery-lightbox__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 6px; padding: 6px; overflow: auto; }
.gallery-lightbox__cell { position: relative; margin: 0; padding: 0; border: 0; aspect-ratio: 4/3; overflow: hidden; background: var(--rule); cursor: zoom-in; }
.gallery-lightbox__cell:nth-child(1) { grid-column: span 2; grid-row: span 2; }
.gallery-lightbox__cell img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s var(--ease-glide); }
.gallery-lightbox__cell:hover img { transform: scale(1.05); }
.gallery-lightbox__cell span { position: absolute; right: 0; bottom: 0; left: 0; padding: 26px 12px 10px; color: var(--white); background: linear-gradient(0deg, rgba(7,24,36,.8), transparent); font: 10px/1.3 var(--mono); text-transform: uppercase; opacity: 0; transition: opacity .25s; }
.gallery-lightbox__cell:hover span, .gallery-lightbox__cell:focus-visible span { opacity: 1; }
.gallery-lightbox__single { position: absolute; inset: 0; z-index: 2; display: grid; place-items: center; margin: 0; background: var(--paper); }
.gallery-lightbox__single[hidden] { display: none; }
.gallery-lightbox__single img { max-width: 100%; max-height: 100%; object-fit: contain; }
.gallery-lightbox__single figcaption { position: absolute; left: 0; right: 0; bottom: 0; padding: 44px 20px 16px; color: var(--white); background: linear-gradient(0deg, rgba(7,24,36,.9) 0%, rgba(7,24,36,.55) 45%, transparent 100%); font: 11px/1.3 var(--mono); text-transform: uppercase; text-align: center; }
.gallery-lightbox__nav { position: absolute; top: 50%; transform: translateY(-50%); width: 46px; height: 46px; border: 1px solid var(--ink); background: var(--paper); font-size: 22px; line-height: 1; cursor: pointer; }
.gallery-lightbox__nav--prev { left: 14px; }
.gallery-lightbox__nav--next { right: 14px; }
.gallery-lightbox__nav:hover { color: var(--white); background: var(--ink); }
.gallery-lightbox__back { position: absolute; top: 14px; left: 14px; padding: 9px 14px; border: 1px solid var(--ink); background: var(--paper); font: 11px/1 var(--mono); text-transform: uppercase; cursor: pointer; }
@media (max-width: 720px) {
  .gallery-lightbox__grid { grid-template-columns: repeat(2, 1fr); }
  .gallery-lightbox__cell:nth-child(1) { grid-column: span 2; grid-row: auto; }
  .gallery-filmstrip button { width: 58px; height: 40px; }
}
.amenities { color: var(--white); background: var(--black); }
.amenity-list { display: grid; grid-template-columns: 1fr 1fr; gap: 0 30px; margin: 0; padding: 0; list-style: none; }
.amenity-list li { padding: 16px 0; border-bottom: 1px solid var(--rule-dark); }
.viewing-cta { padding: clamp(70px,10vw,140px) clamp(24px,6vw,90px); background: var(--accent); }
.site-footer { display: grid; grid-template-columns: 1fr; justify-items: center; align-items: center; text-align: center; gap: 26px; padding: 46px 24px; color: var(--white); background: var(--black); font-size: 12px; }
.site-footer img { width: 210px; }
.motion-ready [data-reveal] { opacity: 0; transform: translateY(28px); transition: opacity .8s var(--ease), transform .8s var(--ease); }
.motion-ready [data-reveal].is-visible { opacity: 1; transform: none; }

/* Contrast guards: text on the signal-blue accent stays at max contrast */
.mk-viewing, .viewing-cta, .choice input:checked + span { color: var(--ink); }

@media (max-width: 900px) {
  .mk-nav__location { display: none; }
  .mk-sticky-cta { display: none; }
  .mk-manifesto { height: 260svh; }
  /* Manifesto keeps its pinned reveal; the property reel below becomes a native swipe carousel. */
  .mk-manifesto__sticky { position: sticky; top: var(--nav-h); height: calc(100svh - var(--nav-h)); min-height: 0; }
  .mk-manifesto__copy { top: 12%; width: 58%; transform: translateY(calc((.45 - var(--manifesto-p)) * 64px)); }
  .mk-manifesto__body { width: 48%; transform: translateY(calc((.62 - var(--manifesto-p)) * 58px)); }
  .mk-dream-frame { clip-path: inset(calc(var(--manifesto-inv, 1) * 18%) calc(var(--manifesto-inv, 1) * 12%)); }

  /* Property reel — swipe left/right, no scroll-hijacking (no sticky, no vertical→horizontal mapping) */
  .mk-reel { height: auto; }
  .mk-reel__sticky { position: static; display: block; height: auto; min-height: 0; padding: 0; }
  .mk-reel__rail { position: static; z-index: auto; display: grid; grid-template-columns: auto 1fr 1fr; gap: 12px; align-items: center; width: auto; height: 62px; padding: 8px 20px; border-right: 0; border-bottom: 1px solid var(--rule-dark); }
  .mk-reel__rail .mk-kicker { display: none; }
  .mk-reel__rail button { align-self: stretch; display: flex; align-items: center; }
  .mk-reel__thumb { margin: 0; }
  .mk-reel__thumb svg { width: 40px; height: 40px; }
  .mk-reel__progress { display: none; }
  .mk-reel__content { height: auto; }
  .mk-reel__heading { height: auto; min-height: 0; padding: 22px 20px 2px; }
  .mk-reel__viewport { height: auto; overflow-x: auto; overflow-y: hidden; scroll-snap-type: x mandatory; -webkit-overflow-scrolling: touch; scroll-padding-inline: 20px; padding: 18px 20px 22px; scrollbar-width: none; overscroll-behavior-x: contain; }
  .mk-reel__viewport::-webkit-scrollbar { display: none; }
  .mk-reel__track { position: static; display: flex; gap: 12px; width: max-content; height: auto; transform: none !important; }
  .mk-card, .mk-card--locator, .mk-card--feature, .mk-card--photo, .mk-card--facts { position: relative; inset: auto; flex: 0 0 84vw; width: auto; max-width: 400px; min-height: 0; height: 66svh; max-height: 560px; transform: none; opacity: 1; scroll-snap-align: center; will-change: auto; }
  .mk-approach { grid-template-columns: 1fr; }
  .mk-approach__index { border-right: 0; }
  .mk-approach__facts { grid-column: 1; }
  .mk-viewing { grid-template-columns: 1fr; gap: 64px; }
  .mk-viewing__aside { padding-left: 0; }
  .property-hero, .property-summary, .amenities { grid-template-columns: 1fr; }
  .property-hero__copy { min-height: 72svh; border-right: 0; }
  .property-hero__media { min-height: 65svh; }
  .site-header .desktop-nav { display: none; }
  .menu-toggle { display: block; }
  .dialog-grid { grid-template-columns: 1fr; }
  .dialog-intro { min-height: 280px; }
  .dialog-intro h2 { margin-top: 55px; }
}

@media (max-width: 620px) {
  :root { --nav-h: 57px; }
  .mk-nav { padding: 0 10px; }
  .mk-wordmark { font-size: 14px; }
  .mk-nav__cta { padding: 0 15px; font-size: 10px; letter-spacing: .08em; }
  .mk-nav__cta, .mk-menu { height: 44px; }
  .mk-menu { width: 44px; }
  .mk-sticky-cta { right: 12px; bottom: 12px; height: 44px; padding: 0 18px; font-size: 10px; }
  /* Un-pin the manifesto on phones: a clean stacked block (heading -> film -> body),
     white type on the dark section instead of white-on-bright-photo. */
  .mk-manifesto { height: auto; }
  .mk-manifesto__sticky { position: relative; top: 0; height: auto; min-height: 0; display: flex; flex-direction: column; gap: 24px; padding: 54px 16px 60px; }
  .mk-manifesto__copy { position: relative; top: auto; left: auto; width: 100%; transform: none; }
  .mk-manifesto__copy h2 { font-size: clamp(38px,11vw,52px); }
  /* Full-bleed video that scales up to fill the screen as it scrolls in.
     transform:scale is rock-solid on iOS (clip-path transitions are not). */
  .mk-dream-frame { position: relative; aspect-ratio: 4 / 3; clip-path: none; margin-inline: -16px; }
  .motion-ready .mk-dream-frame { transform: scale(.8); transition: transform 1.1s var(--ease-glide); will-change: transform; }
  .motion-ready .mk-dream-frame.is-open { transform: scale(1); }
  .mk-dream-frame video { transform: none; }
  .mk-manifesto__body { position: relative; right: auto; bottom: auto; width: 100%; max-width: none; font-size: 17px; transform: none; }
  .mk-manifesto__meta { display: none; }
  .mk-reel__heading { padding: 20px 14px 2px; }
  .mk-reel__heading h2 { font-size: 32px; }
  .mk-reel__viewport { padding: 16px 14px 22px; scroll-padding-inline: 14px; }
  .mk-card--locator { grid-template-rows: 54% 46%; }
  .mk-approach > h2 { padding: clamp(40px,10vw,64px) 16px clamp(44px,10vw,72px); font-size: clamp(40px,11vw,52px); }
  .mk-approach__facts { padding: 0 14px clamp(70px,12vh,120px); }
  .mk-approach__facts > div { min-height: 64vh; padding: 30px 22px; }
  .mk-viewing { min-height: 720px; padding: 52px 16px 84px; }
  .mk-viewing h2 { font-size: 72px; }
  .field-row { grid-template-columns: 1fr; gap: 0; }
  .viewing-dialog { width: 100%; max-height: 100dvh; }
  .location-band, .fact-grid { grid-template-columns: 1fr; }
  .location-band div { border-right: 0; border-bottom: 1px solid var(--rule); }
  .amenity-list { grid-template-columns: 1fr; }
  /* Gallery controls: stack under the heading and wrap instead of cramming one row */
  .gallery-header { flex-direction: column; align-items: stretch; gap: 16px; }
  .gallery-controls { flex-wrap: wrap; gap: 6px; }
  .gallery-controls button { flex: 1 1 auto; min-height: 44px; white-space: nowrap; }
  .gallery-controls__all { flex: 1 0 100%; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
  .mk-loader { display: none; }
  .motion-ready .mk-hero__media img, .motion-ready .mk-hero__media video, .motion-ready .mk-hero__eyebrow, .motion-ready .mk-hero__headline, .motion-ready .mk-hero__facts li, .motion-ready .mk-hero__actions { opacity: 1; transform: none; }
  .motion-ready .property-hero__media img, .motion-ready .property-hero__media video, .motion-ready .property-hero__copy > * { opacity: 1; transform: none; }
  .mk-manifesto, .mk-reel { height: auto; }
  .mk-manifesto__sticky, .mk-reel__sticky { position: relative; top: 0; }
  .mk-dream-frame { clip-path: none; }
  .mk-reel__track { transform: none !important; }
  /* No sticky stacking under reduced motion — plain compact cards in flow */
  .mk-approach__facts > div { position: static; min-height: 0; margin-bottom: 12px; box-shadow: none; }
  [data-reveal], .word { opacity: 1 !important; transform: none !important; }
}
