Thank you, I'm glad you liked it! For the collisions, I use polygon colliders on the shadows and update their shape each frame when the light moves. Since I use only one light source in each level, the algorithm to create the colliders isn't too complex. It uses an algorithm similar to the wall tracking method here but for shadows instead of visibility.