I don't like 8 ... Bxf4 much as it opens the g-file for White. Even worse was 14. ... Nxh2. With the queens and both sets of rooks still on the board, opening up the h-file like this was suicide.
11.Rhf1 was a case of the "wrong rook". The rook on d1 isn't doing anything useful. It isn't needed to defend White's d-pawn and it seems unlikely that the d or e files will open up anytime soon, whereas it is clear that having a rook on the g or h files could well aid White's attack. Hence Rdf1 was better.
I can't help thinking there must have been a way for White to win a piece for a pawn or two on move 16. Maybe 16.Bh3? However White is clearly better by now and maybe should avoid complications.
20. ... fxg4 would have put up more of a fight. Black would play g6 at some stage and hope that the h-file is bolstered up enough.
White almost blows it on moves 25 to 27, he should be attacking! Often when you move pawns in front of your castled king, they become easy targets for your opponents pawns. If you leave them where they are then very often you can move past your opponent's pawns as they advance and you use their pawns as a shield as well as your own.
31. ... axb3 was Black's last chance. E.g. 31. ... axb3 32.Qxb3 Qa7! and Black is threatening to pin White's queen, as well as nasties down the a-file.
Edit: Actually Black may have missed a chance to win a few moves later - 32 ... a3+ was dreadful! Rooks and queens love open and half-open files - 32 ... axb3 was much better. E.g. 32. ... axb3 33.cxb3 (what else?) Rfb8! and White is up to his arse in alligators.