Rotation resets?

So i have this code to rotate my object to a direction, but when i stop moving my mouse or let the joystick go to null(middle) it resets and doesn’t hold the rotation.

What am i missing here?

It also gives me allot of debugs on " Look rotation viewing vector is zero" every update.
This is probably because the private variable says it is zero.
Does it matter that it says this every update?

This is the code :

public float speed = 4.0f;
private Vector3 lookDirection = Vector3.zero;
	
	void Update(){
		lookDirection = new Vector3(Input.GetAxis("Horizontal Direction"), Input.GetAxis("Vertical Direction"));
		Quaternion targetRotation = Quaternion.LookRotation(lookDirection);
		
		// Smoothly rotate towards the target point.
		transform.rotation = Quaternion.Slerp(transform.rotation, targetRotation, speed * Time.deltaTime);
	}

The problem is very simple: not “=” use “+=”:

lookDirection += new Vector3(Input.GetAxis("Horizontal Direction"), Input.GetAxis("Vertical Direction"));