dec3d04ca5
The crumb origin was hardcoded at 67% of the visual wrapper height, which misaligned with variants whose mouths sit higher (leafy 50%, rosey 53%) or lower (froggi 72.5%, mushie 76.5%). generateChewingMouth now: - Emits data-blobbi-mouth="1" on the ellipse for DOM querying - Scales rx from the detected mouth width (clamped 4-14) so wide- mouthed variants like Froggi get a proportional chomp BlobbiPage crumb spawning now: - Queries [data-blobbi-mouth] inside [data-blobbi-visual] - Uses its bounding rect center for both crumbX and crumbY - Falls back to the old 67% ratio when the marker is absent (Owli) - Reward text remains anchored via the visual rect (unchanged)