The time is shown to the nearest 5 minutes by illuminating characters on this grid:
TFOSNFIX HWELEVEN MURIGHTE FTOHIRFO TEWENTY5
Necessarily somewhat "idiosyncratic" words, for example, 4:35 is
.FO..... ....... .UR..... .T.HIR.. .....TY5
The hour and minutes are illuminated in different colours.

Jaycar sell a shield with an 8x5 matrix of RGB LEDs . This greatly simplified the project.
I created a laser-cutting design to cut and etch two sheets of thin black on white acrylic. One piece sits over the LEDs and the other sits on top, and the LEDs shine through the etched characters.
I thought I might need light-breaks between the characters so included some alternatives, but in fact there's really no bleed-through to adjacent cells.

The shield is perhaps a little odd in that it provides headers as though you could stack something on top. I created a small "sidecar" board which plugs into the headers and holds the RTC, push-buttons and an LDR. It sits to the side of the shield.
Great project. Can you share the Eagle (or equivalent) files for your sidecar PCB?
Thanks!