O id do elemento é txtxn1, mas no getElementsById você busca por txtn1 (veja que tem um “x” a mais no id do elemento). O mesmo vale para txtn2. Ah, e o nome correto da função é getElementById (“Element” no singular, repare que você usou “Elements”).
Aliás, porque em um você usa getElementsById e no outro querySelector? Escolha um (qualquer um) e mantenha a consistência, use o mesmo em todos os casos - a menos que haja um bom motivo para usar outro: por exemplo, querySelector é mais flexível e aceita mais do que um simples id, mas no seu caso você só busca por id então seria o suficiente fazer:
var tn1 = window.document.getElementById('txtn1');
var tn1 = window.document.getElementById('txtn2');
Lembrando, é claro, de corrigir o id que está no HTML, que tem um “x” a mais.
Aproveitando, crie o hábito de colocar ; no final das linhas. Pode parecer “frescura”, e sei que o JavaScript “aceita” o código sem ponto e vírgula e “funciona”, mas isso evita algumas situações bizarras que podem ocorrer se você não usá-los, como essa e essa (veja mais sobre isso aqui).