/* Final natural weather system, approved 2026-11-13. */
.coastal-weather .weather-window .coastal-landscape,.coastal-weather .weather-window .solbawi-liquid{filter:none!important}
.coastal-weather .weather-window[data-period=night] .coastal-landscape,.coastal-weather .weather-window[data-period=night] .solbawi-liquid,.coastal-weather .weather-window[data-period=night] .coastal-spring-trees{filter:brightness(.38) saturate(.72) hue-rotate(7deg)!important}
.coastal-spring-trees{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.weather-window:is([data-sky=rain],[data-sky=overcast],[data-sky=wind]) .coastal-spring-trees{filter:brightness(.78) saturate(.75)}
.weather-window[data-sky=typhoon] .coastal-spring-trees{filter:brightness(.55) saturate(.6)}
.coastal-weather .coastal-atmosphere{display:none!important}
.coastal-weather .window-rain,.new-sky .window-rain{opacity:.8!important}
.coastal-weather .window-snow,.new-sky .window-snow{opacity:1!important}
.coastal-weather .window-rain i{width:2px!important}
.coastal-weather .window-rain i::before{background:linear-gradient(transparent,#edf8ff 40%,#fff);border-radius:2px}
.coastal-weather .window-snow svg{stroke-width:2;filter:drop-shadow(0 1px 1px #365a78aa)}
.coastal-weather .weather-window[data-sky=typhoon] .window-rain{display:block;--pace:.72}
.coastal-weather .weather-window[data-sky=typhoon] .window-rain i{width:2.4px!important}
.solbawi-sea{--wave-rise:9.6px;--wave-travel:14.4px;--foam-opacity:.42;--foam-width:3.6px}
.solbawi-sea[data-sea-state=rough]{--wave-rise:26.4px;--wave-travel:39.6px;--foam-opacity:.78;--foam-width:7.2px}
.solbawi-sea[data-sea-state=snowy]{--wave-rise:9.6px;--wave-travel:14.4px;--foam-opacity:.58;--foam-width:4.5px}
.solbawi-sea[data-sea-state=wind]{--wave-rise:40px;--wave-travel:60px;--foam-opacity:.86;--foam-width:8px}
.solbawi-sea[data-sea-state=typhoon]{--wave-rise:65px;--wave-travel:95px;--foam-opacity:1;--foam-width:12px}
.solbawi-sea:is([data-sea-state=wind],[data-sea-state=typhoon]) .solbawi-swell{stroke-width:32;opacity:.34}
.weather-window .solbawi-liquid{display:block!important;opacity:.87}
.weather-window .solbawi-crest{animation-duration:calc(var(--wave-seconds)*var(--crest-speed))!important}
.weather-window .solbawi-foam,.weather-window .solbawi-glint{opacity:var(--foam-opacity)!important}
.weather-window .window-rain,.weather-window .window-snow{--pace:1}
.weather-hand-prop{animation:weather-hand-hover 3.2s ease-in-out infinite;transform-origin:65px 143px}
@keyframes weather-hand-hover{0%,100%{transform:translateY(0)}50%{transform:translateY(-4px)}}
.porcelain-temperature .porcelain-digits{gap:0}
.porcelain-temperature .porcelain-glyph+.porcelain-glyph{margin-left:-1px}
.porcelain-temperature .porcelain-unit{margin-left:-3px!important}
.porcelain-color-defs{position:absolute;pointer-events:none}
.porcelain-temperature:is([data-tone=cold],[data-tone=hot]) .porcelain-digits{filter:var(--porcelain-color-filter) drop-shadow(.5px 1px .65px #32465665)}
.sculpted-clock-readout .sculpted-led-mask.is-on,.sculpted-clock-readout .sculpted-colon-light{opacity:1;fill:#f5fbff;filter:drop-shadow(0 0 5px #f5fbffff) drop-shadow(0 0 14px #d5edffb3)}
.sculpted-clock-readout .sculpted-led-mask.is-off{opacity:1}
.coastal-workspace.shelf-window-widget .sculpted-colon-mask,.sculpted-clock-readout .sculpted-colon-mask{animation:none!important;opacity:1}
.sculpted-clock-readout .sculpted-colon-light{animation:sculpted-bulb-tick 1s steps(1,end) infinite}
@keyframes sculpted-bulb-tick{0%,49.99%{opacity:1}50%,100%{opacity:0}}

/* Foam remains a thin highlight over the textured water, not a drawn band. */
.weather-window[data-sky="wind"] .solbawi-foam{stroke-width:4.8;opacity:.5}
.weather-window[data-sky="typhoon"] .solbawi-foam{stroke-width:6;opacity:.55}

/* Storms use only broad vertical swells in the textured water. */
.solbawi-sea:is([data-sea-state=wind],[data-sea-state=typhoon]) .solbawi-crest{display:none!important;animation:none!important}

/* Readable moderate surf on clear days, with short broken foam highlights. */
.weather-window:is([data-sky=sunny],[data-sky=heat]) .solbawi-sea{--wave-rise:20px;--wave-travel:25px;--foam-opacity:.68;--foam-width:5.5px}
.weather-window:is([data-sky=sunny],[data-sky=heat]) .solbawi-foam{stroke-dasharray:80 8 26 14}
.weather-window:is([data-sky=sunny],[data-sky=heat]) .solbawi-swell{stroke-width:17;opacity:.27}
.weather-window:is([data-sky=sunny],[data-sky=heat]) .solbawi-liquid{opacity:.95}

/* Every weather state has independently rising textured water at three depths. */
.solbawi-water-surge{transform-box:view-box;transform-origin:0 0;animation:solbawi-water-lift var(--surge-seconds) ease-in-out infinite!important;animation-delay:var(--surge-phase)!important;will-change:transform}
.weather-window .solbawi-water-surge .solbawi-liquid{display:block!important;opacity:1!important}
@keyframes solbawi-water-lift{0%,100%{transform:translateY(0)}30%{transform:translateY(calc(var(--surge-rise)*-1))}70%{transform:translateY(calc(var(--surge-rise)*.32))}}
.effects-paused .solbawi-water-surge{animation-play-state:paused!important}

.effects-paused .weather-window .solbawi-water-surge .solbawi-liquid{display:none!important}
