Before Sean McVay, Kyle Shanahan and Matt LaFleur coached on that staff in Washington you've heard so much about, the latter two — Shanahan and LaFleur — first met in Houston under Gary Kubiak. They learned from one godfather, and then another with Mike Shanahan in Washington, of the offensive system that has shaped much of the modern NFL.

The ties that bind the Vikings' back-to-back opponents, LaFleur's Packers and Shanahan's 49ers, are strong. And Sunday's 34-31 win over Green Bay was a tale of two halves for the Vikings defense, which surrendered three straight touchdown drives to end the game. In San Francisco on Sunday, they'll see more of the elements they struggled to stop against the Packers. Even as the opponents offer stark differences.

"This offense has tentacles," said another disciple, Kevin Stefanski. "Where there are similarities among all those teams, there are profound differences as well. It's a great system and at its core, we all share some of those mainstay principles of the marriage of the run and pass, but I'd tell you there's really — if you really look closely, everybody is kind of doing their own version of that."

The 49ers take some elements to the extreme, particularly play fakes and pre-snap motion. Shanahan's teams have led the league in pre-snap motion rates every year since he took over in 2017. Early movement and misdirection help 49ers quarterback Jimmy Garoppolo to identify and throw off defenses, while also setting up a run-heavy attack.

"We've got to stay focused," defensive end D.J. Wonnum said. "Get to the quarterback's feet, make him uncomfortable, force the incomplete pass. Having those different things, just eye candy, things that we can't let affect our rush."

1. The Vikings defense was a step late with the Packers' misdirection, especially during Green Bay's initial touchdown drive in the third quarter. Aaron Rodgers had struggled to get the ball to Davante Adams during the first half, so they came out scheming some touches to him — and away from cornerback Patrick Peterson.

After Adams beat Peterson on a comeback route for 12 yards, Rodgers seems to check the Packers into this play fake. The Vikings' eagerness to cover Adams, with both Peterson and safety Harrison Smith looming over the top, plays into a 17-yard catch and run.

Rodgers fakes a handoff to running back A.J. Dillon (#28), while tight end Dominique Dafney (#49) runs a go route that takes cornerback Bashaud Breeland (#21) out of the picture. Linebacker Nick Vigil (#59) chases the run a beat too far, and Adams' speed on a leak across the formation is too much for him to recover.

2. Seemingly to counter Dillon and the Packers' inside running game, the Vikings often went to a tighter defensive alignment with ends directly over the Packers' last man on either side of the line. So Green Bay started attacking the edges. Receiver Equanimeous St. Brown took an end-around pitch for 11 yards. On the next play, the Vikings defensive line was really eager to spread out, which bought Rodgers a lot of time on the 10-yard touchdown throw to Adams.

More misdirection and a play fake. Rodgers fakes the handoff to Dillon (#28). Packers receiver Randall Cobb (#18) runs another end-around. In the secondary, the Vikings appear to run some version of Cover 3. Before the snap, cornerback Patrick Peterson can be seen trying to alert new corner Cameron Dantzler (#27) — who replaced Breeland on the drive — of Adams, and perhaps hint he could be headed Dantzler's way.

The run and end-around fakes widen the Vikings' ends. Everson Griffen (#97) gets blocked out chasing St. Brown momentarily. Wonnum (#98) follows Dillon as the rest of the defensive line appears worried about a screen.

The result is 5.8 seconds in the backfield for Rodgers, which is more than enough to direct Adams to the open area of the end zone for the score. The Vikings were schemed out of having any kind of pass rush. Even Garoppolo could hurt them with that much time.

3. The 49ers don't have Aaron Rodgers or Davante Adams. But they do lean on some of these play-fake and pre-snap elements to make life easier for Garoppolo. Below is a second-down play from San Francisco's 20-play (!) opening drive against Jacksonville last week that ended with a field goal. It was less fun to watch than to read about, I hope.

The Jaguars defense came out blitzing Garoppolo, and they got two sacks on the first drive, including a third-down stop negated by penalty. But San Francisco soon had the counters, including on this play.

Like how Rodgers works the play clock and hard count to reveal defensive intentions, the 49ers lean on pre-snap motion. Early movement from fullback Kyle Juszczyk (#44) here identifies another blitz by Jacksonville. Jaguars linebacker Damien Wilson (#54) and safety Andrew WIngard (#42) show their cards as Juszczyk settles.

Garoppolo checks into a pitch to receiver Deebo Samuel (#19) away from the blitz.

Juszczyk subtly motions back to center, receiver Brandon Aiyuk (#11) blocks down against the edge rusher. Samuel turns on the jets. That's 12 yards.

4. Deebo Samuel is the guy the Vikings have to worry about in this offense. The 49ers have a prolific tight end in George Kittle, as well, but they're increasingly manufacturing touches to Samuel as San Francisco deals with injuries at running back. Samuel has aligned in the backfield often the past two weeks. He took eight carries against Jacksonville.

On this first down below, 49ers running back Trey Sermon (#28) aligns off right tackle and begins his jet motion before the snap. This sets up the potential jet sweep to Sermon.

The Jaguars linebackers bite, shifting with Sermon as the ball is snapped.

But Garoppolo pivots and hands off to Samuel (#19) for a nine-yard sweep in the opposite direction. Watch Kittle (#85) on the right side of the formation. He's one of the best blockers among NFL tight ends, and he pins the defensive end here to give Samuel an edge. This allows the right tackle to pull and lead block.

5. But, once again, the 49ers don't have Aaron Rodgers. Garoppolo makes the kind of head-scratching mistakes that lead you to trade up for a new quarterback in the draft.

So even with all the window dressing and trickery in the 49ers offense, there's opportunity for the Vikings if they can apply pressure. On this second down at the goal line, the 49ers scheme open running back Jeff Wilson (#22) with a heavy fake to the left. Another strategic changeup to note here — look at the player alignments: Aiyuk (#11) is in the tight end's spot; Kittle (#85) is at fullback; Wilson (#22) and Juszczyk (#44) are on the edges. The Jaguars are bunched up, likely trying to decipher who to cover.

Jaguars defenders lurch toward the play fake and routes by Aiyuk and Juszczyk. Garoppolo had already been hit four times on this drive. So after he looks off the defense by staring to his left, he faces some edge pressure and flicks a quick pass to his right to a wide-open Wilson. It's off the mark and incomplete. San Francisco eventually settles for a field goal.