#root{width:100%}:root{color-scheme:dark;font-family:Avenir Next,SF Pro Display,Segoe UI,sans-serif;color:#f3f7f1;--site-bg: radial-gradient(circle at top left, rgba(134, 191, 122, .18), transparent 34rem), radial-gradient(circle at 85% 10%, rgba(255, 255, 255, .07), transparent 24rem), linear-gradient(180deg, #06110c 0%, #0b1712 52%, #111c16 100%);--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}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:linear-gradient(rgba(255,255,255,.025) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.025) 1px,transparent 1px);background-size:70px 70px;-webkit-mask-image:radial-gradient(circle at center,black 30%,transparent 86%);mask-image:radial-gradient(circle at center,black 30%,transparent 86%);opacity:.22}button{font:inherit}.app{position:relative;width:min(1120px,100%);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:22px 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}.heroKicker,.sectionEyebrow,.heroTime,.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:6px;font-size:.84rem}.heroDateNote{margin:16px 0 0;color:var(--text-muted);font-size:.94rem;font-weight:700}.heroTime{margin:0;font-size:.98rem;font-weight:650}.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}.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}.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}.heroActions{margin-top:22px}.mainButton{width:100%;display:inline-flex;align-items:center;justify-content:center;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;gap:10px}.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}.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;white-space:nowrap}.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)}.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)}.sectionSubtitle{display:block;margin-top:4px;font-weight:700;text-align:right}.metricGrid,.supportGrid,.reportGrid,.forecastGrid{display:grid;gap:12px}.metricGrid,.supportGrid,.reportGrid,.forecastGrid{grid-template-columns:repeat(1,minmax(0,1fr))}.metricCard,.supportCard,.reportCard{padding:18px;animation:fadeSlideUp .48s ease-out both;animation-delay:var(--stagger-delay, 0ms)}.metricCard:hover,.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}.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}.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}.summaryValue{font-size:clamp(2rem,7vw,4rem);font-weight:950;letter-spacing:-.06em;white-space:nowrap}.scrollHint{display:inline-flex;align-items:center;gap:8px;margin:15px 0 10px;color:var(--text-soft);font-weight:760}.scrollHintCompact{margin-top:18px}.scrollArrow{display:inline-block;animation:nudgeX 1.7s ease-in-out infinite}.hourlyScrollerWrap{position:relative}.hourlyScroller{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(188px,1fr);gap:12px;overflow-x:auto;padding:4px 0 10px;scroll-snap-type:x proximity;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}.hourCard.isVisible{opacity:1;transform:translate(0) scale(1)}.hourCard strong,.hourCard span{display:block}.hourCard strong{margin-bottom:10px;font-size:1.08rem}.hourCard span{margin-top:6px}.hourCondition{color:#f3f7f1!important;font-weight:760}.forecastCard{text-align:left;width:100%;padding:18px;cursor:pointer}.forecastCard strong{display:block;font-size:1.02rem}.forecastCard p{margin:7px 0 0}.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}.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}.locationLine{margin:0;font-weight:800}.mapCard{margin-top:14px;padding:14px}.mapCardHeader{margin-bottom:10px}.mapCardHeader strong{display:block;margin-bottom:4px}.mapImage{display:block;width:100%;border-radius:18px}.footerNote{margin:14px 0 0;text-align:center;font-size:.98rem}.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:#050a08c2;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.modalPanel{width:min(820px,100%);margin:0 auto;padding:20px 18px 18px;max-height:calc(100vh - 22px);overflow-y:auto;overscroll-behavior:contain;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}.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}.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 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)}}@media(min-width:640px){.app{padding:calc(env(safe-area-inset-top) + 8px) 20px 46px}.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))}}@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(3,minmax(0,1fr))}.summaryBand{flex-direction:column;align-items:flex-start}.summaryValue{font-size:clamp(2rem,11vw,3.2rem)}}@media(min-width:821px){.mapCard{display:none}}@media(max-width:560px){.app{padding-inline:14px}.heroSignalGrid{grid-template-columns:repeat(1,minmax(0,1fr))}.hourlyScroller{grid-auto-columns:minmax(172px,1fr)}.modalRoot{padding-inline:8px}}@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}}
