Fog! Which can be configured on a per-level basis with a few parameters like density, cloud height and movement speed. Initially it was just sprites placed all over the level but that made big levels slow down as they had tons of fog sprites. Now they're generated in a box around the camera (with a certain amount of padding), and when they go off camera they spawn again at the opposite side. This is nice because there is a constant number of cloud sprites (and thus overhead) regardless of the level size.
"groundFog.weather"
"1000" cloudHeight="0" minSpeed="0.3" maxSpeed="0.8" colourGrid="lightClouds.colourgrid" />
Theres also a colour grid used to pick up the colours - all the clouds are solid white here, but setting them up to be varying alpha and colours is easy to do. Trying to find the people to rescue gets very tricky when the fog is this dense!