[proofplan]
Diagonalize $\rho(g)$ over $\mathbb{C}$ — possible because $g$ has finite order — and write $\chi(g) = \sum_i \lambda_i$ with each $\lambda_i$ a root of unity. The triangle inequality applied to this sum bounds $|\chi(g)|$ by $\sum_i |\lambda_i| = \dim V = \chi(1)$. Equality in the triangle inequality forces the $\lambda_i$ to be collinear from the origin, hence equal (since they all have modulus $1$); this is precisely the condition that $\rho(g)$ is a scalar matrix $\lambda I$. Finally, the special case $\chi(g) = \chi(1)$ corresponds to $\lambda = 1$, i.e. $\rho(g) = I$, i.e. $g \in \ker \rho$.
[/proofplan]
[step:Diagonalize $\rho(g)$ and list its eigenvalues as roots of unity]
Fix $g \in G$. Since $G$ is finite, $g$ has finite order $m := |g|$, and $\rho(g)^m = \rho(g^m) = \rho(1) = \mathrm{id}_V$ (using that $\rho$ is a homomorphism). Hence $\rho(g)$ is annihilated by the polynomial $X^m - 1 \in \mathbb{C}[X]$, which over $\mathbb{C}$ has $m$ distinct roots (the $m$-th roots of unity). Therefore the minimal polynomial of $\rho(g)$ — a divisor of $X^m - 1$ — has only simple roots, and $\rho(g)$ is diagonalizable over $\mathbb{C}$.
Let $n = \dim_{\mathbb{C}} V$. Pick a basis of $V$ consisting of eigenvectors of $\rho(g)$, and let $\lambda_1, \ldots, \lambda_n \in \mathbb{C}$ be the corresponding eigenvalues (with multiplicity). Each $\lambda_i$ is a root of $X^m - 1$, so $|\lambda_i| = 1$ for every $i$. The character is the trace of $\rho(g)$, which in the diagonalizing basis reads
\begin{align*}
\chi(g) = \sum_{i=1}^n \lambda_i.
\end{align*}
[guided]
The strategy for bounding $|\chi(g)|$ is to express $\chi(g)$ as a sum of complex numbers whose moduli we know. We achieve this by diagonalizing $\rho(g)$.
Why does $\rho(g)$ diagonalize? Because $g \in G$ has finite order $m = |g|$, the operator $\rho(g)$ satisfies $\rho(g)^m = \rho(g^m) = \rho(1) = \mathrm{id}_V$. So $\rho(g)$ is annihilated by $X^m - 1$, a polynomial whose roots are the $m$-th roots of unity — these are $m$ distinct complex numbers. The minimal polynomial of $\rho(g)$ divides $X^m - 1$, so it also has only simple roots, which over $\mathbb{C}$ implies diagonalizability.
The eigenvalues are roots of $X^m - 1$, hence roots of unity, hence have modulus $1$. This is the input we needed for the triangle-inequality argument.
In an eigenbasis, $\rho(g) = \operatorname{diag}(\lambda_1, \ldots, \lambda_n)$ and $\chi(g) = \operatorname{tr}(\rho(g)) = \sum \lambda_i$.
[/guided]
[/step]
[step:Apply the triangle inequality to obtain $|\chi(g)| \leq \chi(1)$]
We apply the triangle inequality for $\mathbb{C}$ to the sum $\sum_{i=1}^n \lambda_i$:
\begin{align*}
|\chi(g)| = \left| \sum_{i=1}^n \lambda_i \right| \leq \sum_{i=1}^n |\lambda_i|.
\end{align*}
Using $|\lambda_i| = 1$ from the previous step,
\begin{align*}
\sum_{i=1}^n |\lambda_i| = \sum_{i=1}^n 1 = n = \dim_{\mathbb{C}} V = \chi(1),
\end{align*}
where the last equality uses property (1) of [Elementary Properties of Characters](/theorems/2421). Hence $|\chi(g)| \leq \chi(1)$.
[/step]
[step:Characterize equality in the triangle inequality as a scalar-matrix condition]
We use the equality criterion for the triangle inequality in $\mathbb{C}$: for nonzero complex numbers $z_1, \ldots, z_n$,
\begin{align*}
\left|\sum_i z_i\right| = \sum_i |z_i| \iff \text{all } z_i \text{ lie on a common ray from the origin},
\end{align*}
i.e., there exist $\theta \in \mathbb{R}$ and $r_1, \ldots, r_n \geq 0$ with $z_i = r_i e^{i\theta}$ for all $i$. (For zero terms the condition is vacuous.)
Applying this with $z_i = \lambda_i$: equality $|\chi(g)| = \chi(1)$ holds if and only if there exists $\theta \in \mathbb{R}$ and $r_i \geq 0$ with $\lambda_i = r_i e^{i\theta}$ for every $i$. Since $|\lambda_i| = 1$, we have $r_i = 1$ for all $i$, so $\lambda_i = e^{i\theta}$ — a single common value $\lambda := e^{i\theta}$ for all $i$. Setting $\lambda := e^{i\theta}$, equality holds iff $\lambda_1 = \cdots = \lambda_n = \lambda$, which is the condition that $\rho(g) = \lambda \cdot \mathrm{id}_V$.
For the reverse direction, if $\rho(g) = \lambda \cdot \mathrm{id}_V$ for some $\lambda \in \mathbb{C}$, then $\chi(g) = n\lambda$ and $|\chi(g)| = n|\lambda|$. Since $\rho(g)^m = \mathrm{id}_V$ for $m = |g|$, we have $\lambda^m = 1$, so $\lambda$ is a root of unity and $|\lambda| = 1$. Thus $|\chi(g)| = n = \chi(1)$.
[guided]
The triangle inequality is an equality precisely when all summands point in the same direction. Formally: $|z_1 + \cdots + z_n| = |z_1| + \cdots + |z_n|$ if and only if all the nonzero $z_i$ have the same argument — they lie on a common ray from the origin. Geometrically, the displacement vectors stack head-to-tail in a straight line.
In our setting all $\lambda_i$ have modulus $1$, so they lie on the unit circle. The "common ray from origin" condition pins them all to a single point on the circle: $\lambda_1 = \cdots = \lambda_n = e^{i\theta}$ for some $\theta$.
What does it mean for all eigenvalues of $\rho(g)$ to coincide? Since $\rho(g)$ is **diagonalizable** (Step 1), having a single eigenvalue $\lambda$ means $\rho(g)$ is similar to $\lambda I$ — but a matrix similar to $\lambda I$ equals $\lambda I$ (because $A(\lambda I)A^{-1} = \lambda AA^{-1} = \lambda I$). So $\rho(g) = \lambda \cdot \mathrm{id}_V$ in any basis.
(The diagonalizability is essential: a Jordan block $\begin{pmatrix} \lambda & 1 \\ 0 & \lambda \end{pmatrix}$ has all eigenvalues equal but is not a scalar matrix. We use here that $\rho(g)$ has no nontrivial Jordan blocks, which is exactly Step 1.)
For the reverse direction, if $\rho(g) = \lambda \cdot \mathrm{id}_V$, then $\rho(g)^m = \lambda^m \cdot \mathrm{id}_V$. We also know $\rho(g)^m = \mathrm{id}_V$ (since $g^m = 1$). Hence $\lambda^m = 1$ and $\lambda$ is a root of unity. Then $|\chi(g)| = |\operatorname{tr}(\lambda \cdot \mathrm{id}_V)| = |n\lambda| = n = \chi(1)$.
[/guided]
[/step]
[step:Pin down equality to $g \in \ker \rho$ when $\chi(g) = \chi(1)$]
Suppose $\chi(g) = \chi(1)$ (the equality is now of complex values, not moduli). In particular $|\chi(g)| = |\chi(1)| = \chi(1)$, so by Step 3, $\rho(g) = \lambda \cdot \mathrm{id}_V$ for some root of unity $\lambda$. Taking the trace:
\begin{align*}
\chi(g) = \operatorname{tr}(\lambda \cdot \mathrm{id}_V) = n\lambda = \chi(1) \cdot \lambda.
\end{align*}
The hypothesis $\chi(g) = \chi(1)$ combined with $\chi(1) = n \neq 0$ (we may assume $V \neq 0$; if $V = 0$ the statement is vacuous) gives $\lambda = 1$. Hence $\rho(g) = \mathrm{id}_V$, i.e. $g \in \ker \rho$.
Conversely, if $g \in \ker \rho$, then $\rho(g) = \mathrm{id}_V$ and $\chi(g) = n = \chi(1)$.
[guided]
Why does $\chi(g) = \chi(1)$ — equality of complex numbers, not moduli — force $g \in \ker \rho$? The argument has two layers.
First, $\chi(g) = \chi(1)$ implies $|\chi(g)| = |\chi(1)|$. Since $\chi(1) = n \in \mathbb{Z}_{>0}$, we have $|\chi(1)| = \chi(1)$, so $|\chi(g)| = \chi(1)$. By Step 3, this gives $\rho(g) = \lambda \cdot \mathrm{id}_V$ for some root of unity $\lambda$.
Second, with $\rho(g) = \lambda I$, the trace equation reads $\chi(g) = n\lambda$. The hypothesis $\chi(g) = \chi(1) = n$ now reads $n\lambda = n$, hence $\lambda = 1$, hence $\rho(g) = \mathrm{id}_V$, hence $g \in \ker \rho$.
The converse is immediate: $g \in \ker \rho \implies \rho(g) = \mathrm{id}_V \implies \chi(g) = n = \chi(1)$.
[/guided]
[/step]
[step:Collect the bound, the equality criterion, and the kernel characterization]
We have established: $|\chi(g)| \leq \chi(1)$ (Step 2); equality $|\chi(g)| = \chi(1)$ holds if and only if $\rho(g) = \lambda \cdot \mathrm{id}_V$ for some root of unity $\lambda \in \mathbb{C}$ (Step 3); the stronger equality $\chi(g) = \chi(1)$ holds if and only if $g \in \ker \rho$ (Step 4). This is the full statement of the theorem.
[/step]