How to smoothly change scene background color

Define black as the default background color like so:

scene.background = new THREE.Color(0x000000);

In your scroll even listener, do this instead of directly setting the color to red:

 gsap.to(scene.background, {
      duration: 2,
      r: 1,
      g: 0,
      b: 0
    });