I highly recommend not mashing up enormous statements like the above.
The first code example is a bit better, but still, break it up more.
Compute and debug the third term for Mathf.Lerp() first and assign it to a temporary variable and you’ll discover many things.
You may discover you’re dividing integers by integers, which of course yields integers.
If you divide 2 by 5 you will get zero in integer land.
Imagine! You may discover that 1 - 1.0f is zero in the first block of code. Dividing by zero yields nothing but delicious NaN bread, unfortunately without garlic.
You may also discover in the second block of code that you’re dividing by zero, although I suppose if cards.Count is zero, none of this would run, but I am only inferring that.
If you have more than one or two dots (.) in a single statement, you’re just being mean to yourself.
Putting lots of code on one line DOES NOT make it any faster. That’s not how compiled code works.
The longer your lines of code are, the harder they will be for you to understand them.