Preheat oven to 350°F (175°C) and grease a large baking dish. Cook macaroni until just under al dente, drain, and toss with olive oil.
Melt butter in a deep saucepan over medium heat. Whisk in flour and cook for 1 minute until lightly golden.
Slowly whisk in milk and heavy cream until smooth and thickened. Season with salt and pepper. Stir in half the cheddar and Gruyère until melted, then add remaining cheese and mix until smooth.
Combine pasta with cheese sauce until evenly coated. Layer half into baking dish, sprinkle remaining cheese, then top with remaining pasta.
Mix panko, melted butter, Parmesan, and smoked paprika. Sprinkle evenly over the top.
Bake uncovered for 30 minutes until bubbly and golden brown. Let rest briefly before serving.