As US President Donald Trump took tea with the Queen in the exalted halls of Windsor Castle on Friday, tens of thousands of people thronged the streets of central London, in a huge and colorful demonstration against a visit that aroused deep opposition in the UK.
"Stupid, callous, fragile, racist, narcissistic POTUS," declared one man's sign. The play on words from a "Mary Poppins" song was one of the less profane declarations of dissent. Another placard read: "Don't worry! This protest is just fake news!"
For those who hadn't prepared their insults at home, piles of placards emblazoned with anti-Trump messages -- such as "Dump Trump" and "World's #1 Racist" -- lay banked by Oxford Circus underground station for anyone to pick up.
Others left their wit aside, wearing face masks printed with a simple message: "Trump stinks."
Police in the city did not give an estimate on the turnout, but at one point said they were forced to close off Trafalgar Square, where protesters were headed for an evening rally, as it had nearly reached capacity. Organizers claimed 250,000 turned out to voice their opposition to Trump, and while there is no way to verify that figure, it was clear that this was one of the biggest demonstrations in London since 1 million people rallied against the Iraq war in 2003.
Protesters listed a litany of grievances about the US President, from his attitude toward women to his hard-line policies such as family separations of migrants at the US border and the ban on travel from some Muslim-majority countries.
Julia Lalla-Maharaj, a women's rights activist, marshaled the crowds with a loudspeaker. "Resist!" she cried. "We have had enough. We have got to stand up because now is the time."
Chants rang out from the waiting crowds. "Say it loud, say it clear, Donald Trump's not welcome here," and "Hey ho, hey ho, Donald Trump has got to go."
'It's all so totally offensive'
Despite the vitriolic slogans and chants, the mood was festive, rather than aggressive, as Londoners enjoy a long run of sunshine.
People of different ages and ethnicities, families, mothers with strollers, retirees and wheelchair users all joined the march.
Three-and-a-half-year-old Buster Dugdale from London, already on the sixth protest of his young life, danced among the bubbles sprayed by Palestinian protester Bashar Bahlawan, 23, wearing an outsized T-shirt declaring "Choose love."
Buster's mother, Beth Evans, supports the "Help Refugees" aid organization and said it was important to show her opposition to Trump's policies.
The Rev. Ian Welch, a Church of England vicar from St. Andrew's Church in Mottingham, southeast London, was there with his wife and a friend.
Welch said he was dismayed that the UK government had welcomed Trump to the country. He said he turned out to the protests in solidarity with others who felt Trump was a reactionary and regressive force.
"The way that he's spoken about Islamic people, the way he's spoken about Mexicans crossing the border, his attitudes towards women and gay people -- it's all so totally offensive. He's broadcasting poisonous attitudes towards the community, so I think we all have felt we needed to organize to keep idealism alive and to make sure that message of hate isn't embraced by people," he said.
Founders of the "Pink Protest" -- 26-year-old Alice Skinner, a political illustrator and activist, and 24-year-old Grace Campbell -- carried a homemade banner playing on the "special relationship" between the UK and US that Trump and UK Prime Minister Theresa May regularly tout.
Skinner said: "Trump is basically everything we think is wrong with the world and he's not welcome here in London." She questioned the message Trump sent to girls and young women through his comments and women's allegations against him.
Des Kay, 67, from southwest London, made an eye-catching dinosaur entirely from reclaimed materials, an artistic commentary on Trump's "prehistoric policies."
"We have got to look at a future world which isn't dependent on taking 4% of your money to put into arms," he said, referring to Trump's call for NATO allies to double defense spending targets.
Two male Trump supporters holding "MAGA" placards -- a reference to the Trump campaign slogan "Make America Great Again" -- stood to one side as the crowds assembled for the march.
They declined to speak to CNN but one said they were not there to make trouble. Other Trump and anti-Trump supporters were seen in a shouting match outside a nearby pub.
'I think Trump's a nightmare'
While many of the protesters were from London, others had traveled from farther afield to make their voices heard.
John Malone, a 65-year-old retired teacher from Bristol, came on a chartered bus from the southwestern city to join the protest.
"I'm here because I think Donald Trump is the most destructive force in the world today," he said. Malone last joined a protest in 2003 to try to stop the Iraq war. "Nothing has moved me as much since then except Trump."
The Hofford family, from Hong Kong, came to demonstrate while visiting family in London. Jacques Hofford, 9, who was on his first protest, held aloft a "Dump Trump" sign.
"I think Trump's a nightmare," said Alex Hofford, Jacques' father. "It's really affecting everybody. He's just kicked off a trade war against China and it's really destabilizing for everyone."
At the rally in Trafalgar Square, opposition Labour leader Jeremy Corbyn got perhaps the biggest cheer of the evening.
"Our message to our visitor is: We are united in our hope for a world of justice, not division," he declared. "We are united in our hope to end racism and misogyny, we are united in hope for all our diversity."
Over to one side of the square, campaign group Avaaz set up a wall where people could write their own messages as part of a giant open letter to Trump. Lyra, 3, and Alia, 6, wielded pens as mother Anna Boyd looked on. "I cannot believe that Britain would put up with all the things that Trump is doing just for the sake of a trade deal," she said.
Meanwhile, Mobashra Tazamal, a 28-year-old immigrant to Britain from Washington, DC, said she was determined to take part despite having surgery the previous day. "I'm American, I'm a Muslim, I'm a woman, so every part of my identity has been attacked by the (Trump) administration," she said.
"This is the culmination of all my anger I've been feeling and haven't been able to express. Also to see a lot of other people who feel the same way -- and not in America, in London -- it's really heartwarming."
As the rally came to a close, people cooled down from a long, hot day of protest by splashing in the fountain in the middle of Trafalgar Square.
A final video message from Patrisse Cullors, a founder of the Black Lives Matter movement in the United States, played out as the crowds thinned. "We have to fight together," she said. "When we fight together we are more powerful, and when we fight together we are braver. Thank you."