themes

most dev portfolios stay stuck on one look. i didn't want that here, so this gallery is where you pick a skin, preview it, and apply when it fits. if the animated background starts competing with the actual projects, flip performance and it chills out behind the text.

active theme lives in react context; colors ride css variables so the whole surface updates without a refresh. i wanted something i'd come back to over and over just to play around with, not another toggle i set once and forget.

performance

Auto picks the best experience for your device. Full keeps the heaviest effects (Vanta WebGL background, Lenis smooth scroll, full seasonal stack). Lite swaps Vanta for a clean dark-navy CSS gradient, paints once, never animates, and uses native scroll, so the site feels fast even on phones.

Active: full