So much for all those positive vibes around this team coming out of Atlanta. 

This stunk.

The Eagles on Sunday got outplayed and outcoached in their home opener, and they’ve got some big questions to answer moving forward as they lose to the San Francisco 49ers 17-11.

Here’s three takeaways from week two’s loss.

Offense did not look good

The offense stunk Sunday afternoon.

There were five minutes left in the third quarter and the Eagles had run the ball 24 times and thrown it 15 times. Not surprisingly, they had scored three points.

Now, the passing game was out of sorts other than a few plays, and that’s a concern. But you can’t just stop throwing. As much as the Eagles’ running game is good — and Miles Sanders was fine Sunday — it’s really hard to win in the NFL running that kind of offense.

Jared Goff threw for 338 yards and three touchdowns last week against this 49ers defense. Sunday? Nick Sirianni didn’t really start dialing up much of a passing game until the Eagles were down 14-3, and they had to throw. He’s got to do better. 

Other than two passes to Quez Watkins — one for 26 yards and one for 91 — Jalen Hurts had 73 passing yards. DeVonta Smith, Dallas Goedert, Zach Ertz, Jalen Reagor, Kenny Gainwell, and Sanders combined for 77 yards.

Other than the two Watkins catches, the Eagles’ next-longest pass play was a 14-yarder to Goedert.

When you have all these weapons, get them the ball!

The Eagles took a bunch of deep shots, but there was no mid-range game at all. You can’t win like that.

The Eagles hit a 91 yard pass, and didn’t score.

There’s only one way to put it: you cannot hit a 91-yard play and not score. You can’t. It’s impossible and inexcusable.

There’s a reason that hasn’t happened in the NFL in nine years.

The Hurts bomb to Watkins was a thing of beauty, and I loved the aggressive call from the Eagles’ own 3-yard-line.

After a 49ers penalty the Eagles had first-and-goal on the one.

They ran four straight plays — three passes and a run — and none of them really had a chance.

And the fourth-down call — a Greg Ward version of the Philly Special — was a bad choice at that point. You have this world-class offensive line, just run your offense. The whole sequence once they got to the one just looked sloppy.

Poor play selection, poor execution, bad result. Score there and it’s a totally different game.

This was not a good day for Hurts.

The 49ers did a nice job in coverage, and Hurts seemed to struggle when he had to start looking past his primary read.

He was under more pressure than he should’ve been and just never got into a good rhythm.

He’s always going to be a weapon with his legs, but he should never have to run for 82 yards.

All the things that came so easily in Atlanta for him weren’t there against the 49ers. We knew there would be days like this.

This was still only his sixth NFL start. Let’s see how he deals with some adversity with a national TV game in Dallas coming up next.

Hard to complain about the defense

The Eagles’ defense allowed 17 points and they’ve given up only 23 in two games.

But I do expect more from this vaunted defensive line. Obviously, losing Brandon Graham hurt (more on that in a bit), but the 49ers threw 30 times, and the Eagles didn’t record a sack.

The 49ers have a very good offensive line, and it really dominated the line of scrimmage, especially in the second half. Two weeks in, and the Eagles’ defensive ends don’t have a sack. Jimmy Garoppolo did a nice job much of the day getting rid of the ball quickly, but for the most part this was just the Eagles’ pass rushers not getting home.

Graham out for the season

Three days ago, Graham was beaming as he spoke before practice about how special it’s been to be able to play nearly a decade alongside best friend Fletcher Cox.

“Man, it’s so cool too, and I’m trying to make sure we end it with a bang,” Graham said Thursday. “Like I tell him every year, ‘Fletch, you don’t know when it’s going to be over, so let’s maximize it the best we can.’”

Three days later, Cox watched Graham hobble off the field at the Linc with a season-ending torn Achilles.

Will B.G. play again? You’d be foolish to ever count him out. But this injury at 33 years old is a tough one.

And three days after he spoke those words, Graham may have indeed played his final snaps in an Eagles uniform, his final snaps with Cox.

“It’s always tough and it was a pretty emotional moment for me to see B.G. limp off the field,” Cox said. “Me and Brandon have played so much ball together and to see him walk off the field was pretty rough for me.”

Graham was the Eagles’ first-round pick in 2011, Cox in 2012. Graham and Cox rank first and fourth in franchise history in games played by defensive linemen, with only Trent Cole and Kenny Clarke separating them.

“You know that it’s football and things happen, players get hurt, your best friend gets hurt, and BG’s obviously my locker mate since I got here,” Cox said. “Now we still get to laugh and talk about things but it won’t be on the field on Sundays, but it will be in the locker room and I’m looking forward to that and making sure he stays in a good place.”

It seemed like the entire team got punched in the gut when Graham was helped off the field and then carted inside.

Nobody knew how serious it was, but you just kind of knew it was.

“It’s terrible,” Lane Johnson said. “Probably one of the greatest humans I’ve had the pleasure of playing with and competing with. Really the heartbeat of this team, the way he conducts himself, the way he leads and the way he plays. … I’m heartbroken for him.”

Graham got hurt on the first play after the first-half two-minute warning, a short Jimmy Garoppolo pass to George Kittle.

The 49ers then drove the length of the field, taking a 7-3 lead just before halftime. It’s not easy seeing an all-time great Eagle, a Super Bowl hero, a future Eagles Hall of Famer, get hurt like that.

“That’s obviously one of our captains, that’s huge, he’s that emotional leader,” Alex Singleton said after the Eagles lost to the 49ers, 17-11, in their home opener. “You guys all know him, he’s always got a smile on his face, always doing the right things. 

“I remember when I was on the practice squad, he was the guy telling me every day I would play one day. He’s that guy for this team and he’ll still be that guy. That’s the best part about him. We might lose him on the field but we’re definitely not losing him in the building.”

Graham took to Twitter postgame, giving words of encouragement to his teammates and the fans.