Nice core concept for a puzzle game, needing to think about using your resources in the most sensible way to carry more to the following room. There’s a solid atmosphere and mystery about the game and I enjoy learning how the mechanics work through experimentation rather than explanation. The undo button is also a welcome tool to correct misclicks.
The addition of out of bounds tricks was a cool moment, but after a while it started to just feel too floaty as a result. I got the black key ending, then restarted and played up to the grey key door followed by the blue door, but I only have a red key. I’m guessing there was a point earlier where I should have used the red key to retain the blue key for this moment, but I don’t really want to reset the game or tap undo 200+ times to try it, so I’ll call it there.
I think one approach to tighten up the gameplay would be to ensure rooms are independent. I’d suggest playing “Bean and Nothingness” for a good example of how to weave together independent rooms into a larger exploration & narrative. Your game has a somewhat similar energy so I think it might be a good inspiration for you.
Of course, this approach negates the meta-puzzle of needing to solve earlier puzzles in such a way that sets you up to solve later puzzles, but if that's important to you then an alternative solution would be to replace the fast travel with time travel, where the player can go back to change how they solved a previous puzzle to bring different resources into the future. It might not be possible to make that work without breaking things, but I just think asking the player to replay large sections in response to hitting a wall they couldn’t have predicted is too much to ask.