/* Generated by site/build-css.py. Edit tokens.json, bundle.css or page.css instead. */
:root {
  --surface: #161616;
  --surface-raised: #1a1a1a;
  --surface-field: #1d1d1d;
  --surface-plate: #2f2f2f;
  --line: #262626;
  --line-strong: #666666;
  --ink: #ffffff;
  --ink-muted: #a5a5a5;
  --ink-faint: #8c8c8c;
  --ink-ghost: #737373;
  --ink-inverse: #161616;
  --paper: #ebebeb;
  --focus: #ffffff;
  --timber: #b67641;
  --jarrah: #5e3b22;
  --gum-leaf: #919340;
  --dusk: #8e9db4;
  --blush: #ddcfcc;
  --cladding: #3e3937;
  --space-1: 4px;
  --space-2: 8px;
  --space-3: 16px;
  --space-4: 24px;
  --space-5: 40px;
  --space-6: 64px;
  --space-7: 160px;
  --radius-none: 0;
  --radius-sm: 2px;
  --radius-full: 999px;
  --header-height: 60px;
  --field-height: 52px;
  --dot: 8px;
  --hairline: 1px;
  --font-sans: "Neue Haas Grotesk Display Pro", "Neue Haas Grotesk Display", "Inter Tight", "Helvetica Neue", Helvetica, Arial, sans-serif;
}
/* Down South components. Values come from tokens.css. */
body { margin: 0; background: var(--surface); color: var(--ink); font-family: var(--font-sans); -webkit-font-smoothing: antialiased; }
.ds-focus:focus-visible, .ds-sectionnav a:focus-visible, .ds-button:focus-visible, .ds-field input:focus-visible, .ds-field textarea:focus-visible, .ds-header a:focus-visible, .ds-header button:focus-visible { outline: 2px solid var(--focus); outline-offset: 2px; }

/* Ring dot */
.ds-dot { display: inline-block; width: var(--dot); height: var(--dot); border: 1.5px solid var(--ink); border-radius: var(--radius-full); box-sizing: border-box; flex: none; }

/* SiteHeader */
.ds-header { display: flex; align-items: center; justify-content: space-between; height: var(--header-height); padding: 0 var(--space-3); background: var(--surface-raised); }
.ds-header__mark { display: inline-flex; align-items: center; gap: 4px; color: var(--ink); text-decoration: none; font-size: 14px; letter-spacing: 0.28em; text-transform: uppercase; }
.ds-header__icon { display: block; width: 32px; height: 32px; margin: 0 -2px; flex: none; } /* 64px source, 36px disc: renders an 18px disc */
.ds-header__menu { background: none; border: 0; padding: 8px 0; cursor: pointer; display: grid; gap: 6px; }
.ds-header__menu span { display: block; width: 40px; height: 1.5px; background: var(--ink); }

/* TitleLockup */
.ds-lockup { margin: 0; font-size: 64px; line-height: 0.95; letter-spacing: -0.035em; font-weight: 400; }
.ds-lockup span { display: block; }
.ds-lockup span + span { color: var(--ink-muted); }
@media (max-width: 809px) { .ds-lockup { font-size: 40px; } }

/* Eyebrow */
.ds-eyebrow { display: inline-flex; align-items: center; gap: var(--space-1); font-size: 14px; line-height: 1.3; font-weight: 500; color: var(--ink); }
.ds-eyebrow .ds-dot { margin-right: 4px; }

/* SectionNav */
.ds-sectionnav { display: flex; gap: var(--space-4); padding: var(--space-3); background: var(--surface-raised); overflow-x: auto; scrollbar-width: none; }
.ds-sectionnav a { display: inline-flex; align-items: center; gap: 8px; white-space: nowrap; font-size: 17px; letter-spacing: -0.01em; color: var(--ink-muted); text-decoration: none; transition: color .2s ease; }
.ds-sectionnav a:hover { color: var(--ink); }
.ds-sectionnav a[aria-current="true"] { color: var(--ink); }
.ds-sectionnav a[aria-current="true"]::before { content: ""; width: var(--dot); height: var(--dot); border: 1.5px solid var(--ink); border-radius: var(--radius-full); box-sizing: border-box; }

/* StatBlock */
.ds-stats { display: grid; gap: var(--space-5); margin: 0; }
.ds-stats--row { grid-auto-flow: column; justify-content: start; gap: var(--space-6); }
.ds-stat dt { order: 2; font-size: 14px; font-weight: 500; color: var(--ink-muted); margin-top: var(--space-2); }
.ds-stat dd { order: 1; margin: 0; font-size: 56px; line-height: 1; letter-spacing: -0.03em; }
.ds-stat { display: flex; flex-direction: column; }

/* FeatureSection */
.ds-feature { padding: 0 var(--space-3); }
.ds-feature__top { display: grid; grid-template-columns: 1fr 1fr; gap: var(--space-3); margin-bottom: var(--space-6); }
.ds-feature__title { margin: var(--space-3) 0 0; font-size: 56px; line-height: 1; letter-spacing: -0.03em; font-weight: 400; }
.ds-feature__text { margin: 0; font-size: 18px; line-height: 1.4; letter-spacing: -0.01em; max-width: 34ch; }
.ds-feature__media { display: grid; gap: var(--space-3); }
.ds-feature__media img { display: block; width: 100%; height: auto; border-radius: var(--radius-none); }
.ds-feature__media--two { grid-template-columns: 1fr 1fr; }
@media (max-width: 809px) { .ds-feature__top { grid-template-columns: 1fr; } .ds-feature__title { font-size: 36px; } }

/* Field */
.ds-field { display: grid; gap: var(--space-2); }
.ds-field label { font-size: 14px; font-weight: 500; color: var(--ink-muted); }
.ds-field input, .ds-field textarea { font: inherit; font-size: 16px; color: var(--ink); background: var(--surface-field); border: var(--hairline) solid var(--line); border-radius: var(--radius-sm); height: var(--field-height); padding: 0 var(--space-3); box-sizing: border-box; width: 100%; }
.ds-field textarea { height: auto; min-height: 120px; padding: var(--space-3); resize: vertical; }
.ds-field input::placeholder, .ds-field textarea::placeholder { color: var(--ink-faint); }
.ds-field input:hover, .ds-field textarea:hover { border-color: var(--line-strong); }

/* Button */
.ds-button { font: inherit; font-size: 16px; letter-spacing: -0.01em; height: var(--field-height); padding: 0 var(--space-5); border: 0; border-radius: var(--radius-none); background: var(--paper); color: var(--ink-inverse); cursor: pointer; transition: background .2s ease; }
.ds-button:hover { background: var(--ink); }
.ds-button--block { width: 100%; }
.ds-button--ghost { background: transparent; color: var(--ink); box-shadow: inset 0 0 0 1px var(--line-strong); }
.ds-button--ghost:hover { background: var(--surface-field); }

/* ---------- Motion ---------- */
:root {
  --ease-out: cubic-bezier(.16, 1, .3, 1);   /* long, soft landing */
  --ease-in-out: cubic-bezier(.65, 0, .35, 1);
  --dur-quick: 240ms; --dur-base: 700ms; --dur-slow: 1200ms; --dur-epic: 1800ms;
  --stagger: 90ms;
}
/* Text rises out of a mask, line by line. Add .ds-rise to a block, wrap lines in <span class="ds-line"><span>..</span></span> */
.ds-line { display: block; overflow: hidden; padding-bottom: .16em; margin-bottom: -.16em; }
.ds-line > span { display: block; transform: translateY(105%); transition: transform var(--dur-slow) var(--ease-out); transition-delay: calc(var(--i, 0) * var(--stagger)); }
.is-in .ds-line > span, .ds-line.is-in > span { transform: none; }
/* Fade and lift for small things */
.ds-fade { opacity: 0; transform: translateY(16px); transition: opacity var(--dur-base) var(--ease-out), transform var(--dur-base) var(--ease-out); transition-delay: calc(var(--i, 0) * var(--stagger)); }
.is-in .ds-fade, .ds-fade.is-in { opacity: 1; transform: none; }
/* Images wipe open from the bottom edge while settling from a slight zoom */
.ds-wipe { overflow: hidden; clip-path: inset(100% 0 0 0); transition: clip-path var(--dur-epic) var(--ease-out); transition-delay: calc(var(--i, 0) * var(--stagger)); }
.ds-wipe > img, .ds-wipe > video { display: block; width: 100%; height: 100%; object-fit: cover; transform: scale(1.12); transition: transform calc(var(--dur-epic) * 1.4) var(--ease-out); transition-delay: inherit; }
.is-in .ds-wipe, .ds-wipe.is-in { clip-path: inset(0 0 0 0); }
.is-in .ds-wipe > img, .is-in .ds-wipe > video, .ds-wipe.is-in > img, .ds-wipe.is-in > video { transform: scale(1); }
@media (prefers-reduced-motion: reduce) {
  .ds-line > span, .ds-fade, .ds-wipe, .ds-wipe > img, .ds-wipe > video { transition: none !important; transform: none !important; opacity: 1 !important; clip-path: none !important; }
}

/* ---------- Marquee ---------- */
.ds-marquee { overflow: hidden; padding: var(--space-6) 0; -webkit-mask-image: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent); mask-image: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent); }
.ds-marquee__track { display: flex; width: max-content; animation: ds-marquee var(--marquee-speed, 48s) linear infinite; }
.ds-marquee:hover .ds-marquee__track { animation-play-state: paused; }
.ds-marquee__group { display: flex; align-items: center; flex: none; }
.ds-marquee__word { font-size: 120px; line-height: 1; letter-spacing: -0.035em; white-space: nowrap; padding: 0 64px; color: var(--ink); }
.ds-marquee__word--muted { color: var(--ink-ghost); }
.ds-marquee__rule { width: 320px; height: var(--hairline); background: var(--ink-ghost); flex: none; transform-origin: left; }
@keyframes ds-marquee { to { transform: translateX(-50%); } }
@media (max-width: 809px) { .ds-marquee__word { font-size: 64px; padding: 0 32px; } .ds-marquee__rule { width: 120px; } }
@media (prefers-reduced-motion: reduce) { .ds-marquee__track { animation: none; } }

/* ---------- SiteFooter ---------- */
.ds-footer { padding: 0 var(--space-6) 80px; }
.ds-footer__media { aspect-ratio: 1312 / 544; margin-bottom: 120px; }
.ds-footer__row { display: flex; justify-content: space-between; align-items: flex-end; gap: var(--space-5); }
.ds-footer__lockup { margin: 0; font-size: 80px; line-height: .92; letter-spacing: -0.035em; font-weight: 400; }
.ds-footer__lockup .ds-line + .ds-line { color: var(--ink-muted); }
.ds-footer__links { list-style: none; margin: 0; padding: 0; text-align: right; }
.ds-footer__links a { display: inline-block; font-size: 22px; line-height: 1.5; letter-spacing: -0.01em; color: var(--ink); text-decoration: none; background: linear-gradient(currentColor, currentColor) 100% 100% / 0 1px no-repeat; transition: background-size var(--dur-base) var(--ease-out); }
.ds-footer__links a:hover { background-position: 0 100%; background-size: 100% 1px; }
.ds-footer a:focus-visible { outline: 2px solid var(--focus); outline-offset: 2px; }
@media (max-width: 809px) { .ds-footer { padding: 0 var(--space-3) 48px; } .ds-footer__media { aspect-ratio: 4 / 3; margin-bottom: 64px; } .ds-footer__row { flex-direction: column; align-items: flex-start; } .ds-footer__lockup { font-size: 48px; } .ds-footer__links { text-align: left; } }

