Frankly, I know little to none regarding js, but I suppose I'm trying to "bundle" everything into a single binary so it can run in CLI, or in an external window if the former is not possible.
JavaScript does not compile to binary. It's a scripting language that is run by an interpreter, which may or may not compile it on the fly to run alongside whatever else the interpreter is doing.
The most obvious JS interpreter is a browser, which runs JS alongside an HTML/CSS rendering engine, do draw stuff for you.
Node.js is a JS interpreter that runs JS inside/alongside an HTTP server, mainly in the interest of of web developers wanting to share JS code between both the server and client.
Electron is a JS interpreter that essentially launches a trimmed-down version of Chrome inside a window on your OS desktop, whuch became popular among web developers already familiar with JS wanting to or being forced to expand into desktop app development.
It looks like you're essentially trying to create a screensaver? HTML/CSS/JS is simply not the tool for that.
JS is an interpeted language, you can't bundle stuff into a single binary. A "single binary" will require an interpreter to be bundled too, like Electton does
I see you want a screen saver and this just runs an app to view in your browser. There are other methods but they are a bit trickier. It's not too hard to add an embedded interpreter but you'd probably have to do some porting to get it drawing to a native canvas.