/* 全场景天气层：只使用 CSS 动画，不遮挡游戏交互。 */
.weather-layer{position:absolute;z-index:1;inset:0;overflow:hidden;pointer-events:none;transition:background-color 1.2s ease,filter 1.2s ease,opacity 1.2s ease}
.screen-shade{z-index:2}.calendar-badge,.screen-content,.game-footer{z-index:3}.hud{z-index:12}.back-home{z-index:14;pointer-events:auto}
.weather-cloud,.weather-sun,.weather-fall,.weather-mist,.weather-lightning{position:absolute;display:block;opacity:0;pointer-events:none}
.weather-sun{right:9%;top:12%;width:70px;height:70px;border-radius:50%;background:radial-gradient(circle,#fff8b8 0 24%,#ffd95c 42%,rgba(255,218,92,0) 70%);filter:drop-shadow(0 0 13px #ffe78a);animation:weatherSun 7s ease-in-out infinite}
.weather-cloud{width:155px;height:42px;border-radius:45%;background:rgba(240,247,239,.86);filter:drop-shadow(0 8px 5px rgba(39,54,54,.18));animation:weatherCloud 19s linear infinite}
.weather-cloud::before,.weather-cloud::after{content:"";position:absolute;border-radius:50%;background:inherit}.weather-cloud::before{left:23px;top:-25px;width:63px;height:58px}.weather-cloud::after{right:19px;top:-15px;width:54px;height:48px}
.cloud-a{left:-45%;top:10%}.cloud-b{left:-70%;top:21%;transform:scale(.72);animation-delay:-10s;animation-duration:27s}
.weather-fall{inset:-70px -35px;overflow:hidden;background-size:34px 34px;animation:weatherFall .72s linear infinite}
.weather-fall::before,.weather-fall::after{content:"";position:absolute;display:none;left:4%;top:-18%;width:2px;height:22px;border-radius:50%;background:linear-gradient(180deg,rgba(235,249,255,0),rgba(224,246,255,.82));transform:rotate(10deg);box-shadow:38px 92px rgba(224,246,255,.62),91px 31px rgba(224,246,255,.78),143px 154px rgba(224,246,255,.50),202px 66px rgba(224,246,255,.70),259px 126px rgba(224,246,255,.55),318px 18px rgba(224,246,255,.76),374px 178px rgba(224,246,255,.52),431px 82px rgba(224,246,255,.70),18px 236px rgba(224,246,255,.55),75px 315px rgba(224,246,255,.72),128px 252px rgba(224,246,255,.48),184px 366px rgba(224,246,255,.68),244px 278px rgba(224,246,255,.58),301px 346px rgba(224,246,255,.74),357px 258px rgba(224,246,255,.50),416px 391px rgba(224,246,255,.65),42px 458px rgba(224,246,255,.70),104px 536px rgba(224,246,255,.50),164px 445px rgba(224,246,255,.74),223px 572px rgba(224,246,255,.56),281px 482px rgba(224,246,255,.68),344px 552px rgba(224,246,255,.48),402px 466px rgba(224,246,255,.72),457px 604px rgba(224,246,255,.54),26px 682px rgba(224,246,255,.50),88px 756px rgba(224,246,255,.70),151px 648px rgba(224,246,255,.58),211px 785px rgba(224,246,255,.74),268px 698px rgba(224,246,255,.48),329px 768px rgba(224,246,255,.66),391px 664px rgba(224,246,255,.55),446px 812px rgba(224,246,255,.70);animation:rainDrops 1.15s linear infinite}
.weather-fall::after{left:12%;top:-45%;width:1px;height:15px;opacity:.55;filter:blur(.25px);transform:rotate(8deg) scale(.82);animation-duration:1.62s;animation-delay:-.73s}
.weather-mist{left:-45%;width:165%;height:92px;border-radius:50%;background:radial-gradient(ellipse,rgba(242,248,238,.64),rgba(235,244,238,.08) 70%);filter:blur(7px);animation:weatherMist 13s ease-in-out infinite}
.mist-a{top:30%}.mist-b{top:55%;animation-delay:-6s;animation-duration:17s}
.weather-lightning{inset:0;background:rgba(236,246,255,.84);mix-blend-mode:screen;animation:weatherLightning 7s steps(1,end) infinite}
.weather-sunny .weather-sun{opacity:.82}.weather-sunny .weather-layer{background:linear-gradient(180deg,rgba(255,230,135,.10),transparent 42%)}
.weather-cloudy .weather-cloud{opacity:.82}.weather-cloudy .weather-layer{background:rgba(56,76,74,.17);filter:saturate(.82)}
.weather-rain .weather-cloud,.weather-storm .weather-cloud{opacity:.88;background:rgba(117,139,143,.9)}
.weather-rain .weather-fall{opacity:.82;background-image:none;animation:none}.weather-rain .weather-fall::before,.weather-rain .weather-fall::after{display:block}
.weather-rain .weather-layer{background:rgba(34,64,70,.15);filter:saturate(.82) brightness(.96)}
.weather-storm .weather-fall{opacity:.96;background-image:none;animation:none}.weather-storm .weather-fall::before,.weather-storm .weather-fall::after{display:block;animation-duration:.74s}.weather-storm .weather-fall::after{animation-duration:1.05s}
.weather-storm .weather-lightning{opacity:1}.weather-storm .weather-layer{background:rgba(22,39,55,.38);filter:saturate(.64) brightness(.79)}
.weather-fog .weather-mist{opacity:.9}.weather-fog .weather-layer{background:rgba(224,235,224,.25);filter:saturate(.68) contrast(.92)}
.weather-snow .weather-cloud{opacity:.62}.weather-snow .weather-fall{opacity:.92;background-image:radial-gradient(circle,#fff 0 2px,transparent 2.7px),radial-gradient(circle,#e9f6ff 0 1.5px,transparent 2.2px);background-position:0 0,16px 12px;animation-name:weatherSnow;animation-duration:5.5s}.weather-snow .weather-layer{background:rgba(219,235,242,.25);filter:saturate(.72) brightness(1.04)}
@keyframes weatherSun{50%{transform:scale(1.08);filter:drop-shadow(0 0 21px #ffe78a)}}
@keyframes weatherCloud{to{transform:translateX(175vw)}}
@keyframes weatherFall{to{background-position:-28px 55px}}
@keyframes rainDrops{from{translate:0 -110px}to{translate:-85px 950px}}
@keyframes weatherSnow{to{background-position:44px 150px,5px 125px}}
@keyframes weatherMist{50%{transform:translateX(17%) scaleY(1.12)}}
@keyframes weatherLightning{0%,8%,10%,12%,100%{background:transparent}9%,11%{background:rgba(236,246,255,.84)}}
@media(prefers-reduced-motion:reduce){.weather-layer *{animation-duration:0.001ms!important;animation-iteration-count:1!important}}
