“Anomalia” might be a mouthful. But so are the pizzas in the display case at Anomalia Pizza, the New York-style slice shop that opened last month across from the Fort Washington SEPTA rail station, in what had been Little Italy for two decades.
The thin-crusted, 18-inch rounds are generously topped, though the crispy, sturdy bottoms can stand up to all the blistered cherry tomatoes, mozzarella, and olive oil layered atop the bruschetta pie, for example. Red pepper pesto gives sweet balance to the rib-eye, Cooper Sharp, and caramelized onions on the Italian Stallion. Close your eyes and take a bite of the plain red-sauce pizza, and you could almost believe you’re in Brooklyn and not a mile off of Route 309 and the Pennsylvania Turnpike.
The drunken grandma pizza at Anomalia Pizza, 414 S. Bethlehem Pike, Fort Washington.
The world needs to know about Anomalia’s drunken grandma, a crispy, almost buttery-bottomed square topped with fresh mozzarella and ribboned with a thick, creamy vodka sauce amped with pancetta. Other hits include the stromboli and the uncommon mozzarella in carrozza — basically, a mozzarella stick in sandwich form (cheese tucked inside bread, crusted with bread crumbs, and fried).
There are no actual sandwiches for now.
The owners, Long Island native Deena Fink and Florida-born Frank Innusa, had a classic meet-cute: An opera singer, she went to New York University to study musical theater, and he moved to Manhattan to become an actor. They met while working at the Hard Rock Cafe in Times Square, she tending bar and he waiting tables.
“Oh, you’re an actor?” Innusa said, parroting a joke that probably dates to vaudeville. “What restaurant?”
“Most actors get out of the business when they land a TV show,” said Innusa, 40, as he topped a plain pie last week while a gaggle of kids from nearby Germantown Academy awaited their orders. “I kind of fell out of love with acting — and fell in love with restaurants.”
Frank Innusa and Deena Fink at their pizza shop Anomalia in Fort Washington.
He and Fink were married in 2018 and a year later moved to Florida for a change of pace. Innusa enrolled in a motorcycle-mechanics program, but COVID-19 made hands-on training impossible. “I still had to pay full tuition,” he said. “So I stopped — and that’s when I really started cooking.”
Cooking, he said, became an obsession. “I’d wake up thinking about it and go to sleep thinking about it,” he said. “I hadn’t felt that since acting.”
Innusa’s father had made pizzas and calzones at home, but with social-distancing restrictions in place, the fascination stuck. “He was reading the books, watching the videos, testing dough,” Fink said. “So much dough testing.”
Stromboli await the lunch rush at Anomalia Pizza.
Innusa filled a notebook with flavor combinations and textures, she said. That experimentation now shows up as Anomalia’s “pizza of the week.”
Back in New York after the pandemic, Innusa got his first pizzeria jobs at King Umberto and West End Pizza on Long Island, while Fink, now 33, managed and performed at the Duplex, the West Village cabaret where she performed years before.
Rather than add to the roster of New York pizzerias, they looked toward Philadelphia, which had long appealed to them as “a smaller city with a big food scene,” Fink said. “Fifteen minutes outside the city, there are trees and deer. That balance really drew us.” They moved to Chestnut Hill, and Fink took a job nearby at Chestnut Hill Brewery at the Market at the Fareway.
A mozzarella in carrozza at Anomalia Pizza in Fort Washington.
Their original 10-year plan for Anomalia was a food truck, but they learned that the owners of Chicko Tako, the market’s Korean-fusion stand, were selling their other business, Little Italy.
Innusa said he wanted to name the shop Anomalisa, after the 2015 movie. “But Deena said, ‘It doesn’t mean anything,’’’ Innusa said. She suggested anomalia, Italian for “anomaly” and pronounced “a-nom-a-leah.”
“We want to be different from the norm, not the usual,” Innusa said.
Anomalia Pizza, 414 S. Bethlehem Pike, Fort Washington, 215-628-3845, anomaliapizza.com. Hours: 11 a.m. to 8 p.m. Tuesday to Sunday.
There’s joyous chaos inside Indian markets on Diwali — and mithai (sweets) are at the center of it. The Festival of Lights, significant for people of Hindu, Jain, Sikh, and Buddhist faiths, falls on Monday, Oct. 20. Like clockwork, laddoos, gajar ka halwa, burfi, gulab jamun, and more, have begun to fill display cases with the vibrant, colorful sweets (made with dairy, sugar, and nuts) beckoning guests to pack two or three boxes for their loved ones.
There’s gajar ka halwa, a carrot-based treat studded with nuts; and gulab jamun, made sweet with rose water syrup and sometimes coated in coconut. Kulfi is a traditional creamy no-churn ice cream, similar to frozen custard with a distinct taste of the fruits and nuts it’s flavored with. Then you have creamy, milk-based mithai like burfi, ras malai, kalakand, and cham cham. And you can’t forget about laddoos, rava kesari or suji ka halwa — nutty, semolina-based sweets.
Whether you’re gifting or feasting by yourself, here are a handful of Philly spots to get your mithai in time for Diwali.
“Mithai is the go-to gift to bring to people or celebrate with,” said owner Paramjit Singh.
There’s fresh, frozen, and canned mithai offered at the shop. Packaged boxes sit in the front. Canned are stacked on shelves, and frozen packages from India and Canada are in the refrigerators in the back.
Singh has a variety of options for the area’smany students and price-conscious customers. But he noted that prices of mithai have increased as well as the cost to ship boxes from India.
Find boxes of bundi and motichoor laddoo, gulab jamun, badam and kaju burfi, kalakand, and a variety of Bengali sweets in the fresh market up front.
With the Philadelphia Sikh Society nearby, this Upper Darby store is bustling with energy on Diwali morning, said co-owner Mohinder Pal.
“Mithai is a favorite, everybody likes it,” he said.
Walk up to the refrigerators next to the cashier station and pick from a variety of boxed mithai. There’s gajar ka halwa, laddoos, assorted cham cham, coconut and regular gulab jamun, and more. Frozen mithai is also available.
📍6700 Market St., Upper Darby, 📞 610-352-3400, 🌐facebook.com/sabjimandi, 🕑 Monday to Sunday 9 a.m. to 8 p.m.
A traditional Indian Ice Cream (Malal Kulfi) topped with poached blueberries and creme-de-cassis, at Veda in Philadelphia, Pa., on Thursday, May 25, 2023.
Inside this modern bistro in Rittenhouse Square, order kulfi topped with poached blueberries. The dessert is sweetened with sugar that’s added as the milk is reduced in a flat pan. It’s frozen with crushed cardamom seeds mixed in that bring an inviting texture to the kulfi. Enjoy for $7 at Veda. (The dessert is also offered at Bhasin’s four other restaurants: Indiya in Collingswood, Coriander in Voorhees, and Naan in Moorestown).
📍 1920 Chestnut St., 📞 267-519-2001, 🌐 vedaphilly.com, 🕒 Daily, 11:30 a.m. to 2:30 p.m. (lunch) and 4:30 to 9:30 p.m. (dinner), till 10 p.m. on Friday and Saturday.
On Chestnut Street, you’ll find freshly made gulab jamun, gajar ka halwa, and ras malai. Step into the restaurant and you’ll see the tub of brown spheres soaking in a sugary bath in the display case. That’s gulab jamun. The ras malai is milky, soft, and sweet. The gajar ka halwa is creamy, filled with carrots and perfectly nutty — it’s a specialty item for the fall and winter season.
“Ras malai is really the selling item,” said owner Asad Ghuman. “We get catering orders and families coming in to the restaurant (for food and sweets).”
📍4201 Chestnut St., 📞 215-222-8081, 🌐kabobeesh.com, 🕑 Monday 11 a.m. to 11 p.m., Tuesday to Sunday 11 a.m. to midnight.
If you’re in West Philly, small boxes of gulab jamun, gajar ka halwa, and orange sticky, sweet jalebi wait for you. Kheer or rice pudding, and ras malai are also available.
Wah-Gi-Wah in University City is a big fan of Crown Kulfi. Restaurant manager Muhammad Khan said they previously served housemade kulfi but switched to the premade brand. “[The brand] is very famous over here in Philadelphia,” he said. Enjoy chocolate, coconut, almond, pistachio, mango, and malai as frozen pops ($3) or in cups ($4.50).
Maura Manzo, founder and director of yoga studio Camaraderie in Ambler, previously owned the Yoga Home studio in Conshohocken but stepped away during the pandemic.
When she was looking to get back into the business, she chose Ambler.
“I was looking for a vibrant, walkable downtown, rooted in community,” Manzo said.
She was encouraged by the presence of a food co-op, Weavers Way, which “signaled to me that this is a community invested in sustainable, healthy living — values that align beautifully with a yoga community,” as well as the other businesses around.
“There’s a balance of restaurants, arts and culture, and shopping that creates a wonderful, rich community and attracts people,” Manzo said.
Centrally located in Montgomery County, the borough of Ambler has become home to an eclectic blend of retailers, restaurants, and services. Its downtown business district includes a spa, tuxedo rentals, a bakery, a tattoo parlor, hair salons, and restaurants from all different culinary genres.
People walk along Butler Avenue among various shops and restaurants in Ambler.
The borough started as a mill town in the 1700s and evolved into a factory town run by the Keasbey & Mattison Co. in the 1800s. Many of the original buildings from that period still exist in the downtown district.
The borough has been consistent in its preservation efforts. Recently an ordinance passed to be sure that any new construction reflects the existing architectural charm, said Ambler Main Street manager Elizabeth Wahl Kunzier.
Still, the area has continued to evolve, recently adding a food hall with 10 vendors, seeing the merger of two established Ambler boutiques into one new storefront, and promoting downtown events on social media. With the holiday season approaching, business owners are looking ahead to their busiest time of year and gearing up for a number of seasonal events.
“We have a pretty good organic social media reach,” Wahl Kunzier said. “It took a long time to get that where it is today, but given the nature of how the public gets information, it is very important to have a good following.”
Building momentum behind the scenes
Elizabeth Wahl Kunzier, Ambler Main Street manager.
Wahl Kunzier serves as the marketing lead for Ambler Main Street — the name of the nonprofit that promotes downtown Ambler, even though many of its businesses are on Butler Avenue rather than Main Street. She monitors the businesses’ social media accounts daily to see what they’re advertising and share the information more broadly.
Her office also organizes special events such as a semiannual restaurant week and a holiday shopping weekend. And the borough hosts a Farmer’s Market every Saturday from May through the weekend before Thanksgiving at the old Ambler train station.
“I work with business owners brainstorming on everything from vacant storefronts to customized events to keep the foot traffic coming,” Wahl Kunzier said.
“They were a large family of small businesses that looked out for each other and supported one another while also having patrons who were cheerleaders of their businesses,” he said.
An event board with various posters and advertisements for Ambler businesses and events.
Located in a historic warehouse, Ridge Hall has 10 dining spots and a second-floor venue called The Mercantile.
DeCastro is optimistic this food hall and retail concept will do well in Ambler, which he described as “on the cusp of breaking through as a destination town.”
“Chestnut Hill, Doylestown, New Hope, and Phoenixville have become towns that you simply go to without a commitment. Unless you live in Ambler, it takes a commitment to drive into town,” DeCastro said. With Ridge Hall, “I wanted to create a destination that would entice people to stay for the day and return sooner rather than later.”
Customers dine at Ridge Hall in front of Mary’s Chicken Strip Club.
Some of the district’s established restaurateurs perhaps would argue that Ambler was already a destination.
At Sorrentino Pasta + Provisions, customers find fresh pasta, house-made focaccia, and imported Italian goods for sale. The restaurant is open for lunch Wednesday through Sunday and dinner Thursday through Saturday, and it’s a BYOB.
“Lunch is steady and a great opportunity to grab a table since it’s a little more difficult at dinner time,” proprietor Rich Sorrentino said. “We are extremely lucky to have the customers we do. Most are from the borough, but a surprising amount travel a bit to come join us.”
Geronimo’s Peruvian Cuisine, also a BYOB, offers signature dishes such as ceviche, lomo saltado, anticucho de corazón, arroz con mariscos, pollo a la brasa, and many other authentic Peruvian dishes, said co-owner Daniel Salazar. It’s open Wednesday through Sunday.
“Weekends are busy nights for us, we highly recommend calling the restaurant for a reservation,” she said. “Our goal here is to bring a cultural experience, to share a great cuisine that has history, flavor, and a little bit of mystery.”
A tale of two stores
Jeanne Cooke (left) and Barb Asman in their combined store, which opened earlier this year, bringing together XTRA Boutique and Main Street Vintage.
Jeanne Cooke, owner of Main Street Vintage, sold painted furniture, vintage wood furniture, new and vintage home accessories, and artwork at her Butler Avenue shop for years. Just down the street, Barb Asman’s XTRA Boutique was selling women’s clothing.
“Barb and I have been looking in windows in Ambler for years. We felt we needed more square footage to take our businesses to the next level,” Cooke said. “The merge was seamless. I guess because we talked about it for quite some time.”
The new experience is like shopping in a beautifully decorated home where you can buy all the furnishings. The two owners design the merchandising collaboratively, and the two businesses are intertwined.
The back of the store, where Main Street Vintage’s furniture and home decor are on display.
Asman said they are excited for what the future holds.
“I sometimes stand in the middle of the store and say: ‘Wow, this feels so good.’ It’s hard to put it into words,” Asman said. “It’s a really good feeling.”
Compared with other Latin American communities in the region, the Chilean crowd is quite small — by many estimates, in the low thousands.
But Cote Tapia-Marmugi knows that this is a passionate audience eager to get a taste of the homeland 5,000 miles away.
Alfajores at Copihue Bakehouse.
When she was about 10, Tapia-Marmugi’s family emigrated from Santiago to Westchester County, N.Y., where they frequented Los Andes Bakery, in nearby Sleepy Hollow. “Even if it’s a couple of hours away, you drive to it and it’s a thing that you do,” she said. “You spend your Sunday afternoon eating and buying all the goodies that you miss from home. You go, you have empanadas, you buy stupid amounts of junk food, and then you go home happy, and you do it again in a couple of months.”
She has created a similar destination a hundred miles south in downtown Ambler. Last month, she opened Copihue Bakehouse, named after Chile’s national flower and pronounced “ko-pee-way.” Along with local customers strolling Butler Avenue, she’s meeting Chileans who drive into town to order empanadas or the pastry known as tortas mil hojas, and sit at one of the few tables.
Those visits can run for an hour. “We chit-chat for a while, they tell me about where they’re coming from and what part of Chile they’re from, and they find out my background. Then they sit and order one thing, then they get up and browse a little bit, order some more and sit,” said Tapia-Marmugi, 40, whose husband, David Marmugi, a Venezuelan-born engineer, joins the conversation when he’s there.
Sometimes the food hasn’t even hit the case before it’s sold. Last weekend, she had made a batch of the flan-like semolina pudding called sémola con leche. “I didn’t even put it out, and people were like, ‘Oh, my God. You have this?’ and they scooped it right up,” she said.
A ladder shelf is stocked with groceries at Copihue Bakehouse in Ambler, Pa.
The selections in the cases are ever-changing and subject to sell out. The most popular items on the savory side are baked cheese empanadas as well as the cheese-and-onion empanadas known as pequén, served with pebre, a hot sauce made of coriander, tomatoes, parsley, chopped onion, oil, and vinegar. Tomato toast comes out on her house-baked Irish soda bread slathered with tomato and a sprinkle of salt and oregano, as well as traditional avocado toast — a popular South American snack long before Americans bougie-fied it.
You’ll find manjar, a sort of dulce de leche, in many desserts, such as the intensely rich lucuma cups (crispy meringue pieces in a creamy cup full of the fruit known as lucuma and whipped cream); the tortas mil hojas (flaky layers of pastry alternating with manjar and walnuts); brazo de reina (a sponge cake rolled with manjar and covered in coconut); and alfajores (thin, crunchy cookies with manjar in the center). She also sells various scones; cakes such as kuchen de nuez; pies (notably a buttery-crusted lemon meringue); and brown-butter chocolate chip cookies.
The counter of Copihue Bakehouse.
Along with teas and coffee from Càphê Roasters are mate, cafe helado, and mote con huesillo — traditionally a summertime drink made with peaches cooked in sugar, water, and cinnamon, and, once cooled, mixed with cooked husked wheat berries.
Tapia-Marmugi, whose family moved to Lansdale, Montgomery County, when she was a teen, came up as a cake baker. She won an episode of Netflix’s Sugar Rush, as she ran Mole Street Baker out of her home when she lived in South Philadelphia. In 2021, she joined Ange Branca’s pandemic incubator, Kampar Kitchen, to develop her savory cooking and also worked at the restaurant Kampar.
Table seating in the window of Copihue Bakehouse.
Since Tapia-Marmugi is vegetarian, so is everything she makes. “There won’t be any meat on the menu, which I know will [annoy] a bunch of Chileans,” she added, laughing. “But that’s just how I grew up.”
The walls of the sunny shop are filled with her framed photos. A rack is stocked with Chilean snacks, like the gummy candies called guaguitas; ramitas, a crunchy wheat stick; and Super 8 chocolate bars.
“This is kind of my ode to Chile — the food memories. I want people to go inside and feel like they’ve just stepped into a little piece of South America.”
Copihue Bakehouse, 58 E. Butler Ave., Ambler, copihuebakehouse.com. Hours: 8:30 a.m. to 3 p.m. Thursday to Sunday.
I should have read the fine print before I agreed to participate in a recent “Hoagie Throwdown” at Other Half Brewing in Fishtown, produced by my friends at the Delicious City Podcast. I assumed they’d drafted me simply to be a judge and taste their lineup of sandwiches from 20-plus restaurants vying to be Philly’s hoagie champ.
Two wrestlers, including one in a hot dog suit, tussle at a match held at Other Half Brewing in Fishtown where hoagies were also in competition.
But I was not meant to praise hoagies. I was summoned to the wrestling arena at Other Half Brewing to make them, something I’d actually never done before in a city where the meat slicer’s whirring hum is the lunchtime lullaby at a thousand neighborhood delis.
“Sorry if I wasn’t completely clear in my early communication,” said Eli Kulp after I’d reached out with concern a few days before the event. The former Fork and High Street chef-turned-podcaster thought it would be hilarious for me to participate in an Iron Chef-style “celebrity” hoagie-making scrum inside a wrestling ring against two still to-be-determined foes. “We want this to be fun for you.”
I couldn’t back out now. But I also wasn’t going down without a fight —and I needed help. A hoagie whisperer. A cold cuts QB coach. A seasoned pro to train me in the sweet science of hoagie-making.
I knew just who to call: Cara Jo Castellino, the sandwich queen of Fishtown’s Castellino’s Italian Market.
The owners of Castellino’s Italian Market in Fishtown, Matthew Barrow and Cara Jo Castellino, prepare to run Inquirer Restaurant Critic Craig LaBan through his paces at Hoagie Boot Camp.The exterior of Castellino’s in Philadelphia.
“You should come over to the shop … and make a test hoagie if you’d like to practice,” she told me.
Hoagie boot camp? That is exactly what I needed! Sign me up, Cara Jo!
Two days before the event, I stepped inside her little market at the corner of East Palmer and East Thompson Streets, and inhaled the heady aroma of cured meats and pickled peppers. Castellino was waiting. She handed me a black apron. I nervously tied it on as she led me into the narrow space behind the tidy counter, where a friendly crew was already in the lunch-rush groove: her husband and co-owner Matthew Barrow peeling sheer pink rounds of spicy capicola off the slicer; Pat Caviness hand-slicing mountains of ripe tomatoes; A.J. Jones busily assembling hoagies on the board; and Derrick Bobb (“We call him Bobb”) working the register with his unflappable charm.
Hoagie architecture 101
The life cycle of every Italian hoagie begins and ends with olive oil, Castellino says, but be careful to stripe the bread side-to-side (as opposed to lengthwise) so it doesn’t pool in the crease of the roll’s hinge and break: “You’ve got to protect the hoagie’s hinge at all costs … When your hoagie’s hinge breaks, it’s very sad,” she says.
The sandwich is then built atop the bottom of the roll, so that when it’s closed, every bite brings a consistent layer of each ingredient.
More roll protection comes from provolone rounds layered down like shingles. Castellino prefers mild provolone because its creaminess buffers against the salty meats to come. She deftly forms the slices of soppressata and mortadella into rosettes, whose bouncy pink curls trap flavor-boosting oxygen between their folds. “You don’t want a dense wad of meat,” she says, arranging gossamer kerchiefs of imported prosciutto over top for the finish.
“Three is the ideal number,” she says, referring to the quantity of different meats preferred for contrasting flavors and textures.
Castellino’s fingers move swiftly atop each hoagie, layering the tomato rounds, sculpting tufts of arugula (prized for its peppery bite and durability), then seasoning it all with more oil and red vinegar “like a salad.”
“Tuck her in!” she says, deftly coaxing the ingredients deeper into the roll with the serrated knife’s blade, slicing the sandwich in half and then rolling it inside paper like a lovingly swaddled baby. It’s fastened shut with a piece of tape. Tuck, roll, snap! Tuck, roll, snap! She makes it look so easy.
The meticulous layers of an Italian hoagie are revealed at Castellino’s Italian Market in Fishtown, built by “trainee” Inquirer restaurant critic Craig LaBan.
My turn. A mess. Too much olive oil immediately sogs up my hinge. My provolone is layered the wrong direction. My cold-cut rosettes are more crumpled balls than fluffy flowers. I bunch up the tomatoes, leave too many inedible stems on the banana peppers, then pile on so much arugula it looks like I’m trying to tame a wild bush. And whoa … the vinegar comes out in a gush!
“Once you do 100 of them, you’ll get the hang of it,” deadpans Castellino.
She patiently coaches me through another classic Italian; the fiery Adronos layered with spicy meats, peppercorn Asiago, and cherry peppers; the mellow Franklin with turkey, cheddar, and sweet bacon jam; a Caprese with milky mozzarella, juicy tomatoes, sweet balsamic, and silky ripples of prosciutto. Only by the last one do I finally manage to wrap a sandwich without half its crust hanging out. I feel encouraged but humbled.
“I don’t think I’m cut out for the lunchtime pressure of this hoagie counter,” I say as I gratefully hand back my apron.
“Nah, you absolutely killed it!” says Castellino, who, like any good coach knows just when to pump up her student for a big moment. She offers a parting secret: “Make exactly what you want to eat. People can feel the love and affection that goes into making a hoagie you yourself would want to devour.”
Three hoagies from Castellino’s Italian Market built by “trainee” Inquirer Restaurant during a stint at Hoagie Boot Camp.The Hoagie at Castellino’s in Philadelphia on Sept. 10, 2024. Food Styling by Emilie Fosnocht
Sandwich smackdown
I left hoagie boot camp with some genuine new skills. But would they be enough to spin gold from whatever ingredients awaited me on the competition table? Eli Kulp, channeling his best Vince McMahon impresario swagger, encouraged me to bring my own secret ingredient for added assurance: “If you’re not cheating in wrestling, you’re not trying!” I took the advice to heart as I stashed a few surprises in a small cloth bag that I hid beneath my black cape.
I arrived to the arena incognito, my face obscured by a Zorro mask and a wide-brimmed hat. Kulp’s words rang loudly in my head as I stood ringside and watched the Pro Wrestling Entertainment talent spar with an unlikely food theme: A bug-eyed, psychotic pizzaiolo named Luigi Primo blinded his competitor with spinning rubber pizza dough, while the Sandman (of Extreme Championship Wrestling fame) whacked the same guy across the back with a kendo stick with hoagie rolls taped around it. I watched a large man in a hot dog suit soar from the ropes to flatten his sweaty foe in the middle of that ring, sending the beer-soaked crowd of several hundred fans into a bloodthirsty roar.
To say I was a tad apprehensive as the hoagie table was set up in the middle of that same ring — with a wooden board of mystery ingredients for my own match — would be an understatement.
Reluctantly, I stepped into the ring with my competitors, the “cannoli-smashing bar-knuckle brawler” also known as FeedingTimeTV (aka Dave Wesolowski) and influencer “Doug _Chase_U,” who instantly began tossing our prosciutto into the crowd.
The ensuing mad scramble for ingredients was only the first of my concerns. I really began to sweat beneath my mask when Chase_U suddenly tagged inone of Philly’s best hoagie pros — Jason Okdeh, aka “Gabagool_Papi” of Farina di Vita — to commandeer his roll.
Only lightly shook, I snapped back to the ingredients before me, remembered my training, and stayed focused on my fundamentals. I quickly gathered three different meats, provolone, tomatoes, onions, banana peppers, and lettuce. But … where was the olive oil?!
The table was set with bottles of brown mustard, vinegar, and two kinds of mayo, including truffled mayo — the use of which should trigger automatic disqualification. But building my entry withoutolive oil, the life-giving elixir for any hoagie, would be like trying to play a stadium concert with your amp unplugged.
That’s when I knew it was time. I opened my cape, reached into my bag, and unveiled my secret weapon to the crowd: a jar of hoagie relish.
The secret ingredient
I lathered the spicy pepper spread on both sides of my rolls, aiming to impress the judges with a flash of juicy heat while also protecting the hinge. I tucked in my chosen ingredients, rolled my hoagies into shape, and delivered my tray to the judges: chef Bobby Saritsoglou of Stina (the recipient of multiple favorable restaurant reviews by yours truly), anonymous Instagram food critic Djour.philly, and Maria Maggio of Food Trade News.
They nibbled and scribbled while I waited, no longer feeling the squeeze. But suddenly I heard my name: I was the winner, with just two points more than Cannoli Crusher Dave.
Djour praised my hoagie’s “great ratio of salad to meat to wet fixins … (which) may or may not have been legally added.”
“We wanted to celebrate the Philadelphia hoagie,” wrote Saritsoglou. “And yours checked all the classic boxes (minus the olive oil, lol). My only regret was not jumping into that ring.”
Craig! Craig! Craig! Craig!
Was this crowd seriously chanting for me? Yes, they were! The emcee was holding a trophy high and calling back me in, and so I bounded up between the ropes, careful not to trip on my cape, and began babbling through a delirious ringside interview to recap the battle. Was I “having fun?” Oh yeah, you bet, as I took a tart and hoppy swig of Other Half’s Yuzu Queen from the chalice of my trophy.
It only felt real, though, when I spotted Castellino and her husband Matt in the crowd visibly cheering. I leaned into the mic and publicly thanked my hoagie whisperer in a Stallone-like croak of joy: “We did it, Cara Jo!”
It’s best for all I now graciously leave the sandwich-making stage to the professionals. No way would I ever wish to replace old favorites like Castellino’s, Lil’ Nicks, Pastificio, Farina di Vita, or upstart chef Reuben “Reuby” Asaram, whose hot pink “Undertikka” roll stuffed with Indian chicken tikka salad won the pro title — a reminder that Philly’s creative hoagie life force is infinite.
But for this one glorious afternoon, I put my critical cold cuts on the line. I paid tribute to Philly’s sandwich gods, fought to the crusty finish, and earned the title of “Hoagie Hero.”
Inquirer Restaurant Critic holds his “Hero of the Hoagie” trophy high inside the ring after winning a celebrity hoagie making competition held by the Delicious City Podcast at Other Half Brewing in Fishtown.
On the way back to the office from an assignment about pet bakeries, my colleague and I stumbled upon a true ice cream lover’s paradise: a rare brick-and-mortar Mister Softee.
While the trucks and their iconic jingles are a dime a dozen in the summertime, a free-standing Mister Softee is about as common as two Philly sports teams winning on the same night. (Too soon?) This one is cash only and open year-round, with a menu that spans ice cream swirls and floats to milkshakes and chocolate-covered bananas. My cup of strawberry and banana soft serve was thick, silky smooth, and anything but artificial-tasting. The roadside stand also gets bonus points for on-season sprinkles. It really is about the little things. Mister Softee of Pennsauken, 3605 Haddonfield Rd., Pennsauken, N.J., 856-662-3787, Facebook page
— Beatrice Forman
Francobolli at Fiorella
On a recent girls’ night out, my friends and I sat at the bar and took it upon ourselves to try four plates of pasta from Fiorella. A noble task, I know! There were no misses, and the current agnolotti dish — stuffed with a sweet polenta and topped with chanterelles — was exceptional.
But the dish that lives rent free in my head nearly a week later is the Francobolli clam pasta. We almost didn’t order it, but the bartender insisted; a man has never been more right on a girls’ night out. A pasta-fied take on vongole su crostini aka clam toast, the postage stamp-shaped pasta was stuffed with breadcrumbs and served in a white, brothy sauce topped with littleneck clams. It’s worth seeking out. Fiorella, 817 Christian St., 215-305-9222, fiorellaphilly.com
— Emily Bloch
The Francobolli at Fiorella, a pasta-fied version of clam toast.
Gourmet lamb sampler (for two!) at Zorba’s Taverna
I don’t need a fancy restaurant for my birthday. I prefer the comfort of a neighborhood favorite, and few are as wonderfully reliable as Zorba’s, the 28-year-old taverna that is one of Fairmount’s cornerstone restaurants. To begin with, a flaming platter of ouzo-splashed saganaki cheese beats a birthday candle every time. But Zorba’s also delivers a wide array of some of the most consistent traditional Greek cooking in the region, and the “gourmet” lamb platter for two is a true celebratory feast. (This is not to be confused with the also-delicious charcoal-grilled platter for two, which includes some fantastic lamb chops.)
The platter I chose is a tribute to the slow-cooked pleasures of lamb in three different styles: slices of tender roasted leg seasoned with garlic and herbs, Smyrna-style meatballs simmered in a cumin-scented red wine and tomato sauce, and finally, a meltingly soft mallet of lamb shank glazed in a lemony white avgolemono sauce with artichokes (a distinctive dish I sometimes order solo). This is rustic home cooking at its best, with deep flavors prioritized over fancy presentation. The platter’s aroma is entrancing, and, the tangy potatoes and mixed well-cooked veggies on the side make it extra hearty. My fork wouldn’t stop roaming until I savored every bit. Zorba’s Taverna, 2230 Fairmount Ave., 215-978-5990, zorbastavern.com
— Craig LaBan
The gourmet lamb platter for two at Zorba’s in Fairmount includes Smyrna-style meatballs, roasted leg, and a lamb shank in avgolemono sauce with artichokes.
Fried skate cheeks at My Loup
Bacalao who? My Loup’s fried skate cheeks are an elevated take on cozy fish fritters. The crispy fried batter works perfectly with the sweet, tender, puffed-up fish meat. The three balls are finished off with ají dulce peppers and a subtle horseradish sauce. My Loup, 2005 Walnut St.,(267) 239-5925, myloupphl.com
— Emily Bloch
Fried skate cheeks from My Loup in Rittenhouse Square.
Smash burger at American Sardine Bar
When I moved into my new apartment, my first priority was clear: Scout the neighborhood for my bar— a place where I will eventually be on a first-name basis with the bartenders. American Sardine Bar is well on its way to being that place. I’ve been four times since moving.
My first meal was top-notch: a Caesar salad with a side of French fries and a martini. A stellar way to begin this journey. This week, however, I sank my teeth into one of the best burgers I’ve had. American Sardine Bar’s smash burger (the best kind of burger, in my opinion) is a perfectly cooked beef patty nestled between pickled shallots, pickle slices, a 10K sauce, and a butter-toasted brioche bun. I’m not on a first-name basis yet, but I will go back and order as many smash burgers as I need to to make my dream a reality. American Sardine Bar, 1800 Federal St., 215-334-2337, americansardinebar.com
In 2020, Dallas litigator Kevin Kelley had a 10,000-square-foot space on the ground floor of his building that had been vacant for a year.
With the pandemic in full swing and no takers, Kelley built it out himself as a restaurant serving Southern comfort food and modern cocktails in upscale, TikTok-able environs.
“People came, they enjoyed it, and …” Kelley paused. “I was in it.”
Five years later, Kelley is in Center City Philadelphia to open his sixth Kitchen & Kocktails by Kevin Kelley, after locations in Chicago, Washington, Charlotte, and Atlanta. The Philadelphia restaurant, with 300 seats including a 25-seat bar, 50-seat private dining room, and a staff of 125, opened Saturday on the ground floor of the Cambria Hotel, at 225 S. Broad St.
Cooks work in the open kitchen at Kitchen & Kocktails, as viewed from the mezzanine.
Kelley also owns Kanvas Sports & Social, a sports bar, and Club Vivo, a nightclub, both in Dallas. By this time next year, he said, he expects to open six more Kitchen & Kocktails, and he isn’t ruling out a restaurant in King of Prussia, where he first looked before leasing the former Del Frisco’s Grille at the Cambria.
And to think — Kelley said — “if somebody had been willing to pay a small lease, I might not have opened a restaurant. But you know, God is good.”
Roses cover the walls in the stairwell at Kitchen & Kocktails.
Early interest spiked after a social-media blitz last month drove people to OpenTable. In only the first 24 hours, the restaurant booked 2,840 reservations, Kelley said.
Customers step into the sleek, high-ceilinged reception area, decorated with greenery, next to a wine tower. Staff greets everyone with a “welcome home,” Kelley said. The jade blue onyx marble bar is front and center next to an open kitchen. At a preview party recently, influencers deftly balanced their cell cameras and LED lights while climbing the stairs to the mezzanine through a gauntlet of red roses. Kelley also hosted nonprofit groups, including Mothers in Charge, which supports families who have lost children to gun violence.
Lamb chops and deviled eggs are prepared for a preview dinner at Kitchen & Kocktails.
The menu includes shrimp and grits, chicken and waffles, jerk lamb chops, fried catfish, and vegan bowls, served at lunch, dinner, and weekend brunch. The average dinner check, Kelley said, is about $75, including a drink or two. Even with white tablecloths, Kelley insisted that the restaurant is not fine dining: “I want a restaurant that everyone can dine in. Be the best of yourself, dress nice, bring your lady, but we want to be affordable for everyone.”
Diners take their seats at the new Kitchen & Kocktails.
Kelley has not given up his legal work. From Philadelphia this week, he said, he logged into a Zoom hearing to close out a multimillion-dollar settlement for clients in Texas. “But hospitality is my passion and the future,” he said, adding that he sees it as an extension of his legal work. “I’ve learned that people need to be cared for,” he said. “They need to be treated with respect. There is power in serving people.”
Kelley, 48 — who started his law firm at age 26 and still owns 100% of his companies — speaks often about Black entrepreneurship and ownership. “I believe diversity is extraordinary,” he said. “In order for us to learn from other cultures and for other cultures to learn from us, there have to be Black entrepreneurs.” His wife, Deseri, founded a company that designs luxury handbags.
Drinks on a table during a preview of Kitchen & Kocktails.
His company’s leadership is intentionally diverse. “My restaurant looks like I would want America to look like — where everybody’s represented,” he said. “My CFO is a Black female. My director of operations is a white male. I want to make sure that I give everybody an opportunity — Black, white, brown — because I think everybody should give Black people an opportunity as well,” he said. “I don’t want to be a Black man who has power that doesn’t give other people a chance.”
The Kitchen & Kocktails idea came to him from 2014 to 2019 as he shuttled between Texas and Spain while his sons played soccer at elite youth academies in Europe.
Diners attend a preview of the new Kitchen & Kocktails.The exterior of the new Kitchen & Kocktails restaurant.
“I ate a lot of tapas, a lot of pan con tomate, and jamón, but I missed Southern food: fried chicken, blackened shrimp,” he said. “I said, ‘When I come back to America full time, I’m going to open my own restaurant so that I can enjoy what I miss.’”
Kevin II is now a 20-year-old junior and Kristian is a 19-year-old sophomore, both student-athletes at Princeton University. “They played at Cornell University [in Ithaca, N.Y.] on Saturday, won that game [2-0, with one goal by Kristian], drove back that night with their team, and then on Sunday they came to the restaurant and worked a full day,” Kelley said. “Afterward, they rode back to Princeton to get back to their schoolwork.”
Kelley’s first restaurant opened in August 2020 as True Kitchen & Kocktails, but he dropped the “True” because of what he called a trademark concern. He said his team suggested that he add his own name “because they believe in my sacrifice and my investment in them.”
Kelley said his name on the shingle represents accountability. “I take great pride in that,” he said. “As long as I have my ownership, everything is my responsibility, good and bad.”
Kitchen & Kocktails by Kevin Kelley, 225 S. Broad, Philadelphia, Pa. 19107. Hours: 11 a.m. to 10 p.m. Monday to Thursday, 11 a.m. to 11 p.m. Friday, 10 a.m. to 11 p.m. Saturday, and 10 a.m. to 10 p.m. Sunday. Brunch: 10 a.m. to 2 p.m. weekends.
If you’re looking to clown around, look no further: Philadelphia’s quirkiest bar is a cross between a retro living room, an amusement park’s dumpster, and a clown collector’s dream.
Located above Kensingtonbar Kung Fu Necktie at 1248 N. Front St., the Neon Clown Dream Lounge has roughly 120 salvaged works of clown art competing for attention across the walls, the counters, and even the ceilings.
And yet, the bars’ owner — a man who would only refer to himself as Chicken (real name James Herman) — said the Neon Clown is not a shrine to the professional red-nosed jokers, despite its name and decor. Rather, Philly’s clown lounge is an ode to a few of Chicken’s favorite things: art deco furnishings, upcycled industrial trash, and a touch of clownery.
Chicken’s clown fascination began in the 1990s when he was building his career as an artist and gallerist inspired by Bernard Buffet, a French expressionist painter whose work often depicted downtrodden and almost skeletal clowns. Since then, the painted jokesters have flitted in and out of Chicken’s life. They became subjects of his own art and a bit for his band, Plaque Marks, which performs in full clown suits.
The main dining area inside Kensington’s Neon Clown Dream Lounge, which owner Chicken estimates contains roughly 120 different clowns.
“How can you cancel a clown?” Chicken, 64, said while knocking back his first of several tequila and ouzo cocktails over a recent interview. “There’s no prospect of offending anybody with a clown … Some people love them and some people dislike them, but there’s still a level of whimsy.”
The second-story space served as Kung Fu Necktie’s no-frills music venue until 2018, when Chicken said a Department of Licenses and Inspections officer ordered the second floor to close. The closure — coupled with the pandemic — gave the Kung Fu Necktie owner what he called the “perfect” opportunity to make something useful out of the salvaged wares he’d been collecting for decades from abandoned churches, condemned buildings, and going-out-of-business sales at theme parks.
When the Neon Clown Lounge opened in September 2024, it “was like a relief valve,” Chicken said. “I’ve had some of this s— for 30 years.”
The clown bar was an apartment before it was anything else. The living room was replaced by the bar’s main seating area, where a leather couch and a row of vintage seating from one of LaGuardia Airport’s lounges sit beneath a cluster of clown masks Chicken retrofitted into ambient light fixtures. The parlor was knocked out in favor of a stage paneled with leftover wood from a now-demolished house on Front Street; the room is outfitted with a disco light that spins above couches fit for a conversation pit.
The rest of the space is peppered with clown portraits and figurines both large and small, including a trio of eerily childlike wooden cutouts Chicken purchased from Obnoxious Antiques, a warehouse that mines amusement parks for treasure in Burlington, New Jersey.
There’s no criteria for what makes a good piece of clownery, Chicken said, other than that it captures the aura of the 1970s. The decade was a golden age for clowns in popular culture, not long after Barnum & Bailey opened the first clown college to train people to emulate characters like Bozo and Ronald McDonald.
The ceiling of Kensington’s Neon Clown Dream Lounge is covered with clown masks that owner Chicken retrofitted into lighting fixtures.
“I could’ve put out a bunch of crap you can buy at the dollar store,” said Chicken. “We want stuff that’s one-of-one and authentic. Something that is of the era, not replicated.”
A space for clowns, tended by the ‘clown neutral’
Bar manager Evan Madden — who self-identifies as “clown neutral” — said he tries to imbue the drinks program with the energy of a clown. Both, after all, are very serious about doing what some consider unserious work.
The Neon Clown Dream Lounge never has a cover, and the only food on offer are $2 hot dogs. The drink menu has 12 cocktails with names that conjure up images of killer clowns and carnival food, like “Endless Nightmare,” “Witching Hour,” or “Tropical Hot Dog Too.”
The Tropical Hot Dog Too (left) and Endless Nightmare (right) cocktails from Neon Clown Dream Lounge.
The Endless Nightmare is the lounge’s house margarita and uses Espolón tequila that Madden says spends just under a week marinating in a pineapple-lime mixture; on good weeks, the bar goes through six to eight 25-ounce bottles of the mix. The Witching Hour comes across as a spiked coffee, combining cold brew with rum, amaretto, mint extract, and a shot of dry Curacao for a citrus-y aftertaste. Tropical Hot Dog Too mixes smoky mezcal with a vermouth that spends hours steeping in a mixture of chilies, limes, and grapefruit liqueur.
Roughly once a month, Madden said, a group of clowns will sit at the bar in full costume and imbibe. “They’re appreciative of the space,” he continued. “There’s not a lot of clown bars in Philadelphia.”
Nearly every piece of decor inside the Neon Clown Dream Lounge has been thrifted or salvaged from abandoned homes, churches, or amusement parks.
Or anywhere, really. Outside of Philadelphia, the clown lounge’s only competition in the United States is Creepy’s in Portland, Ore., which has animatronic dolls and pinball, but only a fraction of Chicken’s clowns.
Still, not everyone is a fan, said Chicken: When the bar first opened, one customer left a review saying there weren’t enough clowns. Tough nuts, Chicken said with another cocktail in hand.
The clown lounge is “like a sanctuary … a safe zone,” Chicken said. “We want to make the space feel open and comfortable.”
It’s a brand-new year for The 76, The Inquirer’s annual list of the most vital restaurants in the Philadelphia area. This year, we started fresh with a new batch of dining scouts and an even wider purview, diving deeper into pockets of Philadelphia that we didn’t get to eat through last year. The result is a list that we hope is as vibrant, diverse, and interesting as the city that it reflects.
You’ll find some favorites from last year on 2025’s 76, which held on to their spots by being just as impressive as they were the last times we ate there (Friday Saturday Sunday still dazzles, as does Gabriella’s Vietnam).
But you’ll notice that there’s a good deal of turnover, too. More than half of the list is fresh — either classics we felt deserved their time in the spotlight, like the white-tablecloth red-gravy stalwart Dante & Luigi’s or chef favorite Pho 75, or new and new-to-us spots that reflect the shifting energy of the dining scene, like Indonesian karaoke hot spot Niki Echo and the revived Tequilas, a three-restaurants-in-one experience.
Advertisement
Our scouts, all 18 of them, fanned out across the Philadelphia area and ate through cuisines we were curious about, like the wide-ranging food truck landscape and the vibrant Mexican community in Norristown. We found a Main Line cheesesteak (Johnny’s Pizzeria) that rivals South Philly’s best. The result is a list filled with gems, some in plain sight and some that required a bit more hunting.
We think this list, which is unranked and alphabetical, is the most useful list of Philadelphia-area restaurants out there. Some hotly anticipated openings like Stephen Starr’s Borromini and Phila Lorn’s Sao opened too late to make the cut. But don’t worry, there’s always next year.
The 76 is how we think Philadelphia is eating right now, and — we hope — might help you uncover your next favorite spot. Grab a plate and dig in.
Advertisement
How The Inquirer makes its recommendations
The Inquirer aims to represent the geographic, cultural, and culinary diversity of the region in its coverage. Inquirer staffers and contributors do not accept free or comped meals — all meals are paid for by The Inquirer. All dining recommendations are made solely by The Inquirer editorial staffers and contributors based on their reporting and expertise, without input from advertisers or outside interests. More information about how The 76 was put together is available here.
Filter by
Genres
1
Regions
1
Price
1
Showing 76 places
Clear filters
The medium mixed grill and sides.Monica Herndon / Staff Photographer
BBQ captain Jason Kim cooks prime rib eye for the “Korean BBQ Combo B,” including prime cha dol begi, prime rib eye, marinated prime kalbi, steamed egg, scallion salad, doenjang jjigae or kimchi jjigae.Elizabeth Robertson / Staff Photographer
Pho order number 1: Slices of eye-round steak, well-done flank, fat brisket, soft tendon and beef tripe with added meatballs.Alejandro A. Alvarez / Staff Photographer
This is the second edition of The 76 and we’re looking for your feedback to make it even more useful. If you have thoughts about its design or features, we would appreciate a few minutes of your time by taking this survey.
Staff Contributors
Editing: Margaret Eby, Jenn Ladd, and Matt Buchanan
Reporters: Beatrice Forman, Craig LaBan, Earl Hopkins, Emily Bloch, Evan S. Benn, Evan Weiss, Hira Qureshi, Jake Blumgart, Jasen Lo, Jenn Ladd, Julia Duarte, Kiki Aranita, Max Marin, Michael Klein, Ryan Briggs, Tommy Rowan, and Ximena Conde
Social Editing: Esra Erol and Sam Stewart
Design, Art Direction, and Development: Sam Morris
Art Direction: Julia Duarte and Suzette Moyer
Photo Editing: Jasmine Goldband
Photographers: Alejandro A. Alvarez, Caean Couto, Tom Gralish, Jessica Griffin, Monica Herndon, Heather Khalifa, Yong Kim, Joe Lamberti, Elizabeth Robertson, Tim Tai, Isaiah Vazquez, Tyger Williams
Video: Gabe Coffey, Esra Erol, Jenna Miller, Samantha Stewart
`}tablecell(t,n){let r=n.header?”th”:”td”;return(n.align?“:“)+t+`${r}>
`}strong(t){return`${t}`}em(t){return`${t}`}codespan(t){return`${t}`}br(){return this.options.xhtml?” “:” “}del(t){return`${t}`}link(t,n,r){if(t=hi(this.options.sanitize,this.options.baseUrl,t),t===null)return r;let i=’“+r+”“,i}image(t,n,r){if(t=hi(this.options.sanitize,this.options.baseUrl,t),t===null)return r;let i=`“:”>”,i}text(t){return t}},kt=class{strong(t){return t}em(t){return t}codespan(t){return t}del(t){return t}html(t){return t}text(t){return t}link(t,n,r){return””+r}image(t,n,r){return””+r}br(){return””}},bt=class{constructor(){this.seen={}}serialize(t){return t.toLowerCase().trim().replace(//ig,””).replace(/[u2000-u206Fu2E00-u2E7F\’!”#$%&()*+,./:;?@[]^`{|}~]/g,””).replace(/s/g,”-“)}getNextSafeSlug(t,n){let r=t,i=0;if(this.seen.hasOwnProperty(r)){i=this.seen[t];do i++,r=t+”-“+i;while(this.seen.hasOwnProperty(r))}return n||(this.seen[t]=i,this.seen[r]=0),r}slug(t,n={}){let r=this.serialize(t);return this.getNextSafeSlug(r,n.dryrun)}},ie=class{constructor(t){this.options=t||me,this.options.renderer=this.options.renderer||new Qe,this.renderer=this.options.renderer,this.renderer.options=this.options,this.textRenderer=new kt,this.slugger=new bt}static parse(t,n){return new ie(n).parse(t)}static parseInline(t,n){return new ie(n).parseInline(t)}parse(t,n=!0){let r=””,i,s,o,l,a,c,h,u,f,p,x,y,k,w,T,b,D,B,Z,ce=t.length;for(i=0;i<ce;i++){if(p=t[i],this.options.extensions&&this.options.extensions.renderers&&this.options.extensions.renderers[p.type]&&(Z=this.options.extensions.renderers[p.type].call({parser:this},p),Z!==!1||!["space","hr","heading","code","table","blockquote","list","html","paragraph","text"].includes(p.type))){r+=Z||"";continue}switch(p.type){case"space":continue;case"hr":{r+=this.renderer.hr();continue}case"heading":{r+=this.renderer.heading(this.parseInline(p.tokens),p.depth,wi(this.parseInline(p.tokens,this.textRenderer)),this.slugger);continue}case"code":{r+=this.renderer.code(p.text,p.lang,p.escaped);continue}case"table":{for(u="",h="",l=p.header.length,s=0;s<l;s++)h+=this.renderer.tablecell(this.parseInline(p.header[s].tokens),{header:!0,align:p.align[s]});for(u+=this.renderer.tablerow(h),f="",l=p.rows.length,s=0;s<l;s++){for(c=p.rows[s],h="",a=c.length,o=0;o<a;o++)h+=this.renderer.tablecell(this.parseInline(c[o].tokens),{header:!1,align:p.align[o]});f+=this.renderer.tablerow(h)}r+=this.renderer.table(u,f);continue}case"blockquote":{f=this.parse(p.tokens),r+=this.renderer.blockquote(f);continue}case"list":{for(x=p.ordered,y=p.start,k=p.loose,l=p.items.length,f="",s=0;s0&&T.tokens[0].type===”paragraph”?(T.tokens[0].text=B+” “+T.tokens[0].text,T.tokens[0].tokens&&T.tokens[0].tokens.length>0&&T.tokens[0].tokens[0].type===”text”&&(T.tokens[0].tokens[0].text=B+” “+T.tokens[0].tokens[0].text)):T.tokens.unshift({type:”text”,text:B}):w+=B),w+=this.parse(T.tokens,k),f+=this.renderer.listitem(w,D,b);r+=this.renderer.list(f,x,y);continue}case”html”:{r+=this.renderer.html(p.text);continue}case”paragraph”:{r+=this.renderer.paragraph(this.parseInline(p.tokens));continue}case”text”:{for(f=p.tokens?this.parseInline(p.tokens):p.text;i+1<ce&&t[i+1].type==="text";)p=t[++i],f+=`
`+(p.tokens?this.parseInline(p.tokens):p.text);r+=n?this.renderer.paragraph(f):f;continue}default:{let Ie='Token with "'+p.type+'" type was not found.';if(this.options.silent){console.error(Ie);return}else throw new Error(Ie)}}}return r}parseInline(t,n){n=n||this.renderer;let r="",i,s,o,l=t.length;for(i=0;i{if(r.message+=`
Please report this to https://github.com/markedjs/marked.`,e){let i=”
An error occurred:
"+R(r.message+"",!0)+"
“;if(t)return Promise.resolve(i);if(n){n(null,i);return}return i}if(t)return Promise.reject(r);if(n){n(r);return}throw r}}function xi(e,t){return(n,r,i)=>{typeof r==”function”&&(i=r,r=null);let s={…r};r={…m.defaults,…s};let o=kl(r.silent,r.async,i);if(typeof n>”u”||n===null)return o(new Error(“marked(): input parameter is undefined or null”));if(typeof n!=”string”)return o(new Error(“marked(): input parameter is of type “+Object.prototype.toString.call(n)+”, string expected”));if(yl(r),r.hooks&&(r.hooks.options=r),i){let l=r.highlight,a;try{r.hooks&&(n=r.hooks.preprocess(n)),a=e(n,r)}catch(u){return o(u)}let c=function(u){let f;if(!u)try{r.walkTokens&&m.walkTokens(a,r.walkTokens),f=t(a,r),r.hooks&&(f=r.hooks.postprocess(f))}catch(p){u=p}return r.highlight=l,u?o(u):i(null,f)};if(!l||l.length{l(u.text,u.lang,function(f,p){if(f)return c(f);p!=null&&p!==u.text&&(u.text=p,u.escaped=!0),h–,h===0&&c()})},0))}),h===0&&c();return}if(r.async)return Promise.resolve(r.hooks?r.hooks.preprocess(n):n).then(l=>e(l,r)).then(l=>r.walkTokens?Promise.all(m.walkTokens(l,r.walkTokens)).then(()=>l):l).then(l=>t(l,r)).then(l=>r.hooks?r.hooks.postprocess(l):l).catch(o);try{r.hooks&&(n=r.hooks.preprocess(n));let l=e(n,r);r.walkTokens&&m.walkTokens(l,r.walkTokens);let a=t(l,r);return r.hooks&&(a=r.hooks.postprocess(a)),a}catch(l){return o(l)}}}function m(e,t,n){return xi(re.lex,ie.parse)(e,t,n)}m.options=m.setOptions=function(e){return m.defaults={…m.defaults,…e},sl(m.defaults),m};m.getDefaults=mi;m.defaults=me;m.use=function(…e){let t=m.defaults.extensions||{renderers:{},childTokens:{}};e.forEach(n=>{let r={…n};if(r.async=m.defaults.async||r.async||!1,n.extensions&&(n.extensions.forEach(i=>{if(!i.name)throw new Error(“extension name required”);if(i.renderer){let s=t.renderers[i.name];s?t.renderers[i.name]=function(…o){let l=i.renderer.apply(this,o);return l===!1&&(l=s.apply(this,o)),l}:t.renderers[i.name]=i.renderer}if(i.tokenizer){if(!i.level||i.level!==”block”&&i.level!==”inline”)throw new Error(“extension level must be ‘block’ or ‘inline’”);t[i.level]?t[i.level].unshift(i.tokenizer):t[i.level]=[i.tokenizer],i.start&&(i.level===”block”?t.startBlock?t.startBlock.push(i.start):t.startBlock=[i.start]:i.level===”inline”&&(t.startInline?t.startInline.push(i.start):t.startInline=[i.start]))}i.childTokens&&(t.childTokens[i.name]=i.childTokens)}),r.extensions=t),n.renderer){let i=m.defaults.renderer||new Qe;for(let s in n.renderer){let o=i[s];i[s]=(…l)=>{let a=n.renderer[s].apply(i,l);return a===!1&&(a=o.apply(i,l)),a}}r.renderer=i}if(n.tokenizer){let i=m.defaults.tokenizer||new Je;for(let s in n.tokenizer){let o=i[s];i[s]=(…l)=>{let a=n.tokenizer[s].apply(i,l);return a===!1&&(a=o.apply(i,l)),a}}r.tokenizer=i}if(n.hooks){let i=m.defaults.hooks||new Te;for(let s in n.hooks){let o=i[s];Te.passThroughHooks.has(s)?i[s]=l=>{if(m.defaults.async)return Promise.resolve(n.hooks[s].call(i,l)).then(c=>o.call(i,c));let a=n.hooks[s].call(i,l);return o.call(i,a)}:i[s]=(…l)=>{let a=n.hooks[s].apply(i,l);return a===!1&&(a=o.apply(i,l)),a}}r.hooks=i}if(n.walkTokens){let i=m.defaults.walkTokens;r.walkTokens=function(s){let o=[];return o.push(n.walkTokens.call(this,s)),i&&(o=o.concat(i.call(this,s))),o}}m.setOptions(r)})};m.walkTokens=function(e,t){let n=[];for(let r of e)switch(n=n.concat(t.call(m,r)),r.type){case”table”:{for(let i of r.header)n=n.concat(m.walkTokens(i.tokens,t));for(let i of r.rows)for(let s of i)n=n.concat(m.walkTokens(s.tokens,t));break}case”list”:{n=n.concat(m.walkTokens(r.items,t));break}default:m.defaults.extensions&&m.defaults.extensions.childTokens&&m.defaults.extensions.childTokens[r.type]?m.defaults.extensions.childTokens[r.type].forEach(function(i){n=n.concat(m.walkTokens(r[i],t))}):r.tokens&&(n=n.concat(m.walkTokens(r.tokens,t)))}return n};m.parseInline=xi(re.lexInline,ie.parseInline);m.Parser=ie;m.parser=ie.parse;m.Renderer=Qe;m.TextRenderer=kt;m.Lexer=re;m.lexer=re.lex;m.Tokenizer=Je;m.Slugger=bt;m.Hooks=Te;m.parse=m;var tc=m.options,nc=m.setOptions,rc=m.use,ic=m.walkTokens,sc=m.parseInline;var oc=ie.parse,lc=re.lex;var Ni=lt(Ri());var wn=lt(gt());function xn({label:e,text:t}){return wn.default.createElement(“span”,{className:”inno-hover js-hover”},e,wn.default.createElement(“span”,{className:”inno-hover__box”,dangerouslySetInnerHTML:{__html:Tt.toHTML(t[0])}}))}var jl={name:”spannerWithColor”,level:”inline”,start(e){return e.match(/</)?.index},tokenizer(e){let n=/^]*)>(([^)]*))/.exec(e);if(n){let i=/#(?:[0-9a-fA-F]{3}){1,2}$/.exec(n[2]);return{type:”spannerWithColor”,raw:n[0],text:n[1],…i&&{color:n[2]}}}},renderer(e){if(e.color){let t=(0,Ni.default)(e.color).isDark();return`${m.parseInline(e.text)}`}else return`${m.parseInline(e.text)} (u26D4uFE0F Error: Incorrect hex color provided)`}},_l={name:”spanner”,level:”inline”,start(e){return e.match(/</)?.index},tokenizer(e){let n=/^]*?)>(?!()/.exec(e);if(n)return{type:”spanner”,raw:n[0],text:n[1]}},renderer(e){return`${m.parseInline(e.text)}`}},Rl={name:”hover”,level:”inline”,start(e){return e.match(/)?.index},tokenizer(e){let n=/^[([^]]*?)]{([^}]*?)}/.exec(e);if(n)return{type:"hover",raw:n[0],label:n[1],text:n[2]}},renderer(e){return Ui.default.renderToString(Pi.default.createElement(xn,{label:[e.label],text:[e.text]}))}};m.use({extensions:[jl,_l,Rl]});var Tt={toHTML:e=>e&&typeof e==”string”?m.parseInline(e.replace(“v”,`
`)):””};var Pl=(e,t)=>{let n=e.querySelector(“.js-description”);for(let r of t.body){let i=document.createElement(“p”);i.classList.add(“inno-p”),i.innerHTML=Tt.toHTML(r.value),n.appendChild(i)}},At={init:()=>{},populate:(e,t)=>{Pl(e,t)}};var kn=!1,Ul=()=>{document.querySelectorAll(“.js-filter-header”).forEach(e=>{e.addEventListener(“click”,()=>{Bl(e)})}),document.querySelectorAll(“.js-filter-checkbox”).forEach(e=>{e.addEventListener(“change”,()=>{Wi(),Hi(),O.event(“click”,`Filter checked | ${e.dataset.group} | ${e.value} | ${e.checked?”on”:”off”}`)})}),document.querySelectorAll(“.js-filter-reset”).forEach(e=>{e.addEventListener(“click”,()=>{Nl()})}),document.querySelector(“.js-filter-catcher”).addEventListener(“click”,()=>{Zl()}),document.querySelectorAll(“.js-toggle-filters”).forEach(e=>{e.addEventListener(“click”,()=>{Zi()})}),window.addEventListener(“resize”,()=>{Bi()})},Bi=()=>{document.querySelectorAll(“.js-filter”).forEach(t=>{window.innerWidth>1199?t.classList.remove(“is-open”):t.classList.add(“is-open”)})},Zi=()=>{kn=!kn,kn?(document.querySelector(“body”).classList.add(“is-filtering”),O.event(“click”,”Show mobile filters”)):(document.querySelector(“body”).classList.remove(“is-filtering”),O.event(“click”,”Hide mobile filters”),window.innerWidth{document.querySelector(“.js-guide”).scrollIntoView({behavior:”instant”})},Nl=()=>{document.querySelectorAll(“.js-filter-checkbox:checked”).forEach(t=>{t.checked=!1}),O.event(“click”,”Reset all filters”),Wi()},Bl=e=>{let t=document.querySelector(“.js-filters”),n=document.querySelectorAll(“.js-filter”),r=e.closest(“.js-filter”),i=r.classList.contains(“is-open”);window.innerWidth>1200&&n.forEach(s=>{s.classList.remove(“is-open”)}),i?(r.classList.remove(“is-open”),t.classList.remove(“is-open-filter”),O.event(“click”,`Desktop filter group closed | ${r.dataset.filter}`)):(r.classList.add(“is-open”),t.classList.add(“is-open-filter”),O.event(“click”,`Desktop filter group opened | ${r.dataset.filter}`))},Zl=()=>{document.querySelector(“.js-filters”).classList.remove(“is-open-filter”),document.querySelectorAll(“.js-filter”).forEach(n=>{n.classList.remove(“is-open”)})},Hl=()=>{let e=new Object,t=document.querySelectorAll(“.js-filter-checkbox:checked”);for(let n of t){let r=n.dataset.group;e[r]||(e[r]=new Array),e[r].push(n.value)}return e},Wl=(e,t)=>{let n=Object.keys(e),r=new Array;for(let i of n){let l=e[i].map(a=>{if(t[i]!==void 0)return t[i].split(“,”).map(f=>f==a).filter(Boolean).length>0;console.log(`no ${i}`)}).filter(Boolean).length>0;r.push(l)}return r.every(Boolean)},Wi=()=>{let e=Hl(),t=document.querySelectorAll(“.js-place”),n=0;for(let i of t){let s=Wl(e,i.dataset),o=document.querySelector(`.js-marker[data-id=”${i.dataset.id}”]`);s?(o.classList.remove(“is-filtered”),i.classList.remove(“is-filtered”),n++):(o.classList.add(“is-filtered”),i.classList.add(“is-filtered”))}document.querySelectorAll(“.js-filter”).forEach(i=>{let s=i.querySelector(“.js-filter-active”),o=e[i.dataset.filter];o?(i.classList.add(“is-active”),s.textContent=o.length):(i.classList.remove(“is-active”),s.textContent=”1″)});let r=Object.keys(e).reduce((i,s)=>i+e[s].length,0);document.querySelector(“.js-filter-indicator”).textContent=r,document.querySelectorAll(“.js-filter-count”).forEach(i=>{i.textContent=n}),document.querySelectorAll(“.js-filter-plural”).forEach(i=>{i.textContent=n==1?””:”s”}),n==0?document.querySelector(“.js-guide”).classList.add(“is-empty”):document.querySelector(“.js-guide”).classList.remove(“is-empty”),Object.keys(e).length>0?document.querySelector(“.js-inno”).classList.add(“has-filters”):document.querySelector(“.js-inno”).classList.remove(“has-filters”),$e.reDraw()},Lt={init:()=>{Ul(),Bi()},toggle:()=>{Zi()}};var bn,ae,En,Ce,Vi=null;var Vl=async()=>{let e=await fetch(“https://interactives.inquirer.com/projects/2025/10/the-76/1760553884505/assets/places.json”);if(e.ok){let t=await e.json();for(let n of t){let r=document.querySelector(`.js-place#${n.id}`);r?(Pe.populate(r,n),At.populate(r,n)):console.log(`u26D4uFE0F Can not find ${n.name} on the page`)}Pe.done(),Gi(),Kl(),ta(),document.querySelector(“.js-inno”).classList.remove(“is-loading”)}},Gi=()=>{ae=document.querySelectorAll(“.js-place:not(.is-filtered)”),En=ae.length-1},Gl=e=>{if(e=Ki(e),!(Ce&&e!==Ce)){if(e!==bn){bn=e,document.querySelectorAll(“.is-current-place”).forEach(n=>{n.classList.remove(“is-current-place”)});let t=ae[e]||null;Ql(t),t&&(t.classList.add(“is-current-place”),t.id&&O.event(“card-view”,`Scrolled into view | ${t.id}`)),clearTimeout(Vi),Vi=setTimeout(()=>{bn==-1&&En>1?tt.showAll():t&&tt.highlight(t.dataset.index)},300)}}},Ki=e=>Math.min(Math.max(e,-1),En),Kl=()=>{document.addEventListener(“scroll”,()=>{Sn()}),window.addEventListener(“resize”,()=>{Sn()}),document.querySelector(“.js-guide-filter-toggle”).addEventListener(“click”,()=>{Lt.toggle()}),document.querySelectorAll(“.js-place-expand”).forEach(e=>{e.addEventListener(“click”,()=>{Jl(e)})})},Jl=e=>{let t=e.closest(“.js-place”);t.classList.remove(“is-collapsed”),O.event(“click”,`expand block | ${t.dataset.name}`)},Sn=()=>{Yl(),Xl(),ea()},Ql=e=>{e?history.replaceState(null,null,”#”+e.id):history.replaceState(null,null,” “)},Yl=()=>{if(Ce){let t=Array.from(ae).filter(n=>n.dataset.index==Ce)[0].getBoundingClientRect().top+window.scrollY-70;window.scrollY+100>t&&window.scrollY-100{let e=-1;ae.forEach((t,n)=>{let r=t.getBoundingClientRect();200>r.top&&r.height>0&&(e=n)}),Gl(e)},ea=()=>{let e=document.querySelector(“.js-guide”),t=e.getBoundingClientRect(),n=window.innerHeight/2;t.top+t.height-n<0?(e.classList.add("is-post-guide"),e.classList.remove("is-in-guide")):t.top-n{let i=Array.from(ae).filter(s=>s.dataset.index==e)[0].getBoundingClientRect().top+window.scrollY-70;Ce=e,ae[e]&&ae[e].id&&n&&O.event(“node-click”,`Clicked on marker | ${ae[e].id}`),window.scrollTo({top:i,behavior:t})},ta=()=>{let e=window.location.hash;if(e){let t=document.querySelector(e);if(t){let n=Ki(t.dataset.index);n&&Ji(n,”smooth”,!1)}}},$e={init:()=>{Vl()},scrollTo:(e,t=”smooth”)=>{Ji(e,t)},reDraw:()=>{Sn(),Gi()}};var nt,te,na=null,rt=new Array,st=!1;var Fe=null,ve=20,it=window.innerWidth>1200,ra=()=>{document.querySelector(“.js-toggle-map”).addEventListener(“click”,()=>{Yi()}),window.addEventListener(“resize”,()=>{Qi()})},Qi=()=>{it=window.innerWidth>1200,ve=it?20:Math.floor(window.innerWidth*.4),te.setPadding({top:it?ve+80:ve,left:it?window.innerWidth/2:ve,bottom:ve,right:ve}),setTimeout(()=>{te.resize()},400)},ia=()=>{let e,t,n,r,i=new Array;return document.querySelectorAll(“.js-place”).forEach(o=>{let l=parseFloat(o.dataset.long),a=parseFloat(o.dataset.lat);(e&<||!t)&&(t=l),(n&&ar||!r)&&(r=a)}),i=[[e,n],[t,r]],i},sa=()=>{let e=document.querySelectorAll(“.js-place”);e.forEach((t,n)=>{let r=t.dataset;if(r.lat&&r.long){let i=ht(“js-marker-stub”);i.classList.add(`inno-map__marker–${n}`),r.index=n,r.id=Ee(r.name),r.imageSrc=`https://interactives.inquirer.com/secondbank/arc/${r.media}/80.webp`,ft(i,r),i.addEventListener(“click”,()=>{i.classList.contains(“is-active”)&&st&&Yi(),$e.scrollTo(n,st?”instant”:”smooth”)}),i.addEventListener(“mouseover”,()=>{e[n].selected=!0}),i.addEventListener(“mouseleave”,()=>{e[n].selected=!1,Fe&&(e[Fe].selected=!0)}),rt.push(i),new nt.Marker({element:i}).setLngLat([parseFloat(r.long),parseFloat(r.lat)]).addTo(te)}})},zn=()=>{let e=ia();te&&te.fitBounds(e),document.querySelectorAll(“.js-marker”).forEach(t=>{t.classList.remove(“is-active”)}),document.querySelector(“.js-map”).classList.add(“is-all”)},oa=()=>{vr(“https://interactives.inquirer.com/storage/dependencies/maplibre/5.3.0/maplibre-gl.js”,()=>{let e=new Xn;nt=window.maplibregl,nt.addProtocol(“pmtiles”,e.tile);let t=”https://interactives.inquirer.com/melish/1.2.1″,n=`${t}/us-latest.pmtiles`,r=new at(n);e.add(r),r.getHeader().then(async()=>{let s=await(await fetch(`${t}/styles/neutral.json`)).json();ve=it?20:Math.floor(window.innerWidth*.4),te=new nt.Map({container:”map”,zoom:13,center:[-75.165222,39.952583],maxBounds:[[-86.485129,34.333968],[-69.915035,43.854144]],attributionControl:!1,style:{…s,sources:{openmaptiles:{type:”vector”,url:`pmtiles://${n}`}}}}),Qi(),te.scrollZoom.disable(),te.addControl(new nt.NavigationControl({showCompass:!1,showZoom:!0,visualizePitch:!1}),”bottom-right”),document.querySelector(“.js-map”).classList.add(“is-loaded”),te.on(“load”,()=>{sa(),zn()})})})},la=e=>{if(rt.length>0){let t=rt[e];if(document.querySelector(“.js-map”).classList.remove(“is-all”),document.querySelectorAll(“.js-marker”).forEach(n=>{n.classList.remove(“is-active”)}),t){let n=document.querySelector(`.js-place[id=${t.dataset.id}]`),r=document.querySelector(`.js-marker[data-id=${t.dataset.id}]`);te.flyTo({center:[parseFloat(n.dataset.long),parseFloat(n.dataset.lat)],zoom:13.2,speed:.5}),Fe=e,t.selected=!0,r.classList.add(“is-active”)}else te&&rt&&(zn(),Fe!==null&&(rt[Fe].selected=!1,Fe=null))}else na=e},Yi=()=>{st=!st,st?(document.querySelector(“.js-inno”).classList.add(“is-mapping”),O.event(“click”,”Open mobile map”)):(document.querySelector(“.js-inno”).classList.remove(“is-mapping”),O.event(“click”,”Close mobile map”))},tt={init:()=>{oa(),ra()},highlight:e=>{la(e)},showAll:()=>{zn()}};var aa=()=>{document.querySelectorAll(“.js-media-caption-toggle-show”).forEach(e=>{e.addEventListener(“click”,()=>{ca(e)})}),document.querySelectorAll(“.js-media-caption-toggle-hide”).forEach(e=>{e.addEventListener(“click”,()=>{ua(e)})})},ca=e=>{e.closest(“.js-place”).classList.add(“is-captioning”),O.event(“click”,”Open caption”)},ua=e=>{e.closest(“.js-place”).classList.remove(“is-captioning”),O.event(“click”,”Closed caption”)},Xi={init:()=>{aa()}};var An=new Array,Mn=650,Tn=650,ha=()=>{let e=document.querySelectorAll(“.js-slide-viewer”);for(let n of e){n.height=Mn,n.width=Tn;let r={el:n,id:n.dataset.id,ctx:n.getContext(“2d”),totalFrames:n.dataset.totalFrames,frames:new Array,currentFrame:1},i=new Array;for(var t=1;t{r.frames=s,An.push(r),es(r.id)})}},fa=e=>new Promise((t,n)=>{let r=new Image;r.onload=()=>t(r),r.setAttribute(“crossOrigin”,”anonymous”),r.src=e}),es=e=>{let t=An.filter(n=>e==n.id)[0];if(t.currentFrame!==void 0||t.currentFrame!==null){let n=t.frames[t.currentFrame];n&&(t.ctx.clearRect(0,0,Tn,Mn),t.ctx.drawImage(n,0,0,Tn,Mn))}},pa=e=>{for(let t of An)t.currentFrame=Math.ceil(e*t.totalFrames),es(t.id)},$t={init:()=>{ha()},updateFrame:e=>{pa(e)}};var da=()=>{xr()&&document.querySelectorAll(“.js-ad”).forEach(t=>{t.classList.add(“is-hidden”)})},ts={init:()=>{da()}};var ns=async(e,t)=>(await fetch(`https://inq-junto.herokuapp.com/${e}`,{method:”POST”,headers:{“Content-Type”:”application/json”},mode:”cors”,body:JSON.stringify(t)})).json(),Ln=()=>{let t=document.querySelector(“.js-inno”).dataset.junto;if(t)return t;throw new Error(“no junto id found”)},$n={getDefaultId:()=>Ln(),vote:(e,t=Ln())=>{ns(“vote”,{poll:t,ballot:e})},results:async(e=Ln())=>await ns(“results”,{poll:e})};var ga=()=>{document.querySelectorAll(“.js-feedback”).forEach(e=>{let t=e.dataset.question;e.querySelector(“.js-feedback-yes”).addEventListener(“click”,()=>{rs(“yes”,e)}),e.querySelector(“.js-feedback-no”).addEventListener(“click”,()=>{rs(“no”,e)})})},rs=async(e,t)=>{t.classList.add(“has-answered”,`has-answered-${e}`),t.querySelector(`.js-feedback-${e}`).blur();let n=”feedback-“+$n.getDefaultId(),r=t.dataset.question;$n.vote({[r]:e},n)},is={init:()=>{ga()}};var ye,ss,ma=()=>{ye=document.getElementById(“js-inno-toast”)},va=e=>{if(!ye)return;ye.innerHTML=e,ye.classList.add(“inno-toast–active”);let t=()=>{ye.addEventListener(“transitionend”,ya,{once:!0}),ye.classList.remove(“inno-toast–active”)};clearTimeout(ss),ss=setTimeout(t,5e3)},ya=()=>{ye.innerHTML=””},we={init:()=>{ma()},showToast:va};var Ct,os=!1,wa=async()=>new Promise(e=>{setTimeout(()=>{console.log(“simulating createShareLink for localhost”),e(“https://inquirer.com/interactives”),xa()},100)}),xa=()=>{let e=document.querySelector(“.js-gift-toast-receiver”);!e||!(e instanceof HTMLElement)||setTimeout(()=>{let t=e?.querySelector(“span”);t&&(t.innerHTML=”Gift link copied to clipboard“)},20)},ka=()=>{let e=window.services?.createShareLink;e&&(Ct=e),Wt()&&(Ct=wa),Ct&&Sa()},ba=async e=>{let t=”text/plain”,n=async()=>{try{return await Ct(window.location.pathname)}catch{e.dataset.state=”error”,we.showToast(“Hmm, we couldn’t generate a gift link…”)}},r=new ClipboardItem({[t]:n()});await navigator.clipboard.write([r]).catch(i=>{console.log(i),we.showToast(“Couldn’t copy to clipboard, try again?”),e.dataset.state=”error”}),we.showToast(“Gift link copied to clipboard!”),e.dataset.state=”complete”},Sa=()=>{document.querySelectorAll(“.js-gift”).forEach(t=>{(yr()||Wt()||wr())&&t.classList.add(“is-available”)}),document.querySelectorAll(“.js-gift-button”).forEach(t=>{t instanceof HTMLButtonElement&&t.addEventListener(“click”,()=>{t.classList.contains(“disabled”)||(t.dataset.state=”loading”,os=!0,ba(t),setTimeout(()=>{t.dataset.state=”ready”},2e3))})});let e=document.querySelector(“.js-gift-toast-receiver”);!e||!(e instanceof HTMLElement)||Ea(e)},Ea=e=>{new MutationObserver(n=>{for(let r of n){let i=[…r.addedNodes].at(0);if(!(i instanceof HTMLElement))return;os&&we.showToast(i.outerHTML)}}).observe(e,{subtree:!0,childList:!0})},ls={init:()=>{ka()}};var za={0:.5,1:.2,2:1,3:.8,4:.6,5:.9},Ma={0:.02,1:.14,2:.16,3:.11,4:.07,5:.23},Ta=()=>{document.addEventListener(“scroll”,()=>{as()})},as=()=>{let t=document.querySelector(“.js-hero”).getBoundingClientRect(),n=document.documentElement.scrollTop,r=t.top+n,i=t.height,s=r+i,o=s-n,l=Math.min(1-o/s,1),a=s*.5;document.querySelectorAll(“.js-hero-image”).forEach((h,u)=>{let f=a*za[u]*l;h.setAttribute(“style”,`transform: translateY(-${f}px)`),l>Ma[u]?h.classList.add(“is-visible”):h.classList.remove(“is-visible”)}),$t.updateFrame(l)},cs={init:()=>{Ta(),as()}};var Aa=()=>{},us={init:()=>{Aa()}};var hs={init:()=>{Bn.init?.(),tt.init?.(),At.init?.(),Lt.init?.(),$e.init?.(),Xi.init?.(),Pe.init?.(),$t.init?.(),ts.init?.(),is.init?.(),ls.init?.(),cs.init?.(),us.init?.(),we.init?.()}};var La=()=>{},fs={init:()=>{La()}};var $a=document.querySelector(“.js-inno”),ps=()=>{hs.init(),fs.init()};$a?ps():new MutationObserver((t,n)=>{if(document.querySelector(“.js-inno”)){n.disconnect(),ps();return}}).observe(document,{attributes:!0,childList:!0,subtree:!0});})();
/*! Bundled license information:
object-assign/index.js:
(*
object-assign
(c) Sindre Sorhus
@license MIT
*)
react/cjs/react.production.min.js:
(** @license React v16.14.0
* react.production.min.js
*
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*)
react-dom/cjs/react-dom-server.browser.production.min.js:
(** @license React v16.14.0
* react-dom-server.browser.production.min.js
*
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*)
*/
Almost as soon as we closed The 76 last year, The Inquirer’s Food team started thinking about how to improve it. The challenge of an annual list is not just to keep it going, but to make sure it stays as relevant and useful as it was in the first edition.
Philadelphia is an incredible city for eating. That’s not news to anyone reading this. As the fine dining scene in Philadelphia — rightfully — draws more national (and international) attention, the danger is that excellent, low-profile eateries will go ignored while kitchens focused on luxe ingredients win acclaim.
What makes Philadelphia’s restaurant scene unique is that there’s room for experiments, for big swings, and for upstarts to express their own culinary perspectives. That’s thanks to a blend of factors: a lower cost of living than other East Coast cities, a confluence of talent, and a diversity of immigrant cuisine. There’s an exciting culture of collaboration and DIY energy in Philly, like going to a basement show of a band that feels destined to make it big.
In the food section, we cover the big award nominees, of course. But we’re equally eager to celebrate an unassuming BYOB, a new-to-us food cart, a killer sandwich, or a fantastic café. It’s not that these places are secret, but they aren’t the national media darlings that some of Philly’s top spots have become. With this year’s 76, we aimed to give those restaurants their accolades, too.
So we enlisted even more eating power than last year, drawing on a newsroom of reporters who travel all over the Philadelphia area every day, telling stories in every community. There were surprises. There were delights. There were at least two cases of food poisoning.
But the results were worth it. This list is unlike any other in Philadelphia, both in its scope and in its depth. I’m tremendously proud of it, and of the immense effort The Inquirer put into it.
As the new food editor at The Inquirer, my aim is to make sure that The 76 keeps evolving, to reflect, as best we can, the vast cultural and culinary diversity in Philadelphia. Don’t worry: We’re already thinking about next year.