odd physics i cant understand

ok so i have some code and it keeps making my “character” jump up and start floating and i dont know why its on 2 planes but it starts floating and its really weird and i cant fix it any help? oh and here is the code

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Lastfreakingscript : MonoBehaviour
{
    public CharacterController controller;
    public float speed = 6f;




    // Update is called once per frame
    void Update()
    {
        float Horizontal = Input.GetAxisRaw("Horizontal");
        float Vertical = Input.GetAxisRaw("Vertical");
        Vector3 direction = new Vector3(Horizontal, 0f, Vertical);

        if (direction.magnitude >= 0.1f) ;
            controller.Move(direction * speed * Time.deltaTime);
    }
}

also im very new to coding so if its probably a simple mistake