Attach a linear-gradient tail to a point, tilt it roughly 45 degrees, and move it from off-screen top to off-screen bottom — that's one meteor. To read as natural rather than mechanical, run several at once with randomised starting position, delay, and speed; identical timing on all of them makes the pattern obvious immediately.
Appending new DOM elements forever accumulates and slows down, so reuse a fixed number of elements (say 8). When a meteor exits the viewport, JS just re-rolls its starting position and delay and restarts the animation on the same element.
Sparkles twinkle in place; meteors trace a path across the screen — that's the distinction. Combine the two for a night-sky background.
When to use
Use as a hero background, a 404 page, or decoration on a dark-theme landing. Too many at once gets distracting — keep 2–3 visible simultaneously.