A step-by-step solution follows. Click on pictures for a full-size version. Layer #1 is the "top", so moving towards it is going "Z-up".
Layer #1. The 0 clues allow many cells to be designated unshaded (I use blue for this purpose). Then, there is only one way to resolve the cluster of 1 clues and retain connectivity of unshaded cells. Finally, the dead ends must go Z-down.
Layer #2. The shading of several of the cells in layer #3's R1-2 can be determined by connectivity logic. Now layer #2 can use information from #1 and #3. R1C3's line cannot go Z-up, so must go left and right. R2C5 cannot go Z-down, so it goes left and Y-down. The dangling end in R1C1 must go Y-down.
Black circles. In layer #4, R2C4 cannot go Z-up, so it goes left and Y-down. R4C3 and then R5C3 can only go Z-up and left; in R5C3's case its line hits into a white circle and keeps going. Now layer #2's R5C4 can only go Z-down and Y-up.
Layer #3. R4-5 have their shading forced. Then R3C5 and R2C4 cannot go Z so they go left and Y-down. This forces the last shaded square in R2's 2 clue, which forces R1C2 to go right and Z-down. Finally, R4C2 must go Z-up and Y-up.
Maysu cleanup. Layer #2's R3C2 must go right and Y-up. The dangling end in R2C1 must go Y-down. Layer #4's R1C4, R3C5, and R1C5 cannot go Z, forcing connections. The dangling end in R5C1 cannot go Z and so goes Y-up
Layer #5. R5C5 is shaded because if not, it would be forced to go Z-up and violate the white circle in R4C5. Connectivity unshading above. The new dangling end must go Z-up, which then forces the dangling end in Layer #3's R4C5 to go Z-up.
Layer #1. Crosses are where Z movement is impossible. R5C5 must be shaded because any line put there would dead-end. Then several things are forced: the R4-5C3-4 curve, going straight through R2C4, and having R5C2 go Z-down and Y-up.
Layer #2. R4C3 goes left because Z-up would form a loop. R5C1-2 can't go Z, so they are forced around the corner. Additionally, a few more Xs for layer #1.
Layer #5. R3C1 cannot be shaded as then the C5 2 clue would isolate an unshaded cell. IT can't go Z, so it is forced to go right and Y-up. Connectivity & clues determine shading. Now the loop in this layer can be determined, with helper Xs to guide the forced lines.
Layers #4 & #3. R3C1 cannot go Y-up and so goes Z-up and right. The dangling end in R2C1 cannot go Y-up, so it goes right. The dangling end in R1C3 is forced Z-up. As a bonus, layer #3's loop parts can be finished; note the two helper Xs added in as guides.
Finish. First, both dangling ends in layer #2 are forced to go to layer #1. Then, with some more helper Xs, loop connectivity forces layer #1's lines, and its last shaded cell.
Solution (with helper Xs removed):