#root{width:100%}:root{color-scheme:dark;font-family:Avenir Next,SF Pro Display,Segoe UI,sans-serif;color:#f3f7f1;--site-bg: linear-gradient(180deg, #0e1813 0%, #0e1813 100%);--topography-pattern: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='720' height='720' viewBox='0 0 720 720'%3E%3Cg fill='none' stroke='%23d7ebdd' stroke-opacity='0.2' stroke-width='1' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M-60 124c66-42 138-60 220-44 71 14 133 10 196-17 52-22 110-30 186-18 68 11 122 6 178-18'/%3E%3Cpath d='M-48 184c72-38 146-51 224-37 88 15 155 11 224-18 55-23 118-30 197-18 60 10 108 7 161-11'/%3E%3Cpath d='M-40 254c70-33 142-42 218-28 100 18 173 13 246-20 58-26 123-33 205-20 54 9 98 8 150-7'/%3E%3Cpath d='M-28 334c67-30 138-37 214-24 109 20 187 16 265-18 61-27 128-33 208-20 49 8 92 9 140-3'/%3E%3Cpath d='M-20 422c62-28 131-34 206-22 115 19 197 16 278-15 66-25 133-30 211-17 49 8 90 9 133-2'/%3E%3Cpath d='M-16 512c59-31 126-41 201-31 103 14 182 11 260-17 67-24 137-28 215-15 52 9 97 8 140-4'/%3E%3Cpath d='M-24 602c58-38 126-53 206-45 84 9 156 8 231-12 68-19 139-21 220-8 57 9 106 6 154-9'/%3E%3Cpath d='M86-38c29 50 35 106 14 176-18 61-16 116 10 174 21 47 28 96 17 162 116 16 208 8 292-26 72-30 148-40 244-27'/%3E%3Cpath d='M198-54c24 54 26 114 2 188-21 64-20 121 4 181 20 48 25 97 16 160 108 14 196 6 275-24 72-27 149-35 247-22'/%3E%3Cpath d='M320-58c18 57 16 120-9 195-22 67-19 126 6 185 19 46 24 93 15 152 97 14 180 8 255-18 73-25 150-31 247-18'/%3E%3Cpath d='M448-54c11 58 8 119-14 190-21 68-17 129 10 187 19 42 25 86 18 143 86 14 165 10 237-11 74-22 151-26 248-14'/%3E%3Cpath d='M574-38c4 56-2 114-22 178-20 66-16 126 11 183 19 40 27 82 24 136'/%3E%3C/g%3E%3C/svg%3E");--panel: rgba(14, 24, 19, .76);--panel-strong: rgba(15, 28, 21, .92);--panel-soft: rgba(255, 255, 255, .045);--border: rgba(232, 242, 235, .1);--border-strong: rgba(155, 231, 172, .2);--text-soft: rgba(243, 247, 241, .68);--text-muted: rgba(243, 247, 241, .52);--good: #97e2a8;--warn: #ffd27a;--bad: #ff9e82;--shadow: 0 28px 90px rgba(0, 0, 0, .28)}*{box-sizing:border-box}img{max-width:100%;height:auto}html,body,#root{min-height:100%;background:var(--site-bg)}body{margin:0;min-height:100vh;background:var(--site-bg);overscroll-behavior-y:contain}body:before{content:"";position:fixed;inset:0;pointer-events:none;background:radial-gradient(circle at top left,rgba(151,226,168,.08),transparent 28rem),radial-gradient(circle at 85% 12%,rgba(255,255,255,.04),transparent 20rem);opacity:.9}body:after{content:"";position:fixed;inset:0;pointer-events:none;background-image:var(--topography-pattern);background-size:720px 720px;background-repeat:repeat;background-position:center top;opacity:.2;mix-blend-mode:screen}button{font:inherit}.app{position:relative;display:flex;flex-direction:column;width:min(1120px,100%);min-height:100vh;margin:0 auto;padding:calc(env(safe-area-inset-top) + 6px) 16px 42px}.hero,.card,.footerBlock,.modalPanel{position:relative;overflow:hidden;border:1px solid var(--border);border-radius:30px;background:var(--panel);box-shadow:var(--shadow);-webkit-backdrop-filter:blur(22px);backdrop-filter:blur(22px)}.hero:before,.card:before,.footerBlock:before,.modalPanel:before{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(135deg,rgba(255,255,255,.06),transparent 42%)}.hero{padding:28px 20px 24px;margin-bottom:18px;background:radial-gradient(circle at top right,rgba(151,226,168,.12),transparent 18rem),linear-gradient(145deg,#101c16f0,#0c1410eb)}.heroHeader,.sectionHeader,.forecastCardHeader,.mapCardHeader,.modalHeader{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}.heroHeader>*,.sectionHeader>*,.forecastCardHeader>*,.mapCardHeader>*,.modalHeader>*,.summaryBand>*{min-width:0}.heroKicker,.sectionEyebrow,.heroTime,.heroIntro,.updateText,.metricDetail,.supportCard p,.summaryBand p,.sectionSubtitle,.reportText,.reportCard p,.locationLine,.footerNote,.mapCardHeader span,.modalDescription,.modalMetaCard span,.hourCard span,.forecastCard p,.forecastStats span,.forecastTemp span{color:var(--text-soft)}.heroKicker,.sectionEyebrow{display:inline-flex;align-items:center;gap:8px;margin:0 0 8px;padding:7px 11px;border:1px solid rgba(255,255,255,.08);border-radius:999px;background:#ffffff0a;text-transform:uppercase;letter-spacing:.12em;font-size:.76rem;font-weight:800}.heroKicker{margin-bottom:0;padding:0;border:0;border-radius:0;background:transparent;color:var(--good);font-size:clamp(2rem,7vw,3rem);font-weight:950;letter-spacing:-.05em;text-transform:none;text-align:center;line-height:.94}.heroIntro{margin:2px 0 0;max-width:680px;color:#97e2a8d6;font-size:clamp(.94rem,3.5vw,1.08rem);font-weight:700;line-height:1.45;text-align:center;font-style:italic}.heroTime{margin:4px 0 0;font-size:.98rem;font-weight:650;text-align:center}.heroDecision{margin-top:16px}.heroDecision h1{margin:0;font-size:clamp(2.35rem,8vw,5.3rem);line-height:.92;letter-spacing:-.07em}.heroDescription{max-width:760px;margin:14px 0 0;font-size:clamp(1.02rem,3.8vw,1.28rem);line-height:1.52;font-weight:620;overflow-wrap:anywhere}.heroSignalGrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:20px}.heroSignal,.metricCard,.supportCard,.reportCard,.hourCard,.forecastCard,.modalMetaCard,.mapCard{border:1px solid rgba(232,242,235,.08);border-radius:24px;background:linear-gradient(145deg,#ffffff0d,#97e2a809);transition:transform .22s ease,border-color .22s ease,background .22s ease,box-shadow .22s ease}.heroSignal{padding:13px 14px;min-width:0}.heroSignal span,.metricLabel,.reportCard span,.modalMetaCard span{display:inline-flex;align-items:center;gap:8px;font-weight:760;color:var(--text-soft)}.heroSignal strong{display:block;margin-top:7px;font-size:1.18rem;letter-spacing:-.03em;overflow-wrap:anywhere}.heroActions{margin-top:22px}.heroLocationLine{margin:2px 0 0;color:#dff7e4e6;font-size:clamp(.96rem,3vw,1.08rem);font-weight:780;letter-spacing:.08em;text-align:center;text-transform:uppercase}.heroHeader{flex-direction:column;align-items:center;justify-content:center;text-align:center;padding-top:4px}.mainButton{width:100%;display:inline-flex;align-items:center;justify-content:center;min-height:58px;padding:18px 22px;border:0;border-radius:20px;cursor:pointer;color:#08130d;font-size:1.05rem;font-weight:900;background:linear-gradient(135deg,#dff7e4,#93e5a7);box-shadow:inset 0 1px #ffffffb3,0 16px 36px #83d49833;transition:transform .22s ease,box-shadow .22s ease,opacity .22s ease}.mainButton:hover:not(:disabled){transform:translateY(-1px) scale(1.005);box-shadow:inset 0 1px #ffffffbf,0 20px 40px #83d4983d}.mainButton:disabled{opacity:.78;cursor:default}.buttonLoading{display:inline-flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:10px;width:100%;text-align:center}.buttonRain{width:12px;height:16px;border-radius:60% 60% 72% 72%;background:linear-gradient(180deg,#082114,#18492d);animation:rainDrop 1.15s ease-in-out infinite}.updateText{margin:14px 0 0;font-size:.96rem;text-align:center;overflow-wrap:anywhere}.updateNote{display:block;margin-top:5px;color:var(--text-muted);font-size:.86rem;line-height:1.45}.statusPill{display:inline-flex;align-items:center;gap:9px;padding:10px 14px;border:1px solid rgba(255,255,255,.08);border-radius:999px;background:#ffffff0a;font-weight:800;max-width:100%;white-space:normal;justify-content:center;font-size:.92rem;text-align:center}.statusDot{width:8px;height:8px;border-radius:50%;background:currentColor;box-shadow:0 0 0 6px #ffffff0a}.status-loading{color:#e6f6ea}.status-success{color:var(--good);animation:statusPulse 2.2s ease-in-out infinite}.status-success .statusDot{box-shadow:0 0 #97e2a86b,0 0 0 6px #ffffff0a}.status-error{color:var(--warn)}.status-neutral{color:#f3f7f1c7}.loadingPanel{position:relative;display:flex;align-items:center;gap:16px;margin-top:18px;padding:16px 18px;border:1px solid rgba(255,255,255,.08);border-radius:22px;background:#ffffff0d}.rainLoader{position:relative;width:40px;height:42px;flex:none}.drop{position:absolute;top:2px;width:10px;height:14px;border-radius:60% 60% 70% 70%;background:linear-gradient(180deg,#dff7e4fa,#93e5a7a3);animation:rainDrop 1.2s ease-in-out infinite}.drop1{left:2px}.drop2{left:15px;animation-delay:.18s}.drop3{left:28px;animation-delay:.36s}.loadingCopy strong{display:block;margin-bottom:4px;font-size:1rem}.loadingCopy p{margin:0;color:var(--text-soft)}.loadingGlow{position:absolute;inset:0;pointer-events:none;background:linear-gradient(120deg,transparent 0%,rgba(255,255,255,.08) 46%,transparent 100%);transform:translate(-100%);animation:shimmer 1.6s ease-in-out infinite}.errorBox{margin-top:16px;padding:15px 16px;border:1px solid rgba(255,210,122,.18);border-radius:20px;background:#ffd27a1a;color:#ffe7ad;font-weight:650}.card,.footerBlock{padding:22px 18px;margin-bottom:18px}.sectionHeader{margin-bottom:18px}.sectionHeader h2,.modalHeader h3{display:inline-flex;align-items:center;gap:10px;margin:0;font-size:clamp(1.55rem,4vw,2.25rem);line-height:1.15;overflow-wrap:anywhere}.sectionSubtitle{display:block;margin-top:4px;font-weight:700;text-align:right;overflow-wrap:anywhere}.metricGrid,.supportGrid,.reportGrid,.forecastGrid{display:grid;gap:12px;align-items:stretch}.metricGrid,.supportGrid,.reportGrid,.forecastGrid{grid-template-columns:repeat(1,minmax(0,1fr))}.metricCard,.supportCard,.reportCard{position:relative;min-width:0}.supportCard,.reportCard{padding:18px;animation:fadeSlideUp .48s ease-out both;animation-delay:var(--stagger-delay, 0ms)}.metricCard{height:100%;overflow:hidden;animation:fadeSlideUp .48s ease-out both;animation-delay:var(--stagger-delay, 0ms)}.metricCardInner{position:relative;height:100%;padding:18px;border-radius:22px;background:linear-gradient(145deg,#ffffff05,#97e2a804);transition:transform .24s ease,box-shadow .24s ease,background .24s ease,filter .24s ease;transform-origin:center center}.metricCard:after{content:"";position:absolute;inset:-18%;pointer-events:none;background:radial-gradient(circle at 50% 0%,rgba(151,226,168,.18),transparent 58%);opacity:0;transition:opacity .24s ease}.supportCard:hover,.reportCard:hover,.hourCard.isVisible:hover,.forecastCard:hover,.modalMetaCard:hover,.heroSignal:hover,.mapCard:hover,.summaryBand:hover{transform:translateY(-2px) scale(1.012);border-color:#97e2a838;background:linear-gradient(145deg,#ffffff14,#97e2a814);box-shadow:0 20px 42px #00000024}.metricCard:hover{border-color:#97e2a838}.metricCard:hover:after{opacity:1}.metricCard:hover .metricCardInner{transform:translateY(-2px) scale(1.018);background:linear-gradient(145deg,#ffffff17,#97e2a816);box-shadow:inset 0 1px #ffffff0f,0 14px 26px #0e25182e;filter:saturate(1.05) brightness(1.02)}.tone-good{border-color:#97e2a81f}.tone-warn{border-color:#ffd27a29}.tone-bad{border-color:#ff9e8229}.metricTop{display:flex;justify-content:space-between;gap:12px}.metricValue{display:block;margin-top:14px;font-size:clamp(2rem,7vw,3.2rem);line-height:.96;letter-spacing:-.06em}.metricDetail{margin:10px 0 0;line-height:1.55;overflow-wrap:anywhere}.supportCard h3{display:inline-flex;align-items:center;gap:10px;margin:0 0 10px;font-size:1.14rem}.supportCard p,.reportCard p,.reportText{margin:0;line-height:1.62;font-size:1rem}.summaryBand{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px;border:1px solid rgba(232,242,235,.08);border-radius:24px;background:linear-gradient(145deg,#ffffff0d,#97e2a809);transition:transform .22s ease,border-color .22s ease,background .22s ease,box-shadow .22s ease}.summaryBand strong{display:block;font-size:1.24rem}.summaryBand p{margin:7px 0 0;overflow-wrap:anywhere}.summaryValue{font-size:clamp(2rem,7vw,4rem);font-weight:950;letter-spacing:-.06em;white-space:nowrap}.scrollHint{display:inline-flex;align-items:center;flex-wrap:wrap;gap:8px;margin:15px 0 12px;color:var(--text-soft);font-weight:760}.scrollHintCompact{margin-top:18px}.scrollArrow{display:inline-block;color:var(--good);animation:blinkArrow 1.1s ease-in-out infinite}.hourlyScrollerWrap{position:relative;padding:0 2px}.hourlyScroller{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(188px,1fr);gap:12px;overflow-x:auto;padding:4px 2px 10px;scroll-snap-type:x proximity;scroll-padding-left:2px;scrollbar-width:none;scroll-behavior:smooth;-webkit-overflow-scrolling:touch}.hourlyScroller::-webkit-scrollbar{display:none}.hourCard{opacity:.18;transform:translate(18px) scale(.985);padding:16px;scroll-snap-align:start;min-height:100%}.hourCard.isVisible{opacity:1;transform:translate(0) scale(1)}.hourCard.isCurrentHour{border-color:#97e2a847;background:linear-gradient(145deg,#97e2a817,#ffffff0d);box-shadow:0 18px 38px #133a2338}.hourCard strong,.hourCard span{display:block}.hourCardTop{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px;margin-bottom:10px}.hourCard strong{margin-bottom:0;font-size:1.08rem}.hourCard span{margin-top:6px;overflow-wrap:anywhere}.hourCondition{color:#f3f7f1!important;font-weight:760}.hourNowBadge{display:inline-flex!important;align-items:center;justify-content:center;margin:0;padding:6px 10px;border-radius:999px;background:#97e2a829;color:var(--good)!important;font-size:.74rem;font-weight:900;letter-spacing:.05em;text-transform:uppercase}.forecastCard{text-align:left;width:100%;min-height:100%;padding:18px;cursor:pointer;min-width:0}.dailyForecastHint{display:flex;align-items:center;justify-content:center;gap:10px;margin:2px 0 16px;padding:14px 16px;border:1px solid rgba(151,226,168,.12);border-radius:18px;background:#ffffff08;color:var(--text-soft);text-align:center}.dailyForecastHint p{margin:0;font-weight:700;overflow-wrap:anywhere}.dailyForecastHintDot{width:9px;height:9px;flex:none;border-radius:50%;background:var(--good);box-shadow:0 0 #97e2a880;animation:hintPulse 1.8s ease-out infinite}.forecastCard strong{display:block;font-size:1.02rem}.forecastCard p{margin:7px 0 0;overflow-wrap:anywhere}.forecastStats,.forecastTemp,.modalMetaGrid{display:grid;gap:10px}.forecastStats{margin-top:14px}.forecastTemp{margin-top:14px;grid-template-columns:repeat(2,minmax(0,1fr))}.forecastTemp span,.forecastStats span{padding:11px 12px;border-radius:16px;background:#ffffff0a;font-weight:760;overflow-wrap:anywhere}.riskChip{display:inline-flex;align-items:center;justify-content:center;min-height:34px;padding:8px 12px;border-radius:999px;font-size:.83rem;font-weight:900;white-space:nowrap}.risk-low{background:#97e2a81f;color:var(--good)}.risk-medium{background:#ffd27a24;color:var(--warn)}.risk-high{background:#ff9e8224;color:var(--bad)}.reportGrid{margin-top:16px}.reportCard strong{display:block;margin:10px 0 8px;font-size:1.14rem}.footerBlock{padding:18px 18px 20px;margin-bottom:0}.footerStack{display:grid;gap:18px}.locationLine{margin:0;font-weight:800;overflow-wrap:anywhere}.mapCard{padding:18px;display:grid;gap:12px}.mapCardTapZone{cursor:pointer;margin-top:0}.mapInteractionHint{display:inline-flex;align-items:center;gap:8px;margin-bottom:12px;color:var(--text-soft);font-size:.92rem;font-weight:760}.mapInteractionDot{width:8px;height:8px;border-radius:50%;background:var(--good);box-shadow:0 0 #97e2a880;animation:hintPulse 1.8s ease-out infinite}.mapViewport{position:relative;overflow:hidden;width:100%;min-height:320px;margin-inline:0;border-radius:22px;border:1px solid rgba(232,242,235,.08);background:radial-gradient(circle at 50% 35%,rgba(151,226,168,.08),transparent 52%),#ffffff08;touch-action:none;-webkit-user-select:none;user-select:none}.mapViewportModal{width:100%;min-height:min(72vh,620px)}.mapViewport:after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg,rgba(6,17,12,.08),transparent 22%,transparent 78%,rgba(6,17,12,.16)),radial-gradient(circle at center,transparent 48%,rgba(6,17,12,.14) 100%)}.mapViewport.isDragging{cursor:grabbing}.mapImageInteractive{position:absolute;top:0;left:0;width:100%;min-width:100%;min-height:100%;height:auto;max-width:none;pointer-events:none;will-change:transform;transition:transform .85s cubic-bezier(.22,1,.36,1)}.mapViewport.hasInteracted .mapImageInteractive,.mapViewport.isDragging .mapImageInteractive{transition-duration:.14s}.mapPin{position:absolute;top:50%;left:50%;width:34px;height:34px;transform:translate(-50%,-50%);pointer-events:none}.mapPinPulse,.mapPinDot{position:absolute;inset:0;border-radius:50%}.mapModalPanel{width:min(820px,100%)}.mapPinPulse{background:#97e2a824;animation:mapPulse 2s ease-out infinite}.mapPinDot{inset:8px;background:linear-gradient(180deg,#c6ffd2,#8bdd9f);box-shadow:0 0 0 4px #97e2a829,0 8px 18px #12321e52}.footerInfoStack{display:grid;gap:16px}.locationSummaryCard{display:grid;gap:18px}.locationSummaryHeader strong{display:inline-flex;align-items:center;width:fit-content;padding:7px 11px;border-radius:999px;border:1px solid rgba(151,226,168,.2);background:#97e2a814;color:var(--good);letter-spacing:.04em;text-transform:uppercase;font-size:.75rem;line-height:1}.locationSummaryContent{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:18px}.locationSummaryCity{display:grid;gap:6px}.locationSummaryCity h3{margin:0;color:#f3f7f1;font-size:clamp(1.25rem,2.8vw,1.7rem);line-height:1.1}.locationSummaryCity p{margin:0;color:var(--text-soft);line-height:1.6}.locationSummaryFeatures{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:10px}.locationFeaturePill{display:inline-flex;align-items:center;min-height:42px;padding:10px 14px;border:1px solid rgba(232,242,235,.1);border-radius:999px;background:#ffffff0a;color:#f3f7f1;font-weight:720}.locationPickerPanel{display:grid;gap:16px}.locationPickerHeader{display:grid;gap:14px}.locationPickerHeader strong{display:inline-flex;align-items:center;width:fit-content;padding:7px 11px;border-radius:999px;border:1px solid rgba(151,226,168,.2);background:#97e2a814;color:var(--good);letter-spacing:.04em;text-transform:uppercase;font-size:.75rem;line-height:1}.locationPickerHeader p,.locationEmptyState p{margin:10px 0 0;color:var(--text-soft);line-height:1.6}.locationPickerMeta{display:flex;flex-wrap:wrap;gap:10px}.activeLocationPill,.locationResetButton{display:inline-flex;align-items:center;justify-content:center;min-height:42px;padding:10px 14px;border-radius:999px;border:1px solid rgba(232,242,235,.1);background:#ffffff0a;color:#f3f7f1;font-weight:800}.locationResetButton{cursor:pointer;transition:transform .22s ease,border-color .22s ease,background .22s ease}.locationResetButton:hover{transform:translateY(-1px);border-color:#97e2a833;background:#ffffff12}.locationSearchShell{display:grid;gap:12px}.locationSearchInput{width:100%;min-height:58px;padding:16px 18px;border:1px solid rgba(232,242,235,.12);border-radius:20px;background:#07100ccc;color:#f3f7f1;font-size:1rem;outline:none;transition:border-color .22s ease,box-shadow .22s ease,background .22s ease}.locationSearchInput::placeholder{color:var(--text-muted)}.locationSearchInput:focus{border-color:#97e2a852;box-shadow:0 0 0 4px #97e2a817;background:#09130eeb}.locationSearchResults{display:grid;gap:10px}.locationSearchItem,.locationEmptyState,.mapStaticInfo{border:1px solid rgba(232,242,235,.08);border-radius:22px;background:linear-gradient(145deg,#ffffff0d,#97e2a809)}.locationSearchItem{width:100%;padding:15px 16px;text-align:left;cursor:pointer;transition:transform .22s ease,border-color .22s ease,background .22s ease,box-shadow .22s ease}.locationSearchItem:hover,.locationSearchItem.isSelected{transform:translateY(-1px);border-color:#97e2a83d;background:linear-gradient(145deg,#ffffff14,#97e2a814);box-shadow:0 18px 38px #00000024}.locationSearchItem strong,.mapStaticInfo strong,.locationEmptyState strong{display:block;margin:0;color:#f3f7f1;font-size:1rem}.locationSearchItem span{display:block;margin-top:8px;color:var(--text-soft);font-weight:700}.locationEmptyState,.mapStaticInfo{padding:18px}.footerInfoCard,.footerAlertCard{margin-top:0;padding:16px 17px;border:1px solid rgba(232,242,235,.08);border-radius:22px;background:linear-gradient(145deg,#ffffff0b,#97e2a808)}.footerInfoCard strong,.footerAlertCard strong{display:block;margin-bottom:8px;font-size:1rem}.footerInfoCard p,.footerAlertCard p{margin:0;color:var(--text-soft);line-height:1.6;overflow-wrap:anywhere}.footerAlertCard{border-color:#ffd27a29;background:linear-gradient(145deg,#ffd27a17,#ffffff09)}.mapCardHeader{display:grid;justify-items:start;gap:10px;margin-bottom:0}.mapCardHeader strong{display:inline-flex;align-items:center;padding:7px 11px;border-radius:999px;border:1px solid rgba(151,226,168,.2);background:#97e2a814;color:var(--text-main);letter-spacing:.04em;text-transform:uppercase;font-size:.75rem;line-height:1}.mapCardHeader span{color:var(--text-soft);line-height:1.5;font-size:.98rem;overflow-wrap:anywhere;max-width:40ch}.mapCardStatic{gap:14px}.mapStaticInfo p{margin:8px 0 0;color:var(--text-soft);font-size:1rem;font-weight:700;line-height:1.6}.mapAttributionNote{margin:2px 2px 0;color:var(--text-muted);font-size:.69rem;line-height:1.45}.mapImage{display:block;width:100%;border-radius:18px}.footerNote{margin:auto 0 0;max-width:40rem;padding-top:32px;align-self:center;text-align:center;color:var(--text-soft);font-size:.98rem;line-height:1.75;letter-spacing:.01em}.pageNav{position:sticky;top:max(10px,env(safe-area-inset-top));z-index:30;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:14px;margin:0 0 18px;padding:14px 16px;border:1px solid var(--border);border-radius:24px;background:var(--panel);box-shadow:0 16px 48px #0003;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);transition:opacity .26s ease,transform .32s ease,border-color .22s ease,background .22s ease}.pageNav.isHidden{opacity:0;transform:translateY(-20px);pointer-events:none}.pageNav.isMenuOpen{opacity:1;transform:translateY(0);pointer-events:auto}.pageNav.isCompact{background:#0e1813ad;border-color:#e8f2eb14;box-shadow:0 14px 36px #00000029}.pageNavBrand{display:grid;gap:4px}.pageNavBrand strong{font-size:1.02rem;letter-spacing:.01em}.pageNavEyebrow{color:var(--good);font-size:.74rem;font-weight:800;letter-spacing:.16em;text-transform:uppercase}.pageNavLinks{display:flex;flex-wrap:wrap;gap:10px}.pageNavToggle{display:none;align-items:center;justify-content:center;width:48px;height:48px;margin-left:auto;padding:0;border:1px solid rgba(232,242,235,.12);border-radius:16px;background:#ffffff0a;color:#f3f7f1;cursor:pointer}.pageNavToggle span{display:block;width:18px;height:2px;margin:3px 0;border-radius:999px;background:currentColor;transition:transform .22s ease,opacity .22s ease}.pageNavToggle.isActive span:nth-child(1){transform:translateY(8px) rotate(45deg)}.pageNavToggle.isActive span:nth-child(2){opacity:0}.pageNavToggle.isActive span:nth-child(3){transform:translateY(-8px) rotate(-45deg)}.pageNavLink{min-height:42px;padding:9px 15px;border:1px solid rgba(232,242,235,.12);border-radius:999px;background:#ffffff0a;color:#f3f7f1;cursor:pointer;font-size:.9rem;font-weight:720;letter-spacing:.01em;transition:transform .18s ease,border-color .18s ease,background .18s ease}.pageNavLink:hover{transform:translateY(-1px);border-color:#97e2a838;background:#97e2a81a}.pageNavLink.isActive{border-color:#97e2a847;background:#97e2a829;box-shadow:inset 0 1px #ffffff0f,0 0 0 1px #97e2a814;color:var(--good)}.standalonePanel{margin-top:8px}.standalonePage{margin-top:10px}.aboutCard{display:grid;gap:20px}.aboutHeader{margin-bottom:2px}.aboutIntro{display:grid;gap:12px;max-width:40rem}.aboutIntro h2{margin:0;color:#f3f7f1;font-size:clamp(1.45rem,2.8vw,1.9rem);font-weight:780;letter-spacing:-.02em}.aboutIntro p{margin:0;color:#f3f7f1;font-size:clamp(1.1rem,2.2vw,1.35rem);font-weight:760;line-height:1.45}.privacyCard{gap:24px}.aboutBody{display:grid;gap:14px}.privacyHeader{margin-bottom:2px}.privacyIntro{display:grid;gap:12px;max-width:40rem}.privacyIntro h2,.contactIntro h2{margin:0;color:#f3f7f1;font-size:clamp(1.45rem,2.8vw,1.9rem);font-weight:780;letter-spacing:-.02em}.privacyIntro p{margin:0;color:#f3f7f1;font-size:clamp(1.1rem,2.2vw,1.35rem);font-weight:760;line-height:1.45}.policySection{display:grid;gap:14px;padding:18px 20px;border:1px solid rgba(232,242,235,.08);border-radius:24px;background:linear-gradient(180deg,#ffffff09,#ffffff04)}.aboutBody p,.policySection p{margin:0;color:var(--text-soft);line-height:1.7}.policyHeading{color:#f3f7f1!important;font-size:1rem;font-weight:780;letter-spacing:.01em}.policyList{display:grid;gap:12px;margin:0;padding-left:24px;color:var(--text-soft);line-height:1.7}.policyList li::marker{color:var(--good)}.policyParagraph{max-width:72ch}.contactCard{gap:28px}.contactHeader{margin-bottom:2px}.contactIntro{display:grid;gap:14px;max-width:36rem}.contactIntro p{margin:0;color:var(--text-soft);line-height:1.7}.contactForm{display:grid;gap:20px}.contactField{display:grid;gap:12px}.contactLabel{color:#f3f7f1;font-size:.96rem;font-weight:760;letter-spacing:.01em}.contactInput{width:100%;min-height:58px;padding:17px 18px;border:1px solid rgba(232,242,235,.12);border-radius:20px;background:#07100ccc;color:#f3f7f1;font:inherit;line-height:1.6;outline:none;transition:border-color .22s ease,box-shadow .22s ease,background .22s ease}.contactInput::placeholder{color:var(--text-muted)}.contactInput:focus{border-color:#97e2a852;box-shadow:0 0 0 4px #97e2a817;background:#09130eeb}.contactTextarea{min-height:210px;resize:vertical}.contactActions{display:grid;gap:14px;padding-top:6px;justify-items:start}.contactPageMail{margin:18px 0 0;text-align:center;color:var(--text-soft);font-size:.98rem;font-weight:760;letter-spacing:.01em}.contactSubmitButton{display:inline-flex;align-items:center;justify-content:center;width:100%;min-height:54px;padding:14px 18px;border:1px solid rgba(196,214,202,.2);border-radius:20px;background:#e8f2eb14;color:#f3f7f1;cursor:pointer;font-size:.95rem;font-weight:720;letter-spacing:.01em;transition:transform .18s ease,border-color .18s ease,background .18s ease}.contactSubmitButton:hover{transform:translateY(-1px);border-color:#c4d6ca42;background:#e8f2eb1f}.modalRoot{position:fixed;inset:0;z-index:80;padding:calc(env(safe-area-inset-top) + 10px) 10px 18px;overflow-y:auto}.modalBackdrop{position:fixed;inset:0;border:0;background:#030806f0;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);transition:opacity .22s ease}.modalPanel{width:min(820px,100%);margin:0 auto;padding:20px 18px 18px;max-height:calc(100vh - 22px);overflow-y:auto;overscroll-behavior:contain;box-shadow:0 42px 100px #00000075,0 12px 28px #00000052;background:radial-gradient(circle at top right,rgba(151,226,168,.12),transparent 16rem),linear-gradient(145deg,#101c16fa,#0a120ef5);animation:modalDrop .36s ease-out both;transition:transform .26s cubic-bezier(.22,1,.36,1);will-change:transform}.modalPanel.isSwipeDragging{transition:none}.modalPanel.isSwipeClosing{transition:transform .24s cubic-bezier(.22,1,.36,1)}.modalPanel::-webkit-scrollbar{width:8px}.modalPanel::-webkit-scrollbar-thumb{background:#ffffff1f;border-radius:999px}.modalClose{display:flex;align-items:center;justify-content:center;margin:0 auto 18px;min-width:140px;padding:11px 16px;border:1px solid rgba(232,242,235,.1);border-radius:999px;background:#ffffff0d;color:#f3f7f1;transition:transform .22s ease,border-color .22s ease,background .22s ease}.modalClose:hover{transform:translateY(-1px);border-color:#97e2a833;background:#ffffff14}.modalHeader{margin-bottom:16px}.modalDescription{margin:8px 0 0}.modalMetaGrid{grid-template-columns:repeat(1,minmax(0,1fr));margin-bottom:2px}.modalMetaCard{padding:16px;min-width:0}.modalMetaCard strong{display:block;margin-top:10px;font-size:1.22rem;letter-spacing:-.03em}.icon{width:18px;height:18px;flex:none}.revealSection{opacity:0;transform:translateY(18px);transition:opacity .76s ease,transform .76s ease}.revealSection.isVisible{opacity:1;transform:translateY(0)}.revealItemScroll{opacity:0;transform:translateY(18px);transition:opacity .62s ease,transform .62s ease;transition-delay:var(--stagger-delay, 0ms)}.revealItemScroll.isVisible{opacity:1;transform:translateY(0)}.revealItemScroll>*{height:100%}@keyframes fadeSlideUp{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@keyframes rainDrop{0%{opacity:0;transform:translateY(-8px) scale(.92)}25%{opacity:1}to{opacity:0;transform:translateY(16px) scale(1.02)}}@keyframes blinkArrow{0%,to{opacity:.28;transform:translate(0)}50%{opacity:1;transform:translate(6px)}}@keyframes hintPulse{0%{box-shadow:0 0 #97e2a88c;transform:scale(.95)}70%{box-shadow:0 0 0 12px #97e2a800;transform:scale(1)}to{box-shadow:0 0 #97e2a800;transform:scale(.95)}}@keyframes mapPulse{0%{transform:scale(.82);opacity:.9}70%{transform:scale(1.3);opacity:0}to{transform:scale(1.3);opacity:0}}@keyframes shimmer{0%{transform:translate(-100%)}to{transform:translate(100%)}}@keyframes nudgeX{0%,to{transform:translate(0)}50%{transform:translate(6px)}}@keyframes modalDrop{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}@keyframes statusPulse{0%,to{transform:scale(1);box-shadow:0 0 #97e2a800}50%{transform:scale(1.02);box-shadow:0 0 0 10px #97e2a814}}@media(min-width:640px){.app{padding:calc(env(safe-area-inset-top) + 8px) 20px 46px}.pageNav{padding:16px 18px;border-radius:28px}.hero,.card,.footerBlock,.modalPanel{border-radius:32px}.hero{padding:24px 24px 26px}.metricGrid,.supportGrid,.reportGrid,.modalMetaGrid,.forecastGrid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(min-width:880px){.app{padding:calc(env(safe-area-inset-top) + 8px) 24px 52px}.hero{padding:26px 28px 28px}.card,.footerBlock{padding:24px}.metricGrid,.reportGrid,.supportGrid,.forecastGrid{grid-template-columns:repeat(3,minmax(0,1fr))}.locationPickerHeader{grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);align-items:start}.locationPickerMeta{justify-content:flex-end}}@media(min-width:1120px){.forecastGrid{grid-template-columns:repeat(4,minmax(0,1fr))}}@media(max-width:820px){.heroHeader,.sectionHeader,.forecastCardHeader,.modalHeader{flex-direction:column}.sectionSubtitle{text-align:left}.heroSignalGrid{grid-template-columns:repeat(2,minmax(0,1fr))}.summaryBand{flex-direction:column;align-items:flex-start}.summaryValue{font-size:clamp(2rem,11vw,3.2rem)}}@media(max-width:560px){body:after{opacity:.035;background-size:520px 520px}.app{padding-inline:14px}.pageNav{top:max(8px,env(safe-area-inset-top));align-items:center;justify-content:center}.pageNavLinks{display:flex;width:100%;justify-content:center}.pageNavLink{width:auto;justify-content:center}.heroSignalGrid{grid-template-columns:repeat(1,minmax(0,1fr))}.footerNote{max-width:22rem;padding-top:24px;font-size:.9rem;line-height:1.6;letter-spacing:0}.hourlyScroller{grid-auto-columns:minmax(172px,1fr)}.modalRoot{padding-inline:8px}.mapViewport{width:100%;min-height:300px}.mapViewportModal{width:100%;min-height:min(64vh,500px)}.mapImageInteractive{width:auto}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.revealSection,.hourCard,.revealItemScroll{opacity:1!important;transform:none!important}}
