Hello. Check out this node-group:
You can use the alignment-vector input to get the profile to follow the surface normals. The node-group sets the tilt of the curve based on the normal inputs. Press tab to open the node-group to see how it was done.
tab
For this network:
Without the node-group:
With the node-group:
Good luck.