.uv-storm-rain{position:fixed;inset:0;z-index:80;pointer-events:none;opacity:.48}
.uv-storm-flash{position:fixed;inset:0;z-index:81;pointer-events:none;background:radial-gradient(ellipse at 8% 5%,rgba(250,250,255,.30),rgba(173,120,255,.09) 40%,transparent 72%),radial-gradient(ellipse at 92% 5%,rgba(250,250,255,.30),rgba(173,120,255,.09) 40%,transparent 72%);opacity:0;transition:opacity 85ms ease-in-out;will-change:opacity}
.uv-storm-strokes{position:fixed;inset:0;width:100vw;height:100vh;z-index:82;pointer-events:none;opacity:0;transition:opacity 65ms ease-out;filter:drop-shadow(0 0 7px rgba(187,116,255,.40)) drop-shadow(0 0 2px rgba(255,255,255,.25))}
.uv-storm-control{position:fixed;left:12px;bottom:12px;z-index:90;background:rgba(21,12,37,.83);color:#e4d6fa;border:1px solid #6a4c87;border-radius:24px;padding:7px 11px;font:12px system-ui;cursor:pointer;backdrop-filter:blur(12px)}
@media(prefers-reduced-motion:reduce){.uv-storm-rain,.uv-storm-flash,.uv-storm-strokes{display:none!important}}

/* V8.7: slow purple storm-cloud banks; rendered behind interactive content. */
.uv-storm-clouds{position:fixed;inset:0;z-index:0;pointer-events:none;overflow:hidden;opacity:.48;transition:opacity .3s ease}
.uv-storm-clouds::before,.uv-storm-clouds::after{content:"";position:absolute;left:-18%;width:136%;height:clamp(170px,34vh,420px);background-image:url('/assets/storm-clouds.webp');background-repeat:repeat-x;background-size:auto 100%;filter:blur(9px) saturate(.78);opacity:.56;animation:uvCloudDrift 78s linear infinite}
.uv-storm-clouds::before{top:-50px}.uv-storm-clouds::after{top:43%;transform:scaleX(-1);opacity:.23;animation-duration:110s;animation-direction:reverse}
@keyframes uvCloudDrift{0%{background-position-x:0}100%{background-position-x:1500px}}
body>header,body>main,body>footer,body>.header,body>.section{position:relative;z-index:1}
/* Keep the cloud layer behind all page content; maintain original lightning and rain. */
.uv-storm-clouds{isolation:isolate}
@media(prefers-reduced-motion:reduce){.uv-storm-clouds::before,.uv-storm-clouds::after{animation:none}}
