wwall: After 18.Rhg1, perhaps better 18...Rh7 and 19.Rxd1+. Black couls also try 18...Ne8 19.Rxd8+ Kxd8 or 18...Rxd1+ 19.Kxd1 Ne8.Instead of 19...Nh5, perhaps 19...g6 20.fxg6 Rxg6 21.Rxg6 fxg6 22.Rg1 Nh6
Instead of 20...Rh6, perhaps simplifying with 20...g5 21.fxg6 Rxg6 22.Rxg6 fxg6.
Perhaps 21...Kd7 is too slow. Maybe 21...Rh7 and 22...Rd8.
Instead of 22...g6, perhaps 22...Rh7 and 23...Ke7 and 24...Nf6.
After 27.Nf4, threatening 28. Nxf6, it looks like White wins.
If 29...g5, then 30.e5+ Kxe5 31.Kxg5 and 32.Kxh4 wins.
After 33...a5, Black was trying to create a winning passed pawn with 34...a4 followed by 35...b3 36.axb3 c3! 37.bxc3 a3. White stopped it with 34.c3! White could had also played 34.e5+ first, then 35.c3.
35.a3! stops Black threat. 35.cxb4?? would lose to 35...a3 36.bxa3 c3.