ja dein Script muß unterhalb des Elements . Du sprichst ganz oben das Element an ,was noch gar nicht da ist.
Deswegen mußt du die reinfolge einhalten die ich gemacht habe ,dann solte auch dein Script gehen.
Code
<main id="main">test</main>
<script type="text/javascript">
document.getElementById("main").style.color = "#ff0000";
</script>
Aber trotzdem dran denken.
Korekter wäre so