Black has sacrificed a pawn and has swapped off White's fianchetto (light-squared) bishop, so has hopes of a mating attack.
With accurate defence White can probably defend. However he decided to make a few threats himself and opened the long diagonal, attacking g7 with 20. dxc5?
This was his last mistake, as Black forces resignation in two moves.
Can you find the moves that Ian played? The answer is several lines down the page...
20... Ne5 blocks the mate and threatens mate himself (21. ... Nf3+ and 22. ... Qxh2#), which can only be prevented by serious material losses. White thought 21. Ne1 defends but resigned after 21... Qh3 due to 22. Ng2, Nf3+; 23. Qxf3 (the only move to stop mate on h2) 23... Bxf3 and whichever square the knight moves to the rook captures it. 21. h4 also fails to save the game as Black has 21... Rxh4!; 22. gxh4, Nf3+ etc.