Standard FFN: x → linear(d, d_ff) → activation → linear(d_ff, d). Params = 2·d·d_ff.
SwiGLU: 3 projections (gate, up, down). d_ff reduced to ~2.67× to match param budget.