Making Kits feel calmer on mobile

I cleaned up the mobile Kits composer, dog listing header, and small assistant states that made the product feel twitchier than it should.

This was a pass on the parts of the product that should not ask for attention.

The mobile keyboard should not make chat feel fragile. The assistant should not repeat itself after you have already started talking. The header should not cover the dog you came to see.

The chat composer

On iOS, the Kits composer could jump above the keyboard in a way that made the surface feel less native.

The fix was mostly about getting out of the way and letting the viewport resize correctly. That is always satisfying: the right product feeling came from removing a clever workaround instead of adding another one.

The assistant

I also cleaned up some small Kits behaviors: intro messages that could reappear after the first send, streaming jitter, and mascot wiring that needed to point at the real open state.

Agent UI is sensitive to tiny interruptions. If the surface twitches or repeats itself, it starts to feel less like help and more like machinery.

The listing page

The last piece was a straightforward layout fix: the dog listing hero should never hide under the fixed header.

It is a small bug, but it sits right at the emotional top of the page. The first view should show the dog clearly.