Не сильно долго думая:
1. Рендерим чем-то типа
https://github.com/niklasvh/html2canvas.
2. Выводим картинку в верхнем слое.
3. Снизу мгновенно меняем тему (через body.light).
4. При помощи mask-image делаем для картинки из п. 2 линейный градиент с несколькими частично пересекающимися кругами (как в макете). Изначально значения альфа-канала во всех опорных точках должно быть 1.0
5. Запускаем transition к таким значениям альфа-канала, чтобы был эффект распространения прозрачности по кругам от центра наружу. Круги при анимации начинают пересекаться, что даёт искомый эффект интерференции.
6. Чтобы transition сработал с градиентной заливкой, нужно задать градиент кастомными свойствами, а переход делать для них, как показано тут:
https://stackoverflow.com/a/63848864/14400772