:root{--gold:#e0a13a;--gold-soft:#f0c36f;--glass:rgba(20,19,16,.72);--line:rgba(255,255,255,.18);--text:#fff;--muted:rgba(255,255,255,.72)}
*{box-sizing:border-box}html,body{width:100%;height:100%;margin:0;overflow:hidden;background:#000;font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--text)}button{font:inherit;color:inherit}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible{outline:2px solid var(--gold-soft);outline-offset:3px}#pano,.tour-shell{position:absolute;inset:0}#pano{overflow:hidden;background:#111}.tour-shell{isolation:isolate}.shade{position:absolute;left:0;right:0;z-index:2;pointer-events:none}.shade-top{top:0;height:28vh;background:linear-gradient(to bottom,rgba(0,0,0,.64),rgba(0,0,0,0))}.shade-bottom{bottom:0;height:36vh;background:linear-gradient(to top,rgba(0,0,0,.78),rgba(0,0,0,0))}
.topbar{position:absolute;z-index:10;top:0;left:0;right:0;display:flex;align-items:flex-start;justify-content:space-between;padding:clamp(16px,2vw,30px);pointer-events:none}.brand,.top-actions{pointer-events:auto}.brand{display:flex;flex-direction:column;align-items:center;width:clamp(185px,17vw,255px);filter:drop-shadow(0 4px 16px rgba(0,0,0,.55));transition:.2s}.brand:hover{transform:translateY(-1px)}.brand-logo{display:block;width:100%;height:clamp(48px,5.5vw,78px);object-fit:contain}.brand-tagline{width:100%;text-align:center;margin-top:-3px;font-size:clamp(7px,.68vw,10px);font-weight:750;letter-spacing:.16em;color:rgba(255,255,255,.82);white-space:nowrap}.top-actions{display:flex;gap:8px}.icon-btn,.round-btn,.dock-arrow{border:1px solid var(--line);background:rgba(20,19,17,.62);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);cursor:pointer;transition:.18s ease}.icon-btn{width:46px;height:46px;border-radius:50%;display:grid;place-items:center;font-size:22px;box-shadow:0 10px 30px rgba(0,0,0,.18)}.icon-btn:hover,.round-btn:hover,.dock-arrow:hover{background:rgba(224,161,58,.18);border-color:rgba(224,161,58,.65);transform:translateY(-1px)}.icon-btn.active{border-color:var(--gold);color:var(--gold-soft);background:rgba(224,161,58,.18)}#musicBtn{position:relative}.music-off{display:none;position:absolute;font-size:14px;right:8px;bottom:7px}.music-on{font-size:21px}#musicBtn.muted .music-off{display:block;color:rgba(255,255,255,.78)}
.hero-copy{position:absolute;z-index:7;left:clamp(24px,4.8vw,74px);top:clamp(120px,18vh,190px);width:min(540px,70vw);text-shadow:0 4px 24px rgba(0,0,0,.72);pointer-events:none}.eyebrow{color:var(--gold-soft);letter-spacing:.19em;font-weight:800;font-size:clamp(10px,.8vw,12px)}.hero-copy h1{margin:7px 0 0;font-family:Georgia,'Times New Roman',serif;font-weight:500;font-size:clamp(26px,3vw,46px);line-height:1.02}.hero-divider{width:58px;height:1px;margin:13px 0 10px;background:linear-gradient(90deg,var(--gold),transparent)}.scene-name{font-size:clamp(13px,1vw,16px);color:rgba(255,255,255,.86)}.contact-line{pointer-events:auto;display:flex;gap:8px;align-items:center;margin-top:8px;font-size:11px;color:rgba(255,255,255,.68)}.contact-line a:hover{color:var(--gold-soft)}
.scene-dock{position:absolute;z-index:12;left:50%;transform:translateX(-50%);bottom:86px;width:min(92vw,980px);height:108px;display:grid;grid-template-columns:42px 1fr 42px;gap:8px;align-items:center;padding:8px;border:1px solid rgba(255,255,255,.14);background:rgba(17,16,14,.76);border-radius:16px;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);box-shadow:0 22px 60px rgba(0,0,0,.35);transition:.25s ease}.scene-dock.hidden{opacity:0;transform:translate(-50%,18px);pointer-events:none}.scene-rail{display:flex;gap:8px;overflow-x:auto;scrollbar-width:none;scroll-behavior:smooth;min-width:0}.scene-rail::-webkit-scrollbar{display:none}.scene-card{flex:0 0 128px;height:88px;border:1px solid rgba(255,255,255,.10);background:#25231f;border-radius:10px;overflow:hidden;padding:0;position:relative;cursor:pointer;text-align:left;transition:.18s ease}.scene-card::after{content:'';position:absolute;inset:0;background:linear-gradient(to top,rgba(0,0,0,.72),rgba(0,0,0,.06) 68%)}.scene-card img{width:100%;height:100%;object-fit:cover;display:block;transition:.25s ease}.scene-card:hover img{transform:scale(1.035)}.scene-card.active{border-color:var(--gold);box-shadow:0 0 0 1px var(--gold) inset,0 0 22px rgba(224,161,58,.18)}.scene-card span{position:absolute;z-index:2;left:9px;right:8px;bottom:8px;font-size:10.5px;line-height:1.15;font-weight:750;text-shadow:0 2px 8px #000;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dock-arrow{width:40px;height:76px;border-radius:10px;font-size:30px}.bottom-controls{position:absolute;z-index:13;right:clamp(18px,3vw,48px);bottom:22px;display:flex;align-items:center;gap:9px}.pill-btn{height:50px;border:1px solid rgba(255,255,255,.16);background:rgba(18,17,15,.77);border-radius:26px;padding:0 18px;display:flex;gap:9px;align-items:center;cursor:pointer;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);font-weight:700;font-size:13px}.pill-btn.active{border-color:rgba(224,161,58,.5)}.grid-icon{color:var(--gold-soft);font-size:17px;transform:rotate(45deg);display:inline-block}.zoom-group{display:flex;gap:7px}.round-btn{width:50px;height:50px;border-radius:50%;font-size:24px}
.hotspot{position:relative;cursor:pointer}.link-hotspot{width:50px;height:50px;margin:-25px 0 0 -25px;display:grid;place-items:center}.link-hotspot-core{width:44px;height:44px;border-radius:50%;border:1.7px solid rgba(255,255,255,.94);background:rgba(13,13,12,.72);box-shadow:0 6px 20px rgba(0,0,0,.36),inset 0 0 0 4px rgba(255,255,255,.04);display:grid;place-items:center;transition:.18s ease;backdrop-filter:blur(7px)}.hotspot-icon{width:23px;height:23px;display:grid;place-items:center}.hotspot-icon svg,.info-hotspot>svg{width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}.link-hotspot:hover .link-hotspot-core{transform:scale(1.1);border-color:var(--gold-soft);color:var(--gold-soft);background:rgba(44,31,13,.82)}.kind-pool .link-hotspot-core,.kind-gym .link-hotspot-core,.kind-kids .link-hotspot-core,.kind-event .link-hotspot-core,.kind-aerial .link-hotspot-core,.kind-terrace .link-hotspot-core,.kind-door .link-hotspot-core{border-color:rgba(240,195,111,.9)}.hotspot-label{position:absolute;left:50%;bottom:56px;transform:translate(-50%,5px);padding:7px 10px;max-width:220px;width:max-content;border-radius:8px;background:rgba(12,11,10,.9);border:1px solid rgba(255,255,255,.14);font-size:11px;font-weight:700;line-height:1.15;opacity:0;pointer-events:none;transition:.18s ease;box-shadow:0 12px 28px rgba(0,0,0,.28)}.link-hotspot:hover .hotspot-label,.labeled-hotspot .hotspot-label,.touch .hotspot-label{opacity:1;transform:translate(-50%,0)}.info-hotspot{width:46px;height:46px;margin:-23px 0 0 -23px;border-radius:50%;border:1.7px solid rgba(255,255,255,.96);background:rgba(224,161,58,.9);display:grid;place-items:center;box-shadow:0 8px 25px rgba(0,0,0,.35);transition:.18s}.info-hotspot>svg{width:25px;height:25px}.info-hotspot:hover{}.info-label{opacity:1;transform:translate(-50%,0);bottom:54px}
.nadir-brand{width:150px;height:150px;margin:-75px 0 0 -75px;border-radius:50%;background:radial-gradient(circle,rgba(12,12,11,.94) 0 58%,rgba(12,12,11,.78) 59%,rgba(12,12,11,0) 72%);display:flex;flex-direction:column;align-items:center;justify-content:center;filter:drop-shadow(0 10px 20px rgba(0,0,0,.4));transition:.2s}.nadir-brand:hover{}.nadir-brand img{width:105px;height:45px;object-fit:contain}.nadir-brand span{font-size:7px;letter-spacing:.15em;font-weight:800;color:rgba(255,255,255,.72);margin-top:-1px}
.modal{position:fixed;inset:0;z-index:100;display:grid;place-items:center;padding:24px;opacity:0;visibility:hidden;transition:.2s}.modal.open{opacity:1;visibility:visible}.modal-backdrop{position:absolute;inset:0;border:0;background:rgba(0,0,0,.74);backdrop-filter:blur(8px);cursor:pointer}.modal-card{position:relative;z-index:1;width:min(1040px,94vw);max-height:90vh;overflow:auto;background:#f6f3ed;color:#24231f;border-radius:18px;box-shadow:0 30px 100px rgba(0,0,0,.55);display:grid;grid-template-columns:minmax(210px,.35fr) minmax(0,1fr)}.modal-copy{padding:38px 30px;background:#171613;color:#fff}.modal-kicker{color:var(--gold-soft);font-size:10px;font-weight:800;letter-spacing:.18em}.modal-copy h2{font-family:Georgia,serif;font-size:30px;font-weight:500;line-height:1.05;margin:10px 0 12px}.modal-copy p{font-size:13px;line-height:1.5;color:rgba(255,255,255,.72);white-space:pre-wrap}.modal-image{display:block;width:100%;height:100%;max-height:84vh;object-fit:contain;background:#fff}.modal-image[hidden]{display:none}.modal-close{position:absolute;right:13px;top:13px;z-index:3;width:38px;height:38px;border-radius:50%;border:1px solid rgba(0,0,0,.14);background:rgba(255,255,255,.9);color:#111;font-size:26px;cursor:pointer}.toast{position:absolute;z-index:30;top:82px;right:28px;padding:10px 14px;border-radius:10px;background:rgba(10,10,9,.9);border:1px solid rgba(255,255,255,.13);font-size:13px;opacity:0;transform:translateY(-8px);pointer-events:none;transition:.2s ease}.toast.show{opacity:1;transform:translateY(0)}
@media(max-width:760px){.topbar{padding:13px;align-items:flex-start}.brand{width:145px}.brand-logo{height:45px}.brand-tagline{font-size:5.5px;letter-spacing:.11em}.top-actions{gap:5px}.icon-btn{width:37px;height:37px;font-size:17px}#shareBtn{display:grid}.hero-copy{left:18px;top:86px;width:78vw}.hero-copy h1{font-size:27px}.contact-line{font-size:9px;gap:5px}.scene-dock{bottom:76px;width:calc(100vw - 20px);height:101px;grid-template-columns:32px 1fr 32px;padding:6px;border-radius:13px}.scene-card{flex-basis:108px;height:79px}.dock-arrow{width:30px;height:68px}.bottom-controls{left:10px;right:10px;bottom:13px;justify-content:flex-end}.pill-btn{margin-right:auto;height:46px;padding:0 13px}.round-btn{width:46px;height:46px}.hotspot-label{bottom:50px;font-size:9.5px;padding:5px 7px;max-width:140px}.nadir-brand{width:120px;height:120px;margin:-60px 0 0 -60px}.nadir-brand img{width:84px;height:38px}.modal{padding:10px}.modal-card{display:block;max-height:92vh}.modal-copy{padding:24px 22px}.modal-copy h2{font-size:24px}.modal-image{height:auto;max-height:66vh}}
@media(max-height:620px) and (orientation:landscape){.hero-copy{top:76px}.contact-line{display:none}.scene-dock{height:88px;bottom:66px}.scene-card{height:68px}.dock-arrow{height:62px}.bottom-controls{bottom:9px}.pill-btn,.round-btn{height:44px}.round-btn{width:44px}}

/* ===== AboveMTY v3 professional refinement ===== */
.hero-copy{top:clamp(145px,20vh,215px)}
.brand-logo{height:auto;max-height:92px;object-fit:contain}
.brand-tagline{margin-top:2px;text-align:center}
.contact-line,.eyebrow{display:none!important}
.tour-credit{position:absolute;z-index:14;left:clamp(18px,2.5vw,38px);bottom:24px;display:flex;align-items:center;gap:8px;padding:9px 12px;border:1px solid rgba(255,255,255,.11);border-radius:10px;background:rgba(15,14,13,.48);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);font-size:9px;font-weight:750;letter-spacing:.08em;color:rgba(255,255,255,.62);text-shadow:0 2px 8px rgba(0,0,0,.5)}
.tour-credit a{color:rgba(255,255,255,.9);letter-spacing:.02em;text-transform:none}.tour-credit a:hover{color:var(--gold-soft)}
.floorplan-btn{border-color:rgba(224,161,58,.34)}.plan-icon{font-size:21px;color:var(--gold-soft);transform:rotate(-8deg)}

/* Standard navigation: clean icon, subtle attention bounce, label only on hover/focus. */
.link-hotspot-core{animation:abvHotspotFloat 2.7s ease-in-out infinite;will-change:transform}
.link-hotspot:hover .link-hotspot-core,.link-hotspot:focus-within .link-hotspot-core{animation:none;transform:scale(1.09);border-color:var(--gold-soft);color:var(--gold-soft);background:rgba(44,31,13,.82)}
@keyframes abvHotspotFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-4px)}}
.hotspot-label{opacity:0!important;transform:translate(-50%,6px)!important}
.link-hotspot:hover .hotspot-label,.link-hotspot:focus-within .hotspot-label,.info-hotspot:hover .hotspot-label,.info-hotspot:focus-within .hotspot-label,.mobile-focus .hotspot-label{opacity:1!important;transform:translate(-50%,0)!important}
.drone-hotspot-icon{width:31px;height:19px;object-fit:contain;display:block;filter:drop-shadow(0 1px 2px rgba(0,0,0,.55))}
.kind-aerial .link-hotspot-core{border-color:rgba(240,195,111,.92);background:rgba(18,17,15,.76)}