/* ---------- Journey (film page) ---------- */
.ds-journey { padding: 96px var(--space-6) 120px; }
.ds-journey__intro { display: grid; grid-template-columns: 1fr 1fr; gap: var(--space-3); margin-bottom: 120px; }
.ds-journey__title { margin: var(--space-3) 0 0; font-size: 120px; line-height: .92; letter-spacing: -0.04em; font-weight: 400; }
.ds-journey__title .ds-line + .ds-line { color: var(--ink-muted); }
.ds-journey__lead { align-self: end; margin: 0; font-size: 28px; line-height: 1.3; max-width: 26ch; }
.ds-chapter { display: grid; grid-template-columns: 200px 1fr; gap: var(--space-5); padding: var(--space-6) 0; border-top: var(--hairline) solid var(--line); position: relative; }
.ds-chapter::before { content: ""; position: absolute; top: -1px; left: 0; height: 1px; width: 100%; background: var(--ink); transform: scaleX(0); transform-origin: left; transition: transform var(--dur-epic) var(--ease-out); transition-delay: calc(var(--i, 0) * var(--stagger)); }
.ds-chapter.is-in::before { transform: scaleX(1); }
.ds-chapter__num { font-size: 56px; line-height: 1; letter-spacing: -0.03em; color: var(--ink-muted); font-variant-numeric: tabular-nums; }
.ds-chapter__body { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.6fr); gap: var(--space-5); align-items: start; }
.ds-chapter__head h2 { margin: 0 0 var(--space-3); font-size: 40px; line-height: 1.05; letter-spacing: -0.02em; font-weight: 400; }
.ds-chapter__head p { margin: 0 0 var(--space-4); font-size: 18px; line-height: 1.45; color: var(--ink-muted); max-width: 34ch; }
.ds-chapter__meta { font-size: 14px; font-weight: 500; color: var(--ink-muted); }
.ds-film { position: relative; display: block; width: 100%; padding: 0; border: 0; background: var(--surface-plate); cursor: pointer; color: var(--ink); }
.ds-film--wide { aspect-ratio: 16 / 9; } .ds-film--tall { aspect-ratio: 4 / 5; max-width: 520px; } .ds-film--story { aspect-ratio: 9 / 16; max-width: 420px; }
.ds-film video { position: absolute; inset: 0; opacity: 0; transition: opacity var(--dur-slow) var(--ease-out), transform calc(var(--dur-epic) * 1.4) var(--ease-out) !important; }
.ds-film.is-playing video { opacity: 1; }
.ds-film:hover img, .ds-film:hover video { transform: scale(1.03) !important; }
.ds-film img { transition: transform calc(var(--dur-epic) * 1.4) var(--ease-out), opacity var(--dur-slow) var(--ease-out) !important; }
.ds-film__play { position: absolute; left: var(--space-4); bottom: var(--space-4); display: inline-flex; align-items: center; gap: 12px; font-size: 16px; z-index: 2; }
.ds-film__play i { width: 44px; height: 44px; border: 1.5px solid var(--ink); border-radius: var(--radius-full); display: grid; place-items: center; transition: background var(--dur-quick) ease, transform var(--dur-base) var(--ease-out); }
.ds-film__play i::after { content: ""; border-left: 10px solid var(--ink); border-top: 6px solid transparent; border-bottom: 6px solid transparent; margin-left: 3px; transition: border-color var(--dur-quick) ease; }
.ds-film:hover .ds-film__play i { background: var(--ink); transform: scale(1.08); }
.ds-film:hover .ds-film__play i::after { border-left-color: var(--ink-inverse); }
.ds-film__play span { text-shadow: 0 1px 12px rgba(0, 0, 0, .6); }
.ds-film:focus-visible { outline: 2px solid var(--focus); outline-offset: 4px; }
.ds-lightbox { position: fixed; inset: 0; z-index: 50; background: rgba(10, 10, 10, .96); display: grid; place-items: center; padding: var(--space-6) var(--space-3); clip-path: inset(50% 0 50% 0); visibility: hidden; transition: clip-path var(--dur-slow) var(--ease-in-out), visibility 0s linear var(--dur-slow); }
.ds-lightbox.is-open { clip-path: inset(0 0 0 0); visibility: visible; transition: clip-path var(--dur-slow) var(--ease-in-out), visibility 0s; }
.ds-lightbox video { max-width: 100%; max-height: 100%; opacity: 0; transform: scale(.96); transition: opacity var(--dur-base) var(--ease-out) 300ms, transform var(--dur-slow) var(--ease-out) 300ms; }
.ds-lightbox.is-open video { opacity: 1; transform: none; }
.ds-lightbox__close { position: absolute; top: var(--space-3); right: var(--space-3); background: none; border: 0; color: var(--ink); font: inherit; font-size: 16px; cursor: pointer; padding: 8px; }
.ds-lightbox__close:focus-visible { outline: 2px solid var(--focus); }
@media (max-width: 809px) { .ds-journey { padding: 64px var(--space-3) 96px; } .ds-journey__intro, .ds-chapter, .ds-chapter__body { grid-template-columns: 1fr; } .ds-journey__title { font-size: 56px; } .ds-journey__lead { font-size: 22px; } .ds-chapter__num { font-size: 36px; } }

/* ---------- HouseManualLogin ---------- */
.ds-gate { position: relative; min-height: 640px; display: grid; grid-template-columns: 1.2fr 1fr; background: var(--surface); overflow: hidden; }
.ds-gate__media { position: relative; overflow: hidden; }
.ds-gate__media > img:first-child { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; animation: ds-drift 28s var(--ease-in-out) infinite alternate; }
.ds-gate__media::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, transparent 60%, var(--surface)); }
@keyframes ds-drift { from { transform: scale(1.06) translate(0, 0); } to { transform: scale(1.14) translate(-2%, -1.5%); } }
.ds-gate__badge { position: absolute; left: var(--space-6); bottom: var(--space-6); width: 120px; height: 120px; z-index: 2; animation: ds-spin 40s linear infinite; }
@keyframes ds-spin { to { transform: rotate(360deg); } }
.ds-gate__panel { display: flex; flex-direction: column; justify-content: center; padding: var(--space-6); gap: var(--space-5); position: relative; z-index: 1; }
.ds-gate__lockup { margin: 0; font-size: 64px; line-height: .95; letter-spacing: -0.035em; font-weight: 400; }
.ds-gate__lockup .ds-line + .ds-line { color: var(--ink-muted); }
.ds-gate__intro { margin: 0; font-size: 18px; line-height: 1.45; color: var(--ink-muted); max-width: 32ch; }
.ds-gate form { display: grid; gap: var(--space-4); max-width: 400px; }
.ds-gate__pw { position: relative; }
.ds-gate__pw input { padding-right: 72px; }
.ds-gate__toggle { position: absolute; right: 8px; top: 50%; transform: translateY(-50%); background: none; border: 0; color: var(--ink-muted); font: inherit; font-size: 14px; font-weight: 500; padding: 8px; cursor: pointer; }
.ds-gate__toggle:hover { color: var(--ink); }
.ds-gate__toggle:focus-visible { outline: 2px solid var(--focus); outline-offset: 0; }
.ds-gate__msg { min-height: 20px; margin: 0; font-size: 14px; font-weight: 500; color: var(--ink); display: flex; align-items: center; gap: 8px; }
.ds-gate__msg:not(:empty)::before { content: ""; width: 8px; height: 8px; border-radius: var(--radius-full); background: var(--ink); flex: none; }
.ds-gate.is-error .ds-field input { border-color: var(--ink); animation: ds-nudge 520ms var(--ease-out); }
@keyframes ds-nudge { 0%, 100% { transform: none; } 20% { transform: translateX(-6px); } 45% { transform: translateX(5px); } 70% { transform: translateX(-3px); } }
.ds-gate .ds-button { position: relative; overflow: hidden; }
.ds-gate .ds-button .ds-button__bar { position: absolute; left: 0; bottom: 0; height: 2px; width: 100%; background: var(--ink-inverse); transform: scaleX(0); transform-origin: left; }
.ds-gate.is-checking .ds-button__bar { animation: ds-load 900ms var(--ease-in-out) infinite; }
@keyframes ds-load { 0% { transform: scaleX(0); transform-origin: left; } 50% { transform: scaleX(1); transform-origin: left; } 51% { transform-origin: right; } 100% { transform: scaleX(0); transform-origin: right; } }
.ds-gate__curtain { position: absolute; inset: 0; z-index: 5; background: var(--surface); display: grid; place-items: center; clip-path: inset(100% 0 0 0); transition: clip-path var(--dur-epic) var(--ease-in-out); }
.ds-gate.is-open .ds-gate__curtain { clip-path: inset(0 0 0 0); }
.ds-gate__welcome { font-size: 56px; letter-spacing: -0.03em; text-align: center; }
.ds-gate__welcome small { display: block; font-size: 18px; color: var(--ink-muted); letter-spacing: 0; margin-top: var(--space-3); }
@media (max-width: 809px) { .ds-gate { grid-template-columns: 1fr; } .ds-gate__media { min-height: 260px; } .ds-gate__media::after { background: linear-gradient(180deg, transparent 50%, var(--surface)); } .ds-gate__panel { padding: var(--space-5) var(--space-3); } .ds-gate__lockup { font-size: 44px; } .ds-gate__badge { left: auto; right: var(--space-3); bottom: var(--space-3); width: 88px; height: 88px; } }
@media (prefers-reduced-motion: reduce) { .ds-gate__media img, .ds-gate__badge { animation: none; } .ds-gate.is-error .ds-field input { animation: none; } }

/* ---------- Site layout (pages built from the design system) ---------- */
* { box-sizing: border-box; }
html { background: var(--surface); scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }
body { min-height: 100vh; overflow-x: hidden; }
img { max-width: 100%; }
a { color: inherit; }
.skip { position: absolute; left: -9999px; top: 8px; z-index: 100; background: var(--paper); color: var(--ink-inverse); padding: 8px 16px; }
.skip:focus { left: 8px; }

.wrap { padding-left: var(--space-6); padding-right: var(--space-6); }
.grid2 { display: grid; grid-template-columns: 1fr 1fr; column-gap: 24px; }
.section { padding-top: 200px; scroll-margin-top: 140px; }

/* Top: lockup and links */
.top { display: flex; justify-content: space-between; align-items: flex-start; padding-top: 32px; padding-bottom: 40px; }
.top__lockup { margin: 0; font-size: 72px; line-height: .92; letter-spacing: -0.035em; font-weight: 400; }
.top__lockup .ds-line + .ds-line { color: var(--ink-muted); }
.top__links { list-style: none; margin: 0; padding: 0; text-align: right; }
.top__links a { font-size: 20px; line-height: 1.4; text-decoration: none; }
.top__links a:hover { color: var(--ink-muted); }

/* Sticky bar: mark, section nav and menu; slides in after the hero */
.bar { position: fixed; top: 0; left: 0; right: 0; z-index: 40; transform: translateY(-100%); transition: transform var(--dur-slow) var(--ease-out); }
.bar.is-shown { transform: none; }
.bar .ds-header { backdrop-filter: blur(12px); background: rgba(26, 26, 26, .88); padding: 0 var(--space-6); }
.bar .ds-sectionnav { background: rgba(26, 26, 26, .88); backdrop-filter: blur(12px); padding: 12px var(--space-6) 16px; justify-content: center; }
.bar .ds-sectionnav a { transition: color var(--dur-quick) ease; }

/* Hero */
.hero { overflow: hidden; height: min(62vh, 640px); }
.hero.ds-wipe > img { object-position: 50% 60%; }

/* Welcome */
.welcome { padding-top: 160px; }
.welcome .ds-eyebrow { margin: 0 0 40px; }
.welcome__lead { margin: 0; font-size: 40px; line-height: 1.3; max-width: 30ch; text-indent: 1.5em; }

.breezeway { width: 50%; margin: 160px auto 0; aspect-ratio: 1 / 1; }
.vista { text-align: center; margin: 200px auto 0; font-size: 56px; line-height: 1.05; letter-spacing: -0.03em; font-weight: 400; max-width: 14ch; }

/* Natural materials */
.materials__text { margin: 0; font-size: 28px; line-height: 1.3; max-width: 22ch; }
.materials__media { margin-top: 120px; aspect-ratio: 1 / 1.08; }
.materials__cap { margin: 32px 0 0; font-size: 22px; line-height: 1.35; max-width: 24ch; }

/* Feature heads */
.fhead { align-items: start; margin-bottom: 64px; }
.fhead .ds-eyebrow { margin: 0 0 16px; }
.fhead h2 { margin: 0; font-size: 56px; line-height: 1; letter-spacing: -0.03em; font-weight: 400; }
.fhead p { margin: 46px 0 0; font-size: 22px; line-height: 1.35; max-width: 28ch; }

/* Layout */
.layout { grid-template-columns: 240px 1fr; column-gap: 24px; }
.layout .ds-stats { gap: 56px; align-content: start; }
.layout .ds-stat dd { font-size: 88px; }
.layout .ds-stat dt { font-size: 20px; font-weight: 400; }
.plan { background: var(--surface-plate); }
.plan img { display: block; width: 100%; height: auto; }

/* Photo arrangements */
.wide { aspect-ratio: 16 / 9; }
.pair { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; margin-top: 24px; }
.pair > * { aspect-ratio: 1 / 1.08; }
.pair--stagger > :nth-child(2) { margin-top: 18%; }

/* Booking */
.book { align-items: start; }
.book__title { margin: 0; font-size: 56px; line-height: 1; letter-spacing: -0.03em; font-weight: 400; }
.book__title .ds-line:first-child { color: var(--ink-muted); }
.book__left { display: flex; flex-direction: column; justify-content: space-between; min-height: 100%; }
.book form { display: grid; gap: 24px; }
.book .ds-button { background: var(--ink); width: 100%; }
.book .ds-button:hover { background: var(--paper); }
.book__msg { min-height: 22px; margin: 0; font-size: 16px; color: var(--ink-muted); }
.seal { position: relative; width: 132px; height: 132px; margin-top: 160px; }
.seal__ring { width: 100%; height: 100%; animation: ds-spin 40s linear infinite; }
.seal__icon { position: absolute; left: 50%; top: 50%; width: 56px; height: 56px; transform: translate(-50%, -50%); }
@media (prefers-reduced-motion: reduce) { .seal__ring { animation: none; } }

