/* Bounded decorative layers; forecast controls stay above them. */
.ws-scene-host{position:relative;overflow:hidden;isolation:isolate}
.ws-scene-host> :not(.ws-scene):not(.ws-scene-credit){position:relative;z-index:1}
.ws-scene{position:absolute!important;inset:0;z-index:0;pointer-events:none;overflow:hidden}
.ws-scene-photo{position:absolute!important;width:100%!important;height:100%!important;inset:0;object-fit:cover;opacity:.34}
.ws-scene-night .ws-scene-photo{filter:brightness(.6) saturate(.7)}
.ws-scene-effect{position:absolute;inset:0;opacity:.3}
.ws-scene-effect i{display:none;position:absolute;top:-15%;animation:ws-fall 1s linear infinite}
.ws-scene-rain i,.ws-scene-storm i,.ws-scene-sleet i{display:block;width:1px;height:28px;background:linear-gradient(transparent,#94cfff)}
.ws-scene-snow i,.ws-scene-sleet i:nth-child(even){display:block;width:5px;height:5px;border-radius:50%;background:#bcdfff}
.ws-scene-cloud .ws-scene-effect,.ws-scene-fog .ws-scene-effect{inset:-20%;background:radial-gradient(ellipse at 30% 30%,#a7c2dd 0,transparent 55%),radial-gradient(ellipse at 80% 65%,#95b2c9,transparent 50%);animation:ws-cloud 18s ease-in-out infinite alternate}
.ws-scene-clear .ws-scene-effect{background:radial-gradient(circle at 85% 15%,#f5c752,transparent 45%);animation:ws-glow 8s ease-in-out infinite alternate}
.ws-scene-clear.ws-scene-night .ws-scene-effect{background:radial-gradient(circle at 85% 15%,#a5c5ef,transparent 32%)}
.ws-scene-storm .ws-scene-effect{background:linear-gradient(140deg,#17374a55,transparent)}
.ws-scene-credit{position:absolute;right:8px;bottom:3px;z-index:2;font:9px sans-serif;opacity:.7;color:inherit}
@keyframes ws-fall{to{transform:translate(-35px,550px)}}
@keyframes ws-cloud{to{transform:translateX(8%)}}
@keyframes ws-glow{to{opacity:.12}}
@media(prefers-reduced-motion:reduce){.ws-scene *{animation:none!important}.ws-scene-effect i{display:none}}
@media print{.ws-scene,.ws-scene-credit{display:none}}
html.ws-scene-paused .ws-scene *{animation-play-state:paused!important}

.ws-scene-effect i:nth-child(1){left:0%;animation-delay:-0.00s;animation-duration:0.70s}
.ws-scene-effect i:nth-child(2){left:37%;animation-delay:-0.37s;animation-duration:0.84s}
.ws-scene-effect i:nth-child(3){left:74%;animation-delay:-0.74s;animation-duration:0.98s}
.ws-scene-effect i:nth-child(4){left:11%;animation-delay:-1.11s;animation-duration:1.12s}
.ws-scene-effect i:nth-child(5){left:48%;animation-delay:-1.48s;animation-duration:1.26s}
.ws-scene-effect i:nth-child(6){left:85%;animation-delay:-1.85s;animation-duration:0.70s}
.ws-scene-effect i:nth-child(7){left:22%;animation-delay:-2.22s;animation-duration:0.84s}
.ws-scene-effect i:nth-child(8){left:59%;animation-delay:-2.59s;animation-duration:0.98s}
.ws-scene-effect i:nth-child(9){left:96%;animation-delay:-2.96s;animation-duration:1.12s}
.ws-scene-effect i:nth-child(10){left:33%;animation-delay:-3.33s;animation-duration:1.26s}
.ws-scene-effect i:nth-child(11){left:70%;animation-delay:-3.70s;animation-duration:0.70s}
.ws-scene-effect i:nth-child(12){left:7%;animation-delay:-4.07s;animation-duration:0.84s}
.ws-scene-effect i:nth-child(13){left:44%;animation-delay:-4.44s;animation-duration:0.98s}
.ws-scene-effect i:nth-child(14){left:81%;animation-delay:-4.81s;animation-duration:1.12s}
.ws-scene-effect i:nth-child(15){left:18%;animation-delay:-5.18s;animation-duration:1.26s}
.ws-scene-effect i:nth-child(16){left:55%;animation-delay:-5.55s;animation-duration:0.70s}
.ws-scene-effect i:nth-child(17){left:92%;animation-delay:-5.92s;animation-duration:0.84s}
.ws-scene-effect i:nth-child(18){left:29%;animation-delay:-6.29s;animation-duration:0.98s}
.ws-scene-effect i:nth-child(19){left:66%;animation-delay:-6.66s;animation-duration:1.12s}
.ws-scene-effect i:nth-child(20){left:3%;animation-delay:-7.03s;animation-duration:1.26s}
.ws-scene-effect i:nth-child(21){left:40%;animation-delay:-7.40s;animation-duration:0.70s}
.ws-scene-effect i:nth-child(22){left:77%;animation-delay:-7.77s;animation-duration:0.84s}
.ws-scene-effect i:nth-child(23){left:14%;animation-delay:-8.14s;animation-duration:0.98s}
.ws-scene-effect i:nth-child(24){left:51%;animation-delay:-8.51s;animation-duration:1.12s}

.ws-scene-snow i,.ws-scene-sleet i:nth-child(even){animation-duration:6s}

/* Sky light fades before the landscape: no guessed skyline mask or city replacement. */
.ws-scene-sky{position:absolute;inset:0;background:linear-gradient(#5bb7ef55,transparent 75%);overflow:hidden}
.ws-scene-night .ws-scene-sky{background:linear-gradient(#06173599,#16385b33,transparent 80%)}
.ws-scene-dawn .ws-scene-sky{background:linear-gradient(#6176b955,#fbb88c55,transparent 80%)}
.ws-scene-dusk .ws-scene-sky{background:linear-gradient(#5b528c77,#ef985855,transparent 80%)}
.ws-scene-orb{position:absolute;right:15%;top:12%;width:26px;height:26px;border-radius:50%;background:#ffe7a6;box-shadow:0 0 35px 13px #ffd66b55;animation:ws-glow 8s ease-in-out infinite alternate;opacity:.55}
.ws-scene-night .ws-scene-orb{width:18px;height:18px;background:#dae7ff;box-shadow:0 0 25px #b0ccff55}
.ws-scene-dawn .ws-scene-orb,.ws-scene-dusk .ws-scene-orb{top:52%;opacity:.35}
.ws-scene-clouds{position:absolute;inset:-20%;background:radial-gradient(ellipse at 25% 25%,#c0d6e844,transparent 25%),radial-gradient(ellipse at 75% 35%,#d9e4ee55,transparent 30%);animation:ws-cloud 24s ease-in-out infinite alternate}
.ws-scene-clear .ws-scene-clouds{opacity:.2}
.ws-scene-rain .ws-scene-orb,.ws-scene-storm .ws-scene-orb,.ws-scene-snow .ws-scene-orb,.ws-scene-fog .ws-scene-orb{display:none}
.ws-scene-rain .ws-scene-sky,.ws-scene-storm .ws-scene-sky{background:linear-gradient(#263e5b77,transparent 80%)}
.ws-scene-night.ws-scene-clear .ws-scene-sky{background-image:radial-gradient(circle at 15% 15%,#fff8 0 1px,transparent 2px),radial-gradient(circle at 38% 28%,#fff8 0 1px,transparent 2px),radial-gradient(circle at 65% 12%,#fff8 0 1px,transparent 2px),linear-gradient(#06173599,#16385b33,transparent 80%)}
.ws-scene-none .ws-scene-sky{display:none}

.ws-scene-host{padding-bottom:22px!important}.ws-scene-credit{font-size:9px;right:10px;left:auto;bottom:6px;max-width:calc(100% - 20px);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-align:right;padding:0;background:none;border:0;border-radius:0;color:#fff;text-shadow:0 1px 3px #000;opacity:.9}
