Dressed in the blue and yellow colours of the Ukraine flag, hundreds of thousands of people took to the streets around the world on Sunday to denounce Russia's invasion of its neighbour.
From Berlin to Baghdad to Quito and Saint Petersburg, demonstrators chanted "shame" against Russian President Vladimir Putin, while others waved banners with slogans like "Putin murderer" or "stop the monster".
In the German capital, police estimated a turnout of at least 100,000, while Prague drew 70,000 and Amsterdam 15,000.
Organisers of the Berlin protest put the numbers at five times the police estimate, with demonstrators gathering at the Brandenburg Gate, a stone's throw away from the imposing Russian embassy.
Although the embassy, in which Russian diplomats both work and live, was cordoned off by police, some protesters gathered in front shouting "glory to Ukraine" and singing Ukrainian songs.
"It is important to me for Germany to show that it is standing for democracy in Europe," said Hans Georg Kieler, 49, who was at the demonstration.
He voiced approval for Germany's decision to begin delivering armaments to Ukraine, but said he thought "we could have helped Ukraine more".
Ukrainian Valeria Moiseeva was also at the march.
"I am personally disappointed by Russia, I hate Russia, I hate all Russians," the pregnant 35-year-old said, adding that her mother was now sitting in a cellar in Kyiv in fear of bombs.
She said she had to be at the demonstration because "I can't do more than that".
'Madman'
In Russia's second city of Saint Petersburg, around 400 people gathered in defiance of strict protest laws, holding posters that read "No to war", "Russians go home" and "Peace to Ukraine".
More than 2,000 people were detained in demonstrations across the country on Sunday, following thousands of arrests this week, but remained undeterred.
"It is a shame that there are hundreds, maybe thousands, of us and not millions," 35-year-old engineer Vladimir Vilokhonov told AFP in Saint Petersburg.
In Prague, tens of thousands gathered at the central Wenceslas Square, including Roman Novotny, who had to travel around 300 kilometres to get to the protest from Uherske Hradiste in the southeast of the country.
"We all have to do our best," he told AFP, carrying a banner slamming Mr Putin.
"It's a difficult situation because the madman has nuclear weapons. I think he has cut himself off from the entire world, totally."
Nineteen-year-old student Eliska Lipkova, her braided hair tied with blue and yellow ribbons, said the strong mobilisation may be "because we have a similar and rather recent experience, we were in a similar situation," referring to the 1968 invasion of Czechoslovakia by Soviet-led armies.
Meanwhile in Lithuania, Belarussian opposition leader Svetlana Tikhanovskaya led a few hundred of her countrymen in protest against the Minsk regime for allowing MR Putin's army to use the country as a launchpad into Ukraine.
Chanting "Long live Belarus" and "Glory to Ukraine", they said they wanted the world to understand that ordinary Belarusians do not support the attack on Ukraine.
"Our Ukrainian brothers would not forgive us for our silence," Ms Tikhanovskaya, who lives in exile in Lithuania, told reporters.
Voicing shame at Belarus strongman Alexander Lukashenko's actions, Sergei Bigel, a 39-year-old transport worker, told AFP: "This is a disgrace to the whole world. It is like stabbing a friend in the back."
In Denmark, Prime Minister Mette Frederiksen joined 10,000 people in front of the Russian embassy in Copenhagen to condemn the invasion.
"It is all of you and all of Europe who are threatened by Russia", she told the crowd.
"We cry with you", she said, addressing Ukrainians.
A women's protest also massed near the Russian embassy in Vilnius, with people holding banners like "Putin = killer" and "See you in hell", while others brought wreaths.
Ruta Januliene, 37, called the war in Ukraine "pointless" and said she was concerned for "the future and safety of children" there.
"It is hard for me to speak, it hurts a lot. I would like Putin to shoot himself and end all of this," she said, sobbing.
"Our family is ready to help Ukrainian mothers and provide shelter," said Sonata Lebednikiene, a 43-year-old civil servant.