Você pode usar a propriedade "read-only" window.innerWidth no loading ou no resize da página, assim você sempre terá a largura ou altura (innerHeight) da viewport do navegador.
Exemplo utilizando o evento resize:
window.addEventListener('resize', function () {
console.log(window.innerWidth);
});
Essa função retornará o tamanho da viewport, em pixels, sempre que a janela for redimensionada.
Exemplo utilizando o evento load
window.addEventListener('load', function () {
console.log(window.innerWidth);
});
Aqui você só terá o valor da viewport quando a página for recarregada.
Caso queira mudar apenas o CSS da página, recomendo utilizar as Media Queries do CSS3.