But start a pair of lines with || so each disjunct
is on its own line, and then it reads at least as nicely as Variant2.
Possible downside is that during debugging
it's harder to set breakpoint where you want it,
or to insert statements for "print debugging".
 Does that lead to more concise code, in
SLOC?
Probably not.
But itsit's easier to read,
and easier to believe that what you're reading is true.
It also gives you the opportunity to unit test individual helpers,
for added confidence that the code really does what it claims.