[Unsolved] Moving relative to third person camera w/ Character Controller?

So far I have:

Vector3 desiredMovement = chaseCam.rotation * new Vector3(keyboardInput.x, 0, keyboardInput.y) * Time.deltaTime * speed;
cc.Move(desiredMovement);

Which for the most parts works… unless you’re looking at an angle on the X or Z axis, then your speed isn’t applied only into the ground and you can fly. If I were to prohibit flying looking at steep angles would makes the character move really slow.

I know why this happens, just need a proper solution. Ty in advance <3

boomp
Also have created a really cheesy solution but works for the time being:

        Vector3 jankSolution = new Vector3(0, Camera.main.transform.FindChild("jankThing").transform.eulerAngles.y,0);
        Camera.main.transform.FindChild("jankThing").transform.eulerAngles = jankSolution;
        Vector3 desiredMovement = Camera.main.transform.FindChild("jankThing").transform.rotation * new Vector3(keyboardInput.x, 0, keyboardInput.y) * Time.deltaTime * speed;

help would be really appreciated still.