:root{--bg:#f5f5f7;--card:rgba(255,255,255,0.98);--bdr:rgba(0,0,0,0.06);--ink:#111827;--txt:#374151;--mut:#9ca3af;--acc:#2563eb;--gld:#f59e0b;--grn:#059669;--shd:0 20px 50px rgba(0,0,0,.12);--gl:blur(20px) saturate(180%);--R:20px;--hf:'Outfit',sans-serif}
*{margin:0;padding:0;box-sizing:border-box;-webkit-font-smoothing:antialiased}
body{background:#f5f5f7;color:var(--txt);font-family:'Outfit',sans-serif;overflow:hidden;height:100vh;height:100dvh}
#map{position:absolute;inset:0;z-index:1;cursor:crosshair}
.loader{position:fixed;inset:0;z-index:10000;background:#f5f5f7;display:flex;flex-direction:column;align-items:center;justify-content:center;transition:opacity .5s}
.loader h1{font-family:'Outfit',sans-serif;font-size:1.6rem;font-weight:700;color:#111827}
.loader p{font-size:.7rem;color:#9ca3af;margin-top:4px}
.loader .ld-bar{width:120px;height:3px;background:#e5e7eb;border-radius:3px;margin-top:16px;overflow:hidden}
.loader .ld-bar::after{content:'';display:block;width:40%;height:100%;background:#2563eb;border-radius:3px;animation:ldAnim 1.2s ease-in-out infinite}
@keyframes ldAnim{0%{transform:translateX(-100%)}100%{transform:translateX(350%)}}
.tag{font-size:.58rem;font-weight:800;color:var(--acc);text-transform:uppercase;letter-spacing:2px;margin-bottom:8px;display:block}
.hero-price{font-family:var(--hf);font-size:2.6rem;font-weight:700;color:var(--ink);line-height:1}
@keyframes fadeIn{from{opacity:0}to{opacity:1}}
@keyframes tickIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
@keyframes tickOut{from{opacity:1}to{opacity:0;transform:translateY(-8px)}}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.35}}
@keyframes fadeUp{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}
.fade{animation:fadeUp .5s ease-out forwards}
@keyframes priceReveal{to{opacity:1;transform:scale(1)}}
@keyframes streetGlow{0%,100%{filter:drop-shadow(0 0 8px rgba(37,99,235,.6))}50%{filter:drop-shadow(0 0 16px rgba(37,99,235,.8))}}
@keyframes mkPulse{0%,100%{filter:drop-shadow(0 2px 6px rgba(0,0,0,.3))}50%{filter:drop-shadow(0 2px 12px rgba(124,58,237,.5))}}
.sub-tip .maplibregl-popup-content{font-family:'Outfit',sans-serif!important;font-size:.72rem!important;font-weight:500!important;background:rgba(255,255,255,.95)!important;border:1px solid rgba(0,0,0,.06)!important;border-radius:10px!important;padding:8px 12px!important;box-shadow:0 6px 20px rgba(0,0,0,.15)!important;color:#1a1a1a!important;line-height:1.4!important}
.sub-tip .maplibregl-popup-tip{display:none!important}
.maplibregl-popup-close-button{display:none!important}
.pac-container{font-family:'Outfit',sans-serif!important;border-radius:12px!important;border:1px solid rgba(0,0,0,.06)!important;box-shadow:0 10px 30px rgba(0,0,0,.12)!important;margin-top:4px!important;z-index:10000!important}
.pac-item{padding:8px 12px!important;font-size:.75rem!important;cursor:pointer!important;border-top:1px solid rgba(0,0,0,.04)!important}
.pac-item:hover{background:rgba(37,99,235,.06)!important}
.pac-item-query{font-weight:600!important;color:#111827!important;font-size:.75rem!important}
.pac-icon{display:none!important}
