.island-rain{position:absolute;inset:0;width:100%;height:100%;z-index:5;pointer-events:none;image-rendering:pixelated}
.island-weather-badge{position:absolute;left:12px;top:50%;display:flex;align-items:center;gap:6px;padding:6px 9px;border:1px solid #8bc8ed80;border-radius:6px;background:#071a30d9;color:#c8ebff;font:700 12px/1.3 Arial,sans-serif;pointer-events:none;z-index:10}
.island-weather-badge svg{width:24px;height:24px;flex-shrink:0}
.weather-announcement{position:absolute;inset:0;z-index:60;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:20px;text-align:center;background:radial-gradient(ellipse,#0b2746e8,#020c1ec7);color:#e2f6ff;pointer-events:none;animation:weather-arrive .4s ease-out}
.weather-announcement svg{width:clamp(60px,10vw,130px);height:clamp(60px,10vw,130px);color:#96ddff}
.weather-announcement strong{font:900 clamp(24px,4.5vw,64px)/1.25 var(--pixel);text-shadow:0 3px 0 #071025,0 0 20px #74bcff88}
.weather-announcement>span{font:800 clamp(14px,2vw,24px)/1.4 Arial,sans-serif;color:#aee6ff}
@keyframes weather-arrive{from{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}
@media(max-width:700px){.island-weather-badge{left:6px;padding:4px 6px;font-size:10px;gap:4px}.island-weather-badge svg{width:18px;height:18px}}
@media(prefers-reduced-motion:reduce){.weather-announcement{animation:none}}

.island-rain[hidden],.island-weather-badge[hidden]{display:none!important}

/* A dedicated row keeps weather information out of the sprite and HUD area. */
.weather-stage{display:flex;flex-direction:column;min-width:0;min-height:0;height:100%;overflow:hidden}
.weather-stage>.arena{flex:1 1 0;min-height:0!important;width:100%;height:auto!important}
.field-weather-badge{position:static;flex:0 0 auto;width:100%;box-sizing:border-box;padding:7px 12px;border:0;border-bottom:1px solid #b3dfff55;background:#10192e;color:#e8f7ff;font:600 14px/1.4 Arial,sans-serif;text-align:center;pointer-events:none}
.field-weather-badge[hidden]{display:none!important}
.field-weather-badge[data-weather=sun]{border-color:#ffca58;color:#ffe1a0}.field-weather-badge[data-weather=snow]{border-color:#bcefff;color:#d6f8ff}.field-weather-badge[data-weather=sand]{border-color:#d8aa74;color:#f7d4a7}
@media(max-width:600px){.field-weather-badge{font-size:13px;padding:5px 8px}}
