:root{--mat-regular-bg: rgba(20, 23, 35, .52);--mat-regular-border: rgba(255, 255, 255, .1);--mat-regular-blur: none;--glass: var(--mat-regular-bg);--glass-border: var(--mat-regular-border);--fill: rgba(120, 120, 128, .24);--text: #f5f5f7;--text-secondary: #98989d;--text-dim: #8a8a8f;--hot: #ff453a;--cold: #40c8e0;--radius-sm: 12px;--radius: 22px;--spring: cubic-bezier(.32, .72, 0, 1);--spring-bounce: cubic-bezier(.34, 1.56, .64, 1);--transition-fast: .22s var(--spring);--hero-top: #ffffff;--hero-btm: rgba(255, 255, 255, .72)}@supports (corner-shape: superellipse(2)){.notice-card,.card,.page-dots{corner-shape:superellipse(2.2)}}@supports (mix-blend-mode: plus-lighter){.mc-label,.notice-issued,.notice-note{mix-blend-mode:plus-lighter}}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent;touch-action:manipulation}:root{color-scheme:dark}html,body,#root{height:100%;margin:0}html{background-color:#0b1426;scrollbar-width:none;-ms-overflow-style:none;overscroll-behavior:none;-webkit-text-size-adjust:100%;text-size-adjust:100%}html::-webkit-scrollbar{display:none}body{background:transparent;color:var(--text);font-family:-apple-system,BlinkMacSystemFont,SF Pro Display,SF Pro Text,Helvetica Neue,PingFang SC,Hiragino Sans GB,Microsoft YaHei,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;letter-spacing:-.01em;overflow-x:hidden}button,.page-dots,.score-dots{user-select:none;-webkit-user-select:none}:where(button,a):focus-visible{outline:2px solid rgba(255,255,255,.95);outline-offset:3px}html[data-sky=clear-day]{background-color:#122a52;--hero-top: #ffffff;--hero-btm: #ffd6a0}html[data-sky=clear-night]{background-color:#07112a;--hero-top: #e0e8ff;--hero-btm: #8aa0e0}html[data-sky=cloudy]{background-color:#18233a;--hero-top: #f0f0f5;--hero-btm: #a0a4ba}html[data-sky=overcast]{background-color:#1c2230;--hero-top: #e0e0e8;--hero-btm: #82828e}html[data-sky=rain]{background-color:#102232;--hero-top: #d8e4f0;--hero-btm: #7a98b8}html[data-sky=snow]{background-color:#222a48;--hero-top: #f0eeff;--hero-btm: #b0a8d8}html[data-sky=fog]{background-color:#20232c;--hero-top: #e8e5e0;--hero-btm: #9a9890}html[data-sky=haze]{background-color:#2a2418;--hero-top: #f0e6d0;--hero-btm: #c0a060}html[data-sky=cloudy],html[data-sky=fog],html[data-sky=haze],html[data-sky=snow],html[data-sky=overcast]{--text-dim: #b0b0b6}.app{max-width:560px;margin:0 auto;padding:0 max(20px,env(safe-area-inset-right)) max(48px,calc(24px + env(safe-area-inset-bottom))) max(20px,env(safe-area-inset-left));min-height:100svh;min-height:100dvh;display:flex;flex-direction:column}.swipe-wrap{flex:1 0 auto;display:flex;flex-direction:column;transition:transform .32s var(--spring);touch-action:pan-y}.swipe-wrap>.app-content:first-child{flex:1 0 auto;display:flex;flex-direction:column}.swipe-wrap.dragging{transition:none;will-change:transform}.page-dots{position:fixed;left:50%;bottom:max(8px,calc(env(safe-area-inset-bottom) - 16px));transform:translate(-50%);z-index:20;display:flex;align-items:center;gap:8px;padding:8px 12px;border-radius:999px;background:#ffffff14;backdrop-filter:blur(14px) saturate(1.3);-webkit-backdrop-filter:blur(14px) saturate(1.3);border:.5px solid rgba(255,255,255,.14);box-shadow:0 6px 24px #0000004d}.page-dot{position:relative;width:5px;height:5px;padding:0;border:none;border-radius:50%;background:#ffffff80;cursor:pointer;transition:background .32s var(--spring-bounce),width .32s var(--spring-bounce),border-radius .32s var(--spring-bounce)}.page-dot:before{content:"";position:absolute;top:50%;left:50%;width:28px;height:44px;transform:translate(-50%,-50%)}.page-dot.active{width:20px;height:5px;border-radius:4px;background:#fff;box-shadow:0 0 8px #ffffff8c}.weather-fx{position:fixed;top:0;right:0;bottom:0;left:0;width:100%;height:100%;z-index:0;pointer-events:none}.app>*:not(.weather-fx):not(.page-dots){position:relative;z-index:1}.wx{display:inline-flex;align-items:center;gap:5px}.wx-icon{flex:none}.warn-inline{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:8px;margin:0 0 16px}@keyframes chipPop{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}.warn-chip{animation:chipPop .42s var(--spring-bounce) both}.warn-chip:nth-child(2){animation-delay:.06s}.warn-chip:nth-child(3){animation-delay:.12s}.warn-chip:nth-child(4){animation-delay:.18s}.warn-chip:nth-child(n+5){animation-delay:.24s}@keyframes chipPulse{0%,to{box-shadow:0 0 #fff0}50%{box-shadow:0 0 8px 2px currentColor;opacity:.82}}.warn-chip-severe{animation:chipPop .42s var(--spring-bounce) both,chipPulse 2.2s ease-in-out .42s infinite}.warn-chip{display:inline-flex;align-items:center;padding:5px 12px;border-radius:20px;border:.5px solid transparent;font-size:13px;font-weight:600;letter-spacing:.01em;white-space:nowrap;font-family:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:transform var(--transition-fast)}.warn-chip:active{transform:scale(.94)}.sheet-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;display:flex;align-items:flex-end;justify-content:center;padding:10px 10px 0;background:#04070e6b;backdrop-filter:blur(8px) saturate(1.1);-webkit-backdrop-filter:blur(8px) saturate(1.1);animation:fadeIn .22s ease both}.warn-sheet{width:100%;max-width:540px;max-height:82vh;overflow-y:auto;-webkit-overflow-scrolling:touch;background:linear-gradient(180deg,#262c3eb8,#141826b8);backdrop-filter:blur(40px) saturate(1.8);-webkit-backdrop-filter:blur(40px) saturate(1.8);border:.5px solid rgba(255,255,255,.14);border-radius:26px;padding:10px 22px calc(22px + env(safe-area-inset-bottom));margin-bottom:max(10px,env(safe-area-inset-bottom));box-shadow:0 -2px 60px #00000080,inset 0 .5px #ffffff1f;animation:sheetUp .4s var(--spring) both}@keyframes sheetUp{0%{transform:translateY(100%)}to{transform:none}}.warn-sheet-grip{display:block;width:36px;height:4px;border-radius:2px;background:#ffffff3d;margin:0 auto 16px}.warn-sheet-head{display:flex;align-items:center;gap:10px;margin-bottom:10px}.warn-sheet-badge{flex:none;padding:3px 10px;border-radius:999px;border:.5px solid transparent;font-size:12px;font-weight:700}.warn-sheet-title{margin:0;font-size:17px;font-weight:700;color:var(--text);letter-spacing:-.01em;line-height:1.3}.warn-sheet-meta{display:flex;flex-wrap:wrap;gap:4px 14px;margin-bottom:14px;font-size:12px;color:var(--text-dim)}.warn-sheet-body{margin:0 0 20px;font-size:14px;line-height:1.6;color:#ffffffdb;white-space:pre-wrap;text-wrap:pretty}.warn-sheet-empty{color:var(--text-dim)}.warn-sheet-close{width:100%;padding:12px;border-radius:14px;border:.5px solid var(--glass-border);background:var(--fill);color:var(--text);font-size:15px;font-weight:600;cursor:pointer;transition:background var(--transition-fast),transform var(--transition-fast)}.warn-sheet-close:active{transform:scale(.98);background:#7878805c}.minutely-card{background:var(--glass);border:.5px solid var(--glass-border);border-top:1.5px solid rgba(10,132,255,.35);border-radius:var(--radius);padding:14px 16px 12px;margin-bottom:16px;backdrop-filter:var(--mat-regular-blur);-webkit-backdrop-filter:var(--mat-regular-blur);box-shadow:0 4px 20px #00000047,inset 0 .5px #ffffff0d;animation:riseIn .5s var(--spring) both}.minutely-title{font-size:17px;font-weight:700;color:#fff;letter-spacing:-.02em;line-height:1.25;margin:0 0 12px}.minutely-svg{display:block;width:100%;height:68px;margin-bottom:6px}.minutely-time-row{display:flex;justify-content:space-between;font-size:10px;color:var(--text-dim);font-weight:500}.notice-card{background:var(--glass);border:.5px solid var(--glass-border);border-top:1.5px solid rgba(255,255,255,.2);border-radius:var(--radius);padding:14px 16px;margin-bottom:16px;backdrop-filter:var(--mat-regular-blur);-webkit-backdrop-filter:var(--mat-regular-blur);box-shadow:0 4px 20px #00000038,inset 0 .5px #ffffff0d;animation:riseIn .5s var(--spring) both}.notice-head{display:flex;align-items:center;gap:5px;margin-bottom:8px}.notice-icon{color:#a855f7;flex-shrink:0}.notice-source{font-size:12px;font-weight:600;color:var(--text-secondary)}.notice-issued{margin-left:auto;font-size:11px;font-weight:400;color:var(--text-dim);white-space:nowrap}.notice-when{font-size:14px;font-weight:600;color:var(--text);letter-spacing:-.01em;margin-bottom:6px}.notice-note{display:flex;align-items:flex-start;gap:4px;font-size:13px;color:#ffc350e6;line-height:1.45}.notice-note svg{flex-shrink:0;margin-top:2px;color:#ffaf32f2}.metric-strip{display:flex;justify-content:space-around;align-items:stretch;gap:6px;margin:4px 0 16px;padding:2px}.metric-col{position:relative;flex:1;min-width:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;padding:4px 6px;text-align:center;animation:riseIn .5s var(--spring) both}.metric-col+.metric-col:before{content:"";position:absolute;left:-3px;top:12%;bottom:12%;width:.5px;background:#ffffff1f}.mc-value{font-size:24px;font-weight:700;line-height:1;letter-spacing:-.02em;font-variant-numeric:tabular-nums}.mc-label{display:flex;flex-direction:column;align-items:center;gap:2px}.mc-dim{font-size:10px;font-weight:500;letter-spacing:.02em;color:var(--text-secondary);opacity:.65}.mc-level{font-size:11px;font-weight:500;letter-spacing:.02em;color:var(--text-secondary)}.spin{animation:spin .7s linear infinite}.hero{text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center;flex:1 0 auto;padding:calc(env(safe-area-inset-top,0px) + 24px) 0 24px;animation:riseIn .55s var(--spring) both}.hero-city{font-size:28px;font-weight:300;letter-spacing:-.03em;background:linear-gradient(180deg,#fff,#d1d1d6);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;margin:0 0 1px}.hero-updated{display:inline-flex;align-items:center;gap:5px;font-size:12px;font-weight:400;color:#ffffff73;margin-top:12px;background:none;border:none;padding:6px 14px;border-radius:999px;cursor:pointer;transition:color .2s ease,background .2s ease;-webkit-tap-highlight-color:transparent}button.hero-updated:active{background:#ffffff14;color:#ffffffb3}.refresh-icon{flex-shrink:0;opacity:.7}.hero-updated.refreshing{animation:heroUpdPulse 1.1s ease-in-out infinite}.hero-updated.refreshing .refresh-icon{opacity:1}@keyframes heroUpdPulse{0%,to{opacity:.45}50%{opacity:.75}}.hero-temp{position:relative;font-size:clamp(88px,27vw,124px);font-weight:200;line-height:.86;letter-spacing:-.04em;font-variant-numeric:tabular-nums;background:linear-gradient(180deg,var(--hero-top) 20%,var(--hero-btm) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.hero-deg{position:absolute;left:100%;top:0;font-weight:200}@supports not (-webkit-touch-callout: none){.hero-temp,.hero-deg{font-weight:300}}.hero-cond{font-size:17px;font-weight:500;color:#ffffffe6;margin-top:12px}.hero-summary{display:inline-flex;align-items:center;gap:8px;margin-top:8px;font-size:14px;font-weight:500;font-variant-numeric:tabular-nums}.hero-summary .hs-item{background:none;border:none;padding:3px 6px;border-radius:8px;color:#ffffffb8;font:inherit;cursor:pointer;transition:background .2s ease,color .2s ease;-webkit-tap-highlight-color:transparent}.hero-summary .hs-item:active{background:#ffffff1a;color:#fff}.hero-summary .hs-item.open{color:#fff}.hero-summary .hs-sep{color:#ffffff52}.hero-cond,.hero-summary,.hero-updated{text-shadow:0 1px 12px rgba(0,0,0,.25)}.hero-city,.hero-temp{filter:drop-shadow(0 1px 10px rgba(0,0,0,.28))}.hero-skeleton{pointer-events:none}.hskel{background:#ffffff24;border-radius:var(--radius-sm);margin:0 auto;animation:shimmer 1.8s ease-in-out infinite}.hskel-temp{width:clamp(160px,46vw,220px);height:clamp(76px,23vw,108px);border-radius:var(--radius)}.hskel-cond{width:80px;height:18px;margin-top:14px}.hero-unavailable{margin-top:22px;color:#ffffffb8;font-size:17px;font-weight:500}.cards{display:flex;flex-direction:column;gap:10px}.card{position:relative;display:flex;flex-direction:column;background:var(--glass);border:.5px solid var(--glass-border);border-radius:var(--radius);padding:16px 18px;backdrop-filter:var(--mat-regular-blur);-webkit-backdrop-filter:var(--mat-regular-blur);box-shadow:0 4px 20px #00000040,inset 0 .5px #ffffff0d;transition:transform var(--transition-fast),box-shadow var(--transition-fast),border-color var(--transition-fast);animation:cardIn .55s var(--spring) both;overflow:hidden}.card:after{content:"";position:absolute;left:0;top:10px;bottom:10px;width:3px;border-radius:0 2px 2px 0;background:var(--card-accent, transparent);opacity:.7}.card:nth-child(1){animation-delay:.05s}.card:nth-child(2){animation-delay:.1s}.card:nth-child(3){animation-delay:.15s}.card:nth-child(4){animation-delay:.2s}.card:nth-child(5){animation-delay:.25s}.card:nth-child(6){animation-delay:.3s}.card:nth-child(7){animation-delay:.35s}.card:nth-child(8){animation-delay:.4s}.card:hover{transform:translateY(-2px);box-shadow:0 12px 36px #0006,inset 0 .5px #ffffff14;border-color:var(--glass-border-hover)}@keyframes cardIn{0%{opacity:0;transform:translateY(16px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.card .head{display:flex;align-items:center;gap:10px;margin-bottom:12px}.card .dot{width:10px;height:10px;border-radius:50%;flex:none;box-shadow:0 0 8px currentColor}.card .name{font-weight:600;font-size:15px}a.card{text-decoration:none;color:inherit;display:block}.card-link{cursor:pointer}.card-link:active{transform:scale(.985)}.card-ext{color:var(--text-dim);flex:none;margin-left:2px;opacity:.7;transition:opacity var(--transition-fast)}.card-link:hover .card-ext{opacity:1}.card .head .name{flex:1}.card .temp{font-size:26px;font-weight:700;letter-spacing:-.03em;font-variant-numeric:tabular-nums}.card .row{display:flex;flex-wrap:wrap;gap:6px 18px;color:var(--text-secondary);font-size:13px;font-weight:500}.card .row span b{color:var(--text);font-weight:600}.card .obs{color:#ffffff80;font-size:11px;margin-top:auto;padding-top:10px;font-weight:500}.score-dots{display:flex;gap:1px;align-items:center;margin-left:auto;margin-right:1px;flex:none}.score-dot-button{display:grid;place-items:center;width:13px;height:28px;margin:0;padding:0;border:0;border-radius:7px;background:transparent;cursor:pointer}.score-dot{display:block;width:6px;height:6px;border-radius:50%;background:#ffffff2e;transition:background .25s ease,transform .2s var(--spring)}.score-dot.on{background:#ffffffb8}.score-dot-button:hover .score-dot,.score-dot-button:focus-visible .score-dot{background:#fffffff2;transform:scale(1.35)}.score-dot-button:focus-visible{outline-width:1.5px;outline-offset:0}.card.score-muted{opacity:.38;filter:saturate(.4)}.card.score-muted:focus-within{opacity:.72}.card.swipe-up{border-color:rgba(52,199,89,calc(var(--swipe-hint, 0) * .7));box-shadow:0 4px 20px #00000040,inset 0 0 0 1px rgba(52,199,89,calc(var(--swipe-hint, 0) * .5))}.card.swipe-down{border-color:rgba(255,69,58,calc(var(--swipe-hint, 0) * .7));box-shadow:0 4px 20px #00000040,inset 0 0 0 1px rgba(255,69,58,calc(var(--swipe-hint, 0) * .5))}@supports (view-transition-name: none){.cards .card{contain:layout}}.card.is-max{background:linear-gradient(105deg,rgba(255,69,58,.12),var(--glass) 58%)}.card.is-min{background:linear-gradient(105deg,rgba(64,200,224,.12),var(--glass) 58%)}.tag{font-size:11px;font-weight:600;letter-spacing:.01em;white-space:nowrap}.tag-hot{color:var(--hot)}.tag-cold{color:var(--cold)}.aqi-cat{font-size:13px;font-weight:600;transition:color .4s var(--spring)}.aqi-card .temp{transition:color .4s var(--spring)}.aqi-unit{font-size:11px;font-weight:600;opacity:.7;margin-left:3px;letter-spacing:.02em}.hint{color:var(--text-dim);text-align:center;padding:60px 0;font-size:15px;font-weight:500;display:flex;flex-direction:column;align-items:center;gap:16px}.hint p{margin:0;color:var(--text)}.hint span{margin-top:-8px;font-size:13px;font-weight:400}.data-status{margin-top:12px;padding:10px 14px;border:.5px solid rgba(255,214,10,.24);border-radius:var(--radius-sm);background:#2c240c57;color:#ffe280e6;font-size:12px;line-height:1.4;text-align:center}.retry-btn{padding:9px 24px;border-radius:999px;background:var(--fill);border:.5px solid var(--glass-border);color:var(--text);font-size:14px;font-weight:600;cursor:pointer;transition:background var(--transition-fast),transform var(--transition-fast)}.retry-btn:hover{background:#7878805c}.retry-btn:active{transform:scale(.95)}.wx-wind{display:inline-flex;align-items:center;gap:4px;white-space:nowrap}@keyframes spin{to{transform:rotate(360deg)}}.skeleton-card{background:var(--glass);border:.5px solid var(--glass-border);border-radius:var(--radius);padding:16px 18px;height:90px;backdrop-filter:var(--mat-regular-blur);-webkit-backdrop-filter:var(--mat-regular-blur);animation:shimmer 2s ease-in-out infinite}@keyframes shimmer{0%,to{opacity:.3}50%{opacity:.6}}@media (max-width: 375px){.app{padding:0 max(12px,env(safe-area-inset-right)) max(44px,calc(20px + env(safe-area-inset-bottom))) max(12px,env(safe-area-inset-left))}.hero-city{font-size:24px}.hero-temp{font-size:92px}.hero-cond{font-size:19px}.card{padding:14px}.card .temp{font-size:22px}.score-dot-button{width:12px}}@media (min-width: 900px){.app{max-width:1180px;padding:0 clamp(28px,4vw,56px) 64px}.swipe-wrap{display:grid;grid-template-columns:minmax(360px,.88fr) minmax(480px,1.12fr);gap:clamp(44px,7vw,96px);align-items:start}.swipe-wrap>.app-content:first-child{position:sticky;top:0;min-height:100dvh}.swipe-wrap>.app-content:last-child{min-width:0;padding-top:clamp(48px,8vh,88px);padding-bottom:48px}.weather-fx{opacity:.72}.hero{padding-top:56px}.hero-temp{font-size:clamp(112px,11vw,156px)}.page-dots{bottom:18px}}@keyframes riseIn{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.hero-city{animation:riseIn .5s var(--spring) both}.hero-temp,.card .temp{transition:color var(--transition-fast)}@keyframes pageIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.app-content{animation:pageIn .32s var(--spring) both}@supports (backdrop-filter: blur(1px)){:root{--mat-regular-bg: rgba(12, 15, 26, .36);--mat-regular-blur: blur(24px) saturate(1.6);--mat-thick-bg: rgba(16, 19, 32, .48);--mat-thick-blur: blur(32px) saturate(1.8);--glass: var(--mat-regular-bg)}}.hero-cond,.warn-chip,.notice-when,.mc-dim{text-wrap:balance}.minutely-title,.notice-note{text-wrap:pretty}@supports (animation-timeline: view()){.card{animation-name:cardIn;animation-fill-mode:both;animation-timing-function:ease-out;animation-duration:auto;animation-timeline:view();animation-range:entry 0% entry 32%}.card:nth-child(1),.card:nth-child(2),.card:nth-child(3),.card:nth-child(4),.card:nth-child(5),.card:nth-child(6),.card:nth-child(7),.card:nth-child(8){animation-delay:0s}}@keyframes vtToLeft{to{opacity:0;transform:translate(-22px) scale(.97)}}@keyframes vtFromRight{0%{opacity:0;transform:translate(22px) scale(.97)}}@keyframes vtToRight{to{opacity:0;transform:translate(22px) scale(.97)}}@keyframes vtFromLeft{0%{opacity:0;transform:translate(-22px) scale(.97)}}@keyframes vtFadeOut{to{opacity:0;transform:scale(.97)}}@keyframes vtFadeIn{0%{opacity:0;transform:scale(1.01)}}::view-transition-old(root){animation:vtFadeOut .28s ease-in both}::view-transition-new(root){animation:vtFadeIn .34s var(--spring) both}[data-vt-dir=forward] ::view-transition-old(root){animation-name:vtToLeft}[data-vt-dir=forward] ::view-transition-new(root){animation-name:vtFromRight}[data-vt-dir=back] ::view-transition-old(root){animation-name:vtToRight}[data-vt-dir=back] ::view-transition-new(root){animation-name:vtFromLeft}::view-transition-group(.weather-fx){animation-duration:0s}.cards-expand{display:grid;grid-template-rows:0fr;transition:grid-template-rows .46s var(--spring);margin-top:0;transition:grid-template-rows .46s var(--spring),margin-top .46s var(--spring)}.cards-expand.open{grid-template-rows:1fr;margin-top:10px}.cards-expand-inner{overflow:hidden}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}.spin{animation-duration:.7s!important;animation-iteration-count:infinite!important}}
