Joystick error

using UnityEngine;
using UnityEngine.UI;
using System.Collections;

public class PlayerController : MonoBehaviour
{

    public float speed;
    public Text PuntiText;
    public Text winText;
    public VirtJoystick joystick;

    private Rigidbody rb;
    private int Punti;

    void Start()
    {
        rb = GetComponent<Rigidbody>();
        Punti = 0;
        SetPuntiText();
        winText.text = "";
    }

    private void Update()
    {

         float moveHorizontal = Input.GetAxis("Horizontal");
          float moveVertical = Input.GetAxis("Vertical");

        if (moveJoystick.InputDirection != Vector3.zero)
                          
        Vector3 movement = new Vector3(moveHorizontal, 0.0f, moveVertical);

        rb.AddForce(movement * speed);
    }

    void OnTriggerEnter(Collider other)
    {
        if (other.gameObject.CompareTag("Pick Up"))
        {
            other.gameObject.SetActive(false);
            Punti = Punti + 1;
            SetPuntiText();
        }        
        }    
        
    void SetPuntiText()
    {
        PuntiText.text = "Punti: " + Punti.ToString();
        if (Punti >= 33)
        {
            winText.text = "Hai Vinto!";
        }
    }
}

Assets/Scripts/PlayerController.cs(32,75): error CS1023: An embedded statement may not be a declaration or labeled statement.
Please help me

You need to move the declaration of Movement outside the if block. You could also help yourself by adding some curly braces:

Vector3 movement = Vector3.zero;
if (moveJoystick.InputDirection != Vector3.zero) {
  movement = new Vector3(moveHorizontal, 0.0f, moveVertical);
}
rb.AddForce(movement * speed);

I think declaring floats inside Update is your problem.

My guess is delete them and change your code to

Vector3 movement = new Vector3(Input.GetAxis("Horizontal"), 0.0f, Input.GetAxis("Vertical"))