Write a complete Python script using ONLY the Pillow library (PIL), math,
and random. The script must render an animated GIF of [YOUR SCENE IN ONE
SENTENCE] and save it as out.gif in the current directory. Output ONLY
the code in one ```python block — no explanation.

HARD SPEC:
- Canvas [W]x[H]. Exactly [N] frames, duration=[MS] ms each, loop=0
  (loops forever), save_all=True.
- random.seed(42) at the top. No external assets, no text/fonts.
- Layout (pin the constants the checker will measure):
  [MAIN SUBJECT: center x=..., width=..., height=...]
  [FIXED SET PIECES: positions, sizes]
  [GROUND / HORIZON line: y=...]
- Timeline (frame i of N): [BEAT 1 — what happens, by which frame]
  [BEAT 2] [THE PAYOFF MOMENT — the frame range where it must be true]
  [HOLD — the ending settles; it does not cut or keep jittering]
- Scene richness (this is the point — make it impressive):
  * [BACKGROUND: gradient/layers/details — a void is a failure]
  * [SUBJECT DETAIL: shading, parts, texture]
  * [EFFECTS: particles, glow, motion cues]
  * [LIGHT: what lights what, when]
- Draw order: [background → set → subject → effects → foreground].
- Structure the code with helper functions, one per element. Precompute
  particles once with the seed. Use ImageDraw plus polygon/ellipse math;
  ImageFilter.GaussianBlur on separate overlay layers for glows.
- It must run start-to-finish with `python3 render.py` in under 3
  minutes on a laptop CPU.
