```python
import math


def explode_kit(catalog, kit, want):
    """Total the base parts an order of a kit consumes."""
    if kit not in catalog:
        raise ValueError(f"the catalog does not define {kit}")
    totals = {}
    # TODO: work down from kit, turning each requirement into whole runs
    # and charging a run's parts to its sub-kits or to the base totals.
    current_kit = kit
    while current_kit in catalog:
        recipe = catalog[current_kit]
        runs_needed = math.ceil(want / recipe['makes'])
        for component, count in recipe['parts'].items():
            if component in catalog:
                totals[component] = totals.get(component, 0) + runs_needed * count
            else:
                totals[component] = runs_needed * count
        want = runs_needed * recipe['makes']
        current_kit = recipe['base']
    return totals
```