Thanks for playing! The camera zoom out was actually surprisingly easy to implement. I essentially just took the camera out of my 'player' node and attached a script to it. I then set a variable called target position in the camera to the players position and in the process function slowly moved it to match that target position. Once the player collided with an area2d I setup in the centre of the puzzles the cameras target position would zoom out to match the zoom and position I manually set. Finally once the player moved out of that area2d I set the target position back to the player!