For millions of Ukrainians, the Russian invasion five days ago brought death, terror and uncertainty. For Mila Hadzieva, an IT manager in the western city of Lviv, it brought a searing clarity of purpose.
Hadzieva coordinates the hundreds of volunteers working 24/7 at Lviv's main distribution centre for humanitarian aid based in an art gallery in the shadow of a 19th-century palace. In better times, it milled with tourists.
Today, the gallery's halls throng with volunteers sorting the mountains of donated goods - clothes, food, medical supplies - into boxes for distribution to those in need.
They include hundreds of people waiting in sub-zero temperatures at Lviv's train station, hoping to board a rare train to nearby Poland, and hundreds more camped out in cars and buses along the congested road to the border.
"This is not just our fight," said Hadzieva, as news spread on social media of a devastating rocket strike in the war-torn eastern city of Kharkiv. "We are shielding Europe. We are shielding democracy."
She said Ukraine's supporters around the world now had "the ultimate decision to make: Are we fighting together or not?"
In Lviv, a city of 700,000 famous for its architectural beauty and cultural heritage, residents interviewed by Reuters remained defiant but ready for the worst.
Air-raid sirens have gone off more than a dozen times since the Russian invasion began on Feb. 24, sending many rushing for basements and other shelters.
So far, no bombs had landed in Lviv, but nearby towns had been targeted. "We don't know where and when the missiles might strike," said Hadzieva.
And many Leopolitans - as inhabitants of Lviv are known in English - were still preparing for the eventual arrival of Russian soldiers.
Non-essential shops remained largely closed in what felt to some like an edgy rerun of Lviv's pandemic shutdown in 2020. The sale of alcohol in shops and restaurants from 6 p.m. to midnight was banned from Monday because "it is critical for everyone to stay focused," according to the city's media centre.
"WE WILL NEVER FORGIVE THEM"
Lviv is ringed by military checkpoints manned by soldiers which caused long tailbacks at night. A curfew runs from 10 p.m. to 6 a.m.
One intersection in southern Lviv was fortified with concrete barriers, sandbags and car tyres, with the open space around it scattered with anti-tank "hedgehogs" made from scavenged metal.
Dozens of reservists in uniform lined up outside a nearby army base, many of them veterans of previous campaigns against Russia in Donbass. A poster outside the base read, "Protecting the country is everyone's duty."
Major Nazar Sobol welcomed the reservists, saying they would be briefed and given ammunition at the base, then deployed to halt any Russian advance.
He was not surprised that Russia's huge army had not subdued Ukraine's much smaller one. "It doesn't matter how many you are," he said. "It matters how prepared you are."
Asked about the mood of his soldiers, the major swore vigorously in Russian and grinned: "We are very optimistic."
Back at Lviv's humanitarian aid centre, the same hope and defiance infused volunteers like Liliya Popovych, who until last week ran a local software company. She now sat between teetering boxes of canned food and sacks of potato.
"We will never forgive them," she said of the invading Russians. "We will fight to the end. To the end. To the end."