functions.php doesn’t load all custom theme assets

I believe your mistake is using main as handle keyword for both script and style, handle must be unique.
You don’t have to use wp_register_script (and style) enqueue function does this automatically. You typically use wp_register_script(style) only if you are not sure if script/style will be needed later, if it is enqueued conditionally, but you want to avoid having several versions of the same script/style loaded. You should check browsers console, you might as well specified incorrect path to those scripts. You can also use newer get_theme_file_uri() function to find path for scripts/styles which has some advantages (see manual).