/* Amenity/elevator shortcut clusters become architectural wayfinding text, like premium property tours. */
.wayfinding-hotspot{margin:-15px 0 0 -8px;display:flex;align-items:center;gap:8px;height:30px;padding:0 9px 0 11px;border-radius:8px;border:1px solid transparent;background:rgba(12,12,11,.22);backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px);color:#fff;font-size:13px;font-weight:720;line-height:1;text-shadow:0 2px 8px rgba(0,0,0,.9);white-space:nowrap;transition:background .18s,border-color .18s,color .18s,transform .18s;box-shadow:0 5px 18px rgba(0,0,0,.08)}
.wayfinding-hotspot::before{content:'';position:absolute;left:7px;right:7px;bottom:3px;height:1px;background:linear-gradient(90deg,transparent,var(--gold),transparent);opacity:0;transform:scaleX(.45);transition:.18s}
.wayfinding-hotspot:hover{background:rgba(15,14,12,.76);border-color:rgba(240,195,111,.45);color:var(--gold-soft);transform:translateX(3px)}
.wayfinding-hotspot:hover::before{opacity:.9;transform:scaleX(1)}
.wayfinding-arrow{font-size:21px;color:var(--gold-soft);line-height:1;animation:abvWayfindingNudge 2.2s ease-in-out infinite}
@keyframes abvWayfindingNudge{0%,100%{transform:translateX(0)}50%{transform:translateX(3px)}}