.footer-space { padding-top: 160px; }

/* Journey page header */
.jtop { display: flex; justify-content: space-between; align-items: center; padding-top: 32px; }
.jtop a { text-decoration: none; }
.jtop .ds-header__mark { font-size: 14px; }

@media (max-width: 809px) {
  .wrap { padding-left: var(--space-3); padding-right: var(--space-3); }
  .grid2, .layout { grid-template-columns: 1fr; }
  .section { padding-top: 120px; }
  .top__lockup { font-size: 44px; }
  .top__links a { font-size: 16px; }
  .hero { height: 46vh; }
  .welcome { padding-top: 96px; }
  .welcome__lead { font-size: 24px; }
  .breezeway { width: 100%; margin-top: 96px; }
  .vista { font-size: 36px; margin-top: 120px; }
  .materials__media { margin-top: 48px; }
  .fhead p { margin-top: 24px; font-size: 18px; }
  .fhead h2, .book__title { font-size: 40px; }
  .layout .ds-stats { grid-auto-flow: column; justify-content: start; gap: 40px; margin-bottom: 40px; }
  .layout .ds-stat dd { font-size: 56px; }
  .pair { gap: 12px; margin-top: 12px; }
  .bar .ds-header, .bar .ds-sectionnav { padding-left: var(--space-3); padding-right: var(--space-3); }
  .bar .ds-sectionnav { justify-content: flex-start; }
  .seal { display: none; }
  .book form { margin-top: 40px; }
}

/* ---------- House manual ---------- */
.gate-page .ds-gate { min-height: 100vh; }
.gate-page .ds-gate__panel { gap: var(--space-5); }
.gate-page .ds-gate__panel > .ds-header__mark { margin-bottom: var(--space-5); }
.manual { padding-top: 96px; padding-bottom: 160px; }
.manual__intro { margin-bottom: 120px; }
.manual__title { margin: var(--space-3) 0 var(--space-5); font-size: 120px; line-height: .92; letter-spacing: -0.04em; font-weight: 400; }
.manual__lead p { margin: 0 0 1em; font-size: 28px; line-height: 1.3; max-width: 32ch; }
.manual__grid { display: grid; grid-template-columns: 280px 1fr; gap: var(--space-6); align-items: start; }
.manual__toc { position: sticky; top: 32px; }
.manual__toc ol { list-style: none; margin: 0; padding: 0; display: grid; gap: 4px; }
.manual__toc a { display: flex; gap: 16px; padding: 6px 0; font-size: 17px; color: var(--ink-muted); text-decoration: none; transition: color var(--dur-quick) ease; }
.manual__toc a span { font-variant-numeric: tabular-nums; width: 24px; }
.manual__toc a:hover, .manual__toc a[aria-current="true"] { color: var(--ink); }
.manual__section { display: grid; grid-template-columns: 80px 1fr; gap: var(--space-4); padding: var(--space-6) 0; border-top: var(--hairline) solid var(--line); scroll-margin-top: 24px; }
.manual__num { font-size: 20px; color: var(--ink-muted); font-variant-numeric: tabular-nums; padding-top: 10px; }
.manual__section h2 { margin: 0 0 var(--space-4); font-size: 40px; line-height: 1.05; letter-spacing: -0.02em; font-weight: 400; }
.manual__body { font-size: 18px; line-height: 1.55; }
.manual__body > p, .manual__body > ul { max-width: 60ch; }
.manual__body p { margin: 0 0 1em; }
.manual__body ul { margin: 0 0 1em; padding: 0; list-style: none; display: grid; gap: 10px; }
.manual__body ul > li { position: relative; padding-left: 24px; }
.manual__body ul > li::before { content: ""; position: absolute; left: 0; top: .55em; width: 8px; height: 8px; border: 1.5px solid var(--ink); border-radius: var(--radius-full); box-sizing: border-box; }
.manual__body strong { font-weight: 600; }
.manual__body a { text-underline-offset: 3px; }
.todo { color: var(--ink-muted); font-style: italic; }
.manual__out { background: none; border: 0; color: var(--ink); font: inherit; font-size: 16px; cursor: pointer; padding: 8px 0; }
.manual__out:hover { color: var(--ink-muted); }
.manual__out:focus-visible { outline: 2px solid var(--focus); outline-offset: 2px; }
@media (max-width: 809px) {
  .manual { padding-top: 56px; }
  .manual__title { font-size: 56px; }
  .manual__lead p { font-size: 20px; }
  .manual__grid { grid-template-columns: 1fr; gap: var(--space-5); }
  .manual__toc { position: static; }
  .manual__section { grid-template-columns: 1fr; gap: var(--space-2); }
  .manual__section h2 { font-size: 30px; }
  .gate-page .ds-gate__panel > .ds-header__mark { margin-bottom: 0; }
}
@media print {
  .jtop, .manual__toc { display: none; }
  body { background: #fff; color: #000; }
  .ds-line > span, .ds-fade { transform: none !important; opacity: 1 !important; }
}

/* Annotated photos: numbered pins with text bubbles */
.annot { margin: var(--space-5) 0; }
.annot__frame { position: relative; }
.annot__img { position: relative; }
.annot__img > img { height: auto; }
.annot__pins { list-style: none; margin: 0; padding: 0; }
.hs { position: absolute; left: var(--x); top: var(--y); display: flex; align-items: center; gap: 10px; transform: translate(-14px, -50%); opacity: 0; transition: opacity var(--dur-base) var(--ease-out), transform var(--dur-slow) var(--ease-out); transition-delay: calc(400ms + var(--i) * 140ms); }
.is-in .hs { opacity: 1; transform: translate(-14px, -50%); }
.hs.is-left { flex-direction: row-reverse; transform: translate(calc(-100% + 14px), -50%); }
.is-in .hs.is-left { transform: translate(calc(-100% + 14px), -50%); }
.hs__pin { position: relative; flex: none; width: 28px; height: 28px; border-radius: var(--radius-full); background: var(--ink); color: var(--ink-inverse); font-size: 13px; font-weight: 600; display: grid; place-items: center; box-shadow: 0 2px 10px rgba(0, 0, 0, .35); }
.hs__pin::after { content: ""; position: absolute; inset: -6px; border-radius: inherit; border: 1.5px solid var(--ink); opacity: 0; animation: hs-ripple 2.8s var(--ease-out) infinite; animation-delay: calc(var(--i) * 300ms); }
@keyframes hs-ripple { 0% { transform: scale(.7); opacity: .9; } 70%, 100% { transform: scale(1.5); opacity: 0; } }
.hs__bubble { background: rgba(22, 22, 22, .82); -webkit-backdrop-filter: blur(14px) saturate(140%); backdrop-filter: blur(14px) saturate(140%); color: var(--ink); border: 1px solid rgba(255, 255, 255, .14); border-radius: 999px; padding: 9px 16px; font-size: 15px; line-height: 1.25; white-space: nowrap; box-shadow: 0 8px 30px rgba(0, 0, 0, .3); }
.hs__bubble strong { font-weight: 600; }
@media (prefers-reduced-motion: reduce) { .hs { transition: none; opacity: 1; } .hs__pin::after { animation: none; } }
/* Phones: pins stay on the photo, bubbles become a numbered list below it */
@media (max-width: 809px) {
  .annot__pins { position: static; display: grid; gap: 10px; margin-top: var(--space-3); counter-reset: none; }
  .hs, .hs.is-left, .is-in .hs, .is-in .hs.is-left { position: static; transform: none; flex-direction: row; opacity: 1; }
  .hs__bubble { white-space: normal; background: none; border: 0; padding: 0; box-shadow: none; -webkit-backdrop-filter: none; backdrop-filter: none; font-size: 16px; }
  .annot .annot__dots { display: block; }
}
.annot__dots { display: none; position: absolute; inset: 0; pointer-events: none; }
.annot__dot { position: absolute; left: var(--x); top: var(--y); transform: translate(-50%, -50%); }

/* ---------- Breezeway fly-through ----------
   A tall section with a sticky full-screen stage. page.js writes --p (0 to 1) as you scroll:
   0 to .2    the photo grows from a centred window to full bleed
   .12 to .3  the line rises in over the photo
   .2 to .8   the camera pushes down the hall, faster and faster; the line drifts toward you and fades
   .55 to .8  passing through the opening: the hall blurs and the view takes over
   .6 to 1    the view settles from a slight zoom and holds */
.fly { position: relative; height: 680vh; margin-top: 120px; --p: 0; }
.fly__stage { position: sticky; top: 0; height: 100vh; overflow: hidden; display: grid; place-items: center; }
.fly__frame { position: absolute; inset: 0; overflow: hidden;
  --grow: clamp(0, calc(var(--p) / .2), 1);
  clip-path: inset(calc((1 - var(--grow)) * 14vh) calc((1 - var(--grow)) * (50vw - 30vh))); }
.fly__img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 48% 52%; transform-origin: 48% 52%;
  --push: clamp(0, calc((var(--p) - .2) / .6), 1);
  transform: scale(calc(1 + var(--push) * var(--push) * var(--push) * 7));
  filter: blur(calc(clamp(0, calc((var(--p) - .58) / .2), 1) * 10px)); will-change: transform, filter; }
.fly__shade { position: absolute; inset: 0; background: radial-gradient(ellipse at 48% 52%, rgba(22, 22, 22, 0) 0%, rgba(22, 22, 22, .55) 75%);
  opacity: calc(clamp(0, calc((var(--p) - .1) / .15), 1) * (1 - clamp(0, calc((var(--p) - .5) / .15), 1))); }
.fly__view { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transform-origin: 50% 50%;
  --land: clamp(0, calc((var(--p) - .6) / .35), 1);
  opacity: clamp(0, calc((var(--p) - .6) / .16), 1);
  transform: scale(calc(1.45 - var(--land) * (2 - var(--land)) * .45)); will-change: transform, opacity; }
.fly__text { position: relative; z-index: 1; margin: 0; padding: 0 var(--space-3); text-align: center; font-size: clamp(44px, 6.5vw, 104px); line-height: 1.02; letter-spacing: -0.035em; font-weight: 400; color: var(--ink); text-shadow: 0 2px 40px rgba(0, 0, 0, .35);
  --in: clamp(0, calc((var(--p) - .12) / .18), 1);
  --out: clamp(0, calc((var(--p) - .4) / .2), 1);
  opacity: calc(var(--in) - var(--out));
  transform: translateY(calc((1 - var(--in)) * 48px)) scale(calc(1 + var(--out) * .7));
  filter: blur(calc(var(--out) * 8px)); }
.fly__text span { display: block; }
@media (prefers-reduced-motion: reduce) {
  .fly { height: auto; margin-top: 160px; }
  .fly__stage { position: relative; height: 80vh; }
  .fly__frame { clip-path: none; }
  .fly__img { transform: none; filter: none; }
  .fly__view { display: none; }
  .fly__shade { opacity: 1; }
  .fly__text { opacity: 1; transform: none; filter: none; }
}
@media (max-width: 809px) {
  .fly { height: 520vh; margin-top: 64px; }
  .fly__frame { clip-path: inset(calc((1 - var(--grow)) * 22vh) calc((1 - var(--grow)) * 16px)); }
}

/* ---------- Alternating text and photo sections ---------- */
.split { display: grid; grid-template-columns: 5fr 7fr; column-gap: 80px; align-items: center; }
.split--text-right { grid-template-columns: 7fr 5fr; }
.split--text-right .split__text { order: 2; }
.split__text { align-self: start; position: sticky; top: calc(50vh - 180px); }
.split:has(.split__media > .land:only-child) .split__text { align-self: center; position: static; }
.split__text .ds-eyebrow { margin: 0 0 24px; }
.split__title { margin: 0 0 32px; font-size: 80px; line-height: .98; letter-spacing: -0.035em; font-weight: 400; }
.split__copy { margin: 0; font-size: 30px; line-height: 1.3; letter-spacing: -0.01em; max-width: 20ch; }
.split__media { display: grid; gap: 24px; }
.split__media .tall { aspect-ratio: 4 / 5; }
.split__media .land { aspect-ratio: 4 / 3; }
.duo { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; align-items: start; }
.duo > * { aspect-ratio: 3 / 4; }
.duo > :nth-child(2) { margin-top: 22%; }
.duo--flat > :nth-child(2) { margin-top: 0; }
/* Text slides in from its own side as the photos wipe open */
.ds-slide-l, .ds-slide-r { opacity: 0; transition: opacity var(--dur-slow) var(--ease-out), transform var(--dur-epic) var(--ease-out); transition-delay: 250ms; }
.ds-slide-l { transform: translateX(-64px); }
.ds-slide-r { transform: translateX(64px); }
.is-in .ds-slide-l, .is-in .ds-slide-r, .ds-slide-l.is-in, .ds-slide-r.is-in { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) { .ds-slide-l, .ds-slide-r { opacity: 1; transform: none; transition: none; } }
@media (max-width: 1100px) { .split__title { font-size: 60px; } .split__copy { font-size: 24px; } .split { column-gap: 48px; } }
@media (max-width: 809px) {
  .split, .split--text-right { grid-template-columns: 1fr; row-gap: 40px; }
  .split--text-right .split__text { order: 0; }
  .split__text { position: static; }
  .split__title { font-size: 44px; margin-bottom: 20px; }
  .split__copy { font-size: 22px; }
  .ds-slide-l, .ds-slide-r { transform: translateY(24px); }
  .duo { gap: 12px; }
}

