:root{--bg-deep: #03050b;--bg-base: #0a0d16;--mat-regular-bg: rgba(20, 23, 35, .52);--mat-regular-border: rgba(255, 255, 255, .1);--mat-regular-blur: none;--mat-thick-bg: rgba(26, 29, 43, .64);--mat-thick-border: rgba(255, 255, 255, .13);--mat-thick-blur: none;--glass: var(--mat-regular-bg);--glass-hover: rgba(255, 255, 255, .08);--glass-border: var(--mat-regular-border);--glass-border-hover: rgba(255, 255, 255, .14);--fill: rgba(120, 120, 128, .24);--fill-2: rgba(120, 120, 128, .14);--text: #f5f5f7;--text-secondary: #98989d;--text-dim: #6e6e73;--accent: #0a84ff;--accent-glow: rgba(10, 132, 255, .3);--hot: #ff453a;--hot-glow: rgba(255, 69, 58, .2);--cold: #40c8e0;--cold-glow: rgba(64, 200, 224, .2);--warn: #ffd60a;--radius-sm: 12px;--radius: 22px;--radius-lg: 28px;--spring: cubic-bezier(.32, .72, 0, 1);--transition: .4s var(--spring);--transition-fast: .22s var(--spring)}@supports (corner-shape: superellipse(2)){.notice-card,.warn-card,.ranking,.card,.page-dots{corner-shape:superellipse(2.2)}}@supports (mix-blend-mode: plus-lighter){.mc-label,.ranking-title,.notice-issued,.notice-detail,.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}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;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}body:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;background:radial-gradient(ellipse 80% 50% at 50% -10%,#1c2541 0%,transparent 55%),radial-gradient(ellipse 60% 40% at 80% 80%,#0d1b3e 0%,transparent 50%),radial-gradient(ellipse 50% 30% at 20% 60%,#0f1a2e 0%,transparent 50%),linear-gradient(180deg,#0a0f1a,#05080f 40%,#0a0d16);z-index:-1}body:after{content:"";position:fixed;top:0;right:0;bottom:0;left:0;opacity:.025;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.65' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");background-repeat:repeat;background-size:200px 200px;z-index:-1;pointer-events:none}html[data-sky=clear-day]{background-color:#0c1a36}html[data-sky=clear-night]{background-color:#08101f}html[data-sky=cloudy]{background-color:#131c30}html[data-sky=overcast]{background-color:#171b26}html[data-sky=rain]{background-color:#101b27}html[data-sky=snow]{background-color:#19212f}html[data-sky=fog]{background-color:#1a1c22}html[data-sky=cloudy],html[data-sky=fog],html[data-sky=snow],html[data-sky=overcast]{--text-dim: #9a9aa0}html[data-sky=clear-day] body:before{background:radial-gradient(ellipse 60% 42% at 84% -6%,rgba(255,184,92,.3) 0%,transparent 48%),radial-gradient(ellipse 80% 50% at 50% -10%,#244a82 0%,transparent 56%),radial-gradient(ellipse 60% 40% at 78% 82%,#0d1b3e 0%,transparent 50%),linear-gradient(180deg,#163465,#0a1428 44%,#0a0d16)}html[data-sky=clear-night] body:before{background:radial-gradient(ellipse 55% 38% at 82% 4%,rgba(150,180,255,.14) 0%,transparent 46%),radial-gradient(ellipse 80% 50% at 50% -10%,#16244a 0%,transparent 56%),linear-gradient(180deg,#0a1430,#070d1c 46%,#05080f)}html[data-sky=cloudy] body:before{background:radial-gradient(ellipse 90% 52% at 50% -10%,#2b3852 0%,transparent 60%),radial-gradient(ellipse 60% 40% at 76% 78%,#1a2740 0%,transparent 54%),linear-gradient(180deg,#1d2842,#11192a 46%,#0a0d16)}html[data-sky=overcast] body:before{background:radial-gradient(ellipse 92% 55% at 50% -12%,#323847 0%,transparent 60%),linear-gradient(180deg,#242b39,#151a24 46%,#0a0d16)}html[data-sky=rain] body:before{background:radial-gradient(ellipse 90% 50% at 50% -10%,#203850 0%,transparent 60%),radial-gradient(ellipse 70% 42% at 28% 72%,#12222f 0%,transparent 54%),linear-gradient(180deg,#172a3e,#0e1822 46%,#080c12)}html[data-sky=snow] body:before{background:radial-gradient(ellipse 92% 55% at 50% -10%,#36445f 0%,transparent 60%),linear-gradient(180deg,#293751,#18202e 46%,#0a0d16)}html[data-sky=fog] body:before{background:radial-gradient(ellipse 92% 55% at 50% -10%,#363941 0%,transparent 60%),linear-gradient(180deg,#2b2e36,#1a1c20 46%,#0d0e10)}.app{max-width:560px;margin:0 auto;padding:0 max(20px,env(safe-area-inset-right)) max(72px,calc(44px + env(safe-area-inset-bottom))) max(20px,env(safe-area-inset-left));min-height:100%}.swipe-wrap{transition:transform .32s var(--spring);touch-action:pan-y}.swipe-wrap.dragging{transition:none;will-change:transform}.page-dots{position:fixed;left:50%;bottom:max(16px,calc(10px + env(safe-area-inset-bottom)));transform:translate(-50%);z-index:20;display:flex;align-items:center;gap:8px;padding:8px 12px;border-radius:999px;background:#0a0e18c7;border:.5px solid var(--glass-border);box-shadow:0 6px 24px #0000004d}.page-dot{position:relative;width:7px;height:7px;padding:0;border:none;border-radius:50%;background:#ffffff52;cursor:pointer;transition:background var(--transition-fast),width var(--transition-fast),border-radius var(--transition-fast)}.page-dot:before{content:"";position:absolute;top:50%;left:50%;width:44px;height:44px;transform:translate(-50%,-50%)}.page-dot.active{width:20px;border-radius:4px;background:#fff}.pull-indicator{display:flex;align-items:center;justify-content:center;overflow:hidden;color:#ffffff8c;transition:opacity .2s ease,color .2s ease}.pull-indicator.active{box-sizing:content-box;padding-top:env(safe-area-inset-top,0px)}.pull-indicator.ready{color:#fffffff2}.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(.loc-header):not(.page-dots){position:relative;z-index:1}.loc-header{position:sticky;top:0;z-index:10;display:flex;align-items:center;justify-content:center;pointer-events:none;margin:0 -20px;padding:calc(env(safe-area-inset-top) + 14px) 20px 10px}.loc-header:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:-1;pointer-events:none;background:linear-gradient(180deg,#080c188c,#080c1842 52%,#080c1800);-webkit-mask-image:linear-gradient(180deg,#000 42%,transparent 100%);mask-image:linear-gradient(180deg,#000 42%,transparent 100%);opacity:0;transition:opacity var(--transition-fast)}.loc-header.scrolled:before{opacity:1}.loc-sticky-name{font-size:17px;font-weight:600;letter-spacing:-.02em;color:#fff;opacity:0;transform:translateY(-5px);transition:opacity var(--transition-fast),transform var(--transition-fast)}.loc-header.scrolled .loc-sticky-name{opacity:1;transform:none}.wx{display:inline-flex;align-items:center;gap:5px}.wx-icon{flex:none}.warn-list{display:flex;flex-direction:column;gap:12px;margin-bottom:20px}.warn-card{display:flex;align-items:center;background:var(--glass);border:.5px solid var(--glass-border);border-left:4px solid #ff9f0a;border-radius:var(--radius);padding:14px 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}.warn-badge{display:inline-flex;align-items:center;gap:5px;padding:4px 11px;border-radius:9px;font-size:13px;font-weight:700;letter-spacing:.01em;white-space:nowrap}.warn-badge svg{flex:none}.warn-sender{font-size:12px;color:var(--text-secondary);margin-left:10px;font-weight:500}.notice-card{background:var(--glass);border:.5px solid var(--glass-border);border-left:3px solid #a855f7;border-radius:var(--radius);padding:16px 18px;margin-bottom:20px;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:6px;font-size:12px;font-weight:600;color:#c89bf0;margin-bottom:6px}.notice-source{font-size:12px;font-weight:600}.notice-time{background:#a855f72e;color:#c89bf0;border-radius:6px;padding:1px 7px;font-size:11px;font-weight:700;letter-spacing:.01em;white-space:nowrap}.notice-issued{margin-left:auto;font-size:11px;font-weight:500;color:var(--text-dim);white-space:nowrap}.notice-row{display:flex;align-items:baseline;flex-wrap:wrap;gap:0}.notice-wx{font-size:14px;font-weight:500;color:var(--text)}.notice-detail{font-size:13px;color:var(--text-secondary)}.notice-detail:before{content:" · ";opacity:.45}.notice-note{margin:5px 0 0;font-size:12px;color:var(--text-dim);line-height:1.4}.metric-strip{display:flex;justify-content:space-around;align-items:stretch;gap:6px;margin:4px 0 32px;padding:2px}.metric-col{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}.mc-value{font-size:25px;font-weight:600;line-height:1;letter-spacing:-.02em;font-variant-numeric:tabular-nums}.mc-label{font-size:11px;font-weight:600;letter-spacing:.02em;color:var(--text-secondary)}.spin{animation:spin .7s linear infinite}.hero{text-align:center;min-height:44vh;min-height:44dvh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:8px 0 48px;animation:riseIn .55s var(--spring) both}.hero-city{font-size:28px;font-weight:600;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{font-size:12px;font-weight:500;color:#ffffff73;margin-bottom:16px}.hero-updated.refreshing{animation:heroUpdPulse 1.1s ease-in-out infinite}@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;color:#fff;font-variant-numeric:tabular-nums}.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:21px;font-weight:500;color:#ffffffb8;margin-top:14px}.hero-hilo{display:flex;justify-content:center;gap:22px;font-size:18px;font-weight:500;color:#ffffffd1;margin-top:7px}.hero-hilo b{font-weight:600;color:#fff}.hero-skeleton{pointer-events:none}.hskel{background:#ffffff24;border-radius:10px;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:18px}.hskel-cond{width:80px;height:18px;margin-top:14px}.hskel-hilo{width:148px;height:17px;margin-top:7px}.ranking{background:var(--glass);border:.5px solid var(--glass-border);border-radius:var(--radius);padding:20px 22px 14px;margin-bottom:20px;backdrop-filter:var(--mat-regular-blur);-webkit-backdrop-filter:var(--mat-regular-blur);box-shadow:0 8px 32px #0000004d,inset 0 .5px #ffffff0f}.ranking-title{font-size:12px;font-weight:600;color:var(--text-dim);letter-spacing:.04em;margin-bottom:10px;text-transform:uppercase}.rank-row{display:flex;align-items:center;gap:12px;padding:8px 6px;border-radius:10px;margin:0 -6px}@media (hover: hover){.rank-row:hover{background:var(--glass-hover)}}.rank-no{width:18px;text-align:center;font-size:12px;font-weight:700;color:var(--text-dim);font-variant-numeric:tabular-nums}.rank-name{font-size:14px;min-width:100px;font-weight:500}.rank-bar{flex:1;height:5px;background:var(--fill-2);border-radius:3px;overflow:hidden}.rank-bar-fill{display:block;height:100%;border-radius:3px;transition:width .6s var(--spring)}.rank-temp{font-size:17px;font-weight:700;width:50px;text-align:right;letter-spacing:-.02em;font-variant-numeric:tabular-nums}.cards{display:flex;flex-direction:column;gap:10px}.card{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}.card:hover{transform:translateY(-2px);box-shadow:0 12px 36px #0006,inset 0 .5px #ffffff14;border-color:var(--glass-border-hover)}.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}@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:var(--text-dim);font-size:11px;margin-top:10px;font-weight:500}.card.err{opacity:.7}.card .err-msg{color:#ff6961;font-size:13px;font-weight:500}.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:10px;padding:3px 9px;border-radius:8px;font-weight:700;letter-spacing:.02em}.tag-hot{background:#ff453a2e;color:#ff6961;box-shadow:0 0 12px var(--hot-glow)}.tag-cold{background:#40c8e02e;color:#70d7e8;box-shadow:0 0 12px var(--cold-glow)}.aqi-section{margin-top:20px}.aqi-section .cards{margin-top:4px}.aqi-cat{font-size:13px;font-weight:600}.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}.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: 400px){.app{padding:0 max(12px,env(safe-area-inset-right)) max(64px,calc(36px + env(safe-area-inset-bottom))) max(12px,env(safe-area-inset-left))}.loc-header{margin:0 -12px;padding-left:12px;padding-right:12px}.hero-city{font-size:24px}.hero-temp{font-size:92px}.hero-cond{font-size:19px}.hero-hilo{font-size:16px}.card{padding:14px}.card .temp{font-size:22px}.rank-name{min-width:80px;font-size:13px}}@keyframes riseIn{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.loc-header{animation:fadeIn .45s ease both}.hero-city{animation:riseIn .5s var(--spring) both}.ranking{animation:riseIn .5s .06s var(--spring) both}.rank-row{animation:riseIn .45s both}.rank-row:nth-child(2){animation-delay:.04s}.rank-row:nth-child(3){animation-delay:.08s}.rank-row:nth-child(4){animation-delay:.12s}.rank-row:nth-child(5){animation-delay:.16s}.rank-row:nth-child(6){animation-delay:.2s}.rank-row:nth-child(7){animation-delay:.24s}.rank-row:nth-child(8){animation-delay:.28s}.hero-temp,.card .temp,.rank-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}@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}}