/* Info markers: transform stays on the Marzipano root; animation/scale lives on the child so it never jumps. */
.info-hotspot{width:42px;height:42px;margin:-21px 0 0 -21px;border:0;background:transparent;box-shadow:none;display:grid;place-items:center}
.info-hotspot-core{width:38px;height:38px;border-radius:50%;border:1.5px solid rgba(255,255,255,.92);background:rgba(183,127,37,.9);display:grid;place-items:center;box-shadow:0 7px 22px rgba(0,0,0,.32);transition:.18s;animation:abvInfoPulse 3.2s ease-in-out infinite}
.info-hotspot-core svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.info-hotspot:hover{}.info-hotspot:hover .info-hotspot-core{animation:none;transform:scale(1.08);background:rgba(210,151,56,.96)}
.info-label{bottom:48px}
@keyframes abvInfoPulse{0%,100%{box-shadow:0 7px 22px rgba(0,0,0,.32),0 0 0 0 rgba(224,161,58,.20)}50%{box-shadow:0 7px 22px rgba(0,0,0,.32),0 0 0 7px rgba(224,161,58,0)}}

/* Nadir logo is an embedded floor plaque, not a floating black blob. */
.nadir-brand{width:220px;height:150px;margin:0;border-radius:0;background:transparent;display:grid;place-items:center;filter:none;transition:none!important;transform-origin:center center}
.nadir-brand:hover{}
.nadir-inner{width:184px;height:104px;border-radius:52px;display:flex;flex-direction:column;align-items:center;justify-content:center;background:rgba(12,12,11,.84);border:1px solid rgba(255,255,255,.22);box-shadow:0 9px 25px rgba(0,0,0,.35);overflow:hidden}
.nadir-brand img{width:132px;height:48px;object-fit:contain;margin:0}.nadir-brand small{font-size:7px;line-height:1;letter-spacing:.14em;font-weight:800;color:rgba(255,255,255,.68);margin-top:5px}
.nadir-brand:hover .nadir-inner{border-color:rgba(240,195,111,.7);box-shadow:0 9px 25px rgba(0,0,0,.35),0 0 0 3px rgba(224,161,58,.10)}

