The UX in your project is fantastic, well done. The motor kicks to simulate clicks, for example, are a really nice touch. I still don't get how the PCB detects flexing, I'll just put it down to magic.
MechE here. The way strain gauges work is with a long conductive trace that loops back on itself like a snake, or a radiator. This creates a conductive line that passes back and forth many times along the direction you want to measure strain in.
When the surface that the gauge is attached to flexes, the PCB itself actually stretches and shrinks by a very small amount, on the order of a thousandth of a percent. This causes the long conductive trace to get slightly longer, which measurably increases its resistance.