- Implement iterative complex FFT in fft_utils.cpp (power-of-2 only)
- Replace O(n^2) DFT with O(n log n) FFT in compute_power_spectrum
- Validation time drops from ~3200ms to ~97ms total (~160ms -> ~5ms per file)
- All tests pass (test_core_lib 6/6, demo_offline 20/20)