.modal-card{overflow:hidden}.modal-copy{min-width:230px}.modal-close{display:flex;align-items:center;justify-content:center}

@media(max-width:760px){
  .hero-copy{top:105px}.hero-copy h1{font-size:25px}.brand{width:135px}.brand-logo{max-height:54px}.brand-tagline{font-size:5.4px}
  .tour-credit{left:10px;bottom:66px;max-width:calc(100vw - 20px);font-size:7px;padding:7px 9px;gap:5px;white-space:nowrap}
  .bottom-controls{gap:6px}.pill-btn{padding:0 11px;font-size:11px}.floorplan-btn{margin-right:0}.zoom-group{gap:5px}
  .wayfinding-hotspot{font-size:11px;height:27px;padding:0 7px 0 9px;gap:5px}.wayfinding-arrow{font-size:18px}
  .nadir-brand{width:180px;height:124px;margin:0}.nadir-inner{width:152px;height:86px}.nadir-brand img{width:110px;height:40px}
}
@media(max-width:520px){.pill-btn span:last-child{display:none}.pill-btn{width:46px;padding:0;justify-content:center}.floorplan-btn{width:auto;min-width:86px;padding:0 13px;gap:7px}.floorplan-btn span:last-child{display:inline!important}.tour-credit{font-size:6.6px}.scene-dock{bottom:118px}.bottom-controls{bottom:12px}.tour-credit{bottom:65px}}

/* ===== AboveMTY v4 — quieter, architectural UI ===== */
.top-actions{gap:7px;padding:5px;border:1px solid rgba(255,255,255,.10);border-radius:18px;background:rgba(13,13,12,.30);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);box-shadow:0 12px 35px rgba(0,0,0,.16)}
.icon-btn{position:relative;width:42px;height:42px;border-radius:13px;border:1px solid rgba(255,255,255,.10);background:rgba(17,17,16,.52);box-shadow:none;color:rgba(255,255,255,.88)}
.icon-btn svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.icon-btn:hover{transform:none;background:rgba(255,255,255,.09);border-color:rgba(240,195,111,.42);color:#fff}.icon-btn.active{background:rgba(185,126,33,.20);border-color:rgba(240,195,111,.62);color:var(--gold-soft)}
#musicBtn .status-dot{position:absolute;width:5px;height:5px;border-radius:50%;right:7px;bottom:7px;background:rgba(255,255,255,.30)}#musicBtn.active .status-dot{background:var(--gold-soft);box-shadow:0 0 0 3px rgba(224,161,58,.12)}
.music-on,.music-off{display:none!important}

/* Navigation hotspots: only the inner visual animates; the Marzipano root never gets a transform. */
.link-hotspot-core{animation:abvNavHint 3.4s ease-in-out infinite;will-change:transform}
@keyframes abvNavHint{0%,76%,100%{transform:translateY(0)}84%{transform:translateY(-3px)}92%{transform:translateY(0)}}
.link-hotspot:hover .link-hotspot-core{animation:none;transform:scale(1.06)}
.drone-hotspot-icon{width:32px;height:17px;object-fit:contain;display:block;transform:none!important;filter:drop-shadow(0 2px 3px rgba(0,0,0,.55))}
.kind-aerial .link-hotspot-core{width:54px;height:44px;border-radius:15px}

/* Amenity directory: one stable hotspot instead of several projected labels fighting each other. */
.amenity-directory{margin:-72px 0 0 -95px;width:190px;pointer-events:auto}
.directory-panel{width:190px;padding:8px 0;border-radius:12px;background:rgba(14,14,13,.62);border:1px solid rgba(255,255,255,.13);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);box-shadow:0 12px 32px rgba(0,0,0,.20);overflow:hidden}
.directory-row{appearance:none;width:100%;height:31px;padding:0 12px;border:0;background:transparent;color:rgba(255,255,255,.92);display:flex;align-items:center;justify-content:space-between;gap:12px;cursor:pointer;font:650 11px/1 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;letter-spacing:.01em;text-align:left;white-space:nowrap;transition:background .15s,color .15s,padding .15s}
.directory-row+.directory-row{border-top:1px solid rgba(255,255,255,.07)}.directory-row:hover{background:rgba(255,255,255,.07);color:var(--gold-soft);padding-left:15px}.directory-chevron{font-size:18px;font-weight:300;color:var(--gold-soft);line-height:1;transform:translateY(-1px)}

