:root{--accent: #3178e7;--bg: #f2f7fb;--card: #ffffff;--text: #3d4f5f;--muted: #8499a8;--border: #e3edf3;--radius: 16px;--shadow: 0 4px 16px rgba(120, 160, 190, .1);--tab-bar-height: 76px;font-family:PingFang SC,Microsoft YaHei,system-ui,sans-serif;line-height:1.5;color:var(--text);background:var(--bg)}*{box-sizing:border-box}body{margin:0;min-height:100dvh;height:100dvh;background:var(--bg)}#root{min-height:100dvh;height:100dvh}.app-shell{position:relative;z-index:1;width:100%;max-width:100%;margin:0;min-height:100dvh;height:100dvh;display:flex;flex-direction:column;padding-bottom:calc(var(--tab-bar-height) + env(safe-area-inset-bottom));overflow:hidden}.app-main{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:8px 16px 12px;-webkit-overflow-scrolling:touch}.page{min-height:100%}.page-header h1{margin:0 0 10px;font-size:1.45rem;font-weight:700;color:var(--text)}.card{background:var(--card);border-radius:var(--radius);padding:16px;margin-bottom:12px;box-shadow:var(--shadow);border:1px solid var(--border)}.card h2{margin:0 0 12px;font-size:1rem;font-weight:600;color:var(--text)}.weather-hero{padding:18px 16px 16px;border-radius:18px;color:#fff;background:linear-gradient(160deg,#3178e7,#4a89eb);border:none;box-shadow:0 10px 28px #3178e747}.weather-hero .muted{color:#ffffffe6;margin:0}.hero-top{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:14px}.hero-date-block{flex-shrink:0;display:flex;flex-direction:column;align-items:flex-end;gap:4px;padding:8px 12px;min-width:118px;border-radius:14px;text-align:right;background:#ffffff1f;border:1px solid rgba(255,255,255,.22);box-shadow:inset 0 1px #ffffff2e}.hero-date-primary{display:flex;align-items:center;justify-content:flex-end;gap:8px}.hero-date-md{font-size:1.05rem;font-weight:700;line-height:1.2;color:#fff;white-space:nowrap;letter-spacing:.01em}.hero-date-sub{font-size:.76rem;font-weight:500;line-height:1.2;color:#ffffffd1;letter-spacing:.04em}.hero-weekday{display:inline-flex;align-items:center;justify-content:center;min-width:36px;padding:2px 8px;border-radius:999px;font-size:.72rem;font-weight:700;line-height:1.3;color:#fff;white-space:nowrap;background:#ffffff38;border:1px solid rgba(255,255,255,.28)}.hero-top-main{flex:1;min-width:0}.hero-location{font-size:.88rem;line-height:1.45;padding-top:2px}.hero-almanac{margin:6px 0 0;font-family:"FangSong",STFangsong,KaiTi,STKaiti,SimSun,serif;font-size:.68rem;line-height:1.55;letter-spacing:.06em;color:#ffffffb8}.hero-almanac-date{display:block;margin-bottom:2px;color:#fff8e6e0}.hero-almanac-gz{margin-left:6px;font-size:.64rem;color:#ffffff94}.hero-almanac-yiji{display:block}.hero-almanac-yi,.hero-almanac-ji{display:inline}.hero-almanac-yi em,.hero-almanac-ji em{font-style:normal;font-weight:600;margin-right:3px}.hero-almanac-yi em{color:#86efac}.hero-almanac-ji em{color:#fca5a5}.hero-almanac-sep{margin:0 5px;opacity:.45}.hero-now{margin-bottom:14px}.hero-now-main{display:flex;align-items:center;gap:16px}.hero-now-temp{font-size:3.4rem;font-weight:700;line-height:1;color:#fff;letter-spacing:-.02em}.hero-now-detail{display:flex;flex-direction:column;gap:4px;min-width:0}.hero-now-condition{font-size:1.15rem;font-weight:600;color:#fff}.hero-now-meta{font-size:.78rem;color:#ffffffdb;line-height:1.4}.hero-rain-row{display:flex;flex-direction:column;gap:6px;margin-bottom:10px}.rain-question{margin:0;font-size:1.15rem;font-weight:600;line-height:1.4;color:#fff}.rain-window-hint{font-size:.82rem;font-weight:500;color:#ffffffe0;margin-left:4px;white-space:nowrap}.hero-reminders{display:flex;flex-direction:column;gap:8px}.hero-reminder{display:flex;align-items:flex-start;gap:10px;padding:12px 14px;border-radius:14px;border:1px solid rgba(255,255,255,.45);box-shadow:0 4px 16px #0f285a1f}.hero-reminder-icon{flex-shrink:0;font-size:1.75rem;line-height:1}.hero-reminder-text{display:flex;flex-direction:column;gap:4px;min-width:0}.hero-reminder-text strong{font-size:1rem;font-weight:700;line-height:1.3}.hero-reminder-message{font-size:.78rem;line-height:1.45;opacity:.94;white-space:pre-line;word-break:keep-all}.hero-reminder--umbrella{padding:14px 16px;background:linear-gradient(135deg,#ffe566,#ffc933);color:#4a2c00;border:2px solid rgba(255,255,255,.75);box-shadow:0 6px 24px #0000002e,0 0 0 1px #ffc83259}.hero-reminder--umbrella .hero-reminder-icon{font-size:2rem}.hero-reminder--umbrella .hero-reminder-text strong{font-size:1.08rem;letter-spacing:.02em}.hero-reminder--umbrella .hero-reminder-message{opacity:1;font-weight:500}.hero-reminder--umbrella .reminder-expand-btn--hero{background:#4a2c0024;color:#4a2c00}.hero-reminder--umbrella .reminder-expand-btn--hero:hover{background:#4a2c0038}.hero-reminder--clothing{background:linear-gradient(135deg,#fff5eb,#ffe8d4);color:#8b4513;box-shadow:0 3px 12px #0f285a14}.hero-reminder--clothing .reminder-expand-btn--hero{background:#7c2d121f;color:#7c2d12}.hero-reminder--clothing .reminder-expand-btn--hero:hover{background:#7c2d1233}.hero-reminder--sunscreen{background:linear-gradient(135deg,#fffbeb,#fef3c7);color:#92600a;box-shadow:0 3px 12px #0f285a14}.hero-reminder--sunscreen .reminder-expand-btn--hero{background:#854d0e1f;color:#854d0e}.hero-reminder--sunscreen .reminder-expand-btn--hero:hover{background:#854d0e33}.hero-summary{margin:0 0 14px;padding:0;border-radius:0;font-size:.84rem;line-height:1.45;color:#ffffffeb;background:transparent}.stats-row{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin-bottom:0}.stat{text-align:center;background:#ffffff29;border:1px solid rgba(255,255,255,.12);border-radius:14px;padding:12px 8px}.stat-val{display:block;font-weight:700;font-size:1rem;color:#fff;line-height:1.2}.stat-label{display:block;margin-top:4px;font-size:.72rem;color:#ffffffe0}.source-chips{display:flex;flex-wrap:wrap;gap:6px}.chip{font-size:.72rem;padding:4px 8px;border-radius:999px;background:#fff3}.row{display:flex;gap:8px;margin-bottom:8px}input,textarea{width:100%;padding:10px 12px;border:1px solid var(--border);border-radius:10px;font:inherit;margin-bottom:8px}.btn{border:none;border-radius:10px;padding:10px 16px;font:inherit;font-weight:600;cursor:pointer}.btn.primary{background:var(--accent);color:#fff}.btn.secondary{background:#eef4f8;color:var(--text)}.btn.block{width:100%}.btn:disabled{opacity:.5;cursor:not-allowed}.subtitle{margin:0 0 16px;color:var(--muted);font-size:.9rem}.tab-bar{position:fixed;bottom:0;left:0;right:0;width:100%;max-width:100%;display:flex;background:#fff;border-top:1px solid var(--border);padding:10px 8px calc(10px + env(safe-area-inset-bottom));z-index:10;box-shadow:0 -2px 12px #78a0be14}.tab{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;background:none;border:none;padding:8px 0;min-height:56px;color:var(--muted);font-size:.78rem;cursor:pointer}.tab.active{color:var(--accent);font-weight:600}.tab-icon{font-size:1.4rem;line-height:1}.tab-label{line-height:1.2}.suggestions{list-style:none;margin:8px 0 0;padding:0}.suggestions button{width:100%;text-align:left;padding:10px;border:none;background:#f8fafc;border-radius:8px;margin-bottom:4px;cursor:pointer}.banner{text-align:center;padding:10px;border-radius:10px;background:#eef6fc;color:#4a7a9b;margin-bottom:12px}.banner.error{background:#fee2e2;color:#991b1b}.empty,.muted{color:var(--muted)}.source-list{list-style:none;margin:12px 0 0;padding:0}.source-compare-head{display:flex;justify-content:space-between;align-items:center;gap:12px}.source-compare-head h2{margin:0}.source-toggle{display:inline-flex;align-items:center;gap:6px;flex-shrink:0;border:1px solid var(--border);border-radius:999px;background:#f4f9fc;color:var(--accent);padding:6px 12px;font:inherit;font-size:.82rem;font-weight:600;cursor:pointer}.source-toggle:hover{background:#eef6fc}.source-toggle.is-open{background:#e3f2fa}.source-toggle-icon{font-size:.72rem;line-height:1}.source-list li{display:flex;flex-direction:column;padding:10px 0;border-bottom:1px solid var(--border)}.source-list li:last-child{border-bottom:none}.reminder-list{list-style:none;margin:0 0 12px;padding:0}.reminder-item{display:flex;gap:12px;align-items:flex-start;background:var(--card);border-radius:var(--radius);padding:14px;margin-bottom:8px;border:1px solid var(--border)}.reminder-item.type-umbrella{padding:16px;background:linear-gradient(135deg,#ffe566,#ffc933);border:2px solid #f5b800;box-shadow:0 4px 16px #f59e0b40}.reminder-item.type-umbrella strong{color:#4a2c00;font-size:1.02rem}.reminder-item.type-umbrella .reminder-message{color:#5c3a0a}.reminder-item.type-clothing{background:linear-gradient(135deg,#fff7ed,#ffedd5);border-color:#fed7aa}.reminder-item.type-sunscreen{background:linear-gradient(135deg,#fffbeb,#fef9e7);border-color:#fde68a}.reminder-item>div{flex:1;min-width:0}.reminder-item strong{display:block;line-height:1.4}.reminder-message{margin:4px 0 0;font-size:.9rem;color:var(--muted);line-height:1.55;white-space:pre-line;word-break:keep-all;line-break:strict}.reminder-message-wrap{margin-top:4px}.reminder-message-wrap .reminder-message,.reminder-message-wrap .hero-reminder-message{margin:0}.reminder-expand-btn{display:inline-flex;align-items:center;gap:4px;margin-top:6px;padding:3px 10px;border-radius:999px;border:none;font:inherit;font-size:.72rem;font-weight:600;cursor:pointer;line-height:1.4}.reminder-expand-btn--list{background:#eef6fc;color:var(--accent)}.reminder-expand-btn--list:hover{background:#e3f2fa}.reminder-item.type-umbrella .reminder-expand-btn--list{background:#4a2c001f;color:#4a2c00}.reminder-item.type-umbrella .reminder-expand-btn--list:hover{background:#4a2c0033}.reminder-item.type-clothing .reminder-expand-btn--list{background:#ffedd5;color:#c2410c}.reminder-item.type-clothing .reminder-expand-btn--list:hover{background:#fed7aa}.reminder-item.type-sunscreen .reminder-expand-btn--list{background:#fef3c7;color:#b45309}.reminder-item.type-sunscreen .reminder-expand-btn--list:hover{background:#fde68a}.reminder-expand-btn--hero{background:#00000014;color:inherit}.reminder-expand-btn--hero:hover{background:#00000024}.reminder-expand-icon{font-size:.65rem;line-height:1}.reminder-icon{flex-shrink:0;font-size:1.5rem;line-height:1.4}.switch-row{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid var(--border)}.switch-row span{white-space:nowrap;flex-shrink:0}.switch-row input[type=checkbox]{width:auto;margin-bottom:0;flex-shrink:0}.switch-row:last-child{border-bottom:none}.gender-picker{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:4px 0 12px;margin-top:-4px;border-bottom:1px solid var(--border)}.gender-picker-label{font-size:.88rem;color:var(--muted)}.gender-options{display:flex;gap:8px}.gender-option{padding:6px 14px;border-radius:999px;border:1px solid var(--border);background:var(--surface);color:var(--text);font-size:.85rem;cursor:pointer;transition:background .15s,border-color .15s,color .15s}.gender-option.active{background:var(--accent);border-color:var(--accent);color:#fff}.guess-card{text-align:center}.points-display{font-size:1.1rem}.guess-buttons{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:12px}.guess-rain{background:#3b82f6;color:#fff;padding:20px 8px}.guess-sun{background:#fbbf24;color:#78350f;padding:20px 8px}.result-box{margin-top:16px;padding:12px;background:#ecfdf5;border-radius:10px}.rules{margin:0;padding-left:1.2rem;color:var(--muted)}.mall-grid{list-style:none;margin:0;padding:0}.mall-item h3{margin:0 0 6px}.mall-tag{font-size:.7rem;text-transform:uppercase;color:var(--accent)}.cost{font-weight:700;color:var(--accent)}.ledger{list-style:none;margin:0;padding:0}.ledger li{display:flex;justify-content:space-between;padding:8px 0;border-bottom:1px solid var(--border)}.ledger .pos{color:#059669;font-weight:700}.ledger .neg{color:#dc2626;font-weight:700}.muted-box{font-size:.9rem;color:var(--muted)}.custom-list{list-style:none;padding:0;margin:0}.custom-list li{padding:8px 0;border-bottom:1px solid var(--border)}.forecast-note{margin:-4px 0 12px;font-size:.8rem}.forecast-scroll{max-height:220px;overflow-y:auto;margin:0 -4px;padding:0 4px}.hourly-list,.week-list{list-style:none;margin:0;padding:0}.hourly-list li{display:grid;grid-template-columns:5.5rem 1fr auto;grid-template-rows:auto auto;gap:2px 8px;padding:8px 0;border-bottom:1px solid var(--border);font-size:.85rem}.hourly-list li.rain-slot{background:#1e6fd90f;margin:0 -8px;padding-left:8px;padding-right:8px;border-radius:8px}.hourly-list time{grid-row:span 2;color:var(--muted);font-size:.78rem}.hourly-summary{font-weight:600}.hourly-temp{text-align:right;font-weight:600}.hourly-precip{grid-column:2 / -1;color:var(--muted);font-size:.78rem}.hourly-precip small{font-size:.72rem}.week-list li{padding:10px 0;border-bottom:1px solid var(--border)}.week-list li:last-child{border-bottom:none}.week-list li.rain-day .week-day-head strong{color:var(--accent)}.week-day-head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:4px}.week-day-body{display:flex;flex-direction:column;gap:2px;font-size:.85rem;color:var(--muted)}.saved-cities-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:10px}.saved-cities-title{display:flex;align-items:center;gap:8px;min-width:0}.saved-cities-title h2{margin:0}.city-add-btn{flex-shrink:0;width:32px;height:32px;border:1px solid var(--border);border-radius:10px;background:#f8fafc;color:var(--accent);font-size:1.35rem;font-weight:600;line-height:1;cursor:pointer}.city-add-btn:hover:not(:disabled){background:#eff6ff;border-color:var(--accent)}.city-add-btn:disabled{opacity:.45;cursor:not-allowed}.location-card-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px}.location-card-head h2{margin:0;font-size:1rem}.saved-cities-head h2{margin:0}.hint-warn{color:#b45309}.city-chips{display:flex;flex-wrap:wrap;gap:8px}.city-chip-wrap{display:flex;align-items:stretch;border:1px solid var(--border);border-radius:12px;overflow:hidden;background:#fff}.city-chip-wrap.active{border-color:var(--accent);box-shadow:0 0 0 2px #5aabda2e}.city-chip{display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:8px 10px;border:none;background:none;cursor:pointer;font:inherit;text-align:left}.city-chip-name{font-weight:700;font-size:.88rem}.city-chip-rain{font-size:.72rem;color:var(--muted)}.city-chip-remove{border:none;border-left:1px solid var(--border);background:#f1f5f9;color:var(--muted);width:28px;cursor:pointer;font-size:1.1rem;line-height:1}.city-chip-remove:hover{background:#fee2e2;color:#dc2626}.suggestions li{display:flex;justify-content:space-between;align-items:center;gap:8px}.suggestion-name{flex:1;font-size:.88rem}.suggestion-actions{display:flex;gap:6px;flex-shrink:0}.btn.sm{padding:6px 10px;font-size:.78rem}.banner.ok{background:#ecfdf5;color:#047857;border:1px solid #a7f3d0}.muted.small{font-size:.8rem;margin:6px 0 0}.location-hint{margin:0 0 10px;line-height:1.45}.qweather-setup h2{margin:0 0 8px;color:#b45309}.qweather-setup .setup-steps{margin:12px 0 0;padding-left:20px;font-size:.88rem}.qweather-setup .setup-steps li{margin-bottom:8px}.env-sample{background:#f1f5f9;padding:10px;border-radius:8px;font-size:.78rem;overflow-x:auto;margin:8px 0 0}.banner.small{margin-top:10px;font-size:.82rem}.weather-fx{position:fixed;top:0;right:0;bottom:0;left:0;width:100vw;height:100dvh;pointer-events:none;z-index:0;overflow:hidden;animation:fx-scene-in 1.4s ease-out forwards}.weather-fx--sunny{--fx-opacity: .42}.weather-fx--cloudy{--fx-opacity: .48}.weather-fx--rain,.weather-fx--thunder{--fx-opacity: 1}.weather-fx--rain .fx-vignette,.weather-fx--thunder .fx-vignette{opacity:.35;background:radial-gradient(ellipse 120% 90% at 50% 40%,transparent 20%,rgba(15,23,42,.2) 100%)}.weather-fx--rain-drizzle .fx-vignette{opacity:.2;background:radial-gradient(ellipse 120% 90% at 50% 40%,transparent 30%,rgba(100,116,139,.12) 100%)}@keyframes fx-scene-in{0%{opacity:0}to{opacity:var(--fx-opacity, .45)}}.fx-sky-wash{position:absolute;top:0;right:0;bottom:0;left:0;opacity:1}.fx-vignette{position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(ellipse 120% 90% at 50% 40%,transparent 35%,rgba(15,23,42,.06) 100%);opacity:.6}.weather-fx--sunny .fx-sky-wash{background:linear-gradient(180deg,rgba(255,210,100,.32) 0%,rgba(255,190,70,.16) 40%,rgba(255,235,180,.08) 65%,transparent 88%)}.fx-sun-warmth{position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(ellipse 80% 60% at 50% 20%,rgba(255,200,80,.18) 0%,transparent 70%);animation:fx-warmth-follow 42s linear infinite}@keyframes fx-warmth-follow{0%,to{opacity:.6;transform:translate(-8%)}50%{opacity:1;transform:translate(8%)}}.fx-sun-drift{position:absolute;top:10%;left:-18%;width:min(26vw,130px);height:min(26vw,130px);animation:fx-sun-drift 42s linear infinite}@keyframes fx-sun-drift{0%{transform:translate(0) translateY(0)}25%{transform:translate(35vw) translateY(-12px)}50%{transform:translate(70vw) translateY(6px)}75%{transform:translate(105vw) translateY(-8px)}to{transform:translate(130vw) translateY(0)}}.fx-sun-group{position:relative;width:100%;height:100%}.fx-sun-trail{position:absolute;top:50%;left:50%;width:calc(60px + var(--i) * 18px);height:calc(60px + var(--i) * 18px);margin:calc(-30px - var(--i) * 9px) 0 0 calc(-30px - var(--i) * 9px);border-radius:50%;background:radial-gradient(circle,rgba(255,220,100,calc(.22 - var(--i) * .025)) 0%,transparent 70%);animation:fx-sun-trail-pulse 3s ease-in-out infinite;animation-delay:calc(var(--i) * .15s)}@keyframes fx-sun-trail-pulse{0%,to{opacity:.5;transform:scale(.95)}50%{opacity:.85;transform:scale(1.05)}}.fx-sun-beam{position:absolute;top:-5%;left:calc(5% + var(--i) * 18%);width:10vw;height:110vh;background:linear-gradient(180deg,rgba(255,235,150,.2) 0%,rgba(255,210,90,.08) 40%,transparent 72%);transform:rotate(calc(-6deg + var(--i) * 3deg));opacity:.45;animation:fx-beam-shimmer 5s ease-in-out infinite;animation-delay:calc(var(--i) * .4s)}@keyframes fx-beam-shimmer{0%,to{opacity:.3}50%{opacity:.6}}.fx-sun-halo{position:absolute;top:-24px;right:-24px;bottom:-24px;left:-24px;border-radius:50%;background:radial-gradient(circle,rgba(255,210,70,.85) 0%,rgba(255,180,40,.35) 45%,transparent 72%);animation:fx-sun-pulse 3s ease-in-out infinite}@keyframes fx-sun-pulse{0%,to{transform:scale(1);opacity:.9}50%{transform:scale(1.15);opacity:1}}.fx-sun-core{position:absolute;top:50%;left:50%;width:56px;height:56px;margin:-28px 0 0 -28px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#fff9c4,#fde047 38%,#f59e0b);box-shadow:0 0 32px #fbbf24e6,0 0 64px #ffc83266}.fx-sun-rays{position:absolute;top:-10px;right:-10px;bottom:-10px;left:-10px;border-radius:50%;background:conic-gradient(from 0deg,transparent 0deg 7deg,rgba(255,230,110,.55) 7deg 17deg,transparent 17deg 27deg,rgba(255,230,110,.5) 27deg 37deg,transparent 37deg 47deg,rgba(255,230,110,.55) 47deg 57deg,transparent 57deg 67deg,rgba(255,230,110,.5) 67deg 77deg,transparent 77deg 87deg,rgba(255,230,110,.55) 87deg 97deg,transparent 97deg 107deg,rgba(255,230,110,.5) 107deg 117deg,transparent 117deg 127deg,rgba(255,230,110,.55) 127deg 137deg,transparent 137deg 360deg);animation:fx-rays-spin 14s linear infinite}@keyframes fx-rays-spin{to{transform:rotate(360deg)}}.weather-fx--cloudy .fx-sky-wash{background:linear-gradient(180deg,rgba(148,163,184,.32) 0%,rgba(203,213,225,.18) 45%,rgba(241,245,249,.08) 70%,transparent 100%)}.fx-cloud-group{position:absolute;top:calc(4% + var(--i) * 11%);left:calc(-35% + var(--i) * 12%);display:flex;align-items:flex-end;opacity:.75;animation:fx-cloud-drift 28s linear infinite;animation-delay:calc(var(--i) * -3.5s);filter:drop-shadow(0 6px 18px rgba(100,116,139,.15))}@keyframes fx-cloud-drift{0%{transform:translate(-20vw)}to{transform:translate(120vw)}}.fx-cloud-puff{display:block;background:linear-gradient(180deg,#f8fafcd9,#e2e8f0a6);border-radius:50%}.fx-cloud-puff--d{width:calc(36px + var(--i) * 4px);height:calc(22px + var(--i) * 2px);margin-right:-14px;margin-bottom:4px;z-index:0;opacity:.7}.fx-cloud-puff--a{width:calc(48px + var(--i) * 6px);height:calc(32px + var(--i) * 4px);margin-right:-18px;z-index:1}.fx-cloud-puff--b{width:calc(56px + var(--i) * 8px);height:calc(40px + var(--i) * 5px);margin-right:-22px;z-index:2}.fx-cloud-puff--c{width:calc(44px + var(--i) * 5px);height:calc(28px + var(--i) * 3px);z-index:3}.weather-fx--rain-drizzle .fx-sky-wash,.weather-fx--rain.weather-fx--rain-drizzle .fx-sky-wash{background:linear-gradient(180deg,#94a3b88c,#bacbdc61 45%,#cbd5e140 75%,#e2e8f01f)}.weather-fx--rain-moderate .fx-sky-wash{background:linear-gradient(180deg,#475569a6,#64748b7a 40%,#94a3b852,#bae6fd2e)}.weather-fx--rain-heavy .fx-sky-wash,.weather-fx--thunder .fx-sky-wash{background:linear-gradient(180deg,#334155c7,#4755699e 35%,#64748b73 65%,#94a3b847)}.weather-fx--thunder .fx-sky-wash{background:linear-gradient(180deg,#0f172ad9,#1e293bb8 40%,#3341558c,#47556961)}.fx-drizzle-mist{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(180deg,#cbd5e133,#bacbdc59 55%,#94a3b838)}.fx-drizzle-veil{position:absolute;top:0;right:0;bottom:0;left:0;background:repeating-linear-gradient(98deg,transparent 0,transparent 4px,rgba(203,213,225,.06) 4px,rgba(203,213,225,.06) 5px);opacity:.7;animation:fx-drizzle-veil-drift 12s linear infinite}@keyframes fx-drizzle-veil-drift{0%{transform:translateY(-2%)}to{transform:translateY(2%)}}.fx-drizzle-strand{position:absolute;top:-8vh;left:calc((var(--i) * .5%) + .1%);width:1px;height:calc(8px + (var(--i) % 5) * 4px);background:linear-gradient(180deg,transparent 0%,rgba(203,213,225,.35) 20%,rgba(186,203,220,.75) 100%);transform:rotate(8deg);opacity:calc(.35 + (var(--i) % 4) * .12);animation:fx-drizzle-fall 1.4s linear infinite;animation-delay:calc((var(--i) % 40) * .04s)}@keyframes fx-drizzle-fall{0%{transform:rotate(8deg) translateY(-5vh);opacity:.2}15%{opacity:.7}to{transform:rotate(8deg) translateY(110vh);opacity:.4}}.fx-rain-mist{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(180deg,#94a3b81f,#93c5fd47,#60a5fa33)}.weather-fx--thunder .fx-rain-mist{background:linear-gradient(180deg,#33415533,#64748b59,#94a3b840)}.fx-rain-sheet{position:absolute;top:0;right:0;bottom:0;left:0;background:repeating-linear-gradient(105deg,transparent 0,transparent 3px,rgba(147,197,253,.1) 3px,rgba(147,197,253,.1) 7px);opacity:.75;animation:fx-sheet-drift 5s linear infinite}@keyframes fx-sheet-drift{0%{transform:translateY(-4%)}to{transform:translateY(4%)}}.fx-rain-drop{position:absolute;top:-12vh;left:calc((var(--i) * 1.6%) + .5%);width:calc(6px + (var(--i) % 4) * 2px);height:calc(10px + (var(--i) % 5) * 4px);border-radius:50%/55% 55% 45% 45%;background:radial-gradient(ellipse 80% 60% at 50% 25%,#e0f2fef2,#60a5fae6 55%,#2563eb);box-shadow:0 0 6px #60a5fa80;animation:fx-drop-fall .85s cubic-bezier(.4,0,.8,.6) infinite;animation-delay:calc((var(--i) % 20) * .06s)}.fx-rain-drop:after{content:"";position:absolute;top:70%;left:50%;width:2px;height:calc(8px + (var(--i) % 3) * 4px);margin-left:-1px;background:linear-gradient(180deg,rgba(96,165,250,.7) 0%,transparent 100%);border-radius:0 0 2px 2px}.fx-rain-drop--moderate{animation-duration:.95s}.fx-rain-drop--heavy{width:calc(9px + (var(--i) % 3) * 3px);height:calc(14px + (var(--i) % 4) * 5px);animation-duration:.72s;box-shadow:0 0 8px #93c5fdb3,0 2px 4px #3b82f666}.weather-fx--thunder .fx-rain-drop{background:radial-gradient(ellipse 80% 60% at 50% 25%,#f8fafcfa,#bfdbfeeb,#94a3b8);box-shadow:0 0 10px #bfdbfecc;animation-duration:.65s}@keyframes fx-drop-fall{0%{transform:translateY(-8vh) scale(.85);opacity:.5}10%{opacity:1}85%{opacity:.95}to{transform:translateY(112vh) scale(1.05);opacity:.6}}.fx-thunder-dark{position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(ellipse 130% 100% at 50% 10%,#0f172a66,#0f172ac7 55%,#020617eb);animation:fx-dark-breathe 4s ease-in-out infinite}.fx-thunder-shadow{position:absolute;top:0;right:0;bottom:0;left:0;background:#0206178c;opacity:0;animation:fx-thunder-rumble 4.8s ease-in-out infinite}.fx-thunder-glow{position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(ellipse 90% 50% at 50% 0%,rgba(147,197,253,.15) 0%,transparent 60%);opacity:0;animation:fx-thunder-glow-pulse 4.8s ease-out infinite}@keyframes fx-dark-breathe{0%,to{opacity:.9}50%{opacity:1}}@keyframes fx-thunder-rumble{0%,72%,to{opacity:0}74%{opacity:.65}76%{opacity:.15}78%{opacity:.5}80%{opacity:0}}@keyframes fx-thunder-glow-pulse{0%,to{opacity:0}73%{opacity:.8}76%{opacity:.1}79%{opacity:.6}82%{opacity:0}}.fx-lightning{position:absolute;top:5%;width:min(20vw,96px);height:min(34vh,170px);opacity:0;filter:drop-shadow(0 0 28px rgba(253,224,71,1)) drop-shadow(0 0 56px rgba(250,204,21,.85));animation:fx-bolt-strike 4.8s ease-out infinite}.fx-lightning--a{left:20%;margin-left:-48px}.fx-lightning--b{left:72%;margin-left:-48px;animation-delay:2.1s;transform:scale(.9)}@keyframes fx-bolt-strike{0%,85%,to{opacity:0;transform:scale(.6) translateY(-20px)}2%{opacity:1;transform:scale(1.12) translateY(0)}5%{opacity:.2}8%{opacity:1;transform:scale(1) translateY(0)}11%{opacity:0}}.fx-flash{position:absolute;top:0;right:0;bottom:0;left:0;opacity:0;pointer-events:none}.fx-flash--a{background:radial-gradient(ellipse 110% 85% at 50% 15%,rgba(255,255,255,.95) 0%,rgba(255,255,255,.4) 30%,rgba(147,197,253,.15) 55%,transparent 78%);animation:fx-thunder-flash-a 4.8s ease-out infinite}.fx-flash--b{background:linear-gradient(180deg,rgba(255,255,255,.7) 0%,rgba(200,220,255,.25) 25%,transparent 50%);animation:fx-thunder-flash-b 4.8s ease-out infinite;animation-delay:2.1s}.fx-flash--c{background:radial-gradient(circle at 30% 20%,rgba(255,255,255,.6) 0%,transparent 40%);animation:fx-thunder-flash-c 6.5s ease-out infinite;animation-delay:1.3s}@keyframes fx-thunder-flash-a{0%,to{opacity:0}1.5%{opacity:1}3.5%{opacity:.08}7%{opacity:.8}9%{opacity:0}}@keyframes fx-thunder-flash-b{0%,to{opacity:0}2%{opacity:.85}4%{opacity:.05}7.5%{opacity:.65}10%{opacity:0}}@keyframes fx-thunder-flash-c{0%,to{opacity:0}4%{opacity:.55}6%{opacity:0}}
