Deterministic hourly rotation shared by Kotlin and Swift readers so both platforms show the same item.
Local wall-clock hour slot; zoneOffsetSeconds is the zone offset at epochMs.
Index into a list of count items for slot; wraps and handles negative slots.
FNV-1a 32-bit over UTF-8 bytes, for stable per-item salts.