How to set a player's gravity relative to a mobius strip?

So I’m creating an experimental game in which the player may travel endlessly on a mobius strip. I got it all rendered in Blender, threw it into Unity, but then I realized a new problem: I’m not sure how to get gravity to function for this thing.

Anyone got any tips or scripts that I could use to keep a player grounded to the thing without having to climb up or fall down any curves?

Turn off gravity on the player’s rigidbody.

Raycast down from player to get the normal of triangle hit and align player to that normal. Ensure the surface of your Mobius does NOT have triangles that are too big. You want them to be on average about the size of 1 Unity unit (1 meter) or less.

RaycastHit hit;
if (Physics.Raycast(transform.position, -transform.up, out hit)) {
transform.rotation = Quaternion.LookRotation(Vector3.Cross(transform.right, hit.transform), hit.transform);

Apply a downforce relative to players transform. Make gravitySpeed public and adjust accordingly.

rigidbody.AddForce(-transform.up * Time.deltaTime * gravitySpeed);

Instead of attracting the player to the strip, can you rotate the entire world/strip under the player? Then it would be finding the normal of the poly you want your feet on, and aligning the strip’s Up axis with that.