wwall: 21...g6 looks dubious. Perhaps 21...b6 22.Bc4 h6.
After 23.Ng5, Kh8? looks like the losing move. Perhaps 23...h5 since 24.Bxe6 (24.Rhd4) dxe6 holds for Black.
25.Nxh7! now wins for White.
If 29...Kh5?? (29...Kg7 30.Qc7+ wins the rook) 30.f4 and White threatens 31.Qg5 mate
If 30...Kh5?? 31.f4 and 32.h4, or 31.h4 and 32.f4 mates.
Instead of 32.Qe7+, White also had 32.Qd8, threatening 33.Qc7, winning the rook. 32.Qd8 Kg6 or 32...Kh6 33.h4 and 34.Qf6+ wins.
After 32.Qe7+, if 32...Kh6, then 33.Qf6+ Kh7 34.Qd8 Kh6 35.h4 wins
Instead of 33.Qc7, White could also play 33.Qf6+ Kh7 34.Qd8 Ra8 35.Qe7+ Kh6 36.Qf6+ to win
Besides 35.Kh2, White had 35.Qc6 Rb8 36.Qc2 Kh5 37.Qh7 mill mate. 36...Kf7 or 36...Kg7 and 37.Qc7+ wins the rook.