Heat the olive oil in a large Dutch oven over medium heat. Add the onion, carrots, and both bell peppers. Cook for about 8 minutes, stirring occasionally, until the vegetables begin to soften.
Stir in the garlic and tomato paste, cooking for another minute until fragrant. Add the chili powder, cumin, smoked paprika, oregano, coriander, and cayenne, stirring constantly so the spices become aromatic.
Pour in the crushed tomatoes, fire-roasted tomatoes, and vegetable broth. Stir well to combine, scraping up any browned bits from the bottom of the pot.
Add the kidney beans, black beans, pinto beans, corn, soy sauce, maple syrup, cocoa powder, bay leaf, salt, and black pepper. Bring everything to a gentle boil.
Reduce the heat to low and let the chili simmer uncovered for about 40 to 45 minutes, stirring occasionally, until thick and deeply flavorful. If the chili becomes too thick, add a splash of vegetable broth as needed.
Remove the bay leaf and stir in the fresh lime juice and chopped cilantro just before serving. Taste and adjust the seasoning with additional salt, pepper, or chili powder if needed.
Ladle the chili into bowls and finish with your favorite toppings. Serve hot with cornbread, tortilla chips, or warm crusty bread.