Marielle Franco, a hard-charging City Council member, had become the face of resistance in Rio de Janeiro as she defended the city's marginalized communities, stood up for human rights and railed against a police force she believed was overly aggressive.
She was at it again Wednesday, urging supporters at a rally she'd organized to push for better treatment of black women.
Hours later, she was dead, gunned down along with her driver as they traveled through the city's downtown.
Franco's death reverberated across the city and beyond as thousands of people gathered at rallies, expressed their outrage on Twitter and wept openly in public. Several human rights organization suggested the shooting was political and was an attack on those who push for improved rights in Brazil. Activists urged authorities to investigate the slaying as an assassination.
Police said two men fired nine shots into Franco's car and sped off. Franco's driver, Anderson Pedro Gomes, was also killed. A press officer sitting next to Franco in the back seat was injured.
Civil Police Chief Rivaldo Barbosa declined to release details of the shooting and said no motive for the attack has been established.
Franco, an outspoken defender of human rights since a stray bullet killed a friend during a shootout between police and drug traffickers in 2005, grew up in the Mare complex of favelas, or slums, where violence and police incursions are frequent. Franco defied the odds and won the fifth-highest vote count of any city councilor when she was elected in 2016.
A member of the leftist Socialism and Liberty Party, Franco was embraced by many for speaking out forcibly for favela residents. During her almost 15 months in office, she presented 16 bills, two of which became law — one regulating motorcycle taxis, an important means of transportation in Rio's favelas, and one targeting City Hall contracts with social health organizations, which are often subjects of corruption investigations.
The day before her death, Franco sent out a tweet questioning the action of police in a homicide.
"Another homicide of a young man that could be credited to the police. Matheus Melo was leaving church when he was killed. How many others will have to die for this war to end?" she wrote.
Her party also pointed to her vocal disapproval of a particular military police unit, which she called the "battalion of death."
"Marielle had just denounced the military police's brutal and truculent operation in the Iraja region of the Acari community," the Socialism and Liberty Party said in a statement. "We demand an immediate and rigorous investigation of this heinous crime. We will not keep quiet!"
Human Rights Watch and Amnesty International also condemned the killings.
"This is a chilling development and is yet another example of the dangers that human rights defenders face in Brazil," said Jurema Werneck, Amnesty International's Brazil director.
"As a member of Rio de Janeiro's State Human Rights Commission, Marielle worked tirelessly to defend the rights of black women and young people in the favelas and other marginalized communities," Werneck said.
Last month, Franco was named rapporteur of a special commission that was to serve as a watchdog over a controversial federal intervention in Rio's public security.
Brazilian Public Security Minister Raul Jungmann said he spoke to the general in charge of the intervention, Walter Souza Braga Netto, after Franco's death, and said federal police would help local authorities investigate the shooting.
The federal government last month put the military in charge of Rio's police force amid a jump in violence. So far there are no indications of improvement in security in the city.
Protests and memorials were quickly arranged in Rio, São Paulo, Brasília and other urban centers, hashtags such as #MarielleFranco, #MariellePresente and #NãoFoiAssalto ("It wasn't a robbery") began to trend on Twitter, and Brazilians adopted a new online rallying call: "Marielle, present, now and forever!"
"Another dead black woman," wrote Adriana Vasconcellos on a Facebook event page for the protest in São Paulo. "They kill us in every way, when they murder our children, when they arrest and murder our husbands, when they silence us. But we will not keep quiet. We will keep screaming, denouncing and fighting."