         }
         Serial.println("Reconnected to messaging server.");
     }
+
+    // Animate the lights.
+    anim_blink(brand_percent);
+
+    // If we've reached the end of the animation, reset the counter and copy
+    // the current light status to the previous.
+    if (brand_percent == 255) {
+        brand_percent = 0;
+        memcpy(brand_leds_p, brand_leds, sizeof(CRGB) * BRAND_COUNT);
+    } else {
+        brand_percent++;
+    }
+
+    // Pause before continuing so the animation doesn't run too fast.
+    delay(10);
 
 }
 

// Messaging configuration.
char* MQTT_SERVER = "m20.cloudmqtt.com";
int MQTT_PORT = 15508;
char* MQTT_USER = "";
char* MQTT_PASSWORD = "";
char* MQTT_TOPIC = "beacon/colour";

// Base lighting status.


    // Initialise the lighting strip.
    FastLED.addLeds<WS2812, BASE_PIN, GRB>(base_leds, BASE_COUNT);
    FastLED.addLeds<WS2812, BRAND_PIN_LEFT, GRB>(brand_leds, BRAND_COUNT);
    FastLED.addLeds<WS2812, BRAND_PIN_RIGHT, GRB>(brand_leds, BRAND_COUNT);
    fill_solid(base_leds, BASE_COUNT, CRGB(255, 255, 255));
    fill_solid(brand_leds, BRAND_COUNT, CRGB(255, 255, 255));
    fill_solid(brand_leds_p, BRAND_COUNT, CRGB(255, 255, 255));
