Quick answer: Unity build stripping keywords specified in a ShaderVariantCollection? Collection must be referenced from a Resources folder or registered in Always Included.
Authored variant collection; build strips the variants; runtime hits black pink because keyword not compiled.
Place in Resources
Resources/ShaderVariants.shadervariants. Auto-included; variants compiled.
Or add to graphics settings
Project Settings > Graphics > Preloaded Shaders. Explicit reference; preserved.
Verify in build log
Build report shows variants. Missing = the strip happened; reference wasn't enough.
“Stripping is reachability-based. Variant collections need reachability.”
If you author variant collections, place them where stripping respects. Document.