Now I'll replace the countdown hook with a real-time clock that triggers when the time passes 15:03:03.03:
The clock is now a real-time clock showing the current time with centisecond precision (e.g. 15.03.03.03), updating every frame. Once the local time passes 15:03:03.03 (3:03 PM and 3 seconds), the confetti fires and the birthday message fades in below. If someone opens the page after that time, it immediately shows the confetti and message.
The issue is the FitText component uses text-center which doesn't help since the text is already scaled to fill the container width. The real problem is the text isn't using 100vw -- let me make the text truly fill the entire viewport by removing overflow clipping and using 100vw as the container, and reducing line-height further so rows stack tighter and appear more massive.
Now remove the vertical centering from the page so the rows stack from the top and take up as much vertical space as possible:
Now update the FitText container to use w-screen instead of w-full:
The text now fills the entire viewport width edge-to-edge with w-screen, uses font-black for maximum weight, and scales at 98% of the container width so each row of text (1993, 03/03, and the clock) is as massive as possible. The rows stack from the top of the page with no vertical centering padding so they dominate the screen.
You can send messages while the preview loads