The easiest mechanism for sharing JS and CSS code between LWCs across a single project is essentially create an LWC for each (the JS and the CSS).
Each LWC contains just the code artifact for the JS or CSS code.
In other words, they're LWC's without HTML templates. The one will have your XML metadata descriptor and a JS module, the other will have the XML descriptor and the CSS file.
There are instructions for how to construct and consume these in the LWC documentation with an example each for CSS and for JS.
There is an example of this in the LWC Recipes sample app with the component importing JS from another module in the project.
Reading your comment above, I'd say that the best architecture for you is a larger scale library that encapsulates all your CSS assets (and the images that go with them) into a component that's consumed across your project. You might even want to look at packaging it as its own unmanaged package so you can simply install it using
sfdx force:package:install. That way, the entire CSS library is its own project with its own development lifecycle.