Petrology and diagenetic evolution of Neoproterozoic ooids (Libby Formation, western Montana, U.S.A.)