 
 }
 
+/**
+ * Blink brand lighting animation routine.
+ */
+void anim_blink(const uint8_t p)
+{
+
+    // Special case to ensure the final light is enabled before this animation
+    // routine terminates.
+    if (p == 255) {
+        memcpy(brand_leds, brand_leds_p, sizeof(CRGB) * BRAND_COUNT);
+    } else {
+        // Iterate over all lights, setting an LED to black based on the current
+        // progress and copying the rest from the previous value. 
+        for (int i = 0; i < BRAND_COUNT; i++) {
+            if (scale8(p, BRAND_COUNT) == i) {
+                brand_leds[i] = CRGB::Black;
+            } else {
+                brand_leds[i] = brand_leds_p[i];
+            }
+        }
+    }
+
+    // Update the display.
+    FastLED.show();
+
+}
+

        }
        Serial.println("Reconnected to messaging server.");
    }

}



    // 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));
