A full realized puzzle mechanic is a pretty impressive thing to bang out in 3 hours. I also really like the level of polish; unobtrusive audio, clean visuals and even a really nice fill effect upon completion of the level. Great work.
I spent quite a bit of time planning before I started coding to make sure I had the game logic sorted :) The fill effect was the only thing I didn't plan and it longer than I expected.