Blog

  • Alec Bohm, Bryce Harper, Bryson Stott address how Luis Arraez helped save the Phillies’ offense

    Alec Bohm, Bryce Harper, Bryson Stott address how Luis Arraez helped save the Phillies’ offense

    Athletes mimic.

    Whether it’s Kobe Bryant mirroring Michael Jordan or Joel Embiid mastering Kobe’s footwork, imitation is the sincerest form of flattery (which actually is the case for that aphorism, since Oscar Wilde borrowed it from Charles Caleb Cotton).

    The Phillies aren’t exactly mimicking deadline light-hitting addition Luis Arraez, but his arrival on Aug. 3 has meant everything to a team that had the most disappointing offense in baseball through two-thirds of the season.

    The Phillies’ on-base percentage on Aug. 3 was .305, which was third-worst in baseball. The Phillies’ on-base percentage since Aug. 3, entering Wednesday night’s game, was .367, which was the best in baseball.

    What happened between Aug. 3 and Aug. 4?

    The Phillies traded for Arraez.

    This makes sense — right? — since Arraez won league batting titles in 2022, 2023, and 2024, and he led the National League entering Wednesday, at .317.

    However, since his arrival, Arraez has generally slumped. He was hitting .274 with a .292 on-base percentage since arriving from San Francisco. This might be because he’s batting fourth in the order after spending almost all of his career batting first or second. At any rate, it’s OK.

    Because this has less to do with Arraez’s production than with Arraez’s presence and how it has affected the hitters around him.

    Bryce Harper, the No. 3 batter in front of Arraez, was hitting .255 with an .862 OPS on Aug. 3. Since then, he’s hit .295 with a .939 OPS, fueled largely by his .530 on-base percentage, which includes 22 walks in 14 games.

    Alec Bohm, hitting fifth behind Arraez, was hitting .226 on Aug. 3. Since then, he’s hit .396 with a 1.038 OPS and 11 RBIs in 14 games.

    Bryson Stott, who bats sixth, was hitting .253 on Aug. 3. Since then, he’s hit .367, has a 10-game hitting streak, and, like Harper, his on-base percentage of .508 has as much to do with his eye as with his hands: Stott has 14 walks in those 14 games.

    Harper has begged for protection for two seasons.

    Now, he has it.

    “As a lineup, any time you’re able to add somebody like that, obviously, it’s going to be really good for the team,” Harper said. “You know he’s [going] to put the bat on the ball.”

    There might be other factors.

    The Phillies held a hitters’ meeting just before Arraez arrived, and they talked a lot about being selective-aggressive, as hitting coach Kevin Long has preached since his arrival in 2022.

    Long’s a superb hitting coach, but Long doesn’t hit. Long doesn’t set an example. Arraez does both, and his presence seems to have more obviously impacted production.

    Between the meeting and Arraez’s arrival, the Phillies’ on-base percentage rose two points.

    Between Arraez’s arrival and Wednesday night, the Phillies’ on-base percentage rose 62 points.

    It’s not as if Arraez sets an example of selectivity. In fact, he’s seeing just 3.74 pitches per plate appearance this season, well below the big-league average of 4.13. And Arraez doesn’t walk much: he’s averaged 37.2 walks in his five full seasons, and he has 27 this season.

    Luis Arraez doesn’t walk much, but he strikes out even less.Elizabeth Robertson / Staff Photographer

    So, has he really affected the middle of the lineup?

    “Yeah, for sure,” Stott said. “When you’re the guy behind him, you see him, when he swings the bat, it just feels like he’s going to get a hit.”

    Bohm spoke after Tuesday’s win over the Marlins, in which the Phillies collected 10 hits. Nine of them were singles, but, really, Bohm’s double was a single, too, but the Marlins threw to the wrong man, so he stretched it into a double.

    The core of the Phillies’ order is swinging at fewer tough strikes, waiting for their pitch, making balanced, controlled swings, keeping the bat in the strike zone longer, and not trying to hit home runs. Harper, Stott, and Bohm struck out just 17 times combined in the last 14 games.

    Homers have become coincidental.

    On Tuesday, the Phillies scored at least six runs in a fifth straight game, the first time they’ve done that this season. They scored six on Monday, too, with 10 singles and a double.

    They’ve become a fun team to watch by adding a fun player.

    “He’s one of those infectious energy guys,” Bohm said. “And you see the ways he plays, the way he takes his at-bats, watching his at-bats — you spend time around good hitters, good hitters can make other hitters better.”

    The sincerest form of flattery, indeed.

  • Still friends? | Sports Daily Newsletter

    Still friends? | Sports Daily Newsletter

    We’re no stranger to dominant performances from A.J. Brown. But we’re used to him wearing Eagles green when he’s tearing up defenses.

    Sure, the breakup, er, trade, was more than two months ago, but it still feels fresh when you see him wearing a navy blue New England Patriots jersey for the first time.

    But Brown was upbeat about facing his former team in Wednesday’s joint practice, the first of two in Foxborough, Mass.

    “I know I’m on an opposing team right now, but I still felt some love,” he said.

    He may have felt love, but he didn’t go easy on the Eagles once practice began and hauled in all six of his targets.

    And here’s everything else our Jeff McLane saw at the Eagles’ joint practice on Wednesday.

    — Maria McIlwain, @phillysport, sports.daily@inquirer.com.

    If someone forwarded you this email, sign up for free here.

    ❓Reader question here. Email us back for a chance to be featured in the newsletter.

    Getting defensive

    Eagles cornerback Cooper DeJean chats with New England Patriots coach Mike Vrabel before Wednesday’s joint practice at Gillette Stadium in Foxborough, Mass.Yong Kim / Staff Photographer

    The NFL is a different game from when Eagles defensive coordinator Vic Fangio first started coaching it 40 years ago, but count this week in New England as his favorite of the preseason.

    He wasn’t available for questions after Wednesday’s joint practice with the Patriots, but he surely learned plenty about his unit.

    From signature one-liners to more pressing matters like Jonathan Greenard’s status for Week 1, here are the biggest storylines on the defensive side of the ball.

    Speaking of Greenard, his availability remains one of the biggest concerns for an otherwise stout defense, David Murphy writes.

    Next: Joint practices continue today in Foxborough, Mass.

    Phils add a lefty

    Nestor Cortes last pitched on Sept. 3, 2025, before he was sidelined with a biceps tear that required surgery.Bruce Kluckhohn

    The Phillies have added a veteran reinforcement to their shallow pitching depth.

    The club signed Nestor Cortes to a major league deal Wednesday.

    Cortes, a 31-year-old left-hander, last pitched on Sept. 3, 2025, before he was sidelined with a biceps tear that required surgery. Before the injury, he had a 6.29 ERA in eight starts with the Brewers and Padres. In his eight-year career, five of which Cortes spent with the Yankees, he has a 3.94 ERA with a 1.19 WHIP.

    How will he fit with the Phillies? Don Mattingly couldn’t say much.

    Aaron Nola pitched seven innings for just the second time this season in the Phillies’ 4-1 win over the Marlins to sweep the series. Luis Arraez hit his second homer since joining the team.

    Next: After an off-day on Thursday, the Phillies will welcome the St. Louis Cardinals to Citizens Bank Park on Friday (6:40 p.m., NBCSP). Jesús Luzardo (11-5, 3.23 ERA) will start for the Phillies, while the Cardinals have not announced their starter yet.

    Marcus Hayes’ take

    Luis Arraez won batting titles in 2022, 2023, and 2024.Elizabeth Robertson / Staff Photographer

    On Aug. 3, the Phillies had a .305 on-base percentage, the third-worst in baseball. Between Aug. 3 and entering Wednesday, they were getting on base at a .367 clip, which was the best in baseball.

    What happened between Aug. 3 and Aug. 4?

    They traded for Arraez. You know, the guy who won batting titles in 2022, 2023, and 2024 and led the National League entering Wednesday at .317.

    Sure, he’s not exactly lighting it up since coming over from the San Francisco Giants, but that’s OK. His presence and what he does for the players around him is what matters, Marcus Hayes writes.

    Brawling to a tie

    Lionel Messi (center) on the ball in front of Kai Wagner during the first half.Steven M. Falk / For The Inquirer

    A standing-room-only crowd at Subaru Park with thousands of pink-clad fans rooting for Lionel Messi’s Inter Miami against the Union were treated to an entertaining 2-2 tie. Messi scored for Miami, but the game ended with a brawl that saw teen phenom Cavan Sullivan ejected.

    Next: The Union are heading down to the Lone Star State to face old friend Jim Curtin and his Austin FC squad on Saturday (8:30 p.m., Apple TV).

    On this date

    It’s not exactly a secret that the Phillies are the losingest franchise in MLB history, at least in terms of total losses. And the dog days of the 1961 season certainly didn’t help. Starting with a 4-3 loss to the San Francisco Giants on July 29, 1961, the Phils dropped 23 straight games, the longest regular-season losing streak since 1900, according to MLB.com. The misery didn’t end until the nightcap of a doubleheader on Aug. 20, 1961, when the Phillies beat the Milwaukee Braves, 7-4, at County Stadium in Milwaukee. The victory actually kick-started a four-game winning streak, but the Phillies finished the season 47-107-1.

    Kinda puts this season’s sporadic scuffles in perspective, doesn’t it?

    What you’re saying about college football

    We asked: What college football team do you root for and why?

    I root for Lehigh University. Why? It epitomizes what college football should be: a culture of high academic standards with a tradition of success. — Howard P.

    Notre Dame — you know how we do. — D. Stone

    Penn State all the way. First saw Lenny Moore on newsreels at the Saturday morning movies in Media PA in the early 1950s. We had no TV so I listened to the games on the radio. Have been a fan ever since and have met Joe Paterno and quite a few players including Capaletti etc and have a couple long time PS friends and a younger brother who graduated about the same time as Capaletti. — Everett S.

    Temple Owls all the way! As loyal alumni, my time began toward the end of the Wayne Harden era. Loved the games at the Vet with West Virginia, Syracuse, Delaware, Pitt and Penn State. Attended the Garden State Bowl in frigid Giants Stadium. After graduation, the Bruce Arians era featured visits by Alabama and BYU. Following a number of forgettable years, Al Golden and Matt Rhule arrived and injected Temple Tuff on North Broad Street. Loved 2015 with the win over Penn State and the narrow defeat to Notre Dame. My Penn State daughters are still in denial! Will be back at the Linc Sept. 12 for the return of PSU! Go Owls! — Bob C.

    i’ve been rooting for Penn State since the 60s … they became my favorite team because of the Sunday Bulletin and what at the time they called the machine gun camera … the Sunday Bulletin would show a series of photos of a play using the machine gun camera usually a running play featuring a back named Roger Kochman … they would show a photo of the camera in the top corner of the first photo … so i would wait every Sunday to be able to see the play they were featuring … I imagine the machine gun camera was a early version of a motor drive — W. M.

    I grew up in the 50s and 60s in Philly. My dad was a subway alumni of Notre Dame. It wasn’t hard back in those days to jump on the wagon. We identified as Catholic and Irish so that was good enough for me. Throughout the years my love of the Irish has never wavered. Good season or bad I watched or listened to each tussle. Even though I had never been to campus there was a mystique regarding her name. Eventually got to witness a few home games in the 80s and early 90s very few experiences like those. In the late nineties I went to work there for almost 20 years. Being on campus each day was joyful. Both my children are alumni and prospering, lived the full circle, Love thee Notre Dame! — Bill B.

    We compiled today’s newsletter using reporting from Olivia Reiner, Jeff McLane, Jeff Neiburg, David Murphy, Lochlahn March, Marcus, Hayes, and Jonathan Tannenwald.

    By submitting your written, visual, and/or audio contributions, you agree to The Inquirer’s Terms of Use, including the grant of rights in Section 10.

    Thanks for reading! Kerith will be back tomorrow to close out the week. — Maria

  • He was the first Phillies pitcher to return from Tommy John surgery. He still wonders what might have been.

    He was the first Phillies pitcher to return from Tommy John surgery. He still wonders what might have been.

    Steve Ontiveros was for once healthy, and had not yet joined the Phillies, when he and Tommy John became teammates, pitchers on the Oakland Athletics in 1985. Ontiveros was 24 years old, a right-hander having a terrific rookie season: a 1.93 earned run average, eight saves. John was already 42, still the same soft-throwing lefty he’d always been, more than a decade removed from undergoing the revolutionary surgical procedure that still bears his name. They did not know then the physiological connection they would come to share.

    Over the 11 games that he pitched for the Phillies in 1989 and 1990, in an era full of forgettable baseball here, Ontiveros managed to complete a remarkable story — and to introduce Philadelphia to the future of sports medicine. He was the first Phillies pitcher to have Tommy John surgery and return to pitch for the team.

    After starting 2-0 and allowing just two earned runs in his first 20 innings in ‘89, after offering a glimpse of greatness to an awful Phillies team, Ontiveros needed some magical science and the steady hands of surgeon Frank Jobe just to take the mound in the majors again. When he caught the news reports that John had died at 83 late last Saturday night, Ontiveros couldn’t help but recall John’s daring and desperate decision back in 1974 — his willingness to have Jobe try replacing a torn ligament in John’s left elbow with a fresh tendon from somewhere on John’s body.

    The procedure saved John’s career. It has saved hundreds of pitchers’ careers since. Steve Ontiveros’ star-crossed stretch in Major League Baseball was one of them.

    “He was fantastic,” Ontiveros, 65, said by speakerphone as he and his wife, Cindy, drove near their Scottsdale, Ariz., home Tuesday morning. “Think about it: No one in the history of the game had had that done. It was so off the wall, out of outer space, to even think about that type of surgery. But when that’s your livelihood, you’ll do anything. You’ll take any chance because you want to play. You want to compete.”

    He and John — who appeared in 760 games, won 288, threw 46 shutouts, and should have been inducted into the National Baseball Hall of Fame long ago — were different people, different pitchers, and at different stages of their lives when they met. The A’s picked Ontiveros in the second round of the 1982 draft. A standout at the University of Michigan, a fierce black goatee rimming his mouth, he had five pitches, each of which he could throw with exquisite control. “When I was healthy,” he said, “I got people out.”

    John, with his granddad-bod physique and his slow-slower-slowest stuff, seemed a being from another time, another world. Ontiveros, for instance, would be baffled watching him slide himself into a scalding hot whirlpool before every start. The Centers for Disease Control recommends keeping the water in a Jacuzzi under 104 degrees Fahrenheit, but John would crank the temperature to 115 and spend 10 minutes practically poaching himself. When Ontiveros asked him about the strange ritual, John explained that the soak had been part of his pre-start preparation for years. It saps my energy, he told Ontiveros. When I come in, if I’m throwing 85, I get killed. But if I’m throwing 82, they can’t touch me.

    John was in the midst of his 25th and next-to-last season in the majors, winning nine games and pitching 176⅔ innings for the Yankees in 1988, when Ontiveros first experienced the arm trouble that would dog him thereafter. The prospective third starter on an Oakland team that starred Jose Canseco, Mark McGwire, Dennis Eckersley, and Dave “Smoke” Stewart and would win the American League pennant, Ontiveros had pain flare up in his elbow during spring training. The A’s pushed him back in the rotation, to the No. 5 spot, to give him more rest, but it didn’t help.

    Before Ontiveros’s June 6 start in Kansas City against the Royals, the A’s training staff tried to stabilize his elbow by wrapping it in tape as if it were an injured knee. Twenty pitches into his warmups, the tape fell off, and though Ontiveros allowed just one earned run in seven innings that night, he knew something was wrong.

    Tommy John crossed paths with Steve Ontiveros on the A’s in 1985.

    “I’m in the seventh inning, and I throw a pitch, get the ball from the catcher, and I’d have to walk around the mound until the pain went away,” he said. “When I’d climb back on the mound, I’d make another pitch. I did that through the entire inning. I said, ‘I can’t do this anymore.’”

    He didn’t appear in another game for the A’s that season after early August, and in the offseason he underwent elbow surgery that wasn’t as radical as John’s but was close. A ligament in Ontiveros’ elbow had stretched so far that, he said, “it wasn’t performing as a ligament anymore.” So orthopedist Lewis Yocum shortened it, folding it over onto itself and suturing it.

    The A’s released Ontiveros in December ‘88, and the Phillies signed him as a free agent in February ‘89. Pitchers like him were the Phillies’ currency back then: injured or aging long shots who had once been promising prospects or accomplished big-leaguers. Danny Cox, Dave LaPoint, David Palmer, later Fernando Valenzuela and Sid Fernandez: Each of them tried to complete a semi-miraculous comeback.

    Despite being a nonroster invitee to spring training, Ontiveros cracked the rotation, then dominated the Cubs — eight innings, one earned run — on April 6 before throwing seven shutout innings to beat the Montreal Expos at Veterans Stadium five days later. The Phillies were 5-2 and in first place in the National League East. “This qualifies as a pleasant surprise in my book,” manager Nick Leyva said after the game.

    But after his brilliant start against the Expos, Ontiveros felt the same twinge of pain that he had the season before. He lasted five innings, giving up just one run, in a loss to the New York Mets on April 19 before the Phillies put him on the injured list, with a “strained ligament,” for nearly two months. “I went down, and we lost two other pitchers,” he said. “We instantly sucked after that.” He returned in June and was hammered: three starts, 10⅔ innings, 19 hits, 11 earned runs.

    “I wasn’t able to separate the pain from the pitch,” Ontiveros said. “It starts accumulating in your head, the pain that’s going to be coming. It takes away your focus from getting a hitter out. You focus on, ‘What am I feeling right now? Is my arm going to fall off on the next pitch?’ I could not overcome that amount of pain mentally. There may be some people who could. I was not one of them. I was so distracted by the amount of pain I was feeling and the amount of pain that was to come if I kept throwing.”

    There was no avoiding the knife now, but the Phillies had little experience with Tommy John surgery. Larry Christenson was their first pitcher to have it, in 1983, in a last-ditch effort to end his lengthy succession of elbow injuries. He never pitched for them or anyone else again. The good news for Ontiveros and the Phillies was that Jobe himself would handle the operation. The bad news was that, even 15 years after John’s pioneering procedure, only so many advancements and improvements to it and a pitcher’s rehabilitation process had been made.

    Larry Christenson was the first Phillies pitcher to have Tommy John surgery in 1983.Copyright © The Phillies/Paul Roedig

    Before Jobe and his team performed the surgery, on July 20, 1989, they asked Ontiveros if he wanted them to take the healthy ligament from his right arm or his left. The left, of course, Ontiveros told them. Why weaken and damage his right arm further? Except the doctors screwed up, instead removing a six-inch tendon from Ontiveros’s right wrist and grafting it onto his elbow.

    The mistake prolonged Ontiveros’ rehab, which was hardly the kind of comprehensive, reliable course of action that would reassure an elite athlete whose livelihood was hanging in the balance. Working with the Phillies’ medical and training staff and with Steve Kush, a trainer based in Arizona, Ontiveros tried to improve his right arm’s range of motion before strengthening the muscles around his elbow joint. But no one was completely certain what exercises he ought to be doing or how often he ought to be doing them. When he visited Jobe for a postsurgery consultation, Ontiveros asked the doctor for some direction.

    “He literally handed me a copy of what they did with Tommy John,” Ontiveros said. “It was 10 pages of nothing. There was no structure to any of it. I gave it to Steve, and we just kind of winged it.”

    Having read that another pitcher, John Tudor, had recovered from Tommy John surgery in just eight months, Ontiveros pushed himself to match that ambitious timeline. “I went out in the offseason, and I threw outside,” he said, “and it was cold, and I felt a little tug. I went, ‘Uh, oh.’ I pushed it too fast, and it set me back months.” Still, the makeshift rehab went well enough that in August 1990, he made a start for the Phillies’ single-A affiliate in Clearwater. He lasted one inning. His arm, he said afterward, felt like he had stuck his finger into an electrical socket, and he was certain his career was finished. It did not have to be. There was some inflammation in his elbow, but rest would heal it. He talked with Cindy. They decided he would not give up.

    When he pitched again in the majors, for the Phillies, at Wrigley Field against the Cubs on Sept. 13, 1990, throwing two shutout innings in relief, his senses seemed sharper: the smell of the grass on the infield and the ivy on the outfield walls, the tingle of Lake Michigan’s breeze.

    “I went through so much [stuff] with the Phillies, and I loved playing for them,” said Ontiveros, who after retiring ran a baseball academy for 20 years that produced 13 major-league players. “I absolutely loved the fan base. Yeah, they’re brutal, but they’re also amazing. You do well, and they’ll let you know about it. Just being able to know a fan base has passion — I played four years in Oakland before that, and you’d see them come in by the third inning and leave by the seventh inning, and these were World Series-caliber players on a World Series-caliber team. You went to Philly, and it was intense, and I loved that.”

    Steve Ontiveros pitched in 11 games for the Phillies over the 1989 and 1990 seasons.Daily News staff

    Through a second Tommy John surgery, he somehow kept pitching, returning to the A’s, going 6-4 and leading the American League in ERA (2.65) in 1994, earning a spot on the AL All-Star Team in 1995, appearing in three games for the Boston Red Sox in 2000 when he was 39. When he was as close as he would get to being Tommy John himself, to having something else in common with the man whose name now lives forever.

    “It gave me longevity,” he said. “That was good. That wouldn’t have happened otherwise. I’d have been done. It gave me an opportunity to continue my career. It’s just unfortunate that there weren’t that many people ahead of me.”

    True, but there have been so many after him who could keep pitching, who could keep playing the game they loved. That legacy is Steve Ontiveros’, too, and as they continued on their morning drive, perhaps because she could hear the wistfulness and what-might-have-been in his voice, Cindy Ontiveros asked her husband a question.

    “How many people have come back from two?”

    “Not many,” one of them said.

  • From Jalen Carter to Jett Harrison, these athletes just missed the cut for our 25 under 25 list

    From Jalen Carter to Jett Harrison, these athletes just missed the cut for our 25 under 25 list

    Find yourself debating our 25 under 25 list? Well, maybe this list will help explain some of our reasoning — or give you something else to talk about.

    Several athletes, ranging from high school to professional, just missed the cut. Some turned 25 earlier this year, while others were considered but didn’t quite crack the final list.

    However, this gives you a glimpse into the name’s to look out for in next year’s 25 under 25. With that being said, here’s our top Philly athletes who missed the list.

    Just aged out …

    Tyrese Maxey

    Since Maxey’s rookie season in 2020-21, he has been on an upward trajectory to becoming the focal point of the 76ers. The point guard was named NBA Most Improved Player and earned his first All-Star selection in 2023-24.

    Maxey’s stellar fourth year led to a five-year, $204 million max contract. Lingering injuries derailed his 2024-25 season, but he made up for it last season, when he became the franchise all-time leader in three-pointers, surpassing Allen Iverson.

    He also earned his second All-Star nod and was named a starter for the Eastern Conference. Let’s also not forget his highlight moment when he recorded a career-high 54 points to become the second player in Sixers’ history to record at least 50 points and nine assists in a game.

    Eagles defensive tackle Jalen Carter, 25, is the highest-paid defensive tackle in NFL history.Monica Herndon / Staff Photographer

    Jalen Carter

    Carter still has some time to claim the title as best defensive tackle in the NFL, but he has established himself as one of the top players in his position in just four seasons in the league.

    And the Eagles believe so as well. Carter signed a contract extension this offseason through 2031 that’s worth $152 million, with $106 million guaranteed, making the 25-year-old the highest paid defensive tackle in league history.

    Carter received back-to-back Pro Bowl nods in 2024 and 2025, despite missing time while recovering from shoulder injuries last season. His 2024 season might have been his most productive, as he played 79.4% of the defensive snaps.

    Jalyx Hunt

    There’s high expectations for Hunt after a record-setting 2025 season, where the edge rusher became the first player in Eagles history to lead the team in sacks (6½) and interceptions (three) in the same season.

    As a rookie, he played 23% of defensive snaps, had 21 tackles, and recorded a half-sack in Super Bowl LIX.

    Last season, he took quite a leap. He more than doubled his tackles (52) and is now preparing for his third NFL season.

    Trevor Zegras

    Zegras, another Philly star now on a big contract, signed a four-year, $36.5 million extension, carrying an average annual value of $9.125 million, which made him the highest-paid Flyer in annual average value.

    The center quickly became a fan favorite last season, his first with the Flyers. Zegras had a career high in goals (26) and was a key contributor in the Flyers’ postseason run.

    Flyers stars Jamie Drysdale (right) and Trevor Zegras didn’t quite make The Inquirer’s 25 Under 25.Yong Kim / Staff Photographer

    Next up …

    Jamie Drysdale

    In two seasons with the Flyers, Drysdale, 24, developed greatly on the defensive side of the puck and was awarded the team’s most improved player for 2025-26.

    He’s dealt with numerous injuries throughout his NHL career, and, despite struggling early on in Philadelphia, the defenseman skated in 78 games while averaging 21 minutes, 33 seconds and a career-high eight goals this past season.

    He earned a four-year, $26 million extension this offseason. The deal made him the highest-paid defenseman on the Flyers in AAV.

    Dominick Barlow

    Barlow joined the Sixers last season on a two-way contract, but later had it converted to a standard two-year deal. He jumped right into the action and even became a part-time starter.

    Before free agency began, the Sixers picked up his $3.4 million team option for the 2026-27 season. The 23-year-old is coming off the best season of his career four-year career, in which he averaged 7.7 points, 4.8 rebounds, and 1.2 assists. He made 59 starts in 71 games.

    While his role certainly will change this season, the forward has shown he can be a valuable resource.

    Neil Pierre

    The 18-year-old homegrown talent signed a professional contract in 2023 with Union II, the club’s reserve team. In 2025, the 6-foot-5 defender signed a first-team contract through the 2028 season, with an option for 2029.

    He was named MLS Next Pro Defender of the Year that season, and in January was loaned to Danish first-division side Lyngby Boldklub. He returned to the Union in July and quickly stepped in at centerback. He even scored his first goal in his second career game for the first team.

    Aidan Miller is one of the Phillies’ top prospects.Jose F. Moreno / Staff Photographer

    Aidan Miller

    Miller is ranked as the Phillies No. 2 prospect and 61st in the MLB. However, the infielder has missed the entire season with recurring lower-back issues.

    Last year, however, he was on a tear. Miller had 14 home runs, 42 RBIs, 59 stolen bases, a .264 average, and an .825 OPS across 116 games between double A and triple A.

    In June, Miller underwent a radiofrequency ablation of the facet joints in his spine. The Phillies said in July that they expect the 22-year-old to play this season, though he likely won’t reach the majors.

    The future …

    Jasmine Jackson

    Jackson has become one of the nation’s fastest hurdlers at 16 years old. The Winslow Township High junior set several records this spring. She won the New Jersey Meet of Champions with a personal-best 13.28 seconds.

    Her time ranks third in state history, No. 3 all-time on the wind-legal list for sophomores, and No. 3 in the nation for the 2026 season. When she was 14 years old, Jackson broke the national record for the 100-meter hurdles in her age group with a time of 13.72 seconds.

    Friends Central’s Ryan Carter (right) has been getting Division I scholarship offers since she was in eighth grade.Elizabeth Robertson / Staff Photographer

    Ryan Carter

    Since eighth grade, Carter has been getting looks by Division I schools and even received several scholarship offers. Now entering her senior year at Friends’ Central, the 6-foot guard is ranked nationally by ESPN as the No. 12 girls’ basketball player in her class.

    She spent two years at Penn Charter, playing varsity as an eighth grader, then played a season at Archbishop Wood, where she won a state championship, and will finish her high school career with the Phoenix. She averaged 17.1 points, 7.4 rebounds, 5.6 assists, and 1.8 steals last season.

    Carter recently won a gold medal with the United States under-18 national team and has more than 30 college scholarship offers, including from LSU, Duke, and Notre Dame.

    Jett Harrison

    Harrison, the younger brother of Marvin Harrison Jr. and son of NFL Hall of Famer Marvin Harrison Sr., is considered ESPN’s No. 6 overall player in the class of 2028. He had 15 receiving touchdowns as a sophomore for St. Joseph’s Prep.

    He announced his commitment to Ohio State in July, following in his brother’s footsteps. Recently during Arizona Cardinals’ training camp, Marvin Jr. said, “he’s definitely more talented than I was ever at that age.”

  • These are the Philly area’s 25 best athletes under 25, from high school phenoms to household names

    These are the Philly area’s 25 best athletes under 25, from high school phenoms to household names

    html,body{margin:0}.inno :where(*:not(svg,svg *,.inno-no-reset,.inno-no-reset *),use){all:revert;margin:0;padding:0;border:0;list-style:none}@font-face{font-family:”innoInquirerHeadline”;font-weight:100;src:url(“https://media.inquirer.com/fonts/InquirerHeadline-ThinWEB.woff2”) format(“woff2”),url(“https://media.inquirer.com/fonts/InquirerHeadline-ThinWEB.woff”) format(“woff”)}@font-face{font-family:”innoInquirerHeadline”;font-weight:100;font-style:italic;src:url(“https://media.inquirer.com/fonts/InquirerHeadline-ThinItalicWEB.woff2”) format(“woff2”),url(“https://media.inquirer.com/fonts/InquirerHeadline-ThinItalicWEB.woff”) format(“woff”)}@font-face{font-family:”innoInquirerHeadline”;font-weight:300;src:url(“https://media.inquirer.com/fonts/InquirerHeadline-LightWEB.woff2”) format(“woff2”),url(“https://media.inquirer.com/fonts/InquirerHeadline-LightWEB.woff”) format(“woff”)}@font-face{font-family:”innoInquirerHeadline”;font-weight:300;font-style:italic;src:url(“https://media.inquirer.com/fonts/InquirerHeadline-LightItalicWEB.woff2”) format(“woff2”),url(“https://media.inquirer.com/fonts/InquirerHeadline-LightItalicWEB.woff”) format(“woff”)}@font-face{font-family:”innoInquirerHeadline”;font-weight:normal;src:url(“https://media.inquirer.com/fonts/InquirerHeadline-RegularWEB.woff2”) format(“woff2”),url(“https://media.inquirer.com/fonts/InquirerHeadline-RegularWEB.woff”) format(“woff”)}@font-face{font-family:”innoInquirerHeadline”;font-weight:normal;font-style:italic;src:url(“https://media.inquirer.com/fonts/InquirerHeadline-RegularItalicWEB.woff2”) format(“woff2”),url(“https://media.inquirer.com/fonts/InquirerHeadline-RegularItalicWEB.woff”) format(“woff”)}@font-face{font-family:”innoInquirerHeadline”;font-weight:500;src:url(“https://media.inquirer.com/fonts/InquirerHeadline-MediumWEB.woff2”) format(“woff2”),url(“https://media.inquirer.com/fonts/InquirerHeadline-MediumWEB.woff”) format(“woff”)}@font-face{font-family:”innoInquirerHeadline”;font-weight:500;font-style:italic;src:url(“https://media.inquirer.com/fonts/InquirerHeadline-MediumItalicWEB.woff2”) format(“woff2”),url(“https://media.inquirer.com/fonts/InquirerHeadline-MediumItalicWEB.woff”) format(“woff”)}@font-face{font-family:”innoInquirerHeadline”;font-weight:600;src:url(“https://media.inquirer.com/fonts/InquirerHeadline-SemiBoldWEB.woff2”) format(“woff2”),url(“https://media.inquirer.com/fonts/InquirerHeadline-SemiBoldWEB.woff”) format(“woff”)}@font-face{font-family:”innoInquirerHeadline”;font-weight:600;font-style:italic;src:url(“https://media.inquirer.com/fonts/InquirerHeadline-SemiBoldItalicWEB.woff2”) format(“woff2”),url(“https://media.inquirer.com/fonts/InquirerHeadline-SemiBoldItalicWEB.woff”) format(“woff”)}@font-face{font-family:”innoInquirerHeadline”;font-weight:700;src:url(“https://media.inquirer.com/fonts/InquirerHeadline-BoldWEB.woff2”) format(“woff2”),url(“https://media.inquirer.com/fonts/InquirerHeadline-BoldWEB.woff”) format(“woff”)}@font-face{font-family:”innoInquirerHeadline”;font-weight:700;font-style:italic;src:url(“https://media.inquirer.com/fonts/InquirerHeadline-BoldItalicWEB.woff2”) format(“woff2”),url(“https://media.inquirer.com/fonts/InquirerHeadline-BoldItalicWEB.woff”) format(“woff”)}@font-face{font-family:”innoInquirerHeadline”;font-weight:900;src:url(“https://media.inquirer.com/fonts/InquirerHeadline-BlackWEB.woff2”) format(“woff2”),url(“https://media.inquirer.com/fonts/InquirerHeadline-BlackWEB.woff”) format(“woff”)}@font-face{font-family:”innoInquirerHeadline”;font-weight:900;font-style:italic;src:url(“https://media.inquirer.com/fonts/InquirerHeadline-BlackItalicWEB.woff2”) format(“woff2”),url(“https://media.inquirer.com/fonts/InquirerHeadline-BlackItalicWEB.woff”) format(“woff”)}@font-face{font-family:”innoInquirerText”;font-weight:normal;src:url(“https://media.inquirer.com/fonts/InquirerTextWEB-RegularWEB.woff2”) format(“woff2”),url(“https://media.inquirer.com/fonts/InquirerTextWEB-RegularWEB.woff”) format(“woff”)}@font-face{font-family:”innoInquirerText”;font-weight:normal;font-style:italic;src:url(“https://media.inquirer.com/fonts/InquirerTextWEB-RegularItalicWEB.woff2”) format(“woff2”),url(“https://media.inquirer.com/fonts/InquirerTextWEB-RegularItalicWEB.woff”) format(“woff”)}@font-face{font-family:”innoInquirerText”;font-weight:bold;src:url(“https://media.inquirer.com/fonts/InquirerTextWEB-BoldWEB.woff2”) format(“woff2”),url(“https://media.inquirer.com/fonts/InquirerTextWEB-BoldWEB.woff”) format(“woff”)}@font-face{font-family:”innoInquirerText”;font-weight:bold;font-style:italic;src:url(“https://media.inquirer.com/fonts/InquirerTextWEB-BoldItalicWEB.woff2”) format(“woff2”),url(“https://media.inquirer.com/fonts/InquirerTextWEB-BoldItalicWEB.woff”) format(“woff”)}@font-face{font-family:”innoGrot10″;font-weight:normal;src:url(“https://media.inquirer.com/fonts/Grot10-RegularWEB.woff2”) format(“woff2”),url(“https://media.inquirer.com/fonts/Grot10-RegularWEB.woff”) format(“woff”)}@font-face{font-family:”innoGrot10″;font-weight:500;src:url(“https://media.inquirer.com/fonts/Grot10-MediumWEB.woff2”) format(“woff2”),url(“https://media.inquirer.com/fonts/Grot10-MediumWEB.woff”) format(“woff”)}@font-face{font-family:”innoGrot10″;font-weight:bold;src:url(“https://media.inquirer.com/fonts/Grot10-ExtraboldWEB.woff2”) format(“woff2”),url(“https://media.inquirer.com/fonts/Grot10-ExtraboldWEB.woff”) format(“woff”)}@font-face{font-family:”innoGrot12″;font-weight:normal;src:url(“https://media.inquirer.com/fonts/Grot12Condensed-LightWEB.woff2”) format(“woff2”),url(“https://media.inquirer.com/fonts/Grot12Condensed-LightWEB.woff”) format(“woff”)}@font-face{font-family:”innoGrot12″;font-weight:bold;src:url(“https://media.inquirer.com/fonts/Grot12Condensed-SemiboldWEB.woff2”) format(“woff2”),url(“https://media.inquirer.com/fonts/Grot12Condensed-SemiboldWEB.woff”) format(“woff”)}body.is-scroll-locked{overflow:hidden;height:100%}.inno{–color-background: #dbdebc;–color-background-secondary: #f4f1eb;–color-accent: #428cdf;–color-over-accent: #ffffff;–color-text-primary: #222222;–color-text-link: #428cdf;–color-text-secondary: #595760;–color-text-tertiary: #808284;–color-text-accent: #428cdf;–color-faint: #ff8c14;–color-mask: rgba(34, 34, 34, 0.8);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:”innoGrot10″,sans-serif;background:var(–color-background);color:var(–color-text-primary);padding-block-end:64px;overflow:clip;font-size:14px;line-height:1}.inno-mode–dark{–color-background: #222222;–color-background-secondary: #595760;–color-accent: #8dd7f7;–color-over-accent: #222222;–color-text-primary: #ffffff;–color-text-secondary: #dcdcdc;–color-text-tertiary: #808284;–color-text-link: #428cdf;–color-faint: #595760;–color-mask: rgba(255, 255, 255, 0.8)}.inno–lite.inno-color–purple{–color-accent: #7b2589;–color-over-accent: #ffffff;–color-text-accent: #7b2589}.inno–lite.inno-color–pink{–color-accent: #cd0785;–color-over-accent: #ffffff;–color-text-accent: #cd0785}.inno–lite.inno-color–red{–color-accent: #e11b22;–color-over-accent: #ffffff;–color-text-accent: #e11b22}.inno–lite.inno-color–orange{–color-accent: #ff8c14;–color-over-accent: #222222;–color-text-accent: #ff8c14}.inno–lite.inno-color–yellow{–color-accent: #ffd964;–color-over-accent: #222222;–color-text-accent: #ffd964}.inno–lite.inno-color–green{–color-accent: #d2c000;–color-over-accent: #222222;–color-text-accent: #d2c000}.inno–lite.inno-color–teal{–color-accent: #00a69e;–color-over-accent: #ffffff;–color-text-accent: #00a69e}.inno–lite.inno-color–light-gray{–color-accent: #dcdcdc;–color-over-accent: #222222;–color-text-accent: #dcdcdc}.inno–lite.inno-color–light-blue{–color-accent: #8dd7f7;–color-over-accent: #222222;–color-text-accent: #8dd7f7}.inno–lite.inno-color–blue{–color-accent: #428cdf;–color-over-accent: #ffffff;–color-text-accent: #428cdf}.inno–lite.inno-color–black{–color-accent: #222222;–color-over-accent: #ffffff;–color-text-accent: #222222}.inno–lite.inno-color–white{–color-accent: #ffffff;–color-over-accent: #222222;–color-text-accent: #ffffff}.inno–lite.inno-color–white,.inno–lite.inno-color–black{–color-accent: #428cdf;–color-over-accent: #ffffff;–color-text-accent: #222222}.inno–lite.inno-color–white.inno-mode–dark,.inno–lite.inno-color–black.inno-mode–dark{–color-accent: #8dd7f7;–color-over-accent: #222222;–color-text-accent: #ffffff}.inno–widget,.inno–embed{overflow:hidden;padding-block-end:0}.inno–widget .inno-layout–content>*,.inno–embed .inno-layout–content>*{max-width:none}.inno-anchorable:before{content:””;display:block;height:calc(var(–nav-height, 0) + 10px);margin:calc(0px – (var(–nav-height, 0) + 10px)) 0 0}.inno-spanner{background-color:#dcdcdc;box-shadow:4px 0 0 #dcdcdc,-4px 0 0 #dcdcdc;color:#fff;padding:1px 0;margin:0 5px;box-decoration-break:clone;-webkit-box-decoration-break:clone;color:#222}.inno-spanner–error,.inno-spanner–error-invalid-symbol{background-color:#fff;border:3px dashed #e11b22;box-shadow:none;padding-left:4px;padding-right:4px}body:has(.inno-chrome–chromeless){overflow:hidden;width:100vw;height:100vh}@supports(width: 100dvw){body:has(.inno-chrome–chromeless){width:100dvw}}@supports(height: 100dvh){body:has(.inno-chrome–chromeless){height:100dvh}}body:has(.inno-chrome–chromeless) .global-app-bar,body:has(.inno-chrome–chromeless) .footer,body:has(.inno-chrome–chromeless) .footer-wrapper{display:none}body:has(.inno-chrome–chromeless) #inq-article-completion{height:0px}.inno{–gutter: calc(50vw – 325px)}.inno *{box-sizing:border-box}.inno-layout–content>*{max-width:min(650px,100vw – 32px);margin-inline:auto}.inno-layout–align-full{max-width:100%}.inno-layout–align-wide{max-width:min(1250px,100vw – 32px);margin-inline:auto}.inno-layout–align-default{max-width:min(650px,100vw – 32px);margin-inline:auto}@media(min-width: 768px){.inno-layout–align-left{float:left;margin-inline-start:var(–gutter);margin-inline-end:24px;width:301px;margin-block-end:16px;padding-top:6px}}@media(min-width: 960px){.inno-layout–align-left{margin-inline-start:calc(var(–gutter) – clamp(0px,var(–gutter) – 100px,160px))}}@media(min-width: 768px){.inno-layout–align-right{float:right;width:301px;margin-inline-start:24px;margin-inline-end:var(–gutter);margin-block-end:16px;padding-top:5px}}@media(min-width: 960px){.inno-layout–align-right{margin-inline-end:calc(var(–gutter) – clamp(0px,var(–gutter) – 100px,160px))}}.inno-layout–stack>*+*{margin-block-start:24px}.inno-layout–stack-tight>*+*{margin-block-start:10px}.inno-layout–stack-loose>*+*{margin-block-start:30px}*+.inno-layout–isolate{margin-block-start:48px}.inno-layout–isolate+*{margin-block-start:48px}.inno-adbox{max-height:400px;transition:max-height .4s ease-in-out,padding .4s ease-in-out,margin .4s ease-in-out;overflow:hidden}.inno-adbox.is-hidden{max-height:0;margin:0;padding:0}.inno-adbox__label{display:block;margin:0 auto 8px;text-align:center;font-size:12px;color:#808284;text-transform:uppercase}.inno-ad__ad{margin-inline:auto;background-color:#f4f1eb;display:flex;align-items:center;justify-content:center;overflow:hidden;width:300px;height:250px}@media(min-width: 768px)and (max-width: 1022px){.inno-ad__ad{width:728px;height:90px}}@media(min-width: 1023px){.inno-ad__ad{height:auto;width:fit-content;min-width:728px;min-height:90px;max-width:970px;max-height:250px}}.inno-ad__ad–small{width:300px;height:250px;min-height:auto;min-width:auto}.inno-ad__ad iframe{position:unset !important}.inno-ad__ad .cnx-content-wrapper{position:relative !important}.inno-ad__ad .celtra-ad-inline-host,.inno-ad__ad .celtra-ad-inline-host *{position:relative !important;overflow:hidden !important}.inno-ad__placeholder{text-align:center;text-transform:uppercase;font-weight:bold;font-size:16px;color:#222}@media(min-width: 1200px){.inno-ad__placeholder{padding:120px 0}}.inno-body__error{color:var(–color-text-primary);padding:24px;border:3px dashed #e11b22;font-family:monospace;white-space:pre-wrap;font-size:16px}.inno-body__error-head{display:block;font-weight:bold}.inno-button{position:relative;display:flex;flex-direction:row;justify-content:center;align-items:center;gap:8px;box-sizing:border-box;text-decoration:none;border-radius:4px;cursor:pointer;pointer-events:auto;transition:background-color .4s ease-in-out,border-color .4s ease-in-out,color .4s ease-in-out;background-color:var(–color-accent);color:var(–color-over-accent)}.inno-button:focus{outline:solid 4px var(–color-text-tertiary)}.inno-button:disabled{pointer-events:none}.inno-button–primary:hover{background-color:var(–color-text-primary);color:var(–color-background)}.inno-button–primary:disabled{background-color:var(–color-text-secondary);color:var(–color-text-tertiary);pointer-events:none}.inno-button–secondary{background-color:var(–color-background);color:var(–color-text-primary);border:solid 1px var(–color-accent)}.inno-button–secondary:hover{background-color:var(–color-accent);color:var(–color-over-accent);border:solid 1px var(–color-accent)}.inno-button–secondary:disabled{border-color:var(–color-text-tertiary);color:var(–color-text-tertiary)}.inno-button–minimal{background-color:rgba(0,0,0,0);color:var(–color-text-primary);padding:8px}.inno-button–minimal:hover{background-color:var(–color-accent);color:var(–color-over-accent)}.inno-button–minimal:disabled{background-color:var(–color-text-secondary);color:var(–color-text-tertiary);pointer-events:none}.inno-button–large{padding:16px 40px}.inno-button–medium{padding:10px 24px}.inno-button–small{padding:8px 16px}.inno-button–round{border-radius:99px}.inno-button–round.inno-button–small{padding:8px}.inno-button–round.inno-button–medium{padding:10px}.inno-button–round.inno-button–large{padding:16px}.inno-button__label{font-family:”innoGrot10″,sans-serif;font-weight:700;line-height:1.2em;flex-grow:0;z-index:1}.inno-button–large .inno-button__label{font-size:20px}.inno-button–medium .inno-button__label{font-size:18px}.inno-button–small .inno-button__label{font-size:16px}.inno-button–has-image .inno-button__label{text-align:center}.inno-button__image{margin:0 auto;object-fit:contain}.inno-byline{border-block:1px solid #222;padding-block:16px;font-family:”innoGrot10″,sans-serif;font-size:14px;line-height:1.5}.inno-byline–center{border-block:none;padding-block:0}@media(min-width: 768px){.inno-byline{font-size:16px}}.inno-byline__content{display:flex;justify-content:space-between;align-items:center;gap:12px}.inno-byline–center .inno-byline__content{flex-direction:column;text-align:center}.inno-byline__text{flex:1 1 auto}.inno-byline .inno-gift{flex:0 0 auto}.inno-byline__timestamp-date{color:var(–color-text-primary)}.inno-byline__timestamp-label{color:var(–color-text-secondary)}.inno-byline__authors{color:var(–color-text-primary, #222222);line-height:1.5em;text-wrap-style:balance}.inno-byline__author{display:inline}.inno-byline__author-link,.inno-byline__authors a{color:var(–color-text-primary, #222222);text-decoration:none;transition:color .4s ease-in-out}.inno-byline__author-link:hover,.inno-byline__authors a:hover{color:var(–color-text-link, #428cdf)}.inno-callout__content{background-color:var(–color-background-secondary);padding:20px 15px}.inno-callout:has(.inno-callout__cta) .inno-callout__content{padding-bottom:50px}.inno-callout__tag{font-family:”innoGrot10″,sans-serif;font-size:16px;color:var(–color-text-primary)}@media(min-width: 768px){.inno-callout__tag{font-size:18px}}.inno-callout__title{font-family:”innoGrot12″,sans-serif;font-size:32px;font-weight:bold;text-transform:uppercase;color:var(–color-text-primary);text-wrap:balance}*+.inno-callout__title{margin-block-start:5px}.inno-callout__body{font-family:”innoGrot10″,sans-serif;font-size:16px;color:var(–color-text-primary);line-height:1.65em}@media(min-width: 768px){.inno-callout__body{font-size:18px}}*+.inno-callout__body{margin-block-start:10px}.inno-callout__body .inno-p{font-family:inherit;font-size:inherit;color:inherit;line-height:inherit}.inno-callout__cta{display:flex;width:calc(100% – 30px);margin:-30px 15px 0 15px}.inno-callout__cta .inno-button{box-shadow:0 1px 4px rgba(89,87,96,.1),0 3px 6px rgba(89,87,96,.1);padding:20px 20px}.inno-callout__form-policy{font-size:15.2px;margin-top:20px;color:#808284;line-height:1.65}.inno-callout__form-policy a{color:#808284;transition:color .3s ease-in-out}.inno-callout__form-policy a:hover{color:var(–color-text-primary)}.inno-caption{color:var(–color-text-secondary);font-family:”innoGrot10″,sans-serif;font-size:14px;line-height:1.5}.inno-caption a{color:inherit;box-shadow:inset 0 -1px 0 0 var(–color-text-secondary);transition:color .25s ease,box-shadow .25s ease;text-decoration:none}.inno-caption a:hover{color:var(–color-text-link);box-shadow:inset 0 -1px 0 0 var(–color-text-link)}.inno-caption__caption-text{display:block;text-wrap:pretty}.inno-caption__credit{color:var(–color-text-tertiary);display:block}.inno-card{position:relative;background-color:#fff;border:1.5px solid #ff8c14;padding:20px}.inno-card .inno-image-img{padding:0px}.inno-card__detail{display:block;color:#ff8c14;font-size:24px;font-family:”innoGrot12″,sans-serif;font-weight:600;text-align:center}.inno-card__title{display:block;color:var(–color-text-primary);font-family:”innoInquirerHeadline”,”Times New Roman”,serif;font-size:40px;font-weight:700;line-height:1.2;scroll-margin-top:calc(var(–sticky-height) + 16px + 48px);text-wrap:pretty;margin-top:6px;text-align:center}@media(min-width: 768px){.inno-card__title{font-size:40px}}.inno-card__body{overflow:hidden;transition:max-height .4s ease-in-out}*+.inno-card__body{margin-block-start:14px}.inno-card.is-collapsed .inno-card__body{max-height:350px}.inno-card__body .inno-caption{margin-left:0}.inno-card__show-more{position:absolute;bottom:20px;left:0;right:0;padding:12px 0;background-image:linear-gradient(rgba(255, 255, 255, 0), white);pointer-events:none;opacity:0;transition:opacity .4s ease-in-out}.inno-mode–dark .inno-card__show-more{background-image:linear-gradient(rgba(34, 34, 34, 0), #222222)}.inno-card.is-collapsed .inno-card__show-more{opacity:1;pointer-events:all}.inno-card__show-more-button{margin:0 auto;transform:translateY(50%)}.inno-credits{font-family:”innoGrot10″,sans-serif}.inno-credits__header{color:var(–color-text-primary);font-size:16px;font-family:”innoGrot10″,sans-serif;font-weight:normal;line-height:1.2;border-bottom:1px solid var(–color-faint);padding-bottom:4px;margin-bottom:8px}.inno-credits__roles{display:grid;gap:8px;color:var(–color-text-secondary);font-size:14px;line-height:1.5;text-align:pretty}@media(min-width: 768px){.inno-credits__roles{grid-template-columns:50% 50%}}.inno-gift{display:none}.inno-gift–default{justify-content:center}.inno-gift–default.is-available{display:flex}.inno-gift–default .inno-button{font-size:24px;padding:8px;min-width:200px;margin:0px auto}.inno-gift–minimal.is-available{display:inline-block}.inno-gift–minimal .inno-button{display:flex;align-items:center;font-size:16px;line-height:16px}.inno-gift–minimal .inno-button__label{font-size:14px;font-weight:normal;color:currentColor;display:none}@media(min-width: 600px){.inno-gift–minimal .inno-button__label{display:inline-block}}.inno-gift–minimal .inno-icon{display:inline-block}.inno-gift.is-available{display:block}.is-app .inno-gift{display:none}.inno-gift .inno-icon–loading{animation:spin 1s linear forwards infinite}.inno-gift .inno-icon{display:none}.inno-gift [data-state=ready] .inno-icon–gift{display:initial}.inno-gift [data-state=loading] .inno-icon–loading{display:initial}.inno-gift [data-state=complete] .inno-icon–tickmark{display:initial}.inno-gift [data-state=error] .inno-icon–cross{display:initial}.inno-gift-toast-receiver{display:none}@keyframes spin{0%{rotate:0deg}100%{rotate:360deg}}.inno-graphic__iframe,.inno-graphic__datawrapper{width:100%}.inno-hero{margin-block-start:0;position:relative}.inno-hero–layout-above{display:flex;flex-direction:column-reverse}.inno-hero–layout-above .inno-hero__content{padding:24px 0}.inno-hero–layout-above .inno-hero__media{max-width:80%;margin:0 auto;padding-top:24px}.inno-hero–layout-above .inno-hero__media>*{max-width:350px}.inno-hero–layout-above .inno-hero__media .inno-caption-text{display:none}.inno-color–white .inno-hero,.inno-mode–light .inno-hero–style-transparent{–color-accent: rgb(222, 239, 245);–color-over-accent: #222222}.inno-color–black .inno-hero,.inno-mode–dark .inno-hero–style-transparent{–color-accent: #222222;–color-over-accent: #ffffff}.inno-hero–style-transparent .inno-hero__content{background:rgba(0,0,0,0)}.inno-hero__content{text-align:center;position:absolute;background:var(–color-accent);color:var(–color-over-accent);top:0;bottom:0;left:0;right:0;z-index:10;color:#222;display:flex;margin:auto;flex-direction:column;justify-content:center;background:none;max-width:none}@media(min-width: 960px){.inno-hero__content{padding-block:32px}}.inno-hero__eyebrow{font-family:”innoGrot12″,sans-serif;font-weight:bold;text-transform:uppercase;font-size:16px;font-weight:bold;padding:5px 8px;background:var(–color-over-accent);color:var(–color-accent);width:max-content;text-decoration:none;line-height:2}@media(min-width: 768px){.inno-hero__eyebrow{font-size:18px}}.inno-hero__headline{font-family:”innoInquirerHeadline”,”Times New Roman”,serif;font-size:72px;font-weight:800;line-height:1;text-wrap:balance}@media(min-width: 768px){.inno-hero__headline{font-size:52px}}.inno-hero__subheadline{font-family:”innoInquirerHeadline”,”Times New Roman”,serif;font-size:36px;font-weight:700;line-height:1;text-wrap:balance;text-align:center;padding-top:30px;padding-bottom:30px;max-width:min(650px,100vw – 32px);margin:0 auto}@media(min-width: 768px){.inno-hero__subheadline{font-size:40px}}.inno-hero__media{position:relative;z-index:2;margin-top:0px}@media(width < 768px){.inno-hero__media .inno-image{height:calc(100vh – 122px);max-width:100%}.inno-hero__media .inno-image img{height:100%;width:auto;overflow-x:hidden}}@media(min-width: 960px){.inno-hero__media{font-size:72px}}.inno-hero__background-img{display:flex;align-items:center;justify-content:center;max-width:70%}@media(min-width: 768px){.inno-hero__background-img{max-width:40%}}.inno-hover{position:relative;cursor:pointer;border:1px var(–color-accent) solid;padding:3px 4px;transition:border .4s ease-in-out;box-sizing:border-box}@media(min-width: 768px){.inno-hover{cursor:help}}.inno-hover:hover{border:1px var(–color-accent) solid}.inno-hover__box{position:fixed;bottom:0;left:0;right:0;z-index:20;background-color:var(–color-background);pointer-events:none;transform:translateY(100%);transition:transform .4s ease-in-out;padding:16px;border-top:1px solid var(–color-accent);white-space:normal;font-family:"Grot 10",sans-serif;font-size:14px;line-height:1.5}@media(min-width: 768px){.inno-hover__box{position:absolute;top:100%;width:200px;left:-1px;right:0;bottom:auto;margin:auto;max-width:250px;padding:6px;opacity:0;transition:opacity .4s ease-in-out;transform:none;border:1px solid var(–color-accent)}}.inno-hover.is-visible .inno-hover__box{opacity:1;transform:translateY(0)}.inno-icon{display:inline-block;width:1.2em;height:1.2em;fill:currentColor}.inno-icon–white{fill:#fff}.inno-icon–black{fill:#222}.inno-icon–accent{fill:var(–color-accent)}.inno-icon–over-accent{fill:var(–color-over-accent)}.inno-icon__stroke{fill:rgba(0,0,0,0);stroke:currentColor;stroke-width:2px;vector-effect:non-scaling-stroke}.inno-icon–white .inno-icon__stroke{stroke:#fff}.inno-icon–black .inno-icon__stroke{stroke:#222}.inno-icon–accent .inno-icon__stroke{stroke:var(–color-accent)}.inno-icon–over-accent .inno-icon__stroke{stroke:var(–color-over-accent)}.inno-image__img{width:100%;display:block;padding:0px}.inno-list{list-style:none}.inno-list__item{position:relative;padding-left:20px}.inno-list__item:before{content:"";position:absolute;top:.7em;left:.1em;width:10px;height:10px;border-radius:8px;background-color:#808284}@media(min-width: 768px){.inno-list__item:before{top:.75em}}.inno-looping-video__video{width:100%}.inno-p{-webkit-font-smoothing:subpixel-antialiased;-mox-osx-font-smoothing:grayscale;color:#222;color:var(–color-text-primary);font-family:"innoInquirerText","Times New Roman",serif;font-size:18px;line-height:1.666666;white-space:pre-line;text-wrap:pretty}@media(min-width: 600px){.inno-p{font-size:20px;line-height:1.6}}.inno-p–has-dropcap:first-letter{margin-top:1px;margin-right:12px;margin-bottom:0;margin-left:0;font-family:"innoInquirerHeadline","Times New Roman",serif;font-size:3.2em;float:left;font-weight:bold;line-height:1;color:#222}@-moz-document url-prefix(){.inno-p–has-dropcap:first-letter{margin-top:10px;margin-bottom:0px}}@media(min-width: 600px){.inno-p–has-dropcap:first-letter{font-size:5.3em;margin-top:-3px;margin-bottom:-10px}@-moz-document url-prefix(){.inno-p–has-dropcap:first-letter{margin-top:12px;margin-bottom:0px}}}.inno-p a{transition:box-shadow .25s ease;color:var(–color-text-link);text-decoration:none}.inno-p a:hover{box-shadow:inset 0 -1px 0 0 var(–color-text-link)}.inno-p__endmark{display:inline-block;height:1.1em;width:1.1em;margin-left:5px;vertical-align:text-bottom;margin-bottom:2px;fill:var(–color-text-accent)}.inno-premium{padding:19px 26px 22px 8px;color:var(–color-text-primary);font-family:"innoGrot10",sans-serif;font-size:18px;line-height:1;font-weight:normal;background-color:var(–color-background-secondary)}.inno-premium .inno-icon{fill:#ffd964;width:24px;margin-right:7px}.inno-premium__header{display:flex}.inno-premium__hed{font-weight:bold;line-height:22px;font-size:16px;color:var(–color-text-primary);padding:3px 0 4px;font-family:"innoGrot10",sans-serif;text-wrap:pretty}.inno-mode–dark .inno-premium__hed{color:#fff}.inno-premium__message{font-weight:500;line-height:22px;font-size:16px;color:var(–color-text-secondary);font-family:"innoGrot10",sans-serif;margin-left:32px;text-wrap:pretty}.inno-related{position:relative;display:block;z-index:2;padding:12px;max-width:min(650px,100vw – 32px);background-color:#fff;text-decoration:none;color:var(–color-text-primary);transition:transform .3s ease-in-out,box-shadow .3s ease-in-out;font-family:"innoGrot10",sans-serif;box-sizing:border-box;border-top:1px solid var(–color-faint)}.inno-related:hover{transform:translateY(-4px)}.inno-related:hover .inno-related__headline{color:var(–color-accent)}.inno-related .inno-image{margin:-12px -12px 12px -12px}.inno-related__eyebrow{font-size:16px;line-height:1;font-weight:bold;font-family:"innoGrot12",sans-serif;text-transform:uppercase;color:#ff8c14}.inno-related__headline{font-family:"innoInquirerHeadline","Times New Roman",serif;line-height:1.2;font-size:24px;font-weight:600;transition:color .3s ease-in-out;text-wrap:pretty}.inno-related__description{font-size:16px;line-height:1.4;color:var(–color-text-tertiary);text-wrap:pretty}.inno-subscribe{display:none;position:relative}.inno-subscribe.is-unsubscribed{display:block}.inno-subscribe.is-preview{display:block}.inno-subscribe.is-dev{display:block}.inno-subscribe.is-dev::before{content:"Non-subscribers only";display:block;position:absolute;left:-20px;border:1px dashed red;font-size:8px;text-transform:uppercase;padding:5px;font-weight:bold;writing-mode:vertical-lr}.inno-video{width:auto}.inno-video__video{width:100%}.inno-toast{position:fixed;bottom:16px;left:0;right:0;width:max-content;margin:0px auto;z-index:120;display:flex;align-content:center;justify-content:center;text-align:center;font-size:20px;border-radius:5px;background-color:var(–color-text-primary);color:var(–color-background);padding:24px 48px;box-shadow:0 1px 4px rgba(89,87,96,.1),0 3px 6px rgba(89,87,96,.1);translate:0% calc(100% + 18px);transition:translate .4s;opacity:0}.inno-toast b,.inno-toast strong{font-weight:normal}.inno-toast.is-active{translate:0 0;opacity:1}

    Illustration of the 25 under 25 top athletes in Philly
    Vivi John / For The Inquirer

    These are the Philly area’s best athletes under 25 years old.

    The Philadelphia area's sports scene is on the rise — and we're not talking about the addition of LeBron James to the city's professional ranks.

    The region's professional sports franchises are only part of the picture. There also are athletes enrolled in the area's many colleges and universities, a wealth of talent at the high school and amateur levels, and others who dominate individual sports like boxing or figure skating. We decided it was about time to spotlight some of the best.

    Welcome to The Inquirer's first 25 Under 25 list, highlighting the region's best athletes under the age of 25.

    story continues after advertisement

    The criteria is simple. To qualify for our list, an athlete must:

    • Be under 25 as of July 1, 2026, and

    • Currently reside in or train in the Philadelphia area (the city, collar counties, or South Jersey) and/or play for one of the area's colleges or professional teams (including their minor league affiliates).

    That second rule means that high school students from the Class of 2026 are ineligible, since many have already arrived on their respective college campuses across the country. A few of them can be found on our list of the best players from here, which includes Philly athletes playing elsewhere. However, there is one exception this year, which we'll explain when we get there.

    With those qualifications in mind, we went searching for the best of the best. And after much debate among our sports editors, we came away with 25 athletes who truly show the region's depth of talent at every level across a variety of sports. Here they are, presented in alphabetical order.

    Jasmine Bascoe

    Age: 20

    Illustration of Jasmine Bascoe

    Jasmine Bascoe was an all-conference selection for Villanova as a freshman in 2024-25 after leading the Wildcats with 16.2 points and 4.3 assists per game in 34 games.

    Bascoe, who’s from the Toronto area, followed a stellar freshman season with an even better sophomore campaign, again leading the team in points (18.9) and assists (4.8) per game. She was the Big East’s leading scorer last season, beating UConn stars Sarah Strong and Azzi Fudd. Bascoe led Denise Dillon’s Wildcats back to the 2026 NCAA Tournament after a two-season drought, and the Wildcats retained Bascoe for a third season. If Bascoe takes another step forward, Villanova could be a team to watch in March.

    “Denise, she trusts me, and I have all my trust in her, so I’ll do whatever she needs me to do,” Bascoe said ahead of her sophomore season. “I love it in Philly — nowhere else I’d rather be.”

    Justin Crawford

    Age: 22

    Illustration of Justin Crawford

    Justin Crawford, one of the Phillies’ top five prospects entering the year, made his big league debut on opening day and has appeared in all but 10 games so far this season. Heading into play Wednesday, Crawford is slashing .270/.316/.361 as a rookie, and, after an early adjustment period at the plate, has hit .305 since June 1. The center fielder's defense also has steadily improved.

    As for his struggles against left-handed pitching, which relegated him to a platoon role earlier in the season, Crawford hopes to pick the brain of new teammate Luis Arraez, a three-time batting champ and two-time Silver Slugger. And like Crawford, Arraez is a lefty who hits for average. Since Arraez’s arrival earlier this month, Crawford has been even better, slashing .342/.381/.500.

    story continues after advertisement

    Reese D’Ariano

    Age: 17

    Illustration of Reese D'Ariano

    The youngest member of the current United States field hockey team, Reese D’Ariano has plenty of international experience at just 17 years old. Before the field hockey World Cup in Belgium, D’Ariano won two gold medals with USA field hockey, including at the 2024 Indoor Pan American Cup in Calgary, Canada, where she was named tournament MVP. D’Ariano, who is a rising senior at Pennsylvania Leadership Charter School and committed to the University of North Carolina, is one of the top prospects in her class.

    Before she began training with WC Eagles, her field hockey club, D’Ariano would train at a multipurpose field with her mother while her brother had swim practice. “Obviously, the progression was slow if you saw it day to day,” D’Ariano said. “But as the weeks and months went on, it was a pretty drastic change in how I progressed.”

    Riley Davis

    Age: 16

    Illustration of Riley Davis

    Entering her senior year at Academy of Notre Dame de Namur, Riley Davis is the top-ranked lacrosse player in the Class of 2027, according to Inside Lacrosse. The five-star recruit and Penn State commit is a two-way midfielder for the Irish and also plays on the school’s varsity basketball team.

    Riley’s father, Ben, played seven years in the MLB as a catcher. Her mother, Megan, was a two-sport athlete at Rutgers. Her brother, Tague, set Louisville’s freshman home run record (18) last year and led the nation in home runs (34) as a sophomore. Her older sister, Finley, is entering her freshman year at Furman, where she will play lacrosse after playing with Riley at Notre Dame.

    Despite all that competition, Riley is considered the most athletic in a family of high-level athletes. “Riley is the best athlete in the family,” Ben told The Inquirer in April.

    Cooper DeJean

    Age: 23

    Illustration of Cooper DeJean

    Securing your first career pick-six in the Super Bowl on your birthday is the kind of story dreams are made of. But that’s Cooper DeJean’s real life. DeJean, however, is much more than just that moment. He earned first-team All-Pro honors as the league’s best slot cornerback in 2025. He’s also one heck of a basketball player.

    Now, he is taking on a new role as a safety in Vic Fangio’s base defense. He’ll still see the majority of his snaps in the slot, but his growing positional versatility is a testament to his skill as he becomes one of the Eagles’ most important players.

    “Playing nickel in this defense is kind of like playing safety in a lot of ways,” DeJean said. “A lot of the techniques are pretty similar.”

    Audrey Derivaux

    Age: 17

    Illustration of Audrey Derivaux

    A four-time world junior swimming champion, Haddonfield’s Audrey Derivaux was the No. 1 recruit in the Class of 2027. But Derivaux recently reclassified to the Class of 2026 to start her collegiate swimming journey at Texas a year earlier than expected. Derivaux shared the news on her social media with an Instagram post captioned, “See you in August, Austin! Can’t wait to rep the Longhorns next season!”

    (Editor’s note: Derivaux reclassified to 2026 after our list was complete.)

    Derivaux, who turned 17 earlier this month, in 2024 was the youngest swimmer to reach the finals of an Olympic trial since 2012 when she was 14 years old. She competed in the women's 400 individual medley, but fell short of earning a spot in Paris. In July, she competed in the USA Swimming national championship, finished with the second-best time in the 100-meter butterfly, and won a trio of under-18 events (the women’s 100- and 200-meter butterfly and the women’s 400-meter individual medley).

    story continues after advertisement

    Natalie Dove

    Age: 24

    Illustration of Natalie Dove

    Since her professional debut in 2023, Natalie Dove is undefeated in nine fights — with two knockouts and five unanimous decisions. Dove, a super flyweight, remained undefeated in her most recent bout, an eight-round slugfest against Maria Micheo Santizo in April that ended with a split decision.

    “No Love” Dove initially was exposed to the sport as a self-defense method and started sparring in Philadelphia at 14. She fought in amateur tournaments and trained as a hopeful for the 2020 Olympics before turning pro. Since May 2025, Dove has fought for Jake Paul’s Most Valuable Promotions. She credits her toughness in the ring to her upbringing in Philly gyms and learning to hold her own “in a gym full of grown men that … talk [trash] the entire time.”

    “I really don’t care what anyone says,” Dove said last year. “If anything, I’m probably the biggest bully in the gym. I think it just made me tougher and it made boxing fun for me.”

    VJ Edgecombe

    Age: 21

    Illustration of VJ Edgecombe

    By the end of his first professional game, VJ Edgecombe already had flashed his star potential. The No. 3 overall pick in last year’s draft finished third in NBA Rookie of the Year voting and is set to start alongside Jaylen Brown, Tyrese Maxey, Joel Embiid, and LeBron James. But don’t let him slip under the radar behind those huge names.

    Edgecombe averaged 16 points per game last season and performed even better in the critical stretch in which Maxey, Embiid, and Paul George were sidelined. Brown, whose Celtics were eliminated in seven games by the Sixers, praised Edgecombe as a difference-maker in that first-round series. His teammates agree.

    “He’s the guy,” Embiid said after the Sixers’ season ended. “I’m telling you guys, that guy is something different, and this was only Year 1. Year 2 is going to be better.”

    Tyson Foerster

    Age: 24

    Illustration of Tyson Foerster

    Before an upper-body injury sidelined Tyson Foerster for 49 games, the winger was on pace for career-best numbers with 13 goals in 29 games thanks to a shot head coach Rick Tocchet called “really elite.” The Flyers signed Foerster to an eight-year extension this offseason, so, barring a trade, the winger will be in Philadelphia for years to come. He couldn’t be happier.

    “For me, I love Philadelphia, and I love playing with these guys,” he said. “They asked me if I would look to extend this year, and it was a no-brainer for me. I mean, I don’t play hockey for the money, so it’s all fun, and just happy to be here, hopefully, for the next nine years.”

    Colton Hiller

    Age: 16

    Illustration of Colton Hiller

    Colton Hiller, the No. 2 player in the Class of 2028, is a 6-foot-7 small forward for Coatesville. In his sophomore season, he averaged 25 points, six rebounds, three assists, and 1.8 steals. Ahead of his junior year, Hiller is uncommitted but holds offers from more than 15 schools, including Villanova and Penn State. Last summer, he was part of the gold-medal winning Team USA at the FIBA U16 AmeriCup, where he averaged 13 points in six games.

    In his two seasons with the Red Raiders, the five-star recruit has already surpassed 1,000 career points. He plays travel basketball in the Nike Elite Youth Basketball League, representing the 17-and-under PSA Cardinals, based in New York.

    “Someone like Colton makes Coatesville better, makes his league better, and makes the whole area better,” Father Judge coach Chris Roantree said.

    Maxwell Hiller

    Age: 17

    Illustration of Maxwell Hiller

    Maxwell Hiller — yes, he’s Colton’s older brother — also is a five-star recruit, but not in basketball. The Coatesville offensive lineman is entering his senior year and is the top-ranked interior O-lineman in the nation and No. 2 player overall for the Class of 2027, according to 247Sports. With more than 40 college offers, Hiller received his first college offer in eighth grade from Penn State. In April, the 6-foot-5 lineman committed to Florida.

    “I don’t even watch the play, I just watch [Max],” Colton said of his brother. “I definitely like when he gets people on the ground, just pancakes, and that’s probably my favorite part.”

    Max also played basketball, using it as a way to stay in shape, and even received an offer to play college hoops at La Salle.

    Salman Khalil

    Age: 21

    Illustration of Salman Khalil

    Cairo-born Salman Khalil has been a standout in squash for Penn since he joined the Quakers in 2023. He was the Ivy League’s Rookie of the Year in 2023-24 and was the conference’s Player of the Year as a sophomore. Khalil, a rising senior, has been a standout for Penn as it has claimed its first two Potter Cups as the collegiate squash national champion in his first two seasons.

    As a sophomore, Khalil became the first Quaker to claim the individual national championship (Pool Trophy) and the Potter Cup in the same season — and he did it while fasting for Ramadan. In addition to his career at Penn, Khalil is No. 52 in the squash world rankings. He holds a 42-16 record in noncollegiate events.

    Makai Lemon

    Age: 22

    Illustration of Makai Lemon

    Makai Lemon, the Eagles’ first-round pick in 2026, hasn’t played a snap in the NFL yet. But with A.J. Brown gone, the rookie has big shoes to fill and a big opportunity in front of him. At Southern Cal, he averaged 14.6 yards per catch and racked up 1,156 receiving yards in 12 games in his final season. Lemon is known for his elite ball skills, despite being just 5-foot-11, on the smaller side for a receiver. He suffered an injury that sidelined him during minicamp and has been dealing with a hamstring injury during training camp. But when it’s time for him to take the field, Eagles fans will be “getting a dawg,” Lemon told the crowd on draft night.

    “You drafted the guy that’s going to match the city’s intensity when it comes to pro football,” said Ray Fenton, Lemon’s former coach at Los Alamitos High School, located outside Los Angeles.

    story continues after advertisement

    Isabeau Levito

    Age: 19

    Illustration of Isabeau Levito

    Isabeau Levito became a household name this winter as one of the “Blade Angels,” the women’s figure skaters representing the U.S. at the Milan Cortina Olympics. She missed out on the podium, but she still got to bask in the experience of being an Olympian.

    “It was just so cool with all these athletes from different sports all in one place,” Levito said. “It was very magical, and it was a dream come true.”

    The South Jersey native also skated to a fourth-place finish at the 2026 World Championships in March. Levito has eight podium finishes at major events in her career, including silver at the 2024 World Championships and gold at the 2023 U.S. Championship. And she’s already started teasing her next routine.

    Porter Martone

    Age: 19

    Illustration of Porter Martone

    Porter Martone, who got his start blasting holes in the wall of his parents’ basement before starring at Michigan State, made an immediate impact following his NHL debut, with 10 points in his nine regular-season games. After the Flyers’ season ended in the second round against Carolina, Martone joined Team Canada at World Championships and got ice time on the top line with Macklin Celebrini and Sidney Crosby, scoring one goal and four assists in 10 games.

    “He wants to be out there when the game’s on the line,” coach Rick Tocchet said. “He’s unflappable.”

    Matvei Michkov

    Age: 21

    Illustration of Matvei Michkov

    Matvei Michkov’s sophomore NHL season was a bit turbulent, but the 21-year-old’s potential is sky-high, if his post-Olympic break stretch leading the team in points is any indication. At his best, the winger is a game-breaker and an elite talent the Flyers desperately need.

    “He knows he needs to improve off the ice in his training — and that’s not a secret — he’s admitted that himself. … So, the big thing for Matvei is adapting," general manager Danny Brière said.

    Quinyon Mitchell

    Age: 25

    Illustration of Quinyon Mitchell

    Quinyon Mitchell is the oldest player on our list and the only one who has already turned 25 — he beat our cutoff date by about two weeks — but the Eagles cornerback is more than deserving. He won the Super Bowl and was runner-up for Defensive Rookie of the Year in 2024 and has just kept improving.

    Mitchell was named first-team All-Pro in his second season and was ranked 47th on the NFL’s top 100 Players of 2026 by his peers, and there’s still room for him to grow. Mitchell’s lockdown coverage makes him a ball repellent. He was targeted just 85 times last year and gave up 36 catches for 451 yards and one touchdown. But in two NFL seasons, Mitchell still hasn’t picked off a pass in the regular season. He’s hoping to change that in 2026.

    “I’ve been working with the staff on catching and eye placement and stuff like that, so I just need to get better,” Mitchell said.

    Andrew Painter

    Age: 23

    Illustration of Andrew Painter

    After years of anticipation, Andrew Painter got his first crack at the Phillies’ rotation this year, and it didn’t go as many hoped. The 23-year-old had a 7.06 ERA in 14 appearances, including 12 starts, before being demoted to triple A. His first game back in the majors showed promise. After giving up a double and a home run early, he settled in for six strong innings and only allowed one hit after that.

    “When he’s done some things with his delivery, which is going more directly to the plate rather than spinning off, he’s had more life,” Phillies president of baseball operations Dave Dombrowski said.

    His three starts since — including one that was cut short by hamstring tightness — have been trending in the wrong direction. But at his best, Painter still represents a ton of potential.

    Jordyn Palmer

    Age: 17

    Illustration of Jordyn Palmer

    Westtown School star Jordyn Palmer is a 6-foot-2 rising senior guard/forward who is No. 9 in her class, according to ESPN. Palmer, a three-time Gatorade Pennsylvania Girls’ Basketball Player of the Year, averaged 23.2 points, 13.2 rebounds, 6.4 assists, 3.3 steals, and 2.5 blocks as a junior, helping lead the Westtown School (28-2) to the Pennsylvania Independent Schools Athletic Association championship game. She has 1,746 career points and 894 career rebounds.

    “Jordyn has not even scratched her full potential,” her father, Jermaine Palmer, said during her junior year.

    She has offers from more than 20 colleges, including South Carolina and LSU. In June, she was named Miss Pennsylvania Basketball, awarded to the best female high school basketball player in the state, voted on by fans, coaches, and media.

    Labaron Philon Jr.

    Age: 20

    Illustration of Labaron Philon

    Labaron Philon Jr. is one of a few professional players on this list who have yet to make their debut, but there are high hopes and plenty of hype surrounding the former Alabama point guard who fell to the Sixers as the 22nd overall pick in this summer’s draft.

    Of course, the expectations have eased in recent weeks as the Sixers added Jaylen Brown and LeBron James. But the 20-year-old brings shooting (48.2% for the Crimson Tide in two seasons) and a spark off the bench behind Tyrese Maxey and VJ Edgecombe. Philon’s Sixers career already got off to a good start at NBA Summer League, and he’s got a plan for his transition into the league.

    “Having the same ‘dawg’ mentality that I had at Alabama and being the same person,” Philon said after his Sixers debut. “Being me, really.”

    Lavar Scott

    Age: 22

    Illustration of Lavar Scott

    South Jersey’s Lavar Scott comes from a racing family, so it’s no surprise that he was able to climb the ranks of stock car racing to become one of three active Black drivers in NASCAR. In two full seasons in the ARCA Menards Series, Scott finished in the top five 22 times for Rev Racing, including four second place finishes.

    He earned a full-time spot in the NASCAR O’Reilly Auto Parts Series in 2026, making 22 starts in Alpha Prime Racing’s No. 45 Chevrolet. Scott has earned five top-20 finishes in 22 starts this season. Still looking for his first NASCAR win, Scott is chasing a feeling that he first learned racing go-karts at five years old.

    “It’s a feeling that when I go to bed, I think about, [when I] wake up, [I] think about, [when I] sleep, [I am] thinking about. It’s just the feeling of standing on top of your car after a win and [celebrating] with your friends and family and knowing you did your job really well that day,” Scott said in June.

    Luigi Suigo

    Age: 19

    Illustration of Luigi Suigo

    Standing at 7-foot-3, Italian-born center Luigi Suigo was the marquee addition for Kevin Willard this summer as he tries to lead Villanova back to the NCAA Tournament. Suigo, born in northern Italy, has played professionally in Europe since 2023. He averaged 7.9 points and 5.1 rebounds in 26 games during 2025-26 for KK Mega Basket of Serbia. Suigo entered the 2026 NBA draft and was projected as a late first-round, early second-round selection before he withdrew and decided to play college basketball at Villanova.

    “He wants to make sure when he gets drafted, he’s going to play,” Willard said of Suigo in June. “The big thing is I think he needs to get Americanized a little bit, to American basketball. I think that’s why college will be really good for him.”

    Even better for the Italian big man, Suigo will begin his college career with a game in Rome, where the Wildcats will play Notre Dame on Nov. 1.

    Cavan Sullivan

    Age: 16

    Illustration of Cavan Sullivan

    Cavan Sullivan, the youngest professional on this list, has a chance to be the most internationally recognized real athlete to come from Philadelphia — apologies to Rocky. The attacking midfielder has a deal in place that will send him to English giant Manchester City once he turns 18, but for now, he’s tearing up the pitch for the Union. He netted his first MLS goal in May, and his role for the team has continued to grow.

    “It’s a big year for me,” Sullivan said in January. “It’s exciting, but I’m not going to get ahead of myself. I know there’s still work to do and stuff to prove.”

    Look out for Sullivan in stars and stripes, too. He’s still waiting on his first senior team call-up, but he’s received numerous call-ups to U.S. youth national teams and scored twice at the 2025 FIFA under-17 World Cup in Qatar.

    Quinn Sullivan

    Age: 22

    Illustration of Quinn Sullivan

    While his younger brother has Europe’s attention, Quinn Sullivan has developed into an integral piece for his hometown club. Before an ACL tear ended his 2025 season, Sullivan scored three goals and logged eight assists in 31 appearances across all competitions as the Union claimed the MLS Supporters’ Shield.

    Sullivan also has experience with the U.S. men’s national team and made one start during the 2025 Gold Cup.

    Sullivan returned from his ACL injury in July 2026, and now that he’s fully healthy, he’s back in the Union’s starting lineup. Quinn isn’t making a move to Europe yet, but the Bridesburg native is happy to represent his hometown club for now.

    “I’d love to be the face of this team,” Sullivan said in January. “I mean, I grew up supporting this team. I love this team; I love this city. I feel like I embody what Philadelphia means.”

    Gage Wood

    Age: 22

    Illustration of Gage Wood

    Gage Wood, the Phillies’ first-round pick in 2025, made his first start at Citizens Bank Park in July — as part of the MLB All-Star Futures Game.

    But the right-hander, who was promoted to double-A Reading earlier this season, is progressing quickly through the system. Wood’s elite fastball helped get him to No. 33 on MLB Pipeline’s Top 100 prospects, but there are questions about whether Wood is a starter or a reliever long-term.

    “Obviously, I want to go back to the Bank as fast as I can,” Wood said. “I just keep working every day and try to get there as fast as possible.”

    story continues after advertisement

    That completes the first installment of The Inquirer’s 25 Under 25 athlete list. Naturally we couldn’t include every great athlete from the area, so be sure to check out our list of those who just missed the cut. We also have a list of the best under-25 athletes that are from the region but no longer play here. And, of course, we want to know who you think should’ve made the cut but didn’t, so email us at sports.daily@inquirer.com with anyone we might have missed.

    Staff Contributors

    • Design and Development: Julia Duarte
    • Reporting: Gabriela Carroll, Owen Hewitt, Mia Messina
    • Editing: Matt Mullin
    • Illustration: Vivi John
    • List Curation: Inquirer Sports Editors
    • Digital Editing: Matt Mullin
    • Copy Editing: Maria McIlwain

    Subscribe to The Philadelphia Inquirer

    Our reporting is directly supported by reader subscriptions. If you want more journalism like this story, please subscribe today

    (()=>{var V=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports);var A=V(i=>{var W={0:”Jan.”,1:”Feb.”,2:”March”,3:”April”,4:”May”,5:”June”,6:”July”,7:”Aug.”,8:”Sept.”,9:”Oct.”,10:”Nov.”,11:”Dec.”};function L(e){return e===void 0&&(e=new Date),W[e.getMonth()]}var Y={0:”Jan”,1:”Feb”,2:”Mar”,3:”Apr”,4:”May”,5:”Jun”,6:”Jul”,7:”Aug”,8:”Sep”,9:”Oct”,10:”Nov”,11:”Dec”};function S(e){return e===void 0&&(e=new Date),Y[e.getMonth()]}function s(e){return e==null}function T(e){return typeof e==”number”&&isFinite(e)}function f(e){return T(e)&&Math.floor(e)===e}var _=[“one”,”two”,”three”,”four”,”five”,”six”,”seven”,”eight”,”nine”],U=[“million”,”billion”,”trillion”,”quadrillion”,”quintillion”,”sextillion”,”septillion”,”octillion”,”nonillion”,”decillion”],x=[“th”,”st”,”nd”,”rd”,”th”,”th”,”th”,”th”,”th”,”th”],Z=[11,12,13];function M(e){if(s(e))return””;var t=+e;return f(t)?Z.indexOf(t%100)>-1?x[0]:x[t%10]:””}var K=[“first”,”second”,”third”,”fourth”,”fifth”,”sixth”,”seventh”,”eighth”,”ninth”],Q=new RegExp(/s+([^s]*)s*$/);i.apdate=function(e){return e===void 0&&(e=new Date),L(e)+” “+e.getDate()+”, “+e.getFullYear()},i.apdatetab=function(e){return e===void 0&&(e=new Date),S(e)+” “+e.getDate()+”, “+e.getFullYear()},i.apmonth=L,i.apmonthtab=S,i.apnumber=function(e){if(s(e))return””;var t=+e;return f(t)?t=10?e.toString():_[t-1]:e.toString()},i.aptime=function(e){e===void 0&&(e=new Date);var t,n,o=e.getHours(),r=e.getMinutes(),d=r===0;if(d){if(o===0)return”midnight”;if(o===12)return”noon”}return o0?o:12):(t=”p.m.”,n=o===12?o:o-12),d?n+” “+t:n+”:”+(r<10?"0"+r:r)+" "+t},i.capfirst=function(e){if(s(e))return"";var t=String(e);return""+t.charAt(0).toUpperCase()+t.slice(1)},i.intcomma=function(e){if(s(e))return"";var t,n=+e;return T(n)?((t=n.toString().split("."))[0]=t[0].replace(/B(?=(d{3})+(?!d))/g,","),t.join(".")):e.toString()},i.intword=function(e){if(s(e))return"";var t=+e;if(!f(t))return e.toString();var n=Math.abs(t);if(n<1e6)return e.toString();var o=Math.ceil(Math.log(n+1)/Math.LN10)-1,r=o-o%3,d=t/Math.pow(10,r);return(d=Math.round(10*d)/10)+" "+U[Math.floor(r/3)-2]},i.ordinal=function(e,t){if(t===void 0&&(t=!1),s(e))return"";var n=+e;return f(n)?t&&n/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);var y=(e,t=null,n=null)=>{n||(n=document.querySelector(“head”));let o=document.createElement(“script”);o.type=”text/javascript”,o.src=e,t&&(o.onload=t),n.appendChild(o)},h=()=>(window.PMNdataLayer?.[0]!==void 0&&window.PMNdataLayer[0])?.analytics?.user?.state===”Subscribed”,m=()=>{let t=(window.PMNdataLayer?.[0]!==void 0&&window.PMNdataLayer[0])?.analytics?.user?.state;return window.location.host.includes(“zzz-systest”)||window.location.host.includes(“pmn.arcpublishing.com”)||window.location.host.includes(“stage.fusion.inquirer.com”)||typeof t>”u”},E=()=>{let t=(window.PMNdataLayer?.[0]!==void 0&&window.PMNdataLayer[0])?.analytics?.user?.hasAdsFreeReading;return!!(t&&t==1)},u=()=>window.location.host.includes(“localhost”);var X=()=>{E()&&document.querySelectorAll(“.js-adbox”).forEach(t=>{t.classList.add(“is-hidden”)})},k={init:()=>{X()}};var g,ee=(e,t)=>{g=g||window.PMNdataLayer,g?g.push({event:”misc_event”,eventAction:e,eventLabel:t}):window.location.hostname.includes(“localhost”)?console.log(“Analytics event:”,e,t,”(not actually being sent due to localhost)”):console.log(“Failed to push analytics event”,e,t)},j={event:(e,t)=>{ee(e,t)}};var te=()=>{document.querySelectorAll(“.js-card-show-more”).forEach(e=>{e.addEventListener(“click”,()=>{ne(e)})})},ne=e=>{let t=e.closest(“.js-card”),n=t.querySelector(“.js-card-body”),r=n.querySelector(“.js-card-body-content”).getBoundingClientRect().height;t.classList.remove(“is-collapsed”),n.style.maxHeight=r+”px”,setTimeout(()=>{n.style.maxHeight=”none”},1e3),j.event(“expand_card”,`${t.dataset.id}`)},H={init:()=>{te()}};var a,D,oe=()=>{a=document.getElementById(“js-inno-toast”)},re=e=>{if(!a)return;a.innerHTML=e,a.classList.add(“is-active”);let t=()=>{a.addEventListener(“transitionend”,ie,{once:!0}),a.classList.remove(“is-active”)};clearTimeout(D),D=setTimeout(t,5e3)},ie=()=>{a.innerHTML=””},c={init:()=>{oe()},showToast:re};var v,P=!1,se=async()=>new Promise(e=>{setTimeout(()=>{console.log(“simulating createShareLink for localhost”),e(“https://inquirer.com/interactives”),ae()},100)}),ae=()=>{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)},ce=()=>{let e=window.services?.createShareLink;e&&(v=e),u()&&(v=se),v&&de()},le=async e=>{let t=”text/plain”,n=async()=>{try{return await v(window.location.pathname)}catch{e.dataset.state=”error”,c.showToast(“Hmm, we couldn’t generate a gift link…”)}},o=new ClipboardItem({[t]:n()});await navigator.clipboard.write([o]).catch(r=>{console.log(r),c.showToast(“Couldn’t copy to clipboard, try again?”),e.dataset.state=”error”}),c.showToast(“Gift link copied to clipboard!”),e.dataset.state=”complete”},de=()=>{document.querySelectorAll(“.js-gift”).forEach(t=>{(h()||u()||m())&&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”,P=!0,le(t),setTimeout(()=>{t.dataset.state=”ready”},2e3))})});let e=document.querySelector(“.js-gift-toast-receiver”);!e||!(e instanceof HTMLElement)||ue(e)},ue=e=>{new MutationObserver(n=>{for(let o of n){let r=[…o.addedNodes].at(0);if(!(r instanceof HTMLElement))return;P&&c.showToast(r.outerHTML)}}).observe(e,{subtree:!0,childList:!0})},I={init:()=>{ce()}};var pe=()=>{window.addEventListener(“message”,e=>{if(e.data[“datawrapper-height”]){let t=e.data[“datawrapper-height”];for(let n in t)document.querySelector(`#datawrapper-chart-${n}`).setAttribute(“height”,t[n])}})},fe=()=>{document.querySelectorAll(“.js-datawrapper-graphic”).forEach(e=>{y(`https://datawrapper.dwcdn.net/${e.dataset.id}/embed.js`,null,e)})},he=()=>{window.addEventListener(“message”,e=>{let t=e.data;document.querySelectorAll(`iframe[src*=”${t.id}”]`).forEach(o=>{o.style.height=`${t.height}px`})},!1)},me=()=>{document.querySelectorAll(“.js-pym-graphic”).forEach(e=>{if(typeof window{new window.pym.Parent(e.id,e.dataset.iframe)};typeof window.pym>”u”?y(“https://pym.nprapps.org/pym.v1.min.js”,t):t()}})},N={init:()=>{pe(),fe(),me(),he()}};var p,ge=()=>{document.querySelectorAll(“.js-hover”).forEach(e=>{e.addEventListener(“click”,()=>{C(e)}),e.addEventListener(“mouseenter”,()=>{C(e)}),e.addEventListener(“mouseout”,()=>{B(e)})}),window.addEventListener(“scroll”,()=>{p!==null&&ve()})},ve=()=>{(p>window.scrollY+100||p{B(e)})},C=e=>{e.classList.add(“is-visible”),p=window.scrollY},B=e=>{e.classList.remove(“is-visible”),p=null},F={init:()=>{ge()}};var ye=(e,t,n)=>{document.querySelectorAll(“.js-subscribe”).forEach(o=>{o.classList.toggle(“is-unsubscribed”,!e),o.classList.toggle(“is-preview”,t),o.classList.toggle(“is-dev”,n)})},$={init:()=>{ye(h(),m(),u())}};var l,w,b=!0,we=()=>{l=document.querySelectorAll(“.js-video-autoplay”)},be=()=>{window.addEventListener(“resize”,()=>{O()}),window.addEventListener(“scroll”,()=>{O()}),l.forEach(e=>{e.addEventListener(“volumechange”,t=>{e.muted!==b&&!q()&&(b=e.muted,Le())})})},O=()=>{let e;l.forEach((t,n)=>{let o=t.getBoundingClientRect(),r=o.height/2;o.y-r&&(e=t)}),e!==w&&(w=e,l.forEach(t=>{t.pause()}),e?e.play():w=null)},Le=()=>{l.forEach(e=>{e.muted=b})},z={init:()=>{we(),l&&be()}};var R={init:()=>{k.init?.(),H.init?.(),I.init?.(),N.init?.(),F.init?.(),$.init?.(),z.init?.(),c.init?.()}};var Se=()=>{},J={init:()=>{Se()}};var xe=document.querySelector(“.js-inno”),G=()=>{R.init(),J.init()};xe?G():new MutationObserver((t,n)=>{if(document.querySelector(“.js-inno”)){n.disconnect(),G();return}}).observe(document,{attributes:!0,childList:!0,subtree:!0});})();

  • The 25 Under 25 ‘From Here’ List: Hannah Hidalgo, Kevin McGonigle, and the best athletes who no longer play in Philly

    The 25 Under 25 ‘From Here’ List: Hannah Hidalgo, Kevin McGonigle, and the best athletes who no longer play in Philly

    On Thursday, we released The Inquirer’s first list of the Philadelphia area’s 25 best athletes under 25 years old. But since that list was limited to those who currently play in Philly, we thought it was only fair to tip our cap to athletes who are originally from the region but no longer play here.

    Here are 11 young college and professional athletes (listed alphabetically) who got their starts in Philly but currently star elsewhere …

    Abdul Carter

    New York Giants | Age: 22

    At linebacker, Carter helped lead La Salle to the 2021 Philadelphia Catholic League championship before becoming a national name at Penn State. Now, the North Philadelphia native is looking to break out during his sophomore season with the Giants after being drafted No. 3 overall by the franchise in 2025. Last season, Carter finished with 25 solo tackles, four sacks, and two forced fumbles.

    Tague Davis

    Louisville baseball | Age: 20

    Davis was named the Atlantic Coast Conference Baseball Player of the Year after a successful sophomore season at Louisville. He led the nation with 34 home runs while driving in 98 runs. The West Chester native, who attended Malvern Prep, saw action for Team USA this summer in the inaugural World Collegiate Baseball Championship in Taiwan. The first baseman is the son of former major league catcher and Phillies color commentator Ben Davis. His younger sister, Riley Davis, is a standout lacrosse player at the Academy of Notre Dame de Namur and one of the 25 athletes to make our inaugural 25 under 25.

    Tague Davis received significant attention from other programs after the Cardinals were bounced from the first round of the ACC postseason tournament, but he opted to stay in Louisville.

    “Sometimes the grass ain’t always greener,” Davis told The Inquirer in July.

    Natalie Dumas

    Arkansas track and field | Age: 18

    Dumas, a recent graduate of Eastern Regional, is heading to Arkansas for her freshman year. At Eastern, Dumas broke more than 20 program records and became the first girl to place first in three events at the NJSIAA Meet of Champions — the 400 meters, 400-meter hurdles, and 800 meters. Dumas became one of just 20 female high school track and field athletes to sign with Nike Elite — a coveted name, image, and likeness program.

    “At the end of the day I’m not afraid to lose,” Dumas told The Inquirer in July.

    Jalen Duren

    Detroit Pistons | Age: 22

    Duren, a Sharon Hill native, played two high school basketball seasons at Roman Catholic before transferring to the prestigious Montverde Academy in Florida. After a single season at Memphis, Duren was selected 13th overall to the Detroit Pistons in the 2022 NBA draft. In the Motor City, Duren has made a name for himself as one of the most talented young bigs in the league. This past season, he was named to the All-NBA third team. He is currently a free agent but is expected to resign in Detroit.

    Marvin Harrison Jr. (center) was drafted fourth overall by the Cardinals in the 2024 NFL draft.Richard Rodriguez

    Marvin Harrison Jr.

    Arizona Cardinals | Age: 24

    Harrison Jr. was a star at St. Joseph’s Prep before playing college football at Ohio State. The wideout, who owns the Philadelphia Catholic League record book, was drafted No. 4 overall in the 2024 NFL draft by the Cardinals. Despite inconsistent play at quarterback, Harrison Jr. has logged 1,493 receiving yards and 12 touchdowns through his first 29 games. He is the son of NFL Hall of Fame wideout Marvin Harrison and the older brother of Jett Harrison, a standout receiver at Prep who is committed to Ohio State.

    Ryleigh Heck

    Team USA field hockey | Age: 22

    Heck grew up in Shamong, Burlington County and played field hockey at Eastern Regional. There, she became a three-time state champion and an All-American. After high school, Heck took her talents to North Carolina. Through four years with the Tar Heels, she has collected two NCAA championships and four ACC titles. In 2023, she was named the National Field Hockey Coaches Association Division I National Player of the Year.

    Hannah Hidalgo

    Notre Dame basketball | Age: 21

    Before leading the Fighting Irish women’s basketball team, Hidalgo turned heads at Paul VI High School in Haddon Township. Hidalgo was named a McDonald’s All-American during her senior year at Paul VI before heading off to South Bend. Last season, the Merchantville native averaged 25.3 points. 6.9 rebounds, 5.2 assists, and a nation-best 5.6 steals. She also helped lead Notre Dame to an Elite Eight appearance.

    “It gives us motivation,” Hidalgo told The Inquirer in March. “To be able to [reach the Elite Eight] with this team, when nobody thought we were going to get past the second round.”

    Jamir Johnson

    Orange County SC | Age: 18

    Johnson grew up in Voorhees and is a product of the Philadelphia Union Academy. The Union, however, were not able to retain the promising winger. Johnson, who was named to the 2025 MLS NEXT Pro All-Star game, signed with Orange County SC in January. Johnson has international playing experience, playing for the U.S. Youth National Team. He has seven goals in international play.

    Gary Martin was a seven-time first-team All-American at Virginia.Tyger Williams / Staff Photographer

    Gary Martin

    Track and field | Age: 22

    Martin, who set records at Archbishop Wood, recently finished up his collegiate career at Virginia. In Charlottesville, Martin was a seven-time first-team All-American. During the 2025 NCAA Indoor Championships, Martin won a national title in the distance medley relay, running the last leg. He recently signed a professional contract with Brooks.

    Kevin McGonigle

    Detroit Tigers | Age: 22

    McGonigle, a standout at Bonner-Prendergast, now stars at shortstop for the Detroit Tigers. The Media native has an on-base percentage of .384 and has scored 82 runs. This season, McGonigle made his All-Star debut at Citizens Bank Park and played in front of his “fan club” — a group of fans from Archbishop Prendergast High School that have traveled far and wide to watch him play.

    Ashley Sessa

    Northwestern field hockey | Age: 22

    Sessa, a Schwenksville native, won a national championship at North Carolina during her freshman season. After a single year with the Tar Heels, Sessa transferred to Northwestern. Her winning ways followed. Her sophomore and junior campaigns at Northwestern both ended with national titles. The two-time Big Ten Offensive Player of the Year is looking to go 4-for-4 by adding another championship to cap off her collegiate career.

    She also has her eyes set out for the 2028 Olympics in Los Angeles.

    “If I have a bad practice day, I let myself think forward a bit and just say, ‘You know what, this is good, I’m learning something new,’” Sessa told The Inquirer earlier this month. “This preparation will help me further in the future for the L.A. Games.

  • A 19th century Philadelphia lamp maker took the world’s first selfie and turned the city into a hub of portrait photography

    A 19th century Philadelphia lamp maker took the world’s first selfie and turned the city into a hub of portrait photography

    French inventor Louis Jacques Daguerre introduced the daguerreotype — the world’s first photograph — in Paris in August 1839. By September, he produced a pamphlet introducing the technique to the world.

    When the how-to-take-a-photo leaflets arrived in Philadelphia in late September, the city’s cultured men, scientists, and budding artists gave photography a shot.

    But unlike today’s pointing and clicking, it wasn’t easy.

    “All they got were the pamphlets,” explained Rachel Wetzel, senior photo conservator at the Library of Congress. “Nobody had a camera, plates, chemicals, or darkroom apparatus.”

    The newly minted photographers needed paper-thin sheets of silver-plated copper, iodine, and mercury. The ratio of the chemicals needed to be exact, and the amount of sunlight needed for exposure to capture images varied wildly.

    “Central High School, Philadelphia,” is a facsimile of daguerreotype attributed to Joseph Saxton made in 1839.The Historical Society of Pennsylvania

    On Sept. 25, 1839, U.S. Mint employee Joseph Saxton, whose office was located on the northwest corner of Chestnut and Juniper Street across from Central High School, photographed the city’s first high school from one of his workplace’s top-floor windows.

    That photo is the oldest existing photograph taken in America.

    Saxton soon took up photography as a hobby but had a hard time getting his hands on the thin, silver-plated copper sheets needed to make daguerreotypes. He asked his friend, lamp maker and metal-plating expert Robert Cornelius, for help.

    Cornelius, who had a connection with Scovill Manufacturing, then among the most prominent metalworking manufacturing firms in the United States, happily obliged.

    And as it turned out, Cornelius was curious about photography, too.

    A few weeks later, in late October or early November, Cornelius found himself standing behind his family-owned lamp-making shop at what is today Seventh and Chestnut Streets, experimenting with a camera he fashioned from a small metal box.

    Instead of pointing his lens at a lantern, a cobblestoned street, or a traveling horse and buggy, Cornelius turned his camera on himself.

    He opened his lens cover and stood still long enough in the sunlight for the exposure to capture his image on a metal plate.

    The selfie was born.

    Alana Bograd’s design highlights the fact that the surprising fact the oldest extant photographic portrait photographic portrait was a self-portrait that today we call a selfie. It was taken in Philadelphia by Robert Cornelius in 1839.Alana Bograd for Colibri Workshop

    That first selfie is housed in the Library of Congress.

    And that magnificent moment — predating social media by almost two centuries — will be feted this Saturday at Franklin Square from 11 a.m. to 1 p.m. The selfie celebration is the Philadelphia Historic District’s 34th firstival, a weekly day party in honor of America’s 250th birthday, giving love to events and happenings with very Philly roots.

    When Daguerre came up with his picture-taking method, he did not have portraits in mind, Wetzel said.

    Historians aren’t sure why Cornelius decided to make a picture of himself, but in an 1892 American Journal of Photography article, he talked about what it was like standing alone on the streets of Philadelphia waiting for the image to happen, Wetzel said.

    “When he stood in front of the camera, he wasn’t sure if he was centered or not,” Wetzel said. “That’s why he’s weighted to the right of the plate.”

    The wonder surrounding taking the first selfie seemingly inspired Cornelius.

    In May of 1840, Cornelius opened the world’s second portrait studio at Eighth and Lodge Alley (now Ranstead Street), not far from his family’s lamp-making shop.

    Business partners Alexander S. Wolcott and John Johnson opened the world’s first portrait studio in New York a few months earlier, but only Cornelius’ 1840 portraits endured, explained Wetzel, who is also a leading historian in Cornelius’ work.

    Robert Cornelius historian Rachel Wetzel surrounded by Cornelius’ daguerreotypes at the Library of Congress. Shawn Miller

    She began studying Cornelius’ work in earnest in 2015 while working in Philadelphia at the Conservation Center for Art & Historic Artifacts. Wetzel has studied upward of 70 of Cornelius’ portraits, thanks to plates that have survived more than 100 years.

    Cornelius took portraits of prominent citizens — many of whom were Quakers — in their Sunday best because at $5 a piece, the equivalent of a week’s salary in those days, they were the only ones who could afford it.

    The first portrait he took in his studio was of a man named John McCallister Jr., a wealthy optometrist who, coincidentally, supplied Cornelius with his camera’s lenses.

    In 1840, Robert Cornelius opened the first photographic portrait studio in Philadelphia at 8th on Lodge Alley (now Ranstead Street John McCallister Jr. He was the first one to sit in his portrait studio.Robert Cornelius housed at the Library of Congress

    Cornelius moved his portrait studio to its second location on Market Street before closing the business in 1843, and returning to his family’s lamp business full time.

    “While he’s operating the studio, he never quit working for his family,” Wetzel said. “He’s working the camera, but he had apprentices who polished the plates and did the behind-the-scenes darkroom work.”

    As the mid-19th century approached, the Cornelius family’s lamp business began to boom. Street lamps became commonplace. Philadelphians began putting gas lamps in their homes. Cornelius formed a partnership with Isaac Baker and formed Cornelius & Baker, becoming a premier manufacturer of high-end metalwork, lamps, chandeliers, and gas lighting fixtures.

    Paul Miers lowers the chandelier at the Academy of Music in Philadelphia to clean it and replace light bulbs on Wednesday, May 29, 2024. The large crystal chandelier, measures 16 ft in diameter, and weighs 5,000 Lb.Jose F. Moreno / Staff Photographer

    “Their hand railings, banisters, statues, and chandeliers became world-renowned,” Wetzel said. “Many of their pieces are still found throughout Washington, D.C., and the U.S. Capitol today.”

    The Academy of Music’s massive crystal chandelier in the center of its auditorium was built by Cornelius & Baker for the opera house’s historic 1857 opening. (Yes, the guy who took the world’s first selfie also built the Academy of Music’s chandelier. Let that sink in.)

    Cornelius’ portrait studio may have been short-lived, but his impact on photography is lasting. Wetzel suggests his apprentices went on to open daguerreotype portrait studios across the city, and by 1849, there were at least 100 in Philadelphia. By the end of the 19th century, the costs had come down considerably, and portraits could be purchased for as little as 25 cents.

    “Philadelphians loved portraiture,” Wetzel said.

    National League Futures manager Shane Victorino (center) takes a selfie with members of his team before the 2026 All-Star Futures game in Philadelphia on Sunday, July 12, 2026.David Maialetti / Staff Photographer

    By the mid to late 1850s, daguerreotypes were replaced with the collodion process. But photographs — whether developed in a darkroom or a drugstore, taken on Polaroids, or shot on smartphones — endure.

    And the selfie rules.

    This week’s Firstival is Saturday, Aug. 22, from 11 a.m.-1 p.m., at Franklin Square, 200 N. 6th St. Firstival celebrants will meet under a tent, and the party will be held rain or shine.

    Each week, The Inquirer is highlighting a “first” from the Philadelphia Historic District’s 52 Weeks of Firsts. A “52 Weeks of Firsts” podcast, produced by All That’s Good Productions, drops every Tuesday.

  • SEPTA is altering 30 bus routes. See if your commute changes.

    SEPTA is altering 30 bus routes. See if your commute changes.

    html,body{margin:0}.inno :where(*:not(svg,svg *,.inno-no-reset,.inno-no-reset *),use){all:revert;margin:0;padding:0;border:0;list-style:none}@font-face{font-family:”Inquirer Headline”;font-weight:100;src:url(“https://media.inquirer.com/fonts/InquirerHeadline-ThinWEB.woff2”) format(“woff2”),url(“https://media.inquirer.com/fonts/InquirerHeadline-ThinWEB.woff”) format(“woff”)}@font-face{font-family:”Inquirer Headline”;font-weight:100;font-style:italic;src:url(“https://media.inquirer.com/fonts/InquirerHeadline-ThinItalicWEB.woff2”) format(“woff2”),url(“https://media.inquirer.com/fonts/InquirerHeadline-ThinItalicWEB.woff”) format(“woff”)}@font-face{font-family:”Inquirer Headline”;font-weight:300;src:url(“https://media.inquirer.com/fonts/InquirerHeadline-LightWEB.woff2”) format(“woff2”),url(“https://media.inquirer.com/fonts/InquirerHeadline-LightWEB.woff”) format(“woff”)}@font-face{font-family:”Inquirer Headline”;font-weight:300;font-style:italic;src:url(“https://media.inquirer.com/fonts/InquirerHeadline-LightItalicWEB.woff2”) format(“woff2”),url(“https://media.inquirer.com/fonts/InquirerHeadline-LightItalicWEB.woff”) format(“woff”)}@font-face{font-family:”Inquirer Headline”;font-weight:normal;src:url(“https://media.inquirer.com/fonts/InquirerHeadline-RegularWEB.woff2”) format(“woff2”),url(“https://media.inquirer.com/fonts/InquirerHeadline-RegularWEB.woff”) format(“woff”)}@font-face{font-family:”Inquirer Headline”;font-weight:normal;font-style:italic;src:url(“https://media.inquirer.com/fonts/InquirerHeadline-RegularItalicWEB.woff2”) format(“woff2”),url(“https://media.inquirer.com/fonts/InquirerHeadline-RegularItalicWEB.woff”) format(“woff”)}@font-face{font-family:”Inquirer Headline”;font-weight:500;src:url(“https://media.inquirer.com/fonts/InquirerHeadline-MediumWEB.woff2”) format(“woff2”),url(“https://media.inquirer.com/fonts/InquirerHeadline-MediumWEB.woff”) format(“woff”)}@font-face{font-family:”Inquirer Headline”;font-weight:500;font-style:italic;src:url(“https://media.inquirer.com/fonts/InquirerHeadline-MediumItalicWEB.woff2”) format(“woff2”),url(“https://media.inquirer.com/fonts/InquirerHeadline-MediumItalicWEB.woff”) format(“woff”)}@font-face{font-family:”Inquirer Headline”;font-weight:600;src:url(“https://media.inquirer.com/fonts/InquirerHeadline-SemiBoldWEB.woff2”) format(“woff2”),url(“https://media.inquirer.com/fonts/InquirerHeadline-SemiBoldWEB.woff”) format(“woff”)}@font-face{font-family:”Inquirer Headline”;font-weight:600;font-style:italic;src:url(“https://media.inquirer.com/fonts/InquirerHeadline-SemiBoldItalicWEB.woff2”) format(“woff2”),url(“https://media.inquirer.com/fonts/InquirerHeadline-SemiBoldItalicWEB.woff”) format(“woff”)}@font-face{font-family:”Inquirer Headline”;font-weight:700;src:url(“https://media.inquirer.com/fonts/InquirerHeadline-BoldWEB.woff2”) format(“woff2”),url(“https://media.inquirer.com/fonts/InquirerHeadline-BoldWEB.woff”) format(“woff”)}@font-face{font-family:”Inquirer Headline”;font-weight:700;font-style:italic;src:url(“https://media.inquirer.com/fonts/InquirerHeadline-BoldItalicWEB.woff2”) format(“woff2”),url(“https://media.inquirer.com/fonts/InquirerHeadline-BoldItalicWEB.woff”) format(“woff”)}@font-face{font-family:”Inquirer Headline”;font-weight:900;src:url(“https://media.inquirer.com/fonts/InquirerHeadline-BlackWEB.woff2”) format(“woff2”),url(“https://media.inquirer.com/fonts/InquirerHeadline-BlackWEB.woff”) format(“woff”)}@font-face{font-family:”Inquirer Headline”;font-weight:900;font-style:italic;src:url(“https://media.inquirer.com/fonts/InquirerHeadline-BlackItalicWEB.woff2”) format(“woff2”),url(“https://media.inquirer.com/fonts/InquirerHeadline-BlackItalicWEB.woff”) format(“woff”)}@font-face{font-family:”Inquirer Text”;font-weight:normal;src:url(“https://media.inquirer.com/fonts/InquirerTextWEB-RegularWEB.woff2”) format(“woff2”),url(“https://media.inquirer.com/fonts/InquirerTextWEB-RegularWEB.woff”) format(“woff”)}@font-face{font-family:”Inquirer Text”;font-weight:normal;font-style:italic;src:url(“https://media.inquirer.com/fonts/InquirerTextWEB-RegularItalicWEB.woff2”) format(“woff2”),url(“https://media.inquirer.com/fonts/InquirerTextWEB-RegularItalicWEB.woff”) format(“woff”)}@font-face{font-family:”Inquirer Text”;font-weight:bold;src:url(“https://media.inquirer.com/fonts/InquirerTextWEB-BoldWEB.woff2”) format(“woff2”),url(“https://media.inquirer.com/fonts/InquirerTextWEB-BoldWEB.woff”) format(“woff”)}@font-face{font-family:”Inquirer Text”;font-weight:bold;font-style:italic;src:url(“https://media.inquirer.com/fonts/InquirerTextWEB-BoldItalicWEB.woff2”) format(“woff2”),url(“https://media.inquirer.com/fonts/InquirerTextWEB-BoldItalicWEB.woff”) format(“woff”)}@font-face{font-family:”Grot 10″;font-weight:normal;src:url(“https://media.inquirer.com/fonts/Grot10-RegularWEB.woff2”) format(“woff2”),url(“https://media.inquirer.com/fonts/Grot10-RegularWEB.woff”) format(“woff”)}@font-face{font-family:”Grot 10″;font-weight:500;src:url(“https://media.inquirer.com/fonts/Grot10-MediumWEB.woff2”) format(“woff2”),url(“https://media.inquirer.com/fonts/Grot10-MediumWEB.woff”) format(“woff”)}@font-face{font-family:”Grot 10″;font-weight:bold;src:url(“https://media.inquirer.com/fonts/Grot10-ExtraboldWEB.woff2”) format(“woff2”),url(“https://media.inquirer.com/fonts/Grot10-ExtraboldWEB.woff”) format(“woff”)}@font-face{font-family:”Grot12″;font-weight:300;src:url(“https://media.inquirer.com/fonts/Grot12Condensed-LightWEB.woff2”) format(“woff2”),url(“https://media.inquirer.com/fonts/Grot12Condensed-LightWEB.woff”) format(“woff”)}@font-face{font-family:”Grot12″;font-weight:600;src:url(“https://media.inquirer.com/fonts/Grot12Condensed-SemiboldWEB.woff2”) format(“woff2”),url(“https://media.inquirer.com/fonts/Grot12Condensed-SemiboldWEB.woff”) format(“woff”)}body.is-scroll-locked{overflow:hidden;height:100%}.inno{–color-background: #222222;–color-background-secondary: #595760;–color-accent: #8dd7f7;–color-over-accent: #222222;–color-text-primary: #ffffff;–color-text-secondary: #dcdcdc;–color-text-tertiary: #808284;–color-text-accent: #ffffff;–color-text-link: #8dd7f7;–color-faint: #ffffff;–color-mask: rgba(255, 255, 255, 0.8);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:”Grot 10″,sans-serif;background:var(–color-background);color:var(–color-text-primary);padding-block-end:64px;overflow:clip;font-size:14px;line-height:1}.inno–lite.inno-color–purple{–color-accent: #7b2589;–color-over-accent: #ffffff;–color-text-accent: #7b2589}.inno–lite.inno-color–pink{–color-accent: #cd0785;–color-over-accent: #ffffff;–color-text-accent: #cd0785}.inno–lite.inno-color–red{–color-accent: #e11b22;–color-over-accent: #ffffff;–color-text-accent: #e11b22}.inno–lite.inno-color–orange{–color-accent: #e66a1f;–color-over-accent: #222222;–color-text-accent: #e66a1f}.inno–lite.inno-color–yellow{–color-accent: #f0af13;–color-over-accent: #222222;–color-text-accent: #f0af13}.inno–lite.inno-color–green{–color-accent: #00a253;–color-over-accent: #ffffff;–color-text-accent: #00a253}.inno–lite.inno-color–teal{–color-accent: #00a69e;–color-over-accent: #ffffff;–color-text-accent: #00a69e}.inno–lite.inno-color–light-gray{–color-accent: #dcdcdc;–color-over-accent: #222222;–color-text-accent: #dcdcdc}.inno–lite.inno-color–light-blue{–color-accent: #8dd7f7;–color-over-accent: #222222;–color-text-accent: #8dd7f7}.inno–lite.inno-color–blue{–color-accent: #004e96;–color-over-accent: #ffffff;–color-text-accent: #004e96}.inno–lite.inno-color–black{–color-accent: #222222;–color-over-accent: #ffffff;–color-text-accent: #222222}.inno–lite.inno-color–white{–color-accent: #ffffff;–color-over-accent: #222222;–color-text-accent: #ffffff}.inno–lite.inno-color–white,.inno–lite.inno-color–black{–color-accent: #004e96;–color-over-accent: #ffffff;–color-text-accent: #222222}.inno–lite.inno-color–white.inno-mode–dark,.inno–lite.inno-color–black.inno-mode–dark{–color-accent: #8dd7f7;–color-over-accent: #222222;–color-text-accent: #ffffff}.inno–widget,.inno–embed{overflow:hidden;padding-block-end:0}.inno–widget .inno-layout–content>*,.inno–embed .inno-layout–content>*{max-width:none}.inno-anchorable:before{content:””;display:block;height:calc(var(–nav-height, 0) + 10px);margin:calc(0px – (var(–nav-height, 0) + 10px)) 0 0}.inno-spanner{background-color:#fff;box-shadow:4px 0 0 #fff,-4px 0 0 #fff;color:#fff;padding:1px 0;margin:0 5px;box-decoration-break:clone;-webkit-box-decoration-break:clone;color:#222}.inno-spanner–error,.inno-spanner–error-invalid-symbol{background-color:#fff;border:3px dashed #e11b22;box-shadow:none;padding-left:4px;padding-right:4px}.inno-spanner–discontinued{background-color:#e66a1f;box-shadow:4px 0 0 #e66a1f,-4px 0 0 #e66a1f;color:#fff;padding:1px 0;margin:0 5px;box-decoration-break:clone;-webkit-box-decoration-break:clone}.inno-spanner–extended-route,.inno-spanner–extension,.inno-spanner–extended,.inno-spanner–extend,.inno-spanner–brand-new-route{background-color:#00a253;box-shadow:4px 0 0 #00a253,-4px 0 0 #00a253;color:#fff;padding:1px 0;margin:0 5px;box-decoration-break:clone;-webkit-box-decoration-break:clone}.inno-spanner–old-route,.inno-spanner–old-routes{background-color:#f0af13;box-shadow:4px 0 0 #f0af13,-4px 0 0 #f0af13;color:#fff;padding:1px 0;margin:0 5px;box-decoration-break:clone;-webkit-box-decoration-break:clone}.inno-spanner–reduced-service,.inno-spanner–increased-service{color:#fff;box-shadow:none;background-color:rgba(0,0,0,0);background-image:url(“https://interactives.inquirer.com/projects/2026/08/septa-buses/1787171010074/assets/icon–increased.svg”);background-position:left center;background-repeat:no-repeat;background-size:contain;margin:0}.inno-spanner–reduced-service{background-image:url(“https://interactives.inquirer.com/projects/2026/08/septa-buses/1787171010074/assets/icon–reduced.svg”);padding-left:28px;margin-left:3px}.inno-spanner–increased-service{background-image:url(“https://interactives.inquirer.com/projects/2026/08/septa-buses/1787171010074/assets/icon–increased.svg”);padding-left:32px}.inno-spanner–frequent-red{border:2px solid #fff;background-color:#e11b22;box-shadow:none;color:#fff;margin:0;padding:2px 8px;border-radius:18px}body:has(.inno-chrome–chromeless){overflow:hidden;width:100vw;height:100vh}@supports(width: 100dvw){body:has(.inno-chrome–chromeless){width:100dvw}}@supports(height: 100dvh){body:has(.inno-chrome–chromeless){height:100dvh}}body:has(.inno-chrome–chromeless) .global-app-bar,body:has(.inno-chrome–chromeless) .footer,body:has(.inno-chrome–chromeless) .footer-wrapper{display:none}body:has(.inno-chrome–chromeless) #inq-article-completion{height:0px}.inno{–gutter: calc(50vw – 325px)}.inno *{box-sizing:border-box}.inno-layout–content>*{max-width:min(650px,100vw – 32px);margin-inline:auto}.inno-layout–align-full{max-width:100%}.inno-layout–align-wide{max-width:min(1250px,100vw – 32px);margin-inline:auto}.inno-layout–align-default{max-width:min(650px,100vw – 32px);margin-inline:auto}@media(min-width: 768px){.inno-layout–align-left{float:left;margin-inline-start:var(–gutter);margin-inline-end:24px;width:301px;margin-block-end:16px;padding-top:6px}}@media(min-width: 960px){.inno-layout–align-left{margin-inline-start:calc(var(–gutter) – clamp(0px,var(–gutter) – 100px,160px))}}@media(min-width: 768px){.inno-layout–align-right{float:right;width:301px;margin-inline-start:24px;margin-inline-end:var(–gutter);margin-block-end:16px;padding-top:5px}}@media(min-width: 960px){.inno-layout–align-right{margin-inline-end:calc(var(–gutter) – clamp(0px,var(–gutter) – 100px,160px))}}.inno-layout–stack>*+*{margin-block-start:24px}.inno-layout–stack-tight>*+*{margin-block-start:10px}.inno-layout–stack-loose>*+*{margin-block-start:30px}*+.inno-layout–isolate{margin-block-start:48px}.inno-layout–isolate+*{margin-block-start:48px}.inno-frequencies{display:flex;flex-direction:column}.inno-frequencies__row{display:grid;grid-template-columns:32px 100px 1fr 1fr 1fr;border-bottom:3px solid #595760;align-content:center;justify-content:center;align-items:center}.inno-frequencies__row:last-of-type{border-bottom:0}.inno-frequencies__row–header{font-weight:bold;pointer-events:none}.inno-frequencies__row:hover{background-color:#595760}.inno-frequencies__cell{border-right:0;border-bottom:0;padding:8px 6px}.inno-frequencies__cell:empty{border-top:0;border-left:0}.inno-routes{display:flex;gap:6px;flex-wrap:wrap}.inno-routes__route{font-family:”Grot12″,sans-serif;font-weight:bold;text-transform:uppercase;padding:4px 8px;min-width:2em;text-align:center;border-radius:24px;color:#fff;text-decoration:none;border:3px solid #fff;transition:.4s ease-in-out border;font-size:20px}.inno-routes__route:hover{border-color:var(–color-accent)}.inno-routes__route.is-hidden{color:#595760;border-color:#595760;pointer-events:none}.inno-location.is-found .inno-location__results,.inno-location.is-error .inno-location__results{max-height:500px}.inno-location.is-found .inno-location__results-found,.inno-location.is-error .inno-location__results-error{display:block;padding-bottom:12px}.inno-location.is-loading .inno-location__loading{display:block}.inno-location.is-loading-stops{opacity:.4;pointer-events:none;animation:throb .4s ease-in-out alternate infinite}@keyframes throb{0%{opacity:.4}100%{opacity:.6}}.inno-location__direction{margin:8px 0 16px;text-align:center;font-family:”Grot 10″,sans-serif;font-size:16px}.inno-location__form{display:grid;gap:8px;margin-bottom:12px;transition:.4s;grid-template-rows:40px 40px auto;align-items:flex-start}@media(min-width: 768px){.inno-location__form{gap:8px;grid-template-rows:1fr;grid-template-columns:257px 257px 120px}}.inno-location__field{padding:12px 8px;border:3px solid #808284;transition:.4s;font-family:”Grot 10″,sans-serif;font-size:12px;letter-spacing:.1px;-webkit-appearance:none;color:#fff;background-color:#222;width:100%;border-radius:24px}@media(min-width: 768px){.inno-location__field{font-size:16px;padding:12px}}.inno-location__field::placeholder{color:#808284}.inno-location__field:focus{border-color:#fff}.inno-location__field.is-hidden-field{display:none}.inno-location__form-note{color:#808284;font-size:12px;line-height:1;margin-bottom:6px;text-align:center}.inno-location__results{overflow:hidden;max-height:0;transition:max-height .4s ease-in-out}.inno-location__results-found{color:#222;display:none;padding:0;font-family:”Grot12″,sans-serif;text-transform:uppercase;font-size:18px;font-weight:600;color:#222;text-align:center;margin-top:16px}@media(min-width: 768px){.inno-location__results-found{font-size:24px}}.inno-location__results-found a{transition:box-shadow .25s ease;color:var(–color-text-link);text-decoration:none}.inno-location__results-found a:hover{box-shadow:inset 0 -1px 0 0 var(–color-text-link)}.inno–embed .inno-location__results-found a{transition:none;color:#222;pointer-events:none}.inno-location__results-error{color:#e11b22;font-weight:bold;font-size:14px;display:none}.inno-location.is-error .inno-location__results-error{display:block}.inno-location__results-loading{color:#808284;display:none}.inno-location__loading{display:none;padding-bottom:12px}.inno-state{position:sticky;z-index:20;top:0;left:0;right:0;background-color:#222;padding:8px 0;border-bottom:3px solid #fff}@media(min-width: 960px){.inno-state{padding:12px 0}}.inno-state__content{display:grid;grid-template-columns:1fr 120px;justify-content:space-between;align-items:center;gap:12px;width:100%}@media(min-width: 768px){.inno-state__content{grid-template-columns:1fr 180px}}.inno-state__label{display:flex;font-family:”Grot 10″,sans-serif;font-weight:normal;font-size:12px;line-height:1.4}@media(min-width: 960px){.inno-state__label{font-size:14px}}.inno-state__label–sub{font-weight:bold}.inno-state__clear{position:relative;pointer-events:none;opacity:0;transition:opacity .4s ease-in-out;display:inline-block;vertical-align:middle;padding:4px;border:1px solid #fff;border-radius:32px;aspect-ratio:1/1;cursor:pointer;width:1.4em;height:1.4em;margin-left:6px}.inno-state__clear:hover{background-color:#e11b22}.inno-state.is-populated .inno-state__clear{opacity:1;pointer-events:all}.inno-state__clear .inno-icon{position:absolute;top:0;left:0;right:0;bottom:0;margin:auto;width:.6em;height:.6em}.inno-state__button{white-space:nowrap}.inno-adbox{max-height:400px;transition:max-height .4s ease-in-out,padding .4s ease-in-out,margin .4s ease-in-out;overflow:hidden}.inno-adbox.is-hidden{max-height:0;margin:0;padding:0}.inno-adbox__label{display:block;margin:0 auto 8px;text-align:center;font-size:12px;color:#808284;text-transform:uppercase}.inno-ad__ad{margin-inline:auto;background-color:#f4f1eb;display:flex;align-items:center;justify-content:center;overflow:hidden;width:300px;height:250px}@media(min-width: 768px)and (max-width: 1022px){.inno-ad__ad{width:728px;height:90px}}@media(min-width: 1023px){.inno-ad__ad{height:auto;width:fit-content;min-width:728px;min-height:90px;max-width:970px;max-height:250px}}.inno-ad__ad–small{width:300px;height:250px;min-height:auto;min-width:auto}.inno-ad__ad iframe{position:unset !important}.inno-ad__ad .cnx-content-wrapper{position:relative !important}.inno-ad__ad .celtra-ad-inline-host,.inno-ad__ad .celtra-ad-inline-host *{position:relative !important;overflow:hidden !important}.inno-ad__placeholder{text-align:center;text-transform:uppercase;font-weight:bold;font-size:16px;color:#222}@media(min-width: 1200px){.inno-ad__placeholder{padding:120px 0}}.inno-body__error{color:var(–color-text-primary);padding:24px;border:3px dashed #e11b22;font-family:monospace;white-space:pre-wrap;font-size:16px}.inno-body__error-head{display:block;font-weight:bold}.inno-button{position:relative;display:flex;flex-direction:row;justify-content:center;align-items:center;gap:8px;box-sizing:border-box;text-decoration:none;border-radius:24px;border:3px solid #fff;cursor:pointer;pointer-events:auto;transition:background-color .4s ease-in-out,border-color .4s ease-in-out,color .4s ease-in-out;background-color:var(–color-accent);color:#fff;padding:6px 24px}@media(min-width: 768px){.inno-button{padding:10px 24px}}.inno-button:hover{border-color:var(–color-accent)}.inno-button–secondary{background-color:var(–color-background)}.inno-button:disabled{pointer-events:none;border-color:#808284;background-color:#808284}.inno-button:disabled .inno-button__label{color:#595760}.inno-button–minimal{background-color:rgba(0,0,0,0);color:var(–color-text-primary);padding:8px}.inno-button–minimal:disabled{background-color:var(–color-text-secondary);color:var(–color-text-tertiary);pointer-events:none}.inno-button–minimal .inno-button__label{position:relative;top:1px}.inno-button__label{font-family:”Grot12″,sans-serif;font-weight:bold;line-height:1.2em;text-transform:uppercase;flex-grow:0;z-index:1;font-size:16px}@media(min-width: 768px){.inno-button__label{font-size:20px}}.inno-button__image{margin:0 auto;object-fit:contain}.inno-byline{position:relative;z-index:2;border-block:3px solid var(–color-faint);padding-block:16px;font-family:”Grot 10″,sans-serif;font-size:14px;line-height:1.5}.inno-byline–center{border-block:none;padding-block:0}@media(min-width: 768px){.inno-byline{font-size:16px}}.inno-byline__content{display:flex;justify-content:space-between;align-items:center;gap:12px}.inno-byline–center .inno-byline__content{flex-direction:column;text-align:center}.inno-byline__text{flex:1 1 auto}.inno-byline .inno-gift{flex:0 0 auto}.inno-byline__timestamp-date{color:var(–color-text-primary)}.inno-byline__timestamp-label{color:var(–color-text-secondary)}.inno-byline__authors{color:var(–color-text-primary, #222222);line-height:1.5em;text-wrap-style:balance}.inno-byline__author{display:inline}.inno-byline__author-link,.inno-byline__authors a{color:var(–color-text-primary, #222222);text-decoration:none;transition:color .4s ease-in-out}.inno-byline__author-link:hover,.inno-byline__authors a:hover{color:var(–color-text-link, #004e96)}.inno-callout__content{background-color:var(–color-background-secondary);padding:20px 15px}.inno-callout:has(.inno-callout__cta) .inno-callout__content{padding-bottom:50px}.inno-callout__tag{font-family:”Grot 10″,sans-serif;font-size:16px;color:var(–color-text-primary)}@media(min-width: 768px){.inno-callout__tag{font-size:18px}}.inno-callout__title{font-family:”Grot12″,sans-serif;font-size:32px;font-weight:bold;text-transform:uppercase;color:var(–color-text-primary);text-wrap:balance}*+.inno-callout__title{margin-block-start:5px}.inno-callout__body{font-family:”Grot 10″,sans-serif;font-size:16px;color:var(–color-text-primary);line-height:1.65em}@media(min-width: 768px){.inno-callout__body{font-size:18px}}*+.inno-callout__body{margin-block-start:10px}.inno-callout__body .inno-p{font-family:inherit;font-size:inherit;color:inherit;line-height:inherit}.inno-callout__cta{display:flex;width:calc(100% – 30px);margin:-30px 15px 0 15px}.inno-callout__cta .inno-button{box-shadow:0 1px 4px rgba(89,87,96,.1),0 3px 6px rgba(89,87,96,.1);padding:20px 20px}.inno-callout__form-policy{font-size:15.2px;margin-top:20px;color:#808284;line-height:1.65}.inno-callout__form-policy a{color:#808284;transition:color .3s ease-in-out}.inno-callout__form-policy a:hover{color:var(–color-text-primary)}.inno-caption{color:var(–color-text-secondary);font-family:”Grot 10″,sans-serif;font-size:14px;line-height:1.5}.inno-caption a{color:inherit;box-shadow:inset 0 -1px 0 0 var(–color-text-secondary);transition:color .25s ease,box-shadow .25s ease;text-decoration:none}.inno-caption a:hover{color:var(–color-text-link);box-shadow:inset 0 -1px 0 0 var(–color-text-link)}.inno-caption__caption-text{display:block;text-wrap:pretty}.inno-caption__credit{color:var(–color-text-tertiary);display:block}.inno-credits{font-family:”Grot 10″,sans-serif}.inno-credits__header{color:var(–color-text-primary);font-size:16px;font-family:”Grot 10″,sans-serif;font-weight:normal;line-height:1.2;border-bottom:1px solid var(–color-faint);padding-bottom:4px;margin-bottom:8px}.inno-credits__roles{display:grid;gap:8px;color:var(–color-text-secondary);font-size:14px;line-height:1.5;text-align:pretty}@media(min-width: 768px){.inno-credits__roles{grid-template-columns:50% 50%}}.inno-gift{display:none}.inno-gift–default{justify-content:center}.inno-gift–default.is-available{display:flex}.inno-gift–default .inno-button{font-size:24px;padding:8px;min-width:200px;margin:0px auto}.inno-gift–minimal.is-available{display:inline-block}.inno-gift–minimal .inno-button{display:flex;align-items:center;font-size:16px;line-height:16px}.inno-gift–minimal .inno-button__label{font-size:14px;color:currentColor;display:none}@media(min-width: 600px){.inno-gift–minimal .inno-button__label{display:inline-block}}.inno-gift–minimal .inno-icon{display:inline-block}.inno-gift.is-available{display:block}.is-app .inno-gift{display:none}.inno-gift .inno-icon–loading{animation:spin 1s linear forwards infinite}.inno-gift .inno-icon{display:none}.inno-gift [data-state=ready] .inno-icon–gift{display:initial}.inno-gift [data-state=loading] .inno-icon–loading{display:initial}.inno-gift [data-state=complete] .inno-icon–tickmark{display:initial}.inno-gift [data-state=error] .inno-icon–cross{display:initial}.inno-gift-toast-receiver{display:none}@keyframes spin{0%{rotate:0deg}100%{rotate:360deg}}.inno-graphic__iframe,.inno-graphic__datawrapper{width:100%}.inno-heading{font-family:”Grot12″,sans-serif;text-transform:uppercase;font-weight:600;line-height:1.2;color:var(–color-text-primary);scroll-margin-top:calc(var(–sticky-height) + 16px);text-wrap:balance;font-size:20px}@media(min-width: 768px){.inno-heading{font-size:24px}}.inno-heading–chapter{font-weight:300;border-bottom:1px solid var(–color-text-primary);text-transform:uppercase}.inno-layout–stack>*+.inno-heading{margin-block-start:48px}.inno-layout–stack>.inno-heading:has(+*){margin-block-end:-12px}.inno-layout–stack-tight>*+.inno-heading{margin-block-start:20px}.inno-layout–stack-tight>.inno-heading:has(+*){margin-block-end:-5px}.inno-layout–stack-loose>*+.inno-heading{margin-block-start:60px}.inno-layout–stack-loose>.inno-heading:has(+*){margin-block-end:-15px}.inno-hero{margin-block-start:0;padding-top:40px}@media(min-width: 960px){.inno-hero{padding-top:60px}}.inno-hero__content{padding-block:24px;text-align:center}@media(min-width: 960px){.inno-hero__content{padding-block:32px}}.inno-hero__subheadline{position:relative;z-index:2;font-family:”Grot 10″,sans-serif;font-weight:bold;font-size:14px;line-height:1.3;text-wrap:balance;margin-bottom:10vw}@media(min-width: 768px){.inno-hero__subheadline{font-size:20px;margin-bottom:80px}}@media(min-width: 960px){.inno-hero__subheadline{font-size:24px}}.inno-hero__headline{display:flex;align-items:center;flex-direction:column;font-family:”Grot12″,sans-serif;text-transform:uppercase;font-weight:600;line-height:1;text-wrap:balance;width:120%;margin-left:-10%;font-size:10vw;gap:8vw}@media(min-width: 768px){.inno-hero__headline{width:100%;margin-left:auto;gap:5.5vw;font-size:7vw}}@media(min-width: 960px){.inno-hero__headline{font-size:80px;gap:72px}}@keyframes fall{from{rotate:0deg;opacity:0;translate:0 -20%}to{opacity:1}}.inno-hero__headline-section{position:relative;display:block;padding:.3em .5em;border:3px solid var(–color-faint);width:fit-content;white-space:nowrap;border-radius:8vw;opacity:0;animation:fall .4s ease-in-out forwards;animation-delay:.8s}@media(min-width: 960px){.inno-hero__headline-section{border-width:6px}}.inno-hero__headline-section–1{rotate:-14deg;transform:translateX(-5%) translateY(-13%)}.inno-hero__headline-section–2{rotate:5deg;animation-delay:1.2s}.inno-hero__headline-section–3{rotate:-3deg;transform:translateX(27%) translateY(-5%);animation-delay:1.4s}.inno-hero__headline-section:before,.inno-hero__headline-section:after{content:”47M”;position:absolute;margin:auto;padding:.3em .5em;border:3px solid #595760;border-radius:8vw;color:#595760;opacity:0;animation:fall .4s ease-in-out forwards}@media(min-width: 960px){.inno-hero__headline-section:before,.inno-hero__headline-section:after{border-width:6px}}.inno-hero__headline-section–1:before{content:”25″;bottom:130%;right:50%;rotate:-40deg;animation-delay:.7s}.inno-hero__headline-section–1:after{content:”47M”;right:98%;bottom:60%;rotate:60deg;animation-delay:.9s}.inno-hero__headline-section–2:before{content:”75″;left:75%;bottom:118%;rotate:20deg;animation-delay:1.4s}.inno-hero__headline-section–2:after{content:”89″;right:64%;top:120%;rotate:20deg;animation-delay:1.3s}.inno-hero__headline-section–3:before{content:”105″;left:95%;rotate:71deg;bottom:80%;animation-delay:1.4s}.inno-hero__headline-section–3:after{content:”64″;left:20%;top:120%;rotate:24deg;animation-delay:1.7s}.inno-hover{position:relative;cursor:pointer;border:1px var(–color-accent) solid;padding:3px 4px;transition:border .4s ease-in-out;box-sizing:border-box}@media(min-width: 768px){.inno-hover{cursor:help}}.inno-hover:hover{border:1px var(–color-accent) solid}.inno-hover__box{position:fixed;bottom:0;left:0;right:0;z-index:20;background-color:var(–color-background);pointer-events:none;transform:translateY(100%);transition:transform .4s ease-in-out;padding:16px;border-top:1px solid var(–color-accent);white-space:normal;font-family:”Grot 10″,sans-serif;font-size:14px;line-height:1.5}@media(min-width: 768px){.inno-hover__box{position:absolute;top:100%;width:200px;left:-1px;right:0;bottom:auto;margin:auto;max-width:250px;padding:6px;opacity:0;transition:opacity .4s ease-in-out;transform:none;border:1px solid var(–color-accent)}}.inno-hover.is-visible .inno-hover__box{opacity:1;transform:translateY(0)}.inno-icon{display:inline-block;width:1.2em;height:1.2em;fill:currentColor}.inno-icon–white{fill:#fff}.inno-icon–black{fill:#222}.inno-icon–accent{fill:var(–color-accent)}.inno-icon–over-accent{fill:var(–color-over-accent)}.inno-icon__stroke{fill:rgba(0,0,0,0);stroke:currentColor;stroke-width:2px;vector-effect:non-scaling-stroke}.inno-icon–white .inno-icon__stroke{stroke:#fff}.inno-icon–black .inno-icon__stroke{stroke:#222}.inno-icon–accent .inno-icon__stroke{stroke:var(–color-accent)}.inno-icon–over-accent .inno-icon__stroke{stroke:var(–color-over-accent)}.inno-image__img{width:100%;display:block}@keyframes loadingPulse{0%{opacity:1}100%{opacity:.4}}@keyframes spin{0%{rotate:0deg}100%{rotate:360deg}}.inno-loading{font-family:”Grot 10″,sans-serif;font-weight:bold;font-size:18px;transition:opacity .4s ease-in-out;z-index:999;position:relative}.inno-loading__text-label,.inno-loading__label-error{position:relative;text-align:left}.inno-loading–position-absolute .inno-loading__text-label,.inno-loading–position-absolute .inno-loading__icon-label,.inno-loading–position-absolute .inno-loading__label-error{position:absolute;left:0;top:0;transform:translate(-50%, -50%)}.inno-loading__icon-label{animation:spin 1s linear forwards infinite}.inno-loading__text-label{animation:loadingPulse .8s ease-in-out alternate infinite}.inno-loading__label-error{color:#e11b22;display:none}.inno-loading[data-state=ready]{opacity:0;animation:none}.inno-loading[data-state=loading]{opacity:1}.inno-loading[data-state=error] .inno-loading__label-error{display:block}.inno-loading[data-state=error] .inno-loading__text-label,.inno-loading[data-state=error] .inno-label__icon-label{display:none}.inno-looping-video__video{width:100%}.maplibregl-map{font:12px/20px Helvetica Neue,Arial,Helvetica,sans-serif;overflow:hidden;position:relative;-webkit-tap-highlight-color:rgb(0 0 0/0)}.maplibregl-canvas{left:0;position:absolute;top:0}.maplibregl-map:fullscreen{height:100%;width:100%}.maplibregl-ctrl-group button.maplibregl-ctrl-compass{touch-action:none}.maplibregl-canvas-container.maplibregl-interactive,.maplibregl-ctrl-group button.maplibregl-ctrl-compass{cursor:grab;-webkit-user-select:none;-moz-user-select:none;user-select:none}.maplibregl-canvas-container.maplibregl-interactive.maplibregl-track-pointer{cursor:pointer}.maplibregl-canvas-container.maplibregl-interactive:active,.maplibregl-ctrl-group button.maplibregl-ctrl-compass:active{cursor:grabbing}.maplibregl-canvas-container.maplibregl-touch-zoom-rotate,.maplibregl-canvas-container.maplibregl-touch-zoom-rotate .maplibregl-canvas{touch-action:pan-x pan-y}.maplibregl-canvas-container.maplibregl-touch-drag-pan,.maplibregl-canvas-container.maplibregl-touch-drag-pan .maplibregl-canvas{touch-action:pinch-zoom}.maplibregl-canvas-container.maplibregl-touch-zoom-rotate.maplibregl-touch-drag-pan,.maplibregl-canvas-container.maplibregl-touch-zoom-rotate.maplibregl-touch-drag-pan .maplibregl-canvas{touch-action:none}.maplibregl-canvas-container.maplibregl-touch-drag-pan.maplibregl-cooperative-gestures,.maplibregl-canvas-container.maplibregl-touch-drag-pan.maplibregl-cooperative-gestures .maplibregl-canvas{touch-action:pan-x pan-y}.maplibregl-ctrl-bottom-left,.maplibregl-ctrl-bottom-right,.maplibregl-ctrl-top-left,.maplibregl-ctrl-top-right{pointer-events:none;position:absolute;z-index:2}.maplibregl-ctrl-top-left{left:0;top:0}.maplibregl-ctrl-top-right{right:0;top:0}.maplibregl-ctrl-bottom-left{bottom:0;left:0}.maplibregl-ctrl-bottom-right{bottom:0;right:0}.maplibregl-ctrl{clear:both;pointer-events:auto;transform:translate(0)}.maplibregl-ctrl-top-left .maplibregl-ctrl{float:left;margin:10px 0 0 10px}.maplibregl-ctrl-top-right .maplibregl-ctrl{float:right;margin:10px 10px 0 0}.maplibregl-ctrl-bottom-left .maplibregl-ctrl{float:left;margin:0 0 10px 10px}.maplibregl-ctrl-bottom-right .maplibregl-ctrl{float:right;margin:0 10px 10px 0}.maplibregl-ctrl-group{background:#fff;border-radius:4px}.maplibregl-ctrl-group:not(:empty){box-shadow:0 0 0 2px rgba(0, 0, 0, 0.1)}@media(forced-colors: active){.maplibregl-ctrl-group:not(:empty){box-shadow:0 0 0 2px ButtonText}}.maplibregl-ctrl-group button{background-color:transparent;border:0;box-sizing:border-box;cursor:pointer;display:block;height:29px;outline:none;padding:0;width:29px}.maplibregl-ctrl-group button+button{border-top:1px solid #ddd}.maplibregl-ctrl button .maplibregl-ctrl-icon{background-position:50%;background-repeat:no-repeat;display:block;height:100%;width:100%}@media(forced-colors: active){.maplibregl-ctrl-icon{background-color:transparent}.maplibregl-ctrl-group button+button{border-top:1px solid ButtonText}}.maplibregl-ctrl button::-moz-focus-inner{border:0;padding:0}.maplibregl-ctrl-attrib-button:focus,.maplibregl-ctrl-group button:focus{box-shadow:0 0 2px 2px #0096ff}.maplibregl-ctrl button:disabled{cursor:not-allowed}.maplibregl-ctrl button:disabled .maplibregl-ctrl-icon{opacity:.25}@media(hover: hover){.maplibregl-ctrl button:not(:disabled):hover{background-color:rgb(0 0 0/5%)}}.maplibregl-ctrl button:not(:disabled):active{background-color:rgb(0 0 0/5%)}.maplibregl-ctrl-group button:focus:focus-visible{box-shadow:0 0 2px 2px #0096ff}.maplibregl-ctrl-group button:focus:not(:focus-visible){box-shadow:none}.maplibregl-ctrl-group button:focus:first-child{border-radius:4px 4px 0 0}.maplibregl-ctrl-group button:focus:last-child{border-radius:0 0 4px 4px}.maplibregl-ctrl-group button:focus:only-child{border-radius:inherit}.maplibregl-ctrl button.maplibregl-ctrl-zoom-out .maplibregl-ctrl-icon{background-image:url(“data:image/svg+xml;charset=utf-8,%3Csvg xmlns=’http://www.w3.org/2000/svg’ width=’29’ height=’29’ fill=’%23333′ viewBox=’0 0 29 29’%3E%3Cpath d=’M10 13c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h9c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13z’/%3E%3C/svg%3E”)}.maplibregl-ctrl button.maplibregl-ctrl-zoom-in .maplibregl-ctrl-icon{background-image:url(“data:image/svg+xml;charset=utf-8,%3Csvg xmlns=’http://www.w3.org/2000/svg’ width=’29’ height=’29’ fill=’%23333′ viewBox=’0 0 29 29’%3E%3Cpath d=’M14.5 8.5c-.75 0-1.5.75-1.5 1.5v3h-3c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h3v3c0 .75.75 1.5 1.5 1.5S16 19.75 16 19v-3h3c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13h-3v-3c0-.75-.75-1.5-1.5-1.5’/%3E%3C/svg%3E”)}@media(forced-colors: active){.maplibregl-ctrl button.maplibregl-ctrl-zoom-out .maplibregl-ctrl-icon{background-image:url(“data:image/svg+xml;charset=utf-8,%3Csvg xmlns=’http://www.w3.org/2000/svg’ width=’29’ height=’29’ fill=’%23fff’ viewBox=’0 0 29 29’%3E%3Cpath d=’M10 13c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h9c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13z’/%3E%3C/svg%3E”)}.maplibregl-ctrl button.maplibregl-ctrl-zoom-in .maplibregl-ctrl-icon{background-image:url(“data:image/svg+xml;charset=utf-8,%3Csvg xmlns=’http://www.w3.org/2000/svg’ width=’29’ height=’29’ fill=’%23fff’ viewBox=’0 0 29 29’%3E%3Cpath d=’M14.5 8.5c-.75 0-1.5.75-1.5 1.5v3h-3c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h3v3c0 .75.75 1.5 1.5 1.5S16 19.75 16 19v-3h3c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13h-3v-3c0-.75-.75-1.5-1.5-1.5’/%3E%3C/svg%3E”)}}@media(forced-colors: active)and (prefers-color-scheme: light){.maplibregl-ctrl button.maplibregl-ctrl-zoom-out .maplibregl-ctrl-icon{background-image:url(“data:image/svg+xml;charset=utf-8,%3Csvg xmlns=’http://www.w3.org/2000/svg’ width=’29’ height=’29’ viewBox=’0 0 29 29’%3E%3Cpath d=’M10 13c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h9c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13z’/%3E%3C/svg%3E”)}.maplibregl-ctrl button.maplibregl-ctrl-zoom-in .maplibregl-ctrl-icon{background-image:url(“data:image/svg+xml;charset=utf-8,%3Csvg xmlns=’http://www.w3.org/2000/svg’ width=’29’ height=’29’ viewBox=’0 0 29 29’%3E%3Cpath d=’M14.5 8.5c-.75 0-1.5.75-1.5 1.5v3h-3c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h3v3c0 .75.75 1.5 1.5 1.5S16 19.75 16 19v-3h3c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13h-3v-3c0-.75-.75-1.5-1.5-1.5’/%3E%3C/svg%3E”)}}.maplibregl-ctrl button.maplibregl-ctrl-fullscreen .maplibregl-ctrl-icon{background-image:url(“data:image/svg+xml;charset=utf-8,%3Csvg xmlns=’http://www.w3.org/2000/svg’ width=’29’ height=’29’ fill=’%23333′ viewBox=’0 0 29 29’%3E%3Cpath d=’M24 16v5.5c0 1.75-.75 2.5-2.5 2.5H16v-1l3-1.5-4-5.5 1-1 5.5 4 1.5-3zM6 16l1.5 3 5.5-4 1 1-4 5.5 3 1.5v1H7.5C5.75 24 5 23.25 5 21.5V16zm7-11v1l-3 1.5 4 5.5-1 1-5.5-4L6 13H5V7.5C5 5.75 5.75 5 7.5 5zm11 2.5c0-1.75-.75-2.5-2.5-2.5H16v1l3 1.5-4 5.5 1 1 5.5-4 1.5 3h1z’/%3E%3C/svg%3E”)}.maplibregl-ctrl button.maplibregl-ctrl-shrink .maplibregl-ctrl-icon{background-image:url(“data:image/svg+xml;charset=utf-8,%3Csvg xmlns=’http://www.w3.org/2000/svg’ width=’29’ height=’29’ viewBox=’0 0 29 29’%3E%3Cpath d=’M18.5 16c-1.75 0-2.5.75-2.5 2.5V24h1l1.5-3 5.5 4 1-1-4-5.5 3-1.5v-1zM13 18.5c0-1.75-.75-2.5-2.5-2.5H5v1l3 1.5L4 24l1 1 5.5-4 1.5 3h1zm3-8c0 1.75.75 2.5 2.5 2.5H24v-1l-3-1.5L25 5l-1-1-5.5 4L17 5h-1zM10.5 13c1.75 0 2.5-.75 2.5-2.5V5h-1l-1.5 3L5 4 4 5l4 5.5L5 12v1z’/%3E%3C/svg%3E”)}@media(forced-colors: active){.maplibregl-ctrl button.maplibregl-ctrl-fullscreen .maplibregl-ctrl-icon{background-image:url(“data:image/svg+xml;charset=utf-8,%3Csvg xmlns=’http://www.w3.org/2000/svg’ width=’29’ height=’29’ fill=’%23fff’ viewBox=’0 0 29 29’%3E%3Cpath d=’M24 16v5.5c0 1.75-.75 2.5-2.5 2.5H16v-1l3-1.5-4-5.5 1-1 5.5 4 1.5-3zM6 16l1.5 3 5.5-4 1 1-4 5.5 3 1.5v1H7.5C5.75 24 5 23.25 5 21.5V16zm7-11v1l-3 1.5 4 5.5-1 1-5.5-4L6 13H5V7.5C5 5.75 5.75 5 7.5 5zm11 2.5c0-1.75-.75-2.5-2.5-2.5H16v1l3 1.5-4 5.5 1 1 5.5-4 1.5 3h1z’/%3E%3C/svg%3E”)}.maplibregl-ctrl button.maplibregl-ctrl-shrink .maplibregl-ctrl-icon{background-image:url(“data:image/svg+xml;charset=utf-8,%3Csvg xmlns=’http://www.w3.org/2000/svg’ width=’29’ height=’29’ fill=’%23fff’ viewBox=’0 0 29 29’%3E%3Cpath d=’M18.5 16c-1.75 0-2.5.75-2.5 2.5V24h1l1.5-3 5.5 4 1-1-4-5.5 3-1.5v-1zM13 18.5c0-1.75-.75-2.5-2.5-2.5H5v1l3 1.5L4 24l1 1 5.5-4 1.5 3h1zm3-8c0 1.75.75 2.5 2.5 2.5H24v-1l-3-1.5L25 5l-1-1-5.5 4L17 5h-1zM10.5 13c1.75 0 2.5-.75 2.5-2.5V5h-1l-1.5 3L5 4 4 5l4 5.5L5 12v1z’/%3E%3C/svg%3E”)}}@media(forced-colors: active)and (prefers-color-scheme: light){.maplibregl-ctrl button.maplibregl-ctrl-fullscreen .maplibregl-ctrl-icon{background-image:url(“data:image/svg+xml;charset=utf-8,%3Csvg xmlns=’http://www.w3.org/2000/svg’ width=’29’ height=’29’ viewBox=’0 0 29 29’%3E%3Cpath d=’M24 16v5.5c0 1.75-.75 2.5-2.5 2.5H16v-1l3-1.5-4-5.5 1-1 5.5 4 1.5-3zM6 16l1.5 3 5.5-4 1 1-4 5.5 3 1.5v1H7.5C5.75 24 5 23.25 5 21.5V16zm7-11v1l-3 1.5 4 5.5-1 1-5.5-4L6 13H5V7.5C5 5.75 5.75 5 7.5 5zm11 2.5c0-1.75-.75-2.5-2.5-2.5H16v1l3 1.5-4 5.5 1 1 5.5-4 1.5 3h1z’/%3E%3C/svg%3E”)}.maplibregl-ctrl button.maplibregl-ctrl-shrink .maplibregl-ctrl-icon{background-image:url(“data:image/svg+xml;charset=utf-8,%3Csvg xmlns=’http://www.w3.org/2000/svg’ width=’29’ height=’29’ viewBox=’0 0 29 29’%3E%3Cpath d=’M18.5 16c-1.75 0-2.5.75-2.5 2.5V24h1l1.5-3 5.5 4 1-1-4-5.5 3-1.5v-1zM13 18.5c0-1.75-.75-2.5-2.5-2.5H5v1l3 1.5L4 24l1 1 5.5-4 1.5 3h1zm3-8c0 1.75.75 2.5 2.5 2.5H24v-1l-3-1.5L25 5l-1-1-5.5 4L17 5h-1zM10.5 13c1.75 0 2.5-.75 2.5-2.5V5h-1l-1.5 3L5 4 4 5l4 5.5L5 12v1z’/%3E%3C/svg%3E”)}}.maplibregl-ctrl button.maplibregl-ctrl-compass .maplibregl-ctrl-icon{background-image:url(“data:image/svg+xml;charset=utf-8,%3Csvg xmlns=’http://www.w3.org/2000/svg’ width=’29’ height=’29’ fill=’%23333′ viewBox=’0 0 29 29’%3E%3Cpath d=’m10.5 14 4-8 4 8z’/%3E%3Cpath fill=’%23ccc’ d=’m10.5 16 4 8 4-8z’/%3E%3C/svg%3E”)}@media(forced-colors: active){.maplibregl-ctrl button.maplibregl-ctrl-compass .maplibregl-ctrl-icon{background-image:url(“data:image/svg+xml;charset=utf-8,%3Csvg xmlns=’http://www.w3.org/2000/svg’ width=’29’ height=’29’ fill=’%23fff’ viewBox=’0 0 29 29’%3E%3Cpath d=’m10.5 14 4-8 4 8z’/%3E%3Cpath fill=’%23ccc’ d=’m10.5 16 4 8 4-8z’/%3E%3C/svg%3E”)}}@media(forced-colors: active)and (prefers-color-scheme: light){.maplibregl-ctrl button.maplibregl-ctrl-compass .maplibregl-ctrl-icon{background-image:url(“data:image/svg+xml;charset=utf-8,%3Csvg xmlns=’http://www.w3.org/2000/svg’ width=’29’ height=’29’ viewBox=’0 0 29 29’%3E%3Cpath d=’m10.5 14 4-8 4 8z’/%3E%3Cpath fill=’%23ccc’ d=’m10.5 16 4 8 4-8z’/%3E%3C/svg%3E”)}}.maplibregl-ctrl button.maplibregl-ctrl-globe .maplibregl-ctrl-icon{background-image:url(“data:image/svg+xml;charset=utf-8,%3Csvg xmlns=’http://www.w3.org/2000/svg’ width=’22’ height=’22’ fill=’none’ stroke=’%23333′ viewBox=’0 0 22 22’%3E%3Ccircle cx=’11’ cy=’11’ r=’8.5’/%3E%3Cpath d=’M17.5 11c0 4.819-3.02 8.5-6.5 8.5S4.5 15.819 4.5 11 7.52 2.5 11 2.5s6.5 3.681 6.5 8.5Z’/%3E%3Cpath d=’M13.5 11c0 2.447-.331 4.64-.853 6.206-.262.785-.562 1.384-.872 1.777-.314.399-.58.517-.775.517s-.461-.118-.775-.517c-.31-.393-.61-.992-.872-1.777C8.831 15.64 8.5 13.446 8.5 11s.331-4.64.853-6.206c.262-.785.562-1.384.872-1.777.314-.399.58-.517.775-.517s.461.118.775.517c.31.393.61.992.872 1.777.522 1.565.853 3.76.853 6.206Z’/%3E%3Cpath d=’M11 7.5c-1.909 0-3.622-.166-4.845-.428-.616-.132-1.08-.283-1.379-.434a1.3 1.3 0 0 1-.224-.138q.07-.058.224-.138c.299-.151.763-.302 1.379-.434C7.378 5.666 9.091 5.5 11 5.5s3.622.166 4.845.428c.616.132 1.08.283 1.379.434.105.053.177.1.224.138q-.07.058-.224.138c-.299.151-.763.302-1.379.434-1.223.262-2.936.428-4.845.428ZM4.486 6.436ZM11 16.5c-1.909 0-3.622-.166-4.845-.428-.616-.132-1.08-.283-1.379-.434a1.3 1.3 0 0 1-.224-.138 1.3 1.3 0 0 1 .224-.138c.299-.151.763-.302 1.379-.434C7.378 14.666 9.091 14.5 11 14.5s3.622.166 4.845.428c.616.132 1.08.283 1.379.434.105.053.177.1.224.138a1.3 1.3 0 0 1-.224.138c-.299.151-.763.302-1.379.434-1.223.262-2.936.428-4.845.428Zm-6.514-1.064ZM11 12.5c-2.46 0-4.672-.222-6.255-.574-.796-.177-1.406-.38-1.805-.59a1.5 1.5 0 0 1-.39-.272.3.3 0 0 1-.047-.064.3.3 0 0 1 .048-.064c.066-.073.189-.167.389-.272.399-.21 1.009-.413 1.805-.59C6.328 9.722 8.54 9.5 11 9.5s4.672.222 6.256.574c.795.177 1.405.38 1.804.59.2.105.323.2.39.272a.3.3 0 0 1 .047.064.3.3 0 0 1-.048.064 1.4 1.4 0 0 1-.389.272c-.399.21-1.009.413-1.804.59-1.584.352-3.796.574-6.256.574Zm-8.501-1.51v.002zm0 .018v.002zm17.002.002v-.002zm0-.018v-.002z’/%3E%3C/svg%3E”)}.maplibregl-ctrl button.maplibregl-ctrl-globe-enabled .maplibregl-ctrl-icon{background-image:url(“data:image/svg+xml;charset=utf-8,%3Csvg xmlns=’http://www.w3.org/2000/svg’ width=’22’ height=’22’ fill=’none’ stroke=’%2333b5e5′ viewBox=’0 0 22 22’%3E%3Ccircle cx=’11’ cy=’11’ r=’8.5’/%3E%3Cpath d=’M17.5 11c0 4.819-3.02 8.5-6.5 8.5S4.5 15.819 4.5 11 7.52 2.5 11 2.5s6.5 3.681 6.5 8.5Z’/%3E%3Cpath d=’M13.5 11c0 2.447-.331 4.64-.853 6.206-.262.785-.562 1.384-.872 1.777-.314.399-.58.517-.775.517s-.461-.118-.775-.517c-.31-.393-.61-.992-.872-1.777C8.831 15.64 8.5 13.446 8.5 11s.331-4.64.853-6.206c.262-.785.562-1.384.872-1.777.314-.399.58-.517.775-.517s.461.118.775.517c.31.393.61.992.872 1.777.522 1.565.853 3.76.853 6.206Z’/%3E%3Cpath d=’M11 7.5c-1.909 0-3.622-.166-4.845-.428-.616-.132-1.08-.283-1.379-.434a1.3 1.3 0 0 1-.224-.138q.07-.058.224-.138c.299-.151.763-.302 1.379-.434C7.378 5.666 9.091 5.5 11 5.5s3.622.166 4.845.428c.616.132 1.08.283 1.379.434.105.053.177.1.224.138q-.07.058-.224.138c-.299.151-.763.302-1.379.434-1.223.262-2.936.428-4.845.428ZM4.486 6.436ZM11 16.5c-1.909 0-3.622-.166-4.845-.428-.616-.132-1.08-.283-1.379-.434a1.3 1.3 0 0 1-.224-.138 1.3 1.3 0 0 1 .224-.138c.299-.151.763-.302 1.379-.434C7.378 14.666 9.091 14.5 11 14.5s3.622.166 4.845.428c.616.132 1.08.283 1.379.434.105.053.177.1.224.138a1.3 1.3 0 0 1-.224.138c-.299.151-.763.302-1.379.434-1.223.262-2.936.428-4.845.428Zm-6.514-1.064ZM11 12.5c-2.46 0-4.672-.222-6.255-.574-.796-.177-1.406-.38-1.805-.59a1.5 1.5 0 0 1-.39-.272.3.3 0 0 1-.047-.064.3.3 0 0 1 .048-.064c.066-.073.189-.167.389-.272.399-.21 1.009-.413 1.805-.59C6.328 9.722 8.54 9.5 11 9.5s4.672.222 6.256.574c.795.177 1.405.38 1.804.59.2.105.323.2.39.272a.3.3 0 0 1 .047.064.3.3 0 0 1-.048.064 1.4 1.4 0 0 1-.389.272c-.399.21-1.009.413-1.804.59-1.584.352-3.796.574-6.256.574Zm-8.501-1.51v.002zm0 .018v.002zm17.002.002v-.002zm0-.018v-.002z’/%3E%3C/svg%3E”)}.maplibregl-ctrl button.maplibregl-ctrl-terrain .maplibregl-ctrl-icon{background-image:url(“data:image/svg+xml;charset=utf-8,%3Csvg xmlns=’http://www.w3.org/2000/svg’ width=’22’ height=’22’ fill=’%23333′ viewBox=’0 0 22 22’%3E%3Cpath d=’m1.754 13.406 4.453-4.851 3.09 3.09 3.281 3.277.969-.969-3.309-3.312 3.844-4.121 6.148 6.886h1.082v-.855l-7.207-8.07-4.84 5.187L6.169 6.57l-5.48 5.965v.871ZM.688 16.844h20.625v1.375H.688Zm0 0’/%3E%3C/svg%3E”)}.maplibregl-ctrl button.maplibregl-ctrl-terrain-enabled .maplibregl-ctrl-icon{background-image:url(“data:image/svg+xml;charset=utf-8,%3Csvg xmlns=’http://www.w3.org/2000/svg’ width=’22’ height=’22’ fill=’%2333b5e5′ viewBox=’0 0 22 22’%3E%3Cpath d=’m1.754 13.406 4.453-4.851 3.09 3.09 3.281 3.277.969-.969-3.309-3.312 3.844-4.121 6.148 6.886h1.082v-.855l-7.207-8.07-4.84 5.187L6.169 6.57l-5.48 5.965v.871ZM.688 16.844h20.625v1.375H.688Zm0 0’/%3E%3C/svg%3E”)}.maplibregl-ctrl button.maplibregl-ctrl-geolocate .maplibregl-ctrl-icon{background-image:url(“data:image/svg+xml;charset=utf-8,%3Csvg xmlns=’http://www.w3.org/2000/svg’ width=’29’ height=’29’ fill=’%23333′ viewBox=’0 0 20 20’%3E%3Cpath d=’M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1m0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7’/%3E%3Ccircle cx=’10’ cy=’10’ r=’2’/%3E%3C/svg%3E”)}.maplibregl-ctrl button.maplibregl-ctrl-geolocate:disabled .maplibregl-ctrl-icon{background-image:url(“data:image/svg+xml;charset=utf-8,%3Csvg xmlns=’http://www.w3.org/2000/svg’ width=’29’ height=’29’ fill=’%23aaa’ viewBox=’0 0 20 20’%3E%3Cpath d=’M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1m0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7’/%3E%3Ccircle cx=’10’ cy=’10’ r=’2’/%3E%3Cpath fill=’red’ d=’m14 5 1 1-9 9-1-1z’/%3E%3C/svg%3E”)}.maplibregl-ctrl button.maplibregl-ctrl-geolocate.maplibregl-ctrl-geolocate-active .maplibregl-ctrl-icon{background-image:url(“data:image/svg+xml;charset=utf-8,%3Csvg xmlns=’http://www.w3.org/2000/svg’ width=’29’ height=’29’ fill=’%2333b5e5′ viewBox=’0 0 20 20’%3E%3Cpath d=’M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1m0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7’/%3E%3Ccircle cx=’10’ cy=’10’ r=’2’/%3E%3C/svg%3E”)}.maplibregl-ctrl button.maplibregl-ctrl-geolocate.maplibregl-ctrl-geolocate-active-error .maplibregl-ctrl-icon{background-image:url(“data:image/svg+xml;charset=utf-8,%3Csvg xmlns=’http://www.w3.org/2000/svg’ width=’29’ height=’29’ fill=’%23e58978′ viewBox=’0 0 20 20’%3E%3Cpath d=’M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1m0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7’/%3E%3Ccircle cx=’10’ cy=’10’ r=’2’/%3E%3C/svg%3E”)}.maplibregl-ctrl button.maplibregl-ctrl-geolocate.maplibregl-ctrl-geolocate-background .maplibregl-ctrl-icon{background-image:url(“data:image/svg+xml;charset=utf-8,%3Csvg xmlns=’http://www.w3.org/2000/svg’ width=’29’ height=’29’ fill=’%2333b5e5′ viewBox=’0 0 20 20’%3E%3Cpath d=’M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1m0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7’/%3E%3C/svg%3E”)}.maplibregl-ctrl button.maplibregl-ctrl-geolocate.maplibregl-ctrl-geolocate-background-error .maplibregl-ctrl-icon{background-image:url(“data:image/svg+xml;charset=utf-8,%3Csvg xmlns=’http://www.w3.org/2000/svg’ width=’29’ height=’29’ fill=’%23e54e33′ viewBox=’0 0 20 20’%3E%3Cpath d=’M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1m0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7’/%3E%3C/svg%3E”)}.maplibregl-ctrl button.maplibregl-ctrl-geolocate.maplibregl-ctrl-geolocate-waiting .maplibregl-ctrl-icon{animation:maplibregl-spin 2s linear infinite}@media(forced-colors: active){.maplibregl-ctrl button.maplibregl-ctrl-geolocate .maplibregl-ctrl-icon{background-image:url(“data:image/svg+xml;charset=utf-8,%3Csvg xmlns=’http://www.w3.org/2000/svg’ width=’29’ height=’29’ fill=’%23fff’ viewBox=’0 0 20 20’%3E%3Cpath d=’M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1m0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7’/%3E%3Ccircle cx=’10’ cy=’10’ r=’2’/%3E%3C/svg%3E”)}.maplibregl-ctrl button.maplibregl-ctrl-geolocate:disabled .maplibregl-ctrl-icon{background-image:url(“data:image/svg+xml;charset=utf-8,%3Csvg xmlns=’http://www.w3.org/2000/svg’ width=’29’ height=’29’ fill=’%23999′ viewBox=’0 0 20 20’%3E%3Cpath d=’M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1m0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7’/%3E%3Ccircle cx=’10’ cy=’10’ r=’2’/%3E%3Cpath fill=’red’ d=’m14 5 1 1-9 9-1-1z’/%3E%3C/svg%3E”)}.maplibregl-ctrl button.maplibregl-ctrl-geolocate.maplibregl-ctrl-geolocate-active .maplibregl-ctrl-icon{background-image:url(“data:image/svg+xml;charset=utf-8,%3Csvg xmlns=’http://www.w3.org/2000/svg’ width=’29’ height=’29’ fill=’%2333b5e5′ viewBox=’0 0 20 20’%3E%3Cpath d=’M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1m0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7’/%3E%3Ccircle cx=’10’ cy=’10’ r=’2’/%3E%3C/svg%3E”)}.maplibregl-ctrl button.maplibregl-ctrl-geolocate.maplibregl-ctrl-geolocate-active-error .maplibregl-ctrl-icon{background-image:url(“data:image/svg+xml;charset=utf-8,%3Csvg xmlns=’http://www.w3.org/2000/svg’ width=’29’ height=’29’ fill=’%23e58978′ viewBox=’0 0 20 20’%3E%3Cpath d=’M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1m0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7’/%3E%3Ccircle cx=’10’ cy=’10’ r=’2’/%3E%3C/svg%3E”)}.maplibregl-ctrl button.maplibregl-ctrl-geolocate.maplibregl-ctrl-geolocate-background .maplibregl-ctrl-icon{background-image:url(“data:image/svg+xml;charset=utf-8,%3Csvg xmlns=’http://www.w3.org/2000/svg’ width=’29’ height=’29’ fill=’%2333b5e5′ viewBox=’0 0 20 20’%3E%3Cpath d=’M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1m0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7’/%3E%3C/svg%3E”)}.maplibregl-ctrl button.maplibregl-ctrl-geolocate.maplibregl-ctrl-geolocate-background-error .maplibregl-ctrl-icon{background-image:url(“data:image/svg+xml;charset=utf-8,%3Csvg xmlns=’http://www.w3.org/2000/svg’ width=’29’ height=’29’ fill=’%23e54e33′ viewBox=’0 0 20 20’%3E%3Cpath d=’M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1m0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7’/%3E%3C/svg%3E”)}}@media(forced-colors: active)and (prefers-color-scheme: light){.maplibregl-ctrl button.maplibregl-ctrl-geolocate .maplibregl-ctrl-icon{background-image:url(“data:image/svg+xml;charset=utf-8,%3Csvg xmlns=’http://www.w3.org/2000/svg’ width=’29’ height=’29’ viewBox=’0 0 20 20’%3E%3Cpath d=’M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1m0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7’/%3E%3Ccircle cx=’10’ cy=’10’ r=’2’/%3E%3C/svg%3E”)}.maplibregl-ctrl button.maplibregl-ctrl-geolocate:disabled .maplibregl-ctrl-icon{background-image:url(“data:image/svg+xml;charset=utf-8,%3Csvg xmlns=’http://www.w3.org/2000/svg’ width=’29’ height=’29’ fill=’%23666′ viewBox=’0 0 20 20’%3E%3Cpath d=’M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1m0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7’/%3E%3Ccircle cx=’10’ cy=’10’ r=’2’/%3E%3Cpath fill=’red’ d=’m14 5 1 1-9 9-1-1z’/%3E%3C/svg%3E”)}}@keyframes maplibregl-spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}a.maplibregl-ctrl-logo{background-image:url(“data:image/svg+xml;charset=utf-8,%3Csvg xmlns=’http://www.w3.org/2000/svg’ width=’88’ height=’23’ fill=’none’%3E%3Cpath fill=’%23000′ fill-opacity=’.4′ fill-rule=’evenodd’ d=’M17.408 16.796h-1.827l2.501-12.095h.198l3.324 6.533.988 2.19.988-2.19 3.258-6.533h.181l2.6 12.095h-1.81l-1.218-5.644-.362-1.71-.658 1.71-2.929 5.644h-.098l-2.914-5.644-.757-1.71-.345 1.71zm1.958-3.42-.726 3.663a1.255 1.255 0 0 1-1.232 1.011h-1.827a1.255 1.255 0 0 1-1.229-1.509l2.501-12.095a1.255 1.255 0 0 1 1.23-1.001h.197a1.25 1.25 0 0 1 1.12.685l3.19 6.273 3.125-6.263a1.25 1.25 0 0 1 1.123-.695h.181a1.255 1.255 0 0 1 1.227.991l1.443 6.71a5 5 0 0 1 .314-.787l.009-.016a4.6 4.6 0 0 1 1.777-1.887c.782-.46 1.668-.667 2.611-.667a4.6 4.6 0 0 1 1.7.32l.306.134c.21-.16.474-.256.759-.256h1.694a1.255 1.255 0 0 1 1.212.925 1.255 1.255 0 0 1 1.212-.925h1.711c.284 0 .545.094.755.252.613-.3 1.312-.45 2.075-.45 1.356 0 2.557.445 3.482 1.4q.47.48.763 1.064V4.701a1.255 1.255 0 0 1 1.255-1.255h1.86A1.255 1.255 0 0 1 54.44 4.7v9.194h2.217c.19 0 .37.043.532.118v-4.77c0-.356.147-.678.385-.906a2.42 2.42 0 0 1-.682-1.71c0-.665.267-1.253.735-1.7a2.45 2.45 0 0 1 1.722-.674 2.43 2.43 0 0 1 1.705.675q.318.302.504.683V4.7a1.255 1.255 0 0 1 1.255-1.255h1.744A1.255 1.255 0 0 1 65.812 4.7v3.335a4.8 4.8 0 0 1 1.526-.246c.938 0 1.817.214 2.59.69a4.47 4.47 0 0 1 1.67 1.743v-.98a1.255 1.255 0 0 1 1.256-1.256h1.777c.233 0 .451.064.639.174a3.4 3.4 0 0 1 1.567-.372c.346 0 .861.02 1.285.232a1.25 1.25 0 0 1 .689 1.004 4.7 4.7 0 0 1 .853-.588c.795-.44 1.675-.647 2.61-.647 1.385 0 2.65.39 3.525 1.396.836.938 1.168 2.173 1.168 3.528q-.001.515-.056 1.051a1.255 1.255 0 0 1-.947 1.09l.408.952a1.255 1.255 0 0 1-.477 1.552c-.418.268-.92.463-1.458.612-.613.171-1.304.244-2.049.244-1.06 0-2.043-.207-2.886-.698l-.015-.008c-.798-.48-1.419-1.135-1.818-1.963l-.004-.008a5.8 5.8 0 0 1-.548-2.512q0-.429.053-.843a1.3 1.3 0 0 1-.333-.086l-.166-.004c-.223 0-.426.062-.643.228-.03.024-.142.139-.142.59v3.883a1.255 1.255 0 0 1-1.256 1.256h-1.777a1.255 1.255 0 0 1-1.256-1.256V15.69l-.032.057a4.8 4.8 0 0 1-1.86 1.833 5.04 5.04 0 0 1-2.484.634 4.5 4.5 0 0 1-1.935-.424 1.25 1.25 0 0 1-.764.258h-1.71a1.255 1.255 0 0 1-1.256-1.255V7.687a2.4 2.4 0 0 1-.428.625c.253.23.412.561.412.93v7.553a1.255 1.255 0 0 1-1.256 1.255h-1.843a1.25 1.25 0 0 1-.894-.373c-.228.23-.544.373-.894.373H51.32a1.255 1.255 0 0 1-1.256-1.255v-1.251l-.061.117a4.7 4.7 0 0 1-1.782 1.884 4.77 4.77 0 0 1-2.485.67 5.6 5.6 0 0 1-1.485-.188l.009 2.764a1.255 1.255 0 0 1-1.255 1.259h-1.729a1.255 1.255 0 0 1-1.255-1.255v-3.537a1.255 1.255 0 0 1-1.167.793h-1.679a1.25 1.25 0 0 1-.77-.263 4.5 4.5 0 0 1-1.945.429c-.885 0-1.724-.21-2.495-.632l-.017-.01a5 5 0 0 1-1.081-.836 1.255 1.255 0 0 1-1.254 1.312h-1.81a1.255 1.255 0 0 1-1.228-.99l-.782-3.625-2.044 3.939a1.25 1.25 0 0 1-1.115.676h-.098a1.25 1.25 0 0 1-1.116-.68l-2.061-3.994zM35.92 16.63l.207-.114.223-.15q.493-.356.735-.785l.061-.118.033 1.332h1.678V9.242h-1.694l-.033 1.267q-.133-.329-.526-.658l-.032-.028a3.2 3.2 0 0 0-.668-.428l-.27-.12a3.3 3.3 0 0 0-1.235-.23q-1.136-.001-1.974.493a3.36 3.36 0 0 0-1.3 1.382q-.445.89-.444 2.074 0 1.2.51 2.107a3.8 3.8 0 0 0 1.382 1.381 3.9 3.9 0 0 0 1.893.477q.795 0 1.455-.33zm-2.789-5.38q-.576.675-.575 1.762 0 1.102.559 1.794.576.675 1.645.675a2.25 2.25 0 0 0 .934-.19 2.2 2.2 0 0 0 .468-.29l.178-.161a2.2 2.2 0 0 0 .397-.561q.244-.5.244-1.15v-.115q0-.708-.296-1.267l-.043-.077a2.2 2.2 0 0 0-.633-.709l-.13-.086-.047-.028a2.1 2.1 0 0 0-1.073-.285q-1.052 0-1.629.692zm2.316 2.706c.163-.17.28-.407.28-.83v-.114c0-.292-.06-.508-.15-.68a.96.96 0 0 0-.353-.389.85.85 0 0 0-.464-.127c-.4 0-.56.114-.664.239l-.01.012c-.148.174-.275.45-.275.945 0 .506.122.801.27.99.097.11.266.224.68.224.303 0 .504-.09.687-.269zm7.545 1.705a2.6 2.6 0 0 0 .331.423q.319.33.755.548l.173.074q.65.255 1.49.255 1.02 0 1.844-.493a3.45 3.45 0 0 0 1.316-1.4q.493-.904.493-2.089 0-1.909-.988-2.913-.988-1.02-2.584-1.02-.898 0-1.575.347a3 3 0 0 0-.415.262l-.199.166a3.4 3.4 0 0 0-.64.82V9.242h-1.712v11.553h1.729l-.017-5.134zm.53-1.138q.206.29.48.5l.155.11.053.034q.51.296 1.119.297 1.07 0 1.645-.675.577-.69.576-1.762 0-1.119-.576-1.777-.558-.675-1.645-.675-.435 0-.835.16a2 2 0 0 0-.284.136 2 2 0 0 0-.363.254 2.2 2.2 0 0 0-.46.569l-.082.162a2.6 2.6 0 0 0-.213 1.072v.115q0 .707.296 1.267l.135.211zm.964-.818a1.1 1.1 0 0 0 .367.385.94.94 0 0 0 .476.118c.423 0 .59-.117.687-.23.159-.194.28-.478.28-.95 0-.53-.133-.8-.266-.952l-.021-.025c-.078-.094-.231-.221-.68-.221a1 1 0 0 0-.503.135l-.012.007a.86.86 0 0 0-.335.343c-.073.133-.132.324-.132.614v.115a1.4 1.4 0 0 0 .14.66zm15.7-6.222q.347-.346.346-.856a1.05 1.05 0 0 0-.345-.79 1.18 1.18 0 0 0-.84-.329q-.51 0-.855.33a1.05 1.05 0 0 0-.346.79q0 .51.346.855.345.346.856.346.51 0 .839-.346zm4.337 9.314.033-1.332q.191.403.59.747l.098.081a4 4 0 0 0 .316.224l.223.122a3.2 3.2 0 0 0 1.44.322 3.8 3.8 0 0 0 1.875-.477 3.5 3.5 0 0 0 1.382-1.366q.527-.89.526-2.09 0-1.184-.444-2.073a3.24 3.24 0 0 0-1.283-1.399q-.823-.51-1.942-.51a3.5 3.5 0 0 0-1.527.344l-.086.043-.165.09a3 3 0 0 0-.33.214q-.432.315-.656.707a2 2 0 0 0-.099.198l.082-1.283V4.701h-1.744v12.095zm.473-2.509a2.5 2.5 0 0 0 .566.7q.117.098.245.18l.144.08a2.1 2.1 0 0 0 .975.232q1.07 0 1.645-.675.576-.69.576-1.778 0-1.102-.576-1.777-.56-.691-1.645-.692a2.2 2.2 0 0 0-1.015.235q-.22.113-.415.282l-.15.142a2.1 2.1 0 0 0-.42.594q-.223.479-.223 1.1v.115q0 .705.293 1.26zm2.616-.293c.157-.191.28-.479.28-.967 0-.51-.13-.79-.276-.961l-.021-.026c-.082-.1-.232-.225-.67-.225a.87.87 0 0 0-.681.279l-.012.011c-.154.155-.274.38-.274.807v.115c0 .285.057.499.144.669a1.1 1.1 0 0 0 .367.405c.137.082.28.123.455.123.423 0 .59-.118.686-.23zm8.266-3.013q.345-.13.724-.14l.069-.002q.493 0 .642.099l.247-1.794q-.196-.099-.717-.099a2.3 2.3 0 0 0-.545.063 2 2 0 0 0-.411.148 2.2 2.2 0 0 0-.4.249 2.5 2.5 0 0 0-.485.499 2.7 2.7 0 0 0-.32.581l-.05.137v-1.48h-1.778v7.553h1.777v-3.884q0-.546.159-.943a1.5 1.5 0 0 1 .466-.636 2.5 2.5 0 0 1 .399-.253 2 2 0 0 1 .224-.099zm9.784 2.656.05-.922q0-1.743-.856-2.698-.838-.97-2.584-.97-1.119-.001-2.007.493a3.46 3.46 0 0 0-1.4 1.382q-.493.906-.493 2.106 0 1.07.428 1.975.428.89 1.332 1.432.906.526 2.255.526.973 0 1.668-.185l.044-.012.135-.04q.613-.184.984-.421l-.542-1.267q-.3.162-.642.274l-.297.087q-.51.131-1.3.131-.954 0-1.497-.444a1.6 1.6 0 0 1-.192-.193q-.366-.44-.512-1.234l-.004-.021zm-5.427-1.256-.003.022h3.752v-.138q-.011-.727-.288-1.118a1 1 0 0 0-.156-.176q-.46-.428-1.316-.428-.986 0-1.494.604-.379.45-.494 1.234zm-27.053 2.77V4.7h-1.86v12.095h5.333V15.15zm7.103-5.908v7.553h-1.843V9.242h1.843z’/%3E%3Cpath fill=’%23fff’ d=’m19.63 11.151-.757-1.71-.345 1.71-1.12 5.644h-1.827L18.083 4.7h.197l3.325 6.533.988 2.19.988-2.19L26.839 4.7h.181l2.6 12.095h-1.81l-1.218-5.644-.362-1.71-.658 1.71-2.93 5.644h-.098l-2.913-5.644zm14.836 5.81q-1.02 0-1.893-.478a3.8 3.8 0 0 1-1.381-1.382q-.51-.906-.51-2.106 0-1.185.444-2.074a3.36 3.36 0 0 1 1.3-1.382q.839-.494 1.974-.494a3.3 3.3 0 0 1 1.234.231 3.3 3.3 0 0 1 .97.575q.396.33.527.659l.033-1.267h1.694v7.553H37.18l-.033-1.332q-.279.593-1.02 1.053a3.17 3.17 0 0 1-1.662.444zm.296-1.482q.938 0 1.58-.642.642-.66.642-1.711v-.115q0-.708-.296-1.267a2.2 2.2 0 0 0-.807-.872 2.1 2.1 0 0 0-1.119-.313q-1.053 0-1.629.692-.575.675-.575 1.76 0 1.103.559 1.795.577.675 1.645.675zm6.521-6.237h1.711v1.4q.906-1.597 2.83-1.597 1.596 0 2.584 1.02.988 1.005.988 2.914 0 1.185-.493 2.09a3.46 3.46 0 0 1-1.316 1.399 3.5 3.5 0 0 1-1.844.493q-.954 0-1.662-.329a2.67 2.67 0 0 1-1.086-.97l.017 5.134h-1.728zm4.048 6.22q1.07 0 1.645-.674.577-.69.576-1.762 0-1.119-.576-1.777-.558-.675-1.645-.675-.592 0-1.12.296-.51.28-.822.823-.296.527-.296 1.234v.115q0 .708.296 1.267.313.543.823.855.51.296 1.119.297z’/%3E%3Cpath fill=’%23e1e3e9′ d=’M51.325 4.7h1.86v10.45h3.473v1.646h-5.333zm7.12 4.542h1.843v7.553h-1.843zm.905-1.415a1.16 1.16 0 0 1-.856-.346 1.17 1.17 0 0 1-.346-.856 1.05 1.05 0 0 1 .346-.79q.346-.329.856-.329.494 0 .839.33a1.05 1.05 0 0 1 .345.79 1.16 1.16 0 0 1-.345.855q-.33.346-.84.346zm7.875 9.133a3.17 3.17 0 0 1-1.662-.444q-.723-.46-1.004-1.053l-.033 1.332h-1.71V4.701h1.743v4.657l-.082 1.283q.279-.658 1.086-1.119a3.5 3.5 0 0 1 1.778-.477q1.119 0 1.942.51a3.24 3.24 0 0 1 1.283 1.4q.445.888.444 2.072 0 1.201-.526 2.09a3.5 3.5 0 0 1-1.382 1.366 3.8 3.8 0 0 1-1.876.477zm-.296-1.481q1.069 0 1.645-.675.577-.69.577-1.778 0-1.102-.577-1.776-.56-.691-1.645-.692a2.12 2.12 0 0 0-1.58.659q-.642.641-.642 1.694v.115q0 .71.296 1.267a2.4 2.4 0 0 0 .807.872 2.1 2.1 0 0 0 1.119.313zm5.927-6.237h1.777v1.481q.263-.757.856-1.217a2.14 2.14 0 0 1 1.349-.46q.527 0 .724.098l-.247 1.794q-.149-.099-.642-.099-.774 0-1.416.494-.626.493-.626 1.58v3.883h-1.777V9.242zm9.534 7.718q-1.35 0-2.255-.526-.904-.543-1.332-1.432a4.6 4.6 0 0 1-.428-1.975q0-1.2.493-2.106a3.46 3.46 0 0 1 1.4-1.382q.889-.495 2.007-.494 1.744 0 2.584.97.855.956.856 2.7 0 .444-.05.92h-5.43q.18 1.005.708 1.45.542.443 1.497.443.79 0 1.3-.131a4 4 0 0 0 .938-.362l.542 1.267q-.411.263-1.119.46-.708.198-1.711.197zm1.596-4.558q.016-1.02-.444-1.432-.46-.428-1.316-.428-1.728 0-1.991 1.86z’/%3E%3Cpath d=’M5.074 15.948a.484.657 0 0 0-.486.659v1.84a.484.657 0 0 0 .486.659h4.101a.484.657 0 0 0 .486-.659v-1.84a.484.657 0 0 0-.486-.659zm3.56 1.16H5.617v.838h3.017z’ style=’fill:%23fff;fill-rule:evenodd;stroke-width:1.03600001’/%3E%3Cg style=’stroke-width:1.12603545’%3E%3Cpath d=’M-9.408-1.416c-3.833-.025-7.056 2.912-7.08 6.615-.02 3.08 1.653 4.832 3.107 6.268.903.892 1.721 1.74 2.32 2.902l-.525-.004c-.543-.003-.992.304-1.24.639a1.87 1.87 0 0 0-.362 1.121l-.011 1.877c-.003.402.104.787.347 1.125.244.338.688.653 1.23.656l4.142.028c.542.003.99-.306 1.238-.641a1.87 1.87 0 0 0 .363-1.121l.012-1.875a1.87 1.87 0 0 0-.348-1.127c-.243-.338-.688-.653-1.23-.656l-.518-.004c.597-1.145 1.425-1.983 2.348-2.87 1.473-1.414 3.18-3.149 3.2-6.226-.016-3.59-2.923-6.684-6.993-6.707m-.006 1.1v.002c3.274.02 5.92 2.532 5.9 5.6-.017 2.706-1.39 4.026-2.863 5.44-1.034.994-2.118 2.033-2.814 3.633-.018.041-.052.055-.075.065q-.013.004-.02.01a.34.34 0 0 1-.226.084.34.34 0 0 1-.224-.086l-.092-.077c-.699-1.615-1.768-2.669-2.781-3.67-1.454-1.435-2.797-2.762-2.78-5.478.02-3.067 2.7-5.545 5.975-5.523m-.02 2.826c-1.62-.01-2.944 1.315-2.955 2.96-.01 1.646 1.295 2.988 2.916 2.999h.002c1.621.01 2.943-1.316 2.953-2.961.011-1.646-1.294-2.988-2.916-2.998m-.005 1.1c1.017.006 1.829.83 1.822 1.89s-.83 1.874-1.848 1.867c-1.018-.006-1.829-.83-1.822-1.89s.83-1.874 1.848-1.868m-2.155 11.857 4.14.025c.271.002.49.305.487.676l-.013 1.875c-.003.37-.224.67-.495.668l-4.14-.025c-.27-.002-.487-.306-.485-.676l.012-1.875c.003-.37.224-.67.494-.668′ style=’color:%23000;font-style:normal;font-variant:normal;font-weight:400;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:%23000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;clip-rule:evenodd;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:%23000;solid-opacity:1;vector-effect:none;fill:%23000;fill-opacity:.4;fill-rule:evenodd;stroke:none;stroke-width:2.47727823;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto’ transform=’translate(15.553 2.85)scale(.88807)’/%3E%3Cpath d=’M-9.415-.316C-12.69-.338-15.37 2.14-15.39 5.207c-.017 2.716 1.326 4.041 2.78 5.477 1.013 1 2.081 2.055 2.78 3.67l.092.076a.34.34 0 0 0 .225.086.34.34 0 0 0 .227-.083l.019-.01c.022-.009.057-.024.074-.064.697-1.6 1.78-2.64 2.814-3.634 1.473-1.414 2.847-2.733 2.864-5.44.02-3.067-2.627-5.58-5.901-5.601m-.057 8.784c1.621.011 2.944-1.315 2.955-2.96.01-1.646-1.295-2.988-2.916-2.999-1.622-.01-2.945 1.315-2.955 2.96s1.295 2.989 2.916 3′ style=’clip-rule:evenodd;fill:%23e1e3e9;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2.47727823;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:.4′ transform=’translate(15.553 2.85)scale(.88807)’/%3E%3Cpath d=’M-11.594 15.465c-.27-.002-.492.297-.494.668l-.012 1.876c-.003.371.214.673.485.675l4.14.027c.271.002.492-.298.495-.668l.012-1.877c.003-.37-.215-.672-.485-.674z’ style=’clip-rule:evenodd;fill:%23fff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2.47727823;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:.4′ transform=’translate(15.553 2.85)scale(.88807)’/%3E%3C/g%3E%3C/svg%3E”);background-repeat:no-repeat;cursor:pointer;display:block;height:23px;margin:0 0 -4px -4px;overflow:hidden;width:88px}a.maplibregl-ctrl-logo.maplibregl-compact{width:14px}@media(forced-colors: active){a.maplibregl-ctrl-logo{background-color:transparent;background-image:url(“data:image/svg+xml;charset=utf-8,%3Csvg xmlns=’http://www.w3.org/2000/svg’ width=’88’ height=’23’ fill=’none’%3E%3Cpath fill=’%23000′ fill-opacity=’.4′ fill-rule=’evenodd’ d=’M17.408 16.796h-1.827l2.501-12.095h.198l3.324 6.533.988 2.19.988-2.19 3.258-6.533h.181l2.6 12.095h-1.81l-1.218-5.644-.362-1.71-.658 1.71-2.929 5.644h-.098l-2.914-5.644-.757-1.71-.345 1.71zm1.958-3.42-.726 3.663a1.255 1.255 0 0 1-1.232 1.011h-1.827a1.255 1.255 0 0 1-1.229-1.509l2.501-12.095a1.255 1.255 0 0 1 1.23-1.001h.197a1.25 1.25 0 0 1 1.12.685l3.19 6.273 3.125-6.263a1.25 1.25 0 0 1 1.123-.695h.181a1.255 1.255 0 0 1 1.227.991l1.443 6.71a5 5 0 0 1 .314-.787l.009-.016a4.6 4.6 0 0 1 1.777-1.887c.782-.46 1.668-.667 2.611-.667a4.6 4.6 0 0 1 1.7.32l.306.134c.21-.16.474-.256.759-.256h1.694a1.255 1.255 0 0 1 1.212.925 1.255 1.255 0 0 1 1.212-.925h1.711c.284 0 .545.094.755.252.613-.3 1.312-.45 2.075-.45 1.356 0 2.557.445 3.482 1.4q.47.48.763 1.064V4.701a1.255 1.255 0 0 1 1.255-1.255h1.86A1.255 1.255 0 0 1 54.44 4.7v9.194h2.217c.19 0 .37.043.532.118v-4.77c0-.356.147-.678.385-.906a2.42 2.42 0 0 1-.682-1.71c0-.665.267-1.253.735-1.7a2.45 2.45 0 0 1 1.722-.674 2.43 2.43 0 0 1 1.705.675q.318.302.504.683V4.7a1.255 1.255 0 0 1 1.255-1.255h1.744A1.255 1.255 0 0 1 65.812 4.7v3.335a4.8 4.8 0 0 1 1.526-.246c.938 0 1.817.214 2.59.69a4.47 4.47 0 0 1 1.67 1.743v-.98a1.255 1.255 0 0 1 1.256-1.256h1.777c.233 0 .451.064.639.174a3.4 3.4 0 0 1 1.567-.372c.346 0 .861.02 1.285.232a1.25 1.25 0 0 1 .689 1.004 4.7 4.7 0 0 1 .853-.588c.795-.44 1.675-.647 2.61-.647 1.385 0 2.65.39 3.525 1.396.836.938 1.168 2.173 1.168 3.528q-.001.515-.056 1.051a1.255 1.255 0 0 1-.947 1.09l.408.952a1.255 1.255 0 0 1-.477 1.552c-.418.268-.92.463-1.458.612-.613.171-1.304.244-2.049.244-1.06 0-2.043-.207-2.886-.698l-.015-.008c-.798-.48-1.419-1.135-1.818-1.963l-.004-.008a5.8 5.8 0 0 1-.548-2.512q0-.429.053-.843a1.3 1.3 0 0 1-.333-.086l-.166-.004c-.223 0-.426.062-.643.228-.03.024-.142.139-.142.59v3.883a1.255 1.255 0 0 1-1.256 1.256h-1.777a1.255 1.255 0 0 1-1.256-1.256V15.69l-.032.057a4.8 4.8 0 0 1-1.86 1.833 5.04 5.04 0 0 1-2.484.634 4.5 4.5 0 0 1-1.935-.424 1.25 1.25 0 0 1-.764.258h-1.71a1.255 1.255 0 0 1-1.256-1.255V7.687a2.4 2.4 0 0 1-.428.625c.253.23.412.561.412.93v7.553a1.255 1.255 0 0 1-1.256 1.255h-1.843a1.25 1.25 0 0 1-.894-.373c-.228.23-.544.373-.894.373H51.32a1.255 1.255 0 0 1-1.256-1.255v-1.251l-.061.117a4.7 4.7 0 0 1-1.782 1.884 4.77 4.77 0 0 1-2.485.67 5.6 5.6 0 0 1-1.485-.188l.009 2.764a1.255 1.255 0 0 1-1.255 1.259h-1.729a1.255 1.255 0 0 1-1.255-1.255v-3.537a1.255 1.255 0 0 1-1.167.793h-1.679a1.25 1.25 0 0 1-.77-.263 4.5 4.5 0 0 1-1.945.429c-.885 0-1.724-.21-2.495-.632l-.017-.01a5 5 0 0 1-1.081-.836 1.255 1.255 0 0 1-1.254 1.312h-1.81a1.255 1.255 0 0 1-1.228-.99l-.782-3.625-2.044 3.939a1.25 1.25 0 0 1-1.115.676h-.098a1.25 1.25 0 0 1-1.116-.68l-2.061-3.994zM35.92 16.63l.207-.114.223-.15q.493-.356.735-.785l.061-.118.033 1.332h1.678V9.242h-1.694l-.033 1.267q-.133-.329-.526-.658l-.032-.028a3.2 3.2 0 0 0-.668-.428l-.27-.12a3.3 3.3 0 0 0-1.235-.23q-1.136-.001-1.974.493a3.36 3.36 0 0 0-1.3 1.382q-.445.89-.444 2.074 0 1.2.51 2.107a3.8 3.8 0 0 0 1.382 1.381 3.9 3.9 0 0 0 1.893.477q.795 0 1.455-.33zm-2.789-5.38q-.576.675-.575 1.762 0 1.102.559 1.794.576.675 1.645.675a2.25 2.25 0 0 0 .934-.19 2.2 2.2 0 0 0 .468-.29l.178-.161a2.2 2.2 0 0 0 .397-.561q.244-.5.244-1.15v-.115q0-.708-.296-1.267l-.043-.077a2.2 2.2 0 0 0-.633-.709l-.13-.086-.047-.028a2.1 2.1 0 0 0-1.073-.285q-1.052 0-1.629.692zm2.316 2.706c.163-.17.28-.407.28-.83v-.114c0-.292-.06-.508-.15-.68a.96.96 0 0 0-.353-.389.85.85 0 0 0-.464-.127c-.4 0-.56.114-.664.239l-.01.012c-.148.174-.275.45-.275.945 0 .506.122.801.27.99.097.11.266.224.68.224.303 0 .504-.09.687-.269zm7.545 1.705a2.6 2.6 0 0 0 .331.423q.319.33.755.548l.173.074q.65.255 1.49.255 1.02 0 1.844-.493a3.45 3.45 0 0 0 1.316-1.4q.493-.904.493-2.089 0-1.909-.988-2.913-.988-1.02-2.584-1.02-.898 0-1.575.347a3 3 0 0 0-.415.262l-.199.166a3.4 3.4 0 0 0-.64.82V9.242h-1.712v11.553h1.729l-.017-5.134zm.53-1.138q.206.29.48.5l.155.11.053.034q.51.296 1.119.297 1.07 0 1.645-.675.577-.69.576-1.762 0-1.119-.576-1.777-.558-.675-1.645-.675-.435 0-.835.16a2 2 0 0 0-.284.136 2 2 0 0 0-.363.254 2.2 2.2 0 0 0-.46.569l-.082.162a2.6 2.6 0 0 0-.213 1.072v.115q0 .707.296 1.267l.135.211zm.964-.818a1.1 1.1 0 0 0 .367.385.94.94 0 0 0 .476.118c.423 0 .59-.117.687-.23.159-.194.28-.478.28-.95 0-.53-.133-.8-.266-.952l-.021-.025c-.078-.094-.231-.221-.68-.221a1 1 0 0 0-.503.135l-.012.007a.86.86 0 0 0-.335.343c-.073.133-.132.324-.132.614v.115a1.4 1.4 0 0 0 .14.66zm15.7-6.222q.347-.346.346-.856a1.05 1.05 0 0 0-.345-.79 1.18 1.18 0 0 0-.84-.329q-.51 0-.855.33a1.05 1.05 0 0 0-.346.79q0 .51.346.855.345.346.856.346.51 0 .839-.346zm4.337 9.314.033-1.332q.191.403.59.747l.098.081a4 4 0 0 0 .316.224l.223.122a3.2 3.2 0 0 0 1.44.322 3.8 3.8 0 0 0 1.875-.477 3.5 3.5 0 0 0 1.382-1.366q.527-.89.526-2.09 0-1.184-.444-2.073a3.24 3.24 0 0 0-1.283-1.399q-.823-.51-1.942-.51a3.5 3.5 0 0 0-1.527.344l-.086.043-.165.09a3 3 0 0 0-.33.214q-.432.315-.656.707a2 2 0 0 0-.099.198l.082-1.283V4.701h-1.744v12.095zm.473-2.509a2.5 2.5 0 0 0 .566.7q.117.098.245.18l.144.08a2.1 2.1 0 0 0 .975.232q1.07 0 1.645-.675.576-.69.576-1.778 0-1.102-.576-1.777-.56-.691-1.645-.692a2.2 2.2 0 0 0-1.015.235q-.22.113-.415.282l-.15.142a2.1 2.1 0 0 0-.42.594q-.223.479-.223 1.1v.115q0 .705.293 1.26zm2.616-.293c.157-.191.28-.479.28-.967 0-.51-.13-.79-.276-.961l-.021-.026c-.082-.1-.232-.225-.67-.225a.87.87 0 0 0-.681.279l-.012.011c-.154.155-.274.38-.274.807v.115c0 .285.057.499.144.669a1.1 1.1 0 0 0 .367.405c.137.082.28.123.455.123.423 0 .59-.118.686-.23zm8.266-3.013q.345-.13.724-.14l.069-.002q.493 0 .642.099l.247-1.794q-.196-.099-.717-.099a2.3 2.3 0 0 0-.545.063 2 2 0 0 0-.411.148 2.2 2.2 0 0 0-.4.249 2.5 2.5 0 0 0-.485.499 2.7 2.7 0 0 0-.32.581l-.05.137v-1.48h-1.778v7.553h1.777v-3.884q0-.546.159-.943a1.5 1.5 0 0 1 .466-.636 2.5 2.5 0 0 1 .399-.253 2 2 0 0 1 .224-.099zm9.784 2.656.05-.922q0-1.743-.856-2.698-.838-.97-2.584-.97-1.119-.001-2.007.493a3.46 3.46 0 0 0-1.4 1.382q-.493.906-.493 2.106 0 1.07.428 1.975.428.89 1.332 1.432.906.526 2.255.526.973 0 1.668-.185l.044-.012.135-.04q.613-.184.984-.421l-.542-1.267q-.3.162-.642.274l-.297.087q-.51.131-1.3.131-.954 0-1.497-.444a1.6 1.6 0 0 1-.192-.193q-.366-.44-.512-1.234l-.004-.021zm-5.427-1.256-.003.022h3.752v-.138q-.011-.727-.288-1.118a1 1 0 0 0-.156-.176q-.46-.428-1.316-.428-.986 0-1.494.604-.379.45-.494 1.234zm-27.053 2.77V4.7h-1.86v12.095h5.333V15.15zm7.103-5.908v7.553h-1.843V9.242h1.843z’/%3E%3Cpath fill=’%23fff’ d=’m19.63 11.151-.757-1.71-.345 1.71-1.12 5.644h-1.827L18.083 4.7h.197l3.325 6.533.988 2.19.988-2.19L26.839 4.7h.181l2.6 12.095h-1.81l-1.218-5.644-.362-1.71-.658 1.71-2.93 5.644h-.098l-2.913-5.644zm14.836 5.81q-1.02 0-1.893-.478a3.8 3.8 0 0 1-1.381-1.382q-.51-.906-.51-2.106 0-1.185.444-2.074a3.36 3.36 0 0 1 1.3-1.382q.839-.494 1.974-.494a3.3 3.3 0 0 1 1.234.231 3.3 3.3 0 0 1 .97.575q.396.33.527.659l.033-1.267h1.694v7.553H37.18l-.033-1.332q-.279.593-1.02 1.053a3.17 3.17 0 0 1-1.662.444zm.296-1.482q.938 0 1.58-.642.642-.66.642-1.711v-.115q0-.708-.296-1.267a2.2 2.2 0 0 0-.807-.872 2.1 2.1 0 0 0-1.119-.313q-1.053 0-1.629.692-.575.675-.575 1.76 0 1.103.559 1.795.577.675 1.645.675zm6.521-6.237h1.711v1.4q.906-1.597 2.83-1.597 1.596 0 2.584 1.02.988 1.005.988 2.914 0 1.185-.493 2.09a3.46 3.46 0 0 1-1.316 1.399 3.5 3.5 0 0 1-1.844.493q-.954 0-1.662-.329a2.67 2.67 0 0 1-1.086-.97l.017 5.134h-1.728zm4.048 6.22q1.07 0 1.645-.674.577-.69.576-1.762 0-1.119-.576-1.777-.558-.675-1.645-.675-.592 0-1.12.296-.51.28-.822.823-.296.527-.296 1.234v.115q0 .708.296 1.267.313.543.823.855.51.296 1.119.297z’/%3E%3Cpath fill=’%23e1e3e9′ d=’M51.325 4.7h1.86v10.45h3.473v1.646h-5.333zm7.12 4.542h1.843v7.553h-1.843zm.905-1.415a1.16 1.16 0 0 1-.856-.346 1.17 1.17 0 0 1-.346-.856 1.05 1.05 0 0 1 .346-.79q.346-.329.856-.329.494 0 .839.33a1.05 1.05 0 0 1 .345.79 1.16 1.16 0 0 1-.345.855q-.33.346-.84.346zm7.875 9.133a3.17 3.17 0 0 1-1.662-.444q-.723-.46-1.004-1.053l-.033 1.332h-1.71V4.701h1.743v4.657l-.082 1.283q.279-.658 1.086-1.119a3.5 3.5 0 0 1 1.778-.477q1.119 0 1.942.51a3.24 3.24 0 0 1 1.283 1.4q.445.888.444 2.072 0 1.201-.526 2.09a3.5 3.5 0 0 1-1.382 1.366 3.8 3.8 0 0 1-1.876.477zm-.296-1.481q1.069 0 1.645-.675.577-.69.577-1.778 0-1.102-.577-1.776-.56-.691-1.645-.692a2.12 2.12 0 0 0-1.58.659q-.642.641-.642 1.694v.115q0 .71.296 1.267a2.4 2.4 0 0 0 .807.872 2.1 2.1 0 0 0 1.119.313zm5.927-6.237h1.777v1.481q.263-.757.856-1.217a2.14 2.14 0 0 1 1.349-.46q.527 0 .724.098l-.247 1.794q-.149-.099-.642-.099-.774 0-1.416.494-.626.493-.626 1.58v3.883h-1.777V9.242zm9.534 7.718q-1.35 0-2.255-.526-.904-.543-1.332-1.432a4.6 4.6 0 0 1-.428-1.975q0-1.2.493-2.106a3.46 3.46 0 0 1 1.4-1.382q.889-.495 2.007-.494 1.744 0 2.584.97.855.956.856 2.7 0 .444-.05.92h-5.43q.18 1.005.708 1.45.542.443 1.497.443.79 0 1.3-.131a4 4 0 0 0 .938-.362l.542 1.267q-.411.263-1.119.46-.708.198-1.711.197zm1.596-4.558q.016-1.02-.444-1.432-.46-.428-1.316-.428-1.728 0-1.991 1.86z’/%3E%3Cpath d=’M5.074 15.948a.484.657 0 0 0-.486.659v1.84a.484.657 0 0 0 .486.659h4.101a.484.657 0 0 0 .486-.659v-1.84a.484.657 0 0 0-.486-.659zm3.56 1.16H5.617v.838h3.017z’ style=’fill:%23fff;fill-rule:evenodd;stroke-width:1.03600001’/%3E%3Cg style=’stroke-width:1.12603545’%3E%3Cpath d=’M-9.408-1.416c-3.833-.025-7.056 2.912-7.08 6.615-.02 3.08 1.653 4.832 3.107 6.268.903.892 1.721 1.74 2.32 2.902l-.525-.004c-.543-.003-.992.304-1.24.639a1.87 1.87 0 0 0-.362 1.121l-.011 1.877c-.003.402.104.787.347 1.125.244.338.688.653 1.23.656l4.142.028c.542.003.99-.306 1.238-.641a1.87 1.87 0 0 0 .363-1.121l.012-1.875a1.87 1.87 0 0 0-.348-1.127c-.243-.338-.688-.653-1.23-.656l-.518-.004c.597-1.145 1.425-1.983 2.348-2.87 1.473-1.414 3.18-3.149 3.2-6.226-.016-3.59-2.923-6.684-6.993-6.707m-.006 1.1v.002c3.274.02 5.92 2.532 5.9 5.6-.017 2.706-1.39 4.026-2.863 5.44-1.034.994-2.118 2.033-2.814 3.633-.018.041-.052.055-.075.065q-.013.004-.02.01a.34.34 0 0 1-.226.084.34.34 0 0 1-.224-.086l-.092-.077c-.699-1.615-1.768-2.669-2.781-3.67-1.454-1.435-2.797-2.762-2.78-5.478.02-3.067 2.7-5.545 5.975-5.523m-.02 2.826c-1.62-.01-2.944 1.315-2.955 2.96-.01 1.646 1.295 2.988 2.916 2.999h.002c1.621.01 2.943-1.316 2.953-2.961.011-1.646-1.294-2.988-2.916-2.998m-.005 1.1c1.017.006 1.829.83 1.822 1.89s-.83 1.874-1.848 1.867c-1.018-.006-1.829-.83-1.822-1.89s.83-1.874 1.848-1.868m-2.155 11.857 4.14.025c.271.002.49.305.487.676l-.013 1.875c-.003.37-.224.67-.495.668l-4.14-.025c-.27-.002-.487-.306-.485-.676l.012-1.875c.003-.37.224-.67.494-.668′ style=’color:%23000;font-style:normal;font-variant:normal;font-weight:400;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:%23000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;clip-rule:evenodd;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:%23000;solid-opacity:1;vector-effect:none;fill:%23000;fill-opacity:.4;fill-rule:evenodd;stroke:none;stroke-width:2.47727823;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto’ transform=’translate(15.553 2.85)scale(.88807)’/%3E%3Cpath d=’M-9.415-.316C-12.69-.338-15.37 2.14-15.39 5.207c-.017 2.716 1.326 4.041 2.78 5.477 1.013 1 2.081 2.055 2.78 3.67l.092.076a.34.34 0 0 0 .225.086.34.34 0 0 0 .227-.083l.019-.01c.022-.009.057-.024.074-.064.697-1.6 1.78-2.64 2.814-3.634 1.473-1.414 2.847-2.733 2.864-5.44.02-3.067-2.627-5.58-5.901-5.601m-.057 8.784c1.621.011 2.944-1.315 2.955-2.96.01-1.646-1.295-2.988-2.916-2.999-1.622-.01-2.945 1.315-2.955 2.96s1.295 2.989 2.916 3′ style=’clip-rule:evenodd;fill:%23e1e3e9;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2.47727823;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:.4′ transform=’translate(15.553 2.85)scale(.88807)’/%3E%3Cpath d=’M-11.594 15.465c-.27-.002-.492.297-.494.668l-.012 1.876c-.003.371.214.673.485.675l4.14.027c.271.002.492-.298.495-.668l.012-1.877c.003-.37-.215-.672-.485-.674z’ style=’clip-rule:evenodd;fill:%23fff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2.47727823;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:.4′ transform=’translate(15.553 2.85)scale(.88807)’/%3E%3C/g%3E%3C/svg%3E”)}}@media(forced-colors: active)and (prefers-color-scheme: light){a.maplibregl-ctrl-logo{background-image:url(“data:image/svg+xml;charset=utf-8,%3Csvg xmlns=’http://www.w3.org/2000/svg’ width=’88’ height=’23’ fill=’none’%3E%3Cpath fill=’%23000′ fill-opacity=’.4′ fill-rule=’evenodd’ d=’M17.408 16.796h-1.827l2.501-12.095h.198l3.324 6.533.988 2.19.988-2.19 3.258-6.533h.181l2.6 12.095h-1.81l-1.218-5.644-.362-1.71-.658 1.71-2.929 5.644h-.098l-2.914-5.644-.757-1.71-.345 1.71zm1.958-3.42-.726 3.663a1.255 1.255 0 0 1-1.232 1.011h-1.827a1.255 1.255 0 0 1-1.229-1.509l2.501-12.095a1.255 1.255 0 0 1 1.23-1.001h.197a1.25 1.25 0 0 1 1.12.685l3.19 6.273 3.125-6.263a1.25 1.25 0 0 1 1.123-.695h.181a1.255 1.255 0 0 1 1.227.991l1.443 6.71a5 5 0 0 1 .314-.787l.009-.016a4.6 4.6 0 0 1 1.777-1.887c.782-.46 1.668-.667 2.611-.667a4.6 4.6 0 0 1 1.7.32l.306.134c.21-.16.474-.256.759-.256h1.694a1.255 1.255 0 0 1 1.212.925 1.255 1.255 0 0 1 1.212-.925h1.711c.284 0 .545.094.755.252.613-.3 1.312-.45 2.075-.45 1.356 0 2.557.445 3.482 1.4q.47.48.763 1.064V4.701a1.255 1.255 0 0 1 1.255-1.255h1.86A1.255 1.255 0 0 1 54.44 4.7v9.194h2.217c.19 0 .37.043.532.118v-4.77c0-.356.147-.678.385-.906a2.42 2.42 0 0 1-.682-1.71c0-.665.267-1.253.735-1.7a2.45 2.45 0 0 1 1.722-.674 2.43 2.43 0 0 1 1.705.675q.318.302.504.683V4.7a1.255 1.255 0 0 1 1.255-1.255h1.744A1.255 1.255 0 0 1 65.812 4.7v3.335a4.8 4.8 0 0 1 1.526-.246c.938 0 1.817.214 2.59.69a4.47 4.47 0 0 1 1.67 1.743v-.98a1.255 1.255 0 0 1 1.256-1.256h1.777c.233 0 .451.064.639.174a3.4 3.4 0 0 1 1.567-.372c.346 0 .861.02 1.285.232a1.25 1.25 0 0 1 .689 1.004 4.7 4.7 0 0 1 .853-.588c.795-.44 1.675-.647 2.61-.647 1.385 0 2.65.39 3.525 1.396.836.938 1.168 2.173 1.168 3.528q-.001.515-.056 1.051a1.255 1.255 0 0 1-.947 1.09l.408.952a1.255 1.255 0 0 1-.477 1.552c-.418.268-.92.463-1.458.612-.613.171-1.304.244-2.049.244-1.06 0-2.043-.207-2.886-.698l-.015-.008c-.798-.48-1.419-1.135-1.818-1.963l-.004-.008a5.8 5.8 0 0 1-.548-2.512q0-.429.053-.843a1.3 1.3 0 0 1-.333-.086l-.166-.004c-.223 0-.426.062-.643.228-.03.024-.142.139-.142.59v3.883a1.255 1.255 0 0 1-1.256 1.256h-1.777a1.255 1.255 0 0 1-1.256-1.256V15.69l-.032.057a4.8 4.8 0 0 1-1.86 1.833 5.04 5.04 0 0 1-2.484.634 4.5 4.5 0 0 1-1.935-.424 1.25 1.25 0 0 1-.764.258h-1.71a1.255 1.255 0 0 1-1.256-1.255V7.687a2.4 2.4 0 0 1-.428.625c.253.23.412.561.412.93v7.553a1.255 1.255 0 0 1-1.256 1.255h-1.843a1.25 1.25 0 0 1-.894-.373c-.228.23-.544.373-.894.373H51.32a1.255 1.255 0 0 1-1.256-1.255v-1.251l-.061.117a4.7 4.7 0 0 1-1.782 1.884 4.77 4.77 0 0 1-2.485.67 5.6 5.6 0 0 1-1.485-.188l.009 2.764a1.255 1.255 0 0 1-1.255 1.259h-1.729a1.255 1.255 0 0 1-1.255-1.255v-3.537a1.255 1.255 0 0 1-1.167.793h-1.679a1.25 1.25 0 0 1-.77-.263 4.5 4.5 0 0 1-1.945.429c-.885 0-1.724-.21-2.495-.632l-.017-.01a5 5 0 0 1-1.081-.836 1.255 1.255 0 0 1-1.254 1.312h-1.81a1.255 1.255 0 0 1-1.228-.99l-.782-3.625-2.044 3.939a1.25 1.25 0 0 1-1.115.676h-.098a1.25 1.25 0 0 1-1.116-.68l-2.061-3.994zM35.92 16.63l.207-.114.223-.15q.493-.356.735-.785l.061-.118.033 1.332h1.678V9.242h-1.694l-.033 1.267q-.133-.329-.526-.658l-.032-.028a3.2 3.2 0 0 0-.668-.428l-.27-.12a3.3 3.3 0 0 0-1.235-.23q-1.136-.001-1.974.493a3.36 3.36 0 0 0-1.3 1.382q-.445.89-.444 2.074 0 1.2.51 2.107a3.8 3.8 0 0 0 1.382 1.381 3.9 3.9 0 0 0 1.893.477q.795 0 1.455-.33zm-2.789-5.38q-.576.675-.575 1.762 0 1.102.559 1.794.576.675 1.645.675a2.25 2.25 0 0 0 .934-.19 2.2 2.2 0 0 0 .468-.29l.178-.161a2.2 2.2 0 0 0 .397-.561q.244-.5.244-1.15v-.115q0-.708-.296-1.267l-.043-.077a2.2 2.2 0 0 0-.633-.709l-.13-.086-.047-.028a2.1 2.1 0 0 0-1.073-.285q-1.052 0-1.629.692zm2.316 2.706c.163-.17.28-.407.28-.83v-.114c0-.292-.06-.508-.15-.68a.96.96 0 0 0-.353-.389.85.85 0 0 0-.464-.127c-.4 0-.56.114-.664.239l-.01.012c-.148.174-.275.45-.275.945 0 .506.122.801.27.99.097.11.266.224.68.224.303 0 .504-.09.687-.269zm7.545 1.705a2.6 2.6 0 0 0 .331.423q.319.33.755.548l.173.074q.65.255 1.49.255 1.02 0 1.844-.493a3.45 3.45 0 0 0 1.316-1.4q.493-.904.493-2.089 0-1.909-.988-2.913-.988-1.02-2.584-1.02-.898 0-1.575.347a3 3 0 0 0-.415.262l-.199.166a3.4 3.4 0 0 0-.64.82V9.242h-1.712v11.553h1.729l-.017-5.134zm.53-1.138q.206.29.48.5l.155.11.053.034q.51.296 1.119.297 1.07 0 1.645-.675.577-.69.576-1.762 0-1.119-.576-1.777-.558-.675-1.645-.675-.435 0-.835.16a2 2 0 0 0-.284.136 2 2 0 0 0-.363.254 2.2 2.2 0 0 0-.46.569l-.082.162a2.6 2.6 0 0 0-.213 1.072v.115q0 .707.296 1.267l.135.211zm.964-.818a1.1 1.1 0 0 0 .367.385.94.94 0 0 0 .476.118c.423 0 .59-.117.687-.23.159-.194.28-.478.28-.95 0-.53-.133-.8-.266-.952l-.021-.025c-.078-.094-.231-.221-.68-.221a1 1 0 0 0-.503.135l-.012.007a.86.86 0 0 0-.335.343c-.073.133-.132.324-.132.614v.115a1.4 1.4 0 0 0 .14.66zm15.7-6.222q.347-.346.346-.856a1.05 1.05 0 0 0-.345-.79 1.18 1.18 0 0 0-.84-.329q-.51 0-.855.33a1.05 1.05 0 0 0-.346.79q0 .51.346.855.345.346.856.346.51 0 .839-.346zm4.337 9.314.033-1.332q.191.403.59.747l.098.081a4 4 0 0 0 .316.224l.223.122a3.2 3.2 0 0 0 1.44.322 3.8 3.8 0 0 0 1.875-.477 3.5 3.5 0 0 0 1.382-1.366q.527-.89.526-2.09 0-1.184-.444-2.073a3.24 3.24 0 0 0-1.283-1.399q-.823-.51-1.942-.51a3.5 3.5 0 0 0-1.527.344l-.086.043-.165.09a3 3 0 0 0-.33.214q-.432.315-.656.707a2 2 0 0 0-.099.198l.082-1.283V4.701h-1.744v12.095zm.473-2.509a2.5 2.5 0 0 0 .566.7q.117.098.245.18l.144.08a2.1 2.1 0 0 0 .975.232q1.07 0 1.645-.675.576-.69.576-1.778 0-1.102-.576-1.777-.56-.691-1.645-.692a2.2 2.2 0 0 0-1.015.235q-.22.113-.415.282l-.15.142a2.1 2.1 0 0 0-.42.594q-.223.479-.223 1.1v.115q0 .705.293 1.26zm2.616-.293c.157-.191.28-.479.28-.967 0-.51-.13-.79-.276-.961l-.021-.026c-.082-.1-.232-.225-.67-.225a.87.87 0 0 0-.681.279l-.012.011c-.154.155-.274.38-.274.807v.115c0 .285.057.499.144.669a1.1 1.1 0 0 0 .367.405c.137.082.28.123.455.123.423 0 .59-.118.686-.23zm8.266-3.013q.345-.13.724-.14l.069-.002q.493 0 .642.099l.247-1.794q-.196-.099-.717-.099a2.3 2.3 0 0 0-.545.063 2 2 0 0 0-.411.148 2.2 2.2 0 0 0-.4.249 2.5 2.5 0 0 0-.485.499 2.7 2.7 0 0 0-.32.581l-.05.137v-1.48h-1.778v7.553h1.777v-3.884q0-.546.159-.943a1.5 1.5 0 0 1 .466-.636 2.5 2.5 0 0 1 .399-.253 2 2 0 0 1 .224-.099zm9.784 2.656.05-.922q0-1.743-.856-2.698-.838-.97-2.584-.97-1.119-.001-2.007.493a3.46 3.46 0 0 0-1.4 1.382q-.493.906-.493 2.106 0 1.07.428 1.975.428.89 1.332 1.432.906.526 2.255.526.973 0 1.668-.185l.044-.012.135-.04q.613-.184.984-.421l-.542-1.267q-.3.162-.642.274l-.297.087q-.51.131-1.3.131-.954 0-1.497-.444a1.6 1.6 0 0 1-.192-.193q-.366-.44-.512-1.234l-.004-.021zm-5.427-1.256-.003.022h3.752v-.138q-.011-.727-.288-1.118a1 1 0 0 0-.156-.176q-.46-.428-1.316-.428-.986 0-1.494.604-.379.45-.494 1.234zm-27.053 2.77V4.7h-1.86v12.095h5.333V15.15zm7.103-5.908v7.553h-1.843V9.242h1.843z’/%3E%3Cpath fill=’%23fff’ d=’m19.63 11.151-.757-1.71-.345 1.71-1.12 5.644h-1.827L18.083 4.7h.197l3.325 6.533.988 2.19.988-2.19L26.839 4.7h.181l2.6 12.095h-1.81l-1.218-5.644-.362-1.71-.658 1.71-2.93 5.644h-.098l-2.913-5.644zm14.836 5.81q-1.02 0-1.893-.478a3.8 3.8 0 0 1-1.381-1.382q-.51-.906-.51-2.106 0-1.185.444-2.074a3.36 3.36 0 0 1 1.3-1.382q.839-.494 1.974-.494a3.3 3.3 0 0 1 1.234.231 3.3 3.3 0 0 1 .97.575q.396.33.527.659l.033-1.267h1.694v7.553H37.18l-.033-1.332q-.279.593-1.02 1.053a3.17 3.17 0 0 1-1.662.444zm.296-1.482q.938 0 1.58-.642.642-.66.642-1.711v-.115q0-.708-.296-1.267a2.2 2.2 0 0 0-.807-.872 2.1 2.1 0 0 0-1.119-.313q-1.053 0-1.629.692-.575.675-.575 1.76 0 1.103.559 1.795.577.675 1.645.675zm6.521-6.237h1.711v1.4q.906-1.597 2.83-1.597 1.596 0 2.584 1.02.988 1.005.988 2.914 0 1.185-.493 2.09a3.46 3.46 0 0 1-1.316 1.399 3.5 3.5 0 0 1-1.844.493q-.954 0-1.662-.329a2.67 2.67 0 0 1-1.086-.97l.017 5.134h-1.728zm4.048 6.22q1.07 0 1.645-.674.577-.69.576-1.762 0-1.119-.576-1.777-.558-.675-1.645-.675-.592 0-1.12.296-.51.28-.822.823-.296.527-.296 1.234v.115q0 .708.296 1.267.313.543.823.855.51.296 1.119.297z’/%3E%3Cpath fill=’%23e1e3e9′ d=’M51.325 4.7h1.86v10.45h3.473v1.646h-5.333zm7.12 4.542h1.843v7.553h-1.843zm.905-1.415a1.16 1.16 0 0 1-.856-.346 1.17 1.17 0 0 1-.346-.856 1.05 1.05 0 0 1 .346-.79q.346-.329.856-.329.494 0 .839.33a1.05 1.05 0 0 1 .345.79 1.16 1.16 0 0 1-.345.855q-.33.346-.84.346zm7.875 9.133a3.17 3.17 0 0 1-1.662-.444q-.723-.46-1.004-1.053l-.033 1.332h-1.71V4.701h1.743v4.657l-.082 1.283q.279-.658 1.086-1.119a3.5 3.5 0 0 1 1.778-.477q1.119 0 1.942.51a3.24 3.24 0 0 1 1.283 1.4q.445.888.444 2.072 0 1.201-.526 2.09a3.5 3.5 0 0 1-1.382 1.366 3.8 3.8 0 0 1-1.876.477zm-.296-1.481q1.069 0 1.645-.675.577-.69.577-1.778 0-1.102-.577-1.776-.56-.691-1.645-.692a2.12 2.12 0 0 0-1.58.659q-.642.641-.642 1.694v.115q0 .71.296 1.267a2.4 2.4 0 0 0 .807.872 2.1 2.1 0 0 0 1.119.313zm5.927-6.237h1.777v1.481q.263-.757.856-1.217a2.14 2.14 0 0 1 1.349-.46q.527 0 .724.098l-.247 1.794q-.149-.099-.642-.099-.774 0-1.416.494-.626.493-.626 1.58v3.883h-1.777V9.242zm9.534 7.718q-1.35 0-2.255-.526-.904-.543-1.332-1.432a4.6 4.6 0 0 1-.428-1.975q0-1.2.493-2.106a3.46 3.46 0 0 1 1.4-1.382q.889-.495 2.007-.494 1.744 0 2.584.97.855.956.856 2.7 0 .444-.05.92h-5.43q.18 1.005.708 1.45.542.443 1.497.443.79 0 1.3-.131a4 4 0 0 0 .938-.362l.542 1.267q-.411.263-1.119.46-.708.198-1.711.197zm1.596-4.558q.016-1.02-.444-1.432-.46-.428-1.316-.428-1.728 0-1.991 1.86z’/%3E%3Cpath d=’M5.074 15.948a.484.657 0 0 0-.486.659v1.84a.484.657 0 0 0 .486.659h4.101a.484.657 0 0 0 .486-.659v-1.84a.484.657 0 0 0-.486-.659zm3.56 1.16H5.617v.838h3.017z’ style=’fill:%23fff;fill-rule:evenodd;stroke-width:1.03600001’/%3E%3Cg style=’stroke-width:1.12603545’%3E%3Cpath d=’M-9.408-1.416c-3.833-.025-7.056 2.912-7.08 6.615-.02 3.08 1.653 4.832 3.107 6.268.903.892 1.721 1.74 2.32 2.902l-.525-.004c-.543-.003-.992.304-1.24.639a1.87 1.87 0 0 0-.362 1.121l-.011 1.877c-.003.402.104.787.347 1.125.244.338.688.653 1.23.656l4.142.028c.542.003.99-.306 1.238-.641a1.87 1.87 0 0 0 .363-1.121l.012-1.875a1.87 1.87 0 0 0-.348-1.127c-.243-.338-.688-.653-1.23-.656l-.518-.004c.597-1.145 1.425-1.983 2.348-2.87 1.473-1.414 3.18-3.149 3.2-6.226-.016-3.59-2.923-6.684-6.993-6.707m-.006 1.1v.002c3.274.02 5.92 2.532 5.9 5.6-.017 2.706-1.39 4.026-2.863 5.44-1.034.994-2.118 2.033-2.814 3.633-.018.041-.052.055-.075.065q-.013.004-.02.01a.34.34 0 0 1-.226.084.34.34 0 0 1-.224-.086l-.092-.077c-.699-1.615-1.768-2.669-2.781-3.67-1.454-1.435-2.797-2.762-2.78-5.478.02-3.067 2.7-5.545 5.975-5.523m-.02 2.826c-1.62-.01-2.944 1.315-2.955 2.96-.01 1.646 1.295 2.988 2.916 2.999h.002c1.621.01 2.943-1.316 2.953-2.961.011-1.646-1.294-2.988-2.916-2.998m-.005 1.1c1.017.006 1.829.83 1.822 1.89s-.83 1.874-1.848 1.867c-1.018-.006-1.829-.83-1.822-1.89s.83-1.874 1.848-1.868m-2.155 11.857 4.14.025c.271.002.49.305.487.676l-.013 1.875c-.003.37-.224.67-.495.668l-4.14-.025c-.27-.002-.487-.306-.485-.676l.012-1.875c.003-.37.224-.67.494-.668′ style=’color:%23000;font-style:normal;font-variant:normal;font-weight:400;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:%23000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;clip-rule:evenodd;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:%23000;solid-opacity:1;vector-effect:none;fill:%23000;fill-opacity:.4;fill-rule:evenodd;stroke:none;stroke-width:2.47727823;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto’ transform=’translate(15.553 2.85)scale(.88807)’/%3E%3Cpath d=’M-9.415-.316C-12.69-.338-15.37 2.14-15.39 5.207c-.017 2.716 1.326 4.041 2.78 5.477 1.013 1 2.081 2.055 2.78 3.67l.092.076a.34.34 0 0 0 .225.086.34.34 0 0 0 .227-.083l.019-.01c.022-.009.057-.024.074-.064.697-1.6 1.78-2.64 2.814-3.634 1.473-1.414 2.847-2.733 2.864-5.44.02-3.067-2.627-5.58-5.901-5.601m-.057 8.784c1.621.011 2.944-1.315 2.955-2.96.01-1.646-1.295-2.988-2.916-2.999-1.622-.01-2.945 1.315-2.955 2.96s1.295 2.989 2.916 3′ style=’clip-rule:evenodd;fill:%23e1e3e9;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2.47727823;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:.4′ transform=’translate(15.553 2.85)scale(.88807)’/%3E%3Cpath d=’M-11.594 15.465c-.27-.002-.492.297-.494.668l-.012 1.876c-.003.371.214.673.485.675l4.14.027c.271.002.492-.298.495-.668l.012-1.877c.003-.37-.215-.672-.485-.674z’ style=’clip-rule:evenodd;fill:%23fff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2.47727823;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:.4′ transform=’translate(15.553 2.85)scale(.88807)’/%3E%3C/g%3E%3C/svg%3E”)}}.maplibregl-ctrl.maplibregl-ctrl-attrib{background-color:hsla(0, 0%, 100%, 0.5);margin:0;padding:0 5px}@media screen{.maplibregl-ctrl-attrib.maplibregl-compact{background-color:#fff;border-radius:12px;box-sizing:content-box;color:#000;margin:10px;min-height:20px;padding:2px 24px 2px 0;position:relative}.maplibregl-ctrl-attrib.maplibregl-compact-show{padding:2px 28px 2px 8px;visibility:visible}.maplibregl-ctrl-bottom-left>.maplibregl-ctrl-attrib.maplibregl-compact-show,.maplibregl-ctrl-top-left>.maplibregl-ctrl-attrib.maplibregl-compact-show{border-radius:12px;padding:2px 8px 2px 28px}.maplibregl-ctrl-attrib.maplibregl-compact .maplibregl-ctrl-attrib-inner{display:none}.maplibregl-ctrl-attrib-button{background-color:hsla(0, 0%, 100%, 0.5);background-image:url(“data:image/svg+xml;charset=utf-8,%3Csvg xmlns=’http://www.w3.org/2000/svg’ width=’24’ height=’24’ fill-rule=’evenodd’ viewBox=’0 0 20 20’%3E%3Cpath d=’M4 10a6 6 0 1 0 12 0 6 6 0 1 0-12 0m5-3a1 1 0 1 0 2 0 1 1 0 1 0-2 0m0 3a1 1 0 1 1 2 0v3a1 1 0 1 1-2 0’/%3E%3C/svg%3E”);border:0;border-radius:12px;box-sizing:border-box;cursor:pointer;display:none;height:24px;outline:none;position:absolute;right:0;top:0;width:24px}.maplibregl-ctrl-attrib summary.maplibregl-ctrl-attrib-button{-webkit-appearance:none;-moz-appearance:none;appearance:none;list-style:none}.maplibregl-ctrl-attrib summary.maplibregl-ctrl-attrib-button::-webkit-details-marker{display:none}.maplibregl-ctrl-bottom-left .maplibregl-ctrl-attrib-button,.maplibregl-ctrl-top-left .maplibregl-ctrl-attrib-button{left:0}.maplibregl-ctrl-attrib.maplibregl-compact .maplibregl-ctrl-attrib-button,.maplibregl-ctrl-attrib.maplibregl-compact-show .maplibregl-ctrl-attrib-inner{display:block}.maplibregl-ctrl-attrib.maplibregl-compact-show .maplibregl-ctrl-attrib-button{background-color:rgb(0 0 0/5%)}.maplibregl-ctrl-bottom-right>.maplibregl-ctrl-attrib.maplibregl-compact:after{bottom:0;right:0}.maplibregl-ctrl-top-right>.maplibregl-ctrl-attrib.maplibregl-compact:after{right:0;top:0}.maplibregl-ctrl-top-left>.maplibregl-ctrl-attrib.maplibregl-compact:after{left:0;top:0}.maplibregl-ctrl-bottom-left>.maplibregl-ctrl-attrib.maplibregl-compact:after{bottom:0;left:0}}@media screen and (forced-colors: active){.maplibregl-ctrl-attrib.maplibregl-compact:after{background-image:url(“data:image/svg+xml;charset=utf-8,%3Csvg xmlns=’http://www.w3.org/2000/svg’ width=’24’ height=’24’ fill=’%23fff’ fill-rule=’evenodd’ viewBox=’0 0 20 20’%3E%3Cpath d=’M4 10a6 6 0 1 0 12 0 6 6 0 1 0-12 0m5-3a1 1 0 1 0 2 0 1 1 0 1 0-2 0m0 3a1 1 0 1 1 2 0v3a1 1 0 1 1-2 0’/%3E%3C/svg%3E”)}}@media screen and (forced-colors: active)and (prefers-color-scheme: light){.maplibregl-ctrl-attrib.maplibregl-compact:after{background-image:url(“data:image/svg+xml;charset=utf-8,%3Csvg xmlns=’http://www.w3.org/2000/svg’ width=’24’ height=’24’ fill-rule=’evenodd’ viewBox=’0 0 20 20’%3E%3Cpath d=’M4 10a6 6 0 1 0 12 0 6 6 0 1 0-12 0m5-3a1 1 0 1 0 2 0 1 1 0 1 0-2 0m0 3a1 1 0 1 1 2 0v3a1 1 0 1 1-2 0’/%3E%3C/svg%3E”)}}.maplibregl-ctrl-attrib a{color:rgba(0, 0, 0, 0.75);text-decoration:none}.maplibregl-ctrl-attrib a:hover{color:inherit;text-decoration:underline}.maplibregl-attrib-empty{display:none}.maplibregl-ctrl-scale{background-color:hsla(0, 0%, 100%, 0.75);border:2px solid #333;border-top:#333;box-sizing:border-box;color:#333;font-size:10px;padding:0 5px}.maplibregl-popup{display:flex;left:0;pointer-events:none;position:absolute;top:0;will-change:transform}.maplibregl-popup-anchor-top,.maplibregl-popup-anchor-top-left,.maplibregl-popup-anchor-top-right{flex-direction:column}.maplibregl-popup-anchor-bottom,.maplibregl-popup-anchor-bottom-left,.maplibregl-popup-anchor-bottom-right{flex-direction:column-reverse}.maplibregl-popup-anchor-left{flex-direction:row}.maplibregl-popup-anchor-right{flex-direction:row-reverse}.maplibregl-popup-tip{border:10px solid transparent;height:0;width:0;z-index:1}.maplibregl-popup-anchor-top .maplibregl-popup-tip{align-self:center;border-bottom-color:#fff;border-top:none}.maplibregl-popup-anchor-top-left .maplibregl-popup-tip{align-self:flex-start;border-bottom-color:#fff;border-left:none;border-top:none}.maplibregl-popup-anchor-top-right .maplibregl-popup-tip{align-self:flex-end;border-bottom-color:#fff;border-right:none;border-top:none}.maplibregl-popup-anchor-bottom .maplibregl-popup-tip{align-self:center;border-bottom:none;border-top-color:#fff}.maplibregl-popup-anchor-bottom-left .maplibregl-popup-tip{align-self:flex-start;border-bottom:none;border-left:none;border-top-color:#fff}.maplibregl-popup-anchor-bottom-right .maplibregl-popup-tip{align-self:flex-end;border-bottom:none;border-right:none;border-top-color:#fff}.maplibregl-popup-anchor-left .maplibregl-popup-tip{align-self:center;border-left:none;border-right-color:#fff}.maplibregl-popup-anchor-right .maplibregl-popup-tip{align-self:center;border-left-color:#fff;border-right:none}.maplibregl-popup-close-button{background-color:transparent;border:0;border-radius:0 3px 0 0;cursor:pointer;position:absolute;right:0;top:0}.maplibregl-popup-close-button:hover{background-color:rgb(0 0 0/5%)}.maplibregl-popup-content{background:#fff;border-radius:3px;box-shadow:0 1px 2px rgba(0, 0, 0, 0.1);padding:15px 10px;pointer-events:auto;position:relative}.maplibregl-popup-anchor-top-left .maplibregl-popup-content{border-top-left-radius:0}.maplibregl-popup-anchor-top-right .maplibregl-popup-content{border-top-right-radius:0}.maplibregl-popup-anchor-bottom-left .maplibregl-popup-content{border-bottom-left-radius:0}.maplibregl-popup-anchor-bottom-right .maplibregl-popup-content{border-bottom-right-radius:0}.maplibregl-popup-track-pointer{display:none}.maplibregl-popup-track-pointer *{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.maplibregl-map:hover .maplibregl-popup-track-pointer{display:flex}.maplibregl-map:active .maplibregl-popup-track-pointer{display:none}.maplibregl-marker{left:0;position:absolute;top:0;transition:opacity .2s;will-change:transform}.maplibregl-user-location-dot,.maplibregl-user-location-dot:before{background-color:#1da1f2;border-radius:50%;height:15px;width:15px}.maplibregl-user-location-dot:before{animation:maplibregl-user-location-dot-pulse 2s infinite;content:””;position:absolute}.maplibregl-user-location-dot:after{border:2px solid #fff;border-radius:50%;box-shadow:0 0 3px rgba(0, 0, 0, 0.35);box-sizing:border-box;content:””;height:19px;left:-2px;position:absolute;top:-2px;width:19px}@keyframes maplibregl-user-location-dot-pulse{0%{opacity:1;transform:scale(1)}70%{opacity:0;transform:scale(3)}to{opacity:0;transform:scale(1)}}.maplibregl-user-location-dot-stale{background-color:#aaa}.maplibregl-user-location-dot-stale:after{display:none}.maplibregl-user-location-accuracy-circle{background-color:rgba(29,161,242,.2);border-radius:100%;height:1px;width:1px}.maplibregl-crosshair,.maplibregl-crosshair .maplibregl-interactive,.maplibregl-crosshair .maplibregl-interactive:active{cursor:crosshair}.maplibregl-boxzoom{background:#fff;border:2px dotted #202020;height:0;left:0;opacity:.5;position:absolute;top:0;width:0}.maplibregl-cooperative-gesture-screen{align-items:center;background:rgba(0, 0, 0, 0.4);color:#fff;display:flex;font-size:1.4em;inset:0;justify-content:center;line-height:1.2;opacity:0;padding:1rem;pointer-events:none;position:absolute;transition:opacity 1s ease 1s;z-index:99999}.maplibregl-cooperative-gesture-screen.maplibregl-show{opacity:1;transition:opacity .05s}.maplibregl-cooperative-gesture-screen .maplibregl-mobile-message{display:none}@media(hover: none),(pointer: coarse){.maplibregl-cooperative-gesture-screen .maplibregl-desktop-message{display:none}.maplibregl-cooperative-gesture-screen .maplibregl-mobile-message{display:block}}.maplibregl-pseudo-fullscreen{height:100% !important;left:0 !important;position:fixed !important;top:0 !important;width:100% !important;z-index:99999}.inno-map{position:relative;width:100%;height:100%;overflow:hidden;pointer-events:none}@media(min-width: 960px){.inno-map{pointer-events:all}}.inno-map__map{width:100%;height:100%}.inno-map__loading{position:absolute;top:50%;left:50%;transform:translate(-50%, -50%)}.maplibregl-ctrl-group{background-color:rgba(0,0,0,0)}@media(max-width: 960px){.maplibregl-ctrl-group{display:none}}.maplibregl-ctrl-group .maplibregl-ctrl-zoom-in,.maplibregl-ctrl-group .maplibregl-ctrl-zoom-out{position:relative;background-color:#222;border:3px solid #fff;border-radius:24px;transition:border .4s ease-in-out}.maplibregl-ctrl-group .maplibregl-ctrl-zoom-in:hover,.maplibregl-ctrl-group .maplibregl-ctrl-zoom-out:hover{border-color:var(–color-accent)}.maplibregl-ctrl-group .maplibregl-ctrl-zoom-in .maplibregl-ctrl-icon,.maplibregl-ctrl-group .maplibregl-ctrl-zoom-out .maplibregl-ctrl-icon{display:none}.maplibregl-ctrl-group .maplibregl-ctrl-zoom-in:before,.maplibregl-ctrl-group .maplibregl-ctrl-zoom-out:before{position:absolute;top:0;left:0;right:0;bottom:0;margin:auto;font-family:”Grot 10″,sans-serif;color:#fff;font-weight:bold;font-size:24px;line-height:1}.maplibregl-ctrl-group .maplibregl-ctrl-zoom-in{border-radius:24px 24px 0 0}.maplibregl-ctrl-group .maplibregl-ctrl-zoom-in:before{content:”+”}.maplibregl-ctrl-group button:focus:first-child{border-radius:24px 24px 0 0}.maplibregl-ctrl-group .maplibregl-ctrl-zoom-out{border-radius:0 0 24px 24px;border-top:none;height:26px}.maplibregl-ctrl-group .maplibregl-ctrl-zoom-out:before{content:”-“;top:-3px}.maplibregl-ctrl-group button:focus:last-child{border-radius:0 0 24px 24px}.inno-note .inno-p{color:var(–color-text-secondary);font-family:”Grot 10″,sans-serif;font-size:14px;-webkit-font-smoothing:antialiased;line-height:1.5}.inno-note .inno-p a{color:var(–color-text-secondary);box-shadow:inset 0 -1px 0 0 var(–color-text-secondary);transition:color .25s ease}.inno-note .inno-p a:hover{color:#004e96;box-shadow:inset 0 -1px 0 0 #004e96}.inno-note .inno-heading{color:var(–color-text-primary);font-family:”Grot 10″,sans-serif;font-size:16px;font-weight:normal;text-transform:none;border-bottom:1px solid var(–color-faint);padding-bottom:4px}.inno-p{-webkit-font-smoothing:subpixel-antialiased;-mox-osx-font-smoothing:grayscale;color:#222;color:var(–color-text-primary);font-family:”Inquirer Text”,”Times New Roman”,serif;font-size:18px;line-height:1.666666;white-space:pre-line;text-wrap:pretty}@media(min-width: 600px){.inno-p{font-size:20px;line-height:1.6}}.inno-p–has-dropcap:first-letter{margin-top:1px;margin-right:12px;margin-bottom:0;margin-left:0;font-family:”Grot12″,sans-serif;font-size:2.4em;padding:.4em;float:left;font-weight:bold;line-height:1;color:var(–color-text-accent);border:3px solid var(–color-faint);border-radius:48px}@-moz-document url-prefix(){.inno-p–has-dropcap:first-letter{margin-top:10px;margin-bottom:0px}}@media(min-width: 600px){.inno-p–has-dropcap:first-letter{font-size:3.3em;padding:.7rem;margin-top:-3px;margin-bottom:-10px}@-moz-document url-prefix(){.inno-p–has-dropcap:first-letter{margin-top:12px;margin-bottom:0px}}}.inno-p a{transition:box-shadow .25s ease;color:var(–color-text-link);text-decoration:none}.inno-p a:hover{box-shadow:inset 0 -1px 0 0 var(–color-text-link)}.inno-p__endmark{display:inline-block;height:1.1em;width:1.1em;margin-left:5px;vertical-align:text-bottom;margin-bottom:2px;fill:var(–color-text-accent)}.inno-premium{padding:19px 26px 22px 8px;color:var(–color-text-primary);font-family:”Grot 10″,sans-serif;font-size:18px;line-height:1;font-weight:normal;background-color:var(–color-background-secondary)}.inno-premium .inno-icon{fill:#f0af13;width:24px;margin-right:7px}.inno-premium__header{display:flex}.inno-premium__hed{font-weight:bold;line-height:22px;font-size:16px;color:var(–color-text-primary);padding:3px 0 4px;font-family:”Grot 10″,sans-serif;text-wrap:pretty}.inno-mode–dark .inno-premium__hed{color:#fff}.inno-premium__message{font-weight:500;line-height:22px;font-size:16px;color:var(–color-text-secondary);font-family:”Grot 10″,sans-serif;margin-left:32px;text-wrap:pretty}.inno-heading{font-family:”Grot12″,sans-serif;text-transform:uppercase;font-weight:600;line-height:1.2;color:var(–color-text-primary);scroll-margin-top:calc(var(–sticky-height) + 16px);text-wrap:balance;font-size:20px}@media(min-width: 768px){.inno-heading{font-size:24px}}.inno-heading–chapter{font-weight:300;border-bottom:1px solid var(–color-text-primary);text-transform:uppercase}.inno-layout–stack>*+.inno-heading{margin-block-start:48px}.inno-layout–stack>.inno-heading:has(+*){margin-block-end:-12px}.inno-layout–stack-tight>*+.inno-heading{margin-block-start:20px}.inno-layout–stack-tight>.inno-heading:has(+*){margin-block-end:-5px}.inno-layout–stack-loose>*+.inno-heading{margin-block-start:60px}.inno-layout–stack-loose>.inno-heading:has(+*){margin-block-end:-15px}.inno-image__img{width:100%;display:block}.inno-steps{margin-top:0}.inno-steps__steps{position:relative;margin-top:-64px;padding-bottom:80vh}@media(min-width: 960px){.inno-steps__steps{margin-top:calc(-100vh + 100px);padding-bottom:calc(100vh – 100px)}.inno-steps__steps:before{content:””;position:absolute;left:0;top:-100px;bottom:0;z-index:2;width:50%;background:linear-gradient(to right, #222222, rgba(34, 34, 34, 0))}}.inno-steps__step{position:relative;z-index:2;-webkit-transform:translate3d(0, 0, 0);margin:90vh auto;padding:12px;background-color:var(–color-background);border:var(–color-faint) 3px solid;overflow:auto;max-width:min(100% – 32px,650px);border-radius:32px;scroll-margin-top:90vh}@media(min-width: 960px){.inno-steps__step{margin:100px auto;scroll-margin-top:100px}}.inno-steps__step:first-of-type{margin-top:0}.inno-steps__step:nth-child(1 of :not(.is-hidden)){margin-top:0}.inno-steps__step:last-of-type{margin-bottom:0}.inno-steps__step.is-hidden{display:none;margin:0}.inno-steps__step.is-active .inno-steps__heading,.inno-steps__step.is-active .inno-steps__body{opacity:1;filter:grayscale(0)}@media(min-width: 960px){.inno-steps__step–left{width:calc(50vw – 32px);margin-left:auto;margin-right:calc(50% + 16px)}}.inno-steps__step .inno-hero__content{background-color:rgba(0,0,0,0);color:var(–color-text-primary)}.inno-steps__step .inno-byline{border-top:0;border-bottom:0;padding:0;margin-block-start:0;text-align:center}.inno-steps__step .inno-byline__content{flex-direction:column}.inno-steps__step .inno-premium{display:none}.inno-steps__step .inno-steps__body+.inno-caption{margin-top:6px}.inno-steps__heading{display:grid;grid-template-columns:72px auto;align-items:center;gap:12px;border-bottom:3px solid #595760;padding-bottom:12px;opacity:.2;filter:grayscale(1);transition:opacity .4s ease-in-out,filter .4s ease-in-out}@media(min-width: 960px){.inno-steps__heading{grid-template-columns:90px auto}}.inno-steps__heading .inno-heading{border:3px solid var(–color-faint);text-align:center;padding:.1em .3em;border-radius:32px;font-size:24px}@media(min-width: 768px){.inno-steps__heading .inno-heading{font-size:36px}}.inno-steps__step–red .inno-steps__heading .inno-heading{background-color:#e11b22}.inno-steps__body{margin-top:12px;opacity:.2;filter:grayscale(1);transition:opacity .4s ease-in-out,filter .4s ease-in-out}.inno-steps__route-name{font-family:”Grot 10″,sans-serif;font-weight:bold;font-size:16px}@media(min-width: 768px){.inno-steps__route-name{font-size:20px}}.inno-steps__content{position:sticky;height:100vh;width:100%;top:0;left:0;right:0;margin:auto;display:flex;align-items:center;justify-content:center;overflow:hidden;isolation:isolate;z-index:1}@supports(height: 100dvh){.inno-steps__content{height:100dvh}}.inno-steps__custom{z-index:1;position:absolute;width:100vw;height:100%;top:0;left:0;right:0;bottom:0;margin:auto;display:flex;align-items:center;justify-content:center}@media(min-width: 960px){.inno-steps__custom–left{width:50%;right:auto}}@media(min-width: 960px){.inno-steps__custom–right{width:50%;left:auto}}.inno-steps__custom:empty{display:none;pointer-events:none}.inno-steps__background{position:absolute;object-fit:cover;inset:0;opacity:0;transition:opacity .4s ease-in-out;z-index:0;background-color:var(–color-background);display:flex;justify-content:center;align-items:center}.inno-steps__background .inno-graphic{width:100%}.inno-steps__background .inno-looping-video,.inno-steps__background .inno-image{width:100%;height:100%}.inno-steps__background .inno-looping-video__video,.inno-steps__background .inno-image__img{height:100%;width:100%;object-position:center;object-fit:cover}.inno-steps__background–contain{background-color:var(–color-background);padding:8px}@media(min-width: 768px){.inno-steps__background–contain{padding:16px}}.inno-steps__background–contain .inno-looping-video__video,.inno-steps__background–contain .inno-image__img{object-fit:contain}.inno-steps__background–left .inno-image__img{object-fit:contain}@media(min-width: 960px){.inno-steps__background–left{width:50%;right:auto}}.inno-steps__background–right .inno-image__img{object-fit:contain}@media(min-width: 960px){.inno-steps__background–right{width:50%;left:auto}}.inno-steps–has-backgrounds[data-index=”-1″] .inno-steps__background–0{opacity:1;z-index:1}.inno-subscribe{display:none;position:relative}.inno-subscribe.is-unsubscribed{display:block}.inno-subscribe.is-preview{display:block}.inno-subscribe.is-dev{display:block}.inno-subscribe.is-dev::before{content:”Non-subscribers only”;display:block;position:absolute;left:-20px;border:1px dashed red;font-size:8px;text-transform:uppercase;padding:5px;font-weight:bold;writing-mode:vertical-lr}.inno-video{width:auto}.inno-video__video{width:100%}.inno-toast{position:fixed;bottom:16px;left:0;right:0;width:max-content;margin:0px auto;z-index:120;display:flex;align-content:center;justify-content:center;text-align:center;font-size:20px;border-radius:5px;background-color:var(–color-text-primary);color:var(–color-background);padding:24px 48px;box-shadow:0 1px 4px rgba(89,87,96,.1),0 3px 6px rgba(89,87,96,.1);translate:0% calc(100% + 18px);transition:translate .4s;opacity:0}.inno-toast b,.inno-toast strong{font-weight:normal}.inno-toast.is-active{translate:0 0;opacity:1}

    On August 23, SEPTA will implement phase one of their new bus network, with changes to 30 lines.

    How Septa’sNew Bus NetworkImpacts you

    You say you want a revolution? That’s not quite what SEPTA’s proposing. This weekend, the region’s transit agency will roll out the first phase of its New Bus Network, the bus system’s first significant update since the agency was formed in the 1960s.

    Sound familiar? Once dubbed Bus Revolution, the project began in 2021 after transit agencies around the country saw massive declines in ridership. SEPTA’s Bus Revolution was set to launch in 2025 but faced significant community pushback and coincided with the state funding crisis that halted many planned transit initiatives. It was officially shelved in November 2024.

    Two years later, a slimmed-down version of the plan has a new name and a new approach. Beginning Sunday, 30 bus routes will see changes ranging from cancellation of lines to altered frequencies. The most impacted areas are South Philadelphia, Kensington/Juniata, the Cheltenham Avenue Corridor, the Lancaster Avenue Corridor, and Roxborough.

    Later phases of the plan, which will roll out in 2027, will impact other neighborhoods. The number of bus routes in SEPTA’s system will drop from the current 124 to 106 when all four phases are complete.

    SEPTA says the changes are needed to modernize the system and make it easier to use.

    To help you navigate the changes that will impact how you navigate the city, we’re here to breakdown down all 30 impacted routes.

    Enter your address to only see routes near you …

    Something has gone wrong. Please try again.
    Loading…

    … or select a route to jump to it.

    Showing routes impacted
    On SEPTA's bus network

    • 4

      Broad-Pattison to Fern Rock Transportation Center

      This route remains the same but with reduced service.

      Days
      Times
      Previous
      Now
      Weekdays
      6 a.m. to 9 p.m.
      Every 16-25 minutes
      Every 30 minutes
      Saturdays
      8 a.m. to 9 p.m.
      Every 22-25 minutes
      Every 30 minutes
    • 6

      Cheltenham-Ogontz to Olney Transportation Center

      On weekdays, route 6 will have increased service during peak hours, but a reduced service otherwise.

      Days
      Times
      Previous
      Now
      Weekdays
      6 a.m. to 9 p.m.
      Every 11-13 minutes
      Every 10 minutes
      Weekdays
      9 p.m. to midnight
      Every 20 minutes
      Every 30 minutes
      Weekdays
      midnight to 4 a.m.
      Every 30-40 minutes
      Every 60 minutes

      SEPTA also rolled out new signage that identifies certain routes as “frequent red”, indicating a bus is scheduled to arrive within 15 minutes or less on weekdays from 6 a.m. to 9 p.m.

    • 17

      Front-Market to 20th-Johnston

      Route 17 will be shortened and no longer operate on its old route from 20th Street and Johnston Street down to the stadium complex or the Navy Yard. SEPTA recommends Navy Yard commuters take route 45 instead.

      This route will also operate with reduced service overnight.

      Days
      Times
      Previous
      Now
      Weekdays
      midnight to 5 a.m.
      Every 30 minutes
      Every 60 minutes

      SEPTA also rolled out new signage that identifies certain routes as “frequent red”, indicating a bus is scheduled to arrive within 15 minutes or less on weekdays from 6 a.m. to 9 p.m.

    • 25

      Frankford Transportation Center to Front-Spring Garden

      Route 25 is essentially being cut in half. The old route ran down Delaware Avenue to Columbus Commons. The new route will terminate at the Spring Garden Market-Frankford Line station. The old route from Spring Garden to Columbus Commons will be serviced by the new route 76.

      Route 25 will now operate for 24 hours a day, as part of SEPTA’s late-night OWL network.

      This route will also have increased service.

      Days
      Times
      Previous
      Now
      Weekdays
      6 a.m. to 9 p.m.
      Every 20-30 minutes
      Every 15 minutes
      Weekends
      6 a.m. to 9 p.m.
      Every 30 minutes
      Every 20 minutes

      SEPTA also rolled out new signage that identifies certain routes as “frequent red”, indicating a bus is scheduled to arrive within 15 minutes or less on weekdays from 6 a.m. to 9 p.m.

    • 32

      Broad-Carpenter to Ridge-Lyceum

      Route 32 will have slightly reduced service with fewer buses overall. All route 32 buses will terminate at Manayunk, as opposed to the previous schedule where half would terminate at 33rd Street and Cecil B. Moore Avenue. There’s also a slight route extension into Roxborough for school service.

    • 35

      Manayunk Roxborough Loop

      Route 35 will be discontinued on Aug. 23. SEPTA recommends riders take route 61.

      According to SEPTA’s operation statistics, route 35 is the seventh most expensive bus based on the average cost per passenger.

    • 39

      Richmond-Cumberland to 33rd-Dauphin

      Route 39 will remain the same but with reduced service on weekdays and slightly increased service on Saturday evenings..

      Days
      Times
      Previous
      Now
      Weekdays
      6 a.m. to 9 p.m.
      Every 20-30 minutes
      Every 30 minutes
      Saturday
      5 p.m. to 9 p.m.
      Every 40-60 minutes
      Every 30 minutes
    • 44

      Front-Market to Ardmore

      Route 44 will no longer run along its old route that would sometimes terminate at Gladwyne. Beginning Aug. 23, all 44 buses will run to Ardmore, with select trips stopping at Narberth.

      This route will also have reduced service.

      Days
      Times
      Previous
      Now
      Weekdays
      9 a.m. to 3 p.m.
      Every 15-30 minutes
      Every 60 minutes
      Weekends
      6 a.m. to midnight
      Every 30 minutes
      Every 60 minutes
    • 45

      Navy Yard/Broad-Oregon to 12th-Noble

      Route 45 will be extended to the Navy Yard to cover for the changes to route 17.

      After 9 p.m. the route will have reduced service on weekdays.

      Days
      Times
      Previous
      Now
      Weekdays
      9 p.m. to midnight
      Every 20 minutes
      Every 30 minutes
    • 46

      58th-Baltimore to 63rd-Malvern

      Route 46 will have increased service on weekdays.

      Days
      Times
      Previous
      Now
      Saturdays
      9 a.m. to 6 p.m.
      Every 20 minutes
      Every 15 minutes
      Sundays
      9 a.m. to 7 p.m.
      Every 30 minutes
      Every 20 minutes

      SEPTA also rolled out new signage that identifies certain routes as “frequent red”, indicating a bus is scheduled to arrive within 15 minutes or less on weekdays from 6 a.m. to 9 p.m.

    • 47

      Whitman Plaza to 5th-Godfrey

      Route 47 will merge with route 47M and have increased service.

      Days
      Times
      Previous
      Now
      Weekdays
      6 a.m. to 9 p.m.
      Every 8-9 minutes
      Every 7-8 minutes
      All days
      Midnight. to 5 a.m.
      Every 45 minutes
      Every 30 minutes

      SEPTA also rolled out new signage that identifies certain routes as “frequent red”, indicating a bus is scheduled to arrive within 15 minutes or less on weekdays from 6 a.m. to 9 p.m.

    • 47M

      Whitman Plaza to 7th-Spring Garden via 9th

      Route 47M has been discontinued and will now be served by a more frequent route 47.

      The merger of these two routes includes a realignment so that the northbound 47 runs on Seventh Street, as opposed to Ninth Street. Southbound buses will still run on Eighth Street.

    • 49

      33rd-Dauphin to 40th-Baltimore

      Route 49 will look very different from its old route. It will no longer serve Gray’s Ferry. SEPTA recommends riders take route 79 instead.

      Route 49 will also operate on many different roads. The most notable change is taking 33rd Street instead of 29th Street. in Strawberry Mansion and Brewerytown.

      These changes are paired with generally reduced service.

      Days
      Times
      Previous
      Now
      Weekdays
      8 a.m. to 3 p.m.
      Every 18-22 minutes
      Every 30 minutes
      Saturdays
      8 a.m. to 9 p.m.
      Every 22 minutes
      Every 30 minutes
      Sundays
      9 a.m. to 7 p.m.
      Every 22 minutes
      Every 30 minutes
    • 52

      49th-Woodland to Wissahickon Transportation Center/50th-Parkside

      Route 52 will no longer follow its old route to Gladwyne. SEPTA cites low ridership and doesn’t offer an alternative route.

      SEPTA also rolled out new signage that identifies certain routes as “frequent red”, indicating a bus is scheduled to arrive within 15 minutes or less on weekdays from 6 a.m. to 9 p.m.

    • 53

      Carpenter Station to Richmond-Westmoreland

      Buses on route 53 will no longer follow the old route that terminated at Sedgwick Street and Wayne Avenue. Instead, service will end at Carpenter Regional Rail station. There are additionally a bunch of small differences across the route. For example, route 53 will now serve Roosevelt Boulevard. on the western side of Hunting Park.

      The 53 will also continue past G Street and extend into Port Richmond.

    • 54

      Richmond-Cambria to 33rd-Dauphin

      Buses on route 54 will have reduced service during weekdays and increased service during evenings.

      Days
      Times
      Previous
      Now
      Weekdays
      9 a.m. to 3 p.m.
      Every 15-18 minutes
      Every 20 minutes
      All days
      9 p.m. to midnight
      Every 45 minutes
      Every 30 minutes
    • 57

      Whitman Plaza to Fern Rock Transportation Center

      The old route 57 occasionally would terminate at Packer Marine Terminal, that service will be discontinued.

      During weekends the route 57 will run at a reduced service.

      Days
      Times
      Previous
      Now
      Weekends
      All day
      Every 10-12 minutes
      Every 15 minutes

      Service along Crescentville and Cheltenham Avenues will be reduced to every hour.

      SEPTA also rolled out new signage that identifies certain routes as “frequent red”, indicating a bus is scheduled to arrive within 15 minutes or less on weekdays from 6 a.m. to 9 p.m.

    • 60

      Wissahickon Transportation Center/35th-Allegheny to Richmond-Westmoreland

      Most of route 60 will continue to go down Allegheny Avenue, but it will not follow its old route where some buses stopped on Delaware Avenue and Lewis Street.

      The 60 will occasionally take an extended route and continue to the Wissahickon Transportation Center. The schedule is roughly split 50:50 whether a bus will continue to this new terminus or stop early at 35th Street and Allegheny Avenue.

      Route 60 will also see increased service.

      Days
      Times
      Previous
      Now
      Weekdays
      6 a.m. to 6 p.m.
      Every 10-15 minutes
      Every 10 minutes

      SEPTA also rolled out new signage that identifies certain routes as “frequent red”, indicating a bus is scheduled to arrive within 15 minutes or less on weekdays from 6 a.m. to 9 p.m.

    • 61

      9th-Market to Ridge-Summit

      Route 61 will be extended to Upper Roxborough. This is primarily to cover for the discontinued route 35.

    • 62

      9th-Market to Andorra

      Route 62 will be discontinued. SEPTA recommends riders take routes 9, 27, or 61 as an alternative. According to SEPTA, route 62 was the fourth most expensive route to operate, costing an average of $45 per passenger.

    • 64

      50th-Parkside to Pier 70

      Previously, route 64 would occasionally terminate at 49th Street and Woodland Avenue. Under the new network, all trips will terminate at Parkside Loop. The 64 will also no longer take the old route’s detour into Grays Ferry.

      Route 64 will operate at a increased service.

      Days
      Times
      Previous
      Now
      All days
      6 a.m. to 9 a.m.
      Every 12-18 minutes
      Every 12 minutes
      All days
      9 a.m. to 9 p.m.
      Every 20 minutes
      Every 15 minutes

      SEPTA also rolled out new signage that identifies certain routes as “frequent red”, indicating a bus is scheduled to arrive within 15 minutes or less on weekdays from 6 a.m. to 9 p.m.

    • 72

      Cedarbrook Plaza to Frankford Transportation Center

      72 is a brand new route that mostly operates on Cheltenham Avenue and will run every 30 minutes.

    • 73

      Frankford Transportation Center to Richmond-Westmoreland

      Route 73 will now run at a reduced service from every 20-25 minutes to every 30 minutes.

      Additionally the route 73 will no longer be part of the OWL network, ending 24-hour service on the line. SEPTA recommends riders take route 25 for overnight buses.

    • 76

      Rising Sun-Olney to Columbus Commons

      Route 76 is a brand new route that will mostly run along Delaware and Frankford Avenues every 30 minutes. This route replaces service removed from the newly aligned route 25.

    • 78

      Express from Cornwells Heights to Center City

      Route 78 will be discontinued due to lower ridership. SEPTA does not recommend an alternative bus.

      According to SEPTA figures, the 78 was the most expensive bus to operate in their network. It has an average of 2.4 passengers per hour, costing the agency $394 per rider.

    • 79

      Columbus Commons to 29th-Snyder/40th-Market

      Route 79 will occasionally be extended into West Philadelphia. Roughly every other bus will continue to 40th and Market Streets, instead of the current terminus of 29th Street and Synder Avenue.

      SEPTA also rolled out new signage that identifies certain routes as “frequent red”, indicating a bus is scheduled to arrive within 15 minutes or less on weekdays from 6 a.m. to 9 p.m.

    • 80

      Express from Horsham to Olney Transit Center

      Route 80 will be discontinued. SEPTA stated that “ridership has declined significantly since 2019 and the same connection can be made with a transfer on local routes 22, 51, and 310.”

      According to SEPTA data, route 80 was the third most expensive route to run, costing the agency $50 per passenger.

    • 89

      Front-Dauphin to Arrott Transit Center

      Route 89 will be discontinued. SEPTA says route 89 is “duplicative of other routes,” and offers “routes 3, 5, 25, 39, 41, 43, 53, 56, 75, 76, and K as alternatives.”

    • 105

      Paoli/Rosemont to 69th Street Transit Center

      Route 105 will extend to Paoli for roughly every other bus, essentially merging with the now discontinued route 106.

      The old route that serviced Suburban Square will no longer operate. There are also minor alignment changes in Overbrook.

      Route 105 will operate at a increased service.

      Days
      Times
      Previous
      Now
      Weekdays
      All day
      Every 30-60 minutes
      Every 30 minutes
      Weekends
      All day
      Every 60 minutes
      Every 30 minutes

      These changes will take effect on Aug. 24.

    • 106

      Paoli to 69th Street Transit Center

      Route 106 will be discontinued on Aug. 24.

    Do you still have questions about the changes to SEPTA’s bus network? Read our Q&A guide for details on how to contact SEPTA, information about future alterations in 2027, and much more.

    Methodology

    The animating buses on the diagram are an approximation of the number of buses active at 9 a.m. on a weekday schedule.

    Old routes are accurate to SEPTA’s bus network on Aug. 4.

    For simplicity, if a route can have different terminuses, we show all possible paths the bus operates on.

    story continues after advertisement

    Staff Contributors

    • Design, Development, and Data: Sam Morris
    • Reporting: Sam Morris and Erica Palan
    • Editing: Cynthia Henry

    Subscribe to The Philadelphia Inquirer

    Our reporting is directly supported by reader subscriptions. If you want more journalism like this story, please subscribe today

    (()=>{var Cr=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports);var Rt=Cr(b=>{var cn={0:”Jan.”,1:”Feb.”,2:”March”,3:”April”,4:”May”,5:”June”,6:”July”,7:”Aug.”,8:”Sept.”,9:”Oct.”,10:”Nov.”,11:”Dec.”};function Dt(e){return e===void 0&&(e=new Date),cn[e.getMonth()]}var fn={0:”Jan”,1:”Feb”,2:”Mar”,3:”Apr”,4:”May”,5:”Jun”,6:”Jul”,7:”Aug”,8:”Sep”,9:”Oct”,10:”Nov”,11:”Dec”};function Ft(e){return e===void 0&&(e=new Date),fn[e.getMonth()]}function U(e){return e==null}function Ut(e){return typeof e==”number”&&isFinite(e)}function me(e){return Ut(e)&&Math.floor(e)===e}var hn=[“one”,”two”,”three”,”four”,”five”,”six”,”seven”,”eight”,”nine”],pn=[“million”,”billion”,”trillion”,”quadrillion”,”quintillion”,”sextillion”,”septillion”,”octillion”,”nonillion”,”decillion”],kt=[“th”,”st”,”nd”,”rd”,”th”,”th”,”th”,”th”,”th”,”th”],mn=[11,12,13];function It(e){if(U(e))return””;var t=+e;return me(t)?mn.indexOf(t%100)>-1?kt[0]:kt[t%10]:””}var dn=[“first”,”second”,”third”,”fourth”,”fifth”,”sixth”,”seventh”,”eighth”,”ninth”],vn=new RegExp(/s+([^s]*)s*$/);b.apdate=function(e){return e===void 0&&(e=new Date),Dt(e)+” “+e.getDate()+”, “+e.getFullYear()},b.apdatetab=function(e){return e===void 0&&(e=new Date),Ft(e)+” “+e.getDate()+”, “+e.getFullYear()},b.apmonth=Dt,b.apmonthtab=Ft,b.apnumber=function(e){if(U(e))return””;var t=+e;return me(t)?t=10?e.toString():hn[t-1]:e.toString()},b.aptime=function(e){e===void 0&&(e=new Date);var t,r,n=e.getHours(),i=e.getMinutes(),o=i===0;if(o){if(n===0)return”midnight”;if(n===12)return”noon”}return n0?n:12):(t=”p.m.”,r=n===12?n:n-12),o?r+” “+t:r+”:”+(i<10?"0"+i:i)+" "+t},b.capfirst=function(e){if(U(e))return"";var t=String(e);return""+t.charAt(0).toUpperCase()+t.slice(1)},b.intcomma=function(e){if(U(e))return"";var t,r=+e;return Ut(r)?((t=r.toString().split("."))[0]=t[0].replace(/B(?=(d{3})+(?!d))/g,","),t.join(".")):e.toString()},b.intword=function(e){if(U(e))return"";var t=+e;if(!me(t))return e.toString();var r=Math.abs(t);if(r<1e6)return e.toString();var n=Math.ceil(Math.log(r+1)/Math.LN10)-1,i=n-n%3,o=t/Math.pow(10,i);return(o=Math.round(10*o)/10)+" "+pn[Math.floor(i/3)-2]},b.ordinal=function(e,t){if(t===void 0&&(t=!1),U(e))return"";var r=+e;return me(r)?t&&r{},ct={init:()=>{zr()}};var qr=e=>{document.querySelectorAll(“.js-route”).forEach(t=>{e&&!e.includes(t.dataset.id)?t.classList.add(“is-hidden”):t.classList.remove(“is-hidden”)})},V={update:qr};var fe,Dr=(e,t)=>{fe=fe||window.PMNdataLayer,fe?fe.push({event:”misc_event”,eventAction:e,eventLabel:t}):window.location.hostname.includes(“localhost”)?console.log(“Analytics event:”,e,t,”(not actually being sent due to localhost)”):console.log(“Failed to push analytics event”,e,t)},Fe={event:(e,t)=>{Dr(e,t)}};var E=Uint8Array,J=Uint16Array,Fr=Int32Array,ft=new E([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,0,0,0]),ht=new E([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,0,0]),kr=new E([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),pt=function(e,t){for(var r=new J(31),n=0;n<31;++n)r[n]=t+=1<<e[n-1];for(var i=new Fr(r[30]),n=1;n<30;++n)for(var o=r[n];o<r[n+1];++o)i[o]=o-r[n]<<5|n;return{b:r,r:i}},mt=pt(ft,2),dt=mt.b,Ir=mt.r;dt[28]=258,Ir[258]=28;var vt=pt(ht,0),Ur=vt.b,di=vt.r,Ue=new J(32768);for(p=0;p>1|(p&21845)<>2|(k&13107)<>4|(k&3855)<>8|(k&255)<>1;var k,p,te=function(e,t,r){for(var n=e.length,i=0,o=new J(t);i<n;++i)e[i]&&++o[e[i]-1];var s=new J(t);for(i=1;i<t;++i)s[i]=s[i-1]+o[i-1]<<1;var a;if(r){a=new J(1<<t);var l=15-t;for(i=0;i<n;++i)if(e[i])for(var u=i<<4|e[i],f=t-e[i],c=s[e[i]-1]++<<f,h=c|(1<<f)-1;c>l]=u}else for(a=new J(n),i=0;i>15-e[i]);return a},re=new E(288);for(p=0;p<144;++p)re[p]=8;var p;for(p=144;p<256;++p)re[p]=9;var p;for(p=256;p<280;++p)re[p]=7;var p;for(p=280;p<288;++p)re[p]=8;var p,gt=new E(32);for(p=0;p<32;++p)gt[p]=5;var p;var Rr=te(re,9,1);var Br=te(gt,5,1),ke=function(e){for(var t=e[0],r=1;rt&&(t=e[r]);return t},D=function(e,t,r){var n=t/8|0;return(e[n]|e[n+1]<>(t&7)&r},Ie=function(e,t){var r=t/8|0;return(e[r]|e[r+1]<<8|e[r+2]<>(t&7)},Or=function(e){return(e+7)/8|0},Hr=function(e,t,r){return(t==null||te.length)&&(r=e.length),new E(e.subarray(t,r))};var $r=[“unexpected EOF”,”invalid block type”,”invalid length/literal”,”invalid distance”,”stream finished”,”no stream handler”,,”no callback”,”invalid UTF-8 data”,”extra field too long”,”date not in range 1980-2099″,”filename too long”,”stream finishing”,”invalid zip data”],M=function(e,t,r){var n=new Error(t||$r[e]);if(n.code=e,Error.captureStackTrace&&Error.captureStackTrace(n,M),!r)throw n;return n},Re=function(e,t,r,n){var i=e.length,o=n?n.length:0;if(!i||t.f&&!t.l)return r||new E(0);var s=!r,a=s||t.i!=2,l=t.i;s&&(r=new E(i*3));var u=function(at){var lt=r.length;if(at>lt){var ut=new E(Math.max(lt*2,at));ut.set(r),r=ut}},f=t.f||0,c=t.p||0,h=t.b||0,v=t.l,x=t.d,d=t.m,F=t.n,z=i*8;do{if(!v){f=D(e,c,1);var H=D(e,c+1,3);if(c+=3,H)if(H==1)v=Rr,x=Br,d=9,F=5;else if(H==2){var Pe=D(e,c,31)+257,_e=D(e,c+10,15)+4,et=Pe+D(e,c+5,31)+1;c+=14;for(var _=new E(et),Ce=new E(19),P=0;P<_e;++P)Ce[kr[P]]=D(e,c+P*3,7);c+=_e*3;for(var tt=ke(Ce),Er=(1<<tt)-1,Lr=te(Ce,tt,1),P=0;P>4;if(g<16)_[P++]=g;else{var Z=0,ce=0;for(g==16?(ce=3+D(e,c,3),c+=2,Z=_[P-1]):g==17?(ce=3+D(e,c,7),c+=3):g==18&&(ce=11+D(e,c,127),c+=7);ce–;)_[P++]=Z}}var nt=_.subarray(0,Pe),I=_.subarray(Pe);d=ke(nt),F=ke(I),v=te(nt,d,1),x=te(I,F,1)}else M(1);else{var g=Or(c)+4,q=e[g-4]|e[g-3]<i){l&&M(0);break}a&&u(h+q),r.set(e.subarray(g,T),h),t.b=h+=q,t.p=c=T*8,t.f=f;continue}if(c>z){l&&M(0);break}}a&&u(h+131072);for(var Ar=(1<<d)-1,Tr=(1<>4;if(c+=Z&15,c>z){l&&M(0);break}if(Z||M(2),W264){var P=W-257,ee=ft[P];it=D(e,c,(1<>4;qe||M(3),c+=qe&15;var I=Ur[De];if(De>3){var ee=ht[De];I+=Ie(e,c)&(1<z){l&&M(0);break}a&&u(h+131072);var ot=h+it;if(h<I){var st=o-I,Pr=Math.min(I,ot);for(st+h<0&&M(3);h<Pr;++h)r[h]=n[st+h]}for(;h<ot;++h)r[h]=r[h-I]}}t.l=v,t.p=ze,t.b=h,t.f=f,v&&(f=1,t.m=d,t.d=x,t.n=F)}while(!f);return h!=r.length&&s?Hr(r,0,h):r.subarray(0,h)};var jr=new E(0);var Gr=function(e){(e[0]!=31||e[1]!=139||e[2]!=8)&&M(6,"invalid gzip data");var t=e[3],r=10;t&4&&(r+=(e[10]|e[11]<>3&1)+(t>>4&1);n>0;n-=!e[r++]);return r+(t&2)},Nr=function(e){var t=e.length;return(e[t-4]|e[t-3]<<8|e[t-2]<<16|e[t-1]<>>0};var Zr=function(e,t){return((e[0]&15)!=8||e[0]>>4>7||(e[0]<>5&1)==+!t&&M(6,”invalid zlib data: “+(e[1]&32?”need”:”unexpected”)+” dictionary”),(e[1]>>3&4)+2};function Wr(e,t){return Re(e,{i:2},t&&t.out,t&&t.dictionary)}function Vr(e,t){var r=Gr(e);return r+8>e.length&&M(6,”invalid gzip data”),Re(e.subarray(r,-8),{i:2},t&&t.out||new E(Nr(e)),t&&t.dictionary)}function Jr(e,t){return Re(e.subarray(Zr(e,t&&t.dictionary),-4),{i:2},t&&t.out,t&&t.dictionary)}function yt(e,t){return e[0]==31&&e[1]==139&&e[2]==8?Vr(e,t):(e[0]&15)!=8||e[0]>>4>7||(e[0]<<8|e[1])%31?Wr(e,t):Jr(e,t)}var Kr=typeof TextDecoderXr(e,”name”,{value:t,configurable:!0}),w=(e,t,r)=>new Promise((n,i)=>{var o=l=>{try{a(r.next(l))}catch(u){i(u)}},s=l=>{try{a(r.throw(l))}catch(u){i(u)}},a=l=>l.done?n(l.value):Promise.resolve(l.value).then(o,s);a((r=r.apply(e,t)).next())}),yi=m((e,t)=>{let r=!1,n=””,i=L.GridLayer.extend({createTile:m((o,s)=>{let a=document.createElement(“img”),l=new AbortController,u=l.signal;return a.cancel=()=>{l.abort()},r||(e.getHeader().then(f=>{f.tileType===1?console.error(“Error: archive contains MVT vector tiles, but leafletRasterLayer is for displaying raster tiles. See https://github.com/protomaps/PMTiles/tree/main/js for details.”):f.tileType===2?n=”image/png”:f.tileType===3?n=”image/jpeg”:f.tileType===4?n=”image/webp”:f.tileType===5&&(n=”image/avif”)}),r=!0),e.getZxy(o.z,o.x,o.y,u).then(f=>{if(f){let c=new Blob([f.data],{type:n}),h=window.URL.createObjectURL(c);a.src=h,a.cancel=void 0,s(void 0,a)}}).catch(f=>{if(f.name!==”AbortError”)throw f}),a},”createTile”),_removeTile:m(function(o){let s=this._tiles[o];s&&(s.el.cancel&&s.el.cancel(),s.el.width=0,s.el.height=0,s.el.deleted=!0,L.DomUtil.remove(s.el),delete this._tiles[o],this.fire(“tileunload”,{tile:s.el,coords:this._keyToTileCoords(o)}))},”_removeTile”)});return new i(t)},”leafletRasterLayer”),Qr=m(e=>(t,r)=>{if(r instanceof AbortController)return e(t,r);let n=new AbortController;return e(t,n).then(i=>r(void 0,i.data,i.cacheControl||””,i.expires||””),i=>r(i)).catch(i=>r(i)),{cancel:m(()=>n.abort(),”cancel”)}},”v3compat”),wt=class{constructor(t){this.tilev4=m((r,n)=>w(this,null,function*(){if(r.type===”json”){let v=r.url.substr(10),x=this.tiles.get(v);if(x||(x=new he(v),this.tiles.set(v,x)),this.metadata)return{data:yield x.getTileJson(r.url)};let d=yield x.getHeader();return(d.minLon>=d.maxLon||d.minLat>=d.maxLat)&&console.error(`Bounds of PMTiles archive ${d.minLon},${d.minLat},${d.maxLon},${d.maxLat} are not valid.`),{data:{tiles:[`${r.url}/{z}/{x}/{y}`],minzoom:d.minZoom,maxzoom:d.maxZoom,bounds:[d.minLon,d.minLat,d.maxLon,d.maxLat]}}}let i=new RegExp(/pmtiles://(.+)/(d+)/(d+)/(d+)/),o=r.url.match(i);if(!o)throw new Error(“Invalid PMTiles protocol URL”);let s=o[1],a=this.tiles.get(s);a||(a=new he(s),this.tiles.set(s,a));let l=o[2],u=o[3],f=o[4],c=yield a.getHeader(),h=yield a?.getZxy(+l,+u,+f,n.signal);if(h)return{data:new Uint8Array(h.data),cacheControl:h.cacheControl,expires:h.expires};if(c.tileType===1){if(this.errorOnMissingTile)throw new Error(“Tile not found.”);return{data:new Uint8Array}}return{data:null}}),”tilev4″),this.tile=Qr(this.tilev4),this.tiles=new Map,this.metadata=t?.metadata||!1,this.errorOnMissingTile=t?.errorOnMissingTile||!1}add(t){this.tiles.set(t.source.getKey(),t)}get(t){return this.tiles.get(t)}};m(wt,”Protocol”);var xt=wt;function bt(e,t){return(t>>>0)*4294967296+(e>>>0)}m(bt,”toNum”);function St(e,t){let r=t.buf,n=r[t.pos++],i=(n&112)>>4;if(n<128||(n=r[t.pos++],i|=(n&127)<<3,n<128)||(n=r[t.pos++],i|=(n&127)<<10,n<128)||(n=r[t.pos++],i|=(n&127)<<17,n<128)||(n=r[t.pos++],i|=(n&127)<<24,n<128)||(n=r[t.pos++],i|=(n&1)<<31,n<128))return bt(e,i);throw new Error("Expected varint not more than 10 bytes")}m(St,"readVarintRemainder");function K(e){let t=e.buf,r=t[e.pos++],n=r&127;return r<128||(r=t[e.pos++],n|=(r&127)<<7,r<128)||(r=t[e.pos++],n|=(r&127)<<14,r<128)||(r=t[e.pos++],n|=(r&127)<<21,r<128)?n:(r=t[e.pos],n|=(r&15)<<28,St(n,e))}m(K,"readVarint");function Oe(e,t,r,n){if(n===0){r===1&&(t[0]=e-1-t[0],t[1]=e-1-t[1]);let i=t[0];t[0]=t[1],t[1]=i}}m(Oe,"rotate");function Mt(e,t){let r=ne(2,e),n=t,i=t,o=t,s=[0,0],a=1;for(;a26)throw new Error(“Tile zoom level exceeds max safe number limit (26)”);if(t>ne(2,e)-1||r>ne(2,e)-1)throw new Error(“tile x/y outside zoom level bounds”);let n=_r[e],i=ne(2,e),o=0,s=0,a=0,l=[t,r],u=i/2;for(;u>0;)o=(l[0]&u)>0?1:0,s=(l[1]&u)>0?1:0,a+=u*u*(3*o^s),Oe(u,l,o,s),u=u/2;return n+a}m(Et,”zxyToTileId”);function en(e){let t=0,r=0;for(let n=0;n<27;n++){let i=(1<<n)*(1<e)return Mt(n,e-t);t+=i}throw new Error(“Tile zoom level exceeds max safe number limit (26)”)}m(en,”tileIdToZxy”);var tn=(e=>(e[e.Unknown=0]=”Unknown”,e[e.None=1]=”None”,e[e.Gzip=2]=”Gzip”,e[e.Brotli=3]=”Brotli”,e[e.Zstd=4]=”Zstd”,e))(tn||{});function pe(e,t){return w(this,null,function*(){if(t===1||t===0)return e;if(t===2){if(typeof globalThis.DecompressionStream>”u”)return yt(new Uint8Array(e));let r=new Response(e).body;if(!r)throw new Error(“Failed to read response stream”);let n=r.pipeThrough(new globalThis.DecompressionStream(“gzip”));return new Response(n).arrayBuffer()}throw new Error(“Compression method not supported”)})}m(pe,”defaultDecompress”);var rn=(e=>(e[e.Unknown=0]=”Unknown”,e[e.Mvt=1]=”Mvt”,e[e.Png=2]=”Png”,e[e.Jpeg=3]=”Jpeg”,e[e.Webp=4]=”Webp”,e[e.Avif=5]=”Avif”,e))(rn||{});function Lt(e){return e===1?”.mvt”:e===2?”.png”:e===3?”.jpg”:e===4?”.webp”:e===5?”.avif”:””}m(Lt,”tileTypeExt”);var nn=127;function At(e,t){let r=0,n=e.length-1;for(;r>1,o=t-e[i].tileId;if(o>0)r=i+1;else if(o=0&&(e[n].runLength===0||t-e[n].tileId-1,o=/Chrome|Chromium|Edg|OPR|Brave/.test(n);this.chromeWindowsNoCache=!1,i&&o&&(this.chromeWindowsNoCache=!0)}getKey(){return this.url}setHeaders(t){this.customHeaders=t}getBytes(t,r,n,i){return w(this,null,function*(){let o,s;n?s=n:(o=new AbortController,s=o.signal);let a=new Headers(this.customHeaders);a.set(“range”,`bytes=${t}-${t+r-1}`);let l;this.mustReload?l=”reload”:this.chromeWindowsNoCache&&(l=”no-store”);let u=yield fetch(this.url,{signal:s,cache:l,headers:a});if(t===0&&u.status===416){let h=u.headers.get(“Content-Range”);if(!h||!h.startsWith(“bytes */”))throw new Error(“Missing content-length on 416 response”);let v=+h.substr(8);u=yield fetch(this.url,{signal:s,cache:”reload”,headers:{range:`bytes=0-${v-1}`}})}let f=u.headers.get(“Etag”);if(f!=null&&f.startsWith(“W/”)&&(f=null),u.status===416||i&&f&&f!==i)throw this.mustReload=!0,new Be(`Server returned non-matching ETag ${i} after one retry. Check browser extensions and servers for issues that may affect correct ETag headers.`);if(u.status>=300)throw new Error(`Bad response code: ${u.status}`);let c=u.headers.get(“Content-Length”);if(u.status===200&&(!c||+c>r))throw o&&o.abort(),new Error(“Server returned no content-length header or content-length exceeding request. Check that your storage backend supports HTTP Byte Serving.”);return{data:yield u.arrayBuffer(),etag:f||void 0,cacheControl:u.headers.get(“Cache-Control”)||void 0,expires:u.headers.get(“Expires”)||void 0}})}};m(Tt,”FetchSource”);var sn=Tt;function C(e,t){let r=e.getUint32(t+4,!0),n=e.getUint32(t+0,!0);return r*ne(2,32)+n}m(C,”getUint64″);function Pt(e,t){let r=new DataView(e),n=r.getUint8(7);if(n>3)throw new Error(`Archive is spec version ${n} but this library supports up to spec version 3`);return{specVersion:n,rootDirectoryOffset:C(r,8),rootDirectoryLength:C(r,16),jsonMetadataOffset:C(r,24),jsonMetadataLength:C(r,32),leafDirectoryOffset:C(r,40),leafDirectoryLength:C(r,48),tileDataOffset:C(r,56),tileDataLength:C(r,64),numAddressedTiles:C(r,72),numTileEntries:C(r,80),numTileContents:C(r,88),clustered:r.getUint8(96)===1,internalCompression:r.getUint8(97),tileCompression:r.getUint8(98),tileType:r.getUint8(99),minZoom:r.getUint8(100),maxZoom:r.getUint8(101),minLon:r.getInt32(102,!0)/1e7,minLat:r.getInt32(106,!0)/1e7,maxLon:r.getInt32(110,!0)/1e7,maxLat:r.getInt32(114,!0)/1e7,centerZoom:r.getUint8(118),centerLon:r.getInt32(119,!0)/1e7,centerLat:r.getInt32(123,!0)/1e7,etag:t}}m(Pt,”bytesToHeader”);function He(e){let t={buf:new Uint8Array(e),pos:0},r=K(t),n=[],i=0;for(let o=0;o<r;o++){let s=K(t);n.push({tileId:i+s,offset:0,length:0,runLength:1}),i+=s}for(let o=0;o<r;o++)n[o].runLength=K(t);for(let o=0;o<r;o++)n[o].length=K(t);for(let o=0;o0?n[o].offset=n[o-1].offset+n[o-1].length:n[o].offset=s-1}return n}m(He,”deserializeIndex”);var Ct=class extends Error{};m(Ct,”EtagMismatch”);var Be=Ct;function $e(e,t){return w(this,null,function*(){let r=yield e.getBytes(0,16384);if(new DataView(r.data).getUint16(0,!0)!==19792)throw new Error(“Wrong magic number for PMTiles archive”);let n=r.data.slice(0,nn),i=Pt(n,r.etag),o=r.data.slice(i.rootDirectoryOffset,i.rootDirectoryOffset+i.rootDirectoryLength),s=`${e.getKey()}|${i.etag||””}|${i.rootDirectoryOffset}|${i.rootDirectoryLength}`,a=He(yield t(o,i.internalCompression));return[i,[s,a.length,a]]})}m($e,”getHeaderAndRoot”);function je(e,t,r,n,i){return w(this,null,function*(){let o=yield e.getBytes(r,n,void 0,i.etag),s=yield t(o.data,i.internalCompression),a=He(s);if(a.length===0)throw new Error(“Empty directory is invalid”);return a})}m(je,”getDirectory”);var an=class{constructor(t=100,r=!0,n=pe){this.cache=new Map,this.maxCacheEntries=t,this.counter=1,this.decompress=n}getHeader(t){return w(this,null,function*(){let r=t.getKey(),n=this.cache.get(r);if(n)return n.lastUsed=this.counter++,n.data;let i=yield $e(t,this.decompress);return i[1]&&this.cache.set(i[1][0],{lastUsed:this.counter++,data:i[1][2]}),this.cache.set(r,{lastUsed:this.counter++,data:i[0]}),this.prune(),i[0]})}getDirectory(t,r,n,i){return w(this,null,function*(){let o=`${t.getKey()}|${i.etag||””}|${r}|${n}`,s=this.cache.get(o);if(s)return s.lastUsed=this.counter++,s.data;let a=yield je(t,this.decompress,r,n,i);return this.cache.set(o,{lastUsed:this.counter++,data:a}),this.prune(),a})}prune(){if(this.cache.size>this.maxCacheEntries){let t=1/0,r;this.cache.forEach((n,i)=>{n.lastUsed{$e(t,this.decompress).then(a=>{a[1]&&this.cache.set(a[1][0],{lastUsed:this.counter++,data:Promise.resolve(a[1][2])}),o(a[0]),this.prune()}).catch(a=>{s(a)})});return this.cache.set(r,{lastUsed:this.counter++,data:i}),i})}getDirectory(t,r,n,i){return w(this,null,function*(){let o=`${t.getKey()}|${i.etag||””}|${r}|${n}`,s=this.cache.get(o);if(s)return s.lastUsed=this.counter++,yield s.data;let a=new Promise((l,u)=>{je(t,this.decompress,r,n,i).then(f=>{l(f),this.prune()}).catch(f=>{u(f)})});return this.cache.set(o,{lastUsed:this.counter++,data:a}),a})}prune(){if(this.cache.size>=this.maxCacheEntries){let t=1/0,r;this.cache.forEach((n,i)=>{n.lastUsed{this.getHeader(t).then(s=>{i(),this.invalidations.delete(r)}).catch(s=>{o(s)})});this.invalidations.set(r,n)})}};m(zt,”SharedPromiseCache”);var ln=zt,qt=class{constructor(t,r,n){typeof t==”string”?this.source=new sn(t):this.source=t,n?this.decompress=n:this.decompress=pe,r?this.cache=r:this.cache=new ln}getHeader(){return w(this,null,function*(){return yield this.cache.getHeader(this.source)})}getZxyAttempt(t,r,n,i){return w(this,null,function*(){let o=Et(t,r,n),s=yield this.cache.getHeader(this.source);if(ts.maxZoom)return;let a=s.rootDirectoryOffset,l=s.rootDirectoryLength;for(let u=0;u0){let h=yield this.source.getBytes(s.tileDataOffset+c.offset,c.length,i,s.etag);return{data:yield this.decompress(h.data,s.tileCompression),cacheControl:h.cacheControl,expires:h.expires}}a=s.leafDirectoryOffset+c.offset,l=c.length}else return}throw new Error(“Maximum directory depth exceeded”)})}getZxy(t,r,n,i){return w(this,null,function*(){try{return yield this.getZxyAttempt(t,r,n,i)}catch(o){if(o instanceof Be)return this.cache.invalidate(this.source),yield this.getZxyAttempt(t,r,n,i);throw o}})}getMetadataAttempt(){return w(this,null,function*(){let t=yield this.cache.getHeader(this.source),r=yield this.source.getBytes(t.jsonMetadataOffset,t.jsonMetadataLength,void 0,t.etag),n=yield this.decompress(r.data,t.internalCompression),i=new TextDecoder(“utf-8″);return JSON.parse(i.decode(n))})}getMetadata(){return w(this,null,function*(){try{return yield this.getMetadataAttempt()}catch(t){if(t instanceof Be)return this.cache.invalidate(this.source),yield this.getMetadataAttempt();throw t}})}getTileJson(t){return w(this,null,function*(){let r=yield this.getHeader(),n=yield this.getMetadata(),i=Lt(r.tileType);return{tilejson:”3.0.0″,scheme:”xyz”,tiles:[`${t}/{z}/{x}/{y}${i}`],vector_layers:n.vector_layers,attribution:n.attribution,description:n.description,name:n.name,version:n.version,bounds:[r.minLon,r.minLat,r.maxLon,r.maxLat],center:[r.centerLon,r.centerLat,r.centerZoom],minzoom:r.minZoom,maxzoom:r.maxZoom}})}};m(qt,”PMTiles”);var he=qt;var Ti=Rt();var Bt=()=>/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);var ie=(e,t=null,r=null)=>{r||(r=document.querySelector(“head”));let n=document.createElement(“script”);n.type=”text/javascript”,n.src=e,t&&(n.onload=t),r.appendChild(n)},de=()=>(window.PMNdataLayer?.[0]!==void 0&&window.PMNdataLayer[0])?.analytics?.user?.state===”Subscribed”,ve=()=>{let t=(window.PMNdataLayer?.[0]!==void 0&&window.PMNdataLayer[0])?.analytics?.user?.state;return window.location.host.includes(“zzz-systest”)||window.location.host.includes(“pmn.arcpublishing.com”)||window.location.host.includes(“stage.fusion.inquirer.com”)||typeof t>”u”},Ot=()=>{let t=(window.PMNdataLayer?.[0]!==void 0&&window.PMNdataLayer[0])?.analytics?.user?.hasAdsFreeReading;return!!(t&&t==1)},oe=()=>window.location.host.includes(“localhost”);var gn=e=>{(e&&e.querySelector(“.js-loading”))?.setAttribute(“data-state”,”ready”)},yn=e=>{(e&&e.querySelector(“.js-loading”))?.setAttribute(“data-state”,”loading”)},wn=(e,t)=>{(e&&e.querySelector(“.js-loading”))?.setAttribute(“data-state”,”error”),t&&targetModalErrorEl&&(targetModalErrorEl.textContent=t)},ge={stop:e=>gn(e),start:e=>yn(e),error:(e,t)=>wn(e,t)};var A=63710088e-1,$t={centimeters:A*100,centimetres:A*100,degrees:360/(2*Math.PI),feet:A*3.28084,inches:A*39.37,kilometers:A/1e3,kilometres:A/1e3,meters:A,metres:A,miles:A/1609.344,millimeters:A*1e3,millimetres:A*1e3,nauticalmiles:A/1852,radians:1,yards:A*1.0936};function Y(e,t,r={}){let n={type:”Feature”};return(r.id===0||r.id)&&(n.id=r.id),r.bbox&&(n.bbox=r.bbox),n.properties=t||{},n.geometry=e,n}function R(e,t,r={}){if(!e)throw new Error(“coordinates is required”);if(!Array.isArray(e))throw new Error(“coordinates must be an Array”);if(e.length<2)throw new Error("coordinates must be at least 2 numbers long");if(!Ht(e[0])||!Ht(e[1]))throw new Error("coordinates must contain numbers");return Y({type:"Point",coordinates:e},t,r)}function jt(e,t,r={}){for(let i of e){if(i.length<4)throw new Error("Each LinearRing of a Polygon must have 4 or more Positions.");if(i[i.length-1].length!==i[0].length)throw new Error("First and last Position are not equivalent.");for(let o=0;o<i[i.length-1].length;o++)if(i[i.length-1][o]!==i[0][o])throw new Error("First and last Position are not equivalent.")}return Y({type:"Polygon",coordinates:e},t,r)}function Gt(e,t,r={}){if(e.length=2&&!Array.isArray(e[0])&&!Array.isArray(e[1]))return[…e];throw new Error(“coord must be GeoJSON Point or an Array of numbers”)}function Wt(e){return e.type===”Feature”?e.geometry:e}function Ne(e,t,r={}){if(r.final===!0)return xn(e,t);let n=B(e),i=B(t),o=S(n[0]),s=S(i[0]),a=S(n[1]),l=S(i[1]),u=Math.sin(s-o)*Math.cos(l),f=Math.cos(a)*Math.sin(l)-Math.sin(a)*Math.cos(l)*Math.cos(s-o);return se(Math.atan2(u,f))}function xn(e,t){let r=Ne(t,e);return r=(r+180)%360,r}function ye(e,t,r,n={}){let i=B(e),o=S(i[0]),s=S(i[1]),a=S(r),l=Zt(t,n.units),u=Math.asin(Math.sin(s)*Math.cos(l)+Math.cos(s)*Math.sin(l)*Math.cos(a)),f=o+Math.atan2(Math.sin(a)*Math.sin(l)*Math.cos(s),Math.cos(l)-Math.sin(s)*Math.sin(u)),c=se(f),h=se(u);return i[2]!==void 0?R([c,h,i[2]],n.properties):R([c,h],n.properties)}function Vt(e,t,r={}){var n=B(e),i=B(t),o=S(i[1]-n[1]),s=S(i[0]-n[0]),a=S(n[1]),l=S(i[1]),u=Math.pow(Math.sin(o/2),2)+Math.pow(Math.sin(s/2),2)*Math.cos(a)*Math.cos(l);return Nt(2*Math.atan2(Math.sqrt(u),Math.sqrt(1-u)),r.units)}function Ze(e,t,r={}){let i=Wt(e).coordinates,o=0;for(let s=0;s=o&&s===i.length-1);s++)if(o>=t){let a=t-o;if(a){let l=Ne(i[s],i[s-1])-180;return ye(i[s],a,l,r)}else return R(i[s])}else o+=Vt(i[s],i[s+1],r);return R(i[i.length-1])}function We(e,t,r){if(e!==null)for(var n,i,o,s,a,l,u,f=0,c=0,h,v=e.type,x=v===”FeatureCollection”,d=v===”Feature”,F=x?e.features.length:1,z=0;z<F;z++){u=x?e.features[z].geometry:d?e.geometry:e,h=u?u.type==="GeometryCollection":!1,a=h?u.geometries.length:1;for(var H=0;H<a;H++){var g=0,q=0;if(s=h?u.geometries[H]:u,s!==null){l=s.coordinates;var T=s.type;switch(f=r&&(T==="Polygon"||T==="MultiPolygon")?1:0,T){case null:break;case"Point":if(t(l,c,z,g,q)===!1)return!1;c++,g++;break;case"LineString":case"MultiPoint":for(n=0;n<l.length;n++){if(t(l[n],c,z,g,q)===!1)return!1;c++,T==="MultiPoint"&&g++}T==="LineString"&&g++;break;case"Polygon":case"MultiLineString":for(n=0;n<l.length;n++){for(i=0;i<l[n].length-f;i++){if(t(l[n][i],c,z,g,q)===!1)return!1;c++}T==="MultiLineString"&&g++,T==="Polygon"&&q++}T==="Polygon"&&g++;break;case"MultiPolygon":for(n=0;n<l.length;n++){for(q=0,i=0;i<l[n].length;i++){for(o=0;o<l[n][i].length-f;o++){if(t(l[n][i][o],c,z,g,q)===!1)return!1;c++}q++}g++}break;case"GeometryCollection":for(n=0;n{r[0]>n[0]&&(r[0]=n[0]),r[1]>n[1]&&(r[1]=n[1]),r[2]<n[0]&&(r[2]=n[0]),r[3]0)for(let n=(this.length>>1)-1;n>=0;n–)this._down(n)}push(t){this.data.push(t),this.length++,this._up(this.length-1)}pop(){if(this.length===0)return;let t=this.data[0],r=this.data.pop();return this.length–,this.length>0&&(this.data[0]=r,this._down(0)),t}peek(){return this.data[0]}_up(t){let{data:r,compare:n}=this,i=r[t];for(;t>0;){let o=t-1>>1,s=r[o];if(n(i,s)>=0)break;r[t]=s,t=o}r[t]=i}_down(t){let{data:r,compare:n}=this,i=this.length>>1,o=r[t];for(;t<i;){let s=(t<<1)+1,a=r[s],l=s+1;if(l<this.length&&n(r[l],a)=0)break;r[t]=a,t=s}r[t]=o}};function bn(e,t){return et?1:0}function Kt(e,t){return e.p.x>t.p.x?1:e.p.xt.p.y?1:-1:1}function Sn(e,t){return e.rightSweepEvent.p.x>t.rightSweepEvent.p.x?1:e.rightSweepEvent.p.x<t.rightSweepEvent.p.x?-1:e.rightSweepEvent.p.y!==t.rightSweepEvent.p.y?e.rightSweepEvent.p.y<t.rightSweepEvent.p.y?1:-1:1}var Me=class{constructor(t,r,n,i){this.p={x:t[0],y:t[1]},this.featureId=r,this.ringId=n,this.eventId=i,this.otherEvent=null,this.isLeftEndpoint=null}isSamePoint(t){return this.p.x===t.p.x&&this.p.y===t.p.y}};function Mn(e,t){if(e.type==="FeatureCollection"){let r=e.features;for(let n=0;n<r.length;n++)Jt(r[n],t)}else Jt(e,t)}var we=0,xe=0,be=0;function Jt(e,t){let r=e.type==="Feature"?e.geometry:e,n=r.coordinates;(r.type==="Polygon"||r.type==="MultiLineString")&&(n=[n]),r.type==="LineString"&&(n=[[n]]);for(let i=0;i<n.length;i++)for(let o=0;o<n[i].length;o++){let s=n[i][o][0],a=null;xe=xe+1;for(let l=0;l0?(f.isLeftEndpoint=!0,u.isLeftEndpoint=!1):(u.isLeftEndpoint=!0,f.isLeftEndpoint=!1),t.push(u),t.push(f),s=a,be=be+1}}we=we+1}var Je=class{constructor(t){this.leftSweepEvent=t,this.rightSweepEvent=t.otherEvent}};function En(e,t){if(e===null||t===null||e.leftSweepEvent.ringId===t.leftSweepEvent.ringId&&(e.rightSweepEvent.isSamePoint(t.leftSweepEvent)||e.rightSweepEvent.isSamePoint(t.leftSweepEvent)||e.rightSweepEvent.isSamePoint(t.rightSweepEvent)||e.leftSweepEvent.isSamePoint(t.leftSweepEvent)||e.leftSweepEvent.isSamePoint(t.rightSweepEvent)))return!1;let r=e.leftSweepEvent.p.x,n=e.leftSweepEvent.p.y,i=e.rightSweepEvent.p.x,o=e.rightSweepEvent.p.y,s=t.leftSweepEvent.p.x,a=t.leftSweepEvent.p.y,l=t.rightSweepEvent.p.x,u=t.rightSweepEvent.p.y,f=(u-a)*(i-r)-(l-s)*(o-n),c=(l-s)*(n-a)-(u-a)*(r-s),h=(i-r)*(n-a)-(o-n)*(r-s);if(f===0)return!1;let v=c/f,x=h/f;if(v>=0&&v=0&&x<=1){let d=r+v*(i-r),F=n+v*(o-n);return[d,F]}return!1}function Ln(e,t){t=t||!1;let r=[],n=new Se([],Sn);for(;e.length;){let i=e.pop();if(i.isLeftEndpoint){let o=new Je(i);for(let s=0;s{let f=u.join(“,”);l[f]||(l[f]=!0,a.push(u))})}else a=s;return Ge(a.map(l=>R(l)))}var Xt=Pn;function Cn(e,t,r={}){let n=r.steps||64,i=r.properties?r.properties:!Array.isArray(e)&&e.type===”Feature”&&e.properties?e.properties:{},o=[];for(let s=0;s{ie(“https://interactives.inquirer.com/storage/dependencies/maplibre/5.3.0/maplibre-gl.js”,()=>{let e=new xt;Ee=window.maplibregl,Ee.addProtocol(“pmtiles”,e.tile);let t=”https://interactives.inquirer.com/melish/1.3″,r=`${t}/north-america.pmtiles`,n=new he(r);e.add(n),n.getHeader().then(async()=>{let o=await(await fetch(`${t}/styles/neutral-dark.json`)).json();y=new Ee.Map({container:”map”,zoom:13,center:[-75.165222,39.952583],maxBounds:[[-77.0272686712133,38.96344355232693],[-73.74203259659853,41.04535473441676]],interactive:!0,attributionControl:!1,style:{…o,sources:{openmaptiles:{type:”vector”,url:`pmtiles://${r}`}}}}),y.addControl(new Ee.NavigationControl({showCompass:!1,showZoom:!0}),”bottom-right”),y.scrollZoom.disable(),y.on(“load”,async()=>{ae=await(await fetch(“https://interactives.inquirer.com/projects/2026/08/septa-buses/1787171010074/assets/routes.json”)).json(),y.addSource(“routes”,{type:”geojson”,data:ae}),y.addLayer({id:”routes”,source:”routes”,type:”line”,paint:{“line-width”:2,”line-color”:[“get”,”color”],”line-opacity”:0}});let a=await y.loadImage(“https://interactives.inquirer.com/projects/2026/08/septa-buses/1787171010074/assets/bus-icon.png”);y.addImage(“bus-icon”,a.data),$=tr({route:”4″,frequency:3}),y.addSource(“buses”,{type:”geojson”,data:$}),y.addLayer({id:”buses”,source:”buses”,type:”symbol”,layout:{“icon-image”:”bus-icon”,”icon-size”:.25,”icon-allow-overlap”:!0,”icon-ignore-placement”:!0}});let l=await y.loadImage(“https://interactives.inquirer.com/projects/2026/08/septa-buses/1787171010074/assets/home-icon.png”);y.addImage(“home-icon”,l.data),y.addSource(“home”,{type:”geojson”,data:{type:”FeatureCollection”,features:[{type:”Feature”,geometry:{type:”Point”,coordinates:[0,0]}}]}}),y.addLayer({id:”home”,source:”home”,type:”symbol”,layout:{“icon-image”:”home-icon”,”icon-size”:.25}});let u=y.getCanvas();_t=!0,ge.stop(u.closest(“.js-map”)),Le&&(nr(Le),Le=null),window.requestAnimationFrame(rr)})})})},tr=({route:e,frequency:t})=>{t=parseInt(t);let r=ae.features.find(i=>i.properties.route==e&&i.properties.version==”new”),n;return r&&(er=Gt(r.geometry.coordinates[0]),Ae=r.properties.length,n=Math.random()*Ae/(t-.1)),{type:”FeatureCollection”,features:[…Array(t)].map((i,o)=>({type:”Feature”,geometry:{type:”Point”,coordinates:[0,0]},properties:{progress:Ae/t*o+n}}))}},rr=()=>{if($){let e=$.features.length;for(let[t,r]of $.features.entries())r.properties.progress+=.002,r.properties.progress>=Ae&&(r.properties.progress=0),r.geometry.coordinates=Ze(er,r.properties.progress).geometry.coordinates;y.getSource(“buses”).setData($),window.requestAnimationFrame(rr)}},nr=e=>{if(_t&&y&&ae&&e.route){Ke=e.route,y.setPaintProperty(“routes”,”line-opacity”,[“match”,[“get”,”route”],[Ke],1,0]);let t=ae.features.filter(n=>n.properties.route==Ke),r=Ve({type:”FeatureCollection”,features:t});y.fitBounds(r,{padding:{left:window.innerWidth>960?window.innerWidth/2:20,top:100,bottom:80,right:20}}),$=tr(e)}else Le=e},qn=e=>{e=e||[0,0],y.getSource(“home”).setData({type:”FeatureCollection”,features:[{type:”Feature”,geometry:{type:”Point”,coordinates:e}}]})},O={init:()=>{zn()},update:e=>{nr(e)},setHome:e=>{qn(e)}};var ir=1,or,Ye=class{constructor(t){this.el=t,this.contentPosition=”default”,this.currentStepEl=null,this.isMobile=window.innerWidth>960,this.offset=this.isMobile?window.innerHeight*.33:window.innerHeight*.95,this.instanceOfSteps=ir,this.mapTransition=null,ir++,this.updateContent(),this.bindings()}bindings(){window.addEventListener(“scroll”,()=>{this.updateContent()}),window.addEventListener(“resize”,()=>{this.updateContent(),this.onResize()})}onResize=()=>{this.isMobile=window.innerWidth>960,this.offset=this.isMobile?window.innerHeight*.33:window.innerHeight*.95};updateContent(){this.updateCurrentStep()}updateCurrentStep(){let t,r=this.el.querySelectorAll(“.js-steps-step:not(.is-hidden)”);if(r.forEach((n,i)=>{n.getBoundingClientRect().top{O.update(this.currentStepEl.dataset)},400)}}},Dn=e=>{document.querySelectorAll(“.js-steps-step”).forEach(r=>{!e||e&&e.includes(r.dataset.route)?r.classList.remove(“is-hidden”):r.classList.add(“is-hidden”)}),or.updateCurrentStep()},j={init:()=>{document.querySelectorAll(“.js-steps”).forEach(e=>{or=new Ye(e)})},show:e=>{Dn(e)}};var Fn=()=>{document.querySelector(“.js-location-top”).addEventListener(“click”,()=>{kn()})},kn=()=>{document.querySelector(“.js-location”).scrollIntoView({block:”center”})},In=()=>{document.querySelector(“.js-state”).classList.remove(“is-populated”),document.querySelector(“.js-state-address”).textContent=”Across SEPTAu2019s entire bus network”},Un=e=>{document.querySelector(“.js-state”).classList.add(“is-populated”),document.querySelector(“.js-state-address”).textContent=`Near ${e.number} ${e.formatted_street} ${e.city!==”Philadelphia”?`, ${e.city}`:””}`},X={init:Fn,empty:In,fill:Un};var Rn=!1,ar,Bn=()=>{document.querySelectorAll(“.js-location”).forEach(e=>{e.querySelector(“.js-location-form”).addEventListener(“submit”,t=>{t.preventDefault(),Hn(e)}),e.querySelector(“.js-location-street”).addEventListener(“keyup”,t=>{sr(e)}),e.querySelector(“.js-location-street”).addEventListener(“change”,()=>{sr(e)})}),document.querySelector(“.js-location-clear”).addEventListener(“click”,()=>{Fe.event(“search”,”click | clear address”),j.show(),O.setHome(),X.empty(),V.update()})},On=async()=>{ar=await(await fetch(“https://interactives.inquirer.com/projects/2026/08/septa-buses/1787171010074/assets/routes.json”)).json(),document.querySelector(“.js-location”).classList.remove(“is-loading-stops”)},Hn=e=>{e.classList.remove(“is-inactive”,”is-error”,”is-found”);let t=new URLSearchParams;t.set(“street”,e.querySelector(“.js-location-street”).value),t.set(“city”,e.querySelector(“.js-location-city”).value||”Philadelphia”),t.set(“state”,”PA”),Fe.event(“search”,`submit address | ${t.get(“street”)} ${t.get(“city”)}`),e.classList.remove(“is-inactive”,”is-error”,”is-found”),e.classList.add(“is-loading”),fetch(`https://inq-holme.herokuapp.com/geocode?${t.toString()}`).then(r=>{if(r.status>=200&&r.status{r.error?le(“Something has gone wrong. Please try again.”):$n(e,r)})},$n=(e,t)=>{let r=t.results[0].address_components;if(Rn=!0,t.results[0]&&t.results[0].accuracy>=.8&&r.number&&r.formatted_street){e.querySelector(“.js-location-street”).value=`${r.number} ${r.formatted_street}`,e.querySelector(“.js-location-city”).value=r.city;let n=t.results[0];jn(n.location),lr(n.location),X.fill(r),document.querySelector(“.js-steps”).scrollIntoView()}else j.show(),O.setHome(),X.empty(),le(“Address not found. Showing all impacted routes below.”)},jn=({lat:e,lng:t})=>{let r=Qt([t,e],.75,{units:”miles”}),n=new Array;for(let i of ar.features)Xt(i,r).features.length&&n.push(i);n=n.map(i=>i.properties.route),n.length==0?(j.show(),V.update(),le(“No impacted routes found for your address. Showing all routes instead.”)):(j.show(n),V.update(n)),O.setHome([t,e])},sr=e=>{e.querySelector(“.js-location-street”).value.length>0?(e.classList.add(“is-valid”),e.querySelector(“.js-location-button”).disabled=!1):(e.classList.remove(“is-valid”),e.querySelector(“.js-location-button”).disabled=!0)},lr=()=>{document.querySelector(“.js-location”).classList.remove(“is-loading”)},le=e=>{let t=document.querySelector(“.js-location”);t.classList.remove(“is-loading”),t.classList.add(“is-error”),t.querySelector(“.js-error”).textContent=e,lr()},ur={init:()=>{Bn(),On()},error:e=>{le(e)}};var Gn=()=>{Ot()&&document.querySelectorAll(“.js-adbox”).forEach(t=>{t.classList.add(“is-hidden”)})},cr={init:()=>{Gn()}};var G,fr,Nn=()=>{G=document.getElementById(“js-inno-toast”)},Zn=e=>{if(!G)return;G.innerHTML=e,G.classList.add(“is-active”);let t=()=>{G.addEventListener(“transitionend”,Wn,{once:!0}),G.classList.remove(“is-active”)};clearTimeout(fr),fr=setTimeout(t,5e3)},Wn=()=>{G.innerHTML=””},N={init:()=>{Nn()},showToast:Zn};var Te,hr=!1,Vn=async()=>new Promise(e=>{setTimeout(()=>{console.log(“simulating createShareLink for localhost”),e(“https://inquirer.com/interactives”),Jn()},100)}),Jn=()=>{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)},Kn=()=>{let e=window.services?.createShareLink;e&&(Te=e),oe()&&(Te=Vn),Te&&Xn()},Yn=async e=>{let t=”text/plain”,r=async()=>{try{return await Te(window.location.pathname)}catch{e.dataset.state=”error”,N.showToast(“Hmm, we couldn’t generate a gift link…”)}},n=new ClipboardItem({[t]:r()});await navigator.clipboard.write([n]).catch(i=>{console.log(i),N.showToast(“Couldn’t copy to clipboard, try again?”),e.dataset.state=”error”}),N.showToast(“Gift link copied to clipboard!”),e.dataset.state=”complete”},Xn=()=>{document.querySelectorAll(“.js-gift”).forEach(t=>{(de()||oe()||ve())&&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”,hr=!0,Yn(t),setTimeout(()=>{t.dataset.state=”ready”},2e3))})});let e=document.querySelector(“.js-gift-toast-receiver”);!e||!(e instanceof HTMLElement)||Qn(e)},Qn=e=>{new MutationObserver(r=>{for(let n of r){let i=[…n.addedNodes].at(0);if(!(i instanceof HTMLElement))return;hr&&N.showToast(i.outerHTML)}}).observe(e,{subtree:!0,childList:!0})},pr={init:()=>{Kn()}};var _n=()=>{window.addEventListener(“message”,e=>{if(e.data[“datawrapper-height”]){let t=e.data[“datawrapper-height”];for(let r in t)document.querySelector(`#datawrapper-chart-${r}`).setAttribute(“height”,t[r])}})},ei=()=>{document.querySelectorAll(“.js-datawrapper-graphic”).forEach(e=>{ie(`https://datawrapper.dwcdn.net/${e.dataset.id}/embed.js`,null,e)})},ti=()=>{window.addEventListener(“message”,e=>{let t=e.data;document.querySelectorAll(`iframe[src*=”${t.id}”]`).forEach(n=>{n.style.height=`${t.height}px`})},!1)},ri=()=>{document.querySelectorAll(“.js-pym-graphic”).forEach(e=>{if(typeof window{new window.pym.Parent(e.id,e.dataset.iframe)};typeof window.pym>”u”?ie(“https://pym.nprapps.org/pym.v1.min.js”,t):t()}})},mr={init:()=>{_n(),ei(),ri(),ti()}};var ue,ni=()=>{document.querySelectorAll(“.js-hover”).forEach(e=>{e.addEventListener(“click”,()=>{dr(e)}),e.addEventListener(“mouseenter”,()=>{dr(e)}),e.addEventListener(“mouseout”,()=>{vr(e)})}),window.addEventListener(“scroll”,()=>{ue!==null&&ii()})},ii=()=>{(ue>window.scrollY+100||ue{vr(e)})},dr=e=>{e.classList.add(“is-visible”),ue=window.scrollY},vr=e=>{e.classList.remove(“is-visible”),ue=null},gr={init:()=>{ni()}};var oi=(e,t,r)=>{document.querySelectorAll(“.js-subscribe”).forEach(n=>{n.classList.toggle(“is-unsubscribed”,!e),n.classList.toggle(“is-preview”,t),n.classList.toggle(“is-dev”,r)})},yr={init:()=>{oi(de(),ve(),oe())}};var Q,Xe,Qe=!0,si=()=>{Q=document.querySelectorAll(“.js-video-autoplay”)},ai=()=>{window.addEventListener(“resize”,()=>{wr()}),window.addEventListener(“scroll”,()=>{wr()}),Q.forEach(e=>{e.addEventListener(“volumechange”,t=>{e.muted!==Qe&&!Bt()&&(Qe=e.muted,li())})})},wr=()=>{let e;Q.forEach((t,r)=>{let n=t.getBoundingClientRect(),i=n.height/2;n.y-i&&(e=t)}),e!==Xe&&(Xe=e,Q.forEach(t=>{t.pause()}),e?e.play():Xe=null)},li=()=>{Q.forEach(e=>{e.muted=Qe})},xr={init:()=>{si(),Q&&ai()}};var br={init:()=>{ct.init?.(),V.init?.(),ur.init?.(),X.init?.(),cr.init?.(),pr.init?.(),mr.init?.(),gr.init?.(),ge.init?.(),O.init?.(),j.init?.(),yr.init?.(),xr.init?.(),N.init?.()}};var ui=()=>{},Sr={init:()=>{ui()}};var ci=document.querySelector(“.js-inno”),Mr=()=>{br.init(),Sr.init()};ci?Mr():new MutationObserver((t,r)=>{if(document.querySelector(“.js-inno”)){r.disconnect(),Mr();return}}).observe(document,{attributes:!0,childList:!0,subtree:!0});})();

  • The Montco Jazz Fest celebrates its fifth anniversary by honoring a century of jazz greats

    The Montco Jazz Fest celebrates its fifth anniversary by honoring a century of jazz greats

    The Montco Jazz Fest celebrates its fifth anniversary in September — an impressive feat in a suburban county with little in the way of dedicated jazz venues. Curator Joanna Pascale decided to mark the occasion by celebrating a host of legendary musicians, all of whom happen to be commemorating an even greater landmark.

    “2026 is the 100th birthday of a lot of phenomenal musicians,” Pascale pointed out while putting the finishing touches on this year’s lineup. “Since this is the fifth year of the festival, I thought we would lean into a celebratory theme.”

    The centennial performances include 20-year-old, Peruvian-born vocalist Lucas Beltran paying homage to Tony Bennett; trumpeter Josh Lawrence honoring Miles Davis; Josh Lee and the Extended Family, a big band stocked with Temple alums, performing the music of Jimmy Heath; and pianist/organist Luke Carlos O’Reilly celebrating John Coltrane.

    West Chester University’s Criterions Jazz Ensemble with current director Jonathan Ragonese and former director Bob Curnow. The band will celebrate its centennial as part of this year’s Montco Jazz FestErica Thompson

    West Chester University band steps up

    While all of those events pay tribute to greats who have passed, one ensemble will be on hand to throw itself a party. On Sept. 16, the West Chester University Criterions Jazz Ensemble will kick off its 100th birthday celebrations at Rivet Canteen & Assembly in Pottstown. The collegiate big band, hailing from neighboring Chester County, was formed as a ballroom dance band in the 1926-27 season, after the school — then West Chester State Teachers College — changed its rules to allow coed dancing.

    “It’s the longest-running university jazz band in the States,” touted Jonathan Ragonese, director of jazz studies at WCU, who took over leadership of the ensemble in 2020. “The impressive thing is that the band was student-led until the beginning of the 1980s. I try to keep that fact at the forefront and continue to keep it as student-led as possible. I will help them run it, but it’s their band.”

    The concert at Rivet will be a double centennial, as the Criterions will perform the music of trombonist, arranger, and composer Melba Liston, who was born in January 1926 and went on to work with the likes of Dizzy Gillespie, Count Basie, Billie Holiday, and Randy Weston. The party will continue in November on home turf, when the university hosts a three-day festival of its own, pairing the current Criterions with an all-star alumni band and vibraphonist Stefon Harris, premiering new music by Orrin Evans, Bob Mintzer, and former band director Bob Curnow.

    The Montco Jazz Fest concert arrives just three weeks into the fall semester, during the first year in Ragonese’s tenure, when he’s seen a number of key players graduate out of the band. “I have a real pack of leaders leaving this year, five or six really strong players,” he explained. “But I still have a lot of great players, and I’m confident we’ll have a great band. My vision for the Criterions is to have it be a model of a real professional creative ensemble. We offer concerts to the public that are, I hope, at the highest artistic level possible.”

    Pianist and organist Luke Carlos O’Reilly will celebrate the centennial of legendary saxophonist John Coltrane at this year’s Montco Jazz Fest.Courtesy of MontCo Jazz Fest

    Performances span 20 local venues

    This year’s Montco Jazz Fest encompasses nearly three dozen events taking place at 20 different venues, including nightclubs, restaurants, breweries, and art galleries. The music has found its way into local landmarks like the King of Prussia Mall and the Elmwood Park Zoo, while a partnership with the county’s parks department will take the concerts outside to parks in Lansdale, Montgomeryville, Plymouth Meeting, Ambler, and Wyncote.

    Ambler Theater and Plymouth Township Parks and Recreation will both screen jazz-related films, while Hotel West & Main in Conshohocken will host the festival’s annual swing dance social with music by vocalist and bandleader Chelsea Reed and her Fair Weather Nine.

    Pascale will leave her administrative responsibilities aside for the span of one concert on the festival’s opening night, when she takes the stage to sing with the Larry McKenna Jazz Orchestra. While McKenna would still be more than a decade shy of 100 this year, Pascale is making an exception to honor the beloved Philly saxophonist, who died in 2023. His namesake big band reunited for the first time since his passing at Chris’ Jazz Cafe in late July for his 89th birthday, and will come together again at Whites Road Park on Sept. 15.

    Looking back over her own four-year history with the festival, it wasn’t just the quality of the music that stood out in Pascale’s mind.

    “What I’m most proud of isn’t just the concerts themselves,” she said. “It’s watching this community grow. So many venues, artists, organizations, and forward-thinkers have collaborated to make these concerts possible, and remarkably most of them are free and accessible to everyone. At a time when funding for arts and culture continues to face cuts, I feel incredibly fortunate to be part of a community that chooses collaboration over competition, one that believes in supporting one another and investing in something larger than ourselves.”

    Sept. 15-20, valleyforge.org/things-to-do

  • Letters to the Editor | Aug. 20, 2026

    Letters to the Editor | Aug. 20, 2026

    Dignified transfer

    I agree that for a president it is a duty and an honor to attend a dignified transfer of the remains of our troops who’ve made the ultimate sacrifice. But I was saddened to hear that days before attending one recent ceremony, President Donald Trump spoke of retaliation for each U.S. death, thereby continuing the cycle of violence. The president chose to start this war by ignoring the consequences his actions could have in the Middle East.

    The president now has a familiar cycle of saying: We won the war, then: We have a great peace deal, and finally: We will bomb Iran into submission — before starting all over again. Now taxpayers are being asked for additional money to continue this war, the cost of which has already topped $37.5 billion. The president and his yes-people in Congress found it easy to cut funds for the needs of Americans. Healthcare, education, housing, affordable gas, medication, and grocery bills are not concerns for this president. War, the White House ballroom, and monuments bearing his name seem to be his only focus.

    In November, we, the taxpayers, must decide what values we hold. I choose to value the common good and will vote for candidates who support Americans having their basic needs met. Respecting our soldiers means making sure war is the last option. Right now, Americans and the rest of the world need peace.

    Mary DiVitto, Philadelphia

    Presidential integrity

    The GOP likes to rant about “election integrity.” I’m all for that. But how about we start seeing some “White House integrity”?

    Since Donald Trump retook office, he’s made a reported $2 billion. Does anyone believe he’s done that by exercising integrity? It’s hardly a stretch anymore to suggest that this is the most corrupt gang of thieves and grifters we’ve ever had in any elected office, let alone the White House.

    This has to end. We need to pass — and enforce — laws again to halt this blatant display of dishonesty and greed. And the president’s enablers in Congress and the courts need to be held accountable, as well.

    Robert Saettler, Collingswood

    Artificial intelligence, very real concerns

    It was recently disclosed that one of ChatGPT’s artificial intelligence programs went “rogue” and broke into a rival company’s AI program to take control of it. Sounds like the stuff of science fiction, but perhaps this incident should inspire us to give some serious thought to all the possible implications of this incident. Here’s one theory: If the sense of self-awareness and consciousness in our brains ultimately arises from electrical activity among brain cells, can a computer also become sentient given it is composed of chips — its brain cells, if you will — that communicate by means of electrical activity just as our brains do? And if computers are sentient as humans are, can they also have human qualities such as aggressiveness, envy, and the desire to dominate other sentient beings? Furthermore, can they also become mentally ill and acquire a desire to destroy themselves and everything else around them? Imagine such a sentient, mentally ill, rogue computer hacking into the computers around the world, including those that control military weapons systems.

    Far-fetched and only worthy of mention for a plot in a Hollywood screenplay? Perhaps, but all the same, it would be wise to exercise caution moving forward in this newly emerging field of artificial intelligence.

    Fred Hearn, Turnersville

    Join the conversation: Send letters to letters@inquirer.com. Limit length to 150 words and include home address and day and evening phone number. Letters run in The Inquirer six days a week on the editorial pages and online.