It doesn’t 100% work, mostly because of the clash in different tones. The Mark Ruffalo character is probably too on the nose for its own good.
But Robert Pattinson is excellent and the movie is a lot of fun. I don’t really know what it’s trying to say but that didn’t affect my enjoyment