/* Info markers: small, level, and completely static. */
.info-hotspot{width:34px;height:34px;margin:-17px 0 0 -17px;background:transparent!important;border:0!important;box-shadow:none!important}
.info-hotspot-core{width:32px;height:32px;border-radius:50%;border:1px solid rgba(255,255,255,.82);background:rgba(18,18,17,.72);display:grid;place-items:center;box-shadow:0 6px 18px rgba(0,0,0,.25);animation:none!important;transition:background .15s,border-color .15s,transform .15s}
.info-hotspot-core span{font:600 15px/1 Georgia,serif;color:#fff;transform:translateY(-.5px)}.info-hotspot:hover .info-hotspot-core{transform:scale(1.06);background:rgba(175,119,31,.86);border-color:var(--gold-soft)}.info-label{bottom:40px}

/* Nadir badge: regular screen-facing hotspot so the logo stays upright while covering the selfie stick. */
.nadir-brand{width:154px;height:154px;margin:-77px 0 0 -77px;border-radius:50%;background:rgba(13,13,12,.68);border:1px solid rgba(255,255,255,.18);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);display:grid;place-items:center;box-shadow:0 12px 32px rgba(0,0,0,.28);filter:none;transition:border-color .18s,background .18s!important}
.nadir-brand:hover{background:rgba(13,13,12,.78);border-color:rgba(240,195,111,.58)}.nadir-inner{width:116px;height:68px;border:0;border-radius:0;background:transparent;box-shadow:none;display:grid;place-items:center;overflow:visible}.nadir-brand img{width:116px;height:68px;object-fit:contain;margin:0}.nadir-brand small{display:none}

.tour-credit a{color:rgba(255,255,255,.9)}
@media(max-width:760px){.top-actions{gap:4px;padding:4px;border-radius:14px}.icon-btn{width:36px;height:36px;border-radius:10px}.icon-btn svg{width:17px;height:17px}.amenity-directory{margin:-65px 0 0 -82px;width:164px}.directory-panel{width:164px}.directory-row{height:29px;padding:0 10px;font-size:10px}.nadir-brand{width:132px;height:132px;margin:-66px 0 0 -66px}.nadir-inner,.nadir-brand img{width:98px;height:58px}}


/* ===== AboveMTY v5 — refined wayfinding + correct Marzipano positioning ===== */
/* Smaller brand: present but not competing with the property. */
.brand{width:clamp(145px,13vw,195px)}
.brand-logo{max-height:70px}
.brand-tagline{font-size:clamp(6px,.55vw,8px);letter-spacing:.14em}

/* Compact scene filmstrip. Cards grow gently on hover without making the dock taller. */
.scene-dock{height:92px;width:min(90vw,900px);grid-template-columns:36px 1fr 36px;gap:6px;padding:7px}
.scene-card{flex-basis:104px;height:70px;border-radius:8px;transform-origin:center bottom;transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease}
.scene-card:hover{transform:scale(1.10);z-index:4}
.scene-card:hover img{transform:scale(1.025)}
.scene-card span{left:7px;right:6px;bottom:6px;font-size:9px}
.dock-arrow{width:34px;height:64px;font-size:25px}

