for anyone who happens upon this question... Apparently at some point they added a special value for width called fit-content that, well, makes the width fit the content. I think. seems to work fine. I took OP's fiddle, added width: fit-content; to #outer, and now it just uh does it. convenient.
https://jsfiddle.net/ygcz2a30/