:root{--bg-void:#050508;--bg-deep:#0a0a0f;--bg-surface:#111118;--bg-elevated:#1a1a24;--bg-glass:#111118b8;--bg-glass-hover:#1a1a24d9;--accent:#7c3aed;--accent-light:#a78bfa;--accent-glow:#7c3aed40;--accent-surface:#7c3aed14;--text-primary:#f0f0f5;--text-secondary:#9ca3af;--text-muted:#6b7280;--text-accent:#a78bfa;--border-subtle:#ffffff0f;--border-glass:#ffffff1a;--border-accent:#7c3aed4d;--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--radius-xl:20px;--radius-pill:999px;--shadow-sm:0 2px 8px #0000004d;--shadow-md:0 4px 24px #0006;--shadow-lg:0 8px 48px #00000080;--shadow-glow:0 0 30px var(--accent-glow);--ease-out:cubic-bezier(.16, 1, .3, 1);--ease-spring:cubic-bezier(.34, 1.56, .64, 1);--duration-fast:.2s;--duration-normal:.4s;--duration-slow:.8s;--space-xs:4px;--space-sm:8px;--space-md:16px;--space-lg:24px;--space-xl:32px;--space-2xl:48px}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body{background:var(--bg-void);height:100%;color:var(--text-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;overflow:hidden}#canvas-container{z-index:0;position:fixed;inset:0}#canvas-container canvas{display:block;width:100%!important;height:100%!important}#loading-screen{z-index:1000;background:var(--bg-void);transition:opacity .8s var(--ease-out), visibility .8s;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}#loading-screen.fade-out{opacity:0;visibility:hidden;pointer-events:none}.loader-content{align-items:center;gap:var(--space-md);flex-direction:column;display:flex}.loader-logo{animation:2s ease-in-out infinite pulse-glow}@keyframes pulse-glow{0%,to{filter:drop-shadow(0 0 8px var(--accent-glow));transform:scale(1)}50%{filter:drop-shadow(0 0 20px var(--accent-glow));transform:scale(1.05)}}.loader-title{letter-spacing:.3em;color:var(--text-primary);background:linear-gradient(135deg, var(--accent-light), var(--accent));-webkit-text-fill-color:transparent;background-clip:text;font-size:1.5rem;font-weight:700}.loader-subtitle{color:var(--text-muted);letter-spacing:.05em;font-size:.85rem;font-weight:400}.progress-track{background:var(--bg-elevated);border-radius:var(--radius-pill);width:200px;height:3px;margin-top:var(--space-sm);overflow:hidden}.progress-bar{background:linear-gradient(90deg, var(--accent), var(--accent-light));border-radius:var(--radius-pill);width:0%;height:100%;transition:width .3s var(--ease-out);box-shadow:0 0 12px var(--accent-glow)}.progress-text{color:var(--text-muted);font-variant-numeric:tabular-nums;font-size:.75rem;font-weight:500}#ui-overlay{z-index:10;pointer-events:none;opacity:1;transition:opacity .6s var(--ease-out);position:fixed;inset:0}#ui-overlay.hidden{opacity:0}#ui-overlay.visible{opacity:1}#ui-overlay>*{pointer-events:auto}#top-bar{padding:var(--space-md) var(--space-lg);background:linear-gradient(#05050899 0%,#0000 100%);justify-content:space-between;align-items:center;display:flex;position:absolute;top:0;left:0;right:0}.brand{align-items:center;gap:var(--space-sm);letter-spacing:.25em;color:var(--text-primary);opacity:.7;transition:opacity var(--duration-fast);font-size:.8rem;font-weight:700;display:flex}.brand-sub{opacity:.6;text-transform:none;letter-spacing:normal;margin-left:4px;font-size:.8em;font-weight:400}.brand:hover{opacity:1}#layer-switcher{gap:var(--space-xs);background:var(--bg-glass);-webkit-backdrop-filter:blur(20px);border:1px solid var(--border-glass);border-radius:var(--radius-pill);padding:3px;display:flex}.layer-btn{border-radius:var(--radius-pill);color:var(--text-secondary);cursor:pointer;transition:all var(--duration-fast) var(--ease-out);white-space:nowrap;background:0 0;border:none;align-items:center;gap:6px;padding:6px 14px;font-family:inherit;font-size:.75rem;font-weight:500;display:flex;position:relative}.layer-btn.active{background:var(--accent);color:#fff;box-shadow:var(--shadow-glow)}.layer-btn.disabled{opacity:.4;cursor:not-allowed}.layer-btn:not(.disabled):not(.active):hover{background:var(--bg-glass-hover);color:var(--text-primary)}.coming-soon-badge{text-transform:uppercase;letter-spacing:.06em;background:var(--accent-surface);color:var(--accent-light);border-radius:var(--radius-pill);border:1px solid var(--border-accent);padding:1px 5px;font-size:.6rem;font-weight:600}#property-panel{bottom:var(--space-lg);left:var(--space-lg);width:340px;max-width:calc(100vw - var(--space-xl) * 2);opacity:0;animation:slide-up .8s var(--ease-out) .3s forwards;position:absolute;transform:translateY(20px)}@keyframes slide-up{to{opacity:1;transform:translateY(0)}}.panel-glass{background:var(--bg-glass);-webkit-backdrop-filter:blur(24px)saturate(1.2);border:1px solid var(--border-glass);border-radius:var(--radius-lg);padding:var(--space-lg);box-shadow:var(--shadow-lg);gap:var(--space-md);flex-direction:column;display:flex}.panel-header{justify-content:space-between;align-items:center;display:flex}.panel-tag{letter-spacing:.12em;text-transform:uppercase;background:linear-gradient(135deg, var(--accent), #9333ea);color:#fff;border-radius:var(--radius-pill);padding:4px 10px;font-size:.65rem;font-weight:600;display:inline-block}.panel-toggle-btn{background:var(--bg-elevated);width:28px;height:28px;color:var(--text-secondary);cursor:pointer;transition:all var(--duration-fast);border:none;border-radius:50%;justify-content:center;align-items:center;display:none}.panel-toggle-btn:hover{background:var(--bg-glass-hover);color:var(--text-primary)}.property-name{letter-spacing:-.01em;font-size:1.35rem;font-weight:700;line-height:1.2}.property-address{color:var(--text-secondary);font-size:.85rem;font-weight:400}.property-stats{gap:var(--space-sm);padding:var(--space-md) 0;border-top:1px solid var(--border-subtle);border-bottom:1px solid var(--border-subtle);grid-template-columns:repeat(4,1fr);display:grid}.stat{flex-direction:column;align-items:center;gap:2px;display:flex}.stat-value{color:var(--text-primary);font-size:1.1rem;font-weight:600}.stat-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.08em;font-size:.65rem;font-weight:500}.property-features{gap:var(--space-xs);flex-wrap:wrap;display:flex}.feature-chip{color:var(--text-secondary);background:var(--bg-elevated);border:1px solid var(--border-subtle);border-radius:var(--radius-pill);transition:all var(--duration-fast);align-items:center;gap:4px;padding:4px 10px;font-size:.72rem;font-weight:500;display:inline-flex}.feature-chip:hover{border-color:var(--border-accent);color:var(--text-primary);background:var(--accent-surface)}.panel-footer{gap:var(--space-sm);align-items:center;display:flex}.cta-btn{justify-content:center;align-items:center;gap:var(--space-sm);background:linear-gradient(135deg, var(--accent), #9333ea);color:#fff;border-radius:var(--radius-md);cursor:pointer;transition:all var(--duration-fast) var(--ease-out);box-shadow:var(--shadow-glow);border:none;flex:1;padding:10px 20px;font-family:inherit;font-size:.82rem;font-weight:600;display:inline-flex}.cta-btn:hover{box-shadow:0 0 40px var(--accent-glow), var(--shadow-md);transform:translateY(-1px)}.cta-btn:active{transform:translateY(0)}.share-btn{border:1px solid var(--border-glass);border-radius:var(--radius-md);background:var(--bg-glass);width:40px;height:40px;color:var(--text-secondary);cursor:pointer;transition:all var(--duration-fast);flex-shrink:0;justify-content:center;align-items:center;display:flex}.share-btn:hover{border-color:var(--border-accent);color:var(--text-primary);background:var(--accent-surface)}#controls-hint{bottom:var(--space-lg);right:var(--space-lg);opacity:0;animation:fade-hint .6s var(--ease-out) 1.2s forwards;position:absolute}#controls-hint.fade-out{animation:fade-out-hint 1s var(--ease-out) forwards}@keyframes fade-hint{to{opacity:1}}@keyframes fade-out-hint{to{opacity:0;pointer-events:none}}#controls-hint p{color:var(--text-muted);background:var(--bg-glass);-webkit-backdrop-filter:blur(12px);border:1px solid var(--border-subtle);border-radius:var(--radius-pill);padding:8px 16px;font-size:.72rem}.hint-mobile{display:none}@media (width<=768px){#top-bar{padding:var(--space-sm) var(--space-md);gap:var(--space-sm);flex-wrap:wrap}.brand{font-size:.7rem}#layer-switcher{order:3;justify-content:center;width:100%}.layer-btn span:not(.coming-soon-badge){font-size:.7rem}#property-panel{width:100%;max-width:100%;animation-name:slide-up-mobile;bottom:0;left:0;right:0}@keyframes slide-up-mobile{to{opacity:1;transform:translateY(0)}}.panel-glass{border-radius:var(--radius-lg) var(--radius-lg) 0 0;padding:var(--space-md) var(--space-lg) var(--space-xl);border-bottom:none}.panel-toggle-btn{display:flex}.property-name{font-size:1.15rem}#property-panel.collapsed .property-stats,#property-panel.collapsed .property-features,#property-panel.collapsed .panel-footer,#property-panel.collapsed .property-address{display:none}#property-panel.collapsed .panel-toggle-btn svg{transform:rotate(180deg)}#controls-hint{top:auto;bottom:auto;right:50%;transform:translate(50%)}.hint-desktop{display:none}.hint-mobile{display:inline}}@media (width<=480px){.layer-btn{gap:4px;padding:5px 10px}.layer-btn span:not(.coming-soon-badge){font-size:.65rem}.coming-soon-badge{display:none}.property-stats{gap:var(--space-xs);grid-template-columns:repeat(4,1fr)}.stat-value{font-size:.95rem}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.spatial-marker{align-items:center;gap:var(--space-sm);background:var(--bg-glass);-webkit-backdrop-filter:blur(12px);border:1px solid var(--border-subtle);border-radius:var(--radius-pill);color:var(--text-primary);cursor:pointer;pointer-events:auto;transition:all var(--duration-fast) var(--ease-out);box-shadow:var(--shadow-md);padding:6px 14px 6px 6px;font-family:Inter,sans-serif;font-size:.75rem;font-weight:600;display:flex}.spatial-marker:hover{background:var(--bg-glass-hover);border-color:var(--accent-light);box-shadow:var(--shadow-glow);transform:translateY(-2px)scale(1.05)}.spatial-marker:active{transform:translateY(0)scale(.98)}.marker-icon{background:linear-gradient(135deg, var(--accent), #9333ea);color:#fff;width:24px;height:24px;box-shadow:0 0 10px var(--accent-glow);border-radius:50%;justify-content:center;align-items:center;display:flex}#interior-gallery{z-index:50;opacity:1;transition:opacity .5s var(--ease-out), visibility .5s;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}#interior-gallery.hidden{opacity:0;visibility:hidden;pointer-events:none}.gallery-backdrop{-webkit-backdrop-filter:blur(20px);background:#050508d9;position:absolute;inset:0}.gallery-content{z-index:2;width:100%;height:100%;padding-top:80px;padding-bottom:var(--space-lg);flex-direction:column;display:flex;position:relative}.gallery-header{text-align:center;margin-bottom:var(--space-md);padding:0 var(--space-xl);justify-content:center;align-items:center;display:flex;position:relative}.gallery-title{color:var(--text-primary);letter-spacing:.05em;font-size:1.25rem;font-weight:600}.gallery-close-btn{right:var(--space-xl);background:var(--bg-glass);border:1px solid var(--border-glass);width:40px;height:40px;color:var(--text-primary);cursor:pointer;transition:all var(--duration-fast);backdrop-filter:blur(8px);border-radius:50%;justify-content:center;align-items:center;display:flex;position:absolute}.gallery-close-btn:hover{color:#ffb3b3;background:#ff3c3c33;border-color:#ff3c3c80;transform:scale(1.1)rotate(90deg)}.gallery-close-btn:active{transform:scale(.95)}.gallery-main{padding:0 var(--space-xl);flex:1;justify-content:space-between;align-items:center;min-height:0;display:flex}.gallery-image-container{height:100%;padding:0 var(--space-lg);flex:1;justify-content:center;align-items:center;display:flex}#gallery-img{object-fit:contain;border-radius:var(--radius-lg);max-width:100%;max-height:100%;box-shadow:var(--shadow-lg);border:1px solid var(--border-glass);transition:opacity .3s var(--ease-out)}.nav-btn{background:var(--bg-glass);border:1px solid var(--border-glass);width:48px;height:48px;color:var(--text-primary);cursor:pointer;transition:all var(--duration-fast);backdrop-filter:blur(8px);border-radius:50%;justify-content:center;align-items:center;display:flex}.nav-btn:hover{background:var(--bg-glass-hover);border-color:var(--border-accent);color:var(--accent-light);transform:scale(1.1)}.nav-btn:active{transform:scale(.95)}.gallery-thumbnails{gap:var(--space-sm);height:80px;padding:0 var(--space-xl);scrollbar-width:none;justify-content:center;align-items:center;display:flex;overflow-x:auto}.gallery-thumbnails::-webkit-scrollbar{display:none}.thumbnail-img{object-fit:cover;border-radius:var(--radius-sm);cursor:pointer;opacity:.5;width:90px;height:60px;transition:all var(--duration-fast);border:2px solid #0000}.thumbnail-img:hover{opacity:.8}.thumbnail-img.active{opacity:1;border-color:var(--accent);box-shadow:0 0 12px var(--accent-glow)}@media (width<=768px){.gallery-main,.gallery-image-container{padding:0 var(--space-sm)}.nav-btn{width:40px;height:40px}.gallery-thumbnails{padding:0 var(--space-md);justify-content:flex-start}}
