Broken.js 364 Bytes
osc(() => 0.2 + 20 * Math.sin(time / 100), 0.1, 0.8)
  .color(1.04,0, -1.1)
  .rotate(0.30, 0.2)
  .pixelate(2, 20)
  .modulate(noise(2.5), () => 1.5 * Math.sin(0.08 * time))
  .out(o0)

s0.initCam(1)

src(s0)
  .pixelate(256)
  .scale(() => 0.72 + Math.cos(time / 10))
  .modulateRotate(voronoi(10))
  .out(o1)

src(o1)
  .blend(o0, 0.23)
  .out(o2)


render(o2)