I have this so far, not really that styled but the basic layout.

Notice how the layout jars when there is an error message (and the error message might be longer than one line). I even tried forcing the layout to account for the height of the error even when it wasn't there, but (a) it only works for errors that are one line of text, and (b) it makes the inputs too far spread apart.

How do you better solve this so it doesn't jar the layout? Where should the errors be placed, how should you notify the user of the errors? I did it on blur which seems to be the recommended approach, but still there is this jarring behavior which is less than ideal. Any ideas how to improve?
Also wondering how this would best work on mobile / small portrait devices.