Thanks Ed for pointing out corrections and suggesting clarifications.
Prelims
a) R23C5 = {18/27/36/45}, no 9
b) R3C23 = {16/25/34}, no 7,8,9
c) R34C6 = {49/58/67}, no 1,2,3
d) R56C3 = {79}
e) R56C6 = {17/26/35}, no 4,8,9
f) R56C7 = {16/25/34}, no 7,8,9
g) R78C1 = {49/58/67}, no 1,2,3
h) 10(3) cage at R2C9 = {127/136/145/235}, no 8,9
i) 8(3) cage at R6C1 = {125/134}
j) 19(3) cage at R7C3 = {289/379/469/478/568}, no 1
k) 11(3) cage at R7C9 = {128/137/146/236/245}, no 9
1. Naked pair {79} in R56C3, locked for C3 and N4
1a. 18(3) cage at R6C1 = {468} (only remaining combination), locked for N4
1b. 19(3) cage at R7C3 = {289/469/478/568} (cannot be {379} because 7,9 only in R8C2), no 3
1c. 7,9 of {289/469/478} must be in R8C2 -> no 2,4 in R8C2
2. 45 rule on R1 2 innies R1C56 = 1 outie R2C4 + 8, IOU no 8 in R1C56
2a. Max R1C56 = 16 -> max R2C4 = 8
3. 45 rule on R9 2 innies R9C56 = 1 outie R8C4
3a. Max R9C56 = 9, no 9 in R9C56
3b. Min R9C56 = 3 -> min R8C4 = 3
4. 45 rule on N7 2 outies R89C4 = 1 innie R7C2 + 14
4a. Max R89C4 = 17 -> max R7C2 = 3
4b. 8(3) cage at R6C1 = {125} (only remaining combination), 5 locked for R6 and N4, clean-up: no 3 in R5C6, no 2 in R5C7
4c. R7C2 = {12} -> R89C4 = 15,16 = {69/78/79}, no 1,2,3,4,5
4d. 3 in N4 only in R4C13, locked for R4
[Ed pointed out that there was also 3 in R4C13, CPE no 3 in R2C3; I usually spot this type of CPE. I spotted it later in step 9e.]
5. 45 rule on N1 3(2+1) outies R12C4 + R4C1 = 15
5a. Max R4C1 = 3 -> min R12C4 = 12, no 1,2,3 in R1C4, no 1,2 in R2C4
6. 45 rule on N1 3 innies R1C123 = 1 outie R4C1 + 9
6a. Max R4C1 = 3 -> max R1C123 = 12
6b. 45 rule on R1 6 innies R1C123456 = 32, max R1C123 = 12 -> min R1C456 = 20, no 1,2 in R1C456
7. 45 rule on N6 4 innies R4C79 + R4C89 = 26 = {2789/3689/4589/4679/5678}, no 1
8. 25(6) cage at R5C4 = {123469/123478/123568} (cannot be {124567} which clashes with R89C4, step 4c)
9. 3 in N7 only in R9C123, locked for R9
9a. R7C2 = {12} -> R89C4 = {69/78/79} (step 4c)
9b. 45 rule on N7 4 innies R7C2 + R9C123 = 13 and contains 3 = {1237/1345}, no 6,8,9
9c. 1 of {1237/1345} must be in R7C2 (R7C2 + R9C123 = 2{137} clashes with R89C4 = {79} -> R7C2 = 1, R6C12 = {25}, locked for R6 and N4, clean-up: no 6 in R3C3, no 6 in R5C6, no 5 in R5C7
9d. Naked pair {13} in R4C13, locked for R4
9e. R4C13 = {13}, CPE no 1,3 in R2C3
9f. 19(3) cage at R7C3 (step 1b) = {289/469/568} (cannot be{478} which clashes with R9C123), no 7
10. R56C7 = {16/34}
10a. 12(3) cage at R4C8 = {129/156/237/345}(cannot be {138/147/246} which clash with R56C7), no 8
10b. Killer pair 1,3 in 12(3) cage and R56C7, locked for N6
11. 45 rule on C789 2 innies R28C7 = 15 = {69/78}
11a. Min R8C7 = 6 -> max R8C6 + R9C56 = 11, no 9 in R8C6
12. 45 rule on N9 2 outies R6C89 = 1 innie R8C7 + 8
12a. Min R8C7 = 6 -> min R6C89 = 14, no 4 in R6C89
13. 45 rule on C123 4 outies R1289C4 = 1 innie R4C3 + 26
13a. R4C3 = {13} -> R1289C4 = 27,29 must contain 9, locked for C4
14. 45 rule on N78 3(2+1) outies R56C4 + R8C7 = 12
14a. Min R8C7 = 6 -> max R56C4 = 6, no 6,7,8 in R56C4
15. 45 rule on N7 2 outies R89C4 = 15 = {69/78}
15a. 25(6) cage at R5C4 (step 8) = {123469/123478} (cannot be {123568} which clashes with R89C4), no 5
15b. 25(6) cage = {123469/123478}, CPE no 1 in R56C5
15c. Killer quad 6,7,8,9 in 25(6) cage and R89C4, locked for N8
16. R9C123 (steps 9b and 9c) = {237/345} = 12
16a. 45 rule on R9 3 remaining innies R9C456 = 15 = {159/456} (cannot be {249/258} which clash with R9C123, cannot be {168/267} because 6,7,8 only in R9C4), no 2,7,8, 5 locked for R9 and N8, clean-up: no 7,8 in R8C4 (step 15)
16b. Naked pair {69} in R89C4, locked for C4 and N8
17. 8 in R9 only in R9C789, locked for N9, clean-up: no 7 in R2C7 (step 11)
17a. Hidden killer pair 6,9 in R9C4 and 18(3) cage at R9C7 for R9, R9C4 = {69} -> 18(3) cage must contain one of 6,9 -> 18(3) cage = {189/468}, no 2,7
17b. Killer pair 1,4 in R9C56 and 18(3) cage, locked for R9
18. Naked triple {237} in R9C123, locked for N7, clean-up: no 6 in R78C1
19. R12C4 + R4C1 = 15 (step 5)
19a. R12C4 cannot total 14 -> R12C4 = 12 = {48/57}, R4C1 = 3, R4C3 = 1, clean-up: no 6 in R3C2
19b. R23C5 = {18/27/36} (cannot be {45} which clashes with R12C4), no 4,5 in R23C5
20. 1 in C4 only in R56C4, locked for N5 and 25(6) cage at R5C4, no 1 in R8C5, clean-up: no 7 in R56C6
21. R4C1 = 3 -> 29(4) cage at R2C1 = {23789/34679/35678} (cannot be {34589} which clashes with R3C23), no 1
22. R1C123 = R4C1 + 9 (step 6), R4C1 = 3, R1C1 = 1 (hidden single in C1) -> R1C23 = 11 = {38/56}/[92] (cannot be [74] which clashes with 29(4) cage at R2C1, no 2,4,7 in R1C2, no 4 in R1C3
22a. 13(3) cage at R1C7 = {238/247/256/346}, no 9
23. 1,5 in N8 only in 17(4) cage at R8C6 = {1259/1457}, no 3,6, clean-up: no 9 in R2C7 (step 11)
23a. 3 in N8 only in R7C456 + R8C5, locked for 25(6) cage at R5C4, no 3 in R56C4
23b. 9 in N3 only in R2C8 + R3C78, locked for 25(4) cage at R2C8, no 9 in R4C7
24. 45 rule on N3 2 outies R4C79 = 1 innie R2C7 + 3
24a. R2C7 = {68} -> R4C79 = 9,11 = {27/47/56} (cannot be {45} because R2C7 + R4C79 = 6{45} clashes with R56C7 = {34}), no 8 in R4C7
25. 8 in N6 only in R6C89, locked for R6
25a. R6C89 = R8C7 + 8 (step 12)
25b. R8C7 = {79} -> R6C89 = {78/89}, no 6
25c. Naked triple {789} in R6C3 and R6C89, locked for R6
26. 45 rule on N9 3 innies R7C78 + R8C7 = 16 = {259/349/367/457}
26a. R8C7 = {79} -> no 7,9 in R7C78
27. R7C1 = 9 (hidden single in R7), R8C1 = 4
27a. 4 in N4 only in R45C2, locked for C2, clean-up: no 3 in R3C3
28. 29(5) cage at R2C1 = {23789/34679/35678}
28a. 9 of {23789} must be in R2C2 -> no 2 in R2C2
28b. 6 or 8 of {35678} must be in R3C1 (otherwise R2C123 clashes with R2C7) -> no 5 in R3C1
29. Hidden killer triple 7,8,9 in 29(6) cage at R3C4 and R4C6 for N5, 29(6) cage cannot contain all of 7,8,9 -> 29(6) cage must contain two of 7,8,9 in N5 (no 7,8 in R3C4) and R4C6 = {789}, R3C6 = {456}
30. 9 in N2 only in 23(4) cage at R1C5 = {1589/1679/2489/3569} (cannot be {2579/3479} because R2C7 only contains 6,8)
30a. R2C7 = {68} -> no 6,8 in R1C56 + R2C6
30b. R1C123 = 12 (step 22), 13(3) cage at R1C7 -> R1C456 = 20 = {389/479} (cannot be {578} because 23(4) cage doesn’t contain both of 5,7), no 5, 9 locked for R1 and N2, clean-up: no 2 in R1C3 (step 22), no 7 in R2C4 (step 19a)
[Finally cracked by steps 29 and 30; the rest is fairly straightforward.]
31. R2C2 = 9 (hidden single in N1)
31a. 29(5) cage at R2C1 (step 28) = {23789/34679}, 7 locked for C1 -> R9C123 = [273], R6C12 = [52], clean-up: no 8 in R1C2 (step 22), no 5 in R3C3
31b. 29(5) cage = {23789/34679} -> R2C3 = {24}
32. 23(4) cage at R1C5 (step 30) = {1679/2489/3569} (cannot be {1589} because 1,5 only in R2C6)
32a. 1,2,5 only in R2C6 -> R2C6 = {125}
33. Naked triple {125} in R258C6, locked for C6 -> R9C6 = 4, R3C6 = 6, R4C6 = 7, R6C6 = 3, R5C6 = 5, R9C5 = 5 (hidden single in R9), clean-up: no 4 in R5C7
33a. R9C56 = [54] = 9 -> R8C67 = 8 = [17], R2C7 = 8 (step 11), R12C6 = [92], R1C5 = 4 (cage sum), R2C3 = 4, R3C3 = 2, R3C2 = 5, R2C4 = 5, R1C4 = 7 (step 19a), R3C4 = 3, R23C5 = [18]
34. 13(3) cage at R1C7 = {256} (only remaining combination), locked for R1 and N3 -> R1C23 = [38]
35. R4C79 = R2C7 + 3 (step 24)
35a. R2C7 = 8 -> R4C79 = 11 = {56}, locked for R4 and N6, clean-up: no 1 in R56C7
35b. R56C7 = [34]
36. R6C5 = 6, R45C5 = {29}, locked for C5 and N5 -> R56C4 = [41]
37. 10(3) cage at R2C9 = {136} (only remaining combination, cannot be {145} because 1,4 only in R3C9) = [316]
38. Naked pair {25} in R18C9, locked for C9 -> R7C9 = 4, R8C89 = 7 = {25}, locked for R8 and N9
39. 12(3) cage at R4C8 = {129} (only remaining combination) -> R5C9 = 9, R45C8 = [21]
and the rest is naked singles.