The final mistake.
33... b7a8 With the f7-pawn firmly protected, Black has nothing to fear. It now becomes clear how good the move 29...Rf8 was. 34. h4f4  34... g7g8 Solid and accurate play. 35. c7a7  35... a1e1 