cam: Zcam: Fix inversion with saturation as chroma source
diff --git a/src/commonMain/kotlin/dev/kdrag0n/colorkt/cam/Zcam.kt b/src/commonMain/kotlin/dev/kdrag0n/colorkt/cam/Zcam.kt
index 7274047..3388cb0 100644
--- a/src/commonMain/kotlin/dev/kdrag0n/colorkt/cam/Zcam.kt
+++ b/src/commonMain/kotlin/dev/kdrag0n/colorkt/cam/Zcam.kt
@@ -97,7 +97,7 @@
         val Cz = when (chromaSource) {
             ChromaSource.CHROMA -> Cz
             ChromaSource.COLORFULNESS -> Double.NaN // not used
-            ChromaSource.SATURATION -> (Qz * square(Sz)) / (100.0 * Qz_w * cond.Qz_denom)
+            ChromaSource.SATURATION -> (Qz * square(Sz)) / (100.0 * Qz_w * cond.Sz_denom)
             ChromaSource.VIVIDNESS -> sqrt((square(Vz) - square(Jz - 58)) / 3.4)
             ChromaSource.BLACKNESS -> sqrt((square((100 - Kz) / 0.8) - square(Jz)) / 8)
             ChromaSource.WHITENESS -> sqrt(square(100.0 - Wz) - square(100.0 - Jz))
@@ -221,6 +221,7 @@
         @JvmSynthetic @JvmField internal val ez_coeff: Double
         @JvmSynthetic @JvmField internal val Qz_denom: Double
         @JvmSynthetic @JvmField internal val Sz_coeff: Double
+        @JvmSynthetic @JvmField internal val Sz_denom: Double
         @JvmSynthetic @JvmField internal val Mz_denom: Double
         @JvmSynthetic @JvmField internal val Qz_w: Double
 
@@ -232,6 +233,7 @@
             ez_coeff = F_l.pow(0.2)
             Qz_denom = F_b.pow(0.12)
             Sz_coeff = F_l.pow(0.6)
+            Sz_denom = F_l.pow(1.2)
 
             val Iz_w = xyzToIzazbz(referenceWhite)[0]
             Mz_denom = Iz_w.pow(0.78) * F_b.pow(0.1)