nice. i debated using three.js but didn't want the overhead/imports for a simple background. wanted to keep it raw canvas to stay zero-dependency.
you're totally right about the resize jank though. the math definitely breaks when the window dimensions change. on the todo list.