While Washington DC and New York are reeling - and protesting - after a Trump win, Hazleton, Pennsylvania is celebrating. The BBC's Jessica Lussenhop spent time with some of Trump's "invisible voters" who, as it turns out, were in plain sight all along.
Republican congressman Lou Barletta claimed victory long before Donald Trump did on 8 November. While the ballot counting for president would go on into the wee hours, by 10pm Barletta was on a small stage in a high-ceilinged restaurant in downtown Hazleton, Pennsylvania, thanking his supporters for re-electing him for a fourth term in his 11th district seat.
"I think we win by more each time," the 60-year-old said to raucous applause from the crowd of roughly 200.
Barletta's district is a long, club-shaped collection of nine counties in the conservative, northeastern part of Pennsylvania. It is these rural counties whose Republican votes for president often get cancelled out by the big, solidly Democratic cities to the south and west: Philadelphia and Pittsburgh. The state has gone for every Democratic presidential candidate since 1992.
But on election night 2016, something different happened. For the first time in decades, the voters of rural and suburban Pennsylvania overwhelmed the city-dwellers and went red. Almost all the polls predicted the state was safely in Clinton's grasp. What happened in Pennsylvania on 8 November was a huge upset.
Luzerne County, where Hazleton is located, went for Barack Obama in 2012 by 52% - this year, Trump took the county with 58% of the vote.
Barletta endorsed Trump early in the race, and is said to be one of the few members of congress that the president-elect trusts. He was included in the small group of advisors Trump brought to his first national security briefing.
As the evening progressed and the Trump victory crept closer to inevitability, Barletta - who has said that he was pressured by colleagues not to endorse Trump - was feeling vindicated in more ways than one.
"This is a movement that will not die tonight. This movement will live tomorrow because of Donald Trump," he said.
"I think there's a lot in common with what I started here in Hazleton 10 years ago and where we are today."
Hazleton is the kind of place reporters go when they want to put a human face on big national issues. In Hazleton, the issue is immigration - since 2000, the small coalmining city has gone from over 90% white to nearly 50% Hispanic. Many migrants came from nearby New York City for jobs and a lower cost of living.
Their presence, while it revived what was a dying town, has met significant resistance. In 2006, when Barletta was the mayor, he and his city council passed a law that punished landlords for renting to undocumented immigrants and employers for hiring them. Barletta made English the town's official language.
Though the crime rate has gone up in Hazleton, Jamie Longazel, a professor of sociology at the University of Dayton who wrote a book about Hazleton's immigration fight, said there is little evidence that it began because of immigrants. Unemployment in Luzerne County is relatively low, but the jobs available aren't particularly good ones.
"There's a lot of poverty in this town. There's Latino folks who are poor and white folks who are poor. With poverty people turn to drugs," said Longazel.
The American Civil Liberties Union sued Hazleton, and after a prolonged court battle, the city lost in 2014 and was stuck with the ACLU's $1.4m legal bill. The outcome was trumpeted as a victory against racism, Hazleton's story became a warning to any city that would try something similar, and Barletta was cast as the villain.
However, in his own community, Barletta's support never waned. He won a second term as mayor, and rode his popularity and hardline stance on immigration to his first congressional term in 2010.
Though the immigration laws never took effect, the frustration of the white, working class population of Hazleton - which suddenly found itself in the minority - did not go anywhere. And they turned out in droves to vote in this election.
For Anne Marie Kaschak, a poll watcher for the Republican party at a polling place in Hazleton, support for Trump and support for Barletta go hand-in-hand. As soon as she heard Trump's now-infamous speech on immigration and building the wall, Kaschak said she was a "pro-Trump girl all the way".
There is a sense among voters like Shirley Berman, who ran a toy store in Hazleton for 40 years, that the town is a microcosm reflecting the broader sense of anger in the country.
"That makes you angry when you see the change over the years," she said. "It used to be a very safe and co-operative community, and it is no longer safe."
Trump supporters had been saying for months that they were part of - as Barletta put it - a movement. The media and pundits ignored them. The polls underestimated them. While the political reporters deemed Trump's campaign to be one of the worst run in history, volunteers like Jen Sloot became a foot soldier in Trump's supposedly non-existent ground game.
"I kind of gave up my life for this," she said.
Sloot helped open the Trump campaign office in Hazleton and is also a huge Barletta supporter. A US citizen who immigrated from South Africa, Sloot made thousands of calls and knocked on countless doors for her candidate over the last several months.
"I came to this country in 1978, and I did it the right way," she said. "I just feel very strongly that everybody who wants to immigrate to this country should do it the right way. You don't just walk in here … illegal is illegal."
The ground game was also made up of people like Mark Ondishin - a 51-year-old lifelong resident of Hazleton - who was inspired to mobilise politically for the first time in his life. He began volunteering with his wife Brenda at the local Trump campaign office, making hundreds of phone calls. Their dedication, says Brenda, has been all-consuming.
"You should see my house," she said.
On the other end of those campaign calls, Mark said he received overwhelming positivity, and a sense of relief that they had someone to unburden themselves to about their mistrust of Hillary Clinton, about their skyrocketing medical premiums, or their enthusiasm for Trump's Mexican border wall.
"The general country's in decline - I think that resonates with voters for Trump like me."
Ondishin, who was so anxious about the results of the election that he went driving from polling place to polling place just to see how long the lines were, began election night somewhat despondent, believing he was about to see all his hard work amount to nothing. When it became clear that Trump was going to win, Ondishin turned introspective.
"People want a change, they don't like where the country's going and nothing gets done. That trickles down to all these small towns," he said. "Small businesses are the backbone - we take care of the uneducated. The world's gotta have ditchdiggers."
He said that even though he doesn't have to by law, he provides a health care plan for his seven employees. He said his premiums are about to go up by 30%.
"I can't give them any more raises," he said. "I'm on my wife's [healthcare] plan, that's how bad it's getting. This is why people are frustrated, that's why they're voting for Trump."
After Clinton's concession in the early hours of 9 November, it became clear that this was a change election. Trump was promising white workers their livelihoods back, Clinton was a business-as-usual Washington DC political elite.
Brad Morgan, a business owner in Harrisburg, about an hour and a half from Hazleton, said his fear of Clinton's unchecked political power is what motivated him to vote for Trump, who he actually didn't like much as a candidate.
"I did not have a Trump sign in my yard, I didn't have Trump stickers out there - I do have a Hillary for Prison sign out there," he said. "Donald Trump - he basically has half of the GOP who doesn't like him, the entire media establishment industrial complex can't stand him. What's he going to be able to get away with? Absolutely nothing.
"What would stop the Clintons if they got in? Absolutely nothing."
Part of what helps explain Trump's victory is his supporters' utter disdain for the media. At the victory party in Hazleton, the TVs were tuned to Fox News which drew a surprising number of jeers - clearly even the most conservative US television network is no longer conservative enough for the base.
"The media is not being honest with the voters in the United States," said John Keegan, a pharmacy owner in town. "They have their own agenda. That's part of Trump's movement. Even if he lost that would continue."
Revelations from various media outlets about Trump's conduct with women, or the questionable inner workings of his charitable foundation, or the likely content of his taxes, were seen not as news stories but biased attacks on their candidate. And even if the allegations are all true, the change that Trump promised was worth taking the bad with the good.
"That thing with the women cut me like a knife," said Ondishin. "But I have no choice but to support him. [The Clintons'] control of Washington is scary."
On election night, reporters were already asking Barletta what he'll do if Trump asks him to join his cabinet, but he just smiled and demurred (Trump since announced that Barletta will be a part of his transition team). What Barletta will say is that he sees perfect parallels between his story and Trump's: the fight against illegal immigration, the disdain from the media, and an ultimate vindication at the ballot box.
As it turns out Trump's voters were not silent or invisible - Trump's voters are Barletta voters. They're the struggling white working class who felt that for eight years their lives have only gotten harder, their needs shuffled to the bottom of a pile on some desk in Washington DC. They've been here the whole time, waiting for a candidate like Trump to sweep them off their feet.
"I think we're going to see America great again," Barletta said.