/* Bigger copy across the page so it holds its own beside the photography */
.welcome__lead { font-size: 48px; }
.materials__text { font-size: 44px; line-height: 1.15; letter-spacing: -0.02em; max-width: 18ch; }
.materials__cap { font-size: 30px; line-height: 1.3; max-width: 22ch; }
.fhead h2, .book__title { font-size: 80px; line-height: .98; letter-spacing: -0.035em; }
.fhead p { font-size: 30px; line-height: 1.3; margin-top: 40px; max-width: 22ch; }
.layout .ds-stat dt { font-size: 24px; }
@media (max-width: 809px) {
  .welcome__lead { font-size: 26px; }
  .materials__text { font-size: 30px; }
  .materials__cap { font-size: 22px; }
  .fhead h2, .book__title { font-size: 44px; }
  .fhead p { font-size: 22px; margin-top: 20px; }
}

/* ---------- Photo gallery ---------- */
.gal-item { cursor: zoom-in; }
.gal-item:focus-visible { outline: 2px solid var(--focus); outline-offset: 4px; }
.gal { position: fixed; inset: 0; z-index: 60; background: rgba(12, 12, 12, .97); display: grid; grid-template-columns: 96px 1fr 96px; grid-template-rows: 72px 1fr 72px; opacity: 0; visibility: hidden; transition: opacity var(--dur-base) var(--ease-out), visibility 0s linear var(--dur-base); }
.gal.is-open { opacity: 1; visibility: visible; transition: opacity var(--dur-base) var(--ease-out), visibility 0s; }
.gal__stage { grid-column: 2; grid-row: 2; position: relative; overflow: hidden; }
.gal__img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: contain; opacity: 0; transform: scale(.97); transition: opacity var(--dur-base) var(--ease-out), transform var(--dur-slow) var(--ease-out); }
.gal__img.is-current { opacity: 1; transform: none; }
.gal__img.from-right { transform: translateX(48px); }
.gal__img.from-left { transform: translateX(-48px); }
.gal__img.to-left { opacity: 0; transform: translateX(-48px); }
.gal__img.to-right { opacity: 0; transform: translateX(48px); }
.gal__btn { background: none; border: 0; color: var(--ink); cursor: pointer; display: grid; place-items: center; padding: 0; }
.gal__btn:focus-visible { outline: 2px solid var(--focus); outline-offset: -8px; }
.gal__arrow { grid-row: 2; align-self: center; justify-self: center; width: 56px; height: 56px; border: 1.5px solid rgba(255, 255, 255, .5); border-radius: var(--radius-full); transition: background var(--dur-quick) ease, border-color var(--dur-quick) ease, transform var(--dur-base) var(--ease-out); }
.gal__arrow:hover { background: var(--ink); border-color: var(--ink); color: var(--ink-inverse); }
.gal__prev { grid-column: 1; } .gal__prev:hover { transform: translateX(-3px); }
.gal__next { grid-column: 3; } .gal__next:hover { transform: translateX(3px); }
.gal__arrow svg { width: 22px; height: 22px; }
.gal__top { grid-column: 1 / -1; grid-row: 1; display: flex; justify-content: space-between; align-items: center; padding: 0 var(--space-5); }
.gal__count { font-size: 15px; color: var(--ink-muted); font-variant-numeric: tabular-nums; }
.gal__close { font-size: 16px; gap: 10px; display: flex; align-items: center; padding: 8px; }
.gal__close:hover { color: var(--ink-muted); }
.gal__cap { grid-column: 2; grid-row: 3; align-self: center; text-align: center; margin: 0; font-size: 16px; color: var(--ink-muted); }
@media (prefers-reduced-motion: reduce) { .gal, .gal__img { transition: none; } }
@media (max-width: 809px) {
  .gal { grid-template-columns: 0 1fr 0; grid-template-rows: 64px 1fr 96px; }
  .gal__arrow { grid-row: 3; width: 48px; height: 48px; }
  .gal__prev { grid-column: 2; justify-self: start; margin-left: var(--space-3); }
  .gal__next { grid-column: 2; justify-self: end; margin-right: var(--space-3); }
  .gal__cap { grid-row: 3; padding: 0 80px; font-size: 14px; }
  .gal__top { padding: 0 var(--space-3); }
}
.gal--films .gal__img { background: #000; }
.ds-film.gal-item { cursor: pointer; }

/* "Enlarge" badge on clickable photos */
.gal-item { position: relative; }
.gal-hint { position: absolute; right: 14px; bottom: 14px; z-index: 2; display: inline-flex; align-items: center; gap: 0; height: 36px; padding: 0 10px; border-radius: 999px; background: rgba(22, 22, 22, .72); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); color: var(--ink); font-size: 14px; font-weight: 500; border: 1px solid rgba(255, 255, 255, .16); pointer-events: none; transition: gap var(--dur-base) var(--ease-out), padding var(--dur-base) var(--ease-out), background var(--dur-quick) ease; }
.gal-hint svg { width: 16px; height: 16px; flex: none; }
.gal-hint span { max-width: 0; overflow: hidden; white-space: nowrap; opacity: 0; transition: max-width var(--dur-base) var(--ease-out), opacity var(--dur-base) var(--ease-out); }
.gal-item:hover .gal-hint, .gal-item:focus-visible .gal-hint { gap: 8px; padding: 0 14px 0 12px; background: rgba(22, 22, 22, .88); }
.gal-item:hover .gal-hint span, .gal-item:focus-visible .gal-hint span { max-width: 80px; opacity: 1; }
@media (hover: none) { .gal-hint { gap: 8px; padding: 0 12px 0 10px; } .gal-hint span { max-width: 80px; opacity: 1; } }
.annot .gal-hint { right: 12px; top: 12px; bottom: auto; }

/* ---------- Gallery page ---------- */
.jtop__links { display: flex; gap: 28px; }
.jtop__links a { font-size: 16px; text-decoration: none; color: var(--ink-muted); transition: color var(--dur-quick) ease; }
.jtop__links a:hover, .jtop__links a[aria-current="page"] { color: var(--ink); }
.gx { padding-top: 96px; }
.gx__intro { margin-bottom: 64px; }
.gx__title { margin: var(--space-3) 0 var(--space-4); font-size: 120px; line-height: .92; letter-spacing: -0.04em; font-weight: 400; }
.gx__lead { margin: 0; font-size: 30px; line-height: 1.3; max-width: 26ch; }
.gx__chips { position: sticky; top: 0; z-index: 30; display: flex; gap: 8px; overflow-x: auto; scrollbar-width: none; padding: 16px 0; margin-bottom: 40px; background: linear-gradient(var(--surface) 75%, transparent); }
.gx__chips a { flex: none; font-size: 15px; text-decoration: none; padding: 9px 16px; border-radius: 999px; border: 1px solid var(--line-strong); color: var(--ink-muted); transition: color var(--dur-quick) ease, border-color var(--dur-quick) ease, background var(--dur-quick) ease; }
.gx__chips a:hover { color: var(--ink); border-color: var(--ink); }
.gx__chips a[aria-current="true"] { background: var(--ink); color: var(--ink-inverse); border-color: var(--ink); }
.gx__chips a:focus-visible { outline: 2px solid var(--focus); outline-offset: 2px; }
.gx__section { padding: 80px 0 40px; scroll-margin-top: 72px; }
.gx__head { display: flex; align-items: baseline; justify-content: space-between; gap: 24px; padding-bottom: 24px; margin-bottom: 32px; border-bottom: var(--hairline) solid var(--line); }
.gx__head h2 { margin: 0; font-size: 64px; line-height: 1; letter-spacing: -0.035em; font-weight: 400; }
.gx__head span { font-size: 16px; color: var(--ink-muted); }
.gx__grid > div { columns: 3; column-gap: 20px; }
.gx__item { margin: 0 0 20px; break-inside: avoid; }
.gx__item .ds-wipe img { width: 100%; height: auto; }
@media (max-width: 1100px) { .gx__grid > div { columns: 2; } .gx__title { font-size: 88px; } }
@media (max-width: 809px) {
  .jtop__links { gap: 16px; } .jtop__links a:nth-child(1) { display: none; }
  .gx { padding-top: 56px; }
  .gx__title { font-size: 56px; }
  .gx__lead { font-size: 22px; }
  .gx__head h2 { font-size: 40px; }
  .gx__grid > div { columns: 1; }
  .gx__section { padding-top: 48px; }
}

/* ---------- House manual: mobile first ---------- */
.glance { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; margin-top: var(--space-5); max-width: 880px; }
.glance__tile { display: flex; flex-direction: column; gap: 6px; padding: 16px 18px; border-radius: 14px; background: var(--surface-field); border: 1px solid var(--line); text-decoration: none; color: var(--ink); min-height: 84px; transition: border-color var(--dur-quick) ease, background var(--dur-quick) ease; }
a.glance__tile:hover { border-color: var(--line-strong); background: #202020; }
a.glance__tile:focus-visible { outline: 2px solid var(--focus); outline-offset: 2px; }
.glance__label { font-size: 14px; font-weight: 500; color: var(--ink-muted); }
.glance__value { font-size: 20px; line-height: 1.25; }
.glance__value strong { font-weight: 600; letter-spacing: .02em; }
.glance__value .todo { font-size: 16px; }
.manual__lead .glance { margin-bottom: 0; }
.manual__chips { display: none; }

@media (max-width: 809px) {
  .manual { padding-top: 32px; padding-bottom: 96px; }
  .manual__intro { margin-bottom: 24px; }
  .manual__title { font-size: 48px; margin: 12px 0 16px; }
  .manual__lead p { font-size: 19px; line-height: 1.4; }
  .glance { grid-template-columns: 1fr 1fr; gap: 10px; margin-top: 20px; }
  .glance__tile { padding: 14px; min-height: 76px; border-radius: 12px; }
  .glance__value { font-size: 18px; }
  .manual__toc { display: none; }
  /* Sticky, swipeable section chips replace the long contents list */
  .manual__chips { display: flex; position: sticky; top: 0; z-index: 30; gap: 8px; overflow-x: auto; scrollbar-width: none; margin: 0 calc(-1 * var(--space-3)); padding: 12px var(--space-3); background: rgba(22, 22, 22, .94); -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px); border-bottom: 1px solid var(--line); }
  .manual__chips::-webkit-scrollbar { display: none; }
  .manual__chips a { flex: none; font-size: 15px; text-decoration: none; padding: 10px 14px; min-height: 44px; display: inline-flex; align-items: center; border-radius: 999px; border: 1px solid var(--line-strong); color: var(--ink-muted); }
  .manual__chips a[aria-current="true"] { background: var(--ink); color: var(--ink-inverse); border-color: var(--ink); }
  .manual__chips a:focus-visible { outline: 2px solid var(--focus); outline-offset: 2px; }
  .manual__section { padding: 40px 0; scroll-margin-top: 72px; gap: 4px; }
  .manual__num { padding-top: 0; font-size: 15px; }
  .manual__section h2 { font-size: 32px; margin-bottom: 16px; }
  .manual__body { font-size: 18px; line-height: 1.5; }
  .manual__body ul { gap: 12px; }
  /* Annotated photos run edge to edge on phones, with a clear numbered key underneath */
  .annot { margin: 24px calc(-1 * var(--space-3)); }
  .annot__pins { padding: 0 var(--space-3); gap: 12px; margin-top: 16px; }
  .annot__pins .hs__pin::after { display: none; }
  .annot__dot { width: 26px; height: 26px; font-size: 13px; }
  .hs__bubble { font-size: 17px; line-height: 1.35; }
  .annot .gal-hint { right: 10px; top: 10px; }
  /* Password gate: photo shorter so the form sits on the first screen */
  .gate-page .ds-gate { min-height: 100svh; }
  .gate-page .ds-gate__media { min-height: 30svh; }
  .gate-page .ds-gate__panel { gap: 18px; padding: 8px var(--space-3) 40px; justify-content: flex-start; }
  .gate-page .ds-gate__panel > .ds-header__mark { display: none; }
  .gate-page .ds-gate__lockup { font-size: 44px; }
  .gate-page .ds-gate__intro { font-size: 17px; }
  .gate-page .ds-field input { font-size: 17px; height: 54px; }
  .gate-page .ds-button { height: 54px; }
  .gate-page .ds-gate__badge { width: 76px; height: 76px; }
}