/* Amenity directory: architectural text, no large grey card. */
.amenity-directory{margin:-54px 0 0 -74px;width:148px;pointer-events:auto}
.directory-panel{position:relative;width:148px;padding:3px 0 3px 9px;border:0;border-left:1px solid rgba(240,195,111,.62);border-radius:0;background:transparent;backdrop-filter:none;-webkit-backdrop-filter:none;box-shadow:none;overflow:visible}
.directory-row{width:100%;height:25px;padding:0 4px 0 7px;border:0;border-radius:5px;background:transparent;color:rgba(255,255,255,.94);gap:7px;font:650 10px/1 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;letter-spacing:.005em;text-shadow:0 2px 7px rgba(0,0,0,.96);transition:background .14s,color .14s,padding .14s}
.directory-row+.directory-row{border-top:0}
.directory-row:hover{background:rgba(10,10,9,.48);color:#fff;padding-left:10px}
.directory-chevron{font-size:15px;font-weight:300;color:var(--gold-soft);text-shadow:0 2px 6px rgba(0,0,0,.9)}
.aerial-directory{margin:-48px 0 0 -62px;width:124px}
.aerial-directory .directory-panel{width:124px;padding-left:7px}
.aerial-directory .directory-row{height:23px;font-size:9px;padding-left:5px}

/* Aerial destination: the drone itself is the marker, with no dark pill behind it. */
.kind-aerial.link-hotspot{width:58px;height:44px;margin:-22px 0 0 -29px}
.kind-aerial .link-hotspot-core{width:58px;height:44px;border:0!important;border-radius:0;background:transparent!important;box-shadow:none!important;backdrop-filter:none;animation:abvNavHint 3.8s ease-in-out infinite}
.kind-aerial .drone-hotspot-icon{width:46px;height:28px;object-fit:contain;filter:drop-shadow(0 2px 2px rgba(0,0,0,.95)) drop-shadow(0 0 5px rgba(224,161,58,.22))}
.kind-aerial:hover .link-hotspot-core{background:transparent!important}

/* Info markers remain screen-facing and correctly positioned by Marzipano. */
.info-hotspot{width:32px;height:32px;margin:-16px 0 0 -16px;background:transparent!important;border:0!important;box-shadow:none!important}
.info-hotspot-core{width:30px;height:30px;border:1px solid rgba(255,255,255,.88);background:rgba(14,14,13,.70);box-shadow:0 5px 15px rgba(0,0,0,.28)}
.info-hotspot-core span{font-size:14px}.info-label{bottom:37px}

/* Nadir: Marzipano owns the root transform. Only the child visual is styled. */
.nadir-brand{width:166px;height:166px;margin:-83px 0 0 -83px;border:0;background:transparent;backdrop-filter:none;-webkit-backdrop-filter:none;box-shadow:none;filter:none;display:grid;place-items:center}
.nadir-inner{width:148px;height:92px;border-radius:46px;background:rgba(11,11,10,.86);border:1px solid rgba(255,255,255,.20);box-shadow:0 8px 24px rgba(0,0,0,.34);display:grid;place-items:center;transition:transform .16s,border-color .16s}
.nadir-brand:hover .nadir-inner{transform:scale(1.035);border-color:rgba(240,195,111,.58)}
.nadir-brand img{width:126px;height:70px;object-fit:contain}

@media(max-width:760px){
  .brand{width:118px}.brand-logo{max-height:46px}.brand-tagline{font-size:4.8px}
  .scene-dock{height:82px;bottom:76px;grid-template-columns:30px 1fr 30px;padding:6px}
  .scene-card{flex-basis:88px;height:61px}.scene-card:hover{transform:none}.scene-card span{font-size:8px}
  .dock-arrow{width:28px;height:56px}
  .amenity-directory{margin:-49px 0 0 -63px;width:126px}.directory-panel{width:126px}.directory-row{height:23px;font-size:9px}
  .aerial-directory{margin:-43px 0 0 -55px;width:110px}.aerial-directory .directory-panel{width:110px}.aerial-directory .directory-row{font-size:8.5px;height:22px}
  .nadir-brand{width:142px;height:142px;margin:-71px 0 0 -71px}.nadir-inner{width:126px;height:78px}.nadir-brand img{width:108px;height:60px}
}
/* Never interpolate/override Marzipano's positioning transform on hotspot roots. */
.info-hotspot{transition:none!important}


/* ===== AboveMTY v6 refinements ===== */
/* Crisp original drone mark; no stretching or animated blur. */
.kind-aerial.link-hotspot{width:52px;height:38px;margin:-19px 0 0 -26px}
.kind-aerial .link-hotspot-core{width:52px;height:38px;animation:none!important;transform:none!important}
.kind-aerial .drone-hotspot-icon{width:48px;height:32px;object-fit:contain;filter:drop-shadow(0 2px 4px rgba(0,0,0,.75));transform:none!important}
.kind-aerial:hover .drone-hotspot-icon{transform:scale(1.06)!important}

/* A more compact architectural directory. */
.amenity-directory{margin:-46px 0 0 -67px;width:134px}
.directory-panel{width:134px;padding:2px 0 2px 8px;border-left-color:rgba(240,195,111,.52)}
.directory-row{height:23px;padding:0 3px 0 6px;font-size:9.4px;font-weight:620}
.directory-chevron{font-size:14px}
.aerial-directory{margin:-43px 0 0 -56px;width:112px}
.aerial-directory .directory-panel{width:112px;padding-left:6px}
.aerial-directory .directory-row{height:21px;font-size:8.4px}
.alberca-directory{width:132px}.alberca-directory .directory-panel{width:132px}

/* Slightly larger nadir cover and exact nadir placement hides the selfie-stick footprint. */
.nadir-brand{width:178px;height:178px;margin:-89px 0 0 -89px}
.nadir-inner{width:158px;height:102px;border-radius:51px}
.nadir-brand img{width:136px;height:76px}
.nadir-brand:focus-visible{outline:none}

@media(max-width:760px){
  .amenity-directory{margin:-42px 0 0 -58px;width:116px}.directory-panel{width:116px}.directory-row{height:21px;font-size:8.6px}
  .aerial-directory{margin:-39px 0 0 -49px;width:98px}.aerial-directory .directory-panel{width:98px}.aerial-directory .directory-row{font-size:8px;height:20px}
  .nadir-brand{width:150px;height:150px;margin:-75px 0 0 -75px}.nadir-inner{width:134px;height:88px}.nadir-brand img{width:116px;height:65px}
}


/* ===== AboveMTY v7 targeted hotspot corrections ===== */
/* Aerial destination: compact black circular badge so the drone remains legible on bright windows/sky. */
.kind-aerial.link-hotspot{width:52px!important;height:52px!important;margin:-26px 0 0 -26px!important}
.kind-aerial .link-hotspot-core{width:46px!important;height:46px!important;border-radius:50%!important;border:1.4px solid rgba(224,161,58,.92)!important;background:rgba(10,10,10,.82)!important;box-shadow:0 7px 22px rgba(0,0,0,.38)!important;backdrop-filter:blur(5px)!important;display:grid!important;place-items:center!important;animation:none!important;transform:none!important}
.kind-aerial .hotspot-icon{width:31px!important;height:22px!important;display:grid!important;place-items:center!important}
.kind-aerial .drone-hotspot-icon{width:31px!important;height:21px!important;object-fit:contain!important;display:block!important;filter:none!important;transform:none!important}
.kind-aerial:hover .link-hotspot-core{transform:scale(1.06)!important;background:rgba(18,16,12,.92)!important;border-color:var(--gold-soft)!important}
.kind-aerial:hover .drone-hotspot-icon{transform:none!important}

/* Directory groups: all links in the group live in the same slim architectural panel. */
.amenity-directory{z-index:3}
.alberca-directory{margin:-34px 0 0 -67px!important;width:134px!important}
.alberca-directory .directory-panel{width:134px!important}
.ludoteca-directory{margin:-48px 0 0 -67px!important;width:134px!important}
.ludoteca-directory .directory-panel{width:134px!important}
@media(max-width:760px){
  .kind-aerial.link-hotspot{width:48px!important;height:48px!important;margin:-24px 0 0 -24px!important}
  .kind-aerial .link-hotspot-core{width:42px!important;height:42px!important}
  .kind-aerial .drone-hotspot-icon{width:28px!important;height:19px!important}
  .alberca-directory,.ludoteca-directory{width:118px!important;margin-left:-59px!important}
  .alberca-directory .directory-panel,.ludoteca-directory .directory-panel{width:118px!important}
}


/* ===== AboveMTY v8 · mobile performance =====
   Mobile only. Desktop styling and 4096 panorama level stay unchanged.
   IMPORTANT: do not set transform on Marzipano hotspot root elements here. */
.mobile-perf .top-actions,
.mobile-perf .icon-btn,
.mobile-perf .scene-dock,
.mobile-perf .pill-btn,
.mobile-perf .round-btn,
.mobile-perf .link-hotspot-core,
.mobile-perf .directory-panel,
.mobile-perf .modal-backdrop,
.mobile-perf .tour-credit,
.mobile-perf .nadir-brand {
  backdrop-filter:none!important;
  -webkit-backdrop-filter:none!important;
}
.mobile-perf .brand,
.mobile-perf .drone-hotspot-icon {
  filter:none!important;
}
.mobile-perf .scene-rail { scroll-behavior:auto!important; }
.mobile-perf .scene-card img,
.mobile-perf .link-hotspot-core,
.mobile-perf .info-hotspot-core,
.mobile-perf .nadir-inner,
.mobile-perf .directory-row,
.mobile-perf .kind-aerial .link-hotspot-core {
  animation:none!important;
  transition:none!important;
}
.mobile-perf .shade { opacity:.92; }

/* ===== AboveMTY v9 · aggressive mobile smoothness ===== */
.mobile-perf .hotspot,
.mobile-perf .hotspot *,
.mobile-perf .scene-card,
.mobile-perf .scene-card *,
.mobile-perf .icon-btn,
.mobile-perf .pill-btn,
.mobile-perf .round-btn,
.mobile-perf .scene-dock,
.mobile-perf .brand {
  transition:none!important;
  animation:none!important;
}
.mobile-perf .brand { filter:none!important; }
.mobile-perf .scene-card.active { box-shadow:0 0 0 1px var(--gold) inset!important; }
.mobile-perf .hotspot-label { box-shadow:none!important; }


/* ===== AboveMTY v10 · gesture-first mobile rendering =====
   While the finger is actively dragging the panorama, remove secondary DOM
   overlays from layout/compositing. They return immediately on release. */
.mobile-perf.mobile-panning .topbar,
.mobile-perf.mobile-panning .scene-dock,
.mobile-perf.mobile-panning .bottom-controls,
.mobile-perf.mobile-panning .tour-credit,
.mobile-perf.mobile-panning .hotspot {
  display:revert;
}
.mobile-perf #pano {
  touch-action:none;
}


