That's a tough platformer! I liked how you could change your movement direction while facing the same way with the arrow keys, and that using momentum and variable jump height are required later on. I think with this style of platforming, it's incredibly beneficial to buffer inputs and use coyote time/delayed jumps. Even though it's meant to be frustrating, dying 30 times due to jumping on the wrong frame doesn't feel too good. Nice work!