/* Gate seal: the roundel turns slowly around a still icon */
.ds-gate__seal { position: absolute; left: var(--space-6); bottom: var(--space-6); width: 120px; height: 120px; z-index: 2; }
.ds-gate__seal .ds-gate__badge { position: absolute; inset: 0; left: 0; bottom: auto; width: 100%; height: 100%; }
.ds-gate__seal-icon { position: absolute; left: 50%; top: 50%; width: 52px; height: 52px; transform: translate(-50%, -50%); }
@media (max-width: 809px) {
  .ds-gate__seal { left: auto; right: var(--space-3); bottom: var(--space-3); width: 88px; height: 88px; }
  .gate-page .ds-gate__seal { width: 76px; height: 76px; }
  .ds-gate__seal .ds-gate__badge, .gate-page .ds-gate__seal .ds-gate__badge { width: 100%; height: 100%; right: auto; }
  .ds-gate__seal-icon { width: 38px; height: 38px; }
}

/* ---------- Journey: fire chapter, media and awards ---------- */
.ds-chapter--fire .ds-chapter__num { color: var(--ink); }
.ds-chapter__head p + p { margin-top: -8px; }
.ds-chapter__link { color: var(--ink); text-underline-offset: 4px; }
.ds-chapter__link:hover { color: var(--ink-muted); }
.fire-photos > * { aspect-ratio: 4 / 3; }
.fire-photos img { filter: saturate(.85); }
.aw { padding-top: 160px; padding-bottom: 40px; scroll-margin-top: 24px; }
.aw__intro { margin-bottom: 64px; }
.aw__title { margin: var(--space-3) 0 var(--space-4); font-size: 120px; line-height: .92; letter-spacing: -0.04em; font-weight: 400; }
.aw__title .ds-line + .ds-line { color: var(--ink-muted); }
.aw__lead { margin: 0; font-size: 26px; line-height: 1.3; max-width: 32ch; color: var(--ink-muted); }
.aw__list { list-style: none; margin: 0 0 120px; padding: 0; border-top: var(--hairline) solid var(--line); }
.aw__row { display: grid; grid-template-columns: 120px 1fr 240px; gap: 24px; align-items: baseline; padding: 28px 0; border-bottom: var(--hairline) solid var(--line); }
.aw__year { font-size: 20px; color: var(--ink-muted); font-variant-numeric: tabular-nums; }
.aw__cat { font-size: 32px; line-height: 1.15; letter-spacing: -0.02em; }
.aw__what { font-size: 18px; color: var(--ink-muted); text-align: right; }
.aw__cols { display: grid; grid-template-columns: 1.4fr 1fr; gap: 80px; }
.aw__h3 { margin: 0 0 24px; font-size: 14px; font-weight: 500; color: var(--ink-muted); text-transform: none; }
.pr { list-style: none; margin: 0; padding: 0; border-top: var(--hairline) solid var(--line); }
.pr a { display: grid; grid-template-columns: 1fr auto; gap: 4px 16px; padding: 20px 0; border-bottom: var(--hairline) solid var(--line); text-decoration: none; }
.pr__pub { font-size: 14px; font-weight: 500; color: var(--ink-muted); grid-column: 1; }
.pr__title { font-size: 22px; line-height: 1.3; grid-column: 1; }
.pr__arrow { grid-column: 2; grid-row: 1 / span 2; align-self: center; font-size: 22px; transition: transform var(--dur-base) var(--ease-out); }
.pr a:hover .pr__arrow { transform: translate(3px, -3px); }
.pr a:hover .pr__title { color: var(--ink-muted); }
.pr a:focus-visible { outline: 2px solid var(--focus); outline-offset: 2px; }
.cr { margin: 0; display: grid; gap: 0; border-top: var(--hairline) solid var(--line); }
.cr > div { display: grid; grid-template-columns: 140px 1fr; padding: 20px 0; border-bottom: var(--hairline) solid var(--line); }
.cr dt { font-size: 14px; font-weight: 500; color: var(--ink-muted); }
.cr dd { margin: 0; font-size: 20px; }
.cr a { text-underline-offset: 4px; }
@media (max-width: 809px) {
  .aw { padding-top: 96px; }
  .aw__title { font-size: 56px; }
  .aw__lead { font-size: 20px; }
  .aw__row { grid-template-columns: 1fr; gap: 6px; padding: 20px 0; }
  .aw__cat { font-size: 24px; }
  .aw__what { text-align: left; font-size: 16px; }
  .aw__list { margin-bottom: 72px; }
  .aw__cols { grid-template-columns: 1fr; gap: 56px; }
  .pr__title { font-size: 19px; }
  .cr > div { grid-template-columns: 110px 1fr; }
  .cr dd { font-size: 18px; }
}
.aw__cat small { display: block; margin-top: 6px; font-size: 16px; letter-spacing: 0; color: var(--ink-muted); }
.gx__credit { margin: var(--space-4) 0 0; font-size: 16px; color: var(--ink-muted); }
.gx__credit a, .cr dd a { color: var(--ink); text-underline-offset: 4px; }
.gx__credit a:hover, .cr dd a:hover { color: var(--ink-muted); }

