body.exteriors .site-path{display:none}
body.exteriors #main{max-width:none;padding:0}
body.exteriors .site-header{position:absolute;inset:0 0 auto}
/* The home hero shares this scene full-bleed under the floating header. */
body.page-home .site-path{display:none}
body.page-home .site-header{position:absolute;inset:0 0 auto}
body.page-home #main{max-width:none;width:100%;padding:0}
body.page-home #main > section{max-width:var(--content);margin:0 auto;padding-inline:var(--gutter)}
body.page-home #main > section.hero-3d{max-width:none;padding-inline:0}
.exterior-scene{position:relative;margin:0!important}
.exterior-stage{height:100svh;min-height:0;max-height:100svh;border:0}
.hero-3d .exterior-stage{height:100svh}
.exterior-picture{position:relative;width:100%;height:100%;min-height:0;overflow:hidden}
#view-canvas{display:block;width:100%;height:100%;touch-action:none;cursor:grab}
#view-canvas:active{cursor:grabbing}
.hero-3d #view-canvas{touch-action:pan-y}
#world-labels{position:absolute;inset:0;pointer-events:none;overflow:hidden;z-index:1}
#world-labels svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
#world-labels path{fill:none;stroke:currentColor;stroke-width:1;vector-effect:non-scaling-stroke}
#world-labels circle{fill:var(--bg);stroke:currentColor;stroke-width:1.5}
#world-labels g.upper{color:var(--green)}
#world-labels g.basement{color:var(--pink)}
.floor-label{position:absolute;left:0;top:0;margin:0;max-width:none;min-height:44px;padding:8px 12px;border:0;font:500 14px/1.6 var(--mono);white-space:nowrap;color:var(--paper);background:var(--bg);pointer-events:auto;cursor:pointer}
.floor-label .bracket{color:currentColor}
.floor-label:hover .bracket,.floor-label:focus-visible .bracket{color:var(--paper)}
.floor-label:focus-visible{outline:1px solid currentColor;outline-offset:2px}
.floor-label[data-state=through] .bracket,.floor-label[data-state=edge] .bracket{color:var(--muted)}
#view-status{position:absolute;inset:50% 24px auto;margin:0;text-align:center;max-width:none;color:var(--muted);font-size:12px;overflow-wrap:anywhere;pointer-events:none}
.interior-exit{position:absolute;z-index:2;left:var(--gutter);bottom:max(28px,env(safe-area-inset-bottom));display:inline-flex;align-items:center;gap:14px;min-height:54px;max-width:calc(100% - 2 * var(--gutter));padding:12px 18px;color:var(--green);background:var(--bg);border:1px solid currentColor;font:500 13px/1.4 var(--mono);white-space:nowrap}
.interior-exit svg{width:24px;height:24px;flex:none}
.interior-exit kbd{color:var(--muted);font-size:10px;margin-left:14px;padding-left:14px;border-left:1px solid var(--edge)}
.interior-exit .exit-arrow{transition:transform 180ms cubic-bezier(.16,1,.3,1)}
.interior-exit:hover,.interior-exit:focus-visible{color:var(--bg);background:var(--green)}
.interior-exit:hover kbd,.interior-exit:focus-visible kbd{color:var(--bg);border-color:var(--bg)}
.interior-exit:hover .exit-arrow,.interior-exit:focus-visible .exit-arrow{transform:translateX(-3px)}
.interior-exit:focus-visible{outline:2px solid var(--yellow);outline-offset:4px}
.interior-exit:disabled{opacity:.6;cursor:wait}
@media(max-width:700px){
 .floor-label{font-size:13px;padding:8px 10px}
 .interior-exit{bottom:max(22px,env(safe-area-inset-bottom));gap:12px;min-height:52px;padding:12px 16px;font-size:12px}
 .interior-exit kbd{display:none}
}
