[proofplan]
We argue by contradiction using a normal measure on $\kappa$. If $2^\lambda \geq \kappa$ for some $\lambda < \kappa$, an injection $e: \kappa \to \mathcal{P}(\lambda)$ lets us compare each set $e(\alpha)$ with a single measure-coded subset $X \subseteq \lambda$. On a measure-one tail, each $e(\alpha)$ differs from $X$, and the least coordinate of disagreement defines a regressive function. Normality forces this coordinate to be constant on a measure-one set, while the definition of $X$ says that the same coordinate agrees on a measure-one set, giving a contradiction.
[/proofplan]
[step:Choose a normal measure and assume a failure of the strong limit property]
Let $\kappa$ be an uncountable cardinal, and let $U \subseteq \mathcal{P}(\kappa)$ be a normal, nonprincipal, $\kappa$-complete ultrafilter on $\kappa$.
Suppose, toward a contradiction, that $\kappa$ is not a strong limit cardinal. Then there exists a cardinal $\lambda < \kappa$ such that $2^\lambda \geq \kappa$. Since $|\mathcal{P}(\lambda)| = 2^\lambda$, choose an injective map
\begin{align*}
e: \kappa \to \mathcal{P}(\lambda).
\end{align*}
For each ordinal $i < \lambda$, define
\begin{align*}
A_i := \{\alpha < \kappa : i \in e(\alpha)\}.
\end{align*}
Thus $A_i \subseteq \kappa$. Define a subset $X \subseteq \lambda$ by
\begin{align*}
X := \{i < \lambda : A_i \in U\}.
\end{align*}
[/step]
[step:Restrict to a measure-one set where every $e(\alpha)$ differs from $X$]
Because $e$ is injective, there is at most one ordinal $\beta < \kappa$ such that $e(\beta) = X$. Let
\begin{align*}
T := \{\alpha < \kappa : \lambda < \alpha\}.
\end{align*}
The complement $\kappa \setminus T = \{\alpha < \kappa : \alpha \leq \lambda\}$ has cardinality $< \kappa$. Since $U$ is nonprincipal and $\kappa$-complete, no subset of $\kappa$ of cardinality $< \kappa$ belongs to $U$: if $A \subseteq \kappa$ has cardinality $< \kappa$ and $A \in U$, then $\kappa \setminus \{\alpha\} \in U$ for each $\alpha \in A$, and $\kappa$-completeness gives $A \cap \bigcap_{\alpha \in A}(\kappa \setminus \{\alpha\}) = \varnothing$ in $U$, impossible for an ultrafilter. Hence $\kappa \setminus T \notin U$, and because $U$ is an ultrafilter, $T \in U$.
If no $\beta < \kappa$ satisfies $e(\beta) = X$, set $S := T$. If such a $\beta$ exists, set
\begin{align*}
S := T \setminus \{\beta\}.
\end{align*}
In either case $S \in U$, because removing either nothing or one singleton from a member of $U$ preserves membership in $U$. For every $\alpha \in S$, we have $e(\alpha) \neq X$.
[guided]
We need a large set of ordinals $\alpha$ for which two things hold simultaneously: first, $\alpha$ is larger than every coordinate $i < \lambda$, and second, $e(\alpha)$ is not equal to the comparison set $X$. The first condition will make the least disagreement coordinate regressive; the second condition ensures that such a disagreement coordinate exists.
Define
\begin{align*}
T := \{\alpha < \kappa : \lambda < \alpha\}.
\end{align*}
The set omitted from $T$ is
\begin{align*}
\kappa \setminus T = \{\alpha < \kappa : \alpha \leq \lambda\}.
\end{align*}
This set has cardinality at most $|\lambda + 1|$, hence cardinality $< \kappa$. Since $U$ is nonprincipal, every singleton $\{\alpha\}$ is outside $U$, so $\kappa \setminus \{\alpha\} \in U$ for each $\alpha < \kappa$. Let $A \subseteq \kappa$ have cardinality $< \kappa$. If $A \in U$, then $\kappa$-completeness applied to the family $\{\kappa \setminus \{\alpha\} : \alpha \in A\}$ gives
\begin{align*}
A \cap \bigcap_{\alpha \in A}(\kappa \setminus \{\alpha\}) = \varnothing
\end{align*}
in $U$, contradicting that an ultrafilter cannot contain the empty set. Thus every subset of $\kappa$ of cardinality $< \kappa$ is outside $U$. Therefore $\kappa \setminus T \notin U$. Because $U$ is an ultrafilter, exactly one of a set and its complement lies in $U$, so $T \in U$.
Now we remove the possible exceptional ordinal where $e(\alpha)$ equals $X$. There is at most one such ordinal: if $e(\alpha_0) = X = e(\alpha_1)$, injectivity of $e: \kappa \to \mathcal{P}(\lambda)$ gives $\alpha_0 = \alpha_1$. If there is no such ordinal, set $S := T$. If there is one, call it $\beta$ and set
\begin{align*}
S := T \setminus \{\beta\}.
\end{align*}
Since $\{\beta\} \notin U$ and $T \in U$, the set $T \setminus \{\beta\} = T \cap (\kappa \setminus \{\beta\})$ lies in $U$. Thus in all cases $S \in U$, every $\alpha \in S$ satisfies $\lambda < \alpha$, and every $\alpha \in S$ satisfies $e(\alpha) \neq X$.
[/guided]
[/step]
[step:Define the least coordinate of disagreement as a regressive function]
For each $\alpha \in S$, the sets $e(\alpha)$ and $X$ are distinct subsets of $\lambda$. Therefore their symmetric difference is nonempty. Define
\begin{align*}
f: S \to \lambda
\end{align*}
by letting $f(\alpha)$ be the least ordinal $i < \lambda$ such that either $i \in e(\alpha) \setminus X$ or $i \in X \setminus e(\alpha)$.
Since $\alpha \in S$ implies $\lambda < \alpha$, we have
\begin{align*}
f(\alpha) < \lambda < \alpha
\end{align*}
for every $\alpha \in S$. Thus $f$ is regressive on the $U$-large set $S$.
[/step]
[step:Use normality to make the disagreement coordinate constant]
By the pressing-down consequence of normality, applied to the regressive map $f: S \to \kappa$ on the $U$-large set $S$, there exists an ordinal $i_0 < \kappa$ such that
\begin{align*}
B := \{\alpha \in S : f(\alpha) = i_0\}
\end{align*}
belongs to $U$. Since $B$ is nonempty and $f$ has range contained in $\lambda$, we have $i_0 < \lambda$.
For every $\alpha \in B$, the coordinate $i_0$ witnesses disagreement between $e(\alpha)$ and $X$. Hence either $i_0 \in X$ and $i_0 \notin e(\alpha)$, or $i_0 \notin X$ and $i_0 \in e(\alpha)$.
[/step]
[step:Contradict the measure-one set of forced disagreement]
Consider the fixed coordinate $i_0 < \lambda$. By definition,
\begin{align*}
A_{i_0} = \{\alpha < \kappa : i_0 \in e(\alpha)\}.
\end{align*}
Also, by definition of $X$, one has
\begin{align*}
i_0 \in X \iff A_{i_0} \in U.
\end{align*}
If $i_0 \in X$, then $A_{i_0} \in U$. But every $\alpha \in B$ satisfies $i_0 \notin e(\alpha)$, so
\begin{align*}
B \subseteq \kappa \setminus A_{i_0}.
\end{align*}
Since $B \in U$, upward closure gives $\kappa \setminus A_{i_0} \in U$, contradicting $A_{i_0} \in U$.
If $i_0 \notin X$, then $A_{i_0} \notin U$, so $\kappa \setminus A_{i_0} \in U$ because $U$ is an ultrafilter. But every $\alpha \in B$ satisfies $i_0 \in e(\alpha)$, so
\begin{align*}
B \subseteq A_{i_0}.
\end{align*}
Since $B \in U$, upward closure gives $A_{i_0} \in U$, contradicting $\kappa \setminus A_{i_0} \in U$.
Both cases are impossible. Therefore no cardinal $\lambda < \kappa$ can satisfy $2^\lambda \geq \kappa$. Hence $2^\lambda < \kappa$ for every cardinal $\lambda < \kappa$, so $\kappa$ is a strong limit cardinal.
[/step]