Thanks for the super detailed comment!
I gave myself only one day for all the programming, so some decisions were made a little too quickly. Especially the movement was "wait how does Unity's physics work? oh like this? ok done", and then I got used to it so ignored that issue even more.
The "merging/splitting" idea is pretty great. I did think about using ijkl as a "move both" control, but forgot about that.
I tried to go with a distinct feel for each of the characters; wanted Reimu to be managable but direct, wanted Marisa's stages to be about careful movement and misdirection, and wanted Aya to punish my up until then usual tactic of keeping the fairies close together. Perhaps I went a little overboard with some of these...
For signs (and a pause menu which I didn't get to) I actually wanted to freeze the game but my code was so spaghetti at that point (it was also late) that I just did what you see in the final product here. Not really happy with it (As if anyone can even read the sign before Level 9's finish..), and completely agree with that point.
I'm a person that always has his volume at 2% to have game volume at max, the day after I described the jam to a friend one of his first responses was "Are people going to be deaf when opening your game?", oops. Need to remember to have that slider down low next time because quite some people are the opposite. Also a SFX slider.
This was my first jam, so I didn't really know how to balance the workload at all, next time I know what to focus on more and what is less important. Great learning experience this was, so thanks for hosting!
And yes, all programming, audio, and visuals were done by me.