Thanks Ed for your simpler way to do step 27a.
Prelims
a) R1C12 = {39/48/57}, no 1,2,6
b) R23C3 = {39/48/57}, no 1,2,6
c) R56C4 = {19/28/37/46}, no 5
d) R7C67 = {19/28/37/46}, no 5
e) R78C8 = {89}
f) R8C12 = {69/78}
g) R9C12 = {18/27/36/45}, no 9
h) 10(3) cage at R2C1 = {127/136/145/235}, no 8,9
i) 13(4) cage at R3C9 = {1237/1246/1345}, no 8,9
j) 26(4) cage at R5C5 = {2789/3689/4589/4679/5678}, no 1
k) 23(6) cage at R6C6 = {123458/123467}, no 9
1. Naked pair {89} in R78C8, locked for C8 and N9, clean-up: no 1,2 in R7C6
1a. Killer pair 8,9 in R8C12 and R8C8, locked for R8
1b. 9 in C9 only in R12C9, locked for N3
2. 45 rule on N7 2 outies R6C12 = 12 = {39/48/57}, no 1,2,6
2a. 45 rule on N7 2 innies R7C12 = 5 = {14/23}
3. 45 rule on N89 2 innies R78C9 = 7 = {16/25/34}, no 7
4. 45 rule on R1234 2 outies R5C89 = 6 = {15/24}
4a. 45 rule on R1234 2 innies R34C9 = 7 = {16/34} (cannot be {25} which clashes with R5C89)
4b. 13(4) cage at R3C9 = {1246/1345}, CPE no 1,4 in R6C9
5. 45 rule on N1 2 innies R1C3 + R3C1 = 11 = {29/56} (cannot be {38/47} which clash with the two 12(2) cages in N1, blocking cages)
5a. 8 in N1 only in one of the 12(2) cages = {48}, 4 locked for N1
5b. 1 in N1 only in 10(3) cage at R2C1 = {127/136}, no 5
6. 45 rule on N47 2(1+1) outies R3C1 + R4C4 = 9 = [27/54/63], clean-up: no 2 in R1C3 (step 5)
7. 45 rule on C1234 1 innie R3C4 = 1 outies R1C5 + 2, no 8,9 in R1C5, no 1,2 in R3C4
8. 45 rule on N12 1 outie R3C7 = 1 innie R3C1 + 2 -> R3C7 = {478}
9. 24(4) cage at R3C4 = {2589/2679/3489/3579/3678/4569/4578} (cannot be {1689} because {169}8 is blocked by R3C17 = [68], IOD block), no 1 in R3C56
10. Hidden killer triple 7,8,9 in R6C12, R6C345 and 23(6) cage at R6C6 for R6, R6C12 contains one of 7,8,9, 23(6) cage contains one of 7,8 in R6 -> R6C345 must contain one of 7,8,9
10a. 45 rule on R6789 3 innies R6C345 = 17 = {269/359/368/458/467} (cannot be {179/278} which contain two of 7,8,9), no 1, clean-up: no 9 in R5C4
10b. 9 in R6 only in R6C12 = {39} or in R6C345 = {269/359} -> R6C345 = {269/359/458/467} (cannot be {368}, locking-out cages)
11. 1 in R6 only in R6C678, locked for 23(6) cage at R6C6, no 1 in R78C9, clean-up: no 6 in R78C9 (step 3)
12. 45 rule on R9 3 innies R9C345 = 19, no 1
13. 16(3) cage at R7C3 = {169/178/259/457} (cannot be {268/367} which clash with R8C12, cannot be {349} which clashes with R7C12, cannot be {358} which clashes with R23C3), no 3
13a. Killer pair 7,9 in 16(3) cage and R8C12, locked for N7, clean-up: no 2 in R9C12
14. 45 rule on C3 4 innies R1456C3 = 17 = {1268/1367/2357/2456} (cannot be {1259/1349/1358/1457} which clash with 16(3) cage at R7C3, cannot be {2348} because R1C3 only contains 5,6,9), no 9
14a. R1C3 + R3C1 (step 5) = {56} (only remaining combination), locked for N1, clean-up: no 4 in R3C7 (step 8), no 7 in R4C4 (step 6)
14b. Naked pair {56} in R1C3 + R3C1, CPE no 5,6 in R4C3
14c. 10(3) cage at R2C1 = {127} (only remaining combination), locked for N1
15. R3C1 + R4C4 = 9 (step 6) -> R4C123 = 13 = {139/148/157/238/247} (cannot be {256} which clashes with R3C1, cannot be {346} which clashes with R4C4), no 6 in R4C12
16. 6 in N4 only in 20(4) cage at R5C1 = {1469/1568/2369/2468/2567} (cannot be {3467} which clashes with R6C12)
16a. R1456C3 (step 14) = {1268/2357/2456} (cannot be {1367} = 6{137} because 20(4) cage doesn’t contain two of 1,3,7), 2 locked for C3 and N4
17. 2 in N7 only in R7C12 = {23} (step 2a), locked for R7, N7 and 17(4) cage at R6C1, no 3 in R6C12, clean-up: no 9 in R6C12 (step 2), no 7,8 in R7C6, no 7 in R7C7, no 4,5 in R8C9 (step 3), no 6 in R9C12
17a. 7 in N9 only in R8C7 + R9C789, CPE no 7 in R9C5
18. 9 in R6 only in R6C45, locked for N5
18a. R6C345 (step 10a) = {269/359}, no 4,7,8, clean-up: no 2,3,6 in R5C4
19. 23(6) cage at R6C6 = {123458/123467}
19a. 5 of {123458} must be in R7C9 (R6C6789 cannot contain both of 5,8 which would clash with R6C12), no 5 in R6C6789
[Alternatively hidden killer pair 4,8 in R6C12 and R6C6789 for R6, both of 4,8 must be in R6C12 or in R6C6789 -> 4,8 of {123458} must be in R6C6789 with 5 in R7C9.]
20. R9C345 = 19 (step 12) = {289/379/469} (cannot be {478/568} which clash with R9C12), no 5, 9 locked for R9
21. R4C123 (step 15) = {139/148/157/238} (cannot be {247} which clashes with R6C12)
21a. 20(4) cage at R5C1 (step 16) = {2369/2468/2567} (cannot be {1469} which clashes with R5C89, cannot be {1568} which clashes with R4C123), no 1, 2 locked for N4
21b. 1 in N4 only in R4C123, locked for R4, clean-up: no 6 in R3C9 (step 4a)
22. R1456C3 (step 16a) = {1268/2357/2456}
22a. 1 of {1268} must be in R4C3 -> no 8 in R4C3
22b. 5 of {2357/2456} must be in R1C3 (R456C3 cannot be 4{25} which clashes with R6C12), no 5 in R56C3
23. R6C345 (step 18) = {269/359}
23a. 3 of {359} must be in R6C3 -> no 3 in R6C45, clean-up: no 7 in R5C4
24. 45 rule on C4 4 innies R1234C4 = 22 = {2389/3469/3478/3568/4567} (cannot be {1489/1678/2479/2569} which clash with R56C4, cannot be {1579/2578} because R4C4 only contains 3,4), no 1
25. R3C1 + R4C4 (step 6) = [54/63]
25a. 1 in N4 only in R4C123 (step 21) = {139/148/157} -> R3C1 + R4C1234 = 5{139}4/6{148}3/6{157}3, 3 locked for R4, clean-up: no 4 in R3C9 (step 4a)
26. 13(4) cage at R3C9 (step 4b) = {1246/1345}, 4 locked for N6
26a. 23(6) cage at R6C6 = {123458/123467} -> 4 in R6C6 + R7C9, CPE no 4 in R7C6, clean-up: no 6 in R7C7
26b. 6 in N9 only in R8C7 + R9C789, CPE no 6 in R9C5
27. Hidden killer quad 3,6,7,9 in 20(4) cage at R5C1 and 26(4) cage at R5C5 for R5
27a. 20(4) cage at R5C1 (step 21a) = {2369/2567} (cannot be {2468} because 26(4) cage at R5C5 cannot contain all of 3,7,9), no 4,8
27b. 26(4) cage at R5C5 = {2789/3689/4679/5678} (cannot be {4589} because 20(4) cage cannot contain all of 3,6,7)
[Ed pointed out the technically simpler 26(4) cage at R5C5 must contain at least one of 4,8 in R5 -> 20(4) cage = {2369/2567} (cannot be {2468} which clashes with 26(4) cage).]
28. R1456C3 (step 22) = {2357/2456} -> R1C3 = 5, R456C3 = {237/246}, no 1, clean-up: no 7 in R3C4 (step 7)
28a. Killer pair 3,4 in R23C3 and R456C3, locked for C3
28b. R9C12 = {45} (hidden pair in N7), locked for R9
28c. R9C345 (step 20) = {289/379}, no 6
[Cracked. The rest is straightforward.]
29. R3C1 = 6, R3C7 = 8 (step 8), R4C4 = 3 (step 6), clean-up: no 1,4,6 in R1C5 (step 7), no 4 in R2C3, no 9 in R8C2
30. R6C9 = 8 (hidden single in C9), clean-up: no 4 in R6C12 (step 2)
30a. Naked pair {57} in R6C12, locked for R6 and N4 -> R4C3 = 4, R4C9 = 6, R3C9 = 1 (step 4a), clean-up: no 8 in R2C3, no 5 in R5C89 (step 4)
30b. Naked pair {24} in R5C89, locked for R5 and N6
30c. Naked triple {369} in R5C123, locked for R5 and N4 -> R6C3 = 2
30d. R5C4 = 1 (hidden single in R5) -> R6C4 = 9, clean-up: no 7 in R1C5 (step 7)
31. Naked pair {13} in R6C89, locked for 23(6) cage at R6C6 -> R8C9 = 2, R7C9 = 5 (step 3), R5C89 = [24]
32. 17(4) cage at R9C6 = {1367} (only remaining combination, cannot be {1268} because 2,8 only in R9C6), locked for R9
33. Naked pair {39} in R23C3, locked for C3 and N1 -> R5C3 = 6, R9C3 = 8, R9C45 = [29], R7C6 = 6 -> R7C7 = 4
33a. R9C4 = 2 -> R78C4 = 11 = [74]
34. 45 rule on N3 2 remaining innies = 10 = [64] (cannot be {37} which clashes with R12C9, ALS block), R3C4 = 5, R1C5 = 3 (step 7)
35. R1C6 = 1 (hidden single in R1)
36. R3C47 = [58] = 13 -> R3C56 = 11 = [29]
and the rest is naked singles.