Heat a large Dutch oven or heavy-bottomed pot over medium-high heat. Add ground beef and cook, breaking it up with a spoon, until no longer pink and an instant-read thermometer inserted into the center reads 160°F (71°C), about 6–8 minutes. Drain excess fat if necessary (leave about 1 tbsp for flavor).
Push beef to the edges of the pot. Add diced onion and cook until softened, 4–5 minutes. Stir in minced garlic and cook 1 minute until fragrant.
Sprinkle 1 tbsp chili powder, cumin, smoked paprika, oregano, and cayenne over the meat and onion mixture. Stir constantly for 30 seconds to toast the spices and intensify their flavor.
Stir in tomato paste, minced chipotles, and adobo sauce. Cook 2 minutes, then add crushed tomatoes, all beans, beef broth, and remaining 1 tbsp chili powder. Stir to combine.
Bring to a boil, then reduce heat to low. Cover and simmer for 30–35 minutes, stirring occasionally, until chili has thickened and flavors meld. Remove lid during last 10 minutes if you want it thicker.
Taste and adjust salt, pepper, and heat level. Ladle into bowls and serve with desired toppings.