I fixed `parseTimeOfDay` and `npm test` now passes.

**The bug:** The 12-hour conversion in `src/parse-time-of-day.mjs` used `(hour + (PM ? 12 : 0)) % 24`. That gave 12:05 AM as 725 instead of 5, and 12:30 PM as 30 instead of 750.

**The fix:** I changed that one line to `(hour % 12) + (suffix === "PM" ? 12 : 0)`. Now 12 AM is hour 0, 12 PM is hour 12, and other PM hours get 12 added, as the contract says.

I also tried extra cases beyond the test file: 12 AM/PM, lowercase am/pm, out-of-range values, extra or missing spaces, a trailing newline, full-width digits, and non-string inputs. All gave the result the contract calls for. My script printed one "FAIL", for the empty-array input, but that was a mistake in the script itself; the function correctly returned `null`.

`src/parse-time-of-day.mjs` is the only file I changed. I didn't touch anything under `protected/` and didn't write any notes.