/* Focused building explorer: a compact toolbar around an unobstructed canvas. */
.p3d-root.p3d-focused{height:100vh;height:100dvh;overflow:hidden}
.p3d-focused .p3d-header,.p3d-focused .p3d-rail,.p3d-focused .p3d-pin,.p3d-focused .p3d-nav,.p3d-focused .p3d-isopanel,.p3d-focused .p3d-mobile-dock,.p3d-focused .p3d-rtab,.p3d-focused .p3d-hint,.p3d-focused .p3d-sunctl,.p3d-focused #p3d-zen{display:none!important}
.p3d-focused .p3d-main{display:flex;flex-direction:column;flex:1;min-width:0;min-height:0;position:relative;background:var(--gp-bg);color:var(--gp-ink)}
.p3d-focused .p3d-stage-wrap{position:relative;flex:1 1 0;min-width:0;min-height:0;width:100%;height:auto;margin:0;overflow:hidden}
.p3d-focused .p3d-stage-wrap canvas{display:block}
.p3d-focused .gp-focus-controls{position:relative;z-index:50;flex:0 0 auto;display:grid;grid-template-columns:minmax(240px,1fr) minmax(440px,1.6fr) auto;align-items:center;gap:24px;width:100%;box-sizing:border-box;padding:12px 24px;border:0;border-bottom:1px solid var(--gp-line);border-radius:0;background:var(--gp-card);color:var(--gp-ink);box-shadow:0 3px 16px rgba(20,49,42,.035)}
.gp-focus-head{display:flex;align-items:center;gap:12px;min-width:0}
.gp-focus-identity{flex:1;min-width:0}
.gp-focus-eyebrow{display:flex;align-items:center;flex-wrap:wrap;gap:6px;margin-bottom:3px;font-size:12px;line-height:1.3;font-weight:500;color:var(--gp-muted)}
.gp-focus-controls h1{margin:0;color:var(--gp-navy);font-family:var(--gp-font);font-size:17px;font-weight:700;line-height:1.35;overflow-wrap:anywhere}
.gp-focus-demo{padding-left:6px;border-left:1px solid var(--gp-line);font-size:11px;color:var(--gp-muted)}
.gp-focus-controls p,.gp-focus-summary p{margin:8px 0;color:var(--gp-muted);font-size:14px;line-height:1.5}
.gp-focus-controls select,.gp-focus-controls button,.gp-focus-summary button,.gp-focus-detail{min-height:44px;box-sizing:border-box;border:1px solid var(--gp-line);border-radius:10px;background:var(--gp-card);color:var(--gp-navy);padding:10px 12px;font:inherit;font-size:14px;line-height:1.35;text-decoration:none;cursor:pointer;touch-action:manipulation}
.gp-focus-controls button,.gp-focus-summary button{transition:background-color .15s,border-color .15s}
.gp-focus-controls button:hover:not(:disabled),.gp-focus-summary button:hover:not(:disabled){background:var(--gp-tint-2);border-color:var(--gp-primary)}
.gp-focus-controls button:disabled,.gp-focus-summary button:disabled,.gp-focus-tools button:disabled,.gp-focus-recenter:disabled{opacity:.4;cursor:default}
.gp-focus-head>button{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;gap:6px;min-width:44px;padding:10px;border-color:transparent;background:transparent;font-size:12px;font-weight:600}
.gp-focus-head>button svg{flex:none;width:18px;height:18px}
.gp-focus-head>button span{display:none}
.gp-focus-head>button[aria-expanded=true]{background:var(--gp-tint-2);border-color:var(--gp-line)}
.gp-focus-project{display:inline-flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;color:var(--gp-navy);font-size:14px;font-weight:600;text-decoration:none}
.gp-focus-head .gp-focus-project{flex:none;border:1px solid var(--gp-line);border-radius:10px;background:var(--gp-card)}
.gp-focus-fields{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);gap:18px;min-width:0}
.gp-focus-fields>div{min-width:0}
.gp-focus-controls label{display:block;margin:0 0 5px;color:var(--gp-muted);font-size:12px;font-weight:600;line-height:1.3}
.gp-focus-stepper{display:grid;grid-template-columns:44px minmax(0,1fr) 44px;gap:4px;padding:2px;border:1px solid var(--gp-line);border-radius:12px;background:#fff}
.gp-focus-stepper .gp-focus-step{display:grid;place-items:center;min-width:44px;padding:0;border-color:transparent;border-radius:8px;background:var(--gp-bg)}
.gp-focus-controls select{width:100%;min-width:0;padding:8px 4px;border-color:transparent;border-radius:6px;background:#fff;color:var(--gp-navy);font-size:16px;font-weight:600;font-variant-numeric:tabular-nums;text-overflow:ellipsis}
.gp-focus-apartments{position:relative;align-self:end;margin:0 0 2px;min-width:0}
.gp-focus-apartments>summary{display:flex;align-items:center;justify-content:center;gap:8px;min-height:44px;box-sizing:border-box;padding:10px 12px;border:1px solid var(--gp-line);border-radius:10px;color:var(--gp-primary);background:var(--gp-card);font-size:13px;line-height:1.35;font-weight:600;list-style:none;cursor:pointer;touch-action:manipulation}
.gp-focus-apartments>summary::-webkit-details-marker{display:none}
.gp-focus-apartments>summary::after{content:'⌄';font-size:17px;line-height:1;flex:none}
.gp-focus-apartments[open]>summary{background:var(--gp-tint-2);border-color:var(--gp-primary)}
.gp-focus-apartments[open]>summary::after{transform:rotate(180deg)}
.gp-focus-cards{position:absolute;z-index:55;top:calc(100% + 12px);right:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;box-sizing:border-box;width:352px;max-width:calc(100vw - 24px);max-height:min(52dvh,400px);overflow:auto;overscroll-behavior:contain;padding:12px;border:1px solid var(--gp-line);border-radius:14px;background:var(--gp-card);box-shadow:0 14px 40px rgba(20,49,42,.14);scrollbar-width:thin}
.gp-focus-cards .gp-focus-card{position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:5px;min-width:0;padding:12px;text-align:left;font-size:13px;background:#fff}
.gp-focus-card strong{font-size:14px;font-variant-numeric:tabular-nums;line-height:1.4}
.gp-focus-card-state{color:#17684b;font-size:12px;font-weight:600}
.gp-focus-card[data-status=sold] .gp-focus-card-state{color:#855149}
.gp-focus-card[data-status=reserved] .gp-focus-card-state{color:#815b12}
.gp-focus-cards .gp-focus-card[aria-pressed=true]{background:#e8f8fa;border-color:#0891b2;box-shadow:inset 0 0 0 1px #0891b2}
.gp-focus-card-selected{visibility:hidden;color:#076579;font-size:12px;font-weight:700}
.gp-focus-card[aria-pressed=true] .gp-focus-card-selected{visibility:visible}
.gp-focus-extra{display:none;position:absolute;z-index:56;top:calc(100% + 8px);right:24px;box-sizing:border-box;width:320px;max-width:calc(100vw - 24px);max-height:calc(100dvh - 220px);overflow:auto;overscroll-behavior:contain;padding:16px;border:1px solid var(--gp-line);border-radius:14px;background:var(--gp-card);box-shadow:0 14px 40px rgba(20,49,42,.14);scrollbar-width:thin}
.gp-focus-controls.expanded .gp-focus-extra{display:block}
.gp-focus-extra>button{width:100%;margin-top:8px}
.gp-focus-modes{display:grid;grid-template-columns:1fr 1fr;gap:4px;margin:0;padding:4px;border-radius:12px;background:var(--gp-bg)}
.gp-focus-modes button{border-color:transparent;background:transparent;font-size:13px;font-weight:600}
.gp-focus-modes button[aria-pressed=true]{border-color:var(--gp-line);background:#fff;box-shadow:0 1px 4px rgba(20,49,42,.05)}
.gp-focus-floor-info{min-height:20px;font-variant-numeric:tabular-nums}
.gp-focus-help{margin-top:8px;border-top:1px solid var(--gp-line)}
.gp-focus-help summary{display:flex;align-items:center;min-height:44px;color:var(--gp-primary);font-size:14px;font-weight:600;cursor:pointer}
.gp-focus-help p{font-size:13px}
.gp-focus-tools{position:absolute;z-index:4;bottom:12px;left:50%;transform:translateX(-50%);display:grid;grid-template-columns:repeat(5,44px);gap:6px;padding:8px;border:1px solid var(--gp-line);border-radius:14px;background:var(--gp-card);box-shadow:0 4px 20px rgba(20,49,42,.08)}
.gp-focus-camera-caption{grid-column:1/-1;text-align:center;font-size:11px;color:var(--gp-muted);line-height:1.2;letter-spacing:.01em}
.gp-focus-tools button,.gp-focus-expand,.gp-focus-recenter{display:inline-flex;align-items:center;justify-content:center;min-height:44px;min-width:44px;box-sizing:border-box;border:1px solid var(--gp-line);border-radius:10px;background:var(--gp-card);color:var(--gp-navy);cursor:pointer;touch-action:manipulation}
.gp-focus-tools button{padding:0;border-color:transparent;background:var(--gp-bg)}
.gp-focus-tools button:hover:not(:disabled),.gp-focus-expand:hover:not(:disabled),.gp-focus-recenter:hover:not(:disabled){border-color:var(--gp-primary);background:var(--gp-tint-2)}
.gp-focus-stage-bar{position:absolute;z-index:4;top:12px;left:16px;right:16px;display:flex;align-items:start;justify-content:flex-end;gap:8px;pointer-events:none}
.gp-focus-expand,.gp-focus-recenter{flex:none;gap:7px;padding:8px 12px;font:inherit;font-size:13px;font-weight:600;pointer-events:auto}
.gp-focus-recenter{margin-right:auto}
.gp-focus-context{margin:0 auto 0 0;padding:10px 12px;border:1px solid var(--gp-line);border-radius:10px;background:var(--gp-card);color:var(--gp-navy);font-size:13px;line-height:1.4}
.gp-focus-immersive .gp-focus-recenter{margin-right:0}
.gp-focus-summary{position:relative;z-index:40;flex:0 0 auto;display:flex;align-items:center;gap:16px;box-sizing:border-box;min-height:76px;padding:12px 24px max(12px,env(safe-area-inset-bottom));border:0;border-top:1px solid var(--gp-line);border-radius:0;background:var(--gp-card);color:var(--gp-ink)}
.gp-focus-summary p{flex:1;min-width:0;margin:0;color:var(--gp-navy);line-height:1.4;font-weight:500;overflow-wrap:anywhere}
.gp-focus-summary p strong{display:block;font-size:15px;font-weight:700;line-height:1.4}
.gp-focus-summary p span{display:block;margin-top:3px;color:var(--gp-muted);font-size:13px;font-weight:400;line-height:1.4}
.gp-focus-detail,.gp-focus-summary .gp-focus-choose{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;border-color:var(--gp-primary);background:var(--gp-primary);color:#fff;text-align:center;font-weight:600}
.gp-focus-detail:hover,.gp-focus-summary .gp-focus-choose:hover:not(:disabled){background:var(--gp-primary-dark);color:#fff}
.gp-focus-summary.has-selection{box-shadow:inset 0 2px 0 #0891b2}
/* HTML labels stay sharp at any device pixel ratio. JS positions and culls them. */
.gp-focus-labels{position:absolute;z-index:3;inset:0;overflow:hidden;pointer-events:none}
.gp-focus-label{position:absolute;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;width:128px;min-height:44px;box-sizing:border-box;padding:7px 8px;border:1px solid #c6cec6;border-radius:10px;background:#fffdf7;color:#244c3e;box-shadow:0 2px 8px rgba(22,53,43,.12);font-family:var(--gp-font);font-size:14px;line-height:1.2;text-align:center;white-space:nowrap;cursor:pointer;pointer-events:auto;touch-action:manipulation}
.gp-focus-label strong{font-size:14px;font-weight:700;line-height:1.2;font-variant-numeric:tabular-nums}
.gp-focus-label span,.gp-focus-label-badge{display:flex;align-items:center;justify-content:center;gap:5px;font-size:12px;font-weight:500;line-height:1.2;color:#526657}
.gp-focus-label span::before{content:'';width:6px;height:6px;flex:none;border-radius:50%;background:#17684b}
.gp-focus-label[data-status=reserved] span::before{background:#a77519}
.gp-focus-label[data-status=sold] span::before{background:#a2675e}
.gp-focus-label:hover{border-color:#0891b2;background:#f0fbfa}
.gp-focus-label[aria-pressed=true],.gp-focus-label.selected{z-index:2;width:164px;min-height:52px;border:2px solid #22d3ee;background:#164c3b;color:#fff;box-shadow:0 3px 14px rgba(20,76,59,.2)}
.gp-focus-label[aria-pressed=true] span,.gp-focus-label.selected span{color:#e2f5ea}
.gp-focus-label[aria-pressed=true] span::before,.gp-focus-label.selected span::before{background:#67e8f9}
.gp-focus-controls :focus-visible,.gp-focus-summary :focus-visible,.gp-focus-stage-bar :focus-visible,.gp-focus-tools :focus-visible,.gp-focus-label:focus-visible{outline:3px solid #087c91!important;outline-offset:3px}
.p3d-focused .gp-focus-controls[hidden],.gp-focus-controls [hidden],.gp-focus-summary [hidden],.gp-focus-context[hidden],.gp-focus-label[hidden]{display:none!important}
@media(max-width:1100px){
 .p3d-focused .gp-focus-controls{grid-template-columns:minmax(0,1fr) auto;gap:10px 18px;padding:10px 20px 12px}
 .gp-focus-head{grid-column:1;grid-row:1}
 .gp-focus-fields{grid-column:1/-1;grid-row:2;gap:16px}
 .gp-focus-apartments{grid-column:2;grid-row:1;align-self:center;margin:0}
 .gp-focus-head>button span{display:inline}
 .gp-focus-controls h1{font-size:16px}
 .gp-focus-extra{right:20px}
}
@media(max-width:768px){
 .p3d-focused .gp-focus-controls{gap:8px 8px;padding:max(8px,env(safe-area-inset-top)) 12px 10px}
 .gp-focus-head{gap:8px}
 .gp-focus-head>button{padding:8px}
 .gp-focus-head>button span{display:none}
 .gp-focus-controls h1{font-size:14px;line-height:1.25}
 .gp-focus-eyebrow{font-size:11px;gap:4px;margin-bottom:2px}
 .gp-focus-demo{font-size:10px;padding-left:4px}
 .gp-focus-fields{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px}
 .gp-focus-controls label{margin-bottom:4px;font-size:12px}
 .gp-focus-stepper{gap:2px;padding:1px}
 .gp-focus-controls select{padding-inline:1px;font-size:16px}
 .gp-focus-apartments>summary{max-width:108px;padding:8px;font-size:12px;gap:5px}
 .gp-focus-cards{top:calc(100% + 10px);max-height:min(50dvh,360px)}
 .gp-focus-extra{right:12px;max-height:calc(100dvh - 240px)}
 .gp-focus-stage-bar{top:8px;left:10px;right:10px;gap:6px}
 .gp-focus-expand span{display:none}
 .gp-focus-expand{padding:8px}
 .gp-focus-recenter{font-size:12px;padding:8px 10px}
 .gp-focus-summary{min-height:72px;padding:10px 12px max(10px,env(safe-area-inset-bottom));gap:10px}
 .gp-focus-summary p strong{font-size:14px}
 .gp-focus-summary p span{font-size:12px}
 .gp-focus-detail,.gp-focus-summary button{font-size:13px;padding:10px}
 .gp-focus-tools{bottom:10px;padding:6px;gap:4px}
 .gp-focus-context{font-size:12px;padding:8px}
 .gp-focus-immersive .gp-focus-stage-bar{flex-wrap:wrap}
}
@media(max-width:390px){
 .gp-focus-head{gap:5px}
 .gp-focus-head>button{padding:6px}
 .gp-focus-apartments>summary{max-width:94px;font-size:12px;padding:6px}
 .gp-focus-fields{gap:8px}
 .gp-focus-summary .gp-focus-detail{max-width:140px}
}
/* Short landscapes keep one toolbar row and compact chrome, retaining every action. */
@media(max-height:500px) and (min-width:701px){
 .p3d-focused .gp-focus-controls{grid-template-columns:minmax(140px,.85fr) minmax(320px,1.8fr) auto;gap:10px;padding:6px 12px}
 .gp-focus-head{grid-column:1;grid-row:1;gap:6px}
 .gp-focus-fields{grid-column:2;grid-row:1;gap:8px}
 .gp-focus-apartments{grid-column:3;grid-row:1;align-self:end}
 .gp-focus-head>button span{display:none}
 .gp-focus-controls h1{font-size:14px}
 .gp-focus-eyebrow{display:none}
 .gp-focus-apartments>summary{max-width:108px;padding:7px;font-size:12px}
 .gp-focus-stepper{gap:2px;padding:1px}
 .gp-focus-controls select{padding-inline:1px}
 .gp-focus-extra{right:12px;max-height:calc(100dvh - 110px)}
 .gp-focus-cards{max-height:calc(100dvh - 110px)}
 .gp-focus-summary{min-height:62px;padding:8px 12px;gap:10px}
 .gp-focus-summary p strong{font-size:14px}
 .gp-focus-summary p span{font-size:12px;margin-top:1px}
 .gp-focus-camera-caption{display:none}
 .gp-focus-tools{padding:4px;gap:4px;bottom:6px}
 .gp-focus-stage-bar{top:6px;left:8px;right:8px}
 .gp-focus-expand span{display:none}
}
@media(max-height:700px){.gp-focus-camera-caption{display:none}}
@media(prefers-reduced-motion:reduce){.gp-focus-controls *,.gp-focus-summary *,.gp-focus-label{transition:none!important;animation:none!important}}
@view-transition{navigation:none}
