.spatial-section{background:var(--sp-bg);color:var(--sp-ink);padding:100px 0 42px;scroll-margin-top:80px}.spatial-intro{padding:0 6.4% 65px;display:flex;align-items:end;gap:9%;position:relative}.spatial-intro .eyebrow{font-size:9px;letter-spacing:.18em;margin-bottom:25px}.spatial-intro h2{font-size:clamp(65px,6vw,110px);line-height:.92;font-weight:400;letter-spacing:-.03em}.spatial-intro>p{font-size:13px;line-height:2;padding-bottom:6px}.spatial-seal{margin-left:auto;font-family:var(--display);font-size:50px;width:108px;height:108px;border:1px solid var(--sp-mute);border-radius:100%;display:flex;align-items:center;justify-content:center;gap:6px;transform:rotate(-15deg)}.spatial-seal>span{font-family:var(--body);font-size:28px}.spatial-atlas{display:grid;grid-template-columns:minmax(0,1fr) 300px;border-block:1px solid var(--sp-line);min-height:700px}.spatial-main{background:radial-gradient(ellipse at 48% 45%,var(--sp-surface),var(--sp-bg));min-width:0;display:flex;flex-direction:column}.spatial-toolbar{display:flex;align-items:center;justify-content:space-between;padding:18px 30px;gap:12px;position:relative;z-index:2}.spatial-toolbar button,.spatial-bottom button{font-size:10px;min-height:40px;padding:0 15px;white-space:nowrap}.spatial-modes{display:flex;border:1px solid var(--sp-line);border-radius:30px;padding:3px;gap:2px}.spatial-modes button{border-radius:24px;min-height:36px}.spatial-modes [aria-pressed=true]{background:var(--sp-ink);color:var(--sp-surface)}.spatial-stage{position:relative;flex:1;min-height:560px;overflow:hidden;outline-offset:-5px}.spatial-stage canvas{display:block;width:100%;height:100%;touch-action:none;cursor:grab}.spatial-stage canvas:active{cursor:grabbing}#model-canvas,#model-labels,#plan-stage{position:absolute;inset:0}#model-labels{pointer-events:none;overflow:hidden}.model-marker{position:absolute;left:0;top:0;transform:translate(-50%,-50%);border-radius:50%;width:30px;height:30px;background:color-mix(in srgb,var(--sp-ink) 93%,transparent);color:var(--sp-surface);border:1px solid var(--sp-surface);box-shadow:0 2px 8px color-mix(in srgb,var(--sp-ink) 13%,transparent);pointer-events:auto;font-size:9px;display:grid;place-items:center}.model-marker:hover,.model-marker[aria-pressed=true]{background:var(--sp-accent);color:var(--sp-ink);outline:4px solid color-mix(in srgb,var(--sp-glass) 53%,transparent)}.model-marker[hidden]{display:none}.spatial-loading{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:15px;background:color-mix(in srgb,var(--sp-glass) 90%,transparent);z-index:1}.spatial-loading[hidden]{display:none}.spatial-loading p{font-family:var(--display);font-size:34px}.spatial-loading button{text-decoration:underline;padding:15px}.spatial-bottom{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:13px 25px;border-top:1px solid var(--sp-line);min-height:65px}.spatial-bottom p{font-size:7px;letter-spacing:.12em;max-width:230px;line-height:1.8}.spatial-options{display:flex;gap:3px}.spatial-bottom button{padding:0 12px}.spatial-options [aria-pressed=true]{background:var(--sp-line);border-radius:20px}.spatial-sidebar{background:var(--sp-ink);color:var(--sp-bg);padding:28px 24px;display:flex;flex-direction:column;max-height:760px;overflow:auto;scrollbar-width:thin;scrollbar-color:var(--sp-mute) transparent}.spatial-side-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:30px;gap:8px}.spatial-side-top .eyebrow{font-size:8px;letter-spacing:.15em;color:var(--sp-line)}.spatial-side-top button{font-size:9px;text-decoration:underline;min-height:28px}.spatial-sidebar h3{font-size:37px;line-height:1.03;font-weight:400;letter-spacing:-.015em}.spatial-sidebar p:not(.eyebrow){font-size:10px;line-height:1.8;color:var(--sp-line);margin:15px 0 24px}.spatial-sidebar #spatial-room-list{margin-top:8px}.spatial-room-item{display:flex;align-items:center;width:100%;gap:18px;border-top:1px solid color-mix(in srgb,var(--sp-mute) 38%,transparent);text-align:left;min-height:37px;font-size:10px;padding:7px 0}.spatial-room-item span{font-size:8px;color:var(--sp-mute)}.spatial-room-item[aria-pressed=true],.spatial-room-item:hover{color:var(--sp-accent)}.spatial-room-item[aria-pressed=true]:after{content:'↗';margin-left:auto}#spatial-open-render{display:block;width:100%;position:relative;margin-bottom:20px;overflow:hidden}#spatial-open-render img{width:100%;aspect-ratio:1.4;object-fit:cover;display:block}#spatial-open-render>span{position:absolute;bottom:0;left:0;right:0;background:linear-gradient(transparent,color-mix(in srgb,var(--sp-ink) 85%,transparent));padding:28px 13px 12px;text-align:left;font-size:9px}#spatial-room-number{font-size:8px;letter-spacing:.15em;color:var(--sp-mute);margin:0 0 10px}.spatial-style-link{font-size:8px;line-height:1.8;text-align:left;border-bottom:1px solid color-mix(in srgb,var(--sp-mute) 31%,transparent);padding-bottom:15px;margin-bottom:10px}#spatial-room-card p:not(.eyebrow){margin-bottom:12px}.spatial-caption{display:flex;justify-content:space-between;padding:25px 6.4% 10px;gap:35px;align-items:start}.spatial-caption p{font-size:10px;line-height:1.8;max-width:510px;color:var(--sp-mute)}.spatial-caption a{font-size:11px;border-bottom:1px solid var(--sp-mute);padding:4px 0 10px;display:flex;gap:35px;white-space:nowrap}.spatial-disclosure{padding:0 6.4%;font-size:8px;line-height:1.8;color:var(--sp-mute);max-width:1000px}.spatial-atlas:fullscreen{background:var(--sp-bg);height:100dvh;width:100vw;grid-template-columns:minmax(0,1fr) 300px}.spatial-atlas:fullscreen .spatial-sidebar{max-height:none}.spatial-atlas:fullscreen .spatial-stage{min-height:0}#plan-stage{padding:0 16px;overflow:hidden;touch-action:none;cursor:grab}#plan-sheet{height:100%;width:100%;position:relative;transform-origin:50% 50%}#plan-sheet img{height:100%;width:100%;object-fit:contain;display:block;pointer-events:none;user-select:none}#plan-markers{position:absolute;inset:0}.plan-marker{position:absolute;transform:translate(-50%,-50%);width:32px;height:32px;border-radius:50%;background:transparent;font-size:0}.plan-marker:hover,.plan-marker[aria-pressed=true]{outline:3px solid var(--sp-accent);background:color-mix(in srgb,var(--sp-accent) 15%,transparent)}.spatial-section [hidden]{display:none!important}
@media(min-width:1700px){.spatial-atlas{grid-template-columns:minmax(0,1fr) 360px}.spatial-sidebar{padding:35px 36px}.spatial-stage{min-height:660px}.spatial-sidebar{max-height:850px}}
@media(max-width:1100px){.spatial-atlas{grid-template-columns:minmax(0,1fr) 260px}.spatial-sidebar{padding:25px 19px}.spatial-stage{min-height:530px}.spatial-toolbar{padding:15px}.spatial-bottom{padding:12px}.spatial-bottom p{max-width:125px;font-size:6px}.spatial-bottom button{padding:0 9px}.desktop-nav{gap:13px}.desktop-nav a{font-size:9px}.spatial-seal{width:85px;height:85px;font-size:40px}}
@media(max-width:760px){.spatial-section{padding-top:65px}.spatial-intro{display:block;padding:0 6% 35px}.spatial-intro h2{font-size:65px}.spatial-intro>p{font-size:11px;margin-top:24px;line-height:1.8}.spatial-seal{position:absolute;right:7%;top:52px;width:65px;height:65px;font-size:29px}.spatial-seal>span{font-size:18px}.spatial-atlas,.spatial-atlas:fullscreen{display:flex;flex-direction:column;min-height:0}.spatial-toolbar{padding:12px;gap:5px}.spatial-toolbar button{font-size:9px;padding:0 11px}.spatial-stage{height:440px;min-height:440px;flex:none}.spatial-bottom{flex-wrap:wrap;justify-content:center;padding:8px 12px;gap:0}.spatial-bottom p{max-width:100%;width:100%;text-align:center;font-size:6px}.spatial-options{justify-content:center}.spatial-sidebar{max-height:none;padding:25px 6%;display:block}.spatial-side-top{margin-bottom:20px}.spatial-sidebar h3{font-size:34px}.spatial-sidebar #spatial-room-list{display:grid;grid-template-columns:1fr 1fr;gap:0 20px}.spatial-room-item{font-size:9px;gap:10px;min-height:43px}.spatial-sidebar p:not(.eyebrow){margin-bottom:18px}#spatial-room-intro h3 br{display:none}#spatial-room-intro p{margin-top:10px}#spatial-room-card{display:grid;grid-template-columns:45% 1fr;column-gap:20px}#spatial-open-render{grid-row:1/5;height:100%;margin-bottom:20px}#spatial-open-render img{height:100%;min-height:180px;object-fit:cover}#spatial-room-card h3{font-size:28px}#spatial-room-copy{font-size:9px}.spatial-style-link{font-size:7px}#spatial-room-number{margin-top:2px}.spatial-caption{display:block;padding:25px 6% 10px}.spatial-caption p{font-size:9px}.spatial-caption a{margin-top:20px;width:100%;justify-content:space-between}.spatial-disclosure{padding:0 6%;font-size:7px;margin-top:15px}.spatial-atlas:fullscreen{overflow:auto}.spatial-atlas:fullscreen .spatial-stage{height:62dvh;min-height:340px}.model-marker{width:27px;height:27px;font-size:8px}}
@media(max-width:760px){.spatial-seal{display:none}}
@media(min-width:761px){.spatial-atlas{height:min(760px,calc(100svh - 80px));min-height:600px}.spatial-stage{min-height:0}.spatial-sidebar{max-height:none;min-height:0}.spatial-atlas:fullscreen{height:100dvh;min-height:0}}
.spatial-section{--display:'Cormorant Garamond',Georgia,serif}.spatial-intro>p{max-width:360px}.spatial-toolbar button,.spatial-bottom button{font-size:11px}.spatial-bottom p{font-size:9px;letter-spacing:.06em}.spatial-side-top .eyebrow,.spatial-style-link,#spatial-room-number{font-size:10px}.spatial-sidebar p:not(.eyebrow),.spatial-room-item{font-size:12px}.spatial-room-item span{font-size:10px}.spatial-caption p{font-size:12px}.spatial-disclosure{font-size:11px}.spatial-seal{display:none}.spatial-loading p{padding:0 20px;text-align:center}
@media(max-width:760px){.spatial-intro>p{font-size:13px}.spatial-bottom p{font-size:9px}.spatial-toolbar button{font-size:10px}.spatial-room-item{font-size:11px}.spatial-caption p{font-size:12px}.spatial-disclosure{font-size:10px}.spatial-style-link{font-size:10px}#spatial-room-copy{font-size:11px}.spatial-sidebar #spatial-room-list{gap:0 16px}.spatial-stage{height:400px;min-height:400px}}

.spatial-hint{position:absolute;left:50%;top:50%;z-index:20;transform:translate(-50%,-50%);padding:12px 18px;border-radius:999px;background:rgba(20,20,18,.74);color:#fff;font:500 13px/1.2 var(--label);letter-spacing:.02em;pointer-events:none;opacity:0;transition:opacity .35s var(--ease);white-space:nowrap}
.spatial-hint.is-on{opacity:1}

/* ---------- clear plan view ---------- */
#plan-stage{background:var(--sp-surface)}
#plan-sheet{--pz:1}
.plan-drawing{position:absolute;inset:0}
.plan-drawing svg{width:100%;height:100%;display:block}
.plan-drawing .p-wall{stroke:var(--sp-ink);stroke-width:1.5}
.plan-drawing .p-furn{stroke:color-mix(in srgb,var(--sp-ink) 42%,transparent);stroke-width:.7}
.plan-drawing .p-plant{stroke:color-mix(in srgb,#6f7a3e 70%,var(--sp-ink));stroke-width:.55;opacity:.8}
.plan-drawing .zone{fill:color-mix(in srgb,var(--sp-ink) 4%,transparent);stroke:none;transition:fill .35s var(--ease);cursor:pointer}
.plan-drawing .zone.out{fill:color-mix(in srgb,#7d8a45 10%,transparent)}
.plan-drawing .zone[data-zone="planted"]{cursor:default}
.plan-drawing .zone.is-hover{fill:color-mix(in srgb,var(--sp-accent) 14%,transparent)}
.plan-drawing .zone.is-on{fill:color-mix(in srgb,var(--sp-accent) 24%,transparent)}
.plan-drawing svg path:not(.zone){vector-effect:non-scaling-stroke;pointer-events:none}
.plan-drawing.no-furn .p-furn,.plan-drawing.no-furn .p-plant{display:none}
.plan-missing{position:absolute;inset:0;display:grid;place-items:center;margin:0;color:var(--sp-mute)}
.plan-marker{position:absolute;display:inline-flex;align-items:center;gap:7px;width:auto;height:auto;padding:5px 11px 5px 5px;border-radius:999px;background:color-mix(in srgb,var(--sp-surface) 92%,transparent);color:var(--sp-ink);border:1px solid color-mix(in srgb,var(--sp-ink) 22%,transparent);font:500 12px/1 var(--label);letter-spacing:.01em;white-space:nowrap;transform:translate(-50%,-50%) scale(calc(1 / var(--pz)));box-shadow:0 6px 18px -10px rgba(0,0,0,.35);transition:background .3s,color .3s,border-color .3s,box-shadow .3s;outline:0}
.plan-marker b{display:grid;place-items:center;width:22px;height:22px;border-radius:50%;background:var(--sp-ink);color:var(--sp-surface);font:600 10px/1 var(--label);font-variant-numeric:tabular-nums}
.plan-marker.is-out{border-style:dashed}
.plan-marker.is-out b{background:transparent;color:var(--sp-ink);border:1px solid var(--sp-ink)}
.plan-marker:hover,.plan-marker:focus-visible{border-color:var(--sp-accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--sp-accent) 22%,transparent)}
.plan-marker[aria-pressed=true]{background:var(--sp-accent);color:#fff;border-color:var(--sp-accent);outline:0}
.plan-marker[aria-pressed=true] b{background:#fff;color:var(--sp-accent);border-color:#fff}
.plan-key{position:absolute;left:16px;bottom:14px;display:flex;flex-wrap:wrap;gap:8px 18px;align-items:center;font:500 11px/1 var(--label);letter-spacing:.04em;color:var(--sp-mute);pointer-events:none}
.plan-key span{display:inline-flex;align-items:center;gap:7px}
.plan-key .k-in::before,.plan-key .k-out::before{content:"";width:12px;height:12px;border-radius:50%;background:var(--sp-ink)}
.plan-key .k-out::before{background:transparent;border:1px dashed var(--sp-ink)}
.plan-scale{flex-direction:column;align-items:flex-start!important;gap:5px!important}
.plan-scale i{display:block;height:6px;border:1px solid var(--sp-ink);border-top:0;min-width:10px}
@media (max-width:900px){
  .plan-marker span{display:none}
  .plan-marker{padding:3px;gap:0}
  .plan-marker[aria-pressed=true] span{display:inline;padding:0 8px 0 6px}
  .plan-key .k-note{display:none}
}
#plan-sheet{height:calc(100% - 46px)}
.plan-key{bottom:12px}

.plan-marker i{font-style:normal;margin-left:7px;padding-left:7px;border-left:1px solid color-mix(in srgb,currentColor 30%,transparent);opacity:.75;font-variant-numeric:tabular-nums}
.spatial-room-area{margin:-4px 0 12px;font:500 13px/1.4 var(--label);letter-spacing:.02em;color:var(--sp-accent);font-variant-numeric:tabular-nums}
.spatial-room-area:empty{display:none}
.spatial-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:18px 0 6px;padding:14px 0;border-block:1px solid color-mix(in srgb,currentColor 18%,transparent)}
.spatial-stats div{display:grid;gap:4px}
.spatial-stats dt{font:600 9px/1 var(--label);letter-spacing:.2em;text-transform:uppercase;opacity:.65}
.spatial-stats dd{margin:0;font:400 clamp(20px,1.8vw,26px)/1 var(--display);font-variant-numeric:tabular-nums}
.spatial-stats-note{font-size:11px!important;opacity:.6;margin:0 0 14px!important}
.plan-marker i{display:none}
.plan-marker:hover i,.plan-marker:focus-visible i,.plan-marker[aria-pressed=true] i{display:inline}
.plan-marker:hover,.plan-marker[aria-pressed=true]{z-index:3}
/* ---- roof level: the proposed roof terrace drawn over a ghost of the floor below ---- */
.plan-level{position:absolute;inset:0;transition:opacity .6s var(--ease),transform .8s var(--ease),filter .6s var(--ease)}
.plan-level svg{width:100%;height:100%;display:block}
.plan-level-roof{opacity:0;transform:translateY(-18px) scale(1.015);pointer-events:none}
#plan-sheet[data-level=roof] .plan-level-main{opacity:.13;filter:grayscale(1);pointer-events:none}
#plan-sheet[data-level=roof] .plan-level-roof{opacity:1;transform:none;pointer-events:auto}
.roof-svg path:not(.zone),.roof-svg circle,.roof-svg rect,.roof-svg line{vector-effect:non-scaling-stroke}
.roof-svg .zone.svc{fill:color-mix(in srgb,var(--sp-ink) 5%,transparent);cursor:default}
.roof-svg .r-boards{stroke:color-mix(in srgb,#b39c78 80%,var(--sp-ink));stroke-width:.5;fill:none;opacity:.55}
.roof-svg .r-water{fill:color-mix(in srgb,#9fc8cc 85%,var(--sp-surface));stroke:var(--sp-ink);stroke-width:1.3}
.roof-svg .rip{fill:none;stroke:#fff;stroke-width:.9;opacity:.75}
.roof-svg .pst{stroke:var(--sp-ink);stroke-width:.7}
.roof-svg .r-hatch{stroke:color-mix(in srgb,var(--sp-ink) 38%,transparent);stroke-width:.6;fill:none}
.roof-svg .r-plant{fill:color-mix(in srgb,#6f7a3e 30%,transparent);stroke:color-mix(in srgb,#6f7a3e 80%,var(--sp-ink));stroke-width:.6}
.roof-svg .r-canopy{fill:none;stroke:var(--sp-ink);stroke-width:1;stroke-dasharray:6 4}
.roof-svg .r-slats{stroke:var(--sp-ink);stroke-width:.4;opacity:.3}
.roof-svg .r-stair{stroke:var(--sp-ink);stroke-width:.6}
.roof-svg .r-arrow{stroke:var(--sp-accent);stroke-width:1.4;fill:none}
.roof-svg .f{fill:color-mix(in srgb,var(--sp-surface) 70%,#fff);stroke:color-mix(in srgb,var(--sp-ink) 62%,transparent);stroke-width:.8}
.roof-svg .r-wall{fill:none;stroke:var(--sp-ink);stroke-width:1.6}
.roof-svg .r-parapet{fill-rule:evenodd;fill:var(--sp-ink)}
.plan-drawing.no-furn .roof-svg .f{display:none}
.plan-marker.is-roof{display:none}
#plan-sheet[data-level=roof] .plan-marker{display:none}
#plan-sheet[data-level=roof] .plan-marker.is-roof{display:inline-flex}
.plan-marker.is-svc{pointer-events:none;background:transparent;border-color:transparent;box-shadow:none;color:var(--sp-mute)}
.plan-marker.is-svc b{display:none}
.plan-marker.is-svc span{display:inline!important}
.plan-marker.is-svc i{display:inline!important}
.plan-roof-note{position:absolute;top:14px;left:16px;display:none;align-items:center;gap:8px;padding:7px 12px;border:1px solid color-mix(in srgb,var(--sp-accent) 55%,transparent);border-radius:999px;background:color-mix(in srgb,var(--sp-surface) 90%,transparent);font:600 9.5px/1 var(--label);letter-spacing:.16em;text-transform:uppercase;color:var(--sp-accent);pointer-events:none;z-index:4}
.plan-roof-note::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}
#plan-stage[data-level=roof] .plan-roof-note{display:inline-flex}
#plan-stage[data-level=roof] .plan-key .k-in{display:none}
.spatial-room-group{margin:16px 0 6px;padding-top:12px;border-top:1px solid color-mix(in srgb,currentColor 16%,transparent);font:600 9px/1.4 var(--label);letter-spacing:.18em;text-transform:uppercase;opacity:.6}
.spatial-roof-line{font-size:11px!important;opacity:.75;margin:-6px 0 14px!important}
.spatial-roof-line button{all:unset;cursor:pointer;border-bottom:1px solid currentColor}
@media(max-width:760px){.plan-roof-note{top:10px;left:10px;font-size:8.5px}}
.spatial-room-group{grid-column:1/-1}
.spatial-stats dd{white-space:nowrap;font-size:clamp(18px,1.55vw,24px)}
@media(max-width:760px){.plan-marker.is-svc{display:none!important}}
