Hoverboard align with surface normal

I’m making a hoverboard system and using align orientation to make the player look towards the desired direction. However I’m stuck on how to account for slopes. Here is my code:

alignOrientation.CFrame = CFrame.new(humanoidRootPart.Position, Vector3.new(
		humanoidRootPart.Position.X + velocity.X,
		humanoidRootPart.Position.Y,
		humanoidRootPart.Position.Z + velocity.Z
	)
)

I need to find a way to account for the normal of the raycast in this so that the hoverboard can go over ramps/slopes.