Background
Zeckendorf representation is a numeral system where each digit has the value of Fibonacci numbers (1, 2, 3, 5, 8, 13, ...) and no two consecutive digits can be 1.
Nega-Zeckendorf representation is an extension to this system that allows encoding of all integers, not just positive ones. Its base values are nega-Fibonacci numbers (regular Fibonacci numbers with alternating sign; 1, -1, 2, -3, 5, -8, 13, -21, ..., also derived by extending regular Fibonacci sequence to negative indices).
Donald Knuth proved that every integer has a unique representation as a sum of non-consecutive nega-Fibonacci numbers (0 is an empty sum). Therefore, the corresponding nega-Zeckendorf representation is unique for every integer. 0 is represented as an empty list of digits.
Challenge
Given an integer (which can be positive, zero, or negative), compute its nega-Zeckendorf representation.
The output must consist of zeros and ones, either as numbers or characters. Output in either least-significant first or most-significant first order is acceptable (the latter is used in the test cases).
Standard code-golf rules apply. The shortest code in bytes wins.
Test cases
-10 = 101001 -9 = 100010 -8 = 100000 -7 = 100001 -6 = 100100 -5 = 100101 -4 = 1010 -3 = 1000 -2 = 1001 -1 = 10 0 = (empty) 1 = 1 2 = 100 3 = 101 4 = 10010 5 = 10000 6 = 10001 7 = 10100 8 = 10101 9 = 1001010 10 = 1001000 -11 = (-8) + (-3) = 101000 12 = 13 + (-1) = 1000010 24 = 34 + (-8) + (-3) + 1 = 100101001 -43 = (-55) + 13 + (-1) = 1001000010 (c.f. negafibonacci: 1, -1, 2, -3, 5, -8, 13, -21, 34, -55, ...)
m[a_] := Switch[Mod[a, 8], 1 | 5, a - 1, 0, a + 2, 4, a - 3, 2, 4 m[(a - 2)/4] + 1]; p[a_] := Switch[Mod[a, 4], 2, a - 2, 0, a + 1, 1 | 3, 2 m[(a - 1)/2]]; c[n_] := Nest[If[n > 0, p, m], 0, Abs@n];\$\endgroup\$