I have to annotate this game. I have to do it. I have no choice.
14. Kd3c3 Qb1xb3
Well, this trades a queen and knight for a queen, but there aren't really any other attacking moves for black, and I don't think my opponent likes playing non-attacking moves much. Still, black is up in material. Besides, if Qa1+, Bb2. Then what about Ne2+ at that point? If Qxe2, white's other rook is lost. But if Kd3, then QxQ and RxR and KxN, so the result would be the same. And leaving the queen in that corner would have just been asking for trouble.
15. Qd1xb3 Nd4xb3 16. Kc3xb3 d6 17. g4
Figuring I need to preserve double bishops to have a shot at counterplay.
17... Bc8e6 18. d3
Protects c4 and frees the black square bishop.
18... O-O-O 19. Bc1e3
Weak pawn, so I have to attack it. Funnest choice in this situation I think.
19... d5 20. exd5 Be6xd5
Now at this point, I have the discovered check attack of g5+. The bishop could have gone back to d7, but that would feel pretty cramped, I think black's idea was to remove the defense around white's king.
21. cxd5 Rd8xd5 22. Be3xa7
This is to keep the king from moving behind three safe pawns after g5+.
22... Rd5xd3 23. Kb3c4 Rd3xa3
I was expecting Rxf3, at which point g5 would no longer work. I would have had to go to Bg2 perhaps, then maybe Rb1, wanting to Bxb7+. Probably things would not have played out so nicely.
24. g5 Kc8d8 25. Rg1d1 Kd8e8 26. Bh3d7 Ke8d8
This situation was full of traps for black. If instead he were to play Kf1, then Bc5+, winning the rook. Same with Ke7, and he would have still had to retreat back to that e8 square.
27. Bd7a4
I wanted to move his rook away, and this way after I threaten it with Kb4, it can't take my black square bishop, and instead will likely go Rxf3.
27... Kd8c8 28. Kc4b4 Ra3xf3
There was actually no safe spot for the rook to go to. If Ra2, the same technique would be used to win the rook as what happens next. None of the other spots are safe. Rxa4 would have given black an end game with an advantage though.