Yet another alpha fade GameObject post (Bear with me!)

I’m trying to create a decal system for bullet holes etc and I’m having trouble with fading out old decals.
(I can’t use unities built in decal system because it’s HDRP only, and I’m using the LWRP as I’m targeting the Oculus quest.)

Before I start, here’s my code:

    public GameObject decalObject;
    public float timeToLive = 4f;
    public float timeToDie = 4f;
    private float fadeRate = 0f;

    private float duration;

    private MeshRenderer meshRenderer;
    [Range(0, 1)]
    public float alpha = 1f;

    private Color colour = new Color( 1f, 0.203f, 0.0588f, 1f );

    // Start is called before the first frame update
    void Start()
    {
        fadeRate = 1f / timeToDie;
        duration = Time.timeSinceLevelLoad + timeToLive;
        meshRenderer = decalObject.GetComponent<MeshRenderer>();

        meshRenderer.material.color = colour;
    }


    // Update is called once per frame
    void Update()
    {

        if( Time.timeSinceLevelLoad >= duration )
        {
            alpha -= ( fadeRate * Time.deltaTime );
            colour.a = alpha;

            if( alpha <= 0f ) Destroy( gameObject );

            meshRenderer.material.color = colour;
        }
    }

The GameObjects material is using a LWRP/Particles/Lit shader with surface type set to Transparent, Blend mode set to Alpha and colour mode set to Multiply.

During the game, I can see the alpha value reducing as expected, but the decal doesn’t fade out.
When adjusting the materials alpha directly in the inspector, it does in fact fade out, but not via code.

Please smart ones, what am I doing wrong!

This issue has been resolved!

I needed to change this line:
meshRenderer.material.color = colour;
to be
meshRenderer.material.SetColor( "_BaseColor", colour );

Its working as expected now.