 
  
 
  
Olá, Gabriel! Tudo bem?
Esse erro acontece porque você está executando o arquivo script.js diretamente com o Node.js (pelo terminal do VS Code). No ambiente do Node não existe document, window ou qualquer objeto do DOM — eles só existem quando o JavaScript é executado dentro de um navegador.
É por isso que, quando você coloca o código dentro do index.html e abre no navegador, funciona normalmente.
Não execute o JS pelo terminal com node script.js, porque esse código depende do DOM.
Certifique-se de que o script.js está sendo referenciado dentro do seu index.html, por exemplo:
<script src="script.js"></script>
Depois, abra o index.html no navegador (clicando duas vezes ou com um servidor local).
Seu código está correto para navegador, basta garantir que ele seja executado dentro do contexto do index.html.
Espero ter ajudado e bons estudos!