Vyxal 3, 12 bytes
„¿⌐bU;ᵛB?„¿⌐
Try it Online! (link is to literate version)
Could be 5 bytes if it wasn't for the negative input requirement.
Explained
negative? if-top: bitwise-not ## „¿⌐to-binary uninterleave pair vec: from-binary ## bU;ᵛBinput negative? if-top: bitwise-not ## ?„¿⌐