Tonight’s debate was the biggest disaster for Joe Biden since this race began.
White House aides have spent the last three weeks claiming that any stories about the US president’s age and mental capacity were manipulated “cheapfakes” or outright lies.
But those at home watching the two men on stage tonight were left with an unavoidable conclusion: Mr Biden struggled to hold his own, and Donald Trump wiped the floor with him.
As the event opened, the camera first panned to Mr Biden as he made his way on to the platform, his microphone picking up the sound of him mumbling to himself.
In the first words he spoke, it became clear the seven days of intense prep had led to him losing his voice. He sounded croaky and feeble.
From then on, every answer Mr Biden gave contained at least one sentence that trailed off, or a series of words that were incomprehensible to the TV audience.
The most excruciating moment came ten minutes in, when Mr Biden gave a rambling answer about the national debt. His response trailed off into a thought on the coronavirus pandemic, which went nowhere.
For several seconds, you could have heard a pin drop. Mr Biden looked down, then straight at the camera. No words came.
“We beat Medicare…”, he began, in an attempt to restart his answer, but was cut off by the moderator.
Trump chimed in: “He did beat Medicare. Beat it to death.”
The strict rules for tonight’s debate prevented either candidate talking over the other, and each was equipped with a microphone that would automatically shut off at the end of their allotted time.
Trump, who said he had not taken part in any mock debates, did not quite manage to keep his trademark rambling under control.
He spent a fair portion of his time telling far-fetched stories about various groups and people who supported him and trying to disprove each of Mr Biden’s criticisms.
But he did his best to reassure the ever-shrinking number of undecided voters on some policy issues, by ruling out a federal ban on abortion pills and insisting that he would not accept Vladimir Putin’s offer to end the war in Ukraine.
Perhaps unsurprisingly, the most heated exchanges between the two men were on personal issues, not questions of policy.
Mr Biden, who has often criticised Trump for his love of personal insults, was much more aggressive than he has been in the past.
He called him a “sucker” and a “loser” and, 40 minutes in, referred to him as a “convicted felon” who had slept with Stormy Daniels, molested women and held the “morals of an alley cat”.
The character takedown went well, and he tricked his opponent into saying the words “I did not have sex with a porn star”, which will now be endlessly clipped for social media.
Trump came back with a direct attack on Mr Biden’s age, after making several comments about his speech being difficult to understand.
“He’s not equipped to be president. You know it and I know it. It’s ridiculous,” he said.
The two men then spent almost two minutes discussing their golf handicaps, in an unedifying exchange in which both boasted of their skills that no one believes exist.
CNN’s live feed of the debate sometimes split the screen to allow viewers to watch the reaction of each nominee to the other’s attacks.
When Mr Biden was being criticised, the screen showed him standing with his mouth open, eyes darting from side to side, looking aghast.
Even his closing statement – a pre-rehearsed two minutes of airtime – had at least three mistakes and verbal slip-ups that made it difficult to follow.
Trump was undeniably tonight’s winner. Mr Biden’s position as the Democrat nominee is now in major jeopardy.