  We first introduce and study the notion of multi-weighted blow-ups, which is
later used to systematically construct an explicit yet efficient algorithm for
functorial logarithmic resolution in characteristic zero, in the sense of
Hironaka. Specifically, for a singular, reduced closed subscheme $X$ of a
smooth scheme $Y$ over a field of characteristic zero, we resolve the
singularities of $X$ by taking proper transforms $X_i \subset Y_i$ along a
sequence of multi-weighted blow-ups $Y_N \to Y_{N-1} \to \dotsb \to Y_0 = Y$
which satisfies the following properties: (i) the $Y_i$ are smooth Artin stacks
with simple normal crossing exceptional loci; (ii) at each step we always blow
up the worst singular locus of $X_i$, and witness on $X_{i+1}$ an immediate
improvement in singularities; (iii) and finally, the singular locus of $X$ is
transformed into a simple normal crossing divisor on $X_N$.
