Thanks for the feedback! It's done via polygon area collision detection, but with a bit of a interior margin, you can control how easy the detection is on how far into the interior the internal polygon is. Each object and mouth shape have their own areas.