This portfolio, like both LogoCraft AI and GetMeChai, was designed dark-first. Starting there forces every color decision to be relative rather than absolute, which pays off the moment a light theme gets added.
Instead of hardcoding hex values, every surface, border, and text color routes through CSS custom properties. Flipping a single data-theme attribute on the root element swaps the entire palette without touching a single component.
The hardest part isn't the backgrounds, it's border and shadow intensity: a border that reads as a subtle 8% white line on a near-black background needs a completely different opacity on a near-white one to feel equivalent.