/* ---------- Bird's-eye floor plan ---------- */
.fp { margin: 0; position: relative; }
.fp__switch { display: inline-flex; gap: 4px; padding: 4px; border: 1px solid var(--line-strong); border-radius: 999px; margin-bottom: 16px; }
.fp__switch button { font: inherit; font-size: 15px; padding: 9px 16px; min-height: 40px; border: 0; border-radius: 999px; background: none; color: var(--ink-muted); cursor: pointer; transition: background var(--dur-quick) ease, color var(--dur-quick) ease; }
.fp__switch button[aria-pressed="true"] { background: var(--ink); color: var(--ink-inverse); }
.fp__switch button:focus-visible { outline: 2px solid var(--focus); outline-offset: 2px; }
.fp__frame { overflow: hidden; border-radius: 2px; }
.fp-svg { display: block; width: 100%; height: auto; max-height: 92vh; margin: 0 auto; }
.fp__cap { margin-top: 12px; font-size: 14px; color: var(--ink-muted); }
.lawn { fill: #c4cdb2; }
.ls-sand { fill: url(#pSand); }
.ls-pebble { fill: url(#pHex); }
.ls-bed { fill: #b9c79f; }
.ls-lawn { fill: #b8c49e; stroke: #d1b48d; stroke-width: 2; }
.ls-planter { fill: none; stroke: #6f6a5f; stroke-width: 1; }
.fence { fill: none; stroke: #d6b58a; stroke-width: 3; }
.gate { fill: none; stroke: #6f6a5f; stroke-width: .8; }
.plant line { stroke: #3f5a2b; stroke-width: 1.1; stroke-linecap: round; }
.plant circle { fill: #2f4521; }
.fl-deck-h { fill: url(#pDeck); }
.lab-sm { font-size: 7px; }
.tree circle { fill: #6d7f48; opacity: .85; }
.tree .tree-hi { fill: #66773d; opacity: .55; }
.fl { stroke: none; transition: filter var(--dur-quick) ease; }
.fl:hover { filter: brightness(1.18); }
.fl-carpet { fill: #2a2a2c; }
.fl-concrete { fill: #a8a59e; }
.fl-concrete-dark { fill: #6f6c66; }
.fl-stone { fill: url(#pStone); }
.fl-stone-dark { fill: #2f3133; }
.fl-deck { fill: url(#pDeckV); }
.fl-pavers { fill: url(#pPavers); }
.fl-pebbles { fill: url(#pPebble); }
.fl-stair { fill: url(#pStair); }
.fl-rubber { fill: #232323; }
.fl-tile { fill: url(#pTile); }
.wall { fill: none; stroke: #121212; stroke-width: 3.4; stroke-linejoin: miter; }
.walls { filter: url(#fpShadow); }
.glass { stroke: #cfe3ea; stroke-width: 2.2; stroke-linecap: butt; }
.ghost { fill: none; stroke: rgba(255, 255, 255, .25); stroke-width: 1; stroke-dasharray: 3 3; }
.f-path { fill: none; stroke: url(#pGravel); stroke: #b5ab99; stroke-width: 12; stroke-linecap: round; opacity: .85; }
.f-gravel { fill: url(#pGravel); }
.f-bowl { fill: #6a3a22; }
.f-ember { fill: url(#gEmber); }
.f-log { fill: #7b5532; }
.f-coping { fill: #ece6da; }
.f-water { fill: url(#gWater); }
.f-water-edge { fill: rgba(0, 0, 0, .12); }
.f-ripple { fill: none; stroke: rgba(255, 255, 255, .35); stroke-width: .7; }
.furn { filter: url(#fpShadow); }
.f-timber { fill: #a8763f; }
.f-timber-dark { fill: #6b4524; }
.f-sheet { fill: #f2efe9; }
.f-throw { fill: #2f5440; }
.f-pillow { fill: #ffffff; }
.f-sofa { fill: #e8e1d3; }
.f-cushion { fill: #d9d0bf; }
.f-rug { fill: #8d8678; }
.f-chair { fill: #3b2a1b; }
.f-stool { fill: #1c1c1c; }
.f-bench { fill: #2a2a2a; }
.f-range { fill: #111; stroke: #555; stroke-width: .5; }
.f-stonetop { fill: #d9d4cb; opacity: .55; }
.f-fire-tile { fill: #2f5a43; }
.f-fire-box { fill: url(#gEmber); }
.f-logs { fill: #b98a58; }
.f-ceramic { fill: #f4f2ee; }
.f-cabinet { fill: #d8d4cc; }
.f-roof { fill: rgba(0,0,0,.12); }
.f-tank { fill: #e9e7e2; stroke: #8a8780; stroke-width: .6; }
.f-tray { fill: #e6dcc6; }
.f-bbq { fill: #2a2a2a; }
.f-tv { fill: #111; }
.f-chair-r { fill: #efe9dd; }
.f-bath { fill: #141414; }
.f-bath-in { fill: #f4f2ee; }
.f-glass { fill: #cfe3ea; }
.f-glass-dark { fill: #20262b; }
.f-car { fill: #e9e9e9; }
.f-car-2 { fill: #2e3236; }
.f-lounger { fill: #efe9dd; }
.f-plant { fill: #5e7a3b; }
.f-gym { fill: #3a3a3a; }
.f-mat { fill: #4a4a4a; }
.f-felt { fill: #2f6146; }
.lab { fill: #fff; font-size: 9.5px; font-weight: 500; text-anchor: middle; dominant-baseline: middle; letter-spacing: .02em; paint-order: stroke; stroke: rgba(16, 16, 16, .7); stroke-width: 2.6px; pointer-events: none; }
.scale text { fill: #fff; font-size: 8px; paint-order: stroke; stroke: rgba(0, 0, 0, .5); stroke-width: 2px; }
/* Levels */
.fp-level { transition: opacity var(--dur-slow) var(--ease-out); }
.fp[data-level="ground"] .fp-level[data-level="lower"], .fp[data-level="lower"] .fp-level[data-level="ground"] { opacity: 0; pointer-events: none; }
.fp[data-level="lower"] .ls { opacity: .45; transition: opacity var(--dur-slow) var(--ease-out); }
.fp[data-level="lower"] .trees { opacity: .35; transition: opacity var(--dur-slow) var(--ease-out); }
/* Reveal: floors settle, walls draw themselves, furniture and trees arrive */
.fp .fl-g, .fp .labs, .fp .furn, .fp .scale { opacity: 0; transition: opacity var(--dur-slow) var(--ease-out); }
.fp .furn { transition-delay: 900ms; } .fp .labs { transition-delay: 1400ms; } .fp .scale { transition-delay: 1400ms; }
.fp .wall { stroke-dasharray: 1; stroke-dashoffset: 1; transition: stroke-dashoffset 1.6s var(--ease-out) 250ms; }
.fp .glass { opacity: 0; transition: opacity var(--dur-base) ease 1200ms; }
.fp .plant, .fp .fence { opacity: 0; transition: opacity var(--dur-slow) var(--ease-out) 1000ms; }
.fp.is-in .plant, .fp.is-in .fence { opacity: 1; }
.fp .tree { transform-box: fill-box; transform-origin: center; transform: scale(.6); opacity: 0; transition: transform var(--dur-slow) var(--ease-out), opacity var(--dur-slow) var(--ease-out); transition-delay: calc(var(--i) * 60ms); }
.fp.is-in .fl-g, .fp.is-in .labs, .fp.is-in .furn, .fp.is-in .scale, .fp.is-in .glass, .fp.is-in .tree { opacity: 1; }
.fp.is-in .wall { stroke-dashoffset: 0; }
.fp.is-in .tree { transform: none; }
.fp.is-in .fp-level[data-level="lower"] .fl-g, .fp.is-in .fp-level[data-level="lower"] .labs, .fp.is-in .fp-level[data-level="lower"] .furn { opacity: 1; }
@media (prefers-reduced-motion: reduce) { .fp .fl-g, .fp .labs, .fp .furn, .fp .scale, .fp .glass, .fp .tree, .fp .wall, .fp-level { transition: none; } }
@media (max-width: 809px) {
  .fp__frame { overflow-x: auto; -webkit-overflow-scrolling: touch; margin: 0 calc(-1 * var(--space-3)); padding: 0 var(--space-3); }
  .fp-svg { width: 640px; max-width: none; max-height: none; }
  .fp__cap::after { content: " Swipe to explore."; }
}

/* ---------- Journey: fire chapter, media and awards ---------- */
.ds-chapter--fire .ds-chapter__num { color: var(--ink); }
.ds-chapter__head p + p { margin-top: -8px; }
.ds-chapter__link { color: var(--ink); text-underline-offset: 4px; }
.ds-chapter__link:hover { color: var(--ink-muted); }
.fire-photos > * { aspect-ratio: 4 / 3; }
.fire-photos img { filter: saturate(.85); }
.aw { padding-top: 160px; padding-bottom: 40px; scroll-margin-top: 24px; }
.aw__intro { margin-bottom: 64px; }
.aw__title { margin: var(--space-3) 0 var(--space-4); font-size: 120px; line-height: .92; letter-spacing: -0.04em; font-weight: 400; }
.aw__title .ds-line + .ds-line { color: var(--ink-muted); }
.aw__lead { margin: 0; font-size: 26px; line-height: 1.3; max-width: 32ch; color: var(--ink-muted); }
.aw__list { list-style: none; margin: 0 0 120px; padding: 0; border-top: var(--hairline) solid var(--line); }
.aw__row { display: grid; grid-template-columns: 120px 1fr 240px; gap: 24px; align-items: baseline; padding: 28px 0; border-bottom: var(--hairline) solid var(--line); }
.aw__year { font-size: 20px; color: var(--ink-muted); font-variant-numeric: tabular-nums; }
.aw__cat { font-size: 32px; line-height: 1.15; letter-spacing: -0.02em; }
.aw__what { font-size: 18px; color: var(--ink-muted); text-align: right; }
.aw__cols { display: grid; grid-template-columns: 1.4fr 1fr; gap: 80px; }
.aw__h3 { margin: 0 0 24px; font-size: 14px; font-weight: 500; color: var(--ink-muted); text-transform: none; }
.pr { list-style: none; margin: 0; padding: 0; border-top: var(--hairline) solid var(--line); }
.pr a { display: grid; grid-template-columns: 1fr auto; gap: 4px 16px; padding: 20px 0; border-bottom: var(--hairline) solid var(--line); text-decoration: none; }
.pr__pub { font-size: 14px; font-weight: 500; color: var(--ink-muted); grid-column: 1; }
.pr__title { font-size: 22px; line-height: 1.3; grid-column: 1; }
.pr__arrow { grid-column: 2; grid-row: 1 / span 2; align-self: center; font-size: 22px; transition: transform var(--dur-base) var(--ease-out); }
.pr a:hover .pr__arrow { transform: translate(3px, -3px); }
.pr a:hover .pr__title { color: var(--ink-muted); }
.pr a:focus-visible { outline: 2px solid var(--focus); outline-offset: 2px; }
.cr { margin: 0; display: grid; gap: 0; border-top: var(--hairline) solid var(--line); }
.cr > div { display: grid; grid-template-columns: 140px 1fr; padding: 20px 0; border-bottom: var(--hairline) solid var(--line); }
.cr dt { font-size: 14px; font-weight: 500; color: var(--ink-muted); }
.cr dd { margin: 0; font-size: 20px; }
.cr a { text-underline-offset: 4px; }
@media (max-width: 809px) {
  .aw { padding-top: 96px; }
  .aw__title { font-size: 56px; }
  .aw__lead { font-size: 20px; }
  .aw__row { grid-template-columns: 1fr; gap: 6px; padding: 20px 0; }
  .aw__cat { font-size: 24px; }
  .aw__what { text-align: left; font-size: 16px; }
  .aw__list { margin-bottom: 72px; }
  .aw__cols { grid-template-columns: 1fr; gap: 56px; }
  .pr__title { font-size: 19px; }
  .cr > div { grid-template-columns: 110px 1fr; }
  .cr dd { font-size: 18px; }
}
.aw__cat small { display: block; margin-top: 6px; font-size: 16px; letter-spacing: 0; color: var(--ink-muted); }
.gx__credit { margin: var(--space-4) 0 0; font-size: 16px; color: var(--ink-muted); }
.gx__credit a, .cr dd a { color: var(--ink); text-underline-offset: 4px; }
.gx__credit a:hover, .cr dd a:hover { color: var(--ink-muted); }

/* ---------- 3D floor plan ---------- */
.fp { margin: 0; position: relative; }
.fp__switch { display: inline-flex; gap: 4px; padding: 4px; border: 1px solid var(--line-strong); border-radius: 999px; margin-bottom: 16px; }
.fp__switch button { font: inherit; font-size: 15px; padding: 9px 16px; min-height: 40px; border: 0; border-radius: 999px; background: none; color: var(--ink-muted); cursor: pointer; transition: background var(--dur-quick) ease, color var(--dur-quick) ease; }
.fp__switch button[aria-pressed="true"] { background: var(--ink); color: var(--ink-inverse); }
.fp__switch button:focus-visible { outline: 2px solid var(--focus); outline-offset: 2px; }
.fp-svg { display: block; width: 100%; height: auto; overflow: hidden; }
.fp__cap { margin-top: 12px; font-size: 14px; color: var(--ink-muted); }
.fp-site { fill: #1b1d18; }
.fp-level { transition: opacity var(--dur-slow) var(--ease-out), transform var(--dur-slow) var(--ease-out); }
.fp[data-level="ground"] .fp-level[data-level="lower"], .fp[data-level="lower"] .fp-level[data-level="ground"] { opacity: 0; transform: translateY(24px); pointer-events: none; }
.fp[data-level="lower"] .fp-level[data-level="ground"] { transform: translateY(-40px); }
.fp-floor { stroke: rgba(0, 0, 0, .35); stroke-width: .8; transition: fill var(--dur-quick) ease; }
.fp-room { fill: #3a3a3a; }
.fp-living { fill: #4a4540; }
.fp-wet { fill: #4b4f53; }
.fp-hall { fill: #33373a; }
.fp-stair { fill: #2c2c2c; }
.fp-deck { fill: #7a5634; }
.fp-deck2 { fill: #c9bfae; }
.fp-pad { fill: #2b2d27; }
.fp-garden { fill: #3d4a2c; }
.fp-pool { fill: #6f93a8; }
.fp-poolwall { fill: #4f6f80; }
.fp-fire { fill: var(--timber); }
.fp-wall-a { fill: #e4e4e4; }
.fp-wall-b { fill: #a9a9a9; }
.fp-wall { stroke: rgba(0, 0, 0, .25); stroke-width: .5; }
.fp-floor:hover { fill: #6b6258; }
.fp-pool:hover { fill: #86a9bd; }
.fp-label { fill: var(--ink); font-size: 13px; font-weight: 500; text-anchor: middle; pointer-events: none; paint-order: stroke; stroke: rgba(22, 22, 22, .55); stroke-width: 3px; }
.fp-sub { fill: var(--ink-muted); font-size: 10px; font-weight: 400; }
/* Walls rise and floors settle as the plan comes into view */
.fp .fp-floor { opacity: 0; transition: opacity var(--dur-base) var(--ease-out), fill var(--dur-quick) ease; transition-delay: calc(var(--i, 0) * 40ms); }
.fp .fp-wall { transform-box: fill-box; transform-origin: 50% 100%; transform: scaleY(0); transition: transform var(--dur-slow) var(--ease-out); transition-delay: calc(400ms + var(--i, 0) * 40ms); }
.fp .fp-labels { opacity: 0; transition: opacity var(--dur-base) var(--ease-out) 1100ms; }
.fp.is-in .fp-floor { opacity: 1; }
.fp.is-in .fp-wall { transform: none; }
.fp.is-in .fp-labels { opacity: 1; }
@media (prefers-reduced-motion: reduce) { .fp .fp-floor, .fp .fp-wall, .fp .fp-labels, .fp-level { transition: none; opacity: 1; transform: none; } .fp[data-level="ground"] .fp-level[data-level="lower"], .fp[data-level="lower"] .fp-level[data-level="ground"] { opacity: 0; } }
@media (max-width: 809px) { .fp-label { font-size: 15px; } .fp-sub { font-size: 12px; } }
.ds-chapter__reading { list-style: none; margin: 8px 0 0; padding: 0; display: grid; gap: 10px; font-size: 16px; }

/* Tap-to-show secrets in the manual (lockbox code) */
.reveal { font: inherit; font-weight: 600; letter-spacing: .02em; display: inline-flex; align-items: center; gap: 6px; padding: 2px 10px; min-height: 30px; border: 1px dashed var(--line-strong); border-radius: 999px; background: none; color: var(--ink); cursor: pointer; vertical-align: baseline; }
.reveal::before { content: ""; width: 7px; height: 7px; border: 1.5px solid currentColor; border-radius: 50%; }
.reveal.is-shown { border-style: solid; background: var(--ink); color: var(--ink-inverse); letter-spacing: .12em; }
.reveal:focus-visible { outline: 2px solid var(--focus); outline-offset: 2px; }
.glance__value .reveal { font-size: 16px; }
.hs__bubble .reveal { min-height: 24px; padding: 0 8px; font-size: 14px; }

/* Manual section icons */
.mi { width: 22px; height: 22px; flex: none; }
.manual__num { display: flex; flex-direction: column; gap: 10px; align-items: flex-start; }
.manual__num .mi { width: 34px; height: 34px; color: var(--ink); }
.manual__toc a { align-items: center; }
.manual__toc .mi { width: 18px; height: 18px; }
.manual__chips a { gap: 8px; }
.manual__chips .mi { width: 17px; height: 17px; }
@media (max-width: 809px) { .manual__num { flex-direction: row; align-items: center; gap: 12px; } .manual__num .mi { width: 28px; height: 28px; } }

/* ---------- Nearby page ---------- */
.nb { padding-top: 96px; }
.nb__filters { position: sticky; top: 0; z-index: 30; display: flex; gap: 8px; overflow-x: auto; scrollbar-width: none; padding: 16px 0; background: linear-gradient(var(--surface) 75%, transparent); }
.nb__filters button { flex: none; font: inherit; font-size: 15px; padding: 10px 16px; min-height: 44px; border-radius: 999px; border: 1px solid var(--line-strong); background: none; color: var(--ink-muted); cursor: pointer; transition: background var(--dur-quick) ease, color var(--dur-quick) ease, border-color var(--dur-quick) ease; }
.nb__filters button span { opacity: .6; margin-left: 4px; font-variant-numeric: tabular-nums; }
.nb__filters button:hover { color: var(--ink); border-color: var(--ink); }
.nb__filters button[aria-pressed="true"] { background: var(--ink); color: var(--ink-inverse); border-color: var(--ink); }
.nb__filters button:focus-visible { outline: 2px solid var(--focus); outline-offset: 2px; }
.nb__count { margin: 0 0 24px; font-size: 14px; color: var(--ink-muted); }
.nb__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; align-items: start; }
.nb__card { background: var(--surface-field); border: 1px solid var(--line); display: flex; flex-direction: column; transition: opacity var(--dur-base) var(--ease-out), transform var(--dur-base) var(--ease-out); }
.nb__card.is-hidden { display: none; }
.nb__card--text { background: none; }
.nb__media { aspect-ratio: 16 / 9; overflow: hidden; background: #000; }
.nb__media video, .nb__media img { width: 100%; height: 100%; object-fit: cover; display: block; }
.nb__body { padding: 24px 24px 28px; display: grid; gap: 14px; }
.nb__tags { display: flex; gap: 6px; flex-wrap: wrap; }
.nb__tag { font-size: 13px; font-weight: 500; padding: 4px 10px; border-radius: 999px; border: 1px solid var(--line-strong); color: var(--ink-muted); }
.nb__body h2 { margin: 0; font-size: 34px; line-height: 1.05; letter-spacing: -0.02em; font-weight: 400; }
.nb__note { margin: 0; font-size: 20px; line-height: 1.35; }
.nb__stats { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.nb__stats li { font-size: 15px; padding: 6px 12px; background: var(--surface-plate); border-radius: 6px; }
.nb__detail { margin: 0; font-size: 16px; line-height: 1.5; color: var(--ink-muted); }
.nb__thumbs { display: grid; grid-template-columns: repeat(2, 1fr); gap: 8px; }
.nb__thumb { aspect-ratio: 4 / 3; overflow: hidden; }
.nb__thumb img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform var(--dur-slow) var(--ease-out); }
.nb__thumb:hover img { transform: scale(1.04); }
.nb__thumb .gal-hint { right: 8px; bottom: 8px; height: 30px; }
.nb__links { display: flex; flex-wrap: wrap; gap: 18px; margin-top: 4px; }
.nb__links a { font-size: 16px; color: var(--ink); text-underline-offset: 4px; }
.nb__links a:hover { color: var(--ink-muted); }
.nb__fine { margin: 48px 0 0; font-size: 14px; color: var(--ink-muted); }
@media (max-width: 809px) {
  .nb { padding-top: 56px; }
  .nb__grid { grid-template-columns: 1fr; gap: 20px; }
  .nb__body { padding: 18px 18px 22px; }
  .nb__body h2 { font-size: 28px; }
  .nb__note { font-size: 18px; }
}

.nb__meta { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; }
.nb__drive { display: inline-flex; align-items: center; gap: 6px; font-size: 14px; font-weight: 600; padding: 5px 10px 5px 8px; border-radius: 999px; background: var(--ink); color: var(--ink-inverse); }
.nb__drive svg { width: 16px; height: 16px; }
.nb__type { font-size: 14px; color: var(--ink-muted); }
.nb__card--compact .nb__body { padding: 20px; gap: 10px; }
.nb__card--compact h2 { font-size: 24px; }
.nb__card--text { border: 1px solid var(--line); background: var(--surface-field); }
.nb__links .nb__dir { font-weight: 600; }
.nb__list { margin: 20px 0 0; font-size: 18px; }
.nb__list a { color: var(--ink); text-underline-offset: 4px; }
.nb__list a:hover { color: var(--ink-muted); }
@media (max-width: 1100px) { .nb__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 809px) { .nb__grid { grid-template-columns: 1fr; } }

/* Nearby as a sorted list: compact rows, with richer places opening into a wide row */
.nb__grid { grid-template-columns: 1fr !important; gap: 0; border-top: 1px solid var(--line); }
.nb__card { background: none !important; border: 0 !important; border-bottom: 1px solid var(--line) !important; flex-direction: row; }
.nb__card--compact .nb__body { padding: 18px 0; display: grid; grid-template-columns: 150px minmax(0, 1fr) auto auto; align-items: center; gap: 20px; width: 100%; }
.nb__card--compact .nb__meta { display: contents; }
.nb__card--compact .nb__drive { grid-column: 1; grid-row: 1; justify-self: start; }
.nb__card--compact h2 { grid-column: 2; grid-row: 1; font-size: 22px; margin: 0; }
.nb__card--compact .nb__type { grid-column: 2; grid-row: 1; align-self: end; transform: translateY(18px); }
.nb__card--compact .nb__tags { grid-column: 3; grid-row: 1; justify-content: flex-end; }
.nb__card--compact .nb__links { grid-column: 4; grid-row: 1; margin: 0; }
.nb__card--compact .nb__note { grid-column: 2 / 4; grid-row: 2; font-size: 16px; margin-top: -8px; }
.nb__card:not(.nb__card--compact) { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.2fr); gap: 32px; padding: 32px 0; }
.nb__card--text:not(.nb__card--compact) { grid-template-columns: 1fr; }
.nb__card:not(.nb__card--compact) .nb__body { padding: 0; }
.nb__card:not(.nb__card--compact) .nb__media { order: 2; }
@media (max-width: 1100px) { .nb__card--compact .nb__tags { display: none; } .nb__card--compact .nb__body { grid-template-columns: 130px minmax(0, 1fr) auto; } }
@media (max-width: 809px) {
  .nb__card--compact .nb__body { grid-template-columns: 1fr auto; gap: 6px 12px; padding: 16px 0; }
  .nb__card--compact .nb__drive { grid-column: 1; grid-row: 1; }
  .nb__card--compact h2 { grid-column: 1 / 3; grid-row: 2; font-size: 20px; }
  .nb__card--compact .nb__type { grid-column: 1 / 3; grid-row: 3; transform: none; }
  .nb__card--compact .nb__links { grid-column: 2; grid-row: 1; }
  .nb__card--compact .nb__links a:not(.nb__dir) { display: none; }
  .nb__card--compact .nb__note { grid-column: 1 / 3; grid-row: 4; margin: 0; }
  .nb__card:not(.nb__card--compact) { grid-template-columns: 1fr; gap: 16px; padding: 24px 0; }
  .nb__card:not(.nb__card--compact) .nb__media { order: 0; }
}
/* Keep tall annotated photos within the screen; the frame shrinks to the photo so pins stay aligned */
.annot__frame { width: fit-content; max-width: 100%; }
.annot__img > img { display: block; max-width: 100%; max-height: 82vh; width: auto; }

/* How-to videos in the manual */
.mvid { margin: 24px 0; max-width: 420px; }
.mvid video { display: block; width: 100%; aspect-ratio: 9 / 16; background: #000; border-radius: 12px; }
.mvid figcaption { margin-top: 10px; font-size: 15px; color: var(--ink-muted); }
@media (max-width: 809px) { .mvid { max-width: none; } }

/* ================= Mobile first ================= */
html, body { overflow-x: clip; }
.mnav-btn { display: none; }
.mnav { position: fixed; inset: 0; z-index: 70; background: var(--surface); display: flex; flex-direction: column; padding: 18px var(--space-3) calc(24px + env(safe-area-inset-bottom)); clip-path: inset(0 0 100% 0); visibility: hidden; transition: clip-path var(--dur-slow) var(--ease-in-out), visibility 0s linear var(--dur-slow); }
.mnav.is-open { clip-path: inset(0 0 0 0); visibility: visible; transition: clip-path var(--dur-slow) var(--ease-in-out), visibility 0s; }
.mnav__top { display: flex; justify-content: space-between; align-items: center; min-height: 44px; }
.mnav__close { background: none; border: 0; color: var(--ink); font: inherit; font-size: 16px; padding: 10px 0 10px 16px; cursor: pointer; }
.mnav__links { list-style: none; margin: auto 0 0; padding: 0; display: grid; gap: 4px; }
.mnav__links a { display: block; font-size: 40px; line-height: 1.15; letter-spacing: -0.03em; color: var(--ink); text-decoration: none; padding: 4px 0; opacity: 0; transform: translateY(24px); transition: opacity var(--dur-base) var(--ease-out), transform var(--dur-slow) var(--ease-out); transition-delay: calc(200ms + var(--i) * 50ms); }
.mnav.is-open .mnav__links a { opacity: 1; transform: none; }
.mnav__links a[aria-current="page"] { color: var(--ink-muted); }
.mnav__foot { margin-top: 32px; display: grid; gap: 12px; }
.mnav__foot .ds-button { width: 100%; display: grid; place-items: center; text-decoration: none; }
.mnav__foot a.mnav__small { font-size: 16px; color: var(--ink-muted); text-decoration: none; }
.mbook { display: none; }
@media (prefers-reduced-motion: reduce) { .mnav, .mnav__links a { transition: none; } }

@media (max-width: 809px) {
  .mnav-btn { display: inline-flex; align-items: center; gap: 10px; background: none; border: 0; color: var(--ink); font: inherit; font-size: 16px; padding: 10px 0 10px 12px; min-height: 44px; cursor: pointer; }
  .mnav-btn i { display: grid; gap: 5px; } .mnav-btn i::before, .mnav-btn i::after { content: ""; display: block; width: 22px; height: 1.5px; background: currentColor; }
  .mnav-btn:focus-visible, .mnav__close:focus-visible { outline: 2px solid var(--focus); outline-offset: 2px; }
  .top__links, .jtop__links, .bar .ds-header__book, .jtop > a[href="/#book"] { display: none !important; }
  .top { align-items: center; padding-top: 20px; padding-bottom: 24px; }
  .top__lockup { font-size: 40px; }
  .bar .ds-header { padding: 0 var(--space-3) 0 var(--space-3); }
  .bar .ds-sectionnav { padding-top: 6px; padding-bottom: 12px; gap: 20px; }
  .bar .ds-sectionnav a { font-size: 15px; }
  /* Layout stats fit one row */
  .layout .ds-stats { gap: 28px; }
  .layout .ds-stat dd { font-size: 44px; }
  .layout .ds-stat dt { font-size: 16px; }
  /* Sticky book bar */
  .mbook { display: flex; position: fixed; left: 12px; right: 12px; bottom: calc(12px + env(safe-area-inset-bottom)); z-index: 45; gap: 10px; transform: translateY(140%); transition: transform var(--dur-slow) var(--ease-out); }
  .mbook.is-shown { transform: none; }
  .mbook a { flex: 1; display: grid; place-items: center; height: 52px; border-radius: 999px; background: var(--paper); color: var(--ink-inverse); font-size: 16px; font-weight: 500; text-decoration: none; box-shadow: 0 10px 30px rgba(0, 0, 0, .45); }
  .ds-footer { padding-bottom: 110px; }
  /* Touch: comfortable tap targets everywhere */
  .ds-footer__links a { font-size: 20px; padding: 6px 0; }
  .gal__btn, .gx__chips a, .nb__filters button { min-height: 44px; }
}

.bar__actions { display: flex; align-items: center; gap: 10px; }
.bar__actions a { font-size: 15px; text-decoration: none; padding: 9px 16px; border-radius: 999px; }
.ds-header__manual { color: var(--ink); border: 1px solid var(--line-strong); }
.ds-header__manual:hover { border-color: var(--ink); }
.ds-header__book { background: var(--paper); color: var(--ink-inverse); }
.ds-header__book:hover { background: var(--ink); }
.bar__actions a:focus-visible { outline: 2px solid var(--focus); outline-offset: 2px; }
@media (max-width: 809px) {
  .bar__actions { display: none; }
  .mbook a.mbook__manual { flex: 0 0 auto; padding: 0 22px; background: rgba(22, 22, 22, .9); color: var(--ink); border: 1px solid var(--line-strong); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); }
}
@media (max-width: 809px) {
  .nb__links .nb__dir { display: inline-flex; align-items: center; gap: 6px; min-height: 40px; padding: 0 16px; border-radius: 999px; border: 1px solid var(--line-strong); text-decoration: none; font-size: 15px; }
  .nb__card--compact .nb__links .nb__dir { min-height: 36px; padding: 0 14px; }
  .nb__filters { margin: 0 calc(-1 * var(--space-3)); padding-left: var(--space-3); padding-right: var(--space-3); }
}
@media (max-width: 809px) {
  .gx__grid > div { columns: 2 !important; column-gap: 8px; }
  .gx__item { margin-bottom: 8px; }
  .gx__item .gal-hint { right: 6px; bottom: 6px; height: 28px; padding: 0 7px; }
  .gx__item .gal-hint span { display: none; }
  .gx__item .gal-hint svg { width: 14px; height: 14px; }
  .gx__head h2 { font-size: 34px; }
  .gx__section { padding-top: 36px; padding-bottom: 12px; }
  .fly { height: 420vh; }
}

/* ===== Floor plan: luxury presentation style ===== */
.fp__frame { background: #ece7de; padding: 18px; border-radius: 4px; box-shadow: 0 30px 80px rgba(0, 0, 0, .35); }
.lawn { fill: #dfe2d2; }
.ls-sand { fill: url(#pSand); }
.ls-pebble { fill: url(#pHex); }
.ls-bed { fill: #cfd6bf; }
.ls-lawn { fill: #d3d9c3; stroke: #b9a585; stroke-width: 1.2; }
.ls-planter { stroke: #8c8577; stroke-width: .6; }
.tree polygon { fill: rgba(138, 154, 112, .22); stroke: #8a9a70; stroke-width: .7; }
.tree line { stroke: #8a9a70; stroke-width: .35; opacity: .7; }
.tree .tree-c, .tree circle { fill: #8a9a70; opacity: .8; }
.tree .tree-hi { display: none; }
.plant line { stroke: #6f7f5c; stroke-width: .55; }
.plant circle { fill: #6f7f5c; }
.fl-carpet { fill: #f1ece3; }
.fl-concrete { fill: #ebe7df; }
.fl-concrete-dark { fill: #dedad2; }
.fl-stone-dark { fill: #d6d1c8; }
.fl-rubber { fill: #dedad2; }
.wall { stroke: #2b2925; stroke-width: 3.2; }
.walls { filter: url(#fpShadow); }
.glass { stroke: #8ea3a6; stroke-width: 1.6; }
.fence { stroke: #b39a77; stroke-width: 1.2; stroke-dasharray: 5 2; }
.gate { stroke: #8c8577; stroke-width: .6; }
.f-coping { fill: #f7f4ee; stroke: #b9b1a3; stroke-width: .4; }
.f-water { fill: url(#gWater); }
.f-ripple { stroke: rgba(255, 255, 255, .7); stroke-width: .5; }
.f-water-edge { fill: rgba(60, 90, 95, .08); }
.furn { filter: url(#fpShadow); }
.furn rect, .furn ellipse, .furn circle { stroke: #8a8275; stroke-width: .45; }
.f-sheet, .f-pillow, .f-ceramic, .f-sofa, .f-lounger, .f-chair-r, .f-bath-in, .f-cushion { fill: #fbfaf7; }
.f-throw { fill: #c7cdb8; }
.f-timber { fill: #cdb18b; }
.f-timber-dark { fill: #a98a63; }
.f-chair { fill: #8a6e4c; }
.f-stool { fill: #3a3833; }
.f-bench { fill: #514d46; }
.f-range { fill: #2b2925; }
.f-stonetop { fill: #eeebe5; opacity: 1; }
.f-fire-tile { fill: #6f8a73; }
.f-fire-box { fill: url(#gEmber); }
.f-logs { fill: #b49270; }
.f-bath { fill: #2b2925; }
.f-rug { fill: #e3ddd1; }
.f-car { fill: #fbfaf7; }
.f-car-2 { fill: #3a3833; }
.f-roof { fill: rgba(0, 0, 0, .06); }
.f-glass-dark { fill: #6d7a7e; stroke: none !important; }
.f-glass { fill: #8ea3a6; stroke: none !important; }
.f-tank { fill: #fbfaf7; }
.f-tray { fill: #e9e2d4; }
.f-bbq { fill: #3a3833; }
.f-tv { fill: #2b2925; }
.f-gym { fill: #77736b; }
.f-mat { fill: #a39e94; }
.f-felt { fill: #5f7d68; }
.f-plant { fill: #8a9a70; }
.f-bowl { fill: #6b4a33; }
.f-gravel { fill: url(#pSand); }
.lab { fill: #2b2925; stroke: none; font-size: 6.4px; font-weight: 600; letter-spacing: .16em; text-transform: uppercase; paint-order: normal; }
.lab-sm { font-size: 5px; }
.scale text, .north text { fill: #2b2925; stroke: none; font-size: 6px; letter-spacing: .12em; font-weight: 600; }
.scale .sb1 { fill: #2b2925; } .scale .sb2 { fill: none; stroke: #2b2925; stroke-width: .5; }
.north circle { fill: none; stroke: #2b2925; stroke-width: .6; }
.north path { fill: #2b2925; }
.north text { text-anchor: middle; }
.titleblock .tb1 { fill: #2b2925; font-size: 11px; letter-spacing: .3em; font-weight: 600; }
.titleblock .tb2 { fill: #6b665d; font-size: 6px; letter-spacing: .3em; font-weight: 500; }
.ghost { stroke: rgba(43, 41, 37, .35); }
.fl:hover { filter: brightness(.97); }
@media (max-width: 809px) { .fp__frame { padding: 10px; } }
.ls-veg { fill: #cbbd9f; stroke: #8c7a5c; stroke-width: .6; }
.veg-row { stroke: #a8936f; stroke-width: .4; }
.veg-plant { fill: #6f8a5a; }
.gate-leaf { stroke: #2b2925; stroke-width: 1.4; fill: none; }
.gate-swing { stroke: #2b2925; stroke-width: .45; stroke-dasharray: 1.6 1.4; fill: none; }
.gate-post { fill: #2b2925; }
.lab-gate { font-size: 4.6px !important; }
.fp .plant, .fp .fence { opacity: 1; }
.f-rose { fill: #fbfaf7; }
.f-rose-c { fill: #8a8275; stroke: none !important; }
.fl-paving { fill: url(#pPaving); }
.ls-poolyard { fill: #e6e8db; }
.olive polygon { fill: rgba(150, 160, 120, .35); stroke: #7d8a62; stroke-width: .7; }
.olive line { stroke: #7d8a62; stroke-width: .35; }
.f-dart { fill: #fbfaf7; } .f-dart-c { fill: #a14b3a; stroke: none !important; }
.f-ac { fill: #e9e6e0; }

/* Collapsed section (bushfire safety) */
.manual__acc summary { list-style: none; cursor: pointer; display: flex; align-items: baseline; justify-content: space-between; gap: 16px; }
.manual__acc summary::-webkit-details-marker { display: none; }
.manual__acc summary h2 { margin: 0; }
.manual__acc-hint { font-size: 15px; color: var(--ink-muted); white-space: nowrap; display: inline-flex; align-items: center; gap: 8px; }
.manual__acc-hint::after { content: "+"; font-size: 22px; line-height: 1; transition: transform var(--dur-base) var(--ease-out); }
.manual__acc[open] .manual__acc-hint { font-size: 0; }
.manual__acc[open] .manual__acc-hint::after { transform: rotate(45deg); font-size: 22px; }
.manual__acc[open] .manual__body { margin-top: 20px; animation: acc-in var(--dur-base) var(--ease-out); }
@keyframes acc-in { from { opacity: 0; transform: translateY(-6px); } to { opacity: 1; transform: none; } }
.manual__acc summary:focus-visible { outline: 2px solid var(--focus); outline-offset: 4px; }
.manual__body strong + p, .manual__body > p > strong:only-child { display: inline-block; margin-top: 8px; }
.fence-bed { fill: none; stroke: #c3ccad; stroke-width: 9; stroke-linecap: square; }
.wall-p { fill: none; stroke: #2b2925; stroke-width: 3.2; stroke-linejoin: miter; }
.fl-timber { fill: url(#pStair); }

/* ===== Floor plan: drawing refinement ===== */
.wall { stroke-width: 2.6; }
.wall-p { stroke-width: 2.6; }
.walls { filter: none; }
.win-cut { fill: #f7f4ee; }
.win { stroke: #6f8287; stroke-width: .35; }
.glass { display: none; }
.furn { filter: none; }
.furn rect, .furn ellipse, .furn circle, .furn path { stroke: #6b665d; stroke-width: .35; }
.f-line { stroke: #8a8275; stroke-width: .3; fill: none; }
.f-sheet, .f-pillow { fill: #ffffff; }
.f-throw { fill: #dfe3d5; }
.f-side { fill: #e9dcc6; }
.f-lamp { fill: #fbfaf7; }
.f-sofa { fill: #faf8f3; }
.f-chair { fill: #e9dcc6; }
.f-burner { fill: none; stroke: #c9c4bb !important; stroke-width: .35 !important; }
.f-timber { fill: #dbc7a6; }
.f-timber-dark { fill: #c2a47c; }
.f-car, .f-car-2 { fill: #fbfaf7; }
.f-car-2 { fill: #e7e4de; }
.f-stool { fill: #fbfaf7; }
.f-bench { fill: #e4e0d9; }
.f-range { fill: #f2efe9; }
.tree-sh { fill: rgba(92, 84, 64, .1); }
.tree-cl { fill: rgba(150, 164, 122, .42); stroke: #7f8f66; stroke-width: .35; }
.tree-tw { stroke: #6f7f58; stroke-width: .3; opacity: .7; }
.trees { filter: none; }
.plant path { fill: none; stroke: #6e7e5a; stroke-width: .3; }
.lawn { fill: #e3e5d8; }
.ls-pebble { fill: url(#pHex); opacity: .75; }
.ls-sand { opacity: .9; }

/* ===== Floor plan: rendered-model look (inspired by the 3D render) ===== */
.fp__frame { background: #fbfaf8; }
.lawn { fill: #fbfaf8; }
.ls-sand { fill: #cbbda4; filter: url(#mGravel); }
.ls-pebble { fill: #8b857a; filter: url(#mPebble); opacity: 1; }
.ls-bed { fill: #a8a08f; filter: url(#mPebble); }
.ls-poolyard { fill: #e7e3db; }
.ls-veg { fill: #7a5a3c; stroke: #4e3a27; filter: url(#mPebble); }
.veg-row { stroke: #5a4330; }
.veg-plant { fill: #6f9a45; }
.fence-bed { stroke: #8b857a; }
.fence { stroke: #c9d4d6; stroke-width: 1.6; stroke-dasharray: none; }
.fl-deck { fill: #9a6e46; filter: url(#mTimberV); }
.fl-deck-h { fill: #9a6e46; filter: url(#mTimber); }
.fl-paving { fill: url(#pPaving); }
.fl-carpet { fill: #cdbfa5; filter: url(#mCarpet); }
.fl-concrete { fill: #e4ded2; }
.fl-stone, .fl-stone-dark { fill: #b9b3a8; }
.fl-tile { fill: #3d3c3a; }
.fp-level[data-level="lower"] .fl-concrete { fill: #4b4a47; filter: url(#mCarpet); }
.fp-level[data-level="lower"] .fl-concrete-dark { fill: #a7a196; }
.fp-level[data-level="lower"] .lab { fill: #fbfaf8; }
.fp-level[data-level="lower"] [data-room="hardstand"] ~ * .lab { fill: #1d1c1a; }
.wall, .wall-p { stroke: #1d1c1a; stroke-width: 3.4; }
.walls { filter: url(#mModel); }
.win-cut { fill: #dfe9ea; }
.win { stroke: #7f9aa0; stroke-width: .45; }
.f-coping { fill: #f3f1ec; stroke: #cfc9bf; }
.f-water { fill: url(#gPool); filter: url(#mWater); }
.f-ripple { display: none; }
.furn { filter: url(#mSlab); }
.furn rect, .furn ellipse, .furn circle, .furn path { stroke: rgba(0, 0, 0, .25); stroke-width: .3; }
.f-sofa { fill: #b9b3aa; }
.f-line { stroke: #d6d1c8; stroke-width: .5; }
.f-sheet { fill: #f8f6f2; }
.f-throw { fill: #9c958a; }
.f-pillow { fill: #ffffff; }
.f-side { fill: #6b4a2f; }
.f-lamp { fill: #f4e7c9; }
.f-rug { fill: #d9cdb6; }
.f-timber { fill: #9a6e46; filter: url(#mTimber); }
.f-timber-dark { fill: #5d4029; filter: url(#mTimber); }
.f-chair { fill: #3a3836; }
.f-stool { fill: #2a2927; }
.f-bench { fill: #2a2927; }
.f-range { fill: #1b1b1b; }
.f-burner { stroke: #8a8a8a !important; }
.f-stonetop { fill: #e9e6e0; }
.f-car { fill: url(#gCarW); }
.f-car-2 { fill: url(#gCarB); }
.f-glass-dark { fill: #262c31; }
.f-roof { fill: rgba(0, 0, 0, .08); }
.f-bath { fill: #f8f8f6; stroke: #9d968b !important; }
.f-bath-in { fill: #e6eef0; }
.f-ceramic { fill: #fbfbfa; }
.f-felt { fill: #2f6b4a; }
.f-gym { fill: #6b6a67; }
.f-mat { fill: #8f8c86; }
.f-fire-tile { fill: #4f6f57; }
.f-bbq { fill: #2a2927; }
.f-lounger { fill: #f3f1ec; }
.f-dart { fill: #e9e2d0; }
.plant ellipse { fill: url(#gLeaf); stroke: rgba(40, 55, 25, .35); stroke-width: .2; }
.plant .plant-c { fill: #3c5229; }
.plant path, .plant line { display: none; }
.olive circle { fill: url(#gBush); stroke: rgba(30, 45, 20, .3); stroke-width: .3; }
.olive-sh { fill: rgba(30, 26, 20, .22); }
.lab { fill: #1d1c1a; font-weight: 700; letter-spacing: .08em; }
.titleblock .tb1 { fill: #1d1c1a; }
.fence-bed { stroke: #9a9282; stroke-width: 10; filter: url(#mPebble); }

/* Floor plan as the black-and-white drawing */
.fp--image .fp__img { background: #ffffff; padding: 16px; border-radius: 4px; }
.fp--image .fp__img img { display: block; width: 100%; height: auto; }
@media (max-width: 809px) { .fp--image .fp__img { padding: 8px; } }
.secret { font-weight: 600; letter-spacing: .04em; }
.nb__card.is-hidden { display: none !important; }

