Simple but really challenging, I honestly spent a lot more time on this than I planned to lol - great work!