Ray's troubles in this game start with 7.n17, the moment he cut one of the branches of Axel's Y-shaped threat without even weakening the other branch (N9). Something better, for example, might have been 7.q16, which would have also cut that lower branch, but it also establishes a threat of going up the right side of the board—along with the threat of cutting across to L9, which forms another "Y" threat. This is what I call a "Y conversion", because it converts your opponent's Y-shaped potential path threat into one of your own.
Axel re-establishes his Y at 12.m18 to make L16 work as a downstream peg. Otherwise Ray can poke thru: 12.j1713.l1414.m1515.m16. After 12.m18, Ray could have attacked the stem of the Y with 13.h17. This is a common defensive pattern.
Ray cuts the lower branch again with 17.m19, so Axel completes his connection to the other branch, to prevent the poking thru that I mentioned before. Simply cutting one branch is not sufficient. For example, maybe 17.s19 would be better, which cuts the lower branch, but also could serve as a downstream peg for an attack on the upper branch, which Ray could launch after Axel closes the "poking thru" gap. I'm not sure 17.s19 would really work; I'm just using it as an example.
Axel re-establishes his Y at 12.m18 to make L16 work as a downstream peg. Otherwise Ray can poke thru: 12.j17 13.l14 14.m15 15.m16. After 12.m18, Ray could have attacked the stem of the Y with 13.h17. This is a common defensive pattern.
Ray cuts the lower branch again with 17.m19, so Axel completes his connection to the other branch, to prevent the poking thru that I mentioned before. Simply cutting one branch is not sufficient. For example, maybe 17.s19 would be better, which cuts the lower branch, but also could serve as a downstream peg for an attack on the upper branch, which Ray could launch after Axel closes the "poking thru" gap. I'm not sure 17.s19 would really work; I'm just using it as an example.
After move 17, Axel's just defending his line.