/* ===== AboveMTY v11 · mobile scene preloading + intentional load state ===== */
.scene-loader{position:fixed;inset:0;z-index:90;display:grid;place-items:center;pointer-events:none;opacity:0;visibility:hidden;background:rgba(8,8,8,.18);transition:opacity .14s ease,visibility .14s ease}
.scene-loader.show{opacity:1;visibility:visible;pointer-events:auto}
.scene-loader-card{width:176px;padding:18px 18px 15px;border-radius:18px;background:rgba(12,12,11,.90);border:1px solid rgba(255,255,255,.13);box-shadow:0 16px 44px rgba(0,0,0,.35);display:flex;flex-direction:column;align-items:center;gap:10px}
.scene-loader-card img{width:112px;height:58px;object-fit:contain}
.scene-loader-line{width:112px;height:2px;border-radius:2px;overflow:hidden;background:rgba(255,255,255,.13)}
.scene-loader-line span{display:block;width:42%;height:100%;border-radius:2px;background:var(--gold-soft);animation:abvLoader 1s ease-in-out infinite}
.scene-loader-text{font:650 9px/1.25 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;letter-spacing:.06em;text-transform:uppercase;color:rgba(255,255,255,.72);text-align:center}
@keyframes abvLoader{0%{transform:translateX(-115%)}50%{transform:translateX(95%)}100%{transform:translateX(245%)}}
@media(min-width:901px) and (hover:hover){.scene-loader{display:none!important}}
.mobile-perf .scene-loader{backdrop-filter:none!important;-webkit-backdrop-filter:none!important;transition:none!important}
.mobile-perf.scene-loading .topbar,.mobile-perf.scene-loading .scene-dock,.mobile-perf.scene-loading .bottom-controls,.mobile-perf.scene-loading .tour-credit,.mobile-perf.scene-loading .hotspot{visibility:hidden!important}


/* ===== AboveMTY v12 · seamless mobile scene handoff =====
   On phones the new panorama is assembled behind an opaque branded veil.
   This prevents texture download/decode from appearing as visible stutter. */
.mobile-perf .scene-loader{
  background:rgba(8,8,8,.97)!important;
  backdrop-filter:none!important;
  -webkit-backdrop-filter:none!important;
  transition:opacity .10s linear,visibility .10s linear!important;
  will-change:opacity;
}
.mobile-perf .scene-loader-card{
  box-shadow:none!important;
  background:rgba(12,12,11,.96)!important;
}
.mobile-perf.scene-loading #pano{pointer-events:none!important;}


