Por que me imprime el primer valor ingresado y no el ultimo valor ingresado (el que cumple con todo y esta correcto)

todo funciona, pero cuando quiero mostrar la variable ‘uno’, me muestra el primer valor que ingrese y no el que estaba correcto y cumplia con todo. eso solo pasa si lo pruebo varias veces hasta que cumple con todo y cuando se imprime, no imprime nada.

<span id="p-1"></span>
function primero() {
    do {
        var t1 = parseFloat(prompt ("Ingresar el presupuesto del Primer Trimestre en USD en un rango de 25,000 USD a 100,000 USD"));
        var t1s=new Intl.NumberFormat().format(t1)
    } while (t1<=25000 || t1>=100000);

    if (t1>25000 && t1<100000) {
        alert(`¡Genial! Tu presupuesto es de ${t1s} USD y estas dentro de lo proyectado`);
    }else if (t1=' '){
        alert('CUIDADO, ninguna casilla puede estar vacia!!');  
        primero();
    }
    uno=t1;
    
}
primero();
document.getElementById("p-1").innerHTML = uno;