Method: input.csv holds one merged energy axis (1.196-1.606 eV) and 15 spectra (5-100 uW). The dominant feature is a broad PL peak near 1.33 eV (other weaker features near 1.54 eV and the rising edge above 1.58 eV were excluded). For each power I fitted a Lorentzian plus constant offset, A/(1+((E-xc)/w)^2)+c, over 1.2-1.5 eV (scipy curve_fit). Height A and centre xc were extracted for each power (A: 108 -> 1913 counts, xc: 1.3192 -> 1.3357 eV, FWHM about 0.056 eV). Two plots were made, intensity vs power and peak position vs power, and each was fitted with the allometric law y = a*P^b (nonlinear least squares).

Results (window 1.2-1.5 eV):
- Intensity vs power: a = 17.1, b = 1.017 +/- 0.019 (near-linear)
- Peak position vs power: a = 1.312 eV, b = 0.0040 +/- 0.0001 (a small blue-shift)

Robustness: window 1.25-1.45 eV gives b(I) = 1.025 +/- 0.019. A two-Lorentzian fit over 1.2-1.6 eV gives b(I) = 0.989 +/- 0.019. Weighting the fit by the Lorentzian parameter errors gives b between 0.94 and 0.98.

RESULT: b = 1.017 ± 0.019
