my first binary clock not working

... and if I'm not mistaken your time tracking code could be simplified (and more readable in my opinion) with -

    // static variables are initialized once and keep their values between function calls
    // set up a local variable to hold the last time we moved forward one second

    static unsigned long lastTick = 0UL;

    if ( (millis() - lastTick) >= 1000UL )
    {
        lastTick = millis();
    
        if ( 0 == (second = ((++second) % 60)) )
        {
            if ( 0 == (minute = ((++minute) % 60)) )
            {
                hour = ((++hour) % 24);
            }
        }
    }