- Brazilian electoral court calls race for Lula.
- Incumbent leftist beat right-wing son of jailed ex-leader.
- Fourth Lula mandate would be a bulwark against US influence.
Brazilian President Luiz Inacio Lula da Silva won an unprecedented fourth term on Sunday, the country’s electoral court said, in a shock result that defied polls, precedent and global anti-incumbent sentiment to put the brakes on a wave of right-wing election victories across Latin America.
Lula, an icon of the global left and the most dominant force in Brazilian politics this century, defeated Senator Flavio Bolsonaro, the eldest son of former President Jair Bolsonaro. The senator had finished first in the election’s first round and hoped to revive his father’s far-right movement.
At times, Lula’s reelection looked like a long shot, as voters soured on him and his Workers’ Party after years of corruption scandals and rising prices, while sweeping societal changes left the former metalworker and union leader looking out of touch with an increasingly app-based economy and its growing ranks of informal workers.
Lula’s victory marks another comeback in a career full of them. The 80-year-old was jailed from 2018 to 2019 on corruption charges that were later overturned, paving the way for him to beat Jair Bolsonaro in the 2022 election.
“He is a statesman, a giant,” leftist federal lawmaker Erika Hilton, who was with Lula in Sao Paulo during the vote count, told Reuters.
Unlikely path to victory
Pollsters said better-than-expected turnout had powered Lula to victory. Leonardo Barreto, the co-founder of consultancy Think Policy, said voters had chosen Lula’s familiar embrace over Bolsonaro’s novelty.
“People today are choosing between change, with some apprehension, and a known path, which guarantees certain rights,” he said.
During the campaign, Lula pointed to a track record of falling poverty and inequality, while unemployment, illiteracy and deforestation hit record lows during his third term.
He warned Bolsonaro would cut welfare spending, backslide on social advances and hand over Brazil’s sovereignty to US President Donald Trump, whose State Department led a campaign to get the Bolsonaros back to power.
Lula’s win deprives Trump of a major addition to what has been a growing bloc of friendly right-wing Latin American governments that have embraced Washington’s agenda on security and migration.
Celso Amorim, a former Lula foreign minister, told Reuters the leftist “would be very important for establishing a point of balance in Latin America. Lula is that balance.”
Comeback king
Lula becomes the first candidate since Brazil’s return to democracy in the 1980s to be elected after finishing second in the first round.
Lula, who was president between 2003 and 2011, campaigned on a potent mix of pragmatism and populism that has shaped his career in national politics for half a century, rolling out a slew of reforms aimed at improving the lives of workers and poor Brazilians.
These gained steam with late-campaign pledges that ranged from free nationwide weekend public transport, which has to be formally submitted to Congress, to a 15% increase in his trademark welfare program that is already being implemented.
Lula also championed a constitutional amendment that became Brazil’s biggest labour reform in decades, which passed with wide support in Congress.
Challenging legislative reality
Still, Lula’s fourth term could be his most difficult yet, after Brazil elected its most conservative Congress since returning to democracy in the 1980s.
Combined, Bolsonaro’s Liberal Party (PL) and allied parties could control over 280 seats in the lower house and up to 50 seats in the Senate, enough for comfortable majorities in both chambers.
“He is likely to be a lame duck from the start,” said Oliver Stuenkel, a professor of international relations at the Getulio Vargas Foundation in São Paulo.
The incoming legislature will likely deepen recent trends of presidents ceding power to Congress, Stuenkel said, predicting Lula will face waning influence over Supreme Court nominations, unwieldy party coalitions, and even the threat of impeachment.
Economic headwinds
Lula faces an economy that his government forecasts will grow a meager 2.3% next year, adding to fiscal concerns tied to high interest rates and public debt that has risen past 82% of GDP, the highest since the pandemic.
The president’s critics blame spending, though interest costs have driven most of the increase in debt.
Goldman Sachs said it expects Lula to make modest progress at most to contain spending in a fourth term, as he stays committed to a state-led growth model.
Surging household debt also concerns economists. Trying to address the issue, Lula rolled out a provisional ban on online betting and unveiled a new debt relief program during the campaign.
The incoming right-wing Congress will try to pass structural reforms that favour businesses, experts say, prompting spending cuts that could fuel social upheaval.
let firebaseLoaded = false; function loadFirebaseOnce() { if (firebaseLoaded) return; firebaseLoaded = true; import("https://www.gstatic.com/firebasejs/8.10.1/firebase-app.js").then(() => { //import("https://www.gstatic.com/firebasejs/8.10.1/firebase-analytics.js"); import("https://www.gstatic.com/firebasejs/8.10.1/firebase-messaging.js").then(() => { import("https://www.geo.tv/assets/front/ui/js/subscribe_user.js?v=553222"); }); }); }
window.addEventListener("scroll", loadFirebaseOnce, { once: true }); window.addEventListener("mousemove", loadFirebaseOnce, { once: true }); window.addEventListener("click", loadFirebaseOnce, { once: true });
//setTimeout(function(){ $('.medium-insert-images').find('figure').show() }, 3000); var loadDeferredJS = function() {
var lazyloadjs = ['https://www.geo.tv/assets/front/js/lazysizes.min.js'];
var alljs = ['https://www.geo.tv/assets/front/js/ui/thirdparty.js'];
var jqueryjs = ['https://www.geo.tv/assets/front/js/ui/jquery.min_new.js']; var bootstrapjs = ['https://www.geo.tv/assets/front/js/ui/bootstarp.js']; var sliderjs = ['https://www.geo.tv/assets/front/js/ui/swiper.min.js'];
var alljscustom = ['https://www.geo.tv/assets/front/js/ui/my.js','https://www.geo.tv/assets/front/js/mycustom.js'];
setTimeout(function(){ jqueryjs.forEach(function (item,index) { var scriptElement=document.createElement('script'); scriptElement.type="text/javascript"; scriptElement.src = item; document.body.appendChild(scriptElement); }); }, 1000);
const jqueryIntervalcheck = setInterval(function () { if(typeof jQuery !== "undefined"){ clearInterval(jqueryIntervalcheck);
setTimeout(function(){ sliderjs.forEach(function (item,index) { if(item == 'https://www.geo.tv/assets/front/js/ui/swiper.min.js'){ var story_embed_gallery = $('.story-area').find('.embedgallery').length; //var story_embed_gallery = 0; if(parseInt(story_embed_gallery) > 0){ var scriptElement=document.createElement('script'); scriptElement.type="text/javascript"; scriptElement.src = item; document.body.appendChild(scriptElement); } } }); }, 100);
setTimeout(function(){ alljscustom.forEach(function (item,index) { var scriptElement=document.createElement('script'); scriptElement.type="text/javascript"; scriptElement.src = item; document.body.appendChild(scriptElement); }); }, 1300);
if($('.infogram-embed').length > 0 || $('embedinfogram').length > 0) { !function (e, t, n, s) { var i = "InfogramEmbeds", o = e.getElementsByTagName(t)[0], d = /^http:/.test(e.location) ? "http:" : "https:"; if (/^\/{2}/.test(s) && (s = d + s), window[i] && window[i].initialized)window[i].process && window[i].process(); else if (!e.getElementById(n)) { var a = e.createElement(t); a.async = 1, a.id = n, a.src = s, o.parentNode.insertBefore(a, o) } }(document, "script", "infogram-async", "https://e.infogram.com/js/dist/embed-loader-min.js"); }
if($('.flourishClass').length > 0) { var scriptElement=document.createElement('script'); scriptElement.type="text/javascript"; scriptElement.setAttribute="async"; scriptElement.src="https://public.flourish.studio/resources/embed.js"; document.body.appendChild(scriptElement); }
if($('.apester-media').length > 0) { var scriptElement=document.createElement('script'); scriptElement.type="text/javascript"; scriptElement.setAttribute="async"; scriptElement.src="https://static.apester.com/js/sdk/latest/apester-sdk.js"; document.body.appendChild(scriptElement); }
if($('.twitter-tweet').length > 0) { var tweetObj = document.getElementsByClassName('tweetPost'); var counter_tweet = 0; if (tweetObj.length == 0) { tweetObj = document.getElementsByClassName('twitter-tweet'); $.each(tweetObj, function (i, v) { $(this).attr('id', 'twitter-post-widget-' + i); }); } else { $.each(tweetObj, function (i, v) {
if($(this).find('.twitter-tweet').length > 0){ $(this).find('.twitter-tweet').attr('id', 'twitter-post-widget-' + counter_tweet); counter_tweet++; } }); } $.getScript('https://platform.twitter.com/widgets.js', function () { var k = 0; var tweet = document.getElementById('twitter-post-widget-' + k); var tweetParent, tweetID;
while (tweet) { tweetParent = tweet.parentNode; //tweetID = tweet.dataset.tweetId; tweetID = tweetParent.getAttribute("id"); if(tweetID === null){ tweetID = tweet.dataset.tweetId; } //var tweetVideoClass = tweet.getAttribute('class').split(' ')[0]; $(tweet).remove();
twttr.widgets.createTweet( tweetID, tweetParent ); k++; tweet = document.getElementById('twitter-post-widget-' + k); } }); /*==============*/ var tweetObjVid = document.getElementsByClassName('tweetVideo'); var counter_tweet = 0; if (tweetObjVid.length == 0) {
tweetObjVid = document.getElementsByClassName('twitter-video'); $.each(tweetObjVid, function (i, v) { $(this).attr('id', 'twitter-vid-widget-' + i); });
} else {
$.each(tweetObjVid, function (i, v) { if($(this).find('.twitter-video').length > 0){ $(this).find('.twitter-tweet').attr('id', 'twitter-vid-widget-' + counter_tweet); counter_tweet++; } });
} $.getScript('//platform.twitter.com/widgets.js', function () { var v = 0; var tweetVid = document.getElementById('twitter-vid-widget-' + v); var tweetParentVid, tweetIDVid; while (tweetVid) { tweetParentVid = tweetVid.parentNode; //tweetIDVid = tweetVid.dataset.tweetId; tweetIDVid = tweetParentVid.getAttribute("id"); if(tweetIDVid === null){ tweetIDVid = tweet.dataset.tweetId; } $(tweetVid).remove(); twttr.widgets.createVideo( tweetIDVid, tweetParentVid ); v++; tweetVid = document.getElementById('twitter-vid-widget-' + v); } }); }
if($('.instagram-media').length > 0){ var scriptElement=document.createElement('script'); scriptElement.type="text/javascript"; scriptElement.setAttribute="async"; scriptElement.src="https://platform.instagram.com/en_US/embeds.js"; document.body.appendChild(scriptElement); }
if($('.tiktok-embed').length > 0){ var scriptElement=document.createElement('script'); scriptElement.type="text/javascript"; scriptElement.setAttribute="async"; scriptElement.src="https://www.tiktok.com/embed.js"; document.body.appendChild(scriptElement); }
if($('.threadsPost').length > 0){ var scriptElement=document.createElement('script'); scriptElement.type="text/javascript"; scriptElement.setAttribute="async"; scriptElement.src="https://www.threads.net/embed.js"; document.body.appendChild(scriptElement); }
if($('.fb-video').length > 0 || $('.fb-post').length > 0){ var container_width = $(window).width(); if(container_width < 500){ if($('.fb-video').length > 0){ let embed_url = $('.fb-video').attr('data-href'); let htmla="
'; $('.fb-video').parent('.embed_external_url').html(htmla); } else{ let embed_url = $('.fb-post').attr('data-href'); let htmla="
'; } }
$('body').prepend('
');
var scriptElement=document.createElement('script'); scriptElement.type="text/javascript"; scriptElement.setAttribute="async"; scriptElement.src="https://connect.facebook.net/en_US/sdk.js#xfbml=1&version=v2.11&appId=580305968816694"; document.body.appendChild(scriptElement); } } },100); };
var raf = window.requestAnimationFrame || window.mozRequestAnimationFrame || window.webkitRequestAnimationFrame || window.msRequestAnimationFrame;
var loadDeferredJSCaptcha = function() { var addJSNode = document.getElementById("captchejs"); var replacement = document.createElement("div"); replacement.innerHTML = addJSNode.textContent; document.body.appendChild(replacement); addJSNode.parentElement.removeChild(addJSNode); };
window.addEventListener('load', loadDeferredJS); //window.addEventListener('load', loadDeferredJSCaptcha);