I've styled the form and hidden some fields.
Well there (most likely) is your problem :-) Those fields are probably required by MailChimp, but because you are hiding them with display:none
they aren't submitting.
Check out this Stack Overflow question for how you can hide the fields without losing them when you submit: