slow down crouch

when i crouch, its almost like i am teleporting to a lower level. any ideas on how to slow it down? (i am new to unity)

public class crouch : MonoBehaviour
    public CharacterController CT;

    public float activeCrouch = 1f;
    public float notCrouch = 3f;

    public GameObject player;

    // Start is called before the first frame update
    void Start()
        CT = gameObject.GetComponent<CharacterController>();

    // Update is called once per frame
    void Update()
        if (Input.GetKey(KeyCode.LeftShift))
            CT.height = activeCrouch;
            player.transform.localScale = new Vector3(1f, 1f, 1f);

            CT.height = notCrouch;
            player.transform.localScale = new Vector3(1f, 2f, 1f);

I would suggest using a Lerp to interpolate between your default height and crouch height. Something similar to this:

    // Determine if which height we need to move towards.
	var crouchDirection = isCrouched ? -1 : 1;
	// crouchValue is clampped between 0 to 1 The value will be adjusted by the
	// current crouch direction.
	crouchValue = Mathf.Clamp01(crouchValue + (crouchDirection * Time.deltaTime));
	// lerp between the crouchHeight and default height based on the crouchValue.
	// When crouchValue is 0 it returns the crouch height, when it is 1 it returns 
	// the default standing height, and any value inbetween will return a value
	// between the default and crouch heights (0.5 returns half way between).
	var targetHeight = Mathf.Lerp(crouchHeight, defaultHeight, crouchValue);