:root{--pride-black: #000000;--pride-brown: #613915;--pride-blue: #74D1EA;--pride-pink: #F4A9BC;--pride-white: #FFFFFF;--bg-primary: #F8F9FA;--text-main: #1A1A1A;--text-muted: #6C757D;--accent-main: #007AFF;--glass-white: rgba(255, 255, 255, .75);--glass-border: rgba(255, 255, 255, .4);--glass-shadow: 0 8px 32px 0 rgba(31, 38, 135, .07);--font-main: "Inter", sans-serif;--font-display: "Outfit", sans-serif;--radius-lg: 24px;--radius-md: 16px}*{box-sizing:border-box;margin:0;padding:0}body,html,#app{width:100%;height:100%;overflow:hidden;background-color:var(--bg-primary);color:var(--text-main);font-family:var(--font-main);-webkit-font-smoothing:antialiased}#map-container{position:absolute;top:0;left:0;width:100%;height:100%;z-index:1}#map{width:100%;height:100%}.glass{background:var(--glass-white);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1px solid var(--glass-border);box-shadow:var(--glass-shadow)}.map-header{position:fixed;top:24px;left:24px;right:24px;height:80px;z-index:10;display:flex;align-items:center;padding:0 32px;justify-content:space-between;border-radius:var(--radius-lg)}.brand-text{font-family:var(--font-display);font-size:1.6rem;font-weight:800;letter-spacing:-.03em;color:var(--text-main);display:flex;align-items:center;gap:12px}.brand-text:before{content:"";width:12px;height:32px;background:linear-gradient(to bottom,var(--pride-black) 0%,var(--pride-brown) 20%,var(--pride-blue) 40%,var(--pride-pink) 60%,var(--pride-white) 80%);border-radius:4px}.filter-controls{display:flex;gap:8px;background:#00000008;padding:6px;border-radius:14px}.filter-btn{padding:8px 18px;background:transparent;border:none;border-radius:10px;color:var(--text-muted);font-family:var(--font-display);font-weight:600;font-size:.9rem;cursor:pointer;transition:all .2s ease}.filter-btn:hover{color:var(--text-main);background:#ffffff80}.filter-btn.active{background:var(--pride-white);color:var(--text-main);box-shadow:0 4px 12px #0000000d}.info-drawer{position:fixed;bottom:0;right:24px;width:420px;max-height:calc(100% - 130px);z-index:20;padding:48px 32px 32px;border-radius:var(--radius-lg) var(--radius-lg) 0 0;transform:translateY(110%);transition:transform .6s cubic-bezier(.16,1,.3,1);box-shadow:0 -10px 40px #0000001a}.drawer-handle{display:none}.info-drawer.open{transform:translateY(0)}#drawer-content h2{font-family:var(--font-display);font-size:2.2rem;font-weight:800;margin-bottom:16px;letter-spacing:-.04em;color:var(--text-main)}.drawer-body{font-size:1.05rem;color:var(--text-muted);line-height:1.6}.icon-button{background:#f0f0f0;color:#333;width:32px;height:32px;border-radius:50%;border:none;display:flex;align-items:center;justify-content:center;cursor:pointer;position:absolute;top:24px;right:24px;transition:all .2s}.icon-button:hover{background:#e0e0e0;transform:scale(1.1)}.map-footer{position:fixed;bottom:24px;left:24px;z-index:10;display:flex;align-items:center;gap:12px}.status-pill{padding:10px 20px;border-radius:50px;font-family:var(--font-display);font-weight:700;font-size:.8rem;letter-spacing:.05em;text-transform:uppercase}.locate-btn{background:var(--text-main);color:#fff;padding:10px 24px;border-radius:50px;border:none;font-family:var(--font-display);font-weight:700;font-size:.8rem;cursor:pointer;transition:all .3s;box-shadow:0 4px 15px #0000001a}.locate-btn:hover{transform:translateY(-2px);box-shadow:0 6px 20px #00000026}.map-label-bg{background:#fff;padding:2px 8px;border-radius:4px;box-shadow:0 2px 4px #0000001a;text-shadow:0 1px 2px rgba(255,255,255,.8)}.map-label{text-shadow:-1px -1px 0 #fff,1px -1px 0 #fff,-1px 1px 0 #fff,1px 1px 0 #fff}@keyframes pulse{0%{transform:scale(.95);opacity:.9}50%{transform:scale(1.05);opacity:1}to{transform:scale(.95);opacity:.9}}.live-indicator{display:inline-flex;align-items:center;gap:4px}.live-indicator:before{content:"";display:block;width:6px;height:6px;background:#fff;border-radius:50%}.category-pill{letter-spacing:.05em;box-shadow:0 2px 8px #0000001a}@media(max-width:600px){.map-header{top:0;left:0;right:0;height:auto;flex-direction:column;padding:16px;border-radius:0 0 var(--radius-lg) var(--radius-lg);gap:12px}.brand-text{font-size:1.2rem}.filter-controls{width:100%;overflow-x:auto;white-space:nowrap;-webkit-overflow-scrolling:touch;padding:4px;scrollbar-width:none}.filter-controls::-webkit-scrollbar{display:none}.info-drawer{left:0;right:0;width:100%;bottom:0;padding:32px 24px 24px;border-radius:20px 20px 0 0}.drawer-handle{display:block;width:40px;height:4px;background:#e0e0e0;border-radius:2px;position:absolute;top:12px;left:50%;transform:translate(-50%)}#drawer-content h2{font-size:1.8rem}.map-footer{bottom:20px;left:12px;right:auto;width:auto}.status-pill{padding:8px 16px;font-size:.7rem}}.filter-btn,.icon-button,.locate-btn{min-height:44px}
