.weather-card{background:var(--glass-bg);backdrop-filter:blur(var(--glass-blur)) saturate(var(--glass-saturate));-webkit-backdrop-filter:blur(var(--glass-blur)) saturate(var(--glass-saturate));border-radius:20px;padding:22px;box-shadow:var(--glass-shadow),var(--glass-inner-glow);border:1px solid var(--glass-border);transition:transform var(--duration-normal) var(--ease-spring-soft),box-shadow var(--duration-normal) var(--ease-smooth),background var(--duration-normal) var(--ease-smooth),border-color var(--duration-fast) var(--ease-smooth);cursor:pointer;min-width:0;width:100%;max-width:360px;animation:cardAppear var(--card-enter-duration) var(--ease-spring-soft) backwards;position:relative;overflow:hidden;box-sizing:border-box}.weather-card:before{content:"";position:absolute;top:0;left:0;right:0;height:50%;background:linear-gradient(180deg,#ffffff1f,#fff0);border-radius:20px 20px 0 0;pointer-events:none;z-index:0}[data-theme=dark] .weather-card:before{background:linear-gradient(180deg,#ffffff0a,#fff0)}.weather-card>*{position:relative;z-index:1}[data-theme=dark] .weather-card{background:var(--glass-bg);box-shadow:var(--glass-shadow),var(--glass-inner-glow);border-color:var(--glass-border)}.weather-card:hover{transform:translateY(-3px) scale(1.01);box-shadow:var(--glass-shadow-hover),var(--glass-inner-glow-strong);background:var(--glass-bg-hover);border-color:var(--glass-border-hover)}[data-theme=dark] .weather-card:hover{background:var(--glass-bg-hover);border-color:var(--glass-border-hover);box-shadow:var(--glass-shadow-hover),var(--glass-inner-glow-strong)}.weather-card:active{transform:translateY(-1px) scale(.99);transition-duration:var(--duration-instant)}.weather-card-hero{display:flex;align-items:center;justify-content:flex-start;gap:16px;margin-bottom:8px}.weather-orb{flex-shrink:0;width:56px;height:56px;border-radius:50%;box-shadow:0 4px 16px #0000001a;animation:orbFloat 4s var(--ease-gentle) infinite;display:flex;align-items:center;justify-content:center;overflow:hidden;color:#fffffff2;transition:transform var(--duration-normal) var(--ease-spring)}.weather-orb--sun{background:linear-gradient(135deg,#fbbf24,#f59e0b)}.weather-orb--cloud{background:linear-gradient(135deg,#94a3b8,#64748b)}.weather-orb--rain{background:linear-gradient(135deg,#60a5fa,#3b82f6)}.weather-orb--storm{background:linear-gradient(135deg,#6366f1,#4f46e5)}.weather-orb--snow{background:linear-gradient(135deg,#e2e8f0,#cbd5e1);color:#475569}.weather-orb--fog{background:linear-gradient(135deg,#d1d5db,#9ca3af)}.weather-orb--night{background:linear-gradient(135deg,#312e81,#1e1b4b)}.weather-card-temp{font-size:42px;font-weight:700;letter-spacing:-.04em;line-height:1;font-variant-numeric:tabular-nums;animation:numberPop var(--number-morph-duration) var(--ease-spring-soft) backwards}.weather-card-condition{font-size:14px;font-weight:500;color:var(--text-secondary);margin-top:2px}.weather-card-meta{display:flex;gap:12px;margin-top:8px;font-size:12px;color:var(--text-secondary);font-weight:500}.weather-card-meta span{display:inline-flex;align-items:center;gap:4px}.weather-card.expanded{max-width:none}.weather-card-temp-badge{display:inline-flex;align-items:center;justify-content:center;padding:4px 10px;border-radius:10px;background:var(--accent-sun);color:#fff;font-size:16px;font-weight:700;font-variant-numeric:tabular-nums;letter-spacing:-.02em;line-height:1;box-shadow:0 2px 8px #e07c7c40}[data-theme=dark] .weather-card-temp-badge{background:#e07c7c33;color:var(--accent-sun);box-shadow:0 2px 8px #e07c7c26}.weather-card-meta--with-map{flex-wrap:wrap;gap:8px;margin-top:10px;padding-bottom:4px}.weather-card-map-link{display:inline-flex;align-items:center;gap:4px;font-size:12px;color:var(--accent-rain);text-decoration:none;font-weight:500;padding:4px 0;margin-bottom:4px;transition:opacity var(--duration-fast)}.weather-card-map-link:hover{opacity:.8}.weather-card-live{font-size:12px;color:var(--accent-mint);font-weight:500;display:inline-flex;align-items:center;gap:4px}.weather-card-live:before{content:"";width:6px;height:6px;border-radius:50%;background:var(--accent-mint);animation:pulse 2s var(--ease-smooth) infinite}.weather-card-aqi{margin-top:10px}.weather-card-aqi-row{display:flex;align-items:center;gap:8px}.weather-card-aqi-badge{display:inline-flex;align-items:center;padding:3px 10px;border-radius:8px;font-size:12px;font-weight:600;letter-spacing:-.01em;line-height:1.4}.weather-card-aqi-badge[data-aqi="1"]{background:#10b9811f;color:#059669}.weather-card-aqi-badge[data-aqi="2"]{background:#eab3081f;color:#ca8a04}.weather-card-aqi-badge[data-aqi="3"]{background:#f973161f;color:#ea580c}.weather-card-aqi-badge[data-aqi="4"]{background:#ef44441f;color:#dc2626}.weather-card-aqi-badge[data-aqi="5"]{background:#a855f71f;color:#9333ea}[data-theme=dark] .weather-card-aqi-badge[data-aqi="1"]{background:#10b9812e}[data-theme=dark] .weather-card-aqi-badge[data-aqi="2"]{background:#eab3082e}[data-theme=dark] .weather-card-aqi-badge[data-aqi="3"]{background:#f973162e}[data-theme=dark] .weather-card-aqi-badge[data-aqi="4"]{background:#ef44442e}[data-theme=dark] .weather-card-aqi-badge[data-aqi="5"]{background:#a855f72e}.weather-card-aqi-metrics{display:flex;gap:12px;margin-top:6px}.weather-card-aqi-metric{display:inline-flex;align-items:baseline;gap:4px}.weather-card-aqi-metric-label{font-size:11px;font-weight:500;color:var(--text-secondary);opacity:.7}.weather-card-aqi-metric-value{font-size:12px;font-weight:600;color:var(--text-primary);font-variant-numeric:tabular-nums}.weather-card-footer{display:flex;align-items:center;justify-content:space-between;width:100%;margin-top:14px;font-size:13px;gap:8px}.weather-card-footer-left{display:flex;align-items:baseline;gap:5px;min-width:0}.weather-card-location{font-weight:600;color:var(--text-primary);font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1}.weather-card-time{color:var(--accent-mint);font-weight:500;font-size:12px;white-space:nowrap;flex-shrink:0;line-height:1}.weather-card-maps-link{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;border-radius:4px;color:var(--text-secondary);transition:color var(--duration-fast),background var(--duration-fast);text-decoration:none;flex-shrink:0;margin:0;padding:0;vertical-align:baseline}.weather-card-maps-link:hover{color:var(--accent-rain);background:#6b9bd11a}.weather-card-maps-link:active{transform:scale(.9)}.card-header-tappable{display:flex;align-items:center;justify-content:space-between;width:100%;padding:0;background:none;border:none;cursor:pointer;font:inherit;color:inherit;min-height:48px;text-align:left}.chevron{transition:transform var(--duration-normal) var(--ease-spring);flex-shrink:0;opacity:.5}.chevron.rotated{transform:rotate(180deg);opacity:1}.hourly-card .card-title{margin:0;font-size:15px;font-weight:600}.card-preview{font-size:13px;color:var(--text-secondary);margin:8px 0 0;animation:cardFadeUp var(--duration-normal) var(--ease-smooth) backwards}.hourly-forecast-container{margin-top:12px;animation:cardFadeUp var(--duration-normal) var(--ease-smooth) .1s backwards}.hourly-forecast{display:flex;gap:8px;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;scroll-behavior:smooth;padding:12px 0;-webkit-overflow-scrolling:touch;scrollbar-width:none;-ms-overflow-style:none}.hourly-forecast::-webkit-scrollbar{display:none}.hourly-item{flex:0 0 auto;width:56px;scroll-snap-align:start;display:flex;flex-direction:column;align-items:center;gap:6px;padding:10px 8px;background:#00000008;border-radius:14px;border:1px solid transparent;transition:all var(--duration-fast) var(--ease-spring-soft),background var(--duration-fast) var(--ease-smooth)}[data-theme=dark] .hourly-item{background:#ffffff0d}.hourly-item.current{background:var(--accent-sun);color:#fff;transform:scale(1.06);border-color:#fff3;box-shadow:0 4px 16px #e07c7c4d}.hourly-item:not(.current):hover{background:#0000000f;transform:translateY(-2px) scale(1.02)}[data-theme=dark] .hourly-item:not(.current):hover{background:#ffffff1a}.hour-time{font-size:11px;font-weight:600;color:var(--text-secondary)}.hourly-item.current .hour-time{color:#ffffffe6}.hour-icon{font-size:18px;animation:iconPulse 3s var(--ease-gentle) infinite}.hour-temp{font-size:14px;font-weight:700;font-variant-numeric:tabular-nums}.hour-precip{font-size:10px;color:var(--accent-rain);font-weight:500}.hourly-skeleton .skeleton-block{height:40px;border-radius:8px;background:linear-gradient(90deg,#0000000f 25%,#0000001f,#0000000f 75%);background-size:200% 100%;animation:shimmer 1.5s infinite}[data-theme=dark] .hourly-skeleton .skeleton-block{background:linear-gradient(90deg,#ffffff0f 25%,#ffffff1f,#ffffff0f 75%);background-size:200% 100%}.daily-forecast-list{margin-top:12px;animation:cardFadeUp var(--duration-normal) var(--ease-smooth) .1s backwards}.daily-item{padding:10px 4px;border-bottom:1px solid var(--border-light);cursor:pointer;border-radius:10px;transition:background var(--duration-fast) var(--ease-smooth),transform var(--duration-fast) var(--ease-spring-soft)}.daily-item:last-child{border-bottom:none}.daily-item:hover{background:#00000008;transform:translate(2px)}[data-theme=dark] .daily-item:hover{background:#ffffff0a}.daily-item:active{transform:scale(.99);transition-duration:var(--duration-instant)}.daily-summary{display:flex;align-items:center;gap:12px}.daily-day{width:60px;font-size:13px;font-weight:600;color:var(--text-primary)}.daily-icon{font-size:16px;transition:transform var(--duration-normal) var(--ease-spring)}.daily-item:hover .daily-icon{transform:scale(1.15)}.daily-temp-range{flex:1;display:flex;align-items:center;gap:8px}.temp-bar{flex:1;height:4px;background:#00000014;border-radius:2px;position:relative;overflow:hidden}[data-theme=dark] .temp-bar{background:#ffffff1a}.temp-bar-fill{position:absolute;top:0;bottom:0;background:linear-gradient(to right,var(--accent-rain),var(--accent-sun));border-radius:2px;animation:barFill var(--duration-slowest) var(--ease-out-expo) backwards}.temp-high,.temp-low{font-size:14px;font-weight:600;font-variant-numeric:tabular-nums;min-width:32px;text-align:center}.temp-high{color:var(--text-primary)}.temp-low{color:var(--text-secondary)}.daily-precip{font-size:12px;color:var(--accent-rain);font-weight:500}.daily-details{margin-top:8px;padding-top:8px;animation:cardFadeUp var(--duration-normal) var(--ease-smooth) backwards}.daily-summary-text{font-size:13px;color:var(--text-secondary);margin:0;line-height:1.5}.daily-skeleton .skeleton-block{height:32px;border-radius:8px;background:linear-gradient(90deg,#0000000f 25%,#0000001f,#0000000f 75%);background-size:200% 100%;animation:skeletonShimmer 1.5s infinite}[data-theme=dark] .daily-skeleton .skeleton-block{background:linear-gradient(90deg,#ffffff0f 25%,#ffffff1f,#ffffff0f 75%);background-size:200% 100%}.progress-bar-container{width:100%;height:8px;background:#00000014;border-radius:4px;overflow:hidden;position:relative}[data-theme=dark] .progress-bar-container{background:#ffffff1a}.progress-bar-fill{height:100%;border-radius:4px;transition:width .6s var(--ease-smooth);position:relative;overflow:hidden}.progress-bar-fill.animated:after{content:"";position:absolute;top:0;left:0;bottom:0;right:0;background:linear-gradient(90deg,transparent,rgba(255,255,255,.3),transparent);animation:progressShimmer 2s infinite}@keyframes progressShimmer{0%{transform:translate(-100%)}to{transform:translate(100%)}}.aqi-summary{padding:16px;border-radius:14px;margin-top:12px;background:#00000005;border:1px solid var(--border-light);animation:cardFadeUp var(--duration-normal) var(--ease-smooth) 80ms backwards}[data-theme=dark] .aqi-summary{background:#ffffff08}.aqi-label{display:flex;align-items:baseline;gap:8px;margin:10px 0 8px}.aqi-value{font-size:28px;font-weight:700;font-variant-numeric:tabular-nums;animation:numberPop var(--number-morph-duration) var(--ease-spring-soft) backwards}.aqi-level{font-size:16px;font-weight:600}.aqi-description{font-size:13px;color:var(--text-secondary);margin:0;line-height:1.5}.aqi-breakdown{margin-top:16px;padding-top:16px;border-top:1px solid var(--border-light)}.pollutant-list{display:flex;flex-direction:column;gap:10px}.pollutant-row{display:grid;grid-template-columns:50px 1fr 40px;gap:8px;align-items:center;font-size:12px}.pollutant-label{font-weight:600;color:var(--text-secondary)}.pollutant-bar-container{height:6px;background:#0000000f;border-radius:3px;overflow:hidden}[data-theme=dark] .pollutant-bar-container{background:#ffffff14}.pollutant-bar{height:100%;border-radius:3px;transition:width var(--duration-slowest) var(--ease-out-expo);animation:barFill var(--duration-slowest) var(--ease-out-expo) backwards}.pollutant-bar.good{background:linear-gradient(90deg,#10b981,#34d399)}.pollutant-bar.moderate{background:linear-gradient(90deg,#f59e0b,#fbbf24)}.pollutant-bar.poor{background:linear-gradient(90deg,#ef4444,#f87171)}.pollutant-value{font-weight:600;font-variant-numeric:tabular-nums;text-align:right}.aqi-tap{display:block;width:100%;margin:8px 0 0;padding:0;border:none;background:none;font:inherit;color:var(--text-secondary);text-align:left;cursor:pointer;transition:color var(--duration-fast)}.aqi-tap:hover{color:var(--text-primary)}.aqi-card--unavailable .card-title{margin:0 0 8px;font-size:15px;font-weight:600}.aqi-unavailable{font-size:13px;color:var(--text-secondary);margin:0;line-height:1.4}.uv-card .card-title{margin:0 0 12px;font-size:15px;font-weight:600}.uv-index-section{padding:16px;border-radius:14px;margin-bottom:12px;background:#00000005;border:1px solid var(--border-light);animation:cardFadeUp var(--duration-normal) var(--ease-smooth) 80ms backwards}[data-theme=dark] .uv-index-section{background:#ffffff08}.uv-label{display:flex;align-items:baseline;gap:8px;margin:10px 0 8px}.uv-value{font-size:28px;font-weight:700;font-variant-numeric:tabular-nums;animation:numberPop var(--number-morph-duration) var(--ease-spring-soft) backwards}.uv-level{font-size:16px;font-weight:600}.uv-recommendation{font-size:13px;color:var(--text-secondary);margin:0;line-height:1.5}.sun-times{display:flex;flex-direction:column;gap:10px;animation:cardFadeUp var(--duration-normal) var(--ease-smooth) .16s backwards}.sun-time-row{display:flex;justify-content:space-between;font-size:13px;padding:6px 0;border-bottom:1px solid var(--border-light);transition:background var(--duration-fast)}.sun-time-row:last-child{border-bottom:none}.sun-label{color:var(--text-secondary)}.sun-value{font-weight:600;font-variant-numeric:tabular-nums}.details-card .card-title{margin:0 0 12px;font-size:15px;font-weight:600}.details-grid{display:flex;flex-direction:column;gap:2px;animation:cardFadeUp var(--duration-normal) var(--ease-smooth) 80ms backwards}.detail-row{display:flex;justify-content:space-between;align-items:center;font-size:14px;padding:8px 4px;border-radius:8px;transition:background var(--duration-fast) var(--ease-smooth)}.detail-row:hover{background:#00000005}[data-theme=dark] .detail-row:hover{background:#ffffff08}.detail-label{color:var(--text-secondary);font-weight:500}.detail-value{font-weight:600;font-variant-numeric:tabular-nums;letter-spacing:-.01em}.weather-sidebar{position:relative;width:100%;height:100%;min-height:0;display:flex;flex-direction:column}.weather-sidebar-header{display:flex;align-items:center;justify-content:flex-start;padding:12px 12px 8px;flex-shrink:0;position:sticky;top:0;z-index:10;background:var(--glass-bg)}.weather-sidebar-close{width:44px;height:44px;min-width:44px;min-height:44px;border:none;background:var(--glass-bg);border-radius:50%;font-size:20px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--text-primary);border:1px solid var(--glass-border);box-shadow:var(--glass-shadow);transition:background var(--duration-fast) var(--ease-smooth),transform var(--duration-fast) var(--ease-spring),box-shadow var(--duration-fast)}.weather-sidebar-close:hover{background:var(--glass-bg-hover);transform:scale(1.08);box-shadow:var(--glass-shadow-hover)}.weather-sidebar-close:active{transform:scale(.95);transition-duration:var(--duration-instant)}[data-theme=dark] .weather-sidebar-close{background:#ffffff14;border-color:#ffffff1a}[data-theme=dark] .weather-sidebar-close:hover{background:#ffffff24}.weather-sidebar-scroll{flex:1 1 0;min-height:0;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;padding:16px 16px 32px;width:100%;box-sizing:border-box}.weather-sidebar-cards{display:flex;flex-direction:column;gap:14px}.sidebar-card-wrap{animation:cardSlideIn var(--card-enter-duration) var(--ease-spring-soft) backwards}.sidebar-card-wrap.sidebar-card-1{animation-delay:calc(var(--stagger-delay) * 0)}.sidebar-card-wrap.sidebar-card-2{animation-delay:calc(var(--stagger-delay) * 1)}.sidebar-card-wrap.sidebar-card-3{animation-delay:calc(var(--stagger-delay) * 2)}.sidebar-card-wrap.sidebar-card-4{animation-delay:calc(var(--stagger-delay) * 3)}.sidebar-card-wrap.sidebar-card-5{animation-delay:calc(var(--stagger-delay) * 4)}.sidebar-card-wrap.sidebar-card-6{animation-delay:calc(var(--stagger-delay) * 5)}.sidebar-card-wrap.sidebar-card-7{animation-delay:calc(var(--stagger-delay) * 6)}.sidebar-card-wrap.sidebar-card-8{animation-delay:calc(var(--stagger-delay) * 7)}.expandable-card{cursor:pointer;transition:transform var(--duration-normal) var(--ease-spring-soft),box-shadow var(--duration-normal) var(--ease-smooth),background var(--duration-fast) var(--ease-smooth)}.expandable-card:hover{transform:translateY(-2px) scale(1.005);box-shadow:var(--glass-shadow-hover)}[data-theme=dark] .expandable-card:hover{box-shadow:var(--glass-shadow-hover)}.expandable-card:active{transform:translateY(0) scale(.99);transition-duration:var(--duration-instant)}.expandable-card .card-expanded-content{opacity:0;transform:translateY(8px);max-height:0;overflow:hidden;transition:opacity var(--duration-normal) var(--ease-smooth) 80ms,transform var(--duration-normal) var(--ease-spring-soft) 80ms,max-height var(--duration-slow) var(--ease-smooth)}.expandable-card.expanded .card-expanded-content{opacity:1;transform:translateY(0);max-height:600px}.weather-sidebar .weather-card{max-width:none}.stargazing-card{background:var(--glass-bg);backdrop-filter:blur(var(--glass-blur)) saturate(var(--glass-saturate));-webkit-backdrop-filter:blur(var(--glass-blur)) saturate(var(--glass-saturate));border-radius:18px;padding:22px;box-shadow:0 4px 24px #0000000f;border:1px solid var(--glass-border);min-width:0;width:100%;max-width:360px;animation:cardAppear .45s var(--ease-spring) backwards;position:relative;overflow:hidden;box-sizing:border-box;transition:background .3s var(--ease-smooth),border-color .3s var(--ease-smooth),box-shadow .3s var(--ease-smooth)}@media (max-width: 480px){.stargazing-card{padding:18px 16px;border-radius:16px;gap:0}.stargazing-card-header{margin-bottom:2px}.stargazing-card-title{font-size:16px}.stargazing-card-subtitle{font-size:11px;margin-bottom:14px}.stargazing-card-moon{margin-bottom:14px;padding:12px 10px;gap:10px}.stargazing-card-moon-today{font-size:10px}.stargazing-card-moon-icon .stargazing-moon-phase-svg{width:32px;height:32px}.stargazing-card-moon-label{font-size:13px}.stargazing-card-five-days{margin-bottom:14px;padding:10px 12px}.stargazing-card-five-days-title{font-size:11px;margin-bottom:10px}.stargazing-five-days-strip{gap:6px 8px}.stargazing-five-day-item{min-width:0}.stargazing-five-day-letter{font-size:11px}.stargazing-five-day-moon .stargazing-moon-phase-svg{width:24px;height:24px}.stargazing-five-day-clouds{font-size:11px}.stargazing-nights{gap:10px;margin-bottom:16px}.stargazing-nights-title{font-size:11px;margin-bottom:10px}.stargazing-night--compact{padding:10px 12px}.stargazing-night--compact .stargazing-night-date{font-size:12px}.stargazing-night--compact .stargazing-night-score{font-size:13px}}[data-theme=dark] .stargazing-card{box-shadow:0 4px 28px #00000040}.stargazing-card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:4px}.stargazing-card-title{font-size:18px;font-weight:700;color:var(--text-primary)}.stargazing-card-close{background:none;border:none;font-size:24px;line-height:1;color:var(--text-secondary);cursor:pointer;padding:4px;margin:-4px -4px -4px 0}.stargazing-card-close:hover{color:var(--text-primary)}.stargazing-card-subtitle{font-size:13px;color:var(--text-secondary);margin-bottom:12px;transition:color .3s var(--ease-smooth)}.stargazing-card-moon{display:flex;align-items:center;gap:12px;margin-bottom:16px;padding:10px 12px;border-radius:12px;background:#0000000a;border:1px solid var(--glass-border)}.stargazing-card-moon-today{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--text-secondary);min-width:36px}[data-theme=dark] .stargazing-card-moon{background:#ffffff0a}.stargazing-card-moon-icon{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center}.stargazing-moon-phase-svg{display:block}.stargazing-moon-lit{fill:var(--moon-lit);stroke:none}.stargazing-moon-shadow{fill:var(--moon-shadow);stroke:none}.stargazing-card-moon-label{font-size:14px;font-weight:600;color:var(--text-primary)}.stargazing-card-five-days{margin-bottom:16px;padding:12px 14px;border-radius:12px;background:#0000000a;border:1px solid var(--glass-border)}[data-theme=dark] .stargazing-card-five-days{background:#ffffff0a}.stargazing-card-five-days-title{font-size:12px;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.04em;margin-bottom:10px}.stargazing-card-five-days-strip{display:flex;flex-wrap:wrap;gap:8px 12px;justify-content:space-between}.stargazing-five-day-item{display:flex;flex-direction:column;align-items:center;gap:4px;min-width:48px}.stargazing-five-day-letter{font-size:13px;font-weight:700;color:var(--text-primary);text-align:center;line-height:1}.stargazing-five-day-moon{display:inline-flex;align-items:center;justify-content:center}.stargazing-five-day-moon .stargazing-moon-phase-svg{display:block}.stargazing-five-day-clouds{font-size:12px;font-weight:700;color:var(--text-primary);font-variant-numeric:tabular-nums}.stargazing-nights-title{font-size:12px;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.04em;margin-bottom:8px}.stargazing-nights{display:flex;flex-direction:column;gap:8px;margin-bottom:20px}.stargazing-night--compact{padding:8px 12px}.stargazing-night--compact .stargazing-night-date{margin-bottom:2px}.stargazing-night--compact .stargazing-night-badges{display:none}.stargazing-night{padding:12px 14px;border-radius:12px;border:1px solid var(--glass-border);background:#ffffff40}[data-theme=dark] .stargazing-night{background:#0003}.stargazing-night--excellent{border-color:#10b98173;background:#10b9811a;transition:background .3s var(--ease-smooth),border-color .3s var(--ease-smooth)}[data-theme=dark] .stargazing-night--excellent{border-color:#10b98180;background:#10b98126}.stargazing-night--good{border-color:#64c89666;background:#64c89614;transition:background .3s var(--ease-smooth),border-color .3s var(--ease-smooth)}[data-theme=dark] .stargazing-night--good{border-color:#64c89673;background:#64c8961f}.stargazing-night--fair{border-color:#ffc86459;background:#ffc8640f;transition:background .3s var(--ease-smooth),border-color .3s var(--ease-smooth)}[data-theme=dark] .stargazing-night--fair{border-color:#ffc86466;background:#ffc8641a}.stargazing-night--poor{border-color:#9696b44d;transition:border-color .3s var(--ease-smooth)}[data-theme=dark] .stargazing-night--poor{border-color:#a0a0be40;background:#8c8ca00f}.stargazing-night-date{font-weight:600;font-size:14px;color:var(--text-primary);margin-bottom:6px}.stargazing-night-badges{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:6px}.stargazing-badge{font-size:11px;padding:4px 8px;border-radius:8px;background:#0000000f;color:var(--text-secondary)}[data-theme=dark] .stargazing-badge{background:#ffffff14}.stargazing-night-score{font-size:12px;font-weight:600;color:var(--text-primary)}.stargazing-section-title{font-size:14px;font-weight:600;color:var(--text-primary);margin-bottom:10px}.stargazing-meteors{margin-bottom:20px}.stargazing-meteor-list{list-style:none;padding:0;margin:0}.stargazing-meteor-item{display:flex;justify-content:space-between;align-items:center;padding:8px 0;border-bottom:1px solid var(--glass-border);font-size:13px}.stargazing-meteor-item:last-child{border-bottom:none}.stargazing-meteor-name{font-weight:600;color:var(--text-primary)}.stargazing-meteor-peak{color:var(--text-secondary);font-size:12px}.stargazing-apod{margin-top:16px;padding-top:16px;border-top:1px solid var(--glass-border)}.stargazing-apod-img{width:100%;border-radius:12px;display:block;margin-bottom:8px}.stargazing-apod-title{font-size:13px;font-weight:600;color:var(--text-primary);margin-bottom:4px}.stargazing-apod-desc{font-size:12px;color:var(--text-secondary);line-height:1.4}.stargazing-apod-link{display:block;text-decoration:none;color:inherit;border-radius:12px;overflow:hidden;transition:opacity var(--duration-fast)}.stargazing-apod-link:hover{opacity:.85}.stargazing-apod-link:active{opacity:.7}.weather-conditions{position:relative;z-index:998;background:var(--glass-bg);border-radius:14px;padding:8px 12px 10px;box-shadow:var(--glass-shadow);border:1px solid var(--glass-border);min-width:130px;max-width:200px;will-change:transform;contain:layout style}.weather-conditions:hover{background:var(--glass-bg-hover)}[data-theme=dark] .weather-conditions{box-shadow:0 2px 20px #0003}.conditions-header{display:flex;align-items:center;gap:5px;margin-bottom:5px;justify-content:center}.conditions-header-icon{font-size:12px;opacity:.9}.conditions-header-title{font-size:11px;font-weight:600;color:var(--text-primary);letter-spacing:.02em;opacity:.95}.conditions-list{display:flex;flex-direction:column;gap:3px}.conditions-item{display:flex;align-items:center;gap:5px;padding:3px 6px 4px;background:#fff3;border-radius:8px;position:relative;overflow:hidden;animation:conditionSlideIn .4s var(--ease-spring) backwards;border:none;text-align:left;width:100%;font-family:inherit;cursor:default}[data-theme=dark] .conditions-item{background:#ffffff0f}.conditions-item--tappable{cursor:pointer}.conditions-item--tappable:hover{background:#ffffff52}[data-theme=dark] .conditions-item--tappable:hover{background:#ffffff1a}.conditions-item--clear{justify-content:center}.conditions-emoji{font-size:11px;flex-shrink:0}.conditions-name{font-size:11px;font-weight:500;color:var(--text-primary);letter-spacing:-.1px}.conditions-desc{font-size:10px;color:var(--text-secondary);opacity:.8;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.conditions-vis{font-size:10px;font-weight:600;color:var(--text-secondary);font-variant-numeric:tabular-nums;margin-left:auto}.conditions-divider{height:1px;background:var(--glass-border);margin:6px 0;opacity:.6}.conditions-glint-rain{will-change:transform;pointer-events:none;position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(105deg,transparent 30%,rgba(96,165,250,.25) 50%,transparent 70%);animation:glintRain 3s ease-in-out infinite}@keyframes glintRain{0%,to{transform:translate(-120%);opacity:0}50%{transform:translate(120%);opacity:1}}.conditions-glint-fog{will-change:transform;pointer-events:none;position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(105deg,transparent 30%,rgba(255,255,255,.3) 50%,transparent 70%);animation:glintFog 4s ease-in-out infinite}@keyframes glintFog{0%,to{transform:translate(-100%);opacity:0}40%{transform:translate(100%);opacity:1}}.conditions-glint-sun{will-change:transform;pointer-events:none;position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(105deg,transparent 30%,rgba(251,191,36,.2) 50%,transparent 70%);animation:glintSun 5s ease-in-out infinite}@keyframes glintSun{0%,to{transform:translate(-120%) scaleX(.5);opacity:0}50%{transform:translate(120%) scaleX(1);opacity:1}}.conditions-glint-clear{will-change:transform;pointer-events:none;position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(ellipse at center,rgba(255,255,255,.15) 0%,transparent 70%);animation:glintClear 3s ease-in-out infinite}@keyframes glintClear{0%,to{opacity:.1;transform:scale(.95)}50%{opacity:.3;transform:scale(1.05)}}@keyframes conditionSlideIn{0%{opacity:0;transform:translate(-12px) scale(.97)}to{opacity:1;transform:translate(0) scale(1)}}@media (max-width: 768px){.weather-conditions{max-width:180px;min-width:120px;padding:6px 10px 8px}}@media (max-width: 480px){.weather-conditions{max-width:min(170px,calc(100vw - 24px - env(safe-area-inset-left,0px) - env(safe-area-inset-right,0px)));min-width:0;padding:6px 8px 8px}}.conditions-item--cold{position:relative;overflow:hidden}.conditions-item--cold .conditions-temp{font-size:13px;font-weight:700;color:#6ab8e8;margin-left:auto;padding-left:8px}.conditions-glint-cold{position:absolute;top:0;left:-100%;width:60%;height:100%;background:linear-gradient(90deg,transparent,rgba(106,184,232,.08),transparent);animation:conditionsGlint 4s ease-in-out infinite;pointer-events:none;will-change:transform}.conditions-item--cold:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit;background:linear-gradient(135deg,rgba(106,184,232,.04),transparent 60%);pointer-events:none}@keyframes conditionsGlint{0%{transform:translate(-100%)}to{transform:translate(200%)}}.conditions-item--hot{position:relative;overflow:hidden}.conditions-item--hot .conditions-temp--hot{font-size:13px;font-weight:700;color:#e8946a;margin-left:auto;padding-left:8px}.conditions-glint-hot{position:absolute;top:0;left:-100%;width:60%;height:100%;background:linear-gradient(90deg,transparent,rgba(232,148,106,.08),transparent);animation:conditionsGlint 5s ease-in-out infinite;pointer-events:none;will-change:transform}.conditions-item--hot:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit;background:linear-gradient(135deg,rgba(232,148,106,.04),transparent 60%);pointer-events:none}.bottom-sheet-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000040;backdrop-filter:blur(4px) saturate(1.1);-webkit-backdrop-filter:blur(6px) saturate(1.2);opacity:0;pointer-events:none;transition:opacity var(--duration-normal) var(--ease-smooth);z-index:999}.bottom-sheet-backdrop.visible{opacity:1;pointer-events:all}.bottom-sheet{position:fixed;bottom:0;left:0;right:0;background:var(--glass-bg);border:1px solid var(--glass-border);border-bottom:none;border-radius:28px 28px 0 0;box-shadow:var(--glass-shadow-elevated),var(--glass-inner-glow-strong);transition:transform var(--duration-slow) var(--ease-spring-soft);transform:translateY(100%);z-index:1000;max-height:95dvh;display:flex;flex-direction:column;min-height:0;overflow:hidden;box-sizing:border-box;will-change:transform}.bottom-sheet:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;backdrop-filter:blur(20px) saturate(1.4);-webkit-backdrop-filter:blur(48px) saturate(1.8);border-radius:inherit;pointer-events:none;z-index:0}@supports not (height: 100dvh){.bottom-sheet{max-height:95vh}}[data-theme=dark] .bottom-sheet{background:#08080cb8;box-shadow:var(--glass-shadow-elevated),var(--glass-inner-glow)}.bottom-sheet.open{transform:translateY(0);height:95dvh;max-height:95dvh}@supports not (height: 100dvh){.bottom-sheet.open{height:95vh;max-height:95vh}}.bottom-sheet-handle{flex-shrink:0;width:100%;padding:14px;display:flex;justify-content:center;cursor:grab;touch-action:none;min-height:48px;align-items:center;box-sizing:border-box}.bottom-sheet-handle:active{cursor:grabbing}.handle-bar{width:36px;height:4px;background:#00000026;border-radius:2px;transition:background var(--duration-fast),width var(--duration-fast) var(--ease-spring)}[data-theme=dark] .handle-bar{background:#fff3}.bottom-sheet-handle:active .handle-bar{width:44px;background:#0000004d}[data-theme=dark] .bottom-sheet-handle:active .handle-bar{background:#fff6}.bottom-sheet-content{position:relative;z-index:1;flex:1 1 0;min-height:0;overflow-y:auto;overflow-x:hidden;padding:0 20px 24px;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;box-sizing:border-box}.bottom-sheet-content:after{content:"";position:sticky;bottom:0;left:0;right:0;height:24px;background:linear-gradient(to top,var(--glass-bg),transparent);pointer-events:none;display:block}@media (min-width: 768px){.bottom-sheet{top:0;bottom:0;left:auto;right:0;width:min(440px,calc(100% - 48px));height:100dvh;max-height:100dvh;border-radius:24px 0 0 24px;border-right:none;transform:translate(100%);transition:transform var(--duration-slow) var(--ease-spring-soft);will-change:transform}@supports not (height: 100dvh){.bottom-sheet{height:100vh;max-height:100vh}}.bottom-sheet.open{transform:translate(0);height:100dvh;max-height:100dvh}@supports not (height: 100dvh){.bottom-sheet.open{height:100vh;max-height:100vh}}.bottom-sheet-handle{display:none}.bottom-sheet-content{padding:20px 24px 32px}.bottom-sheet-content:after{display:none}}.map-container{position:relative;width:100%;height:100%;min-height:0;overflow:hidden;background:var(--bg-primary);padding-bottom:env(safe-area-inset-bottom,0);-webkit-overflow-scrolling:touch}.map-overlay-left{position:absolute;top:80px;left:12px;z-index:998;display:flex;flex-direction:column;gap:10px;align-items:flex-start;max-width:45%;will-change:transform;contain:layout}.map-overlay-right .coldest-locations{position:relative;top:auto;right:auto}.map-overlay-right .fog-status{position:relative;top:auto;right:auto;left:auto}.tile-dark{display:none}.tile-light,[data-theme=dark] .tile-dark{display:block}[data-theme=dark] .tile-light{display:none}@keyframes mapBreath{0%,to{opacity:.97}50%{opacity:1}}@keyframes mapBreathDark{0%,to{opacity:.98}50%{opacity:1}}.leaflet-tile{image-rendering:-webkit-optimize-contrast;image-rendering:crisp-edges}.uae-map-overlay{position:absolute;top:0;left:0;right:0;bottom:0;pointer-events:none;z-index:1;background:linear-gradient(to right,#ce112614,#ce112600 8%),linear-gradient(to bottom,#00732f0a,#ffffff05 35%,#00000008);mix-blend-mode:multiply}[data-theme=dark] .uae-map-overlay{background:linear-gradient(to right,#ce11261f,#ce112600 10%),linear-gradient(to bottom,#00732f0f,#0c0c0e0a 40%,#0000001a);mix-blend-mode:soft-light}@keyframes overlayFade{0%,to{opacity:1}50%{opacity:.92}}.map-rain-marker{pointer-events:none!important;border:none!important;background:none!important}.map-rain-zone{position:relative;width:120px;height:120px;border-radius:50%;background:radial-gradient(circle at 50% 50%,rgba(107,155,209,.18) 0%,rgba(107,155,209,.06) 50%,transparent 70%);overflow:hidden}[data-theme=dark] .map-rain-zone{background:radial-gradient(circle at 50% 50%,rgba(123,168,212,.22) 0%,rgba(123,168,212,.08) 50%,transparent 70%)}.map-rain-drop{position:absolute;left:50%;width:2px;height:10px;margin-left:-1px;background:linear-gradient(to bottom,rgba(107,155,209,.7),transparent);border-radius:1px;transform:translate(0) rotate(-12deg);animation:mapRainDropFall 1.4s linear infinite}[data-theme=dark] .map-rain-drop{background:linear-gradient(to bottom,rgba(180,210,240,.5),transparent)}.map-rain-drop:nth-child(1){left:18%;animation-delay:0s}.map-rain-drop:nth-child(2){left:32%;animation-delay:.15s}.map-rain-drop:nth-child(3){left:50%;animation-delay:.3s}.map-rain-drop:nth-child(4){left:68%;animation-delay:.45s}.map-rain-drop:nth-child(5){left:82%;animation-delay:.6s}.map-rain-drop:nth-child(6){left:25%;animation-delay:.75s}.map-rain-drop:nth-child(7){left:45%;animation-delay:.9s}.map-rain-drop:nth-child(8){left:60%;animation-delay:1.05s}.map-rain-drop:nth-child(9){left:75%;animation-delay:1.2s}.map-rain-drop:nth-child(10){left:90%;animation-delay:1.35s}@keyframes mapRainDropFall{0%{transform:translate(0) translateY(-8px) rotate(-12deg);opacity:0}8%{opacity:.8}92%{opacity:.5}to{transform:translate(4px) translateY(120px) rotate(-12deg);opacity:0}}.map-panning .map-fog-cloud{visibility:hidden}.map-panning .temp-bubble{animation:none}.map-panning .leaflet-tile{transition:none!important}.map-fog-marker{will-change:transform;pointer-events:none!important;border:none!important;background:none!important}.map-fog-cloud{width:126px;height:126px;position:relative;animation:mapFogCloudDrift 18s ease-in-out infinite;animation-delay:calc(var(--fog-phase, 0) * -1s)}@keyframes mapFogCloudDrift{0%,to{transform:translate(4px,-6px) scale(.96);opacity:.92}25%{transform:translate(-8px,4px) scale(1.02);opacity:1}50%{transform:translate(6px,8px) scale(.98);opacity:.95}75%{transform:translate(-5px,-4px) scale(1.01);opacity:.98}}.map-fog-zone{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:55% 45% 52% 48%/48% 55% 45% 52%;background:radial-gradient(ellipse 80% 70% at 50% 50%,rgba(220,228,240,.48) 0%,rgba(200,212,230,.28) 40%,rgba(190,202,220,.1) 65%,transparent 75%);overflow:hidden;animation:mapFogBlob 14s ease-in-out infinite;animation-delay:calc(var(--fog-phase, 0) * -.7s)}[data-theme=dark] .map-fog-zone{background:radial-gradient(ellipse 80% 70% at 50% 50%,rgba(120,135,155,.55) 0%,rgba(80,95,115,.28) 40%,rgba(60,75,95,.12) 65%,transparent 75%)}@keyframes mapFogBlob{0%,to{border-radius:55% 45% 52% 48%/48% 55% 45% 52%;transform:scale(1)}33%{border-radius:48% 52% 45% 55%/52% 48%;transform:scale(1.03)}66%{border-radius:52% 48% 55% 45%/45% 52% 48% 55%;transform:scale(.98)}}.map-fog-wisp{position:absolute;left:-20%;right:-20%;height:22px;will-change:transform;pointer-events:none;background:linear-gradient(90deg,transparent 0%,rgba(160,175,195,.35) 22%,rgba(140,158,182,.5) 50%,rgba(160,175,195,.35) 78%,transparent 100%);border-radius:50%;animation:mapFogWispDrift 7s ease-in-out infinite}[data-theme=dark] .map-fog-wisp{background:linear-gradient(90deg,transparent 0%,rgba(255,255,255,.06) 25%,rgba(255,255,255,.12) 50%,rgba(255,255,255,.06) 75%,transparent 100%)}.map-fog-wisp:nth-child(1){top:12%;animation-delay:0s;animation-duration:6.5s}.map-fog-wisp:nth-child(2){top:32%;animation-delay:1s;opacity:.9;animation-duration:8s}.map-fog-wisp:nth-child(3){top:52%;animation-delay:2.2s;opacity:.75;animation-duration:7s}@keyframes mapFogWispDrift{0%,to{transform:translate(-30%) translateY(2px) scaleX(.9);opacity:.4}50%{transform:translate(30%) translateY(-2px) scaleX(1.1);opacity:.9}}.map-marker-tooltip-title{font-weight:700;font-size:12px;color:var(--text-primary)}.map-marker-tooltip-desc{font-size:11px;color:var(--text-secondary);text-transform:capitalize}.leaflet-tooltip.map-marker-tooltip-pane{padding:8px 12px;border-radius:12px;border:1px solid var(--glass-border, rgba(0,0,0,.08));background:var(--glass-bg, rgba(255,255,255,.96));box-shadow:0 4px 20px #00000014;font-family:inherit;max-width:220px;white-space:normal;transition:opacity .2s ease,transform .2s ease}.leaflet-tooltip.map-marker-tooltip-pane .map-marker-tooltip-desc{display:block;margin-top:2px}.map-sidebar{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);z-index:1000;width:min(calc(100% - 32px),360px);height:fit-content;max-height:min(calc(100vh - 100px),520px);overflow-y:auto;overflow-x:hidden;border-radius:20px;animation:popupAppear .35s var(--ease-spring) backwards;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;padding:44px 44px 20px 20px;box-sizing:border-box;background:var(--glass-bg);backdrop-filter:blur(var(--glass-blur)) saturate(var(--glass-saturate));-webkit-backdrop-filter:blur(var(--glass-blur)) saturate(var(--glass-saturate));border:1px solid var(--glass-border);box-shadow:0 8px 32px #0000001f}[data-theme=dark] .map-sidebar{box-shadow:0 8px 40px #0006}@keyframes popupAppear{0%{opacity:0;transform:translate(-50%,-50%) scale(.92)}to{opacity:1;transform:translate(-50%,-50%) scale(1)}}.close-button{position:absolute;top:12px;right:12px;width:36px;height:36px;min-width:36px;min-height:36px;border-radius:50%;background:var(--glass-bg);backdrop-filter:blur(var(--glass-blur)) saturate(var(--glass-saturate));-webkit-backdrop-filter:blur(var(--glass-blur)) saturate(var(--glass-saturate));border:1px solid var(--glass-border);box-shadow:0 2px 16px #0000000f;cursor:pointer;font-size:22px;line-height:1;display:flex;align-items:center;justify-content:center;color:var(--text-primary);transition:transform .22s var(--ease-spring),background .2s ease,color .2s ease;z-index:1002;font-weight:300;flex-shrink:0}[data-theme=dark] .close-button{box-shadow:0 2px 20px #00000040}.close-button:hover{transform:scale(1.08) rotate(90deg);background:var(--pastel-coral);color:#fff;transition-duration:.22s}.close-button:active{transform:scale(.94) rotate(90deg);transition-duration:.1s}.leaflet-container{background:var(--bg-primary)!important;font-family:-apple-system,BlinkMacSystemFont,Inter,sans-serif}.leaflet-control-container{z-index:999}.leaflet-control-container .leaflet-bottom.leaflet-right{margin-right:16px!important;margin-bottom:16px!important}.leaflet-control-container .leaflet-top.leaflet-left{margin-left:16px!important;margin-top:16px!important}.leaflet-control-container .leaflet-top.leaflet-right{margin-right:16px!important;margin-top:16px!important}.leaflet-control-container .leaflet-bottom.leaflet-left{margin-left:16px!important;margin-bottom:16px!important}.leaflet-control-zoom{border:1px solid var(--glass-border)!important;border-radius:12px!important;overflow:visible!important;box-shadow:0 2px 16px #0000000d!important;background:var(--glass-bg)!important;margin:0!important}[data-theme=dark] .leaflet-control-zoom{box-shadow:0 2px 20px #00000040!important}.leaflet-control-zoom a{background-color:transparent!important;color:var(--text-primary)!important;border:none!important;width:32px!important;height:32px!important;line-height:32px!important;font-size:16px!important;transition:all .2s cubic-bezier(.4,0,.2,1)!important}.leaflet-control-zoom a:hover{background-color:var(--pastel-mint)!important;color:var(--text-primary)!important}.leaflet-popup-content-wrapper{border-radius:16px;box-shadow:0 4px 20px #0000000f;background:var(--glass-bg);backdrop-filter:blur(var(--glass-blur)) saturate(var(--glass-saturate));-webkit-backdrop-filter:blur(var(--glass-blur)) saturate(var(--glass-saturate));border:1px solid var(--glass-border)}[data-theme=dark] .leaflet-popup-content-wrapper{box-shadow:0 4px 24px #00000040}.leaflet-popup-content{margin:12px;font-size:13px;color:var(--text-primary)}.leaflet-popup-tip{background:var(--glass-bg);border:1px solid var(--glass-border)}.custom-marker{background:transparent!important;border:none!important}.temp-bubble{border-radius:50%;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 12px #0000001a,0 0 0 1px #ffffff26 inset;border:1px solid var(--glass-border);cursor:pointer;transition:transform .26s var(--ease-smooth),box-shadow .26s var(--ease-smooth);position:relative;overflow:visible;background:color-mix(in srgb,var(--bubble-tint, var(--glass-bg)) 32%,var(--glass-bg) 68%);backdrop-filter:blur(var(--glass-blur)) saturate(var(--glass-saturate));-webkit-backdrop-filter:blur(var(--glass-blur)) saturate(var(--glass-saturate));animation:bubblePop .4s cubic-bezier(.34,1.56,.64,1) forwards;will-change:transform;transform-origin:center center}@keyframes bubblePop{0%{opacity:0;transform:scale(.85)}to{opacity:1;transform:scale(1)}}.temp-bubble--selected{animation:none;transform:scale(1.15);box-shadow:0 4px 20px #0000001f,0 0 0 1px #ffffff40 inset;border-width:1px}.temp-bubble--my-location{border-width:2px;box-shadow:0 0 0 2px #f0b4a899,0 0 20px 2px var(--pastel-coral)}[data-theme=dark] .temp-bubble--my-location{box-shadow:0 0 0 2px #d4989080,0 0 20px 2px var(--pastel-coral)}.temp-bubble--just-revealed{animation:youOrbWhoosh 1.2s cubic-bezier(.34,1.2,.64,1) forwards;box-shadow:0 0 0 2px #f0b4a8cc,0 0 28px 4px var(--pastel-coral)}@keyframes youOrbWhoosh{0%{filter:blur(0);transform:scale(1);opacity:.6}18%{filter:blur(6px);transform:scale(1.35);opacity:1}to{filter:blur(0);transform:scale(1);opacity:1}}[data-theme=dark] .temp-bubble{box-shadow:0 2px 14px #0000004d,0 0 0 1px #ffffff0f inset}.temp-bubble:hover{transform:scale(1.06);box-shadow:0 4px 18px #0000001f,0 0 0 1px #fff3 inset;z-index:1000}.temp-bubble--selected:hover{transform:scale(1.18)}.temp-bubble:active{transform:scale(.96);transition-duration:.12s}.temp-bubble--selected:active{transform:scale(1.08)}.bubble-content{display:flex;flex-direction:column;align-items:center;justify-content:center;color:#334155;text-align:center;position:relative;z-index:1}.bubble-temp{font-size:16px;font-weight:700;line-height:1;margin-bottom:2px;text-shadow:0 1px 2px rgba(255,255,255,.6);letter-spacing:-.04em}.bubble-label{font-size:8px;font-weight:600;opacity:.95;text-shadow:0 1px 2px rgba(255,255,255,.5);max-width:50px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;line-height:1.1}[data-theme=dark] .bubble-content,[data-theme=dark] .bubble-temp,[data-theme=dark] .bubble-label{color:#fff;text-shadow:0 1px 3px rgba(0,0,0,.4),0 0 1px rgba(0,0,0,.2)}.bubble-aqi{display:inline-flex;align-items:center;justify-content:center;min-width:14px;height:14px;padding:0 3px;font-size:9px;font-weight:700;border-radius:10px;margin-top:2px;background:#ffffff80;color:#334155;text-shadow:0 1px 1px rgba(255,255,255,.4);line-height:1;transition:var(--theme-transition)}[data-theme=dark] .bubble-aqi{background:#ffffff1f;color:#eef0f4;text-shadow:0 1px 2px rgba(0,0,0,.4)}.bubble-aqi--1{background:#00b450e6}[data-theme=dark] .bubble-aqi--1{color:#fff!important;text-shadow:0 1px 2px rgba(0,0,0,.25)}.bubble-aqi--2{background:#ffc800e6}[data-theme=dark] .bubble-aqi--2{color:#1a1d24!important;text-shadow:0 1px 1px rgba(255,255,255,.3)}.bubble-aqi--3{background:#ff8c00e6;color:#fff!important;text-shadow:0 1px 2px rgba(0,0,0,.3)}.bubble-aqi--4{background:#ff5050e6;color:#fff!important;text-shadow:0 1px 2px rgba(0,0,0,.3)}.bubble-aqi--5{background:#a03278e6;color:#fff!important;text-shadow:0 1px 2px rgba(0,0,0,.3)}.bubble-aqi-wrap{display:inline-flex;flex-direction:column;align-items:center;gap:0;margin-top:2px}.bubble-aqi-label{font-size:6px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;opacity:.85;color:inherit;line-height:1;margin-top:0}[data-theme=dark] .bubble-aqi-label{opacity:.9}50%{transform:translateY(-3px)}} [data-theme="dark"] [data-theme="dark"] @media (max-width: 768px){.map-sidebar{position:fixed;top:auto;left:max(12px,env(safe-area-inset-left));right:max(12px,env(safe-area-inset-right));bottom:max(72px,env(safe-area-inset-bottom));width:auto;max-width:none;max-height:min(calc(100vh - env(safe-area-inset-top) - 88px),58dvh,460px);min-height:180px;transform:none;animation:slideUp .35s var(--ease-spring) backwards;box-shadow:0 -4px 24px var(--shadow);padding:48px 48px 20px 20px}@keyframes slideUp{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}.map-overlay-right .fog-status{position:absolute!important;left:12px;top:192px;right:auto;align-self:flex-start}.temp-bubble{width:58px!important;height:58px!important}.bubble-temp{font-size:14px}.bubble-label{font-size:7px;max-width:48px}.leaflet-control-container .leaflet-bottom.leaflet-right{margin-bottom:max(72px,env(safe-area-inset-bottom))!important;margin-right:max(12px,env(safe-area-inset-right))!important}}@media (max-width: 480px){.map-sidebar{width:calc(100vw - 24px);max-width:calc(100vw - 24px);left:max(12px,env(safe-area-inset-left));right:max(12px,env(safe-area-inset-right));bottom:max(80px,env(safe-area-inset-bottom));max-height:min(calc(100vh - env(safe-area-inset-top) - env(safe-area-inset-bottom) - 88px),65vh,420px);min-height:180px;padding:52px 52px 24px 20px;border-radius:20px;-webkit-overflow-scrolling:touch;box-sizing:border-box}.map-sidebar .close-button{min-width:44px;min-height:44px;width:44px;height:44px;top:10px;right:10px}.temp-bubble{width:52px!important;height:52px!important}.bubble-temp{font-size:13px}.bubble-label{font-size:6px;max-width:42px}.leaflet-control-container .leaflet-bottom.leaflet-right{margin-bottom:max(88px,calc(env(safe-area-inset-bottom) + 72px))!important;margin-right:max(12px,env(safe-area-inset-right))!important}}.leaflet-marker-pane .leaflet-marker-icon:has(.stargazing-meteor-wrap){z-index:1100!important}.stargazing-marker{background:transparent!important;border:none!important}.stargazing-al-quaa-orb{position:relative;border-radius:50%;overflow:visible}.stargazing-al-quaa-orb .stargazing-al-quaa-stars{position:absolute;top:-8px;right:-8px;bottom:-8px;left:-8px;pointer-events:none;z-index:0}.stargazing-al-quaa-orb .stargazing-al-quaa-bubble{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;width:56px;height:56px;margin:0;display:flex;align-items:center;justify-content:center}.stargazing-meteor-wrap{position:relative;width:40px;height:48px;display:flex;align-items:center;justify-content:center}.stargazing-shooting-stars{position:absolute;top:-18px;right:-18px;bottom:-18px;left:-18px;pointer-events:none;overflow:hidden}.stargazing-shooting-star{position:absolute;width:28px;height:2px;left:-30px;top:20%;background:linear-gradient(90deg,transparent 0%,var(--star-fill-mid) 30%,var(--star-fill-start) 60%,transparent 100%);border-radius:2px;transform:rotate(-35deg);opacity:0;box-shadow:0 0 6px 1px var(--star-glow)}.stargazing-shooting-star--1{animation:none!important;animation-delay:0s}.stargazing-shooting-star--2{animation:none!important;top:55%;left:-30px;transform:rotate(-25deg);animation-delay:6s}@keyframes stargazingMeteorPass{0%,3%{left:-30px;opacity:0;transform:rotate(-35deg) scale(.8)}3.5%{opacity:.95}5%{left:70px;opacity:.35;transform:rotate(-35deg) scale(1)}6%{left:75px;opacity:0;transform:rotate(-35deg) scale(.9)}6.01%,to{left:-30px;opacity:0}}@keyframes stargazingMeteorPass2{0%,2.5%{left:-30px;opacity:0;transform:rotate(-25deg) scale(.8)}3%{opacity:.9}4.2%{left:72px;opacity:0;transform:rotate(-25deg) scale(1)}4.21%,to{left:-30px;opacity:0}}.stargazing-meteor-stars{position:absolute;top:-14px;right:-14px;bottom:-14px;left:-14px;pointer-events:none}.stargazing-meteor-stars .star-dot{position:absolute;width:2px;height:2px;margin-left:-1px;margin-top:-1px;background:var(--star-fill-mid);border-radius:50%;opacity:.35;transition:var(--theme-transition)}.stargazing-meteor-stars .star-dot--outer{width:1.5px;height:1.5px;margin-left:-.75px;margin-top:-.75px;opacity:.25}.stargazing-meteor-stars--subtle .star-dot{box-shadow:0 0 3px 0 var(--star-glow)}.stargazing-meteor-stars--subtle .star-dot--outer{animation-delay:.5s}@keyframes starTwinkleSubtle{0%,to{opacity:.25;transform:scale(1);filter:brightness(.95)}50%{opacity:.55;transform:scale(1.15);filter:brightness(1.1)}}.stargazing-meteor-stars--active .star-dot{width:3px;height:3px;margin-left:-1.5px;margin-top:-1.5px;opacity:.65;background:radial-gradient(circle,var(--star-fill-start) 0%,var(--star-fill-mid) 40%,var(--star-fill-end) 100%);box-shadow:0 0 4px 1px var(--star-glow)}.stargazing-meteor-stars--active .star-dot--outer{width:2px;height:2px;margin-left:-1px;margin-top:-1px;opacity:.5}@keyframes starShimmer{0%,to{opacity:.35;transform:scale(1);filter:brightness(.9)}50%{opacity:.95;transform:scale(1.25);filter:brightness(1.2);box-shadow:0 0 6px 2px var(--star-glow)}}.stargazing-meteor-cluster{position:absolute;top:-10px;right:-10px;bottom:-10px;left:-10px;pointer-events:none}.cluster-dot{position:absolute;width:3px;height:3px;left:50%;top:50%;margin-left:-1.5px;margin-top:-1.5px;background:#b48cffe6;border-radius:50%;transform:rotate(var(--angle, 0deg)) translateY(-14px);transition:var(--theme-transition)}[data-theme=dark] .cluster-dot{background:#c8a0fff2;box-shadow:0 0 4px #c8a0ff80}@keyframes meteorClusterSpin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.stargazing-meteor-btn-icon{display:inline-flex;align-items:center;justify-content:center;line-height:1;z-index:1}.meteor-icon-svg{display:block}.meteor-icon-head{fill:#d97830;stroke:none}.meteor-icon-tail{fill:#e89850;stroke:none}[data-theme=dark] .meteor-icon-head{fill:#e09040}[data-theme=dark] .meteor-icon-tail{fill:#e8a858}.stargazing-meteor-btn{width:36px;height:44px;border-radius:18px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:0;position:relative;overflow:visible;cursor:pointer;z-index:1;border:1px solid var(--glass-border);background:var(--glass-bg);box-shadow:0 1px 4px #00000014;transition:transform .2s ease,box-shadow .2s ease,var(--theme-transition)}[data-theme=dark] .stargazing-meteor-btn{background:#16181ee6;border-color:#ffffff1a;box-shadow:0 1px 6px #00000059}@keyframes meteorReactive{0%,to{opacity:1}50%{opacity:.92}}.stargazing-meteor-btn-label{font-size:8px;font-weight:700;text-transform:uppercase;letter-spacing:.03em;color:var(--text-primary);line-height:1;transition:var(--theme-transition)}.stargazing-meteor-btn--good{border-color:#64c8968c;background:color-mix(in srgb,rgba(100,200,150,.15) 20%,var(--glass-bg) 80%)}[data-theme=dark] .stargazing-meteor-btn--good{border-color:#64c89680;background:color-mix(in srgb,rgba(100,200,150,.2) 25%,var(--glass-bg) 75%)}.stargazing-meteor-btn--fair{border-color:#ffc86480;background:color-mix(in srgb,rgba(255,200,100,.12) 20%,var(--glass-bg) 80%)}[data-theme=dark] .stargazing-meteor-btn--fair{border-color:#ffc86473;background:color-mix(in srgb,rgba(255,200,100,.18) 25%,var(--glass-bg) 75%)}.stargazing-meteor-btn--poor{border-color:#8c8ca080}[data-theme=dark] .stargazing-meteor-btn--poor{border-color:#a0a0b459;background:color-mix(in srgb,rgba(140,140,160,.1) 15%,var(--glass-bg) 85%)}.stargazing-meteor-btn--none{border-color:var(--glass-border)}.stargazing-meteor-btn:hover{transform:scale(1.1);box-shadow:0 2px 8px #0000001f}.stargazing-meteor-btn--active{border-color:#b48cffa6;background:color-mix(in srgb,rgba(180,140,255,.2) 25%,var(--glass-bg) 75%)}[data-theme=dark] .stargazing-meteor-btn--active{border-color:#c8a0ff99;background:color-mix(in srgb,rgba(180,140,255,.28) 30%,var(--glass-bg) 70%)}@keyframes meteorBtnPulse{0%,to{transform:scale(1)}50%{transform:scale(1.04)}}.map-sidebar-stargazing-wrapper{position:relative;padding:0 16px 16px;min-height:0}.map-sidebar-stargazing-wrapper .weather-sidebar-header{padding:12px 12px 8px;position:sticky;top:0;z-index:10;background:var(--glass-bg)}.map-sidebar-stargazing-section{margin-top:8px}.al-quaa-stargazing-summary{margin-top:14px;padding:14px 16px;border-radius:14px;background:var(--glass-bg);border:1px solid var(--glass-border);font-size:13px;transition:var(--theme-transition)}.al-quaa-stargazing-heading{margin:0 0 8px;font-size:14px;font-weight:700;color:var(--text-primary);text-transform:uppercase;letter-spacing:.04em}.al-quaa-stargazing-conditions{margin:0 0 10px;color:var(--text-secondary);font-weight:500}.al-quaa-score{font-weight:700;text-transform:uppercase}.al-quaa-score--excellent{color:#10b981}.al-quaa-score--good{color:var(--pastel-mint)}.al-quaa-score--fair{color:var(--score-fair)}.al-quaa-score--poor{color:var(--text-secondary)}.al-quaa-meteors{margin-top:10px}.al-quaa-meteors-label{font-weight:600;color:var(--text-primary);display:block;margin-bottom:4px}.al-quaa-meteor-list{margin:0;padding-left:18px;color:var(--text-secondary);font-weight:500}.al-quaa-meteor-list li{margin:2px 0}.al-quaa-stargazing-loading{margin:0;color:var(--text-secondary);font-style:italic}.mail-subscribe-trigger{position:fixed;bottom:max(24px,env(safe-area-inset-bottom));left:84px;z-index:1000;width:52px;height:52px;border-radius:14px;background:var(--glass-bg);backdrop-filter:blur(var(--glass-blur)) saturate(var(--glass-saturate));-webkit-backdrop-filter:blur(var(--glass-blur)) saturate(var(--glass-saturate));border:1px solid var(--glass-border);box-shadow:0 2px 16px #0000000a;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--text-primary);transition:transform .24s var(--ease-smooth),box-shadow .24s var(--ease-smooth),background .3s ease}.mail-subscribe-trigger:hover{transform:scale(1.04);box-shadow:0 4px 20px #0000000f;background:#ffffff7a}[data-theme=dark] .mail-subscribe-trigger:hover{background:#00000080;box-shadow:0 4px 24px #0000004d}.mail-subscribe-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000059;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);z-index:1100;display:flex;align-items:center;justify-content:center;padding:16px;animation:mailBackdropIn .2s var(--ease-smooth)}@keyframes mailBackdropIn{0%{opacity:0}to{opacity:1}}.mail-subscribe-modal{background:var(--glass-bg);backdrop-filter:blur(var(--glass-blur)) saturate(var(--glass-saturate));-webkit-backdrop-filter:blur(var(--glass-blur)) saturate(var(--glass-saturate));border:1px solid var(--glass-border);border-radius:24px;padding:24px;max-width:400px;width:100%;box-shadow:0 8px 40px #00000014;position:relative;animation:mailModalIn .25s var(--ease-spring)}[data-theme=dark] .mail-subscribe-modal{box-shadow:0 8px 48px #00000059}@keyframes mailModalIn{0%{opacity:0;transform:scale(.96) translateY(-8px)}to{opacity:1;transform:scale(1) translateY(0)}}.mail-subscribe-close{position:absolute;top:12px;right:12px;width:32px;height:32px;border:none;background:transparent;color:var(--text-secondary);font-size:24px;line-height:1;cursor:pointer;border-radius:8px;transition:color .2s,background .2s}.mail-subscribe-close:hover{color:var(--text-primary);background:var(--border)}.mail-subscribe-title{margin:0 0 8px;font-size:18px;font-weight:700;color:var(--text-primary)}.mail-subscribe-desc{margin:0 0 20px;font-size:14px;color:var(--text-secondary);line-height:1.5}.mail-subscribe-form{display:flex;flex-direction:column;gap:12px}.mail-subscribe-input{width:100%;padding:12px 14px;font-size:15px;border:1px solid var(--border);border-radius:10px;background:var(--bg-primary);color:var(--text-primary);transition:border-color .2s;box-sizing:border-box}.mail-subscribe-input:focus{outline:none;border-color:var(--accent-rain)}.mail-subscribe-input::placeholder{color:var(--text-secondary);opacity:.8}.mail-subscribe-submit{padding:12px 16px;font-size:15px;font-weight:600;border:none;border-radius:10px;background:var(--accent-rain);color:#fff;cursor:pointer;transition:opacity .2s,transform .2s}.mail-subscribe-submit:hover:not(:disabled){opacity:.95;transform:translateY(-1px)}.mail-subscribe-submit:disabled{opacity:.7;cursor:not-allowed}.mail-subscribe-message{margin:16px 0 0;font-size:13px;line-height:1.4}.mail-subscribe-message--success{color:var(--uae-green)}.mail-subscribe-message--error{color:var(--accent-sun)}.mail-subscribe-success-box{background:#10b9811a;border:1px solid rgba(16,185,129,.3);border-radius:12px;padding:16px;margin-bottom:16px;text-align:center}.mail-subscribe-success-icon{font-size:32px;display:block;margin-bottom:8px;color:#10b981}.mail-subscribe-success-title{font-size:16px;font-weight:700;color:#10b981;display:block;margin-bottom:8px}.mail-subscribe-success-message{font-size:13px;font-weight:500;color:var(--text-secondary);line-height:1.5}.mail-subscribe-error-msg{font-size:13px;font-weight:600;color:#ef4444;margin:-8px 0 0;display:flex;align-items:center;gap:6px}.mail-subscribe-input--error{border-color:#ef4444;background:#fef2f299}.mail-subscribe-close-btn{width:100%;padding:12px 20px;margin-top:12px;font-size:15px;font-weight:600;border:none;border-radius:10px;background:var(--border);color:var(--text-primary);cursor:pointer;transition:background .2s}.mail-subscribe-close-btn:hover{background:var(--border-medium)}@media (max-width: 768px){.mail-subscribe-trigger{left:68px;bottom:max(16px,env(safe-area-inset-bottom));width:44px;height:44px}}@media (max-width: 480px){.mail-subscribe-trigger{left:58px;bottom:max(12px,env(safe-area-inset-bottom));width:42px;height:42px}}.view-count-pill{display:inline-flex;align-items:center;gap:5px;padding:4px 10px;border-radius:10px;white-space:nowrap;background:var(--glass-bg);backdrop-filter:blur(var(--glass-blur)) saturate(var(--glass-saturate));-webkit-backdrop-filter:blur(var(--glass-blur)) saturate(var(--glass-saturate));border:1px solid var(--glass-border);box-shadow:0 2px 10px #0000000a;color:var(--text-secondary);font-size:11px;font-weight:600;letter-spacing:.02em;transition:transform var(--duration-fast) var(--ease-smooth),box-shadow var(--duration-fast) var(--ease-smooth),opacity var(--duration-normal) var(--ease-smooth);animation:viewCountFadeIn .4s var(--ease-smooth) backwards}.view-count-pill:hover{transform:scale(1.02);box-shadow:0 4px 14px #0000000f}.view-count-pill--loading{opacity:.7}.view-count-pill--bump .view-count-value{animation:viewCountBump .45s var(--ease-spring)}.view-count-value{color:var(--text-primary);font-variant-numeric:tabular-nums}.view-count-label{color:var(--text-secondary);font-weight:500;font-size:10px;text-transform:lowercase;opacity:.9}@keyframes viewCountFadeIn{0%{opacity:0;transform:scale(.92)}to{opacity:1;transform:scale(1)}}@keyframes viewCountBump{0%{transform:scale(1)}40%{transform:scale(1.12)}70%{transform:scale(.98)}to{transform:scale(1)}}.alert-banner{position:fixed;top:60px;left:0;right:0;color:#fff;padding:14px 20px;display:flex;align-items:flex-start;gap:12px;box-shadow:0 4px 12px #0003;z-index:1001;animation:bannerSlideDown .4s var(--ease-spring) forwards}.alert-icon{font-size:20px;flex-shrink:0;animation:alertPulse 2s ease-in-out infinite}.alert-content{flex:1;min-width:0}.alert-title{display:block;font-size:14px;margin-bottom:4px}.alert-description{font-size:13px;opacity:.95;margin:0 0 4px;line-height:1.35}.alert-time{font-size:12px;opacity:.9}.alert-dismiss{width:32px;height:32px;min-width:32px;min-height:32px;border-radius:50%;background:#fff3;border:none;color:#fff;cursor:pointer;font-size:18px;display:flex;align-items:center;justify-content:center;transition:background .2s}.alert-dismiss:hover{background:#ffffff4d}@keyframes bannerSlideDown{0%{transform:translateY(-100%)}to{transform:translateY(0)}}@keyframes alertPulse{0%,to{transform:scale(1);opacity:1}50%{transform:scale(1.1);opacity:.85}}.background-gradient{position:fixed;top:0;left:0;width:100vw;height:100vh;z-index:-1;overflow:hidden;transition:background .8s var(--ease-gentle)}[data-aurora=true] .background-gradient{background:linear-gradient(to bottom,#0d0a18,#050308)!important}[data-aurora=true] .background-gradient:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(135deg,#7850c814,#50c89614);background-size:200% 200%;animation:auroraShift 15s ease infinite;pointer-events:none}@keyframes auroraShift{0%,to{background-position:0% 50%;opacity:.6}50%{background-position:100% 50%;opacity:.8}}.ambient-particles{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:0;overflow:hidden}.ambient-stars{position:absolute;top:0;right:0;bottom:0;left:0}.ambient-star{position:absolute;width:2px;height:2px;background:#fff;border-radius:50%;opacity:.3;animation:starTwinkle 2s ease-in-out infinite}@keyframes starTwinkle{0%,to{opacity:.2;transform:scale(1)}50%{opacity:.8;transform:scale(1.2)}}.ambient-shooting-stars{position:absolute;top:0;right:0;bottom:0;left:0}.ambient-shooting-star{position:absolute;width:2px;height:80px;background:linear-gradient(to bottom,rgba(255,255,255,.9),transparent);border-radius:2px;transform:rotate(-45deg);left:-100px;top:-100px;animation:shootingStar .5s ease-out 1;animation-fill-mode:both}@keyframes shootingStar{0%{opacity:0;transform:rotate(-45deg) translate(0)}10%{opacity:1}to{opacity:0;transform:rotate(-45deg) translate(400px,400px)}}.ambient-rain{position:absolute;top:0;right:0;bottom:0;left:0}.ambient-rain-drop{position:absolute;width:1px;height:12px;background:linear-gradient(to bottom,rgba(107,155,209,.5),transparent);transform:rotate(60deg);animation:rainFall .8s linear infinite}@keyframes rainFall{0%{transform:rotate(60deg) translateY(-20px);opacity:0}10%{opacity:.5}90%{opacity:.5}to{transform:rotate(60deg) translateY(100vh);opacity:0}}.ambient-dust{position:absolute;top:0;right:0;bottom:0;left:0;background:#d4a57414}.ambient-dust-particle{position:absolute;width:6px;height:6px;background:#d4a57466;border-radius:50%;filter:blur(2px);animation:dustFloat 4s ease-in-out infinite}@keyframes dustFloat{0%,to{transform:translate(0);opacity:.2}50%{transform:translate(10px,-8px);opacity:.4}}.ambient-cloud-shadows{position:absolute;top:0;right:0;bottom:0;left:0}.ambient-cloud-shadow{position:absolute;width:300px;height:120px;background:radial-gradient(ellipse,rgba(0,0,0,.06) 0%,transparent 70%);border-radius:50%;left:10%;top:15%;animation:cloudDrift 25s linear infinite}.ambient-cloud-shadow:nth-child(2){left:50%;top:30%;animation-duration:30s;animation-direction:reverse}@keyframes cloudDrift{0%{transform:translate(0)}to{transform:translate(100vw)}}.ambient-dust-day{position:absolute;top:0;right:0;bottom:0;left:0}.ambient-dust-dot{position:absolute;width:2px;height:2px;background:#e8c86426;border-radius:50%;animation:dustUp 10s linear infinite}@keyframes dustUp{0%{transform:translateY(100vh) translate(0);opacity:0}10%{opacity:.15}90%{opacity:.15}to{transform:translateY(-20px) translate(20px);opacity:0}}*{margin:0;padding:0;box-sizing:border-box}.skip-link{position:absolute;top:-100px;left:16px;padding:12px 16px;background:var(--bg-primary);color:var(--text-primary);font-weight:600;border-radius:8px;box-shadow:0 4px 12px #00000026;z-index:9999;transition:top .2s}.skip-link:focus{top:16px;outline:2px solid var(--accent-sun);outline-offset:2px}:root{--bg-primary: #ffffff;--bg-secondary: #f2f4f8;--text-primary: #1a1d24;--text-secondary: #5a616e;--accent-sun: #e07c7c;--accent-rain: #6b9bd1;--accent: #e07c7c;--pastel-mint: #9dd4c4;--pastel-sky: #a8d4e6;--pastel-coral: #f0b4a8;--pastel-sand: #e8dcc4;--pastel-lavender: #c4b8db;--uae-red: #ce1126;--uae-green: #00732f;--uae-white: #ffffff;--uae-black: #000000;--card-bg: rgba(255, 255, 255, .95);--card-bg-solid: #ffffff;--border: rgba(0, 0, 0, .08);--shadow: rgba(0, 0, 0, .06);--glass-bg: rgba(255, 255, 255, .36);--glass-border: rgba(255, 255, 255, .55);--glass-blur: 24px;--glass-saturate: 1.35;--ease-spring: cubic-bezier(.34, 1.56, .64, 1);--ease-smooth: cubic-bezier(.4, 0, .2, 1);--ease-out-back: cubic-bezier(.34, 1.2, .64, 1);--font-display: -apple-system, BlinkMacSystemFont, "Inter", "Segoe UI", sans-serif;--temp-weight: 700;--temp-tracking: -.04em;--star-fill-start: #fff8d4;--star-fill-mid: #e8c840;--star-fill-end: #c9a020;--star-glow: rgba(232, 200, 80, .6);--moon-lit: #e8d48c;--moon-shadow: #2a2a2e;--score-fair: #c9a030;--theme-transition: color .3s var(--ease-smooth), background .3s var(--ease-smooth), border-color .3s var(--ease-smooth), box-shadow .3s var(--ease-smooth), fill .3s var(--ease-smooth)}[data-theme=dark]{--bg-primary: #08090a;--bg-secondary: #0c0d0e;--text-primary: #eef0f4;--text-secondary: #9ca0a8;--accent-sun: #e89090;--accent-rain: #7ba8d4;--accent: #e89090;--pastel-mint: #6aaa9a;--pastel-sky: #6a9fbf;--pastel-coral: #d49890;--pastel-sand: #9a9280;--pastel-lavender: #8a7aaa;--card-bg: rgba(12, 12, 14, .95);--card-bg-solid: #0e0e10;--border: rgba(255, 255, 255, .06);--shadow: rgba(0, 0, 0, .5);--glass-bg: rgba(0, 0, 0, .38);--glass-border: rgba(255, 255, 255, .06);--glass-blur: 24px;--glass-saturate: 1.35;--star-fill-start: #fff4c0;--star-fill-mid: #e8d060;--star-fill-end: #c9a830;--star-glow: rgba(255, 230, 120, .5);--moon-lit: #f0e6a8;--moon-shadow: #0e0e12;--score-fair: #e8c850}html{height:100%;-webkit-text-size-adjust:100%}body{font-family:var(--font-display);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow:hidden;background:var(--bg-primary);color:var(--text-primary);transition:background-color .3s ease,color .3s ease;min-height:100%;height:100%;width:100%;-webkit-tap-highlight-color:transparent}.app{width:100%;min-width:0;min-height:100%;height:100%;min-height:100dvh;height:100dvh;display:flex;flex-direction:column;background:linear-gradient(to bottom,var(--bg-primary),var(--bg-secondary));overflow:hidden;-webkit-overflow-scrolling:touch}@supports not (height: 100dvh){.app{min-height:100vh;height:100vh}}[data-theme=dark] .app{background:linear-gradient(to bottom,var(--bg-primary),var(--bg-secondary))}.app-header{background:var(--glass-bg);padding:10px 16px;border-radius:20px;box-shadow:var(--glass-shadow);border:1px solid var(--glass-border);display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;z-index:1000;position:absolute;top:12px;left:12px;right:12px;overflow:hidden;box-sizing:border-box;animation:slideDown var(--duration-slow) var(--ease-spring-soft) backwards}.app-header:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;backdrop-filter:blur(16px) saturate(1.3);-webkit-backdrop-filter:blur(16px) saturate(1.3);border-radius:inherit;pointer-events:none;z-index:-1}.app-header>*{position:relative;z-index:1}[data-theme=dark] .app-header{box-shadow:var(--glass-shadow),var(--glass-inner-glow)}.app-header h1{font-size:20px;font-weight:600;color:var(--text-primary);letter-spacing:-.03em}.header-info{display:flex;align-items:center;flex-wrap:nowrap;gap:12px;font-size:12px;color:var(--text-secondary);font-weight:500;min-width:0}.header-meta{display:inline-flex;align-items:center;gap:10px;flex-shrink:0;white-space:nowrap}.loading-indicator{animation:pulse 1.8s var(--ease-smooth) infinite;font-weight:500}.error-message{color:#ef4444;font-size:12px;font-weight:500}.last-refresh{color:var(--text-secondary);font-size:12px;font-weight:500;opacity:.9;display:inline-flex;align-items:center;gap:6px}.last-refresh-dot{width:4px;height:4px;border-radius:50%;background:#10b981;flex-shrink:0}.app-main{flex:1;min-height:0;position:relative;overflow:hidden}.loading-screen{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;background:var(--bg-primary);gap:20px}.loading-screen-text{font-size:15px;font-weight:600;color:var(--text-secondary);animation:pulse 2s ease-in-out infinite}@media (prefers-reduced-motion: reduce){.loading-screen-text{animation:none}.spinner{animation:none;border-top-color:var(--accent-sun)}}.spinner{width:44px;height:44px;border:3px solid var(--border);border-top-color:var(--accent-sun);border-radius:50%;animation:spin .9s var(--ease-smooth) infinite}.error-screen{text-align:center;color:var(--text-secondary);padding:40px;display:flex;flex-direction:column;align-items:center}.error-screen-icon{font-size:64px;margin-bottom:16px;opacity:.8}.error-screen-title{font-size:20px;font-weight:700;color:var(--text-primary);margin-bottom:12px}.error-screen-desc{font-size:14px;font-weight:500;color:var(--text-secondary);line-height:1.6;max-width:360px;margin-bottom:24px}.error-screen-link{font-size:13px;font-weight:600;color:#5eb3f6;margin-bottom:16px;text-decoration:none}.error-screen-link:hover{text-decoration:underline}.error-screen-retry{margin-top:0}.error-screen p{font-size:16px;margin-bottom:12px;color:var(--text-primary)}.error-screen button{margin-top:20px;padding:12px 24px;background:var(--accent-sun);color:#fff;border:none;border-radius:10px;cursor:pointer;font-size:15px;font-weight:600;letter-spacing:-.02em;transition:transform .25s var(--ease-spring),box-shadow .25s var(--ease-smooth);box-shadow:0 2px 8px var(--shadow)}.error-screen button:hover{transform:translateY(-2px) scale(1.02);box-shadow:0 6px 16px var(--shadow)}.error-screen button:active{transform:translateY(0) scale(.98)}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.theme-toggle{position:fixed;bottom:24px;left:24px;width:48px;height:48px;border-radius:50%;background:var(--glass-bg);border:1px solid var(--glass-border);box-shadow:var(--glass-shadow),var(--glass-inner-glow);cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:20px;z-index:1000;transition:transform var(--duration-normal) var(--ease-spring),box-shadow var(--duration-normal) var(--ease-smooth),background var(--duration-slow) var(--ease-smooth),border-color var(--duration-normal) var(--ease-smooth);color:var(--text-primary)}[data-theme=dark] .theme-toggle{box-shadow:var(--glass-shadow),var(--glass-inner-glow)}.theme-toggle:hover{transform:scale(1.1);box-shadow:var(--glass-shadow-hover),var(--glass-inner-glow-strong);background:var(--glass-bg-hover);border-color:var(--glass-border-hover)}[data-theme=dark] .theme-toggle:hover{box-shadow:var(--glass-shadow-hover),var(--glass-inner-glow-strong);background:var(--glass-bg-hover)}.theme-toggle:active{transform:scale(.9);transition-duration:var(--duration-instant)}.theme-toggle-icon{display:flex;align-items:center;justify-content:center;width:22px;height:22px;transition:transform var(--duration-slow) var(--ease-spring)}.theme-toggle--spin .theme-toggle-icon{animation:themeFlip var(--duration-slow) var(--ease-spring) forwards}@keyframes themeIconSpin{0%{transform:rotate(0) scale(1)}50%{transform:rotate(180deg) scale(.85)}to{transform:rotate(360deg) scale(1)}}.app{transition:filter .3s ease}.app--theme-blur{filter:blur(8px);isolation:isolate;will-change:filter}.app--region-blur{filter:blur(10px);transform:scaleX(.98);transform-origin:center center;transition:filter .3s ease,transform .3s ease}.app{padding-left:env(safe-area-inset-left,0);padding-right:env(safe-area-inset-right,0);padding-bottom:env(safe-area-inset-bottom,0)}.app-header{padding-left:max(18px,env(safe-area-inset-left));padding-right:max(24px,env(safe-area-inset-right))}.theme-toggle{left:max(24px,env(safe-area-inset-left));bottom:max(24px,env(safe-area-inset-bottom))}.region-toggle{position:fixed;left:max(24px,env(safe-area-inset-left));bottom:calc(max(24px,env(safe-area-inset-bottom)) + 68px);z-index:1001;display:inline-flex;align-items:center;gap:8px;padding:10px 14px;border-radius:12px;background:var(--glass-bg);border:1px solid var(--glass-border);box-shadow:0 2px 16px #0000000f;color:var(--text-primary);font-size:13px;font-weight:500;cursor:pointer;transition:transform .24s var(--ease-smooth),box-shadow .24s var(--ease-smooth)}.region-toggle:hover{transform:scale(1.04);box-shadow:0 4px 20px #00000014}.region-toggle:active{transform:scale(.98)}.region-toggle-icon{display:flex;align-items:center;justify-content:center;font-size:18px;line-height:1}.region-toggle--spin .region-toggle-icon{animation:themeIconSpin .5s var(--ease-spring) forwards}.region-toggle-label{white-space:nowrap}@media (max-width: 768px){.region-toggle{left:max(16px,env(safe-area-inset-left));bottom:calc(max(16px,env(safe-area-inset-bottom)) + 64px)}}@media (max-width: 480px){.region-toggle-label{display:none}.region-toggle{padding:12px;left:max(12px,env(safe-area-inset-left));bottom:calc(max(12px,env(safe-area-inset-bottom)) + 58px)}}@media (min-width: 1024px){.theme-toggle{width:52px;height:52px}}@media (max-width: 768px){.app-header{padding:12px max(16px,env(safe-area-inset-left)) 12px max(16px,env(safe-area-inset-right))}.app-header h1{font-size:18px}.header-info{font-size:12px;gap:12px}.theme-toggle{bottom:max(16px,env(safe-area-inset-bottom));left:max(16px,env(safe-area-inset-left));width:48px;height:48px;font-size:18px}}@media (max-width: 380px){.app-header{flex-direction:column;align-items:stretch;gap:10px;padding:10px max(12px,env(safe-area-inset-left)) 10px max(12px,env(safe-area-inset-right))}.app-header h1{font-size:17px}.header-info,.header-meta{flex-wrap:wrap}}.claim-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000004d;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);z-index:1100;display:flex;align-items:center;justify-content:center;padding:16px;animation:gradientFadeIn var(--duration-normal) var(--ease-smooth) backwards}.claim-modal{background:var(--glass-bg);backdrop-filter:blur(16px) saturate(1.3);-webkit-backdrop-filter:blur(16px) saturate(1.3);border:1px solid var(--glass-border);border-radius:20px;padding:24px;max-width:320px;width:100%;box-shadow:var(--glass-shadow-elevated),var(--glass-inner-glow);animation:popupAppear var(--duration-slow) var(--ease-spring-soft) backwards}.claim-modal h2{font-size:18px;font-weight:600;margin:0 0 8px;color:var(--text-primary)}.claim-desc{font-size:13px;color:var(--text-secondary);margin:0 0 16px}.claim-input{width:100%;padding:10px 12px;font-size:15px;border:1px solid var(--border);border-radius:10px;background:var(--bg-primary);color:var(--text-primary);margin-bottom:8px;box-sizing:border-box}.claim-error{font-size:12px;color:var(--accent-sun);margin:0 0 8px}.claim-actions{display:flex;gap:10px;justify-content:flex-end}.claim-actions button{padding:8px 16px;font-size:14px;font-weight:600;border-radius:10px;cursor:pointer;border:1px solid var(--border);background:var(--bg-secondary);color:var(--text-primary)}.claim-actions button[type=submit]{background:var(--pastel-mint);border-color:var(--pastel-mint);color:var(--text-primary)}@media (max-width: 480px){.theme-toggle{bottom:max(12px,env(safe-area-inset-bottom));left:max(12px,env(safe-area-inset-left));min-width:44px;min-height:44px;width:44px;height:44px}.region-toggle{min-height:44px;padding:12px}}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;text-size-adjust:100%}::selection{background:#3b82f633;color:inherit}[data-theme=dark] ::selection{background:#60a5fa40}:focus-visible{outline:2px solid rgba(59,130,246,.5);outline-offset:2px;border-radius:4px}*{-webkit-tap-highlight-color:transparent}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}[data-numeric],.tabular-nums{font-variant-numeric:tabular-nums}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#0000001f;border-radius:3px}::-webkit-scrollbar-thumb:hover{background:#0003}[data-theme=dark] ::-webkit-scrollbar-thumb{background:#ffffff1f}[data-theme=dark] ::-webkit-scrollbar-thumb:hover{background:#fff3}*{scrollbar-width:thin;scrollbar-color:rgba(0,0,0,.12) transparent}[data-theme=dark] *{scrollbar-color:rgba(255,255,255,.12) transparent}:root{--bg-primary: #ffffff;--bg-secondary: #f2f4f8;--text-primary: #1a1d24;--text-secondary: #5a616e;--accent-sun: #e07c7c;--accent-rain: #6b9bd1;--accent-mint: #10b981;--pastel-mint: #9dd4c4;--pastel-sky: #a8d4e6;--pastel-coral: #f0b4a8;--pastel-sand: #e8dcc4;--pastel-lavender: #c4b8db;--glass-bg: rgba(255, 255, 255, .3);--glass-bg-hover: rgba(255, 255, 255, .42);--glass-bg-active: rgba(255, 255, 255, .5);--glass-border: rgba(255, 255, 255, .45);--glass-border-hover: rgba(255, 255, 255, .62);--glass-blur: 40px;--glass-saturate: 1.7;--glass-inner-glow: inset 0 1px 0 0 rgba(255, 255, 255, .6);--glass-inner-glow-strong: inset 0 1px 1px 0 rgba(255, 255, 255, .7);--glass-shadow: 0 8px 32px rgba(0, 0, 0, .06), 0 2px 8px rgba(0, 0, 0, .04);--glass-shadow-hover: 0 12px 40px rgba(0, 0, 0, .1), 0 4px 12px rgba(0, 0, 0, .06);--glass-shadow-elevated: 0 20px 60px rgba(0, 0, 0, .12), 0 8px 24px rgba(0, 0, 0, .08);--border-light: rgba(0, 0, 0, .06);--border-medium: rgba(0, 0, 0, .1);--shadow-sm: 0 4px 12px rgba(0, 0, 0, .05);--shadow-md: 0 8px 24px rgba(0, 0, 0, .08);--shadow-lg: 0 16px 40px rgba(0, 0, 0, .12);--moon-lit: #e8d48c;--moon-shadow: #2a2a2e;--star-gold: #e8c840;--star-glow: rgba(232, 200, 80, .6);--font-display: -apple-system, BlinkMacSystemFont, "Inter", "SF Pro Display", sans-serif;--duration-instant: .1s;--duration-fast: .2s;--duration-normal: .35s;--duration-slow: .5s;--duration-slowest: .8s;--ease-spring: cubic-bezier(.34, 1.56, .64, 1);--ease-spring-soft: cubic-bezier(.22, 1.2, .36, 1);--ease-spring-heavy: cubic-bezier(.34, 1.8, .64, 1);--ease-smooth: cubic-bezier(.4, 0, .2, 1);--ease-bounce: cubic-bezier(.68, -.55, .265, 1.55);--ease-gentle: cubic-bezier(.25, .46, .45, .94);--ease-snap: cubic-bezier(.83, 0, .17, 1);--ease-out-expo: cubic-bezier(.16, 1, .3, 1);--ease-in-out-back: cubic-bezier(.68, -.6, .32, 1.6);--stagger-delay: 60ms;--card-enter-distance: 24px;--card-enter-duration: .5s;--number-morph-duration: .8s;--icon-transition-duration: .4s;--breakpoint-mobile: 480px;--breakpoint-tablet: 768px;--breakpoint-desktop: 1024px;--breakpoint-wide: 1440px;--safe-area-top: env(safe-area-inset-top, 0px);--safe-area-right: env(safe-area-inset-right, 0px);--safe-area-bottom: env(safe-area-inset-bottom, 0px);--safe-area-left: env(safe-area-inset-left, 0px)}[data-theme=dark]{--bg-primary: #08090a;--bg-secondary: #0c0d0e;--text-primary: #eef0f4;--text-secondary: #9ca0a8;--accent-sun: #e89090;--accent-rain: #7ba8d4;--accent-mint: #10b981;--pastel-mint: #6aaa9a;--pastel-sky: #6a9fbf;--pastel-coral: #d49890;--pastel-sand: #9a9280;--pastel-lavender: #8a7aaa;--glass-bg: rgba(10, 10, 14, .78);--glass-bg-hover: rgba(14, 14, 20, .85);--glass-bg-active: rgba(18, 18, 26, .9);--glass-border: rgba(255, 255, 255, .1);--glass-border-hover: rgba(255, 255, 255, .18);--glass-blur: 40px;--glass-saturate: 2;--glass-inner-glow: inset 0 1px 0 0 rgba(255, 255, 255, .08);--glass-inner-glow-strong: inset 0 1px 1px 0 rgba(255, 255, 255, .12);--glass-shadow: 0 8px 32px rgba(0, 0, 0, .4), 0 2px 8px rgba(0, 0, 0, .3);--glass-shadow-hover: 0 12px 40px rgba(0, 0, 0, .5), 0 4px 12px rgba(0, 0, 0, .35);--glass-shadow-elevated: 0 20px 60px rgba(0, 0, 0, .6), 0 8px 24px rgba(0, 0, 0, .4);--border-light: rgba(255, 255, 255, .06);--border-medium: rgba(255, 255, 255, .1);--shadow-sm: 0 4px 12px rgba(0, 0, 0, .3);--shadow-md: 0 8px 24px rgba(0, 0, 0, .4);--shadow-lg: 0 16px 40px rgba(0, 0, 0, .5);--moon-lit: #f0e6a8;--moon-shadow: #0e0e12;--star-gold: #e8d060;--star-glow: rgba(255, 230, 120, .5)}[data-time=sunrise]{--gradient-start: #fef3e2;--gradient-end: #fad6c8;--accent-primary: #ff9a76}[data-time=morning]{--gradient-start: #ffffff;--gradient-end: #f7f9fd;--accent-primary: #5eb3f6}[data-time=midday]{--gradient-start: #fafcff;--gradient-end: #e8f4ff;--accent-primary: #4a9eff}[data-time=goldenHour]{--gradient-start: #fff9f0;--gradient-end: #ffe4c4;--accent-primary: #f4a261}[data-time=sunset]{--gradient-start: #ffe8d6;--gradient-end: #ffc7b8;--accent-primary: #e07c7c}[data-time=twilight]{--gradient-start: #d4d9e8;--gradient-end: #b8c5e0;--accent-primary: #7b91c9}[data-time=night]{--gradient-start: #1a1d2e;--gradient-end: #0f1117;--accent-primary: #5a7fc9}[data-theme=dark][data-time=sunrise],[data-theme=dark][data-time=morning],[data-theme=dark][data-time=midday],[data-theme=dark][data-time=goldenHour],[data-theme=dark][data-time=sunset],[data-theme=dark][data-time=twilight],[data-theme=dark][data-time=night]{--gradient-start: #0a0b14;--gradient-end: #02030a;--accent-primary: #5a7fc9}[data-theme=dark][data-aurora=true]{--gradient-start: #0d0a18;--gradient-end: #050308}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}@keyframes gradientFadeIn{0%{opacity:0}to{opacity:1}}@keyframes mapReveal{0%{opacity:0;transform:scale(.96);filter:blur(4px)}to{opacity:1;transform:scale(1);filter:blur(0)}}@keyframes slideDown{0%{transform:translateY(-100%);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes cardSlideIn{0%{opacity:0;transform:translateY(var(--card-enter-distance, 24px)) scale(.96);filter:blur(2px)}60%{opacity:1;filter:blur(0)}to{opacity:1;transform:translateY(0) scale(1);filter:blur(0)}}@keyframes cardAppear{0%{opacity:0;transform:translateY(16px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes cardFadeUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes orbPopIn{0%{opacity:0;transform:scale(0) rotate(-5deg)}60%{transform:scale(1.1) rotate(2deg)}to{opacity:1;transform:scale(1) rotate(0)}}@keyframes gentleFloat{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}@keyframes orbFloat{0%,to{transform:translateY(0) scale(1)}50%{transform:translateY(-4px) scale(1.02)}}@keyframes clickBounce{0%{transform:scale(1.12)}50%{transform:scale(.95)}to{transform:scale(1.15)}}@keyframes glassShimmer{0%{background-position:-200% 0}to{background-position:200% 0}}@keyframes glassBreath{0%,to{backdrop-filter:blur(32px) saturate(1.5);-webkit-backdrop-filter:blur(32px) saturate(1.5)}50%{backdrop-filter:blur(36px) saturate(1.6);-webkit-backdrop-filter:blur(36px) saturate(1.6)}}@keyframes specularSweep{0%{transform:translate(-100%) rotate(12deg)}to{transform:translate(200%) rotate(12deg)}}@keyframes numberPop{0%{transform:scale(.8);opacity:0}60%{transform:scale(1.05)}to{transform:scale(1);opacity:1}}@keyframes countUp{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes iconMorph{0%{transform:scale(.7) rotate(-10deg);opacity:0}50%{transform:scale(1.1) rotate(3deg)}to{transform:scale(1) rotate(0);opacity:1}}@keyframes iconPulse{0%,to{transform:scale(1)}50%{transform:scale(1.08)}}@keyframes slideInLeft{0%{opacity:0;transform:translate(-40px)}to{opacity:1;transform:translate(0)}}@keyframes slideInRight{0%{opacity:0;transform:translate(40px)}to{opacity:1;transform:translate(0)}}@keyframes slideInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes popupAppear{0%{opacity:0;transform:translate(-50%,-50%) scale(.92);filter:blur(4px)}to{opacity:1;transform:translate(-50%,-50%) scale(1);filter:blur(0)}}@keyframes contentFadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes sheetSlideUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes themeFlip{0%{transform:scale(1) rotate(0)}50%{transform:scale(.85) rotate(180deg)}to{transform:scale(1) rotate(360deg)}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{0%,to{opacity:.3}50%{opacity:1}}@keyframes dotPulse{0%,to{opacity:.3;transform:scale(.8)}50%{opacity:1;transform:scale(1)}}@keyframes barFill{0%{width:0}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}@keyframes skeletonShimmer{0%{background-position:-200% 0}to{background-position:200% 0}}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-8px)}75%{transform:translate(8px)}}@keyframes successPop{0%{transform:scale(0);opacity:0}50%{transform:scale(1.2)}to{transform:scale(1);opacity:1}}@keyframes floatSlow{0%,to{transform:translateY(0) translate(0)}25%{transform:translateY(-3px) translate(1px)}75%{transform:translateY(2px) translate(-1px)}}@keyframes floatMedium{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}@keyframes youWhoosh{0%{opacity:0;transform:scale(1.5);filter:blur(8px)}60%{transform:scale(.9)}to{opacity:1;transform:scale(1);filter:blur(0)}}