/* ===== AboveMTY v13 · guaranteed mobile scene veil ===== */
.mobile-perf .scene-loader{z-index:1000!important;position:fixed!important;inset:0!important;display:grid!important;place-items:center!important;background:#0b0b0a!important;}
.mobile-perf .scene-loader:not(.show){display:none!important;}
.mobile-perf .scene-loader.show{display:grid!important;opacity:1!important;visibility:visible!important;}
.mobile-perf .scene-loader-card{position:relative!important;z-index:1001!important;display:flex!important;opacity:1!important;visibility:visible!important;}


/* ===== AboveMTY v19 · fixed mobile chrome + share sheet ===== */
.mobile-perf .topbar,.mobile-perf .hero-copy,.mobile-perf .scene-dock,.mobile-perf .bottom-controls,.mobile-perf .tour-credit{visibility:visible!important;opacity:1!important}
.mobile-perf.mobile-panning .topbar{display:flex!important}
.mobile-perf.mobile-panning .hero-copy{display:block!important}
.mobile-perf.mobile-panning .scene-dock{display:grid!important}
.mobile-perf.mobile-panning .bottom-controls{display:flex!important}
.mobile-perf.mobile-panning .tour-credit{display:flex!important}
.mobile-perf.mobile-panning .hotspot{display:block!important}
.share-modal{position:fixed;inset:0;z-index:160;display:grid;place-items:center;padding:20px;opacity:0;visibility:hidden;transition:opacity .16s ease,visibility .16s ease}
.share-modal.open{opacity:1;visibility:visible}.share-backdrop{position:absolute;inset:0;border:0;background:rgba(0,0,0,.66);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}
.share-card{position:relative;z-index:1;width:min(560px,94vw);padding:22px;border-radius:22px;background:#171613;border:1px solid rgba(255,255,255,.13);box-shadow:0 28px 90px rgba(0,0,0,.55);color:#fff}
.share-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:18px}.share-kicker{font-size:9px;font-weight:850;letter-spacing:.18em;color:var(--gold-soft)}.share-head h2{margin:6px 0 0;font:500 25px/1.05 Georgia,serif}.share-close{width:36px;height:36px;border-radius:50%;border:1px solid rgba(255,255,255,.15);background:rgba(255,255,255,.06);font-size:25px;line-height:1;cursor:pointer}
.share-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.share-option{min-height:94px;border:1px solid rgba(255,255,255,.12);border-radius:15px;background:rgba(255,255,255,.045);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:9px;cursor:pointer;color:#fff}.share-option:hover{border-color:rgba(240,195,111,.55);background:rgba(224,161,58,.09)}.share-option b{font-size:11px}.share-badge{width:40px;height:40px;border-radius:12px;display:grid;place-items:center;background:rgba(255,255,255,.10);font-size:15px;font-weight:850}.whatsapp .share-badge{background:#25D366;color:#07180c}.facebook .share-badge{background:#1877F2}.xshare .share-badge{background:#050505;border:1px solid rgba(255,255,255,.16)}.threads .share-badge{background:#050505}.copy .share-badge,.more .share-badge{color:var(--gold-soft)}.share-url{margin-top:14px;padding-top:13px;border-top:1px solid rgba(255,255,255,.09);font-size:10px;color:rgba(255,255,255,.55);text-align:center}
@media(max-width:520px){.top-actions{gap:3px}.icon-btn{width:34px;height:34px}.share-card{padding:18px 15px}.share-grid{grid-template-columns:repeat(2,1fr)}.share-option{min-height:78px}.share-head h2{font-size:22px}.floorplan-btn{font-size:11px!important}}


/* ===== AboveMTY v20 · share polish / iPhone immersive fallback ===== */
.share-badge{overflow:hidden}
.share-badge .brand-svg{width:23px;height:23px;display:block;fill:currentColor}
.whatsapp .share-badge{background:#25D366;color:#fff}
.facebook .share-badge{background:#1877F2;color:#fff}
.xshare .share-badge,.threads .share-badge{background:#050505;color:#fff;border:1px solid rgba(255,255,255,.16)}

/* When iPhone/WKWebView does not expose element fullscreen, maximize the panorama
   inside the available browser viewport while keeping the fullscreen control visible. */
.tour-immersive .hero-copy,
.tour-immersive .scene-dock,
.tour-immersive .tour-credit{opacity:0!important;visibility:hidden!important;pointer-events:none!important}
.tour-immersive .bottom-controls .pill-btn,
.tour-immersive .bottom-controls .round-btn:not(#zoomInBtn):not(#zoomOutBtn){opacity:0!important;visibility:hidden!important;pointer-events:none!important}
.tour-immersive .topbar .brand{opacity:0!important;visibility:hidden!important}
.tour-immersive .topbar{justify-content:flex-end!important;pointer-events:none!important}
.tour-immersive .top-actions{pointer-events:auto!important}
.tour-immersive .top-actions .icon-btn:not(#fullscreenBtn){display:none!important}
.tour-immersive #fullscreenBtn{background:rgba(224,161,58,.22)!important;border-color:rgba(240,195,111,.75)!important}

/* ===== AboveMTY v21: restaurar interfaz aprobada ===== */

/* El botón debe mostrar icono + "Ver espacios" */
#spacesBtn {
  width: auto !important;
  min-width: 0 !important;
  padding-left: 16px !important;
  padding-right: 18px !important;
  gap: 10px !important;
}

#spacesBtn > span:last-child {
  display: inline !important;
  opacity: 1 !important;
  visibility: visible !important;
  width: auto !important;
  max-width: none !important;
  overflow: visible !important;
  white-space: nowrap !important;
}

/* Mientras el usuario mueve el 360, limpiar la vista */
.mobile-panning .scene-dock,
.mobile-panning .bottom-controls,
.mobile-panning .tour-credit,
.mobile-panning .hotspot {
  display: none !important;
}


/* ===== AboveMTY v22: interacción y miniaturas definitivas ===== */

/* Ocultar interfaz mientras se arrastra el panorama */
.mobile-panning .scene-dock,
.mobile-panning .bottom-controls,
.mobile-panning .tour-credit,
.mobile-panning .hotspot,
.mobile-perf.mobile-panning .scene-dock,
.mobile-perf.mobile-panning .bottom-controls,
.mobile-perf.mobile-panning .tour-credit,
.mobile-perf.mobile-panning .hotspot {
  display: none !important;
}

/* Miniaturas: una sola imagen correctamente encuadrada */
.scene-card {
  position: relative !important;
  overflow: hidden !important;
}

.scene-card img {
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  max-width: none !important;
  max-height: none !important;
  object-fit: cover !important;
  object-position: center center !important;
  display: block !important;
  margin: 0 !important;
  transform: none !important;
}

/* Oscurecimiento inferior para el nombre */
.scene-card::after {
  content: "" !important;
  position: absolute !important;
  left: 0 !important;
  right: 0 !important;
  bottom: 0 !important;
  height: 48% !important;
  background: linear-gradient(to bottom, transparent, rgba(0,0,0,.78)) !important;
  pointer-events: none !important;
  z-index: 1 !important;
}

.scene-card > span {
  position: absolute !important;
  left: 10px !important;
  right: 8px !important;
  bottom: 8px !important;
  margin: 0 !important;
  z-index: 2 !important;
  white-space: nowrap !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
}

/* Mantener texto completo del botón */
#spacesBtn > span:last-child {
  display: inline !important;
  width: auto !important;
  max-width: none !important;
  opacity: 1 !important;
  visibility: visible !important;
  white-space: nowrap !important;
}

