@import "https://fonts.googleapis.com/css2?family=Epilogue:ital,wght@0,400;0,500;0,600;0,700;0,800;0,900;1,400;1,700&family=Manrope:wght@300;400;500;600;700;800&display=swap";:root{--bg:#0b0f12;--bg-2:#111417;--bg-3:#191c1f;--surface:#1d2023;--surface-2:#272a2e;--surface-3:#323538;--surface-bright:#36393d;--surface-glass:#1d2023b8;--border:#52453480;--border-light:#9f8e7a40;--border-glow:#f5a6234d;--gold:#f5a623;--gold-light:#ffc880;--gold-dim:#f5a6231f;--gold-glow:0 0 32px #f5a62359;--gold-gradient:linear-gradient(135deg, #ffc880 0%, #f5a623 100%);--accent:#9bd9ff;--accent-dim:#9bd9ff1f;--text:#e1e2e7;--text-2:#d7c3ae;--text-3:#d7c3ae73;--green:#4ade80;--red:#f87171;--radius:16px;--radius-sm:8px;--radius-lg:24px;--radius-xl:32px;--radius-full:999px;--shadow:0 4px 24px #0b0f1280;--shadow-lg:0 8px 48px #0b0f12b3;--shadow-xl:0 16px 80px #0b0f12d9;--shadow-gold:0 4px 32px #f5a62340;--transition:.18s cubic-bezier(.4, 0, .2, 1);--transition-spring:.38s cubic-bezier(.34, 1.56, .64, 1);--transition-slow:.45s cubic-bezier(.4, 0, .2, 1);--nav-height:64px;--bottom-nav:72px;--font-display:"Epilogue", -apple-system, sans-serif;--font-body:"Manrope", -apple-system, sans-serif;--sat:env(safe-area-inset-top,0px);--sar:env(safe-area-inset-right,0px);--sab:env(safe-area-inset-bottom,0px);--sal:env(safe-area-inset-left,0px)}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;height:100%;font-size:16px}body{font-family:var(--font-body);background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;min-height:100vh;padding-top:var(--sat);padding-bottom:var(--sab);line-height:1.6}h1,h2,h3,h4,h5,h6{font-family:var(--font-display);letter-spacing:-.02em;font-weight:700;line-height:1.2}img{max-width:100%;display:block}a{color:inherit;text-decoration:none}button{cursor:pointer;border:none;outline:none;font-family:inherit}input,textarea,select{outline:none;font-family:inherit}*{-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none}input,textarea{-webkit-user-select:text;user-select:text}::-webkit-scrollbar{width:3px;height:3px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--border-light);border-radius:2px}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(.85)}}@keyframes pulseOpacity{0%,to{opacity:1}50%{opacity:.4}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(40px)}to{opacity:1;transform:translateY(0)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}@keyframes glowPulse{0%,to{box-shadow:var(--gold-glow)}50%{box-shadow:0 0 60px #f5a6238c}}.animate-fade-up{animation:.55s cubic-bezier(.4,0,.2,1) both fadeInUp}.animate-fade{animation:.4s both fadeIn}.animate-scale-in{animation:.35s cubic-bezier(.34,1.56,.64,1) both scaleIn}.stagger-1{animation-delay:80ms}.stagger-2{animation-delay:.16s}.stagger-3{animation-delay:.24s}.stagger-4{animation-delay:.32s}.stagger-5{animation-delay:.4s}.loading-screen{background:var(--bg);z-index:9999;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.loading-logo{flex-direction:column;align-items:center;gap:28px;display:flex}.logo-text{font-family:var(--font-display);letter-spacing:-3px;background:var(--gold-gradient);-webkit-text-fill-color:transparent;-webkit-background-clip:text;font-size:3.2rem;font-weight:900;animation:.55s both fadeInUp}.loading-ring{border:2px solid var(--border);border-top-color:var(--gold);border-radius:50%;width:36px;height:36px;animation:.75s linear infinite spin}.navbar{height:var(--nav-height);-webkit-backdrop-filter:blur(24px)saturate(1.4);backdrop-filter:blur(24px)saturate(1.4);border-bottom:1px solid var(--border);z-index:1000;background:#0b0f12cc;align-items:center;gap:16px;padding:0 28px;display:flex;position:fixed;top:0;left:0;right:0}.navbar-logo{font-family:var(--font-display);letter-spacing:-1px;background:var(--gold-gradient);-webkit-text-fill-color:transparent;-webkit-background-clip:text;margin-right:auto;font-size:1.35rem;font-weight:900}.navbar-links{align-items:center;gap:4px;display:flex}.navbar-link{border-radius:var(--radius-full);color:var(--text-2);transition:all var(--transition);padding:8px 16px;font-size:.875rem;font-weight:500}.navbar-link:hover{color:var(--text);background:var(--surface)}.navbar-link.active{color:var(--gold)}.btn-nav-cta{border-radius:var(--radius-full);background:var(--gold-gradient);color:#291800;transition:all var(--transition);box-shadow:var(--shadow-gold);padding:8px 20px;font-size:.875rem;font-weight:700}.btn-nav-cta:hover{transform:translateY(-1px);box-shadow:0 8px 32px #f5a62359}.btn{border-radius:var(--radius-full);transition:all var(--transition);cursor:pointer;justify-content:center;align-items:center;gap:8px;padding:12px 24px;font-size:.9rem;font-weight:600;display:inline-flex}.btn-primary{background:var(--gold-gradient);color:#291800;box-shadow:var(--shadow-gold)}.btn-primary:hover{transform:translateY(-2px);box-shadow:0 8px 40px #f5a62366}.btn-secondary{background:var(--surface);color:var(--text);border:1px solid var(--border-light)}.btn-secondary:hover{background:var(--surface-2);transform:translateY(-1px)}.btn-ghost{color:var(--text-2);background:0 0}.btn-ghost:hover{color:var(--text);background:var(--surface)}.btn-glass{-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border:1px solid var(--border-light);color:var(--text);border-radius:var(--radius-full);transition:all var(--transition);cursor:pointer;background:#1d2023a6;justify-content:center;align-items:center;gap:6px;padding:10px 18px;font-size:.85rem;font-weight:600;display:inline-flex}.btn-glass:hover{background:var(--surface-2);border-color:var(--border-glow)}.badge{border-radius:var(--radius-full);font-family:var(--font-body);letter-spacing:.04em;text-transform:uppercase;white-space:nowrap;align-items:center;gap:4px;padding:4px 12px;font-size:.72rem;font-weight:700;display:inline-flex}.badge-gold{background:var(--gold-dim);color:var(--gold-light);border:1px solid #f5a62340}.badge-teal{color:#9bd9ff;background:#3ac2ff1f;border:1px solid #3ac2ff33}.badge-amber{color:#ffc880;background:#ffc8801f;border:1px solid #ffc88033}.badge-green{color:#4ade80;background:#4ade801f;border:1px solid #4ade8033}.badge-red{color:#f87171;background:#f871711f;border:1px solid #f8717133}.badge-cafe{color:#fbbf47;background:#fbbf471f}.badge-street{color:#94a3b8;background:#94a3b81f}.badge-rooftop{color:#818cf8;background:#6366f11f}.badge-park{color:#4ade80;background:#4ade801f}.badge-wall-art{color:#f472b6;background:#f472b61f}.badge-old-city{color:#fb923c;background:#fb923c1f}.badge-modern{color:#38bdf8;background:#38bdf81f}.badge-nature{color:#34d399;background:#34d3991f}.badge-mall{color:#a78bfa;background:#a78bfa1f}.badge-other{background:var(--surface);color:var(--text-2)}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);transition:all var(--transition);overflow:hidden}.card:hover{border-color:var(--border-light);box-shadow:var(--shadow-lg);transform:translateY(-4px)}.photo-card{border-radius:var(--radius);cursor:pointer;position:relative;overflow:hidden}.photo-card img{object-fit:cover;width:100%;height:100%;transition:transform var(--transition-slow)}.photo-card:hover img{transform:scale(1.04)}.photo-card-overlay{background:linear-gradient(#0000 0%,#0b0f1233 45%,#0b0f12e0 100%);position:absolute;inset:0}.photo-card-body{padding:14px 16px;position:absolute;bottom:0;left:0;right:0}.form-group{flex-direction:column;gap:8px;display:flex}.form-label{color:var(--text-2);letter-spacing:.03em;font-size:.82rem;font-weight:600}.form-input{background:var(--surface-3);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);transition:border-color var(--transition);width:100%;padding:12px 16px;font-size:.9rem}.form-input:focus{border-color:var(--gold);box-shadow:0 0 0 3px var(--gold-dim)}.form-input::placeholder{color:var(--text-3)}textarea.form-input{resize:vertical;min-height:100px}select.form-input{appearance:none}.page{min-height:100vh;padding-top:var(--nav-height)}.container{max-width:1200px;margin:0 auto;padding:0 24px}.section{padding:80px 0}.stars{gap:2px;display:flex}.star{color:var(--text-3);font-size:.9rem}.star.filled{color:var(--gold)}.map-page{height:calc(100vh - var(--nav-height));margin-top:var(--nav-height);display:flex}.map-container{flex:1;position:relative}.leaflet-container{width:100%;height:100%}.spot-sidebar{background:var(--bg-2);border-right:1px solid var(--border);flex-direction:column;flex-shrink:0;width:360px;height:100%;display:flex;overflow-y:auto}@media (width<=768px){.spot-sidebar{display:none}}.skeleton{background:linear-gradient(90deg, var(--surface) 25%, var(--surface-2) 50%, var(--surface) 75%);border-radius:var(--radius-sm);background-size:200% 100%;animation:1.5s infinite shimmer}.leaflet-popup-content-wrapper{background:var(--surface-2)!important;border:1px solid var(--border-light)!important;border-radius:var(--radius)!important;box-shadow:var(--shadow-lg)!important;color:var(--text)!important}.leaflet-popup-tip{background:var(--surface-2)!important}.leaflet-popup-content{margin:0!important}.leaflet-control-zoom{overflow:hidden;border:1px solid var(--border)!important;border-radius:var(--radius-sm)!important}.leaflet-control-zoom a{background:var(--surface-2)!important;color:var(--text)!important;border-color:var(--border)!important}.leaflet-control-zoom a:hover{background:var(--surface-3)!important}.leaflet-control-attribution{display:none!important}.glass-search{-webkit-backdrop-filter:blur(20px)saturate(1.3);backdrop-filter:blur(20px)saturate(1.3);border:1px solid var(--border-light);border-radius:var(--radius-full);background:#1d2023b3;align-items:center;gap:10px;padding:12px 18px;display:flex}.glass-search input{color:var(--text);min-width:0;font-size:.9rem;font-family:var(--font-body);background:0 0;border:none;flex:1}.glass-search input::placeholder{color:var(--text-3)}.filter-pills{gap:8px;padding-bottom:2px;display:flex;overflow-x:auto}.filter-pills::-webkit-scrollbar{height:0}.pill{border-radius:var(--radius-full);white-space:nowrap;background:var(--surface);color:var(--text-2);border:1px solid var(--border);transition:all var(--transition);cursor:pointer;padding:7px 16px;font-size:.78rem;font-weight:600}.pill:hover{border-color:var(--border-light);color:var(--text)}.pill.active{background:var(--gold-dim);color:var(--gold-light);border-color:#f5a62366}.section-header{justify-content:space-between;align-items:baseline;margin-bottom:20px;display:flex}.section-title{font-family:var(--font-display);letter-spacing:-.03em;font-size:1.2rem;font-weight:800}.section-link{color:var(--gold);cursor:pointer;transition:opacity var(--transition);font-size:.8rem;font-weight:600}.section-link:hover{opacity:.8}.bottom-nav{height:calc(var(--bottom-nav) + var(--sab));padding-bottom:var(--sab);-webkit-backdrop-filter:blur(24px)saturate(1.4);backdrop-filter:blur(24px)saturate(1.4);border-top:1px solid var(--border);z-index:800;background:#0b0f12e0;justify-content:space-around;align-items:center;display:none;position:fixed;bottom:0;left:0;right:0}@media (width<=768px){.bottom-nav{display:flex}}.bottom-nav-item{border-radius:var(--radius);color:var(--text-3);letter-spacing:.04em;text-transform:uppercase;transition:all var(--transition);cursor:pointer;flex-direction:column;flex:1;align-items:center;gap:4px;padding:4px 12px;font-size:.65rem;font-weight:600;display:flex}.bottom-nav-item.active{color:var(--gold)}.bottom-nav-item svg{width:22px;height:22px}.bottom-nav-fab{background:var(--gold-gradient);width:52px;height:52px;box-shadow:var(--shadow-gold);border:3px solid var(--bg);transition:all var(--transition-spring);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;margin-top:-16px;display:flex}.bottom-nav-fab:hover{transform:scale(1.08)translateY(-2px)}.desktop-only{align-items:center;gap:8px;display:flex}.nav-avatar{background:linear-gradient(135deg, var(--gold), #fb923c);color:#000;cursor:pointer;border-radius:50%;justify-content:center;align-items:center;width:32px;height:32px;font-size:.8rem;font-weight:800;display:flex}.mobile-menu-btn{color:var(--text);border-radius:var(--radius-sm);transition:background var(--transition);background:0 0;padding:6px;display:none}.mobile-menu-btn:hover{background:var(--surface)}@media (width<=640px){.desktop-only{display:none}.mobile-menu-btn{justify-content:center;align-items:center;display:flex}}.mobile-drawer{top:var(--nav-height);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);z-index:999;background:#0a0a0ff7;flex-direction:column;padding:24px 20px;display:flex;position:fixed;bottom:0;left:0;right:0}.mobile-drawer-inner{flex-direction:column;gap:4px;display:flex}.mobile-nav-link{border-radius:var(--radius);color:var(--text);text-align:left;transition:all var(--transition);cursor:pointer;background:0 0;border:none;align-items:center;gap:14px;width:100%;padding:16px 20px;font-size:1.1rem;font-weight:600;text-decoration:none;display:flex}.mobile-nav-link:hover{background:var(--surface)}.mobile-nav-link.logout{color:var(--red);margin-top:20px}.mobile-nav-link.logout:hover{background:#f871711a}.mobile-nav-cta{background:var(--gold);color:#000;border-radius:var(--radius-full);transition:all var(--transition);justify-content:center;align-items:center;margin-top:16px;padding:16px 24px;font-size:1rem;font-weight:700;text-decoration:none;display:flex}.mobile-nav-cta:hover{background:var(--gold-light)}.more-dropdown{position:relative}.more-trigger{cursor:pointer;align-items:center;gap:4px;display:flex}.more-menu{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);z-index:1100;min-width:210px;padding:6px;position:absolute;top:calc(100% + 10px);left:50%;transform:translate(-50%);box-shadow:0 16px 40px #00000080}.more-menu-item{border-radius:var(--radius-sm);color:var(--text-2);transition:all var(--transition);align-items:center;gap:10px;padding:10px 14px;font-size:.875rem;font-weight:500;text-decoration:none;display:flex}.more-menu-item:hover,.more-menu-item.active{background:var(--bg-3);color:var(--gold)}.mobile-drawer{overflow-y:auto}.mobile-drawer-inner{padding-bottom:40px}
