function guardarPartida() {
    try {
        const data = {
            version: SAVE_VERSION,
            nivelMaxAlcanzado: gameState.nivelMaxAlcanzado,
            mejorTiempos: gameState.mejorTiempos,
            ultimoNivelIdx: gameState.nivelIdx,
            vidas: gameState.vidas
        };
        localStorage.setItem(SAVE_KEY, JSON.stringify(data));
    } catch (e) {}
}

function cargarPartida() {
    try {
        const raw = localStorage.getItem(SAVE_KEY);
        if (!raw) return null;
        const data = JSON.parse(raw);
        if (!data || data.version !== SAVE_VERSION) return null;
        gameState.nivelMaxAlcanzado = data.nivelMaxAlcanzado || 0;
        gameState.mejorTiempos = data.mejorTiempos || {};
        return data;
    } catch (e) {
        return null;
    }
}

function borrarPartida() {
    try { localStorage.removeItem(SAVE_KEY); } catch (e) {}
}

function instalarAutosave() {
    setInterval(guardarPartida, 30000);
    document.addEventListener('visibilitychange', () => {
        if (document.hidden) guardarPartida();
    });
    window.addEventListener('beforeunload', guardarPartida);
}
