I'm pretty proud of this and I'm still working on the end :)
Inspo for part of code for dots is @mallo222