Follow-up from #587 review.
When a card's preview 404s and PetSprite swaps to the atlas fallback, the card renders with a fixed idle state. A card that never had a preview URL renders the atlas with cycleStates (visually diverse hashed states).
Cause: the caller decides cycleStates={!previewSrc} before knowing whether the preview will fail (src/components/pets/pet-gallery.tsx:872), and the internal fallback in PetSprite does not re-derive it.
Cosmetic only: both variants show a visible card. Possible fix: have PetSprite flip cycleStates on when useFallback is true, matching the no-preview path.
Follow-up from #587 review.
When a card's preview 404s and PetSprite swaps to the atlas fallback, the card renders with a fixed
idlestate. A card that never had a preview URL renders the atlas withcycleStates(visually diverse hashed states).Cause: the caller decides
cycleStates={!previewSrc}before knowing whether the preview will fail (src/components/pets/pet-gallery.tsx:872), and the internal fallback inPetSpritedoes not re-derive it.Cosmetic only: both variants show a visible card. Possible fix: have PetSprite flip
cycleStateson whenuseFallbackis true, matching the no-preview path.