3f11465a7e
Ground Proximity Detection: - BlobbiCompanion now calculates distanceFromGround from actual Y position - isOnGround = not entering, not dragging, and within 5px of ground position - Both values passed to BlobbiCompanionVisual as new props Shadow Visibility Rules: - Shadow only shows when isOnGround is true - Shadow hidden during: dragging, entry animations (fall/rise), falling - Shadow fades smoothly over SHADOW_FADE_DISTANCE (30px) - Additional subtle fade during float animation for breathing effect Shadow Visual Changes: - Position: bottom -12px → -20px (farther from body, feels like floor) - Width: 55% → 50% of size (slightly narrower) - Height: 10% → 8% of size (thinner, more subtle) - Blur: 3px → 4px (softer edge) - Max opacity: 0.4 → 0.35 (more subtle) - Added CSS opacity transition for smooth fade in/out States Where Shadow Is Hidden: - Being dragged (isDragging) - Fall entry animation (isEntering, entryType='fall') - Rise entry animation (isEntering, entryType='rise') - Any state where distanceFromGround >= 30px - Any off-ground position (y < groundPosition.y - 5) States Where Shadow Is Visible: - Idle on ground - Walking on ground - Floating (with subtle fade based on float offset)