French authorities were trying to determine on Friday whether a Tunisian who killed at least 84 people by plowing a truck into Bastille Day crowds had acted alone or with accomplices, but said the attack bore the hallmarks of Islamist militants.
Thursday night's attack in the Riviera city of Nice plunged France again into grief and fear just eight months after gunmen killed 130 people in Paris. Those attacks, and one in Brussels four months ago, have shocked Western Europe, already anxious over security challenges from mass immigration, open borders and pockets of Islamist radicalism.
The truck zigzagged along the city's seafront Promenade des Anglais as a fireworks display marking the French national day ended on Thursday night. It careered into families and friends listening to an orchestra or strolling above the Mediterranean beach toward the century-old Hotel Negresco.
At least 10 children were among the dead. Of the scores of injured, 25 were on life support, authorities said on Friday.
Bystander Franck Sidoli said he had seen people go down before the truck finally stopped just five meters away from him.
"A woman was there, she lost her son. Her son was on the ground, bleeding," he told Reuters at the scene.
The driver, 31-year-old Mohamed Lahouaiej Bouhlel, shot dead by officers at the scene, was known to police for petty crimes but was not on a watch list of suspected militants. He had one criminal conviction for road rage, sentenced to probation three months ago for throwing a wooden pallet at another driver.
The investigation "will try to determine whether he benefited from accomplices," Paris prosecutor Francois Molins said. "It will also try to find out whether Mohamed Laouaiej Bouhlel had ties to Islamist terrorist organizations."
Bodies are seen on the ground after a truck ran into a crowd celebrating the Bastille Day national holiday in Nice, France.
"Although yesterday's attack has not been claimed, this sort of thing fits in perfectly with calls for murder from such terrorist organizations," he added.
Bouhlel's ex-wife was in police custody, Molins said. Police found one pistol and various fake weapons in his truck.
Dried blood, smashed strollers
Dawn broke on Friday with pavements smeared with dried blood. Smashed children's strollers, an uneaten baguette and other debris were strewn about the promenade. Small areas were screened off and what appeared to be bodies covered in blankets were visible through the gaps.
The truck was still where it had come to rest, its windscreen riddled with bullets.
"I saw this enormous white truck go past at top speed," said Suzy Wargniez, a local woman aged 65 who had watched from a cafe on the promenade. "It was shooting, shooting."
At Nice's Pasteur hospital, medical staff were treating large numbers of injuries. Waiting for friends who were being operated on was 20-year-old Fanny.
"The truck pushed me to the side. When I opened my eyes I saw faces I didn't know and started asking for help," she told Reuters. "Some of my friends were not so lucky. They are having operations as we speak."
Tunisian security sources told Reuters the suspect had last visited his hometown of Msaken four years ago. He had three children and was not known by the Tunisian authorities to hold radical or Islamist views.
Bodies every five meters
"France is filled with sadness by this new tragedy," President Francois Hollande said in a dawn address.
A state of emergency imposed after the November attacks was extended by a further three months. Military and police reservists would be called up to help enforce it.
Nice-Matin journalist Damien Allemand had been watching the firework display when the truck tore by. After taking cover in a cafe, he wrote on his paper's website of what he saw: "Bodies every five meters, limbs ... Blood. Groans."
"The beach attendants were first on the scene. They brought water for the injured and towels, which they placed on those for whom there was no more hope."
Neighbors in the residential neighborhood in northern Nice where Bouhlel lived described him as a handsome but unsettling man, with a tense personality.
Bullet impacts are seen on the heavy truck the day after it ran into a crowd at high speed killing scores celebrating the Bastille Day July 14 national holiday on the Promenade des Anglais in Nice, France, July 15, 2016.
"I would say he was someone who was pleasing to women," said neighbor Hanan, standing in the lobby of the apartment building where Bouhlel lived. "But he was frightening. He didn't have a frightening face, but ... a look. He would stare at the children a lot."
Police carried out a controlled explosion on a white van near the home, blowing the doors open and leaving shattered glass all around, but it was not clear whether they found anything incriminating.
Bouhlel's Tunisian home town Msaken is about 10 km (six miles) outside the coastal city of Sousse, where a gunman killed 38 people, mostly British holidaymakers, on a beach a year ago. Many people from the area have moved to France, including Nice which is home to as many as 130,000 Tunisians.
With presidential and parliamentary elections less than a year away, French opposition politicians seized on what they described as security failings that made it possible for the truck to career 2 km (1.5 miles) through large crowds before it was finally halted.
Christian Ertosi, a security hardliner who was mayor of Nice until last month and is now president of the Riviera region in which Nice lies, had written on the eve of the attack to Hollande to demand more funding for police.
"As far as I'm concerned, I demand answers, and not the usual stuff," Estrosi said on BFM TV Friday morning hours after the attack, questioning whether the government provided enough national police officers for the fireworks display.
After the Paris attacks, Islamic State said France and all nations following its path would remain at the top of its list of targets as long as they continued "their crusader campaign", referring to action against the group in Iraq and Syria.
France is a major part of a U.S.-led mission conducting air strikes and special forces operations against Islamic State, as well as training Iraqi government and Kurdish forces. France has also sent troops to West Africa to battle Islamist insurgents.
"We will further strengthen our actions in Syria and Iraq," Hollande said, calling the tragedy - on the day France marks the 1789 revolutionary storming of the Bastille prison in Paris - an attack on liberty by fanatics who despised human rights.
"We are facing a battle that will be long because facing us is an enemy that wants to continue to strike all people and all countries that have values like ours," he said.
A man reacts near bouquets of flowers near the scene where a truck ran into a crowd at high speed killing scores and injuring more who were celebrating the Bastille Day national holiday, in Nice, France, July 15, 2016.
France is home to the European Union's biggest Muslim population, mostly descended from immigrants from North African former colonies. It maintains a secular culture that allows no place for religion in schools and civic life, which supporters say encourages a common French identity but critics say contributes to alienation in some communities.
The Paris attack in November was the bloodiest among a number in France and Belgium in the past two years. On Sunday, a weary nation had breathed a sigh of relief that the month-long Euro 2016 soccer tournament had ended without serious incident.
Four months ago, Belgian Islamists linked to the Paris attackers killed 32 people in Brussels. Recent weeks have also seen major attacks in Bangladesh, Turkey and Iraq.
U.S. President Barack Obama condemned what he said "appears to be a horrific terrorist attack". Others world leaders sent similar messages.
Nice, a city of 350,000, has a history as a flamboyant aristocratic resort but is also a gritty metropolis. It has seen dozens of its Muslim residents travel to Syria to fight.
On social media, Islamic State supporters celebrated the high death toll and posted a series of images, one showing a beach purporting to be that of Nice with white stones arranged to read "IS is here to stay" in Arabic.