:root{--bg:#0b0d10;--glass:#0c0e128c;--glass-strong:#0c0e12c7;--line:#ffffff24;--text:#fff;--muted:#ffffffb3;--accent:#e8a349;--accent-ink:#1a1206;--radius:999px;--ease:cubic-bezier(.22, .61, .36, 1);--safe-b:env(safe-area-inset-bottom,0px)}*{box-sizing:border-box}html,body{background:var(--bg);height:100%;color:var(--text);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;overscroll-behavior:none;margin:0;font-family:Manrope,system-ui,-apple-system,Segoe UI,sans-serif;overflow:hidden}button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:0}svg{fill:none;stroke:currentColor;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;flex:none;width:20px;height:20px}#app{-webkit-user-select:none;user-select:none;position:fixed;inset:0}#stage{touch-action:none;width:100%;height:100%;display:block;position:absolute;inset:0}#stage.is-draggable{cursor:grab}#stage.is-dragging{cursor:grabbing}#pano{opacity:0;pointer-events:none;transition:opacity .45s var(--ease);background:0 0;position:absolute;inset:0}#pano.is-open{opacity:1;pointer-events:auto}#pano .pano-view{position:absolute;inset:0}#pano .pnlm-container{background:#000}#pano .pnlm-load-box,#pano .pnlm-about-msg{display:none!important}.icon-btn,.btn-ghost,.nav,.chips,.hint,.panel{background:var(--glass);border:1px solid var(--line);-webkit-backdrop-filter:blur(14px)saturate(1.2)}.icon-btn{border-radius:var(--radius);place-items:center;width:40px;height:40px;transition:background .2s,transform .2s;display:grid}.icon-btn:hover{background:var(--glass-strong)}.icon-btn:active{transform:scale(.94)}.icon-btn--lg{width:48px;height:48px}.btn-ghost{border-radius:var(--radius);align-items:center;gap:8px;height:40px;padding:0 16px 0 12px;font-size:14px;font-weight:600;transition:background .2s;display:inline-flex}.btn-ghost:hover{background:var(--glass-strong)}.btn-ghost svg{width:18px;height:18px}.hint{border-radius:var(--radius);height:36px;color:var(--muted);align-items:center;gap:8px;padding:0 14px;font-size:13px;display:inline-flex}.hint svg{width:18px;height:18px}.brand{pointer-events:none;text-shadow:0 1px 12px #00000080;transition:opacity .4s var(--ease);position:absolute;top:18px;left:20px}.brand__name{letter-spacing:.02em;font-size:18px;font-weight:700}.brand__tagline{color:var(--muted);margin-top:2px;font-size:12px}.top-actions{gap:8px;display:flex;position:absolute;top:16px;right:16px}.ui{opacity:0;visibility:hidden;transition:opacity .35s var(--ease), transform .35s var(--ease), visibility 0s linear .35s;transform:translateY(8px)}body[data-mode=home]:not(.is-travelling) .ui--home,body[data-mode=orbit]:not(.is-travelling) .ui--orbit,body[data-mode=amenities] .ui--amenities,body[data-mode=unit]:not(.is-travelling) .ui--unit{opacity:1;visibility:visible;transition-delay:0s;transform:none}body[data-mode=home] .brand{opacity:0}body[data-mode=loading] .brand,body[data-mode=loading] .nav,body[data-mode=loading] .top-actions{opacity:0;pointer-events:none}.hero{left:50%;bottom:calc(110px + var(--safe-b));text-align:center;text-shadow:0 2px 24px #0000008c;width:min(92vw,640px);position:absolute;translate:-50%}.hero h1{letter-spacing:-.02em;margin:0;font-size:clamp(30px,5.2vw,56px);font-weight:700;line-height:1.05}.hero p{color:#ffffffd9;margin:10px 0 22px;font-size:clamp(14px,1.6vw,18px)}.cta{border-radius:var(--radius);background:var(--accent);height:48px;color:var(--accent-ink);text-shadow:none;align-items:center;gap:10px;padding:0 22px;font-size:15px;font-weight:700;transition:transform .2s,filter .2s;display:inline-flex;box-shadow:0 10px 30px #00000059}.cta:hover{filter:brightness(1.06);transform:translateY(-1px)}.cta svg{stroke-width:2.2px;width:18px;height:18px}.orbit-ui{left:50%;bottom:calc(92px + var(--safe-b));align-items:center;gap:12px;display:flex;position:absolute;translate:-50%}.chips{left:50%;bottom:calc(88px + var(--safe-b));scrollbar-width:none;border-radius:18px;gap:4px;max-width:calc(100vw - 24px);padding:4px;display:flex;position:absolute;overflow-x:auto;translate:-50%}.chips::-webkit-scrollbar{display:none}.chip{height:36px;color:var(--muted);white-space:nowrap;border-radius:14px;flex:none;padding:0 14px;font-size:13px;font-weight:600;transition:background .2s,color .2s}.chip:hover{color:var(--text);background:#ffffff14}.chip.is-active{color:#111;background:#fff}body.is-travelling .chips{pointer-events:auto}#markers{pointer-events:none;position:absolute;inset:0}.marker{border-radius:var(--radius);background:var(--glass-strong);border:1px solid var(--line);-webkit-backdrop-filter:blur(10px);pointer-events:auto;opacity:0;height:40px;transition:opacity .3s var(--ease), scale .3s var(--ease), background .2s;align-items:center;gap:8px;padding:0 6px 0 14px;font-size:14px;font-weight:700;display:inline-flex;position:absolute;translate:-50% -50%;scale:.9}.marker:after{content:"";background:linear-gradient(#fffc,#0000);width:1px;height:22px;position:absolute;top:100%;left:50%}.marker__go{border-radius:var(--radius);background:var(--accent);width:28px;height:28px;color:var(--accent-ink);place-items:center;display:grid}.marker__go svg{stroke-width:2.4px;width:16px;height:16px}.marker:hover{background:#0c0e12eb}body[data-mode=units]:not(.is-travelling) .marker{opacity:1;scale:1}body:not([data-mode=units]) .marker,body.is-travelling .marker{pointer-events:none}.panel{border-radius:20px;width:min(320px,100vw - 40px);padding:20px;position:absolute;top:50%;right:20px;translate:0 -50%}.panel__eyebrow{letter-spacing:.14em;text-transform:uppercase;color:var(--accent);font-size:11px;font-weight:700}.panel__title{margin:6px 0 8px;font-size:26px}.panel__text{color:var(--muted);margin:0 0 18px;font-size:14px;line-height:1.5}.pano-ui{pointer-events:none;opacity:0;transition:opacity .35s var(--ease);justify-content:center;display:flex;position:absolute;top:16px;left:0;right:0}.pano-ui__actions{flex-direction:column;align-items:flex-end;gap:8px;display:flex;position:absolute;top:52px;right:16px}body.has-pano .pano-ui{opacity:1}body.has-pano .pano-ui button{pointer-events:auto}body.has-pano .brand,body.has-pano .ui--orbit,body.has-pano .ui--unit,body.has-pano .ui--home{opacity:0;visibility:hidden}.nav{left:50%;bottom:calc(16px + var(--safe-b));border-radius:var(--radius);max-width:calc(100vw - 16px);transition:opacity .4s var(--ease);gap:2px;padding:4px;display:flex;position:absolute;translate:-50%}.nav button{border-radius:var(--radius);height:42px;color:var(--muted);white-space:nowrap;align-items:center;gap:8px;padding:0 16px;font-size:14px;font-weight:600;transition:background .2s,color .2s;display:inline-flex}.nav button:hover{color:var(--text);background:#ffffff14}.nav button.is-active{background:var(--accent);color:var(--accent-ink)}.nav svg{width:18px;height:18px}.progress{opacity:0;pointer-events:none;height:3px;transition:opacity .3s;position:absolute;top:0;left:0;right:0}.progress.is-visible{opacity:1}.progress span{background:var(--accent);width:0;height:100%;box-shadow:0 0 12px var(--accent);transition:width .25s linear;display:block}.progress.is-indeterminate span{width:30%;animation:1.1s ease-in-out infinite indeterminate}@keyframes indeterminate{0%{transform:translate(-100%)}to{transform:translate(340%)}}.toast{background:var(--glass-strong);border:1px solid var(--line);opacity:0;pointer-events:none;transition:opacity .3s, translate .3s var(--ease);border-radius:12px;padding:10px 16px;font-size:13px;position:absolute;top:20px;left:50%;translate:-50% -20px}.toast.is-visible{opacity:1;translate:-50%}.loader{background:var(--bg);transition:opacity .8s var(--ease), visibility 0s linear .8s;z-index:10;place-content:center;justify-items:center;gap:18px;display:grid;position:absolute;inset:0}.loader.is-done{opacity:0;visibility:hidden}.loader__name{letter-spacing:.04em;font-size:clamp(22px,3vw,32px);font-weight:700}.loader__bar{background:#ffffff1f;border-radius:2px;width:min(260px,60vw);height:2px;overflow:hidden}.loader__bar span{background:var(--accent);width:0;height:100%;transition:width .3s linear;display:block}.loader__pct{color:var(--muted);font-variant-numeric:tabular-nums;font-size:12px}.rotate-hint{border-radius:var(--radius);background:var(--glass-strong);border:1px solid var(--line);white-space:nowrap;align-items:center;gap:8px;padding:8px 14px;font-size:12px;animation:.6s 5s forwards fadeout;display:none;position:absolute;top:64px;left:50%;translate:-50%}@media (pointer:coarse) and (orientation:portrait){.rotate-hint{display:inline-flex}}@keyframes fadeout{to{opacity:0;visibility:hidden}}@media (width<=720px){.nav button{flex-direction:column;gap:2px;height:50px;padding:0 12px;font-size:10px}.nav{border-radius:22px}.nav svg{width:20px;height:20px}.brand{top:14px;left:14px}.brand__name{font-size:15px}.panel{top:auto;bottom:calc(150px + var(--safe-b));right:50%;translate:50%}.hero{bottom:calc(96px + var(--safe-b))}.chips{bottom:calc(80px + var(--safe-b))}.orbit-ui{bottom:calc(84px + var(--safe-b))}}@media (height<=460px){.nav button{flex-direction:row;height:36px;font-size:12px}.hero p{margin:6px 0 12px}.hero{bottom:calc(64px + var(--safe-b))}.chips{bottom:60px}.orbit-ui{bottom:62px}.panel{top:50%;bottom:auto;right:16px;translate:0 -50%}}@media (prefers-reduced-motion:reduce){*{transition-duration:.01ms!important;animation-duration:.01ms!important}}
