:root{color-scheme:dark;--bg:#111619;--surface:#1b2226;--muted:#aab5bc;--accent:#ade9e0;--ink:#f5f8f8}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.4 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}button{font:inherit;color:inherit;cursor:pointer;border:1px solid #ffffff28;background:var(--surface);border-radius:10px;min-height:44px;padding:10px 17px;touch-action:manipulation}button:hover{background:#34434a}button:focus-visible{outline:3px solid var(--accent);outline-offset:3px}button[aria-pressed=true]{background:var(--accent);color:#112b2a;border-color:var(--accent)}[hidden]{display:none!important}.tour{height:100dvh;min-height:580px;display:grid;grid-template-rows:auto minmax(200px,1fr) auto;overflow:hidden}header{padding:17px 26px;display:flex;justify-content:space-between;align-items:center;gap:16px;border-bottom:1px solid #ffffff13}.property{display:flex;align-items:center;gap:14px}.monogram{font:32px/1 Georgia,serif;border-right:1px solid #ffffff35;padding-right:15px;letter-spacing:-2px}.monogram span{font:13px/1 system-ui;display:inline-block;vertical-align:top;letter-spacing:0;margin-left:2px}h1{margin:0;font-size:19px;font-weight:550;letter-spacing:.02em}.property p{font-size:13px;margin:3px 0 0;color:var(--muted)}.property p span{padding:0 6px}.tools{display:flex;gap:8px}.tool{font-size:14px;background:transparent}.stage{position:relative;overflow:hidden;background:#0b0e10;isolation:isolate;touch-action:pan-y}#image-frame{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);opacity:1;transition:opacity .18s ease}#image-frame.changing{opacity:.25}#photo{width:100%;height:100%;display:block;object-fit:contain}#hotspots{position:absolute;inset:0}.hotspot{position:absolute;transform:translate(-50%,-50%);display:flex;align-items:center;gap:9px;padding:7px 12px 7px 7px;border:1px solid #ffffffc0;border-radius:99px;background:#102525d9;box-shadow:0 3px 18px #0007;backdrop-filter:blur(8px);white-space:nowrap;font-size:14px}.hotspot:hover{background:#145f55;scale:1.04}.hotspot .arrow{width:30px;height:30px;display:grid;place-items:center;background:#fff;color:#143b35;border-radius:50%;font-size:20px}.room-tag{position:absolute;left:26px;top:22px;background:#10191ccc;border:1px solid #ffffff25;border-radius:11px;padding:12px 17px;pointer-events:none}.eyebrow{font-size:12px;letter-spacing:.13em;color:var(--muted)}.room-tag h2{font-size:24px;font-weight:500;margin:1px 0 0}.return{position:absolute;left:26px;bottom:22px;background:#142d2de8;border-color:#a0d2c983;border-radius:99px;font-size:14px}.hint{position:absolute;bottom:17px;left:50%;transform:translateX(-50%);color:white;background:#121b21c9;padding:7px 13px;border-radius:99px;font-size:13px;white-space:nowrap;pointer-events:none}#loading{position:absolute;top:22px;right:24px;border-radius:99px;padding:8px 13px;background:#111c23df;font-size:14px}#error{position:absolute;inset:0;display:grid;place-content:center;text-align:center;background:#10191cf2}footer{padding:13px 26px 17px;border-top:1px solid #ffffff18;background:var(--bg)}.view-row{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px;gap:15px}.view-label{display:flex;align-items:baseline;gap:14px}.view-label>span:first-child{font-size:15px}.view-label>span:last-child{color:var(--muted);font-size:13px}.view-controls{display:flex;gap:7px}.view-controls button{width:44px;min-height:36px;padding:5px;font-size:20px}.thumbnails{display:flex;gap:9px;overflow-x:auto;padding:3px 3px 8px;scrollbar-width:thin;scrollbar-color:#405354 transparent}.thumb{flex:0 0 90px;width:90px;height:60px;border-radius:7px;padding:0;overflow:hidden;background:#0c1317;min-height:0;opacity:.65}.thumb img{width:100%;height:100%;object-fit:cover}.thumb[aria-pressed=true]{opacity:1;border:2px solid var(--accent)}#rooms{display:flex;gap:8px;justify-content:center;margin-top:5px}#rooms button{background:transparent;border-color:transparent;border-radius:8px;font-size:14px;padding:9px 17px;min-height:42px}#rooms button[aria-pressed=true]{background:#223c3d;color:var(--accent);border-color:#ade9e04a}#rooms button:hover{background:#263338}dialog{width:min(520px,calc(100vw - 24px));max-height:calc(100dvh - 30px);overflow:auto;border:1px solid #ffffff3a;border-radius:18px;padding:22px;background:var(--bg);color:var(--ink);box-shadow:0 25px 100px #0009}dialog::backdrop{background:#000a;backdrop-filter:blur(5px)}.dialog-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.dialog-head h2{margin:3px 0 0;font-size:26px}.dialog-head button{background:transparent;border:0}.map-wrap{position:relative;border-radius:10px;overflow:hidden;background:white}.map-wrap img{width:100%;display:block}.map-point{position:absolute;transform:translate(-50%,-50%);background:#173e38;color:white;border:2px solid white;box-shadow:0 3px 10px #0004;padding:5px 8px;font-size:12px;border-radius:99px;min-height:35px;white-space:nowrap}.map-point[aria-pressed=true]{background:#136d63;color:white}.map-note{font-size:14px;color:var(--muted);margin-bottom:0}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.no-js{position:fixed;inset:0;background:#111e;display:grid;place-content:center}
@media(min-width:1200px){footer{padding-left:max(26px,calc((100vw - 1100px)/2));padding-right:max(26px,calc((100vw - 1100px)/2))}.thumbnails{justify-content:center}.thumb{flex-basis:105px;width:105px;height:65px}}
@media(max-width:640px){.tour{min-height:560px}header{padding:12px 14px}.monogram{display:none}.property p{font-size:12px}.tool{padding:8px 11px}h1{font-size:17px}.tools{gap:4px}.room-tag{top:12px;left:12px;padding:8px 12px}.room-tag h2{font-size:18px}.room-tag .eyebrow{font-size:12px}.hotspot{font-size:12px;gap:5px;padding:5px 8px 5px 5px;min-height:40px}.hotspot .arrow{width:25px;height:25px;font-size:17px}.return{left:12px;bottom:12px}.hint{bottom:13px;font-size:12px}footer{padding:10px 12px max(10px,env(safe-area-inset-bottom))}.view-label{gap:8px;flex-wrap:wrap}.view-label>span:first-child{font-size:14px}.thumb{flex-basis:73px;width:73px;height:48px}#rooms{justify-content:space-between;gap:1px}#rooms button{font-size:12px;padding:8px 6px;min-height:44px}#loading{top:12px;right:12px;font-size:12px}.map-point{font-size:12px}.hint.with-return{display:none}}
@media(max-height:600px) and (min-width:700px){header{padding:7px 20px}.thumbnails{display:none}footer{padding:8px 20px}.view-row{margin:0}.tour{min-height:360px}.room-tag{padding:7px 12px}.room-tag h2{font-size:19px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}
.look-canvas{width:100%;height:100%;display:block;cursor:grab;touch-action:none}.look-canvas.dragging{cursor:grabbing}.look-active #photo{display:none}#hotspots{pointer-events:none}.hotspot{pointer-events:auto}.view-controls{flex-shrink:0}@media(max-width:640px){.view-controls{gap:3px}.view-controls button{width:35px;min-height:40px}.view-label{display:block}.view-label>span{display:block}.hint{white-space:normal;text-align:center;width:max-content;max-width:90%}}
.mode-switch{display:flex;justify-content:center;gap:4px;margin:0 auto 10px;width:max-content;max-width:100%;background:#050a0d;padding:4px;border:1px solid #ffffff20;border-radius:11px}.mode-switch button{min-height:36px;padding:6px 15px;border:0;font-size:14px;background:transparent}.mode-switch button[aria-pressed=true]{background:#ade9e0;color:#102b28}.mode-switch button:disabled{opacity:.45;cursor:not-allowed}#ai-disclosure{font-size:12px;color:#f0d8b0;max-width:290px;margin:7px 0 0;letter-spacing:0}.hint{white-space:normal;text-align:center;width:max-content;max-width:calc(100% - 40px)}.view-label{flex-wrap:wrap}#rooms{flex-wrap:wrap}@media(max-width:640px){.mode-switch{margin-bottom:8px}.mode-switch button{font-size:14px;min-height:35px;padding-inline:11px}#ai-disclosure{font-size:12px;max-width:220px}.room-tag{max-width:calc(100% - 24px)}#rooms{justify-content:center}#rooms button{font-size:14px;padding:7px 8px}.hotspot{font-size:14px}.view-row{flex-wrap:wrap;gap:8px}.view-controls{margin-left:auto}.hint{max-width:calc(100% - 24px)}}

.brand-logo{display:block;width:160px;height:auto;flex-shrink:0;object-fit:contain}.property{gap:22px}@media(max-width:760px){.brand-logo{width:136px}.property{display:grid;gap:8px}.property h1{font-size:16px}.property p{font-size:12px}.tools{align-self:flex-start}.property{min-width:0}}

/* Scrollable photo and room strips must never widen the shared grid column. */
.tour{width:100%;max-width:100%;grid-template-columns:minmax(0,1fr)}
.tour>header,.tour>.stage,.tour>footer{min-width:0;max-width:100%}
.thumbnails,#rooms,.view-row,.mode-switch{min-width:0;max-width:100%}
.thumbnails,#rooms{width:100%}
.mode-switch button{min-width:0;overflow-wrap:anywhere}
.broker-contact,.broker-details{min-width:0}
/* Keep the panorama usable above phone browser bars and around display cutouts. */
html,body{height:100%;overscroll-behavior:none}
.tour{height:100vh;height:100dvh;min-height:0;grid-template-rows:auto minmax(0,1fr) auto}
header{padding-top:max(12px,env(safe-area-inset-top));padding-left:max(14px,env(safe-area-inset-left));padding-right:max(14px,env(safe-area-inset-right))}
footer{padding-bottom:max(12px,env(safe-area-inset-bottom))}
.view-controls button,.mode-switch button,#rooms button,.map-point{min-height:44px}
.view-controls button{min-width:44px}
#rooms{overflow-x:auto;flex-wrap:nowrap;scrollbar-width:thin}
#rooms button{flex-shrink:0;white-space:nowrap}
dialog{overscroll-behavior:contain;max-height:calc(100dvh - env(safe-area-inset-top) - env(safe-area-inset-bottom) - 24px)}
@media(max-width:640px){
 header{padding-bottom:10px;gap:8px}
 .property{gap:6px}.brand-logo{width:120px}.property h1{font-size:15px}.property p{display:none}
 .tools{align-self:center;gap:5px}.tool{min-height:44px;padding:8px 10px}#fullscreen{min-width:44px;padding:8px}
 .room-tag{top:10px;left:10px;padding:7px 10px;max-width:calc(100% - 20px)}
 .room-tag .eyebrow{display:none}.room-tag h2{font-size:17px}
 #ai-disclosure{font-size:12px;max-width:210px;margin-top:3px;line-height:1.3}
 .hotspot{min-height:44px;max-width:calc(100vw - 24px);padding:6px 9px 6px 6px;gap:6px}
 .hotspot .arrow{width:28px;height:28px;flex-shrink:0}
 .return{left:10px;bottom:10px;min-height:44px;padding:8px 12px}
 .hint{bottom:10px;max-width:calc(100% - 24px);padding:5px 10px;font-size:12px;line-height:1.35}
 #loading{top:auto;right:10px;bottom:52px;max-width:calc(100% - 20px)}
 footer{padding:7px max(10px,env(safe-area-inset-right)) max(8px,env(safe-area-inset-bottom)) max(10px,env(safe-area-inset-left))}
 .mode-switch{width:100%;margin-bottom:5px;padding:3px;gap:3px}.mode-switch button{flex:1;padding:7px 8px;min-height:44px}
 .view-row{gap:6px;margin-bottom:5px;flex-wrap:nowrap}.view-label{min-width:0;flex:1}.view-label>span:first-child{font-size:14px;line-height:1.2}
 .view-label>span:last-child{font-size:12px}.view-controls{gap:4px}.view-controls button{width:44px;min-height:44px}
 .pano-mode .view-label{display:none}.pano-mode .view-controls{width:100%;justify-content:center;margin:0;gap:8px}
 .pano-mode .view-row{margin-bottom:3px}.pano-mode .view-controls button{flex:1;max-width:64px}
 .tour:not(.pano-mode) .view-row{flex-wrap:wrap}.tour:not(.pano-mode) .view-label{display:flex;justify-content:space-between;align-items:center;flex-basis:100%}
 .tour:not(.pano-mode) .view-controls{width:100%;justify-content:center;gap:8px}.tour:not(.pano-mode) .view-controls button{flex:1;max-width:64px}
 .thumb{height:44px;flex-basis:66px;width:66px}.thumbnails{gap:7px;padding-bottom:4px}
 #rooms{justify-content:flex-start;gap:4px;margin-top:0;scroll-padding-inline:4px}
 #rooms button{padding:8px 12px;font-size:14px}.pano-mode #rooms button{flex:1;padding-inline:6px}
 dialog{padding:14px;border-radius:14px}.dialog-head{margin-bottom:10px}.dialog-head h2{font-size:22px}.dialog-head .eyebrow{display:none}
 .map-point{padding:5px 7px;font-size:12px}.map-note{line-height:1.4;margin-top:12px}
}
.brand-logo{width:128px}
.broker-contact{display:flex;align-items:center;gap:16px;min-height:44px;margin-left:auto;padding:5px 10px;border-radius:9px;text-decoration:none;color:var(--ink)}
.broker-contact:hover{background:#223c3d}.broker-contact:focus-visible{outline:3px solid var(--accent);outline-offset:2px}
.broker-details{display:flex;flex-direction:column;gap:1px}.broker-details small{font-size:12px;color:var(--muted)}.broker-details strong{font-size:14px;font-weight:550}
.broker-phone{font-size:14px;color:var(--accent);white-space:nowrap}
@media(max-width:900px){header{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 8px}.property{grid-column:1;grid-row:1}.tools{grid-column:2;grid-row:1}.brand-logo{width:96px}.broker-contact{grid-column:1/-1;grid-row:2;justify-content:space-between;width:100%;margin:0;padding:3px 0;border-top:1px solid #ffffff18}.broker-details{flex-direction:column;align-items:flex-start;gap:0}}
@media(max-height:500px) and (orientation:landscape){header{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:8px}.property{grid-column:1;grid-row:1}.property>div{display:none}.brand-logo{width:84px}.broker-contact{grid-column:2;grid-row:1;border:0;padding:0;flex-direction:column;align-items:flex-end;justify-content:center;gap:0}.broker-details small{display:none}.broker-phone{font-size:12px}.tools{grid-column:3;grid-row:1}}
/* Landscape phones need space for the room, not two tall bands of controls. */
@media(max-height:500px) and (orientation:landscape){
 header{padding:5px max(12px,env(safe-area-inset-right)) 5px max(12px,env(safe-area-inset-left));gap:8px}
 .property{display:flex;gap:12px}.brand-logo{width:84px}.property h1{font-size:14px}.property p{display:none}
 .tools{align-self:center}.tool{min-height:44px;padding:6px 10px}
 footer{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 12px;padding:4px max(12px,env(safe-area-inset-right)) max(4px,env(safe-area-inset-bottom)) max(12px,env(safe-area-inset-left))}
 .mode-switch{width:100%;margin:0;padding:2px;gap:2px}.mode-switch button{min-height:44px;flex:1;padding:5px 10px}
 .view-row{margin:0;gap:0}.view-label{display:none!important}.view-controls,.pano-mode .view-controls,.tour:not(.pano-mode) .view-controls{gap:4px;width:auto;margin:0}
 .view-controls button{min-width:44px;width:44px;min-height:44px;padding:4px}
 .thumbnails{display:none}#rooms{grid-column:1/-1;justify-content:center;margin:0;gap:8px}#rooms button{min-height:44px;padding:6px 12px;flex:0 0 auto!important}
 .room-tag{left:max(10px,env(safe-area-inset-left));top:6px;padding:5px 9px}.room-tag .eyebrow{display:none}.room-tag h2{font-size:16px}#ai-disclosure{margin-top:2px;max-width:260px}
 .hint,.return{display:none}#loading{top:auto;bottom:8px;right:12px}
 dialog{width:min(520px,calc(100vw - 40px));padding:12px}.dialog-head{position:sticky;top:-12px;background:var(--bg);z-index:2;padding:4px 0;margin-bottom:8px}
}
