:root {
  --paper: #f3f0e9;
  --ink: #292d28;
  --muted: #53594f;
  --sage: #52664d;
  --line: #ccd0c5;
  --progress: 0%;
  --site-header-height: 80px;
  --font:
    "Asta Sans", "Pretendard Variable", Pretendard, "Noto Sans KR",
    "Apple SD Gothic Neo", sans-serif;
}
* {
  box-sizing: border-box;
}
html {
  background: var(--paper);
  scrollbar-color: var(--sage) var(--paper);
  scrollbar-width: thin;
}
body {
  margin: 0;
  background: var(--paper);
  color: var(--ink);
  font-family: var(--font);
  overflow-x: hidden;
}
a {
  color: inherit;
}
.skip {
  position: fixed;
  z-index: 20;
  top: 8px;
  left: 12px;
  transform: translateY(-160%);
  background: var(--paper);
  color: var(--ink);
  padding: 10px 16px;
}
.skip:focus {
  transform: none;
}
:focus-visible {
  outline: 3px solid var(--sage);
  outline-offset: 4px;
}
.site-header {
  background: var(--paper);
  position: fixed;
  z-index: 10;
  inset: 0 0 auto;
  height: var(--site-header-height);
  display: flex;
  align-items: center;
  padding: 0 clamp(18px, 3vw, 48px);
  pointer-events: none;
}
.brand {
  pointer-events: auto;
  min-height: 44px;
  display: inline-flex;
  align-items: center;
  padding: 0;
  background: transparent;
  text-decoration: none;
}
.brand img {
  display: block;
  width: 64px;
  height: auto;
  filter:
    drop-shadow(0 1px 1px rgba(255, 255, 255, 0.94))
    drop-shadow(0 2px 4px rgba(255, 255, 255, 0.72));
}
.desktop-nav {
  pointer-events: auto;
  display: flex;
  align-items: center;
  gap: clamp(18px, 2.5vw, 36px);
  margin-left: auto;
}
.desktop-nav a {
  min-height: 44px;
  display: inline-flex;
  align-items: center;
  color: var(--ink);
  font-size: 14px;
  font-weight: 650;
  text-decoration: none;
}
.desktop-nav a:hover,
.desktop-nav a:focus-visible {
  color: var(--sage);
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 5px;
}
.header-actions {
  pointer-events: auto;
  display: flex;
  align-items: center;
  gap: 8px;
  margin-left: clamp(20px, 3vw, 44px);
}
.mobile-nav { display: none; }
.mobile-nav .nav-close-icon { display: none; }
.mobile-nav[open] .nav-open-icon { display: none; }
.mobile-nav[open] .nav-close-icon { display: block; }
.progress {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 2px;
  background: rgba(41, 45, 40, 0.18);
}
.progress i {
  display: block;
  width: var(--progress);
  height: 100%;
  background: var(--sage);
}
.scroll-world {
  height: 800svh;
  min-height: 4200px;
}
.stage {
  position: sticky;
  top: var(--site-header-height);
  height: calc(100svh - var(--site-header-height));
  overflow: hidden;
  background: var(--paper);
}
.poster,
.poster img,
.stage video {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  background: var(--paper);
}
.stage video {
  opacity: 0;
}
.stage.ready video {
  opacity: 1;
}
.stage.ready .poster {
  visibility: hidden;
}
.morph-label {
  position: absolute;
  z-index: 2;
  left: clamp(20px, 3.4vw, 52px);
  bottom: calc(clamp(72px, 8vh, 90px) + env(safe-area-inset-bottom));
  margin: 0;
  padding: 5px 8px;
  background: rgba(243, 240, 233, 0.92);
  color: var(--ink);
  font-size: clamp(13px, 1.15vw, 16px);
  font-weight: 650;
  line-height: 1.25;
  letter-spacing: -0.02em;
  pointer-events: none;
}
.morph-label[hidden] {
  display: none;
}
.idle-arrow {
  position: absolute;
  z-index: 2;
  left: 50%;
  bottom: calc(28px + env(safe-area-inset-bottom));
  transform: translateX(-50%);
  width: 42px;height:42px;display:grid;place-items:center;
  border-radius:50%;background:rgba(243,240,233,.9);
  color: var(--muted);
  opacity:0;visibility:hidden;transition:opacity .2s,visibility .2s;
  pointer-events:none;
}
.idle-arrow.visible{opacity:1;visibility:visible}.idle-arrow svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.5;animation:arrow-float 1.4s ease-in-out infinite}
.status {
  position: absolute;
  z-index: 3;
  left: 50%;
  bottom: calc(24px + env(safe-area-inset-bottom));
  transform: translateX(-50%);
  display: flex;
  align-items: center;
  gap: 9px;
  margin: 0;
  min-width: min(240px, calc(100vw - 32px));
  padding: 0;
  font-size: 12px;
  color: var(--muted);
  white-space: nowrap;
}
.loader {
  width: 100%;
  height: 2px;
  overflow: hidden;
  background: rgba(243, 240, 233, 0.84);
}
.loader::after {
  content: "";
  display: block;
  width: var(--load-progress, 0%);
  height: 100%;
  background: var(--sage);
}
.stage:is([data-load-state="preparing"], [data-load-state="loading"], [data-load-state="decoding"]) .loader:not([aria-valuenow])::after {
  width: 38%;
  animation: loader-indeterminate 1.1s ease-in-out infinite alternate;
}
.stage:not(.ready) .idle-arrow {
  display: none;
}
.stage:not([data-load-state]) .status,
.status-text:empty,
.retry[hidden],
.loader[hidden],
.stage.ready .status {
  display: none;
}
.stage[data-load-state="error"] .status {
  min-width: 0;
  padding: 8px 9px;
  background: rgba(243, 240, 233, 0.96);
  color: var(--ink);
}
.retry {
  min-width: 44px;
  min-height: 44px;
  border: 1px solid var(--sage);
  border-radius: 2px;
  background: transparent;
  color: var(--ink);
  font: inherit;
  padding: 8px 10px;
  cursor: pointer;
}
.closing {
  padding: clamp(48px, 7vw, 72px) clamp(20px, 6vw, 96px)
    calc(clamp(52px, 7vw, 76px) + env(safe-area-inset-bottom));
  background: var(--paper);
  color: var(--ink);
}
.closing-inner {
  width: min(100%, 620px);
}
.booking-cta{pointer-events:auto;min-height:44px;display:inline-flex;align-items:center;text-decoration:none;background:var(--sage);color:var(--paper);padding:11px 17px;border-radius:2px;font-size:14px;font-weight:650;white-space:nowrap}
.closing-booking-cta{display:inline-flex;align-items:center;justify-content:center;min-height:50px;margin-top:28px;padding:11px 24px;border:1px solid var(--sage);background:var(--sage);color:var(--paper);text-decoration:none;font-weight:700}
.reservation-page{min-height:100svh;background:var(--paper);color:var(--ink)}
.reservation-page .skip:not(:focus){visibility:hidden;pointer-events:none}.reservation-page .skip:focus{position:fixed;z-index:100;top:8px;left:8px;visibility:visible;pointer-events:auto}.reservation-page .consent{word-break:keep-all}.reservation-page .consent .required{white-space:nowrap}.reservation-page .form-result{overflow-wrap:anywhere}
body.reservation-page .consent{align-items:center;min-height:44px;cursor:pointer}body.reservation-page .consent:has(input:focus-visible){outline:3px solid var(--focus,#b97828);outline-offset:3px}body.reservation-page .consent input{margin-top:0}
.reservation-header{position:static;width:min(calc(100% - 40px),960px);height:auto;margin:auto;padding:18px 0;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);pointer-events:auto}.reservation-header .brand{position:static}.reservation-header>a:last-child{min-height:44px;display:inline-flex;align-items:center;color:var(--ink);text-decoration:none}
.reservation-shell{width:min(calc(100% - 40px),680px);margin:auto;padding:clamp(48px,8vw,96px) 0}.reservation-shell h1{margin:0;font-size:clamp(36px,7vw,64px);line-height:1.08}.reservation-shell>header>p{max-width:540px;margin:20px 0 40px;color:var(--muted);font-size:17px;line-height:1.7}.reservation-shell form{display:grid;gap:10px}.reservation-shell form[hidden]{display:none}.reservation-shell form>label:not(.consent):not(.honeypot){margin-top:12px;font-weight:700}.reservation-shell input:not([type=checkbox]){width:100%;min-height:50px;border:1px solid var(--line);border-radius:2px;background:var(--paper-raised,#fbfaf7);padding:11px 12px;font:inherit;color:var(--ink)}.reservation-shell input:focus-visible,.reservation-shell button:focus-visible,.reservation-header a:focus-visible{outline:3px solid var(--focus,#b97828);outline-offset:3px}.reservation-shell .consent{display:grid;grid-template-columns:22px 1fr;gap:10px;align-items:start;margin-top:20px;line-height:1.5}.reservation-shell .consent input{width:20px;height:20px;margin:1px 0}.reservation-shell .privacy{font-size:13px;line-height:1.7;color:var(--muted)}.reservation-shell button{min-height:52px;margin-top:16px;border:0;border-radius:2px;background:var(--sage);color:var(--paper);font:inherit;font-weight:700;cursor:pointer}.reservation-shell button:disabled{cursor:wait;opacity:.68}.reservation-shell .form-result{min-height:26px;margin:4px 0 0;line-height:1.6}.honeypot{position:absolute!important;left:-10000px!important;width:1px!important;height:1px!important;overflow:hidden!important}
.booking-receipt{padding:clamp(28px,6vw,48px);border:1px solid var(--line);background:var(--paper-raised,#fbfaf7)}.booking-receipt[hidden]{display:none}.booking-receipt h2{margin:0 0 18px;font-size:clamp(26px,5vw,38px);line-height:1.25}.booking-receipt h2,.booking-receipt p{word-break:keep-all}.booking-receipt p{line-height:1.7}.booking-receipt .booking-reference{font-weight:700;overflow-wrap:anywhere}.booking-receipt .booking-new-request{width:100%}
 .slot-picker{min-width:0;margin:18px 0 0;padding:0;border:0}.slot-picker legend{padding:0;font-weight:700}.slot-policy{margin:8px 0 12px;color:var(--muted);font-size:14px;line-height:1.65}.slot-picker>label{display:block;margin:12px 0 7px;font-weight:700}.availability-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:20px;font-weight:700}.reservation-shell .availability-retry{min-height:44px;margin:0;padding:8px 12px;border:1px solid var(--sage);background:transparent;color:var(--sage)}.availability-loading{display:flex;align-items:center;gap:10px;min-height:36px;margin:8px 0;color:var(--sage);font-size:14px;font-weight:700}.availability-loading[hidden]{display:none}.availability-loading progress{width:min(180px,45%);height:8px;accent-color:var(--sage)}.availability-status{min-height:24px;margin:8px 0;color:var(--muted);font-size:14px;line-height:1.6}.availability-slots{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.reservation-shell .availability-slot{min-width:0;min-height:48px;margin:0;padding:8px 4px;border:1px solid var(--line);background:var(--paper-raised,#fbfaf7);color:var(--ink);font-weight:650}.reservation-shell .availability-slot[aria-pressed="true"]{border-color:var(--sage);background:var(--sage);color:var(--paper)}
.reservation{margin-top:clamp(28px,4vw,36px);padding-top:24px;border-top:1px solid var(--line)}
@media(max-width:400px){.reservation-header{width:min(calc(100% - 28px),960px)}.reservation-shell{width:min(calc(100% - 28px),680px)}.availability-slots{grid-template-columns:repeat(3,minmax(0,1fr))}}
.reservation h2{margin:0 0 8px;font-size:22px}.reservation>p{margin:0 0 24px;color:var(--muted);line-height:1.6}
.reservation form{display:grid;gap:18px}.reservation label{display:grid;gap:7px;font-size:14px;font-weight:650}.reservation input{width:100%;min-height:48px;border:1px solid var(--line);border-radius:2px;background:#faf8f3;padding:10px 12px;font:inherit;color:var(--ink)}
.reservation .consent{grid-template-columns:22px 1fr;align-items:center;font-weight:500}.reservation .consent input{min-height:20px;height:20px}.privacy{font-size:12px;color:var(--muted);line-height:1.65}.honeypot{position:absolute!important;left:-10000px!important;width:1px!important;height:1px!important}.reservation button{min-height:50px;border:0;border-radius:2px;background:var(--sage);color:var(--paper);font:inherit;font-weight:700;cursor:pointer}.form-result{min-height:24px;margin:0!important;color:var(--ink)!important}
@keyframes arrow-float{50%{transform:translateY(5px)}}
.closing h1 {
  margin: 0;
  font-size: clamp(26px, 3vw, 32px);
  font-weight: 520;
  line-height: 1.2;
  letter-spacing: -0.03em;
  text-wrap: balance;
}
.reservation {
  margin-top: clamp(28px, 4vw, 36px);
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}
.reservation summary {
  min-height: 52px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  padding: 12px 2px;
  cursor: pointer;
  font-size: 16px;
  font-weight: 600;
  list-style: none;
}
.reservation summary::-webkit-details-marker {
  display: none;
}
.reservation summary::after {
  content: "+";
  font-size: 20px;
  font-weight: 400;
}
.reservation[open] summary::after {
  content: "−";
}
.reservation p {
  margin: 0;
  padding: 4px 2px 18px;
  max-width: 42ch;
  color: var(--muted);
  font-size: 16px;
  line-height: 1.65;
}
.visualization-note {
  margin: 18px 0 0;
  color: var(--muted);
  font-size: 13px;
  line-height: 1.55;
  word-break: keep-all;
}
.details-story {
  scroll-margin-top: 80px;
  overflow: clip;
  padding: clamp(88px, 11vw, 168px) 0 clamp(96px, 12vw, 180px);
  background: var(--paper);
}
.property-info {
  scroll-margin-top: 80px;
  padding: clamp(88px, 11vw, 156px) clamp(20px, 6vw, 96px);
  border-bottom: 1px solid var(--line);
  background: #e8e4da;
}
.property-info-inner {
  width: min(100%, 1160px);
  margin-inline: auto;
}
.property-info-lead {
  display: grid;
  grid-template-columns: minmax(0, 1.2fr) minmax(280px, .8fr);
  column-gap: clamp(48px, 9vw, 136px);
  align-items: end;
}
.property-info-kicker {
  grid-column: 1 / -1;
  margin: 0 0 20px;
  color: var(--sage);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .13em;
}
.property-info-lead h1 {
  margin: 0;
  max-width: 12ch;
  font-size: clamp(42px, 6vw, 84px);
  font-weight: 720;
  line-height: 1;
  letter-spacing: -.055em;
  word-break: keep-all;
}
.property-info-summary {
  margin: 0;
  color: var(--muted);
  font-size: clamp(16px, 1.45vw, 20px);
  line-height: 1.75;
  word-break: keep-all;
}
.property-info-caveat {
  grid-column: 1 / -1;
  margin: clamp(32px, 4vw, 48px) 0 0;
  padding-top: 20px;
  border-top: 1px solid var(--line);
  color: var(--muted);
  font-size: 14px;
  line-height: 1.7;
  word-break: keep-all;
}
.property-nav {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 28px;
}
.property-nav a {
  display: inline-flex;
  min-height: 44px;
  align-items: center;
  justify-content: center;
  padding: 9px 16px;
  border: 1px solid var(--line);
  border-radius: 2px;
  color: var(--ink);
  font-size: 14px;
  font-weight: 650;
  text-decoration: none;
}
.property-facts {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  margin: clamp(64px, 9vw, 112px) 0 0;
  border-top: 1px solid var(--line);
}
.property-facts div {
  display: grid;
  grid-template-columns: 90px 1fr;
  gap: 20px;
  padding: 22px 0;
  border-bottom: 1px solid var(--line);
}
.property-facts div:nth-child(odd) { padding-right: clamp(24px, 4vw, 56px); }
.property-facts div:nth-child(even) { padding-left: clamp(24px, 4vw, 56px); border-left: 1px solid var(--line); }
.property-facts dt { color: var(--sage); font-size: 13px; font-weight: 700; }
.property-facts dd { margin: 0; line-height: 1.6; word-break: keep-all; }
.property-sections {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(28px, 5vw, 72px);
  margin-top: clamp(72px, 9vw, 112px);
}
.property-sections article { min-width: 0; scroll-margin-top: 96px; }
.property-section-number { margin: 0 0 30px; color: var(--sage); font-size: 12px; font-weight: 700; letter-spacing: .13em; }
.property-sections h2 { margin: 0 0 20px; font-size: clamp(22px, 2vw, 30px); line-height: 1.3; letter-spacing: -.025em; }
.property-sections article > p { margin: 0; color: var(--muted); font-size: 15px; line-height: 1.8; word-break: keep-all; }
.housing-types-table {
  width: 100%;
  margin-top: 20px;
  border-collapse: collapse;
  font-size: 15px;
  line-height: 1.6;
}
.housing-types-table caption { text-align: left; margin-bottom: 8px; color: var(--muted); font-size: 13px; }
.housing-types-table th,
.housing-types-table td { padding: 12px 10px; border-top: 1px solid var(--line); text-align: left; }
.housing-types-table th { color: var(--sage); font-weight: 700; }
.housing-types-table thead th:last-child { color: var(--sage); }
.floor-plan-note { margin-top: 18px !important; }
.property-sources { margin-top: clamp(64px, 8vw, 96px); border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.property-sources summary { display: flex; min-height: 56px; align-items: center; justify-content: space-between; cursor: pointer; font-size: 14px; font-weight: 700; list-style: none; }
.property-sources summary::-webkit-details-marker { display: none; }
.property-sources summary::after { content: "+"; font-size: 20px; font-weight: 400; }
.property-sources[open] summary::after { content: "−"; }
.property-sources > div { padding: 4px 0 24px; color: var(--muted); font-size: 13px; line-height: 1.7; }
.property-sources p { max-width: 76ch; margin: 0; }
.property-sources ul { margin: 14px 0 0; padding-left: 20px; }
.property-sources li + li { margin-top: 6px; }
.property-sources a { text-underline-offset: 4px; }
.details-intro,
.detail-copy,
.details-note {
  width: min(calc(100% - 40px), 1160px);
  margin-inline: auto;
}
.details-intro {
  padding-bottom: clamp(92px, 13vw, 188px);
}
.details-kicker,
.detail-number {
  margin: 0 0 18px;
  color: var(--sage);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .13em;
}
.details-intro h1,
.detail-copy h2 {
  margin: 0;
  max-width: 12ch;
  font-size: clamp(42px, 6.6vw, 94px);
  font-weight: 720;
  line-height: .98;
  letter-spacing: -.065em;
  word-break: keep-all;
}
.details-intro > p:not(.details-kicker),
.detail-copy > p:last-child {
  max-width: 39ch;
  margin: 28px 0 0;
  color: var(--muted);
  font-size: clamp(16px, 1.45vw, 20px);
  line-height: 1.75;
  word-break: keep-all;
}
.story-jump {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  margin-top: 24px;
  color: var(--sage);
  font-size: 14px;
  font-weight: 650;
  text-decoration-thickness: 1px;
  text-underline-offset: 5px;
}
.detail-chapter {
  position: relative;
  margin-bottom: clamp(128px, 18vw, 260px);
}
.detail-copy {
  display: grid;
  grid-template-columns: minmax(220px, .85fr) 1.15fr;
  column-gap: clamp(48px, 9vw, 140px);
  align-items: start;
  margin-bottom: clamp(48px, 7vw, 96px);
}
.detail-copy .detail-number { grid-column: 1 / -1; }
.detail-copy h2 { font-size: clamp(36px, 5.1vw, 72px); }
.detail-copy > p:last-child { margin-top: 4px; }
.detail-photo {
  appearance: none;
  display: block;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  cursor: zoom-in;
}
.detail-photo img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 1306 / 734;
  object-fit: cover;
}
.detail-photo-wide { width: 100%; }
.detail-photo-inset {
  position: relative;
  width: min(58vw, 820px);
  margin: clamp(-28px, -2vw, -12px) 6vw 0 auto;
  border: clamp(8px, 1.2vw, 18px) solid var(--paper);
}
.detail-photo-right { margin-right: auto; margin-left: 7vw; }
.detail-pair {
  width: min(calc(100% - 40px), 1280px);
  margin-inline: auto;
  display: grid;
  grid-template-columns: 1.18fr .82fr;
  gap: clamp(18px, 3vw, 48px);
  align-items: end;
}
.detail-pair .detail-photo:last-child { margin-bottom: clamp(-76px, -5vw, -28px); }
.details-note {
  padding-top: 28px;
  border-top: 1px solid var(--line);
  color: var(--muted);
  font-size: 13px;
  line-height: 1.65;
}
.details-note p { margin: 0; }
.brand-story {
  padding: clamp(96px, 13vw, 176px) clamp(20px, 6vw, 96px);
  border-top: 1px solid var(--line);
  background: #e8e4da;
}
.brand-story-inner {
  width: min(100%, 1160px);
  margin-inline: auto;
}
.brand-story-lead {
  display: grid;
  grid-template-columns: minmax(0, 1.2fr) minmax(280px, .8fr);
  column-gap: clamp(48px, 9vw, 136px);
  align-items: end;
}
.brand-story-lead > p:only-of-type { align-self: end; margin: 0; }
.brand-story-lead h2 {
  grid-row: 1 / span 2;
  margin: 0;
  max-width: 12ch;
  font-size: clamp(42px, 6vw, 84px);
  font-weight: 720;
  line-height: 1;
  letter-spacing: -.04em;
  word-break: keep-all;
  text-wrap: balance;
}
.brand-story-lead blockquote {
  margin: 0;
  color: var(--sage);
  font-size: clamp(21px, 2.2vw, 30px);
  font-weight: 650;
  line-height: 1.45;
  word-break: keep-all;
}
.brand-story-lead > p {
  margin: 18px 0 0;
  color: var(--muted);
  font-size: 16px;
  line-height: 1.7;
}
.brand-story-chapters {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: clamp(28px, 5vw, 72px);
  margin-top: clamp(96px, 13vw, 168px);
  padding-top: 28px;
  border-top: 1px solid var(--line);
}
.brand-story-chapters article { min-width: 0; }
.brand-story-chapters h3 {
  margin: 0 0 20px;
  font-size: clamp(22px, 2vw, 30px);
  font-weight: 680;
  line-height: 1.3;
  letter-spacing: -.025em;
  word-break: keep-all;
}
.brand-story-chapters p {
  margin: 0;
  color: var(--muted);
  font-size: 16px;
  line-height: 1.8;
  word-break: keep-all;
}
.brand-story-chapters article:last-child {
  display: flex;
  align-items: flex-end;
}
.brand-story-chapters article:last-child p {
  color: var(--ink);
  font-size: clamp(18px, 1.7vw, 24px);
  font-weight: 620;
  line-height: 1.55;
}
.brand-story-caveat {
  margin-top: clamp(72px, 9vw, 112px);
  padding-top: 24px;
  border-top: 1px solid var(--line);
  color: var(--muted);
  font-size: 13px;
  line-height: 1.7;
}
.brand-story-caveat > p { max-width: 72ch; margin: 0; }
.brand-story-caveat details { margin-top: 14px; }
.brand-story-caveat summary {
  width: fit-content;
  min-height: 44px;
  display: flex;
  align-items: center;
  cursor: pointer;
  color: var(--ink);
  font-weight: 650;
}
.brand-story-caveat ul { margin: 8px 0 0; padding-left: 20px; }
.brand-story-caveat li + li { margin-top: 6px; }
.brand-story-caveat a { text-underline-offset: 4px; }
.booking-closed-note {
  margin: 14px 0 0;
  color: var(--muted);
  font-size: 14px;
  line-height: 1.6;
}
.photo-viewer {
  width: 100vw;
  max-width: none;
  height: 100dvh;
  max-height: none;
  margin: 0;
  padding: 0;
  border: 0;
  background: #171916;
  color: var(--paper);
}
.photo-viewer::backdrop { background: rgba(23,25,22,.92); }
.photo-viewer[open] { display: grid; grid-template-rows: 68px minmax(0,1fr); }
.photo-viewer-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  padding: 8px clamp(16px, 3vw, 44px);
}
.photo-viewer-bar p { margin: 0; font-size: 14px; }
.photo-viewer-close {
  min-width: 64px;
  min-height: 44px;
  border: 1px solid rgba(243,240,233,.5);
  border-radius: 2px;
  background: transparent;
  color: inherit;
  font: inherit;
  cursor: pointer;
}
.photo-viewer > img {
  width: 100%;
  height: 100%;
  min-height: 0;
  padding: 0 clamp(12px, 3vw, 44px) clamp(12px, 3vw, 44px);
  object-fit: contain;
}
.no-script {
  padding: 32px clamp(20px, 6vw, 96px) 48px;
  background: var(--paper);
  color: var(--muted);
  border-top: 1px solid var(--line);
}
@keyframes loader-indeterminate {
  from { transform: translateX(-105%); }
  to { transform: translateX(265%); }
}
.no-script p {
  margin: 0;
  max-width: 48ch;
  font-size: 14px;
  line-height: 1.65;
}
@media (max-width: 700px) {
  .site-header {
    height: var(--site-header-height);
    padding: 0 max(16px, env(safe-area-inset-right)) 0
      max(16px, env(safe-area-inset-left));
  }
  .desktop-nav { display: none; }
  .header-actions { margin-left: auto; gap: 6px; }
  .mobile-nav {
    position: relative;
    display: block;
  }
  .mobile-nav summary {
    width: 44px;
    height: 44px;
    display: grid;
    place-items: center;
    border: 1px solid var(--line);
    border-radius: 2px;
    color: var(--sage);
    cursor: pointer;
    list-style: none;
  }
  .mobile-nav summary::-webkit-details-marker { display: none; }
  .mobile-nav summary svg {
    width: 24px;
    height: 24px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.7;
    stroke-linecap: round;
  }
  .mobile-nav nav {
    position: fixed;
    z-index: 11;
    top: var(--site-header-height);
    right: 0;
    left: 0;
    padding: 8px max(16px, env(safe-area-inset-right)) 12px max(16px, env(safe-area-inset-left));
    border-bottom: 1px solid var(--line);
    background: var(--paper);
  }
  .mobile-nav nav a {
    min-height: 48px;
    display: flex;
    align-items: center;
    border-top: 1px solid var(--line);
    color: var(--ink);
    font-size: 15px;
    font-weight: 650;
    text-decoration: none;
  }
  .mobile-nav nav a:first-child { border-top: 0; }
}
@media (max-width: 600px) {
  .scroll-world {
    height: 700svh;
    min-height: 3600px;
  }
  .stage {
    height: calc(100svh - var(--site-header-height));
  }
  .morph-label {
    left: max(16px, env(safe-area-inset-left));
    bottom: calc(82px + env(safe-area-inset-bottom));
    font-size: 13px;
  }
  .status {
    left: max(16px, env(safe-area-inset-left));
    right: max(16px, env(safe-area-inset-right));
    bottom: calc(20px + env(safe-area-inset-bottom));
    transform: none;
    justify-content: center;
    text-align: center;
    white-space: normal;
  }
  .closing {
    padding-top: 44px;
  }
  .reservation summary {
    min-height: 56px;
  }
  .brand img { width: 58px; }
  .booking-cta { padding-inline: 12px; font-size: 13px; }
  .property-info { padding-inline: 16px; }
  .property-info-lead { display: block; }
  .property-info-lead h1 { font-size: clamp(40px, 12.5vw, 54px); }
  .property-info-summary { margin-top: 32px; }
  .property-info-caveat { margin-top: 28px; }
  .property-nav { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .property-nav a { padding-inline: 10px; }
  .property-facts { grid-template-columns: 1fr; margin-top: 64px; }
  .property-facts div { grid-template-columns: 72px 1fr; gap: 12px; padding: 18px 0; }
  .property-facts div:nth-child(odd),
  .property-facts div:nth-child(even) { padding-inline: 0; border-left: 0; }
  .property-sections { grid-template-columns: 1fr; gap: 52px; margin-top: 72px; }
  .property-section-number { margin-bottom: 16px; }
  .details-intro,
  .detail-copy,
  .details-note { width: calc(100% - 32px); }
  .details-intro { padding-bottom: 96px; }
  .details-intro h1 { font-size: clamp(42px, 14vw, 58px); }
  .detail-copy { display: block; margin-bottom: 36px; }
  .detail-copy h2 { font-size: clamp(36px, 11.5vw, 48px); }
  .detail-copy > p:last-child { margin-top: 22px; }
  .detail-chapter { margin-bottom: 128px; }
  .detail-photo-inset {
    width: calc(100% - 48px);
    margin: 12px 16px 0 auto;
    border-width: 0;
  }
  .detail-photo-right { margin-right: auto; margin-left: 16px; }
  .detail-pair {
    width: calc(100% - 32px);
    grid-template-columns: 1fr;
    gap: 16px;
  }
  .detail-pair .detail-photo:first-child { width: calc(100% - 34px); }
  .detail-pair .detail-photo:last-child { width: calc(100% - 34px); margin: 0 0 0 auto; }
  .brand-story { padding-inline: 16px; }
  .brand-story-lead { display: block; }
  .brand-story-lead h2 { font-size: clamp(42px, 13vw, 58px); }
  .brand-story-lead blockquote { margin-top: 44px; }
  .brand-story-chapters { grid-template-columns: 1fr; gap: 48px; margin-top: 88px; }
  .brand-story-chapters article:last-child { display: block; }
}
@media (prefers-reduced-motion: reduce) {
  .scroll-world {
    height: calc(100svh - var(--site-header-height));
    min-height: 620px;
  }
  .stage video {
    display: none !important;
  }
  .poster {
    visibility: visible !important;
  }
  .morph-label,
  .idle-arrow {
    display: none !important;
  }
}
.home-previews{padding:clamp(80px,10vw,150px) max(20px,calc((100vw - 1120px)/2));background:var(--paper)}.home-preview{display:grid;grid-template-columns:.8fr 1.2fr;gap:clamp(28px,6vw,80px);align-items:center;padding:70px 0;border-bottom:1px solid var(--line)}.home-preview:nth-child(even){grid-template-columns:1.2fr .8fr}.home-preview:nth-child(even) div{order:2}.home-preview img{display:block;width:100%;height:auto;aspect-ratio:16/10;object-fit:cover}.preview-kicker{margin:0 0 8px;color:var(--sage);font-weight:700}.home-preview h2,.home-location h2{margin:0;font-family:Asta,Pretendard,sans-serif;font-size:clamp(38px,5vw,66px);line-height:1.05}.home-preview p:not(.preview-kicker),.home-location>div>p:not(.preview-kicker){color:var(--muted)}.home-preview a,.location-detail-link{display:inline-flex;min-height:44px;align-items:center;margin-top:18px;color:var(--sage);font-weight:700}.home-location{padding-top:90px}.home-location>div{display:grid;grid-template-columns:.8fr 1.2fr;gap:40px;align-items:end}.home-location .neighborhood-map{margin-top:38px}.map-gesture-hint{display:none;margin:0;padding:8px 12px;color:var(--muted);font-size:12px}.neighborhood-map.compact .neighborhood-map-canvas{height:420px}
@media(max-width:700px){.home-previews{padding-inline:20px}.home-preview,.home-preview:nth-child(even){grid-template-columns:1fr;padding:58px 0}.home-preview:nth-child(even) div{order:0}.home-location{padding-top:64px}.home-location>div{display:block}.map-gesture-hint{display:block}.neighborhood-map.compact .neighborhood-map-canvas{height:340px}}
.property-community{padding:70px 0;border-bottom:1px solid var(--line)}
.property-community-head{max-width:720px}.property-community h2{margin:0;font-family:Asta,Pretendard,sans-serif;font-size:clamp(38px,5vw,66px);line-height:1.05}.property-community-head>p:last-child{margin:18px 0 0;color:var(--muted);line-height:1.7;word-break:keep-all}
.community-photo-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;margin-top:38px}.community-photo-grid figure{min-width:0;margin:0}.community-photo-grid .plan-open{overflow:hidden}.community-photo-grid .plan-open img{aspect-ratio:auto;object-fit:contain}.community-photo-grid figcaption{margin-top:10px;color:var(--muted);font-size:14px;line-height:1.6}
@media(max-width:700px){.property-community{padding:58px 0}.community-photo-grid{grid-template-columns:1fr;gap:30px;margin-top:30px}}
.admin-card{border:1px solid var(--line);padding:20px}.admin-card h2{font-size:18px}.admin-card dl{display:grid;grid-template-columns:100px 1fr;gap:8px;margin:16px 0}.admin-card dt{color:var(--muted)}.admin-card dd{margin:0;overflow-wrap:anywhere}
.admin-page{min-height:100svh}.admin-shell{width:min(100% - 32px,960px);margin:auto;padding:32px 0 64px}.admin-logo{width:64px;height:auto}.admin-shell h1{font-size:28px}.admin-shell form{display:grid;gap:16px}.admin-shell label{display:grid;gap:7px;font-weight:600}.admin-shell input,.admin-shell select{width:100%;min-height:46px;border:1px solid var(--line);background:#fff;color:var(--ink);padding:10px;font:inherit}.admin-shell button,.reservation button{min-height:46px;border:1px solid var(--sage);background:var(--sage);color:var(--paper);padding:10px 16px;font:inherit;font-weight:650;cursor:pointer}.reservation form{display:grid;gap:18px;margin-top:20px}.reservation label{display:grid;gap:7px}.reservation input:not([type=checkbox]){min-height:48px;border:1px solid var(--line);background:#fff;padding:10px;font:inherit}.consent{grid-template-columns:auto 1fr!important;align-items:start}.consent input{margin-top:4px}.privacy{font-size:13px;line-height:1.65;color:var(--muted)}.honeypot{position:absolute!important;left:-9999px!important}.reservation-list{display:grid;gap:16px;margin:24px 0}.reservation-list:empty{display:none}.reservation-card{border:1px solid var(--line);padding:20px}.reservation-card h2{font-size:18px}.reservation-card dl{display:grid;grid-template-columns:100px 1fr;gap:8px;margin:16px 0}.reservation-card dt{color:var(--muted)}.reservation-card dd{margin:0;overflow-wrap:anywhere}.actions{display:flex;flex-wrap:wrap;gap:8px}#dashboard>header{display:flex;justify-content:space-between;align-items:center}#filters{grid-template-columns:minmax(160px,260px) auto;align-items:end}

/* Reference plans: preserve the complete source sheet. */
.property-sections #housing-types{grid-column:1/-1}
.plan-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px;margin-top:28px}
.plan-sheet{margin:0;min-width:0}.plan-site,.plan-location{margin-top:28px}
.plan-open{display:block;width:100%;padding:0;border:1px solid var(--line);background:#fff;cursor:zoom-in}
.plan-open img{display:block;width:100%;height:auto;object-fit:contain}.plan-sheet figcaption{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 12px;margin-top:12px;font-size:14px;line-height:1.6;color:var(--muted)}
.plan-sheet figcaption strong{color:var(--ink);font-weight:700}.plan-sheet figcaption a{display:inline-flex;align-items:center;min-height:44px;margin-left:auto;color:var(--sage);font-weight:700;text-underline-offset:4px}
.original-plans{margin-top:40px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.original-plans summary{display:flex;align-items:center;justify-content:space-between;min-height:64px;font-weight:700;cursor:pointer;list-style:none}.original-plans summary::-webkit-details-marker{display:none}.original-plans summary::after{content:"+";font-size:22px;font-weight:400}.original-plans[open] summary::after{content:"−"}
.original-plan-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:32px 20px;padding:12px 0 40px}.original-plan-grid figcaption span{flex-basis:100%;overflow-wrap:anywhere;font-size:12px}
.plan-open:focus-visible,.plan-viewer button:focus-visible{outline:3px solid #b4bd90;outline-offset:3px}
body.plan-viewer-open{overflow:hidden}
.plan-viewer{width:100%;max-width:none;height:100dvh;max-height:none;margin:0;padding:0;border:0;background:#171916;color:var(--paper);overflow:hidden}
.plan-viewer[open]{display:grid;grid-template-rows:auto minmax(0,1fr)}
.plan-viewer::backdrop{background:#171916}
.plan-viewer-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px max(16px,env(safe-area-inset-right)) 12px max(16px,env(safe-area-inset-left))}
.plan-viewer-bar p{margin:0;font-size:14px;line-height:1.5;min-width:0;overflow-wrap:anywhere}
.plan-viewer-actions{display:flex;gap:8px;flex-shrink:0}
.plan-viewer button{min-height:44px;min-width:52px;padding:8px 12px;border:1px solid #8b9083;background:transparent;color:inherit;font:inherit;font-size:14px;cursor:pointer}
.plan-viewer-scroll{min-height:0;min-width:0;overflow:auto;overscroll-behavior:contain;padding:16px}
.plan-viewer-scroll img{display:block;width:100%;height:100%;object-fit:contain;margin:auto}
.plan-viewer.is-original .plan-viewer-scroll img{width:auto;max-width:none;height:auto;max-height:none;object-fit:contain;margin:0 auto}
@media(max-width:700px){.original-plan-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.plan-viewer-bar{flex-wrap:wrap}.plan-viewer-bar p{flex:1 1 100%}.plan-viewer-actions{margin-left:auto}.plan-viewer-scroll{padding:8px}}
@media(max-width:600px){.plan-grid,.original-plan-grid{grid-template-columns:1fr}.original-plan-grid{gap:28px}.plan-sheet figcaption a{flex-basis:100%;margin-left:0}}

.community-tabs{display:flex;gap:8px;margin-top:32px}.community-tabs button{min-height:44px;padding:8px 18px;border:1px solid var(--sage);background:transparent;color:var(--ink);font:inherit;font-weight:700;cursor:pointer}.community-tabs button[aria-pressed=true]{background:var(--sage);color:var(--paper)}.community-stage{max-width:920px;margin:16px 0 0}.community-stage .plan-open{display:block;overflow:hidden;width:100%;padding:0;border:0;background:transparent}.community-stage img{display:block;width:100%;height:auto;aspect-ratio:4/3;object-fit:contain;background:#e7e3da}.community-stage figcaption{padding-top:10px;color:var(--muted);font-size:14px}
@media(max-width:700px){body>.skip[href="#film"]{display:none}.home-previews{padding-top:48px;padding-bottom:48px}.home-previews .home-preview,.home-previews .home-preview:nth-child(even){padding:48px 0}.home-preview img{width:100%;height:auto}.home-preview.homes-preview img{width:100%;height:auto;aspect-ratio:4/3;object-fit:cover}.complex-preview img{width:100%;height:auto;object-fit:contain}.property-community{padding:48px 0}.community-photo-grid{display:none}.community-tabs{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-top:24px}.community-tabs button{padding-inline:6px}.community-stage{margin-top:12px}.home-previews .home-location{padding-top:48px}.home-location h2 br{display:none}}
