/**
 * css-bin-bits
 * BSD 2-Clause License
 * Copyright (c) PropJockey, 2021
 */

@supports (background: paint(css-bin-bits)) {
  :where([data-bin-bits]) {
    --bin-NOT: 1 - ; /* (var(--bin-NOT) a) */
    --bin-AND: * ; /* (a var(--bin-AND) b) */
    --bin-NAND: * -1 + 2 + -1 * ; /* clamp(0, a var(--bin-NAND) b, 1) */
    --bin-OR: + ; /* clamp(0, a var(--bin-OR) b, 1) */
    --bin-NOR: * -1 + 1 - ; /* (a var(--bin-NOR) b) */
    --bin-XOR: initial; /* (clamp(0, a var(--bin-OR) b, 1) var(--bin-AND) (var(--bin-NOT) (a var(--bin-AND) b))) */
  }

  @property --bin-a-sign { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-a-16 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-a-15 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-a-14 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-a-13 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-a-12 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-a-11 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-a-10 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-a-9 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-a-8 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-a-7 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-a-6 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-a-5 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-a-4 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-a-3 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-a-2 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-a-1 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-a-POS { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-a-NEG { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-a-EVEN { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-a-ODD { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-a-VAL { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-a-NOT { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-a-SIGNED { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-a-SIGNED-NOT { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-a-LEFT { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-a-RIGHT { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-a-SIGNED-RIGHT { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-a-MOD { syntax: "<integer>"; initial-value: 0; inherits: false; }
  /* internal --bin-__ props */
  @property --bin-__a-useRound { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-__a-inputAbsInt { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-__a-wo16 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-__a-wo15 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-__a-wo14 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-__a-wo13 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-__a-wo12 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-__a-wo11 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-__a-wo10 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-__a-wo9 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-__a-wo8 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-__a-wo7 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-__a-wo6 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-__a-wo5 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-__a-wo4 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-__a-wo3 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-__a-wo2 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-__a-shift { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-__a-shiftPow2 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-__a-sloTrunc { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-__a-modTrunc { syntax: "<integer>"; initial-value: 0; inherits: false; }

  /* INPUT via --bin-a-round or --bin-a-trunc with number in range [-65535, 65535] (+/- 16 bits) */
  /* if --bin-a-round is provided, +/- 0.5 away-from-zero rounding will be used to cast to integer. */
  /* Otherwise --bin-a-trunc is used and the value will be truncated to an integer (default 0). */
  /* --bin-a-VAL is available to check what it was rounded/truncated to */
  :where([data-bin-bits~="a"]) {
    --bin-a-round: initial;
    --bin-a-trunc: initial;
    --bin-__a-input: max(min(var(--bin-a-round, var(--bin-a-trunc, 0)), 65535), -65535);
    --bin-a-sign: calc(2 * (0.5 + max(-1, min(0,  100000 * var(--bin-__a-input)))));
    --bin-a-POS: calc(var(--bin-a-sign) / 2 + 0.5);
    --bin-a-NEG: calc(1 - var(--bin-a-POS));
    --bin-__a-inputAbs: max(var(--bin-__a-input), var(--bin-__a-input) * -1);
    --bin-__a-tryRound: min(1, var(--bin-a-round) * var(--bin-a-round) + 1);
    --bin-__a-useRound: var(--bin-__a-tryRound, 0);
    --bin-__a-inputAbsInt: calc(var(--bin-__a-inputAbs) - 0.5 * (1 - var(--bin-__a-useRound)));
    --bin-a-16: calc(1 + max(-1, min(0, 100000 * (var(--bin-__a-inputAbsInt) / 32768 - 1))));
    --bin-__a-wo16: calc(var(--bin-__a-inputAbsInt) - var(--bin-a-16) * 32768);
    --bin-a-15: calc(1 + max(-1, min(0, 100000 * (var(--bin-__a-wo16) / 16384 - 1))));
    --bin-__a-wo15: calc(var(--bin-__a-wo16) - var(--bin-a-15) * 16384);
    --bin-a-14: calc(1 + max(-1, min(0, 100000 * (var(--bin-__a-wo15) / 8192 - 1))));
    --bin-__a-wo14: calc(var(--bin-__a-wo15) - var(--bin-a-14) * 8192);
    --bin-a-13: calc(1 + max(-1, min(0, 100000 * (var(--bin-__a-wo14) / 4096 - 1))));
    --bin-__a-wo13: calc(var(--bin-__a-wo14) - var(--bin-a-13) * 4096);
    --bin-a-12: calc(1 + max(-1, min(0, 100000 * (var(--bin-__a-wo13) / 2048 - 1))));
    --bin-__a-wo12: calc(var(--bin-__a-wo13) - var(--bin-a-12) * 2048);
    --bin-a-11: calc(1 + max(-1, min(0, 100000 * (var(--bin-__a-wo12) / 1024 - 1))));
    --bin-__a-wo11: calc(var(--bin-__a-wo12) - var(--bin-a-11) * 1024);
    --bin-a-10: calc(1 + max(-1, min(0, 100000 * (var(--bin-__a-wo11) / 512 - 1))));
    --bin-__a-wo10: calc(var(--bin-__a-wo11) - var(--bin-a-10) * 512);
    --bin-a-9: calc(1 + max(-1, min(0, 100000 * (var(--bin-__a-wo10) / 256 - 1))));
    --bin-__a-wo9: calc(var(--bin-__a-wo10) - var(--bin-a-9) * 256);
    --bin-a-8: calc(1 + max(-1, min(0, 100000 * (var(--bin-__a-wo9) / 128 - 1))));
    --bin-__a-wo8: calc(var(--bin-__a-wo9) - var(--bin-a-8) * 128);
    --bin-a-7: calc(1 + max(-1, min(0, 100000 * (var(--bin-__a-wo8) / 64 - 1))));
    --bin-__a-wo7: calc(var(--bin-__a-wo8) - var(--bin-a-7) * 64);
    --bin-a-6: calc(1 + max(-1, min(0, 100000 * (var(--bin-__a-wo7) / 32 - 1))));
    --bin-__a-wo6: calc(var(--bin-__a-wo7) - var(--bin-a-6) * 32);
    --bin-a-5: calc(1 + max(-1, min(0, 100000 * (var(--bin-__a-wo6) / 16 - 1))));
    --bin-__a-wo5: calc(var(--bin-__a-wo6) - var(--bin-a-5) * 16);
    --bin-a-4: calc(1 + max(-1, min(0, 100000 * (var(--bin-__a-wo5) / 8 - 1))));
    --bin-__a-wo4: calc(var(--bin-__a-wo5) - var(--bin-a-4) * 8);
    --bin-a-3: calc(1 + max(-1, min(0, 100000 * (var(--bin-__a-wo4) / 4 - 1))));
    --bin-__a-wo3: calc(var(--bin-__a-wo4) - var(--bin-a-3) * 4);
    --bin-a-2: calc(1 + max(-1, min(0, 100000 * (var(--bin-__a-wo3) / 2 - 1))));
    --bin-__a-wo2: calc(var(--bin-__a-wo3) - var(--bin-a-2) * 2);
    --bin-a-1: calc(1 + max(-1, min(0, 100000 * (var(--bin-__a-wo2) / 1 - 1))));
    --bin-a-EVEN: calc(1 - var(--bin-a-1));
    --bin-a-ODD: var(--bin-a-1);
    --bin-a-VAL: calc(
      var(--bin-a-16) * 32768 +
      var(--bin-a-15) * 16384 +
      var(--bin-a-14) * 8192 +
      var(--bin-a-13) * 4096 +
      var(--bin-a-12) * 2048 +
      var(--bin-a-11) * 1024 +
      var(--bin-a-10) * 512 +
      var(--bin-a-9) * 256 +
      var(--bin-a-8) * 128 +
      var(--bin-a-7) * 64 +
      var(--bin-a-6) * 32 +
      var(--bin-a-5) * 16 +
      var(--bin-a-4) * 8 +
      var(--bin-a-3) * 4 +
      var(--bin-a-2) * 2 +
      var(--bin-a-1)
    );
    --bin-a-NOT: calc(
      (1 - var(--bin-a-16)) * 32768 +
      (1 - var(--bin-a-15)) * 16384 +
      (1 - var(--bin-a-14)) * 8192 +
      (1 - var(--bin-a-13)) * 4096 +
      (1 - var(--bin-a-12)) * 2048 +
      (1 - var(--bin-a-11)) * 1024 +
      (1 - var(--bin-a-10)) * 512 +
      (1 - var(--bin-a-9)) * 256 +
      (1 - var(--bin-a-8)) * 128 +
      (1 - var(--bin-a-7)) * 64 +
      (1 - var(--bin-a-6)) * 32 +
      (1 - var(--bin-a-5)) * 16 +
      (1 - var(--bin-a-4)) * 8 +
      (1 - var(--bin-a-3)) * 4 +
      (1 - var(--bin-a-2)) * 2 +
      (1 - var(--bin-a-1))
    );
    --bin-a-SIGNED: calc(var(--bin-a-sign) * var(--bin-a-VAL));
    --bin-a-SIGNED-NOT: calc(-1 * var(--bin-a-sign) * var(--bin-a-NOT));

    --bin-a-shift: initial;
    --bin-__a-shift: min(15, max(0, var(--bin-a-shift, 0)));
    --bin-__a-shiftPow2: calc(
      (min(1, max(0, var(--bin-__a-shift) - 0)) + 1) *
      (min(1, max(0, var(--bin-__a-shift) - 1)) + 1) *
      (min(1, max(0, var(--bin-__a-shift) - 2)) + 1) *
      (min(1, max(0, var(--bin-__a-shift) - 3)) + 1) *
      (min(1, max(0, var(--bin-__a-shift) - 4)) + 1) *
      (min(1, max(0, var(--bin-__a-shift) - 5)) + 1) *
      (min(1, max(0, var(--bin-__a-shift) - 6)) + 1) *
      (min(1, max(0, var(--bin-__a-shift) - 7)) + 1) *
      (min(1, max(0, var(--bin-__a-shift) - 8)) + 1) *
      (min(1, max(0, var(--bin-__a-shift) - 9)) + 1) *
      (min(1, max(0, var(--bin-__a-shift) - 10)) + 1) *
      (min(1, max(0, var(--bin-__a-shift) - 11)) + 1) *
      (min(1, max(0, var(--bin-__a-shift) - 12)) + 1) *
      (min(1, max(0, var(--bin-__a-shift) - 13)) + 1) *
      (min(1, max(0, var(--bin-__a-shift) - 14)) + 1)
    );
    --bin-__a-slOverflow: calc(var(--bin-a-VAL) / (65536 / var(--bin-__a-shiftPow2)));
    --bin-__a-sloTrunc: calc(var(--bin-__a-slOverflow) - 0.5);
    --bin-a-LEFT: calc(65536 * (var(--bin-__a-slOverflow) - var(--bin-__a-sloTrunc)));
    --bin-a-RIGHT: calc(var(--bin-a-VAL) / var(--bin-__a-shiftPow2) - 0.5);
    --bin-a-SIGNED-RIGHT: calc(var(--bin-a-sign) * (
      var(--bin-a-NEG) * (var(--bin-__a-shiftPow2) - 1) * (65536 / var(--bin-__a-shiftPow2)) +
      var(--bin-a-RIGHT)
    ));

    --bin-a-mod: initial;
    --bin-__a-modBy: max(1, var(--bin-a-mod, 1));
    --bin-__a-modTrunc: calc((var(--bin-a-VAL) / var(--bin-__a-modBy)) - 0.5);
    --bin-a-MOD: calc(var(--bin-a-VAL) - var(--bin-__a-modBy) * var(--bin-__a-modTrunc));
  }

  @property --bin-b-sign { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-b-16 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-b-15 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-b-14 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-b-13 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-b-12 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-b-11 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-b-10 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-b-9 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-b-8 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-b-7 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-b-6 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-b-5 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-b-4 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-b-3 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-b-2 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-b-1 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-b-POS { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-b-NEG { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-b-EVEN { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-b-ODD { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-b-VAL { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-b-NOT { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-b-SIGNED { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-b-SIGNED-NOT { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-b-LEFT { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-b-RIGHT { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-b-SIGNED-RIGHT { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-b-MOD { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-__b-useRound { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-__b-inputAbsInt { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-__b-wo16 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-__b-wo15 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-__b-wo14 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-__b-wo13 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-__b-wo12 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-__b-wo11 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-__b-wo10 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-__b-wo9 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-__b-wo8 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-__b-wo7 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-__b-wo6 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-__b-wo5 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-__b-wo4 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-__b-wo3 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-__b-wo2 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-__b-shift { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-__b-shiftPow2 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-__b-sloTrunc { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-__b-modTrunc { syntax: "<integer>"; initial-value: 0; inherits: false; }

  :where([data-bin-bits~="b"]) {
    --bin-b-round: initial;
    --bin-b-trunc: initial;
    --bin-__b-input: max(min(var(--bin-b-round, var(--bin-b-trunc, 0)), 65535), -65535);
    --bin-b-sign: calc(2 * (0.5 + max(-1, min(0,  100000 * var(--bin-__b-input)))));
    --bin-b-POS: calc(var(--bin-b-sign) / 2 + 0.5);
    --bin-b-NEG: calc(1 - var(--bin-b-POS));
    --bin-__b-inputAbs: max(var(--bin-__b-input), var(--bin-__b-input) * -1);
    --bin-__b-tryRound: min(1, var(--bin-b-round) * var(--bin-b-round) + 1);
    --bin-__b-useRound: var(--bin-__b-tryRound, 0);
    --bin-__b-inputAbsInt: calc(var(--bin-__b-inputAbs) - 0.5 * (1 - var(--bin-__b-useRound)));
    --bin-b-16: calc(1 + max(-1, min(0, 100000 * (var(--bin-__b-inputAbsInt) / 32768 - 1))));
    --bin-__b-wo16: calc(var(--bin-__b-inputAbsInt) - var(--bin-b-16) * 32768);
    --bin-b-15: calc(1 + max(-1, min(0, 100000 * (var(--bin-__b-wo16) / 16384 - 1))));
    --bin-__b-wo15: calc(var(--bin-__b-wo16) - var(--bin-b-15) * 16384);
    --bin-b-14: calc(1 + max(-1, min(0, 100000 * (var(--bin-__b-wo15) / 8192 - 1))));
    --bin-__b-wo14: calc(var(--bin-__b-wo15) - var(--bin-b-14) * 8192);
    --bin-b-13: calc(1 + max(-1, min(0, 100000 * (var(--bin-__b-wo14) / 4096 - 1))));
    --bin-__b-wo13: calc(var(--bin-__b-wo14) - var(--bin-b-13) * 4096);
    --bin-b-12: calc(1 + max(-1, min(0, 100000 * (var(--bin-__b-wo13) / 2048 - 1))));
    --bin-__b-wo12: calc(var(--bin-__b-wo13) - var(--bin-b-12) * 2048);
    --bin-b-11: calc(1 + max(-1, min(0, 100000 * (var(--bin-__b-wo12) / 1024 - 1))));
    --bin-__b-wo11: calc(var(--bin-__b-wo12) - var(--bin-b-11) * 1024);
    --bin-b-10: calc(1 + max(-1, min(0, 100000 * (var(--bin-__b-wo11) / 512 - 1))));
    --bin-__b-wo10: calc(var(--bin-__b-wo11) - var(--bin-b-10) * 512);
    --bin-b-9: calc(1 + max(-1, min(0, 100000 * (var(--bin-__b-wo10) / 256 - 1))));
    --bin-__b-wo9: calc(var(--bin-__b-wo10) - var(--bin-b-9) * 256);
    --bin-b-8: calc(1 + max(-1, min(0, 100000 * (var(--bin-__b-wo9) / 128 - 1))));
    --bin-__b-wo8: calc(var(--bin-__b-wo9) - var(--bin-b-8) * 128);
    --bin-b-7: calc(1 + max(-1, min(0, 100000 * (var(--bin-__b-wo8) / 64 - 1))));
    --bin-__b-wo7: calc(var(--bin-__b-wo8) - var(--bin-b-7) * 64);
    --bin-b-6: calc(1 + max(-1, min(0, 100000 * (var(--bin-__b-wo7) / 32 - 1))));
    --bin-__b-wo6: calc(var(--bin-__b-wo7) - var(--bin-b-6) * 32);
    --bin-b-5: calc(1 + max(-1, min(0, 100000 * (var(--bin-__b-wo6) / 16 - 1))));
    --bin-__b-wo5: calc(var(--bin-__b-wo6) - var(--bin-b-5) * 16);
    --bin-b-4: calc(1 + max(-1, min(0, 100000 * (var(--bin-__b-wo5) / 8 - 1))));
    --bin-__b-wo4: calc(var(--bin-__b-wo5) - var(--bin-b-4) * 8);
    --bin-b-3: calc(1 + max(-1, min(0, 100000 * (var(--bin-__b-wo4) / 4 - 1))));
    --bin-__b-wo3: calc(var(--bin-__b-wo4) - var(--bin-b-3) * 4);
    --bin-b-2: calc(1 + max(-1, min(0, 100000 * (var(--bin-__b-wo3) / 2 - 1))));
    --bin-__b-wo2: calc(var(--bin-__b-wo3) - var(--bin-b-2) * 2);
    --bin-b-1: calc(1 + max(-1, min(0, 100000 * (var(--bin-__b-wo2) / 1 - 1))));
    --bin-b-EVEN: calc(1 - var(--bin-b-1));
    --bin-b-ODD: var(--bin-b-1);
    --bin-b-VAL: calc(
      var(--bin-b-16) * 32768 +
      var(--bin-b-15) * 16384 +
      var(--bin-b-14) * 8192 +
      var(--bin-b-13) * 4096 +
      var(--bin-b-12) * 2048 +
      var(--bin-b-11) * 1024 +
      var(--bin-b-10) * 512 +
      var(--bin-b-9) * 256 +
      var(--bin-b-8) * 128 +
      var(--bin-b-7) * 64 +
      var(--bin-b-6) * 32 +
      var(--bin-b-5) * 16 +
      var(--bin-b-4) * 8 +
      var(--bin-b-3) * 4 +
      var(--bin-b-2) * 2 +
      var(--bin-b-1)
    );
    --bin-b-NOT: calc(
      (1 - var(--bin-b-16)) * 32768 +
      (1 - var(--bin-b-15)) * 16384 +
      (1 - var(--bin-b-14)) * 8192 +
      (1 - var(--bin-b-13)) * 4096 +
      (1 - var(--bin-b-12)) * 2048 +
      (1 - var(--bin-b-11)) * 1024 +
      (1 - var(--bin-b-10)) * 512 +
      (1 - var(--bin-b-9)) * 256 +
      (1 - var(--bin-b-8)) * 128 +
      (1 - var(--bin-b-7)) * 64 +
      (1 - var(--bin-b-6)) * 32 +
      (1 - var(--bin-b-5)) * 16 +
      (1 - var(--bin-b-4)) * 8 +
      (1 - var(--bin-b-3)) * 4 +
      (1 - var(--bin-b-2)) * 2 +
      (1 - var(--bin-b-1))
    );
    --bin-b-SIGNED: calc(var(--bin-b-sign) * var(--bin-b-VAL));
    --bin-b-SIGNED-NOT: calc(-1 * var(--bin-b-sign) * var(--bin-b-NOT));

    --bin-b-shift: initial;
    --bin-__b-shift: min(15, max(0, var(--bin-b-shift, 0)));
    --bin-__b-shiftPow2: calc(
      (min(1, max(0, var(--bin-__b-shift) - 0)) + 1) *
      (min(1, max(0, var(--bin-__b-shift) - 1)) + 1) *
      (min(1, max(0, var(--bin-__b-shift) - 2)) + 1) *
      (min(1, max(0, var(--bin-__b-shift) - 3)) + 1) *
      (min(1, max(0, var(--bin-__b-shift) - 4)) + 1) *
      (min(1, max(0, var(--bin-__b-shift) - 5)) + 1) *
      (min(1, max(0, var(--bin-__b-shift) - 6)) + 1) *
      (min(1, max(0, var(--bin-__b-shift) - 7)) + 1) *
      (min(1, max(0, var(--bin-__b-shift) - 8)) + 1) *
      (min(1, max(0, var(--bin-__b-shift) - 9)) + 1) *
      (min(1, max(0, var(--bin-__b-shift) - 10)) + 1) *
      (min(1, max(0, var(--bin-__b-shift) - 11)) + 1) *
      (min(1, max(0, var(--bin-__b-shift) - 12)) + 1) *
      (min(1, max(0, var(--bin-__b-shift) - 13)) + 1) *
      (min(1, max(0, var(--bin-__b-shift) - 14)) + 1)
    );
    --bin-__b-slOverflow: calc(var(--bin-b-VAL) / (65536 / var(--bin-__b-shiftPow2)));
    --bin-__b-sloTrunc: calc(var(--bin-__b-slOverflow) - 0.5);
    --bin-b-LEFT: calc(65536 * (var(--bin-__b-slOverflow) - var(--bin-__b-sloTrunc)));
    --bin-b-RIGHT: calc(var(--bin-b-VAL) / var(--bin-__b-shiftPow2) - 0.5);
    --bin-b-SIGNED-RIGHT: calc(var(--bin-b-sign) * (
      var(--bin-b-NEG) * (var(--bin-__b-shiftPow2) - 1) * (65536 / var(--bin-__b-shiftPow2)) +
      var(--bin-b-RIGHT)
    ));

    --bin-b-mod: initial;
    --bin-__b-modBy: max(1, var(--bin-b-mod, 1));
    --bin-__b-modTrunc: calc((var(--bin-b-VAL) / var(--bin-__b-modBy)) - 0.5);
    --bin-b-MOD: calc(var(--bin-b-VAL) - var(--bin-__b-modBy) * var(--bin-__b-modTrunc));
  }

  @property --bin-c-sign { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-c-16 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-c-15 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-c-14 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-c-13 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-c-12 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-c-11 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-c-10 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-c-9 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-c-8 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-c-7 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-c-6 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-c-5 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-c-4 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-c-3 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-c-2 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-c-1 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-c-POS { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-c-NEG { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-c-EVEN { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-c-ODD { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-c-VAL { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-c-NOT { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-c-SIGNED { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-c-SIGNED-NOT { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-c-LEFT { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-c-RIGHT { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-c-SIGNED-RIGHT { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-c-MOD { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-__c-useRound { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-__c-inputAbsInt { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-__c-wo16 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-__c-wo15 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-__c-wo14 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-__c-wo13 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-__c-wo12 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-__c-wo11 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-__c-wo10 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-__c-wo9 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-__c-wo8 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-__c-wo7 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-__c-wo6 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-__c-wo5 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-__c-wo4 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-__c-wo3 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-__c-wo2 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-__c-shift { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-__c-shiftPow2 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-__c-sloTrunc { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-__c-modTrunc { syntax: "<integer>"; initial-value: 0; inherits: false; }

  :where([data-bin-bits~="c"]) {
    --bin-c-round: initial;
    --bin-c-trunc: initial;
    --bin-__c-input: max(min(var(--bin-c-round, var(--bin-c-trunc, 0)), 65535), -65535);
    --bin-c-sign: calc(2 * (0.5 + max(-1, min(0,  100000 * var(--bin-__c-input)))));
    --bin-c-POS: calc(var(--bin-c-sign) / 2 + 0.5);
    --bin-c-NEG: calc(1 - var(--bin-c-POS));
    --bin-__c-inputAbs: max(var(--bin-__c-input), var(--bin-__c-input) * -1);
    --bin-__c-tryRound: min(1, var(--bin-c-round) * var(--bin-c-round) + 1);
    --bin-__c-useRound: var(--bin-__c-tryRound, 0);
    --bin-__c-inputAbsInt: calc(var(--bin-__c-inputAbs) - 0.5 * (1 - var(--bin-__c-useRound)));
    --bin-c-16: calc(1 + max(-1, min(0, 100000 * (var(--bin-__c-inputAbsInt) / 32768 - 1))));
    --bin-__c-wo16: calc(var(--bin-__c-inputAbsInt) - var(--bin-c-16) * 32768);
    --bin-c-15: calc(1 + max(-1, min(0, 100000 * (var(--bin-__c-wo16) / 16384 - 1))));
    --bin-__c-wo15: calc(var(--bin-__c-wo16) - var(--bin-c-15) * 16384);
    --bin-c-14: calc(1 + max(-1, min(0, 100000 * (var(--bin-__c-wo15) / 8192 - 1))));
    --bin-__c-wo14: calc(var(--bin-__c-wo15) - var(--bin-c-14) * 8192);
    --bin-c-13: calc(1 + max(-1, min(0, 100000 * (var(--bin-__c-wo14) / 4096 - 1))));
    --bin-__c-wo13: calc(var(--bin-__c-wo14) - var(--bin-c-13) * 4096);
    --bin-c-12: calc(1 + max(-1, min(0, 100000 * (var(--bin-__c-wo13) / 2048 - 1))));
    --bin-__c-wo12: calc(var(--bin-__c-wo13) - var(--bin-c-12) * 2048);
    --bin-c-11: calc(1 + max(-1, min(0, 100000 * (var(--bin-__c-wo12) / 1024 - 1))));
    --bin-__c-wo11: calc(var(--bin-__c-wo12) - var(--bin-c-11) * 1024);
    --bin-c-10: calc(1 + max(-1, min(0, 100000 * (var(--bin-__c-wo11) / 512 - 1))));
    --bin-__c-wo10: calc(var(--bin-__c-wo11) - var(--bin-c-10) * 512);
    --bin-c-9: calc(1 + max(-1, min(0, 100000 * (var(--bin-__c-wo10) / 256 - 1))));
    --bin-__c-wo9: calc(var(--bin-__c-wo10) - var(--bin-c-9) * 256);
    --bin-c-8: calc(1 + max(-1, min(0, 100000 * (var(--bin-__c-wo9) / 128 - 1))));
    --bin-__c-wo8: calc(var(--bin-__c-wo9) - var(--bin-c-8) * 128);
    --bin-c-7: calc(1 + max(-1, min(0, 100000 * (var(--bin-__c-wo8) / 64 - 1))));
    --bin-__c-wo7: calc(var(--bin-__c-wo8) - var(--bin-c-7) * 64);
    --bin-c-6: calc(1 + max(-1, min(0, 100000 * (var(--bin-__c-wo7) / 32 - 1))));
    --bin-__c-wo6: calc(var(--bin-__c-wo7) - var(--bin-c-6) * 32);
    --bin-c-5: calc(1 + max(-1, min(0, 100000 * (var(--bin-__c-wo6) / 16 - 1))));
    --bin-__c-wo5: calc(var(--bin-__c-wo6) - var(--bin-c-5) * 16);
    --bin-c-4: calc(1 + max(-1, min(0, 100000 * (var(--bin-__c-wo5) / 8 - 1))));
    --bin-__c-wo4: calc(var(--bin-__c-wo5) - var(--bin-c-4) * 8);
    --bin-c-3: calc(1 + max(-1, min(0, 100000 * (var(--bin-__c-wo4) / 4 - 1))));
    --bin-__c-wo3: calc(var(--bin-__c-wo4) - var(--bin-c-3) * 4);
    --bin-c-2: calc(1 + max(-1, min(0, 100000 * (var(--bin-__c-wo3) / 2 - 1))));
    --bin-__c-wo2: calc(var(--bin-__c-wo3) - var(--bin-c-2) * 2);
    --bin-c-1: calc(1 + max(-1, min(0, 100000 * (var(--bin-__c-wo2) / 1 - 1))));
    --bin-c-EVEN: calc(1 - var(--bin-c-1));
    --bin-c-ODD: var(--bin-c-1);
    --bin-c-VAL: calc(
      var(--bin-c-16) * 32768 +
      var(--bin-c-15) * 16384 +
      var(--bin-c-14) * 8192 +
      var(--bin-c-13) * 4096 +
      var(--bin-c-12) * 2048 +
      var(--bin-c-11) * 1024 +
      var(--bin-c-10) * 512 +
      var(--bin-c-9) * 256 +
      var(--bin-c-8) * 128 +
      var(--bin-c-7) * 64 +
      var(--bin-c-6) * 32 +
      var(--bin-c-5) * 16 +
      var(--bin-c-4) * 8 +
      var(--bin-c-3) * 4 +
      var(--bin-c-2) * 2 +
      var(--bin-c-1)
    );
    --bin-c-NOT: calc(
      (1 - var(--bin-c-16)) * 32768 +
      (1 - var(--bin-c-15)) * 16384 +
      (1 - var(--bin-c-14)) * 8192 +
      (1 - var(--bin-c-13)) * 4096 +
      (1 - var(--bin-c-12)) * 2048 +
      (1 - var(--bin-c-11)) * 1024 +
      (1 - var(--bin-c-10)) * 512 +
      (1 - var(--bin-c-9)) * 256 +
      (1 - var(--bin-c-8)) * 128 +
      (1 - var(--bin-c-7)) * 64 +
      (1 - var(--bin-c-6)) * 32 +
      (1 - var(--bin-c-5)) * 16 +
      (1 - var(--bin-c-4)) * 8 +
      (1 - var(--bin-c-3)) * 4 +
      (1 - var(--bin-c-2)) * 2 +
      (1 - var(--bin-c-1))
    );
    --bin-c-SIGNED: calc(var(--bin-c-sign) * var(--bin-c-VAL));
    --bin-c-SIGNED-NOT: calc(-1 * var(--bin-c-sign) * var(--bin-c-NOT));

    --bin-c-shift: initial;
    --bin-__c-shift: min(15, max(0, var(--bin-c-shift, 0)));
    --bin-__c-shiftPow2: calc(
      (min(1, max(0, var(--bin-__c-shift) - 0)) + 1) *
      (min(1, max(0, var(--bin-__c-shift) - 1)) + 1) *
      (min(1, max(0, var(--bin-__c-shift) - 2)) + 1) *
      (min(1, max(0, var(--bin-__c-shift) - 3)) + 1) *
      (min(1, max(0, var(--bin-__c-shift) - 4)) + 1) *
      (min(1, max(0, var(--bin-__c-shift) - 5)) + 1) *
      (min(1, max(0, var(--bin-__c-shift) - 6)) + 1) *
      (min(1, max(0, var(--bin-__c-shift) - 7)) + 1) *
      (min(1, max(0, var(--bin-__c-shift) - 8)) + 1) *
      (min(1, max(0, var(--bin-__c-shift) - 9)) + 1) *
      (min(1, max(0, var(--bin-__c-shift) - 10)) + 1) *
      (min(1, max(0, var(--bin-__c-shift) - 11)) + 1) *
      (min(1, max(0, var(--bin-__c-shift) - 12)) + 1) *
      (min(1, max(0, var(--bin-__c-shift) - 13)) + 1) *
      (min(1, max(0, var(--bin-__c-shift) - 14)) + 1)
    );
    --bin-__c-slOverflow: calc(var(--bin-c-VAL) / (65536 / var(--bin-__c-shiftPow2)));
    --bin-__c-sloTrunc: calc(var(--bin-__c-slOverflow) - 0.5);
    --bin-c-LEFT: calc(65536 * (var(--bin-__c-slOverflow) - var(--bin-__c-sloTrunc)));
    --bin-c-RIGHT: calc(var(--bin-c-VAL) / var(--bin-__c-shiftPow2) - 0.5);
    --bin-c-SIGNED-RIGHT: calc(var(--bin-c-sign) * (
      var(--bin-c-NEG) * (var(--bin-__c-shiftPow2) - 1) * (65536 / var(--bin-__c-shiftPow2)) +
      var(--bin-c-RIGHT)
    ));

    --bin-c-mod: initial;
    --bin-__c-modBy: max(1, var(--bin-c-mod, 1));
    --bin-__c-modTrunc: calc((var(--bin-c-VAL) / var(--bin-__c-modBy)) - 0.5);
    --bin-c-MOD: calc(var(--bin-c-VAL) - var(--bin-__c-modBy) * var(--bin-__c-modTrunc));
  }

  @property --bin-d-sign { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-d-16 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-d-15 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-d-14 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-d-13 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-d-12 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-d-11 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-d-10 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-d-9 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-d-8 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-d-7 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-d-6 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-d-5 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-d-4 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-d-3 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-d-2 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-d-1 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-d-POS { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-d-NEG { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-d-EVEN { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-d-ODD { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-d-VAL { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-d-NOT { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-d-SIGNED { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-d-SIGNED-NOT { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-d-LEFT { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-d-RIGHT { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-d-SIGNED-RIGHT { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-d-MOD { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-__d-useRound { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-__d-inputAbsInt { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-__d-wo16 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-__d-wo15 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-__d-wo14 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-__d-wo13 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-__d-wo12 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-__d-wo11 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-__d-wo10 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-__d-wo9 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-__d-wo8 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-__d-wo7 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-__d-wo6 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-__d-wo5 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-__d-wo4 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-__d-wo3 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-__d-wo2 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-__d-shift { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-__d-shiftPow2 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-__d-sloTrunc { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-__d-modTrunc { syntax: "<integer>"; initial-value: 0; inherits: false; }

  :where([data-bin-bits~="d"]) {
    --bin-d-round: initial;
    --bin-d-trunc: initial;
    --bin-__d-input: max(min(var(--bin-d-round, var(--bin-d-trunc, 0)), 65535), -65535);
    --bin-d-sign: calc(2 * (0.5 + max(-1, min(0,  100000 * var(--bin-__d-input)))));
    --bin-d-POS: calc(var(--bin-d-sign) / 2 + 0.5);
    --bin-d-NEG: calc(1 - var(--bin-d-POS));
    --bin-__d-inputAbs: max(var(--bin-__d-input), var(--bin-__d-input) * -1);
    --bin-__d-tryRound: min(1, var(--bin-d-round) * var(--bin-d-round) + 1);
    --bin-__d-useRound: var(--bin-__d-tryRound, 0);
    --bin-__d-inputAbsInt: calc(var(--bin-__d-inputAbs) - 0.5 * (1 - var(--bin-__d-useRound)));
    --bin-d-16: calc(1 + max(-1, min(0, 100000 * (var(--bin-__d-inputAbsInt) / 32768 - 1))));
    --bin-__d-wo16: calc(var(--bin-__d-inputAbsInt) - var(--bin-d-16) * 32768);
    --bin-d-15: calc(1 + max(-1, min(0, 100000 * (var(--bin-__d-wo16) / 16384 - 1))));
    --bin-__d-wo15: calc(var(--bin-__d-wo16) - var(--bin-d-15) * 16384);
    --bin-d-14: calc(1 + max(-1, min(0, 100000 * (var(--bin-__d-wo15) / 8192 - 1))));
    --bin-__d-wo14: calc(var(--bin-__d-wo15) - var(--bin-d-14) * 8192);
    --bin-d-13: calc(1 + max(-1, min(0, 100000 * (var(--bin-__d-wo14) / 4096 - 1))));
    --bin-__d-wo13: calc(var(--bin-__d-wo14) - var(--bin-d-13) * 4096);
    --bin-d-12: calc(1 + max(-1, min(0, 100000 * (var(--bin-__d-wo13) / 2048 - 1))));
    --bin-__d-wo12: calc(var(--bin-__d-wo13) - var(--bin-d-12) * 2048);
    --bin-d-11: calc(1 + max(-1, min(0, 100000 * (var(--bin-__d-wo12) / 1024 - 1))));
    --bin-__d-wo11: calc(var(--bin-__d-wo12) - var(--bin-d-11) * 1024);
    --bin-d-10: calc(1 + max(-1, min(0, 100000 * (var(--bin-__d-wo11) / 512 - 1))));
    --bin-__d-wo10: calc(var(--bin-__d-wo11) - var(--bin-d-10) * 512);
    --bin-d-9: calc(1 + max(-1, min(0, 100000 * (var(--bin-__d-wo10) / 256 - 1))));
    --bin-__d-wo9: calc(var(--bin-__d-wo10) - var(--bin-d-9) * 256);
    --bin-d-8: calc(1 + max(-1, min(0, 100000 * (var(--bin-__d-wo9) / 128 - 1))));
    --bin-__d-wo8: calc(var(--bin-__d-wo9) - var(--bin-d-8) * 128);
    --bin-d-7: calc(1 + max(-1, min(0, 100000 * (var(--bin-__d-wo8) / 64 - 1))));
    --bin-__d-wo7: calc(var(--bin-__d-wo8) - var(--bin-d-7) * 64);
    --bin-d-6: calc(1 + max(-1, min(0, 100000 * (var(--bin-__d-wo7) / 32 - 1))));
    --bin-__d-wo6: calc(var(--bin-__d-wo7) - var(--bin-d-6) * 32);
    --bin-d-5: calc(1 + max(-1, min(0, 100000 * (var(--bin-__d-wo6) / 16 - 1))));
    --bin-__d-wo5: calc(var(--bin-__d-wo6) - var(--bin-d-5) * 16);
    --bin-d-4: calc(1 + max(-1, min(0, 100000 * (var(--bin-__d-wo5) / 8 - 1))));
    --bin-__d-wo4: calc(var(--bin-__d-wo5) - var(--bin-d-4) * 8);
    --bin-d-3: calc(1 + max(-1, min(0, 100000 * (var(--bin-__d-wo4) / 4 - 1))));
    --bin-__d-wo3: calc(var(--bin-__d-wo4) - var(--bin-d-3) * 4);
    --bin-d-2: calc(1 + max(-1, min(0, 100000 * (var(--bin-__d-wo3) / 2 - 1))));
    --bin-__d-wo2: calc(var(--bin-__d-wo3) - var(--bin-d-2) * 2);
    --bin-d-1: calc(1 + max(-1, min(0, 100000 * (var(--bin-__d-wo2) / 1 - 1))));
    --bin-d-EVEN: calc(1 - var(--bin-d-1));
    --bin-d-ODD: var(--bin-d-1);
    --bin-d-VAL: calc(
      var(--bin-d-16) * 32768 +
      var(--bin-d-15) * 16384 +
      var(--bin-d-14) * 8192 +
      var(--bin-d-13) * 4096 +
      var(--bin-d-12) * 2048 +
      var(--bin-d-11) * 1024 +
      var(--bin-d-10) * 512 +
      var(--bin-d-9) * 256 +
      var(--bin-d-8) * 128 +
      var(--bin-d-7) * 64 +
      var(--bin-d-6) * 32 +
      var(--bin-d-5) * 16 +
      var(--bin-d-4) * 8 +
      var(--bin-d-3) * 4 +
      var(--bin-d-2) * 2 +
      var(--bin-d-1)
    );
    --bin-d-NOT: calc(
      (1 - var(--bin-d-16)) * 32768 +
      (1 - var(--bin-d-15)) * 16384 +
      (1 - var(--bin-d-14)) * 8192 +
      (1 - var(--bin-d-13)) * 4096 +
      (1 - var(--bin-d-12)) * 2048 +
      (1 - var(--bin-d-11)) * 1024 +
      (1 - var(--bin-d-10)) * 512 +
      (1 - var(--bin-d-9)) * 256 +
      (1 - var(--bin-d-8)) * 128 +
      (1 - var(--bin-d-7)) * 64 +
      (1 - var(--bin-d-6)) * 32 +
      (1 - var(--bin-d-5)) * 16 +
      (1 - var(--bin-d-4)) * 8 +
      (1 - var(--bin-d-3)) * 4 +
      (1 - var(--bin-d-2)) * 2 +
      (1 - var(--bin-d-1))
    );
    --bin-d-SIGNED: calc(var(--bin-d-sign) * var(--bin-d-VAL));
    --bin-d-SIGNED-NOT: calc(-1 * var(--bin-d-sign) * var(--bin-d-NOT));

    --bin-d-shift: initial;
    --bin-__d-shift: min(15, max(0, var(--bin-d-shift, 0)));
    --bin-__d-shiftPow2: calc(
      (min(1, max(0, var(--bin-__d-shift) - 0)) + 1) *
      (min(1, max(0, var(--bin-__d-shift) - 1)) + 1) *
      (min(1, max(0, var(--bin-__d-shift) - 2)) + 1) *
      (min(1, max(0, var(--bin-__d-shift) - 3)) + 1) *
      (min(1, max(0, var(--bin-__d-shift) - 4)) + 1) *
      (min(1, max(0, var(--bin-__d-shift) - 5)) + 1) *
      (min(1, max(0, var(--bin-__d-shift) - 6)) + 1) *
      (min(1, max(0, var(--bin-__d-shift) - 7)) + 1) *
      (min(1, max(0, var(--bin-__d-shift) - 8)) + 1) *
      (min(1, max(0, var(--bin-__d-shift) - 9)) + 1) *
      (min(1, max(0, var(--bin-__d-shift) - 10)) + 1) *
      (min(1, max(0, var(--bin-__d-shift) - 11)) + 1) *
      (min(1, max(0, var(--bin-__d-shift) - 12)) + 1) *
      (min(1, max(0, var(--bin-__d-shift) - 13)) + 1) *
      (min(1, max(0, var(--bin-__d-shift) - 14)) + 1)
    );
    --bin-__d-slOverflow: calc(var(--bin-d-VAL) / (65536 / var(--bin-__d-shiftPow2)));
    --bin-__d-sloTrunc: calc(var(--bin-__d-slOverflow) - 0.5);
    --bin-d-LEFT: calc(65536 * (var(--bin-__d-slOverflow) - var(--bin-__d-sloTrunc)));
    --bin-d-RIGHT: calc(var(--bin-d-VAL) / var(--bin-__d-shiftPow2) - 0.5);
    --bin-d-SIGNED-RIGHT: calc(var(--bin-d-sign) * (
      var(--bin-d-NEG) * (var(--bin-__d-shiftPow2) - 1) * (65536 / var(--bin-__d-shiftPow2)) +
      var(--bin-d-RIGHT)
    ));

    --bin-d-mod: initial;
    --bin-__d-modBy: max(1, var(--bin-d-mod, 1));
    --bin-__d-modTrunc: calc((var(--bin-d-VAL) / var(--bin-__d-modBy)) - 0.5);
    --bin-d-MOD: calc(var(--bin-d-VAL) - var(--bin-__d-modBy) * var(--bin-__d-modTrunc));
  }

  @property --bin-e-sign { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-e-16 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-e-15 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-e-14 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-e-13 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-e-12 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-e-11 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-e-10 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-e-9 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-e-8 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-e-7 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-e-6 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-e-5 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-e-4 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-e-3 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-e-2 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-e-1 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-e-POS { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-e-NEG { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-e-EVEN { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-e-ODD { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-e-VAL { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-e-NOT { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-e-SIGNED { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-e-SIGNED-NOT { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-e-LEFT { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-e-RIGHT { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-e-SIGNED-RIGHT { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-e-MOD { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-__e-useRound { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-__e-inputAbsInt { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-__e-wo16 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-__e-wo15 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-__e-wo14 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-__e-wo13 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-__e-wo12 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-__e-wo11 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-__e-wo10 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-__e-wo9 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-__e-wo8 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-__e-wo7 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-__e-wo6 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-__e-wo5 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-__e-wo4 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-__e-wo3 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-__e-wo2 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-__e-shift { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-__e-shiftPow2 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-__e-sloTrunc { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-__e-modTrunc { syntax: "<integer>"; initial-value: 0; inherits: false; }

  :where([data-bin-bits~="e"]) {
    --bin-e-round: initial;
    --bin-e-trunc: initial;
    --bin-__e-input: max(min(var(--bin-e-round, var(--bin-e-trunc, 0)), 65535), -65535);
    --bin-e-sign: calc(2 * (0.5 + max(-1, min(0,  100000 * var(--bin-__e-input)))));
    --bin-e-POS: calc(var(--bin-e-sign) / 2 + 0.5);
    --bin-e-NEG: calc(1 - var(--bin-e-POS));
    --bin-__e-inputAbs: max(var(--bin-__e-input), var(--bin-__e-input) * -1);
    --bin-__e-tryRound: min(1, var(--bin-e-round) * var(--bin-e-round) + 1);
    --bin-__e-useRound: var(--bin-__e-tryRound, 0);
    --bin-__e-inputAbsInt: calc(var(--bin-__e-inputAbs) - 0.5 * (1 - var(--bin-__e-useRound)));
    --bin-e-16: calc(1 + max(-1, min(0, 100000 * (var(--bin-__e-inputAbsInt) / 32768 - 1))));
    --bin-__e-wo16: calc(var(--bin-__e-inputAbsInt) - var(--bin-e-16) * 32768);
    --bin-e-15: calc(1 + max(-1, min(0, 100000 * (var(--bin-__e-wo16) / 16384 - 1))));
    --bin-__e-wo15: calc(var(--bin-__e-wo16) - var(--bin-e-15) * 16384);
    --bin-e-14: calc(1 + max(-1, min(0, 100000 * (var(--bin-__e-wo15) / 8192 - 1))));
    --bin-__e-wo14: calc(var(--bin-__e-wo15) - var(--bin-e-14) * 8192);
    --bin-e-13: calc(1 + max(-1, min(0, 100000 * (var(--bin-__e-wo14) / 4096 - 1))));
    --bin-__e-wo13: calc(var(--bin-__e-wo14) - var(--bin-e-13) * 4096);
    --bin-e-12: calc(1 + max(-1, min(0, 100000 * (var(--bin-__e-wo13) / 2048 - 1))));
    --bin-__e-wo12: calc(var(--bin-__e-wo13) - var(--bin-e-12) * 2048);
    --bin-e-11: calc(1 + max(-1, min(0, 100000 * (var(--bin-__e-wo12) / 1024 - 1))));
    --bin-__e-wo11: calc(var(--bin-__e-wo12) - var(--bin-e-11) * 1024);
    --bin-e-10: calc(1 + max(-1, min(0, 100000 * (var(--bin-__e-wo11) / 512 - 1))));
    --bin-__e-wo10: calc(var(--bin-__e-wo11) - var(--bin-e-10) * 512);
    --bin-e-9: calc(1 + max(-1, min(0, 100000 * (var(--bin-__e-wo10) / 256 - 1))));
    --bin-__e-wo9: calc(var(--bin-__e-wo10) - var(--bin-e-9) * 256);
    --bin-e-8: calc(1 + max(-1, min(0, 100000 * (var(--bin-__e-wo9) / 128 - 1))));
    --bin-__e-wo8: calc(var(--bin-__e-wo9) - var(--bin-e-8) * 128);
    --bin-e-7: calc(1 + max(-1, min(0, 100000 * (var(--bin-__e-wo8) / 64 - 1))));
    --bin-__e-wo7: calc(var(--bin-__e-wo8) - var(--bin-e-7) * 64);
    --bin-e-6: calc(1 + max(-1, min(0, 100000 * (var(--bin-__e-wo7) / 32 - 1))));
    --bin-__e-wo6: calc(var(--bin-__e-wo7) - var(--bin-e-6) * 32);
    --bin-e-5: calc(1 + max(-1, min(0, 100000 * (var(--bin-__e-wo6) / 16 - 1))));
    --bin-__e-wo5: calc(var(--bin-__e-wo6) - var(--bin-e-5) * 16);
    --bin-e-4: calc(1 + max(-1, min(0, 100000 * (var(--bin-__e-wo5) / 8 - 1))));
    --bin-__e-wo4: calc(var(--bin-__e-wo5) - var(--bin-e-4) * 8);
    --bin-e-3: calc(1 + max(-1, min(0, 100000 * (var(--bin-__e-wo4) / 4 - 1))));
    --bin-__e-wo3: calc(var(--bin-__e-wo4) - var(--bin-e-3) * 4);
    --bin-e-2: calc(1 + max(-1, min(0, 100000 * (var(--bin-__e-wo3) / 2 - 1))));
    --bin-__e-wo2: calc(var(--bin-__e-wo3) - var(--bin-e-2) * 2);
    --bin-e-1: calc(1 + max(-1, min(0, 100000 * (var(--bin-__e-wo2) / 1 - 1))));
    --bin-e-EVEN: calc(1 - var(--bin-e-1));
    --bin-e-ODD: var(--bin-e-1);
    --bin-e-VAL: calc(
      var(--bin-e-16) * 32768 +
      var(--bin-e-15) * 16384 +
      var(--bin-e-14) * 8192 +
      var(--bin-e-13) * 4096 +
      var(--bin-e-12) * 2048 +
      var(--bin-e-11) * 1024 +
      var(--bin-e-10) * 512 +
      var(--bin-e-9) * 256 +
      var(--bin-e-8) * 128 +
      var(--bin-e-7) * 64 +
      var(--bin-e-6) * 32 +
      var(--bin-e-5) * 16 +
      var(--bin-e-4) * 8 +
      var(--bin-e-3) * 4 +
      var(--bin-e-2) * 2 +
      var(--bin-e-1)
    );
    --bin-e-NOT: calc(
      (1 - var(--bin-e-16)) * 32768 +
      (1 - var(--bin-e-15)) * 16384 +
      (1 - var(--bin-e-14)) * 8192 +
      (1 - var(--bin-e-13)) * 4096 +
      (1 - var(--bin-e-12)) * 2048 +
      (1 - var(--bin-e-11)) * 1024 +
      (1 - var(--bin-e-10)) * 512 +
      (1 - var(--bin-e-9)) * 256 +
      (1 - var(--bin-e-8)) * 128 +
      (1 - var(--bin-e-7)) * 64 +
      (1 - var(--bin-e-6)) * 32 +
      (1 - var(--bin-e-5)) * 16 +
      (1 - var(--bin-e-4)) * 8 +
      (1 - var(--bin-e-3)) * 4 +
      (1 - var(--bin-e-2)) * 2 +
      (1 - var(--bin-e-1))
    );
    --bin-e-SIGNED: calc(var(--bin-e-sign) * var(--bin-e-VAL));
    --bin-e-SIGNED-NOT: calc(-1 * var(--bin-e-sign) * var(--bin-e-NOT));

    --bin-e-shift: initial;
    --bin-__e-shift: min(15, max(0, var(--bin-e-shift, 0)));
    --bin-__e-shiftPow2: calc(
      (min(1, max(0, var(--bin-__e-shift) - 0)) + 1) *
      (min(1, max(0, var(--bin-__e-shift) - 1)) + 1) *
      (min(1, max(0, var(--bin-__e-shift) - 2)) + 1) *
      (min(1, max(0, var(--bin-__e-shift) - 3)) + 1) *
      (min(1, max(0, var(--bin-__e-shift) - 4)) + 1) *
      (min(1, max(0, var(--bin-__e-shift) - 5)) + 1) *
      (min(1, max(0, var(--bin-__e-shift) - 6)) + 1) *
      (min(1, max(0, var(--bin-__e-shift) - 7)) + 1) *
      (min(1, max(0, var(--bin-__e-shift) - 8)) + 1) *
      (min(1, max(0, var(--bin-__e-shift) - 9)) + 1) *
      (min(1, max(0, var(--bin-__e-shift) - 10)) + 1) *
      (min(1, max(0, var(--bin-__e-shift) - 11)) + 1) *
      (min(1, max(0, var(--bin-__e-shift) - 12)) + 1) *
      (min(1, max(0, var(--bin-__e-shift) - 13)) + 1) *
      (min(1, max(0, var(--bin-__e-shift) - 14)) + 1)
    );
    --bin-__e-slOverflow: calc(var(--bin-e-VAL) / (65536 / var(--bin-__e-shiftPow2)));
    --bin-__e-sloTrunc: calc(var(--bin-__e-slOverflow) - 0.5);
    --bin-e-LEFT: calc(65536 * (var(--bin-__e-slOverflow) - var(--bin-__e-sloTrunc)));
    --bin-e-RIGHT: calc(var(--bin-e-VAL) / var(--bin-__e-shiftPow2) - 0.5);
    --bin-e-SIGNED-RIGHT: calc(var(--bin-e-sign) * (
      var(--bin-e-NEG) * (var(--bin-__e-shiftPow2) - 1) * (65536 / var(--bin-__e-shiftPow2)) +
      var(--bin-e-RIGHT)
    ));

    --bin-e-mod: initial;
    --bin-__e-modBy: max(1, var(--bin-e-mod, 1));
    --bin-__e-modTrunc: calc((var(--bin-e-VAL) / var(--bin-__e-modBy)) - 0.5);
    --bin-e-MOD: calc(var(--bin-e-VAL) - var(--bin-__e-modBy) * var(--bin-__e-modTrunc));
  }

  @property --bin-f-sign { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-f-16 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-f-15 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-f-14 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-f-13 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-f-12 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-f-11 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-f-10 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-f-9 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-f-8 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-f-7 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-f-6 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-f-5 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-f-4 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-f-3 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-f-2 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-f-1 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-f-POS { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-f-NEG { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-f-EVEN { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-f-ODD { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-f-VAL { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-f-NOT { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-f-SIGNED { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-f-SIGNED-NOT { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-f-LEFT { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-f-RIGHT { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-f-SIGNED-RIGHT { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-f-MOD { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-__f-useRound { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-__f-inputAbsInt { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-__f-wo16 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-__f-wo15 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-__f-wo14 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-__f-wo13 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-__f-wo12 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-__f-wo11 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-__f-wo10 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-__f-wo9 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-__f-wo8 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-__f-wo7 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-__f-wo6 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-__f-wo5 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-__f-wo4 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-__f-wo3 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-__f-wo2 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-__f-shift { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-__f-shiftPow2 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-__f-sloTrunc { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-__f-modTrunc { syntax: "<integer>"; initial-value: 0; inherits: false; }

  :where([data-bin-bits~="f"]) {
    --bin-f-round: initial;
    --bin-f-trunc: initial;
    --bin-__f-input: max(min(var(--bin-f-round, var(--bin-f-trunc, 0)), 65535), -65535);
    --bin-f-sign: calc(2 * (0.5 + max(-1, min(0,  100000 * var(--bin-__f-input)))));
    --bin-f-POS: calc(var(--bin-f-sign) / 2 + 0.5);
    --bin-f-NEG: calc(1 - var(--bin-f-POS));
    --bin-__f-inputAbs: max(var(--bin-__f-input), var(--bin-__f-input) * -1);
    --bin-__f-tryRound: min(1, var(--bin-f-round) * var(--bin-f-round) + 1);
    --bin-__f-useRound: var(--bin-__f-tryRound, 0);
    --bin-__f-inputAbsInt: calc(var(--bin-__f-inputAbs) - 0.5 * (1 - var(--bin-__f-useRound)));
    --bin-f-16: calc(1 + max(-1, min(0, 100000 * (var(--bin-__f-inputAbsInt) / 32768 - 1))));
    --bin-__f-wo16: calc(var(--bin-__f-inputAbsInt) - var(--bin-f-16) * 32768);
    --bin-f-15: calc(1 + max(-1, min(0, 100000 * (var(--bin-__f-wo16) / 16384 - 1))));
    --bin-__f-wo15: calc(var(--bin-__f-wo16) - var(--bin-f-15) * 16384);
    --bin-f-14: calc(1 + max(-1, min(0, 100000 * (var(--bin-__f-wo15) / 8192 - 1))));
    --bin-__f-wo14: calc(var(--bin-__f-wo15) - var(--bin-f-14) * 8192);
    --bin-f-13: calc(1 + max(-1, min(0, 100000 * (var(--bin-__f-wo14) / 4096 - 1))));
    --bin-__f-wo13: calc(var(--bin-__f-wo14) - var(--bin-f-13) * 4096);
    --bin-f-12: calc(1 + max(-1, min(0, 100000 * (var(--bin-__f-wo13) / 2048 - 1))));
    --bin-__f-wo12: calc(var(--bin-__f-wo13) - var(--bin-f-12) * 2048);
    --bin-f-11: calc(1 + max(-1, min(0, 100000 * (var(--bin-__f-wo12) / 1024 - 1))));
    --bin-__f-wo11: calc(var(--bin-__f-wo12) - var(--bin-f-11) * 1024);
    --bin-f-10: calc(1 + max(-1, min(0, 100000 * (var(--bin-__f-wo11) / 512 - 1))));
    --bin-__f-wo10: calc(var(--bin-__f-wo11) - var(--bin-f-10) * 512);
    --bin-f-9: calc(1 + max(-1, min(0, 100000 * (var(--bin-__f-wo10) / 256 - 1))));
    --bin-__f-wo9: calc(var(--bin-__f-wo10) - var(--bin-f-9) * 256);
    --bin-f-8: calc(1 + max(-1, min(0, 100000 * (var(--bin-__f-wo9) / 128 - 1))));
    --bin-__f-wo8: calc(var(--bin-__f-wo9) - var(--bin-f-8) * 128);
    --bin-f-7: calc(1 + max(-1, min(0, 100000 * (var(--bin-__f-wo8) / 64 - 1))));
    --bin-__f-wo7: calc(var(--bin-__f-wo8) - var(--bin-f-7) * 64);
    --bin-f-6: calc(1 + max(-1, min(0, 100000 * (var(--bin-__f-wo7) / 32 - 1))));
    --bin-__f-wo6: calc(var(--bin-__f-wo7) - var(--bin-f-6) * 32);
    --bin-f-5: calc(1 + max(-1, min(0, 100000 * (var(--bin-__f-wo6) / 16 - 1))));
    --bin-__f-wo5: calc(var(--bin-__f-wo6) - var(--bin-f-5) * 16);
    --bin-f-4: calc(1 + max(-1, min(0, 100000 * (var(--bin-__f-wo5) / 8 - 1))));
    --bin-__f-wo4: calc(var(--bin-__f-wo5) - var(--bin-f-4) * 8);
    --bin-f-3: calc(1 + max(-1, min(0, 100000 * (var(--bin-__f-wo4) / 4 - 1))));
    --bin-__f-wo3: calc(var(--bin-__f-wo4) - var(--bin-f-3) * 4);
    --bin-f-2: calc(1 + max(-1, min(0, 100000 * (var(--bin-__f-wo3) / 2 - 1))));
    --bin-__f-wo2: calc(var(--bin-__f-wo3) - var(--bin-f-2) * 2);
    --bin-f-1: calc(1 + max(-1, min(0, 100000 * (var(--bin-__f-wo2) / 1 - 1))));
    --bin-f-EVEN: calc(1 - var(--bin-f-1));
    --bin-f-ODD: var(--bin-f-1);
    --bin-f-VAL: calc(
      var(--bin-f-16) * 32768 +
      var(--bin-f-15) * 16384 +
      var(--bin-f-14) * 8192 +
      var(--bin-f-13) * 4096 +
      var(--bin-f-12) * 2048 +
      var(--bin-f-11) * 1024 +
      var(--bin-f-10) * 512 +
      var(--bin-f-9) * 256 +
      var(--bin-f-8) * 128 +
      var(--bin-f-7) * 64 +
      var(--bin-f-6) * 32 +
      var(--bin-f-5) * 16 +
      var(--bin-f-4) * 8 +
      var(--bin-f-3) * 4 +
      var(--bin-f-2) * 2 +
      var(--bin-f-1)
    );
    --bin-f-NOT: calc(
      (1 - var(--bin-f-16)) * 32768 +
      (1 - var(--bin-f-15)) * 16384 +
      (1 - var(--bin-f-14)) * 8192 +
      (1 - var(--bin-f-13)) * 4096 +
      (1 - var(--bin-f-12)) * 2048 +
      (1 - var(--bin-f-11)) * 1024 +
      (1 - var(--bin-f-10)) * 512 +
      (1 - var(--bin-f-9)) * 256 +
      (1 - var(--bin-f-8)) * 128 +
      (1 - var(--bin-f-7)) * 64 +
      (1 - var(--bin-f-6)) * 32 +
      (1 - var(--bin-f-5)) * 16 +
      (1 - var(--bin-f-4)) * 8 +
      (1 - var(--bin-f-3)) * 4 +
      (1 - var(--bin-f-2)) * 2 +
      (1 - var(--bin-f-1))
    );
    --bin-f-SIGNED: calc(var(--bin-f-sign) * var(--bin-f-VAL));
    --bin-f-SIGNED-NOT: calc(-1 * var(--bin-f-sign) * var(--bin-f-NOT));

    --bin-f-shift: initial;
    --bin-__f-shift: min(15, max(0, var(--bin-f-shift, 0)));
    --bin-__f-shiftPow2: calc(
      (min(1, max(0, var(--bin-__f-shift) - 0)) + 1) *
      (min(1, max(0, var(--bin-__f-shift) - 1)) + 1) *
      (min(1, max(0, var(--bin-__f-shift) - 2)) + 1) *
      (min(1, max(0, var(--bin-__f-shift) - 3)) + 1) *
      (min(1, max(0, var(--bin-__f-shift) - 4)) + 1) *
      (min(1, max(0, var(--bin-__f-shift) - 5)) + 1) *
      (min(1, max(0, var(--bin-__f-shift) - 6)) + 1) *
      (min(1, max(0, var(--bin-__f-shift) - 7)) + 1) *
      (min(1, max(0, var(--bin-__f-shift) - 8)) + 1) *
      (min(1, max(0, var(--bin-__f-shift) - 9)) + 1) *
      (min(1, max(0, var(--bin-__f-shift) - 10)) + 1) *
      (min(1, max(0, var(--bin-__f-shift) - 11)) + 1) *
      (min(1, max(0, var(--bin-__f-shift) - 12)) + 1) *
      (min(1, max(0, var(--bin-__f-shift) - 13)) + 1) *
      (min(1, max(0, var(--bin-__f-shift) - 14)) + 1)
    );
    --bin-__f-slOverflow: calc(var(--bin-f-VAL) / (65536 / var(--bin-__f-shiftPow2)));
    --bin-__f-sloTrunc: calc(var(--bin-__f-slOverflow) - 0.5);
    --bin-f-LEFT: calc(65536 * (var(--bin-__f-slOverflow) - var(--bin-__f-sloTrunc)));
    --bin-f-RIGHT: calc(var(--bin-f-VAL) / var(--bin-__f-shiftPow2) - 0.5);
    --bin-f-SIGNED-RIGHT: calc(var(--bin-f-sign) * (
      var(--bin-f-NEG) * (var(--bin-__f-shiftPow2) - 1) * (65536 / var(--bin-__f-shiftPow2)) +
      var(--bin-f-RIGHT)
    ));

    --bin-f-mod: initial;
    --bin-__f-modBy: max(1, var(--bin-f-mod, 1));
    --bin-__f-modTrunc: calc((var(--bin-f-VAL) / var(--bin-__f-modBy)) - 0.5);
    --bin-f-MOD: calc(var(--bin-f-VAL) - var(--bin-__f-modBy) * var(--bin-__f-modTrunc));
  }

  @property --bin-ab-op { syntax: "*"; initial-value: initial; inherits: false; }
  @property --bin-ab-sign { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-ab-16 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-ab-15 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-ab-14 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-ab-13 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-ab-12 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-ab-11 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-ab-10 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-ab-9 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-ab-8 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-ab-7 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-ab-6 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-ab-5 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-ab-4 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-ab-3 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-ab-2 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-ab-1 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-ab-POS { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-ab-NEG { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-ab-EVEN { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-ab-ODD { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-ab-VAL { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-ab-NOT { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-ab-SIGNED { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-ab-SIGNED-NOT { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-ab-LEFT { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-ab-RIGHT { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-ab-SIGNED-RIGHT { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-ab-MOD { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-__ab-shift { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-__ab-shiftPow2 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-__ab-sloTrunc { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-__ab-modTrunc { syntax: "<integer>"; initial-value: 0; inherits: false; }
  :where([data-bin-bits~="ab"]) {
    --bin-ab-op: initial; /* XOR by default, example set to AND:: --bin-ab-op: var(--bin-AND); */
    --bin-__abp: max(0, min(1, var(--bin-a-POS) var(--bin-ab-op, + var(--bin-b-POS) - 2 * var(--bin-a-POS) *) var(--bin-b-POS)));
    --bin-ab-sign: calc((var(--bin-__abp) - 0.5) * 2);
    --bin-ab-POS: calc(var(--bin-ab-sign) / 2 + 0.5);
    --bin-ab-NEG: calc(1 - var(--bin-ab-POS));
    --bin-ab-16: max(0, min(1, var(--bin-a-16) var(--bin-ab-op, + var(--bin-b-16) - 2 * var(--bin-a-16) *) var(--bin-b-16)));
    --bin-ab-15: max(0, min(1, var(--bin-a-15) var(--bin-ab-op, + var(--bin-b-15) - 2 * var(--bin-a-15) *) var(--bin-b-15)));
    --bin-ab-14: max(0, min(1, var(--bin-a-14) var(--bin-ab-op, + var(--bin-b-14) - 2 * var(--bin-a-14) *) var(--bin-b-14)));
    --bin-ab-13: max(0, min(1, var(--bin-a-13) var(--bin-ab-op, + var(--bin-b-13) - 2 * var(--bin-a-13) *) var(--bin-b-13)));
    --bin-ab-12: max(0, min(1, var(--bin-a-12) var(--bin-ab-op, + var(--bin-b-12) - 2 * var(--bin-a-12) *) var(--bin-b-12)));
    --bin-ab-11: max(0, min(1, var(--bin-a-11) var(--bin-ab-op, + var(--bin-b-11) - 2 * var(--bin-a-11) *) var(--bin-b-11)));
    --bin-ab-10: max(0, min(1, var(--bin-a-10) var(--bin-ab-op, + var(--bin-b-10) - 2 * var(--bin-a-10) *) var(--bin-b-10)));
    --bin-ab-9: max(0, min(1, var(--bin-a-9) var(--bin-ab-op, + var(--bin-b-9) - 2 * var(--bin-a-9) *) var(--bin-b-9)));
    --bin-ab-8: max(0, min(1, var(--bin-a-8) var(--bin-ab-op, + var(--bin-b-8) - 2 * var(--bin-a-8) *) var(--bin-b-8)));
    --bin-ab-7: max(0, min(1, var(--bin-a-7) var(--bin-ab-op, + var(--bin-b-7) - 2 * var(--bin-a-7) *) var(--bin-b-7)));
    --bin-ab-6: max(0, min(1, var(--bin-a-6) var(--bin-ab-op, + var(--bin-b-6) - 2 * var(--bin-a-6) *) var(--bin-b-6)));
    --bin-ab-5: max(0, min(1, var(--bin-a-5) var(--bin-ab-op, + var(--bin-b-5) - 2 * var(--bin-a-5) *) var(--bin-b-5)));
    --bin-ab-4: max(0, min(1, var(--bin-a-4) var(--bin-ab-op, + var(--bin-b-4) - 2 * var(--bin-a-4) *) var(--bin-b-4)));
    --bin-ab-3: max(0, min(1, var(--bin-a-3) var(--bin-ab-op, + var(--bin-b-3) - 2 * var(--bin-a-3) *) var(--bin-b-3)));
    --bin-ab-2: max(0, min(1, var(--bin-a-2) var(--bin-ab-op, + var(--bin-b-2) - 2 * var(--bin-a-2) *) var(--bin-b-2)));
    --bin-ab-1: max(0, min(1, var(--bin-a-1) var(--bin-ab-op, + var(--bin-b-1) - 2 * var(--bin-a-1) *) var(--bin-b-1)));
    --bin-ab-EVEN: calc(1 - var(--bin-ab-1));
    --bin-ab-ODD: var(--bin-ab-1);
    --bin-ab-VAL: calc(
      var(--bin-ab-16) * 32768 +
      var(--bin-ab-15) * 16384 +
      var(--bin-ab-14) * 8192 +
      var(--bin-ab-13) * 4096 +
      var(--bin-ab-12) * 2048 +
      var(--bin-ab-11) * 1024 +
      var(--bin-ab-10) * 512 +
      var(--bin-ab-9) * 256 +
      var(--bin-ab-8) * 128 +
      var(--bin-ab-7) * 64 +
      var(--bin-ab-6) * 32 +
      var(--bin-ab-5) * 16 +
      var(--bin-ab-4) * 8 +
      var(--bin-ab-3) * 4 +
      var(--bin-ab-2) * 2 +
      var(--bin-ab-1)
    );
    --bin-ab-NOT: calc(
      (1 - var(--bin-ab-16)) * 32768 +
      (1 - var(--bin-ab-15)) * 16384 +
      (1 - var(--bin-ab-14)) * 8192 +
      (1 - var(--bin-ab-13)) * 4096 +
      (1 - var(--bin-ab-12)) * 2048 +
      (1 - var(--bin-ab-11)) * 1024 +
      (1 - var(--bin-ab-10)) * 512 +
      (1 - var(--bin-ab-9)) * 256 +
      (1 - var(--bin-ab-8)) * 128 +
      (1 - var(--bin-ab-7)) * 64 +
      (1 - var(--bin-ab-6)) * 32 +
      (1 - var(--bin-ab-5)) * 16 +
      (1 - var(--bin-ab-4)) * 8 +
      (1 - var(--bin-ab-3)) * 4 +
      (1 - var(--bin-ab-2)) * 2 +
      (1 - var(--bin-ab-1))
    );
    --bin-ab-SIGNED: calc(var(--bin-ab-sign) * var(--bin-ab-VAL));
    --bin-ab-SIGNED-NOT: calc(-1 * var(--bin-ab-sign) * var(--bin-ab-NOT));

    --bin-ab-shift: initial;
    --bin-__ab-shift: min(15, max(0, var(--bin-ab-shift, 0)));
    --bin-__ab-shiftPow2: calc(
      (min(1, max(0, var(--bin-__ab-shift) - 0)) + 1) *
      (min(1, max(0, var(--bin-__ab-shift) - 1)) + 1) *
      (min(1, max(0, var(--bin-__ab-shift) - 2)) + 1) *
      (min(1, max(0, var(--bin-__ab-shift) - 3)) + 1) *
      (min(1, max(0, var(--bin-__ab-shift) - 4)) + 1) *
      (min(1, max(0, var(--bin-__ab-shift) - 5)) + 1) *
      (min(1, max(0, var(--bin-__ab-shift) - 6)) + 1) *
      (min(1, max(0, var(--bin-__ab-shift) - 7)) + 1) *
      (min(1, max(0, var(--bin-__ab-shift) - 8)) + 1) *
      (min(1, max(0, var(--bin-__ab-shift) - 9)) + 1) *
      (min(1, max(0, var(--bin-__ab-shift) - 10)) + 1) *
      (min(1, max(0, var(--bin-__ab-shift) - 11)) + 1) *
      (min(1, max(0, var(--bin-__ab-shift) - 12)) + 1) *
      (min(1, max(0, var(--bin-__ab-shift) - 13)) + 1) *
      (min(1, max(0, var(--bin-__ab-shift) - 14)) + 1)
    );
    --bin-__ab-slOverflow: calc(var(--bin-ab-VAL) / (65536 / var(--bin-__ab-shiftPow2)));
    --bin-__ab-sloTrunc: calc(var(--bin-__ab-slOverflow) - 0.5);
    --bin-ab-LEFT: calc(65536 * (var(--bin-__ab-slOverflow) - var(--bin-__ab-sloTrunc)));
    --bin-ab-RIGHT: calc(var(--bin-ab-VAL) / var(--bin-__ab-shiftPow2) - 0.5);
    --bin-ab-SIGNED-RIGHT: calc(var(--bin-ab-sign) * (
      var(--bin-ab-NEG) * (var(--bin-__ab-shiftPow2) - 1) * (65536 / var(--bin-__ab-shiftPow2)) +
      var(--bin-ab-RIGHT)
    ));

    --bin-ab-mod: initial;
    --bin-__ab-modBy: max(1, var(--bin-ab-mod, 1));
    --bin-__ab-modTrunc: calc((var(--bin-ab-VAL) / var(--bin-__ab-modBy)) - 0.5);
    --bin-ab-MOD: calc(var(--bin-ab-VAL) - var(--bin-__ab-modBy) * var(--bin-__ab-modTrunc));
  }

  @property --bin-ac-op { syntax: "*"; initial-value: initial; inherits: false; }
  @property --bin-ac-sign { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-ac-16 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-ac-15 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-ac-14 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-ac-13 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-ac-12 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-ac-11 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-ac-10 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-ac-9 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-ac-8 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-ac-7 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-ac-6 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-ac-5 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-ac-4 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-ac-3 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-ac-2 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-ac-1 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-ac-POS { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-ac-NEG { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-ac-EVEN { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-ac-ODD { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-ac-VAL { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-ac-NOT { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-ac-SIGNED { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-ac-SIGNED-NOT { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-ac-LEFT { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-ac-RIGHT { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-ac-SIGNED-RIGHT { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-ac-MOD { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-__ac-shift { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-__ac-shiftPow2 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-__ac-sloTrunc { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-__ac-modTrunc { syntax: "<integer>"; initial-value: 0; inherits: false; }
  :where([data-bin-bits~="ac"]) {
    --bin-ac-op: initial; /* XOR by default, example set to AND:: --bin-ac-op: var(--bin-AND); */
    --bin-__acp: max(0, min(1, var(--bin-a-POS) var(--bin-ac-op, + var(--bin-b-POS) - 2 * var(--bin-a-POS) *) var(--bin-b-POS)));
    --bin-ac-sign: calc((var(--bin-__acp) - 0.5) * 2);
    --bin-ac-POS: calc(var(--bin-ac-sign) / 2 + 0.5);
    --bin-ac-NEG: calc(1 - var(--bin-ac-POS));
    --bin-ac-16: max(0, min(1, var(--bin-a-16) var(--bin-ac-op, + var(--bin-c-16) - 2 * var(--bin-a-16) *) var(--bin-c-16)));
    --bin-ac-15: max(0, min(1, var(--bin-a-15) var(--bin-ac-op, + var(--bin-c-15) - 2 * var(--bin-a-15) *) var(--bin-c-15)));
    --bin-ac-14: max(0, min(1, var(--bin-a-14) var(--bin-ac-op, + var(--bin-c-14) - 2 * var(--bin-a-14) *) var(--bin-c-14)));
    --bin-ac-13: max(0, min(1, var(--bin-a-13) var(--bin-ac-op, + var(--bin-c-13) - 2 * var(--bin-a-13) *) var(--bin-c-13)));
    --bin-ac-12: max(0, min(1, var(--bin-a-12) var(--bin-ac-op, + var(--bin-c-12) - 2 * var(--bin-a-12) *) var(--bin-c-12)));
    --bin-ac-11: max(0, min(1, var(--bin-a-11) var(--bin-ac-op, + var(--bin-c-11) - 2 * var(--bin-a-11) *) var(--bin-c-11)));
    --bin-ac-10: max(0, min(1, var(--bin-a-10) var(--bin-ac-op, + var(--bin-c-10) - 2 * var(--bin-a-10) *) var(--bin-c-10)));
    --bin-ac-9: max(0, min(1, var(--bin-a-9) var(--bin-ac-op, + var(--bin-c-9) - 2 * var(--bin-a-9) *) var(--bin-c-9)));
    --bin-ac-8: max(0, min(1, var(--bin-a-8) var(--bin-ac-op, + var(--bin-c-8) - 2 * var(--bin-a-8) *) var(--bin-c-8)));
    --bin-ac-7: max(0, min(1, var(--bin-a-7) var(--bin-ac-op, + var(--bin-c-7) - 2 * var(--bin-a-7) *) var(--bin-c-7)));
    --bin-ac-6: max(0, min(1, var(--bin-a-6) var(--bin-ac-op, + var(--bin-c-6) - 2 * var(--bin-a-6) *) var(--bin-c-6)));
    --bin-ac-5: max(0, min(1, var(--bin-a-5) var(--bin-ac-op, + var(--bin-c-5) - 2 * var(--bin-a-5) *) var(--bin-c-5)));
    --bin-ac-4: max(0, min(1, var(--bin-a-4) var(--bin-ac-op, + var(--bin-c-4) - 2 * var(--bin-a-4) *) var(--bin-c-4)));
    --bin-ac-3: max(0, min(1, var(--bin-a-3) var(--bin-ac-op, + var(--bin-c-3) - 2 * var(--bin-a-3) *) var(--bin-c-3)));
    --bin-ac-2: max(0, min(1, var(--bin-a-2) var(--bin-ac-op, + var(--bin-c-2) - 2 * var(--bin-a-2) *) var(--bin-c-2)));
    --bin-ac-1: max(0, min(1, var(--bin-a-1) var(--bin-ac-op, + var(--bin-c-1) - 2 * var(--bin-a-1) *) var(--bin-c-1)));
    --bin-ac-EVEN: calc(1 - var(--bin-ac-1));
    --bin-ac-ODD: var(--bin-ac-1);
    --bin-ac-VAL: calc(
      var(--bin-ac-16) * 32768 +
      var(--bin-ac-15) * 16384 +
      var(--bin-ac-14) * 8192 +
      var(--bin-ac-13) * 4096 +
      var(--bin-ac-12) * 2048 +
      var(--bin-ac-11) * 1024 +
      var(--bin-ac-10) * 512 +
      var(--bin-ac-9) * 256 +
      var(--bin-ac-8) * 128 +
      var(--bin-ac-7) * 64 +
      var(--bin-ac-6) * 32 +
      var(--bin-ac-5) * 16 +
      var(--bin-ac-4) * 8 +
      var(--bin-ac-3) * 4 +
      var(--bin-ac-2) * 2 +
      var(--bin-ac-1)
    );
    --bin-ac-NOT: calc(
      (1 - var(--bin-ac-16)) * 32768 +
      (1 - var(--bin-ac-15)) * 16384 +
      (1 - var(--bin-ac-14)) * 8192 +
      (1 - var(--bin-ac-13)) * 4096 +
      (1 - var(--bin-ac-12)) * 2048 +
      (1 - var(--bin-ac-11)) * 1024 +
      (1 - var(--bin-ac-10)) * 512 +
      (1 - var(--bin-ac-9)) * 256 +
      (1 - var(--bin-ac-8)) * 128 +
      (1 - var(--bin-ac-7)) * 64 +
      (1 - var(--bin-ac-6)) * 32 +
      (1 - var(--bin-ac-5)) * 16 +
      (1 - var(--bin-ac-4)) * 8 +
      (1 - var(--bin-ac-3)) * 4 +
      (1 - var(--bin-ac-2)) * 2 +
      (1 - var(--bin-ac-1))
    );
    --bin-ac-SIGNED: calc(var(--bin-ac-sign) * var(--bin-ac-VAL));
    --bin-ac-SIGNED-NOT: calc(-1 * var(--bin-ac-sign) * var(--bin-ac-NOT));

    --bin-ac-shift: initial;
    --bin-__ac-shift: min(15, max(0, var(--bin-ac-shift, 0)));
    --bin-__ac-shiftPow2: calc(
      (min(1, max(0, var(--bin-__ac-shift) - 0)) + 1) *
      (min(1, max(0, var(--bin-__ac-shift) - 1)) + 1) *
      (min(1, max(0, var(--bin-__ac-shift) - 2)) + 1) *
      (min(1, max(0, var(--bin-__ac-shift) - 3)) + 1) *
      (min(1, max(0, var(--bin-__ac-shift) - 4)) + 1) *
      (min(1, max(0, var(--bin-__ac-shift) - 5)) + 1) *
      (min(1, max(0, var(--bin-__ac-shift) - 6)) + 1) *
      (min(1, max(0, var(--bin-__ac-shift) - 7)) + 1) *
      (min(1, max(0, var(--bin-__ac-shift) - 8)) + 1) *
      (min(1, max(0, var(--bin-__ac-shift) - 9)) + 1) *
      (min(1, max(0, var(--bin-__ac-shift) - 10)) + 1) *
      (min(1, max(0, var(--bin-__ac-shift) - 11)) + 1) *
      (min(1, max(0, var(--bin-__ac-shift) - 12)) + 1) *
      (min(1, max(0, var(--bin-__ac-shift) - 13)) + 1) *
      (min(1, max(0, var(--bin-__ac-shift) - 14)) + 1)
    );
    --bin-__ac-slOverflow: calc(var(--bin-ac-VAL) / (65536 / var(--bin-__ac-shiftPow2)));
    --bin-__ac-sloTrunc: calc(var(--bin-__ac-slOverflow) - 0.5);
    --bin-ac-LEFT: calc(65536 * (var(--bin-__ac-slOverflow) - var(--bin-__ac-sloTrunc)));
    --bin-ac-RIGHT: calc(var(--bin-ac-VAL) / var(--bin-__ac-shiftPow2) - 0.5);
    --bin-ac-SIGNED-RIGHT: calc(var(--bin-ac-sign) * (
      var(--bin-ac-NEG) * (var(--bin-__ac-shiftPow2) - 1) * (65536 / var(--bin-__ac-shiftPow2)) +
      var(--bin-ac-RIGHT)
    ));

    --bin-ac-mod: initial;
    --bin-__ac-modBy: max(1, var(--bin-ac-mod, 1));
    --bin-__ac-modTrunc: calc((var(--bin-ac-VAL) / var(--bin-__ac-modBy)) - 0.5);
    --bin-ac-MOD: calc(var(--bin-ac-VAL) - var(--bin-__ac-modBy) * var(--bin-__ac-modTrunc));
  }

  @property --bin-ad-op { syntax: "*"; initial-value: initial; inherits: false; }
  @property --bin-ad-sign { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-ad-16 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-ad-15 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-ad-14 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-ad-13 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-ad-12 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-ad-11 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-ad-10 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-ad-9 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-ad-8 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-ad-7 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-ad-6 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-ad-5 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-ad-4 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-ad-3 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-ad-2 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-ad-1 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-ad-POS { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-ad-NEG { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-ad-EVEN { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-ad-ODD { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-ad-VAL { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-ad-NOT { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-ad-SIGNED { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-ad-SIGNED-NOT { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-ad-LEFT { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-ad-RIGHT { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-ad-SIGNED-RIGHT { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-ad-MOD { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-__ad-shift { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-__ad-shiftPow2 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-__ad-sloTrunc { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-__ad-modTrunc { syntax: "<integer>"; initial-value: 0; inherits: false; }
  :where([data-bin-bits~="ad"]) {
    --bin-ad-op: initial; /* XOR by default, example set to AND:: --bin-ad-op: var(--bin-AND); */
    --bin-__adp: max(0, min(1, var(--bin-a-POS) var(--bin-ad-op, + var(--bin-b-POS) - 2 * var(--bin-a-POS) *) var(--bin-b-POS)));
    --bin-ad-sign: calc((var(--bin-__adp) - 0.5) * 2);
    --bin-ad-POS: calc(var(--bin-ad-sign) / 2 + 0.5);
    --bin-ad-NEG: calc(1 - var(--bin-ad-POS));
    --bin-ad-16: max(0, min(1, var(--bin-a-16) var(--bin-ad-op, + var(--bin-d-16) - 2 * var(--bin-a-16) *) var(--bin-d-16)));
    --bin-ad-15: max(0, min(1, var(--bin-a-15) var(--bin-ad-op, + var(--bin-d-15) - 2 * var(--bin-a-15) *) var(--bin-d-15)));
    --bin-ad-14: max(0, min(1, var(--bin-a-14) var(--bin-ad-op, + var(--bin-d-14) - 2 * var(--bin-a-14) *) var(--bin-d-14)));
    --bin-ad-13: max(0, min(1, var(--bin-a-13) var(--bin-ad-op, + var(--bin-d-13) - 2 * var(--bin-a-13) *) var(--bin-d-13)));
    --bin-ad-12: max(0, min(1, var(--bin-a-12) var(--bin-ad-op, + var(--bin-d-12) - 2 * var(--bin-a-12) *) var(--bin-d-12)));
    --bin-ad-11: max(0, min(1, var(--bin-a-11) var(--bin-ad-op, + var(--bin-d-11) - 2 * var(--bin-a-11) *) var(--bin-d-11)));
    --bin-ad-10: max(0, min(1, var(--bin-a-10) var(--bin-ad-op, + var(--bin-d-10) - 2 * var(--bin-a-10) *) var(--bin-d-10)));
    --bin-ad-9: max(0, min(1, var(--bin-a-9) var(--bin-ad-op, + var(--bin-d-9) - 2 * var(--bin-a-9) *) var(--bin-d-9)));
    --bin-ad-8: max(0, min(1, var(--bin-a-8) var(--bin-ad-op, + var(--bin-d-8) - 2 * var(--bin-a-8) *) var(--bin-d-8)));
    --bin-ad-7: max(0, min(1, var(--bin-a-7) var(--bin-ad-op, + var(--bin-d-7) - 2 * var(--bin-a-7) *) var(--bin-d-7)));
    --bin-ad-6: max(0, min(1, var(--bin-a-6) var(--bin-ad-op, + var(--bin-d-6) - 2 * var(--bin-a-6) *) var(--bin-d-6)));
    --bin-ad-5: max(0, min(1, var(--bin-a-5) var(--bin-ad-op, + var(--bin-d-5) - 2 * var(--bin-a-5) *) var(--bin-d-5)));
    --bin-ad-4: max(0, min(1, var(--bin-a-4) var(--bin-ad-op, + var(--bin-d-4) - 2 * var(--bin-a-4) *) var(--bin-d-4)));
    --bin-ad-3: max(0, min(1, var(--bin-a-3) var(--bin-ad-op, + var(--bin-d-3) - 2 * var(--bin-a-3) *) var(--bin-d-3)));
    --bin-ad-2: max(0, min(1, var(--bin-a-2) var(--bin-ad-op, + var(--bin-d-2) - 2 * var(--bin-a-2) *) var(--bin-d-2)));
    --bin-ad-1: max(0, min(1, var(--bin-a-1) var(--bin-ad-op, + var(--bin-d-1) - 2 * var(--bin-a-1) *) var(--bin-d-1)));
    --bin-ad-EVEN: calc(1 - var(--bin-ad-1));
    --bin-ad-ODD: var(--bin-ad-1);
    --bin-ad-VAL: calc(
      var(--bin-ad-16) * 32768 +
      var(--bin-ad-15) * 16384 +
      var(--bin-ad-14) * 8192 +
      var(--bin-ad-13) * 4096 +
      var(--bin-ad-12) * 2048 +
      var(--bin-ad-11) * 1024 +
      var(--bin-ad-10) * 512 +
      var(--bin-ad-9) * 256 +
      var(--bin-ad-8) * 128 +
      var(--bin-ad-7) * 64 +
      var(--bin-ad-6) * 32 +
      var(--bin-ad-5) * 16 +
      var(--bin-ad-4) * 8 +
      var(--bin-ad-3) * 4 +
      var(--bin-ad-2) * 2 +
      var(--bin-ad-1)
    );
    --bin-ad-NOT: calc(
      (1 - var(--bin-ad-16)) * 32768 +
      (1 - var(--bin-ad-15)) * 16384 +
      (1 - var(--bin-ad-14)) * 8192 +
      (1 - var(--bin-ad-13)) * 4096 +
      (1 - var(--bin-ad-12)) * 2048 +
      (1 - var(--bin-ad-11)) * 1024 +
      (1 - var(--bin-ad-10)) * 512 +
      (1 - var(--bin-ad-9)) * 256 +
      (1 - var(--bin-ad-8)) * 128 +
      (1 - var(--bin-ad-7)) * 64 +
      (1 - var(--bin-ad-6)) * 32 +
      (1 - var(--bin-ad-5)) * 16 +
      (1 - var(--bin-ad-4)) * 8 +
      (1 - var(--bin-ad-3)) * 4 +
      (1 - var(--bin-ad-2)) * 2 +
      (1 - var(--bin-ad-1))
    );
    --bin-ad-SIGNED: calc(var(--bin-ad-sign) * var(--bin-ad-VAL));
    --bin-ad-SIGNED-NOT: calc(-1 * var(--bin-ad-sign) * var(--bin-ad-NOT));

    --bin-ad-shift: initial;
    --bin-__ad-shift: min(15, max(0, var(--bin-ad-shift, 0)));
    --bin-__ad-shiftPow2: calc(
      (min(1, max(0, var(--bin-__ad-shift) - 0)) + 1) *
      (min(1, max(0, var(--bin-__ad-shift) - 1)) + 1) *
      (min(1, max(0, var(--bin-__ad-shift) - 2)) + 1) *
      (min(1, max(0, var(--bin-__ad-shift) - 3)) + 1) *
      (min(1, max(0, var(--bin-__ad-shift) - 4)) + 1) *
      (min(1, max(0, var(--bin-__ad-shift) - 5)) + 1) *
      (min(1, max(0, var(--bin-__ad-shift) - 6)) + 1) *
      (min(1, max(0, var(--bin-__ad-shift) - 7)) + 1) *
      (min(1, max(0, var(--bin-__ad-shift) - 8)) + 1) *
      (min(1, max(0, var(--bin-__ad-shift) - 9)) + 1) *
      (min(1, max(0, var(--bin-__ad-shift) - 10)) + 1) *
      (min(1, max(0, var(--bin-__ad-shift) - 11)) + 1) *
      (min(1, max(0, var(--bin-__ad-shift) - 12)) + 1) *
      (min(1, max(0, var(--bin-__ad-shift) - 13)) + 1) *
      (min(1, max(0, var(--bin-__ad-shift) - 14)) + 1)
    );
    --bin-__ad-slOverflow: calc(var(--bin-ad-VAL) / (65536 / var(--bin-__ad-shiftPow2)));
    --bin-__ad-sloTrunc: calc(var(--bin-__ad-slOverflow) - 0.5);
    --bin-ad-LEFT: calc(65536 * (var(--bin-__ad-slOverflow) - var(--bin-__ad-sloTrunc)));
    --bin-ad-RIGHT: calc(var(--bin-ad-VAL) / var(--bin-__ad-shiftPow2) - 0.5);
    --bin-ad-SIGNED-RIGHT: calc(var(--bin-ad-sign) * (
      var(--bin-ad-NEG) * (var(--bin-__ad-shiftPow2) - 1) * (65536 / var(--bin-__ad-shiftPow2)) +
      var(--bin-ad-RIGHT)
    ));

    --bin-ad-mod: initial;
    --bin-__ad-modBy: max(1, var(--bin-ad-mod, 1));
    --bin-__ad-modTrunc: calc((var(--bin-ad-VAL) / var(--bin-__ad-modBy)) - 0.5);
    --bin-ad-MOD: calc(var(--bin-ad-VAL) - var(--bin-__ad-modBy) * var(--bin-__ad-modTrunc));
  }

  @property --bin-ae-op { syntax: "*"; initial-value: initial; inherits: false; }
  @property --bin-ae-sign { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-ae-16 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-ae-15 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-ae-14 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-ae-13 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-ae-12 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-ae-11 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-ae-10 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-ae-9 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-ae-8 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-ae-7 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-ae-6 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-ae-5 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-ae-4 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-ae-3 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-ae-2 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-ae-1 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-ae-POS { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-ae-NEG { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-ae-EVEN { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-ae-ODD { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-ae-VAL { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-ae-NOT { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-ae-SIGNED { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-ae-SIGNED-NOT { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-ae-LEFT { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-ae-RIGHT { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-ae-SIGNED-RIGHT { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-ae-MOD { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-__ae-shift { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-__ae-shiftPow2 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-__ae-sloTrunc { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-__ae-modTrunc { syntax: "<integer>"; initial-value: 0; inherits: false; }
  :where([data-bin-bits~="ae"]) {
    --bin-ae-op: initial; /* XOR by default, example set to AND:: --bin-ae-op: var(--bin-AND); */
    --bin-__aep: max(0, min(1, var(--bin-a-POS) var(--bin-ae-op, + var(--bin-b-POS) - 2 * var(--bin-a-POS) *) var(--bin-b-POS)));
    --bin-ae-sign: calc((var(--bin-__aep) - 0.5) * 2);
    --bin-ae-POS: calc(var(--bin-ae-sign) / 2 + 0.5);
    --bin-ae-NEG: calc(1 - var(--bin-ae-POS));
    --bin-ae-16: max(0, min(1, var(--bin-a-16) var(--bin-ae-op, + var(--bin-e-16) - 2 * var(--bin-a-16) *) var(--bin-e-16)));
    --bin-ae-15: max(0, min(1, var(--bin-a-15) var(--bin-ae-op, + var(--bin-e-15) - 2 * var(--bin-a-15) *) var(--bin-e-15)));
    --bin-ae-14: max(0, min(1, var(--bin-a-14) var(--bin-ae-op, + var(--bin-e-14) - 2 * var(--bin-a-14) *) var(--bin-e-14)));
    --bin-ae-13: max(0, min(1, var(--bin-a-13) var(--bin-ae-op, + var(--bin-e-13) - 2 * var(--bin-a-13) *) var(--bin-e-13)));
    --bin-ae-12: max(0, min(1, var(--bin-a-12) var(--bin-ae-op, + var(--bin-e-12) - 2 * var(--bin-a-12) *) var(--bin-e-12)));
    --bin-ae-11: max(0, min(1, var(--bin-a-11) var(--bin-ae-op, + var(--bin-e-11) - 2 * var(--bin-a-11) *) var(--bin-e-11)));
    --bin-ae-10: max(0, min(1, var(--bin-a-10) var(--bin-ae-op, + var(--bin-e-10) - 2 * var(--bin-a-10) *) var(--bin-e-10)));
    --bin-ae-9: max(0, min(1, var(--bin-a-9) var(--bin-ae-op, + var(--bin-e-9) - 2 * var(--bin-a-9) *) var(--bin-e-9)));
    --bin-ae-8: max(0, min(1, var(--bin-a-8) var(--bin-ae-op, + var(--bin-e-8) - 2 * var(--bin-a-8) *) var(--bin-e-8)));
    --bin-ae-7: max(0, min(1, var(--bin-a-7) var(--bin-ae-op, + var(--bin-e-7) - 2 * var(--bin-a-7) *) var(--bin-e-7)));
    --bin-ae-6: max(0, min(1, var(--bin-a-6) var(--bin-ae-op, + var(--bin-e-6) - 2 * var(--bin-a-6) *) var(--bin-e-6)));
    --bin-ae-5: max(0, min(1, var(--bin-a-5) var(--bin-ae-op, + var(--bin-e-5) - 2 * var(--bin-a-5) *) var(--bin-e-5)));
    --bin-ae-4: max(0, min(1, var(--bin-a-4) var(--bin-ae-op, + var(--bin-e-4) - 2 * var(--bin-a-4) *) var(--bin-e-4)));
    --bin-ae-3: max(0, min(1, var(--bin-a-3) var(--bin-ae-op, + var(--bin-e-3) - 2 * var(--bin-a-3) *) var(--bin-e-3)));
    --bin-ae-2: max(0, min(1, var(--bin-a-2) var(--bin-ae-op, + var(--bin-e-2) - 2 * var(--bin-a-2) *) var(--bin-e-2)));
    --bin-ae-1: max(0, min(1, var(--bin-a-1) var(--bin-ae-op, + var(--bin-e-1) - 2 * var(--bin-a-1) *) var(--bin-e-1)));
    --bin-ae-EVEN: calc(1 - var(--bin-ae-1));
    --bin-ae-ODD: var(--bin-ae-1);
    --bin-ae-VAL: calc(
      var(--bin-ae-16) * 32768 +
      var(--bin-ae-15) * 16384 +
      var(--bin-ae-14) * 8192 +
      var(--bin-ae-13) * 4096 +
      var(--bin-ae-12) * 2048 +
      var(--bin-ae-11) * 1024 +
      var(--bin-ae-10) * 512 +
      var(--bin-ae-9) * 256 +
      var(--bin-ae-8) * 128 +
      var(--bin-ae-7) * 64 +
      var(--bin-ae-6) * 32 +
      var(--bin-ae-5) * 16 +
      var(--bin-ae-4) * 8 +
      var(--bin-ae-3) * 4 +
      var(--bin-ae-2) * 2 +
      var(--bin-ae-1)
    );
    --bin-ae-NOT: calc(
      (1 - var(--bin-ae-16)) * 32768 +
      (1 - var(--bin-ae-15)) * 16384 +
      (1 - var(--bin-ae-14)) * 8192 +
      (1 - var(--bin-ae-13)) * 4096 +
      (1 - var(--bin-ae-12)) * 2048 +
      (1 - var(--bin-ae-11)) * 1024 +
      (1 - var(--bin-ae-10)) * 512 +
      (1 - var(--bin-ae-9)) * 256 +
      (1 - var(--bin-ae-8)) * 128 +
      (1 - var(--bin-ae-7)) * 64 +
      (1 - var(--bin-ae-6)) * 32 +
      (1 - var(--bin-ae-5)) * 16 +
      (1 - var(--bin-ae-4)) * 8 +
      (1 - var(--bin-ae-3)) * 4 +
      (1 - var(--bin-ae-2)) * 2 +
      (1 - var(--bin-ae-1))
    );
    --bin-ae-SIGNED: calc(var(--bin-ae-sign) * var(--bin-ae-VAL));
    --bin-ae-SIGNED-NOT: calc(-1 * var(--bin-ae-sign) * var(--bin-ae-NOT));

    --bin-ae-shift: initial;
    --bin-__ae-shift: min(15, max(0, var(--bin-ae-shift, 0)));
    --bin-__ae-shiftPow2: calc(
      (min(1, max(0, var(--bin-__ae-shift) - 0)) + 1) *
      (min(1, max(0, var(--bin-__ae-shift) - 1)) + 1) *
      (min(1, max(0, var(--bin-__ae-shift) - 2)) + 1) *
      (min(1, max(0, var(--bin-__ae-shift) - 3)) + 1) *
      (min(1, max(0, var(--bin-__ae-shift) - 4)) + 1) *
      (min(1, max(0, var(--bin-__ae-shift) - 5)) + 1) *
      (min(1, max(0, var(--bin-__ae-shift) - 6)) + 1) *
      (min(1, max(0, var(--bin-__ae-shift) - 7)) + 1) *
      (min(1, max(0, var(--bin-__ae-shift) - 8)) + 1) *
      (min(1, max(0, var(--bin-__ae-shift) - 9)) + 1) *
      (min(1, max(0, var(--bin-__ae-shift) - 10)) + 1) *
      (min(1, max(0, var(--bin-__ae-shift) - 11)) + 1) *
      (min(1, max(0, var(--bin-__ae-shift) - 12)) + 1) *
      (min(1, max(0, var(--bin-__ae-shift) - 13)) + 1) *
      (min(1, max(0, var(--bin-__ae-shift) - 14)) + 1)
    );
    --bin-__ae-slOverflow: calc(var(--bin-ae-VAL) / (65536 / var(--bin-__ae-shiftPow2)));
    --bin-__ae-sloTrunc: calc(var(--bin-__ae-slOverflow) - 0.5);
    --bin-ae-LEFT: calc(65536 * (var(--bin-__ae-slOverflow) - var(--bin-__ae-sloTrunc)));
    --bin-ae-RIGHT: calc(var(--bin-ae-VAL) / var(--bin-__ae-shiftPow2) - 0.5);
    --bin-ae-SIGNED-RIGHT: calc(var(--bin-ae-sign) * (
      var(--bin-ae-NEG) * (var(--bin-__ae-shiftPow2) - 1) * (65536 / var(--bin-__ae-shiftPow2)) +
      var(--bin-ae-RIGHT)
    ));

    --bin-ae-mod: initial;
    --bin-__ae-modBy: max(1, var(--bin-ae-mod, 1));
    --bin-__ae-modTrunc: calc((var(--bin-ae-VAL) / var(--bin-__ae-modBy)) - 0.5);
    --bin-ae-MOD: calc(var(--bin-ae-VAL) - var(--bin-__ae-modBy) * var(--bin-__ae-modTrunc));
  }

  @property --bin-af-op { syntax: "*"; initial-value: initial; inherits: false; }
  @property --bin-af-sign { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-af-16 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-af-15 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-af-14 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-af-13 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-af-12 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-af-11 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-af-10 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-af-9 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-af-8 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-af-7 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-af-6 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-af-5 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-af-4 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-af-3 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-af-2 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-af-1 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-af-POS { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-af-NEG { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-af-EVEN { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-af-ODD { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-af-VAL { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-af-NOT { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-af-SIGNED { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-af-SIGNED-NOT { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-af-LEFT { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-af-RIGHT { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-af-SIGNED-RIGHT { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-af-MOD { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-__af-shift { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-__af-shiftPow2 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-__af-sloTrunc { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-__af-modTrunc { syntax: "<integer>"; initial-value: 0; inherits: false; }
  :where([data-bin-bits~="af"]) {
    --bin-af-op: initial; /* XOR by default, example set to AND:: --bin-af-op: var(--bin-AND); */
    --bin-__afp: max(0, min(1, var(--bin-a-POS) var(--bin-af-op, + var(--bin-b-POS) - 2 * var(--bin-a-POS) *) var(--bin-b-POS)));
    --bin-af-sign: calc((var(--bin-__afp) - 0.5) * 2);
    --bin-af-POS: calc(var(--bin-af-sign) / 2 + 0.5);
    --bin-af-NEG: calc(1 - var(--bin-af-POS));
    --bin-af-16: max(0, min(1, var(--bin-a-16) var(--bin-af-op, + var(--bin-f-16) - 2 * var(--bin-a-16) *) var(--bin-f-16)));
    --bin-af-15: max(0, min(1, var(--bin-a-15) var(--bin-af-op, + var(--bin-f-15) - 2 * var(--bin-a-15) *) var(--bin-f-15)));
    --bin-af-14: max(0, min(1, var(--bin-a-14) var(--bin-af-op, + var(--bin-f-14) - 2 * var(--bin-a-14) *) var(--bin-f-14)));
    --bin-af-13: max(0, min(1, var(--bin-a-13) var(--bin-af-op, + var(--bin-f-13) - 2 * var(--bin-a-13) *) var(--bin-f-13)));
    --bin-af-12: max(0, min(1, var(--bin-a-12) var(--bin-af-op, + var(--bin-f-12) - 2 * var(--bin-a-12) *) var(--bin-f-12)));
    --bin-af-11: max(0, min(1, var(--bin-a-11) var(--bin-af-op, + var(--bin-f-11) - 2 * var(--bin-a-11) *) var(--bin-f-11)));
    --bin-af-10: max(0, min(1, var(--bin-a-10) var(--bin-af-op, + var(--bin-f-10) - 2 * var(--bin-a-10) *) var(--bin-f-10)));
    --bin-af-9: max(0, min(1, var(--bin-a-9) var(--bin-af-op, + var(--bin-f-9) - 2 * var(--bin-a-9) *) var(--bin-f-9)));
    --bin-af-8: max(0, min(1, var(--bin-a-8) var(--bin-af-op, + var(--bin-f-8) - 2 * var(--bin-a-8) *) var(--bin-f-8)));
    --bin-af-7: max(0, min(1, var(--bin-a-7) var(--bin-af-op, + var(--bin-f-7) - 2 * var(--bin-a-7) *) var(--bin-f-7)));
    --bin-af-6: max(0, min(1, var(--bin-a-6) var(--bin-af-op, + var(--bin-f-6) - 2 * var(--bin-a-6) *) var(--bin-f-6)));
    --bin-af-5: max(0, min(1, var(--bin-a-5) var(--bin-af-op, + var(--bin-f-5) - 2 * var(--bin-a-5) *) var(--bin-f-5)));
    --bin-af-4: max(0, min(1, var(--bin-a-4) var(--bin-af-op, + var(--bin-f-4) - 2 * var(--bin-a-4) *) var(--bin-f-4)));
    --bin-af-3: max(0, min(1, var(--bin-a-3) var(--bin-af-op, + var(--bin-f-3) - 2 * var(--bin-a-3) *) var(--bin-f-3)));
    --bin-af-2: max(0, min(1, var(--bin-a-2) var(--bin-af-op, + var(--bin-f-2) - 2 * var(--bin-a-2) *) var(--bin-f-2)));
    --bin-af-1: max(0, min(1, var(--bin-a-1) var(--bin-af-op, + var(--bin-f-1) - 2 * var(--bin-a-1) *) var(--bin-f-1)));
    --bin-af-EVEN: calc(1 - var(--bin-af-1));
    --bin-af-ODD: var(--bin-af-1);
    --bin-af-VAL: calc(
      var(--bin-af-16) * 32768 +
      var(--bin-af-15) * 16384 +
      var(--bin-af-14) * 8192 +
      var(--bin-af-13) * 4096 +
      var(--bin-af-12) * 2048 +
      var(--bin-af-11) * 1024 +
      var(--bin-af-10) * 512 +
      var(--bin-af-9) * 256 +
      var(--bin-af-8) * 128 +
      var(--bin-af-7) * 64 +
      var(--bin-af-6) * 32 +
      var(--bin-af-5) * 16 +
      var(--bin-af-4) * 8 +
      var(--bin-af-3) * 4 +
      var(--bin-af-2) * 2 +
      var(--bin-af-1)
    );
    --bin-af-NOT: calc(
      (1 - var(--bin-af-16)) * 32768 +
      (1 - var(--bin-af-15)) * 16384 +
      (1 - var(--bin-af-14)) * 8192 +
      (1 - var(--bin-af-13)) * 4096 +
      (1 - var(--bin-af-12)) * 2048 +
      (1 - var(--bin-af-11)) * 1024 +
      (1 - var(--bin-af-10)) * 512 +
      (1 - var(--bin-af-9)) * 256 +
      (1 - var(--bin-af-8)) * 128 +
      (1 - var(--bin-af-7)) * 64 +
      (1 - var(--bin-af-6)) * 32 +
      (1 - var(--bin-af-5)) * 16 +
      (1 - var(--bin-af-4)) * 8 +
      (1 - var(--bin-af-3)) * 4 +
      (1 - var(--bin-af-2)) * 2 +
      (1 - var(--bin-af-1))
    );
    --bin-af-SIGNED: calc(var(--bin-af-sign) * var(--bin-af-VAL));
    --bin-af-SIGNED-NOT: calc(-1 * var(--bin-af-sign) * var(--bin-af-NOT));

    --bin-af-shift: initial;
    --bin-__af-shift: min(15, max(0, var(--bin-af-shift, 0)));
    --bin-__af-shiftPow2: calc(
      (min(1, max(0, var(--bin-__af-shift) - 0)) + 1) *
      (min(1, max(0, var(--bin-__af-shift) - 1)) + 1) *
      (min(1, max(0, var(--bin-__af-shift) - 2)) + 1) *
      (min(1, max(0, var(--bin-__af-shift) - 3)) + 1) *
      (min(1, max(0, var(--bin-__af-shift) - 4)) + 1) *
      (min(1, max(0, var(--bin-__af-shift) - 5)) + 1) *
      (min(1, max(0, var(--bin-__af-shift) - 6)) + 1) *
      (min(1, max(0, var(--bin-__af-shift) - 7)) + 1) *
      (min(1, max(0, var(--bin-__af-shift) - 8)) + 1) *
      (min(1, max(0, var(--bin-__af-shift) - 9)) + 1) *
      (min(1, max(0, var(--bin-__af-shift) - 10)) + 1) *
      (min(1, max(0, var(--bin-__af-shift) - 11)) + 1) *
      (min(1, max(0, var(--bin-__af-shift) - 12)) + 1) *
      (min(1, max(0, var(--bin-__af-shift) - 13)) + 1) *
      (min(1, max(0, var(--bin-__af-shift) - 14)) + 1)
    );
    --bin-__af-slOverflow: calc(var(--bin-af-VAL) / (65536 / var(--bin-__af-shiftPow2)));
    --bin-__af-sloTrunc: calc(var(--bin-__af-slOverflow) - 0.5);
    --bin-af-LEFT: calc(65536 * (var(--bin-__af-slOverflow) - var(--bin-__af-sloTrunc)));
    --bin-af-RIGHT: calc(var(--bin-af-VAL) / var(--bin-__af-shiftPow2) - 0.5);
    --bin-af-SIGNED-RIGHT: calc(var(--bin-af-sign) * (
      var(--bin-af-NEG) * (var(--bin-__af-shiftPow2) - 1) * (65536 / var(--bin-__af-shiftPow2)) +
      var(--bin-af-RIGHT)
    ));

    --bin-af-mod: initial;
    --bin-__af-modBy: max(1, var(--bin-af-mod, 1));
    --bin-__af-modTrunc: calc((var(--bin-af-VAL) / var(--bin-__af-modBy)) - 0.5);
    --bin-af-MOD: calc(var(--bin-af-VAL) - var(--bin-__af-modBy) * var(--bin-__af-modTrunc));
  }

  @property --bin-bc-op { syntax: "*"; initial-value: initial; inherits: false; }
  @property --bin-bc-sign { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-bc-16 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-bc-15 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-bc-14 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-bc-13 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-bc-12 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-bc-11 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-bc-10 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-bc-9 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-bc-8 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-bc-7 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-bc-6 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-bc-5 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-bc-4 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-bc-3 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-bc-2 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-bc-1 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-bc-POS { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-bc-NEG { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-bc-EVEN { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-bc-ODD { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-bc-VAL { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-bc-NOT { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-bc-SIGNED { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-bc-SIGNED-NOT { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-bc-LEFT { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-bc-RIGHT { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-bc-SIGNED-RIGHT { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-bc-MOD { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-__bc-shift { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-__bc-shiftPow2 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-__bc-sloTrunc { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-__bc-modTrunc { syntax: "<integer>"; initial-value: 0; inherits: false; }
  :where([data-bin-bits~="bc"]) {
    --bin-bc-op: initial; /* XOR by default, example set to AND:: --bin-bc-op: var(--bin-AND); */
    --bin-__bcp: max(0, min(1, var(--bin-a-POS) var(--bin-bc-op, + var(--bin-b-POS) - 2 * var(--bin-a-POS) *) var(--bin-b-POS)));
    --bin-bc-sign: calc((var(--bin-__bcp) - 0.5) * 2);
    --bin-bc-POS: calc(var(--bin-bc-sign) / 2 + 0.5);
    --bin-bc-NEG: calc(1 - var(--bin-bc-POS));
    --bin-bc-16: max(0, min(1, var(--bin-b-16) var(--bin-bc-op, + var(--bin-c-16) - 2 * var(--bin-b-16) *) var(--bin-c-16)));
    --bin-bc-15: max(0, min(1, var(--bin-b-15) var(--bin-bc-op, + var(--bin-c-15) - 2 * var(--bin-b-15) *) var(--bin-c-15)));
    --bin-bc-14: max(0, min(1, var(--bin-b-14) var(--bin-bc-op, + var(--bin-c-14) - 2 * var(--bin-b-14) *) var(--bin-c-14)));
    --bin-bc-13: max(0, min(1, var(--bin-b-13) var(--bin-bc-op, + var(--bin-c-13) - 2 * var(--bin-b-13) *) var(--bin-c-13)));
    --bin-bc-12: max(0, min(1, var(--bin-b-12) var(--bin-bc-op, + var(--bin-c-12) - 2 * var(--bin-b-12) *) var(--bin-c-12)));
    --bin-bc-11: max(0, min(1, var(--bin-b-11) var(--bin-bc-op, + var(--bin-c-11) - 2 * var(--bin-b-11) *) var(--bin-c-11)));
    --bin-bc-10: max(0, min(1, var(--bin-b-10) var(--bin-bc-op, + var(--bin-c-10) - 2 * var(--bin-b-10) *) var(--bin-c-10)));
    --bin-bc-9: max(0, min(1, var(--bin-b-9) var(--bin-bc-op, + var(--bin-c-9) - 2 * var(--bin-b-9) *) var(--bin-c-9)));
    --bin-bc-8: max(0, min(1, var(--bin-b-8) var(--bin-bc-op, + var(--bin-c-8) - 2 * var(--bin-b-8) *) var(--bin-c-8)));
    --bin-bc-7: max(0, min(1, var(--bin-b-7) var(--bin-bc-op, + var(--bin-c-7) - 2 * var(--bin-b-7) *) var(--bin-c-7)));
    --bin-bc-6: max(0, min(1, var(--bin-b-6) var(--bin-bc-op, + var(--bin-c-6) - 2 * var(--bin-b-6) *) var(--bin-c-6)));
    --bin-bc-5: max(0, min(1, var(--bin-b-5) var(--bin-bc-op, + var(--bin-c-5) - 2 * var(--bin-b-5) *) var(--bin-c-5)));
    --bin-bc-4: max(0, min(1, var(--bin-b-4) var(--bin-bc-op, + var(--bin-c-4) - 2 * var(--bin-b-4) *) var(--bin-c-4)));
    --bin-bc-3: max(0, min(1, var(--bin-b-3) var(--bin-bc-op, + var(--bin-c-3) - 2 * var(--bin-b-3) *) var(--bin-c-3)));
    --bin-bc-2: max(0, min(1, var(--bin-b-2) var(--bin-bc-op, + var(--bin-c-2) - 2 * var(--bin-b-2) *) var(--bin-c-2)));
    --bin-bc-1: max(0, min(1, var(--bin-b-1) var(--bin-bc-op, + var(--bin-c-1) - 2 * var(--bin-b-1) *) var(--bin-c-1)));
    --bin-bc-EVEN: calc(1 - var(--bin-bc-1));
    --bin-bc-ODD: var(--bin-bc-1);
    --bin-bc-VAL: calc(
      var(--bin-bc-16) * 32768 +
      var(--bin-bc-15) * 16384 +
      var(--bin-bc-14) * 8192 +
      var(--bin-bc-13) * 4096 +
      var(--bin-bc-12) * 2048 +
      var(--bin-bc-11) * 1024 +
      var(--bin-bc-10) * 512 +
      var(--bin-bc-9) * 256 +
      var(--bin-bc-8) * 128 +
      var(--bin-bc-7) * 64 +
      var(--bin-bc-6) * 32 +
      var(--bin-bc-5) * 16 +
      var(--bin-bc-4) * 8 +
      var(--bin-bc-3) * 4 +
      var(--bin-bc-2) * 2 +
      var(--bin-bc-1)
    );
    --bin-bc-NOT: calc(
      (1 - var(--bin-bc-16)) * 32768 +
      (1 - var(--bin-bc-15)) * 16384 +
      (1 - var(--bin-bc-14)) * 8192 +
      (1 - var(--bin-bc-13)) * 4096 +
      (1 - var(--bin-bc-12)) * 2048 +
      (1 - var(--bin-bc-11)) * 1024 +
      (1 - var(--bin-bc-10)) * 512 +
      (1 - var(--bin-bc-9)) * 256 +
      (1 - var(--bin-bc-8)) * 128 +
      (1 - var(--bin-bc-7)) * 64 +
      (1 - var(--bin-bc-6)) * 32 +
      (1 - var(--bin-bc-5)) * 16 +
      (1 - var(--bin-bc-4)) * 8 +
      (1 - var(--bin-bc-3)) * 4 +
      (1 - var(--bin-bc-2)) * 2 +
      (1 - var(--bin-bc-1))
    );
    --bin-bc-SIGNED: calc(var(--bin-bc-sign) * var(--bin-bc-VAL));
    --bin-bc-SIGNED-NOT: calc(-1 * var(--bin-bc-sign) * var(--bin-bc-NOT));

    --bin-bc-shift: initial;
    --bin-__bc-shift: min(15, max(0, var(--bin-bc-shift, 0)));
    --bin-__bc-shiftPow2: calc(
      (min(1, max(0, var(--bin-__bc-shift) - 0)) + 1) *
      (min(1, max(0, var(--bin-__bc-shift) - 1)) + 1) *
      (min(1, max(0, var(--bin-__bc-shift) - 2)) + 1) *
      (min(1, max(0, var(--bin-__bc-shift) - 3)) + 1) *
      (min(1, max(0, var(--bin-__bc-shift) - 4)) + 1) *
      (min(1, max(0, var(--bin-__bc-shift) - 5)) + 1) *
      (min(1, max(0, var(--bin-__bc-shift) - 6)) + 1) *
      (min(1, max(0, var(--bin-__bc-shift) - 7)) + 1) *
      (min(1, max(0, var(--bin-__bc-shift) - 8)) + 1) *
      (min(1, max(0, var(--bin-__bc-shift) - 9)) + 1) *
      (min(1, max(0, var(--bin-__bc-shift) - 10)) + 1) *
      (min(1, max(0, var(--bin-__bc-shift) - 11)) + 1) *
      (min(1, max(0, var(--bin-__bc-shift) - 12)) + 1) *
      (min(1, max(0, var(--bin-__bc-shift) - 13)) + 1) *
      (min(1, max(0, var(--bin-__bc-shift) - 14)) + 1)
    );
    --bin-__bc-slOverflow: calc(var(--bin-bc-VAL) / (65536 / var(--bin-__bc-shiftPow2)));
    --bin-__bc-sloTrunc: calc(var(--bin-__bc-slOverflow) - 0.5);
    --bin-bc-LEFT: calc(65536 * (var(--bin-__bc-slOverflow) - var(--bin-__bc-sloTrunc)));
    --bin-bc-RIGHT: calc(var(--bin-bc-VAL) / var(--bin-__bc-shiftPow2) - 0.5);
    --bin-bc-SIGNED-RIGHT: calc(var(--bin-bc-sign) * (
      var(--bin-bc-NEG) * (var(--bin-__bc-shiftPow2) - 1) * (65536 / var(--bin-__bc-shiftPow2)) +
      var(--bin-bc-RIGHT)
    ));

    --bin-bc-mod: initial;
    --bin-__bc-modBy: max(1, var(--bin-bc-mod, 1));
    --bin-__bc-modTrunc: calc((var(--bin-bc-VAL) / var(--bin-__bc-modBy)) - 0.5);
    --bin-bc-MOD: calc(var(--bin-bc-VAL) - var(--bin-__bc-modBy) * var(--bin-__bc-modTrunc));
  }

  @property --bin-bd-op { syntax: "*"; initial-value: initial; inherits: false; }
  @property --bin-bd-sign { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-bd-16 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-bd-15 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-bd-14 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-bd-13 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-bd-12 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-bd-11 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-bd-10 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-bd-9 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-bd-8 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-bd-7 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-bd-6 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-bd-5 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-bd-4 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-bd-3 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-bd-2 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-bd-1 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-bd-POS { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-bd-NEG { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-bd-EVEN { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-bd-ODD { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-bd-VAL { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-bd-NOT { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-bd-SIGNED { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-bd-SIGNED-NOT { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-bd-LEFT { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-bd-RIGHT { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-bd-SIGNED-RIGHT { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-bd-MOD { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-__bd-shift { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-__bd-shiftPow2 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-__bd-sloTrunc { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-__bd-modTrunc { syntax: "<integer>"; initial-value: 0; inherits: false; }
  :where([data-bin-bits~="bd"]) {
    --bin-bd-op: initial; /* XOR by default, example set to AND:: --bin-bd-op: var(--bin-AND); */
    --bin-__bdp: max(0, min(1, var(--bin-a-POS) var(--bin-bd-op, + var(--bin-b-POS) - 2 * var(--bin-a-POS) *) var(--bin-b-POS)));
    --bin-bd-sign: calc((var(--bin-__bdp) - 0.5) * 2);
    --bin-bd-POS: calc(var(--bin-bd-sign) / 2 + 0.5);
    --bin-bd-NEG: calc(1 - var(--bin-bd-POS));
    --bin-bd-16: max(0, min(1, var(--bin-b-16) var(--bin-bd-op, + var(--bin-d-16) - 2 * var(--bin-b-16) *) var(--bin-d-16)));
    --bin-bd-15: max(0, min(1, var(--bin-b-15) var(--bin-bd-op, + var(--bin-d-15) - 2 * var(--bin-b-15) *) var(--bin-d-15)));
    --bin-bd-14: max(0, min(1, var(--bin-b-14) var(--bin-bd-op, + var(--bin-d-14) - 2 * var(--bin-b-14) *) var(--bin-d-14)));
    --bin-bd-13: max(0, min(1, var(--bin-b-13) var(--bin-bd-op, + var(--bin-d-13) - 2 * var(--bin-b-13) *) var(--bin-d-13)));
    --bin-bd-12: max(0, min(1, var(--bin-b-12) var(--bin-bd-op, + var(--bin-d-12) - 2 * var(--bin-b-12) *) var(--bin-d-12)));
    --bin-bd-11: max(0, min(1, var(--bin-b-11) var(--bin-bd-op, + var(--bin-d-11) - 2 * var(--bin-b-11) *) var(--bin-d-11)));
    --bin-bd-10: max(0, min(1, var(--bin-b-10) var(--bin-bd-op, + var(--bin-d-10) - 2 * var(--bin-b-10) *) var(--bin-d-10)));
    --bin-bd-9: max(0, min(1, var(--bin-b-9) var(--bin-bd-op, + var(--bin-d-9) - 2 * var(--bin-b-9) *) var(--bin-d-9)));
    --bin-bd-8: max(0, min(1, var(--bin-b-8) var(--bin-bd-op, + var(--bin-d-8) - 2 * var(--bin-b-8) *) var(--bin-d-8)));
    --bin-bd-7: max(0, min(1, var(--bin-b-7) var(--bin-bd-op, + var(--bin-d-7) - 2 * var(--bin-b-7) *) var(--bin-d-7)));
    --bin-bd-6: max(0, min(1, var(--bin-b-6) var(--bin-bd-op, + var(--bin-d-6) - 2 * var(--bin-b-6) *) var(--bin-d-6)));
    --bin-bd-5: max(0, min(1, var(--bin-b-5) var(--bin-bd-op, + var(--bin-d-5) - 2 * var(--bin-b-5) *) var(--bin-d-5)));
    --bin-bd-4: max(0, min(1, var(--bin-b-4) var(--bin-bd-op, + var(--bin-d-4) - 2 * var(--bin-b-4) *) var(--bin-d-4)));
    --bin-bd-3: max(0, min(1, var(--bin-b-3) var(--bin-bd-op, + var(--bin-d-3) - 2 * var(--bin-b-3) *) var(--bin-d-3)));
    --bin-bd-2: max(0, min(1, var(--bin-b-2) var(--bin-bd-op, + var(--bin-d-2) - 2 * var(--bin-b-2) *) var(--bin-d-2)));
    --bin-bd-1: max(0, min(1, var(--bin-b-1) var(--bin-bd-op, + var(--bin-d-1) - 2 * var(--bin-b-1) *) var(--bin-d-1)));
    --bin-bd-EVEN: calc(1 - var(--bin-bd-1));
    --bin-bd-ODD: var(--bin-bd-1);
    --bin-bd-VAL: calc(
      var(--bin-bd-16) * 32768 +
      var(--bin-bd-15) * 16384 +
      var(--bin-bd-14) * 8192 +
      var(--bin-bd-13) * 4096 +
      var(--bin-bd-12) * 2048 +
      var(--bin-bd-11) * 1024 +
      var(--bin-bd-10) * 512 +
      var(--bin-bd-9) * 256 +
      var(--bin-bd-8) * 128 +
      var(--bin-bd-7) * 64 +
      var(--bin-bd-6) * 32 +
      var(--bin-bd-5) * 16 +
      var(--bin-bd-4) * 8 +
      var(--bin-bd-3) * 4 +
      var(--bin-bd-2) * 2 +
      var(--bin-bd-1)
    );
    --bin-bd-NOT: calc(
      (1 - var(--bin-bd-16)) * 32768 +
      (1 - var(--bin-bd-15)) * 16384 +
      (1 - var(--bin-bd-14)) * 8192 +
      (1 - var(--bin-bd-13)) * 4096 +
      (1 - var(--bin-bd-12)) * 2048 +
      (1 - var(--bin-bd-11)) * 1024 +
      (1 - var(--bin-bd-10)) * 512 +
      (1 - var(--bin-bd-9)) * 256 +
      (1 - var(--bin-bd-8)) * 128 +
      (1 - var(--bin-bd-7)) * 64 +
      (1 - var(--bin-bd-6)) * 32 +
      (1 - var(--bin-bd-5)) * 16 +
      (1 - var(--bin-bd-4)) * 8 +
      (1 - var(--bin-bd-3)) * 4 +
      (1 - var(--bin-bd-2)) * 2 +
      (1 - var(--bin-bd-1))
    );
    --bin-bd-SIGNED: calc(var(--bin-bd-sign) * var(--bin-bd-VAL));
    --bin-bd-SIGNED-NOT: calc(-1 * var(--bin-bd-sign) * var(--bin-bd-NOT));

    --bin-bd-shift: initial;
    --bin-__bd-shift: min(15, max(0, var(--bin-bd-shift, 0)));
    --bin-__bd-shiftPow2: calc(
      (min(1, max(0, var(--bin-__bd-shift) - 0)) + 1) *
      (min(1, max(0, var(--bin-__bd-shift) - 1)) + 1) *
      (min(1, max(0, var(--bin-__bd-shift) - 2)) + 1) *
      (min(1, max(0, var(--bin-__bd-shift) - 3)) + 1) *
      (min(1, max(0, var(--bin-__bd-shift) - 4)) + 1) *
      (min(1, max(0, var(--bin-__bd-shift) - 5)) + 1) *
      (min(1, max(0, var(--bin-__bd-shift) - 6)) + 1) *
      (min(1, max(0, var(--bin-__bd-shift) - 7)) + 1) *
      (min(1, max(0, var(--bin-__bd-shift) - 8)) + 1) *
      (min(1, max(0, var(--bin-__bd-shift) - 9)) + 1) *
      (min(1, max(0, var(--bin-__bd-shift) - 10)) + 1) *
      (min(1, max(0, var(--bin-__bd-shift) - 11)) + 1) *
      (min(1, max(0, var(--bin-__bd-shift) - 12)) + 1) *
      (min(1, max(0, var(--bin-__bd-shift) - 13)) + 1) *
      (min(1, max(0, var(--bin-__bd-shift) - 14)) + 1)
    );
    --bin-__bd-slOverflow: calc(var(--bin-bd-VAL) / (65536 / var(--bin-__bd-shiftPow2)));
    --bin-__bd-sloTrunc: calc(var(--bin-__bd-slOverflow) - 0.5);
    --bin-bd-LEFT: calc(65536 * (var(--bin-__bd-slOverflow) - var(--bin-__bd-sloTrunc)));
    --bin-bd-RIGHT: calc(var(--bin-bd-VAL) / var(--bin-__bd-shiftPow2) - 0.5);
    --bin-bd-SIGNED-RIGHT: calc(var(--bin-bd-sign) * (
      var(--bin-bd-NEG) * (var(--bin-__bd-shiftPow2) - 1) * (65536 / var(--bin-__bd-shiftPow2)) +
      var(--bin-bd-RIGHT)
    ));

    --bin-bd-mod: initial;
    --bin-__bd-modBy: max(1, var(--bin-bd-mod, 1));
    --bin-__bd-modTrunc: calc((var(--bin-bd-VAL) / var(--bin-__bd-modBy)) - 0.5);
    --bin-bd-MOD: calc(var(--bin-bd-VAL) - var(--bin-__bd-modBy) * var(--bin-__bd-modTrunc));
  }

  @property --bin-be-op { syntax: "*"; initial-value: initial; inherits: false; }
  @property --bin-be-sign { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-be-16 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-be-15 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-be-14 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-be-13 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-be-12 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-be-11 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-be-10 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-be-9 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-be-8 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-be-7 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-be-6 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-be-5 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-be-4 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-be-3 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-be-2 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-be-1 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-be-POS { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-be-NEG { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-be-EVEN { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-be-ODD { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-be-VAL { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-be-NOT { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-be-SIGNED { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-be-SIGNED-NOT { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-be-LEFT { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-be-RIGHT { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-be-SIGNED-RIGHT { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-be-MOD { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-__be-shift { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-__be-shiftPow2 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-__be-sloTrunc { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-__be-modTrunc { syntax: "<integer>"; initial-value: 0; inherits: false; }
  :where([data-bin-bits~="be"]) {
    --bin-be-op: initial; /* XOR by default, example set to AND:: --bin-be-op: var(--bin-AND); */
    --bin-__bep: max(0, min(1, var(--bin-a-POS) var(--bin-be-op, + var(--bin-b-POS) - 2 * var(--bin-a-POS) *) var(--bin-b-POS)));
    --bin-be-sign: calc((var(--bin-__bep) - 0.5) * 2);
    --bin-be-POS: calc(var(--bin-be-sign) / 2 + 0.5);
    --bin-be-NEG: calc(1 - var(--bin-be-POS));
    --bin-be-16: max(0, min(1, var(--bin-b-16) var(--bin-be-op, + var(--bin-e-16) - 2 * var(--bin-b-16) *) var(--bin-e-16)));
    --bin-be-15: max(0, min(1, var(--bin-b-15) var(--bin-be-op, + var(--bin-e-15) - 2 * var(--bin-b-15) *) var(--bin-e-15)));
    --bin-be-14: max(0, min(1, var(--bin-b-14) var(--bin-be-op, + var(--bin-e-14) - 2 * var(--bin-b-14) *) var(--bin-e-14)));
    --bin-be-13: max(0, min(1, var(--bin-b-13) var(--bin-be-op, + var(--bin-e-13) - 2 * var(--bin-b-13) *) var(--bin-e-13)));
    --bin-be-12: max(0, min(1, var(--bin-b-12) var(--bin-be-op, + var(--bin-e-12) - 2 * var(--bin-b-12) *) var(--bin-e-12)));
    --bin-be-11: max(0, min(1, var(--bin-b-11) var(--bin-be-op, + var(--bin-e-11) - 2 * var(--bin-b-11) *) var(--bin-e-11)));
    --bin-be-10: max(0, min(1, var(--bin-b-10) var(--bin-be-op, + var(--bin-e-10) - 2 * var(--bin-b-10) *) var(--bin-e-10)));
    --bin-be-9: max(0, min(1, var(--bin-b-9) var(--bin-be-op, + var(--bin-e-9) - 2 * var(--bin-b-9) *) var(--bin-e-9)));
    --bin-be-8: max(0, min(1, var(--bin-b-8) var(--bin-be-op, + var(--bin-e-8) - 2 * var(--bin-b-8) *) var(--bin-e-8)));
    --bin-be-7: max(0, min(1, var(--bin-b-7) var(--bin-be-op, + var(--bin-e-7) - 2 * var(--bin-b-7) *) var(--bin-e-7)));
    --bin-be-6: max(0, min(1, var(--bin-b-6) var(--bin-be-op, + var(--bin-e-6) - 2 * var(--bin-b-6) *) var(--bin-e-6)));
    --bin-be-5: max(0, min(1, var(--bin-b-5) var(--bin-be-op, + var(--bin-e-5) - 2 * var(--bin-b-5) *) var(--bin-e-5)));
    --bin-be-4: max(0, min(1, var(--bin-b-4) var(--bin-be-op, + var(--bin-e-4) - 2 * var(--bin-b-4) *) var(--bin-e-4)));
    --bin-be-3: max(0, min(1, var(--bin-b-3) var(--bin-be-op, + var(--bin-e-3) - 2 * var(--bin-b-3) *) var(--bin-e-3)));
    --bin-be-2: max(0, min(1, var(--bin-b-2) var(--bin-be-op, + var(--bin-e-2) - 2 * var(--bin-b-2) *) var(--bin-e-2)));
    --bin-be-1: max(0, min(1, var(--bin-b-1) var(--bin-be-op, + var(--bin-e-1) - 2 * var(--bin-b-1) *) var(--bin-e-1)));
    --bin-be-EVEN: calc(1 - var(--bin-be-1));
    --bin-be-ODD: var(--bin-be-1);
    --bin-be-VAL: calc(
      var(--bin-be-16) * 32768 +
      var(--bin-be-15) * 16384 +
      var(--bin-be-14) * 8192 +
      var(--bin-be-13) * 4096 +
      var(--bin-be-12) * 2048 +
      var(--bin-be-11) * 1024 +
      var(--bin-be-10) * 512 +
      var(--bin-be-9) * 256 +
      var(--bin-be-8) * 128 +
      var(--bin-be-7) * 64 +
      var(--bin-be-6) * 32 +
      var(--bin-be-5) * 16 +
      var(--bin-be-4) * 8 +
      var(--bin-be-3) * 4 +
      var(--bin-be-2) * 2 +
      var(--bin-be-1)
    );
    --bin-be-NOT: calc(
      (1 - var(--bin-be-16)) * 32768 +
      (1 - var(--bin-be-15)) * 16384 +
      (1 - var(--bin-be-14)) * 8192 +
      (1 - var(--bin-be-13)) * 4096 +
      (1 - var(--bin-be-12)) * 2048 +
      (1 - var(--bin-be-11)) * 1024 +
      (1 - var(--bin-be-10)) * 512 +
      (1 - var(--bin-be-9)) * 256 +
      (1 - var(--bin-be-8)) * 128 +
      (1 - var(--bin-be-7)) * 64 +
      (1 - var(--bin-be-6)) * 32 +
      (1 - var(--bin-be-5)) * 16 +
      (1 - var(--bin-be-4)) * 8 +
      (1 - var(--bin-be-3)) * 4 +
      (1 - var(--bin-be-2)) * 2 +
      (1 - var(--bin-be-1))
    );
    --bin-be-SIGNED: calc(var(--bin-be-sign) * var(--bin-be-VAL));
    --bin-be-SIGNED-NOT: calc(-1 * var(--bin-be-sign) * var(--bin-be-NOT));

    --bin-be-shift: initial;
    --bin-__be-shift: min(15, max(0, var(--bin-be-shift, 0)));
    --bin-__be-shiftPow2: calc(
      (min(1, max(0, var(--bin-__be-shift) - 0)) + 1) *
      (min(1, max(0, var(--bin-__be-shift) - 1)) + 1) *
      (min(1, max(0, var(--bin-__be-shift) - 2)) + 1) *
      (min(1, max(0, var(--bin-__be-shift) - 3)) + 1) *
      (min(1, max(0, var(--bin-__be-shift) - 4)) + 1) *
      (min(1, max(0, var(--bin-__be-shift) - 5)) + 1) *
      (min(1, max(0, var(--bin-__be-shift) - 6)) + 1) *
      (min(1, max(0, var(--bin-__be-shift) - 7)) + 1) *
      (min(1, max(0, var(--bin-__be-shift) - 8)) + 1) *
      (min(1, max(0, var(--bin-__be-shift) - 9)) + 1) *
      (min(1, max(0, var(--bin-__be-shift) - 10)) + 1) *
      (min(1, max(0, var(--bin-__be-shift) - 11)) + 1) *
      (min(1, max(0, var(--bin-__be-shift) - 12)) + 1) *
      (min(1, max(0, var(--bin-__be-shift) - 13)) + 1) *
      (min(1, max(0, var(--bin-__be-shift) - 14)) + 1)
    );
    --bin-__be-slOverflow: calc(var(--bin-be-VAL) / (65536 / var(--bin-__be-shiftPow2)));
    --bin-__be-sloTrunc: calc(var(--bin-__be-slOverflow) - 0.5);
    --bin-be-LEFT: calc(65536 * (var(--bin-__be-slOverflow) - var(--bin-__be-sloTrunc)));
    --bin-be-RIGHT: calc(var(--bin-be-VAL) / var(--bin-__be-shiftPow2) - 0.5);
    --bin-be-SIGNED-RIGHT: calc(var(--bin-be-sign) * (
      var(--bin-be-NEG) * (var(--bin-__be-shiftPow2) - 1) * (65536 / var(--bin-__be-shiftPow2)) +
      var(--bin-be-RIGHT)
    ));

    --bin-be-mod: initial;
    --bin-__be-modBy: max(1, var(--bin-be-mod, 1));
    --bin-__be-modTrunc: calc((var(--bin-be-VAL) / var(--bin-__be-modBy)) - 0.5);
    --bin-be-MOD: calc(var(--bin-be-VAL) - var(--bin-__be-modBy) * var(--bin-__be-modTrunc));
  }

  @property --bin-bf-op { syntax: "*"; initial-value: initial; inherits: false; }
  @property --bin-bf-sign { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-bf-16 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-bf-15 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-bf-14 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-bf-13 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-bf-12 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-bf-11 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-bf-10 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-bf-9 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-bf-8 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-bf-7 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-bf-6 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-bf-5 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-bf-4 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-bf-3 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-bf-2 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-bf-1 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-bf-POS { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-bf-NEG { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-bf-EVEN { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-bf-ODD { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-bf-VAL { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-bf-NOT { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-bf-SIGNED { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-bf-SIGNED-NOT { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-bf-LEFT { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-bf-RIGHT { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-bf-SIGNED-RIGHT { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-bf-MOD { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-__bf-shift { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-__bf-shiftPow2 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-__bf-sloTrunc { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-__bf-modTrunc { syntax: "<integer>"; initial-value: 0; inherits: false; }
  :where([data-bin-bits~="bf"]) {
    --bin-bf-op: initial; /* XOR by default, example set to AND:: --bin-bf-op: var(--bin-AND); */
    --bin-__bfp: max(0, min(1, var(--bin-a-POS) var(--bin-bf-op, + var(--bin-b-POS) - 2 * var(--bin-a-POS) *) var(--bin-b-POS)));
    --bin-bf-sign: calc((var(--bin-__bfp) - 0.5) * 2);
    --bin-bf-POS: calc(var(--bin-bf-sign) / 2 + 0.5);
    --bin-bf-NEG: calc(1 - var(--bin-bf-POS));
    --bin-bf-16: max(0, min(1, var(--bin-b-16) var(--bin-bf-op, + var(--bin-f-16) - 2 * var(--bin-b-16) *) var(--bin-f-16)));
    --bin-bf-15: max(0, min(1, var(--bin-b-15) var(--bin-bf-op, + var(--bin-f-15) - 2 * var(--bin-b-15) *) var(--bin-f-15)));
    --bin-bf-14: max(0, min(1, var(--bin-b-14) var(--bin-bf-op, + var(--bin-f-14) - 2 * var(--bin-b-14) *) var(--bin-f-14)));
    --bin-bf-13: max(0, min(1, var(--bin-b-13) var(--bin-bf-op, + var(--bin-f-13) - 2 * var(--bin-b-13) *) var(--bin-f-13)));
    --bin-bf-12: max(0, min(1, var(--bin-b-12) var(--bin-bf-op, + var(--bin-f-12) - 2 * var(--bin-b-12) *) var(--bin-f-12)));
    --bin-bf-11: max(0, min(1, var(--bin-b-11) var(--bin-bf-op, + var(--bin-f-11) - 2 * var(--bin-b-11) *) var(--bin-f-11)));
    --bin-bf-10: max(0, min(1, var(--bin-b-10) var(--bin-bf-op, + var(--bin-f-10) - 2 * var(--bin-b-10) *) var(--bin-f-10)));
    --bin-bf-9: max(0, min(1, var(--bin-b-9) var(--bin-bf-op, + var(--bin-f-9) - 2 * var(--bin-b-9) *) var(--bin-f-9)));
    --bin-bf-8: max(0, min(1, var(--bin-b-8) var(--bin-bf-op, + var(--bin-f-8) - 2 * var(--bin-b-8) *) var(--bin-f-8)));
    --bin-bf-7: max(0, min(1, var(--bin-b-7) var(--bin-bf-op, + var(--bin-f-7) - 2 * var(--bin-b-7) *) var(--bin-f-7)));
    --bin-bf-6: max(0, min(1, var(--bin-b-6) var(--bin-bf-op, + var(--bin-f-6) - 2 * var(--bin-b-6) *) var(--bin-f-6)));
    --bin-bf-5: max(0, min(1, var(--bin-b-5) var(--bin-bf-op, + var(--bin-f-5) - 2 * var(--bin-b-5) *) var(--bin-f-5)));
    --bin-bf-4: max(0, min(1, var(--bin-b-4) var(--bin-bf-op, + var(--bin-f-4) - 2 * var(--bin-b-4) *) var(--bin-f-4)));
    --bin-bf-3: max(0, min(1, var(--bin-b-3) var(--bin-bf-op, + var(--bin-f-3) - 2 * var(--bin-b-3) *) var(--bin-f-3)));
    --bin-bf-2: max(0, min(1, var(--bin-b-2) var(--bin-bf-op, + var(--bin-f-2) - 2 * var(--bin-b-2) *) var(--bin-f-2)));
    --bin-bf-1: max(0, min(1, var(--bin-b-1) var(--bin-bf-op, + var(--bin-f-1) - 2 * var(--bin-b-1) *) var(--bin-f-1)));
    --bin-bf-EVEN: calc(1 - var(--bin-bf-1));
    --bin-bf-ODD: var(--bin-bf-1);
    --bin-bf-VAL: calc(
      var(--bin-bf-16) * 32768 +
      var(--bin-bf-15) * 16384 +
      var(--bin-bf-14) * 8192 +
      var(--bin-bf-13) * 4096 +
      var(--bin-bf-12) * 2048 +
      var(--bin-bf-11) * 1024 +
      var(--bin-bf-10) * 512 +
      var(--bin-bf-9) * 256 +
      var(--bin-bf-8) * 128 +
      var(--bin-bf-7) * 64 +
      var(--bin-bf-6) * 32 +
      var(--bin-bf-5) * 16 +
      var(--bin-bf-4) * 8 +
      var(--bin-bf-3) * 4 +
      var(--bin-bf-2) * 2 +
      var(--bin-bf-1)
    );
    --bin-bf-NOT: calc(
      (1 - var(--bin-bf-16)) * 32768 +
      (1 - var(--bin-bf-15)) * 16384 +
      (1 - var(--bin-bf-14)) * 8192 +
      (1 - var(--bin-bf-13)) * 4096 +
      (1 - var(--bin-bf-12)) * 2048 +
      (1 - var(--bin-bf-11)) * 1024 +
      (1 - var(--bin-bf-10)) * 512 +
      (1 - var(--bin-bf-9)) * 256 +
      (1 - var(--bin-bf-8)) * 128 +
      (1 - var(--bin-bf-7)) * 64 +
      (1 - var(--bin-bf-6)) * 32 +
      (1 - var(--bin-bf-5)) * 16 +
      (1 - var(--bin-bf-4)) * 8 +
      (1 - var(--bin-bf-3)) * 4 +
      (1 - var(--bin-bf-2)) * 2 +
      (1 - var(--bin-bf-1))
    );
    --bin-bf-SIGNED: calc(var(--bin-bf-sign) * var(--bin-bf-VAL));
    --bin-bf-SIGNED-NOT: calc(-1 * var(--bin-bf-sign) * var(--bin-bf-NOT));

    --bin-bf-shift: initial;
    --bin-__bf-shift: min(15, max(0, var(--bin-bf-shift, 0)));
    --bin-__bf-shiftPow2: calc(
      (min(1, max(0, var(--bin-__bf-shift) - 0)) + 1) *
      (min(1, max(0, var(--bin-__bf-shift) - 1)) + 1) *
      (min(1, max(0, var(--bin-__bf-shift) - 2)) + 1) *
      (min(1, max(0, var(--bin-__bf-shift) - 3)) + 1) *
      (min(1, max(0, var(--bin-__bf-shift) - 4)) + 1) *
      (min(1, max(0, var(--bin-__bf-shift) - 5)) + 1) *
      (min(1, max(0, var(--bin-__bf-shift) - 6)) + 1) *
      (min(1, max(0, var(--bin-__bf-shift) - 7)) + 1) *
      (min(1, max(0, var(--bin-__bf-shift) - 8)) + 1) *
      (min(1, max(0, var(--bin-__bf-shift) - 9)) + 1) *
      (min(1, max(0, var(--bin-__bf-shift) - 10)) + 1) *
      (min(1, max(0, var(--bin-__bf-shift) - 11)) + 1) *
      (min(1, max(0, var(--bin-__bf-shift) - 12)) + 1) *
      (min(1, max(0, var(--bin-__bf-shift) - 13)) + 1) *
      (min(1, max(0, var(--bin-__bf-shift) - 14)) + 1)
    );
    --bin-__bf-slOverflow: calc(var(--bin-bf-VAL) / (65536 / var(--bin-__bf-shiftPow2)));
    --bin-__bf-sloTrunc: calc(var(--bin-__bf-slOverflow) - 0.5);
    --bin-bf-LEFT: calc(65536 * (var(--bin-__bf-slOverflow) - var(--bin-__bf-sloTrunc)));
    --bin-bf-RIGHT: calc(var(--bin-bf-VAL) / var(--bin-__bf-shiftPow2) - 0.5);
    --bin-bf-SIGNED-RIGHT: calc(var(--bin-bf-sign) * (
      var(--bin-bf-NEG) * (var(--bin-__bf-shiftPow2) - 1) * (65536 / var(--bin-__bf-shiftPow2)) +
      var(--bin-bf-RIGHT)
    ));

    --bin-bf-mod: initial;
    --bin-__bf-modBy: max(1, var(--bin-bf-mod, 1));
    --bin-__bf-modTrunc: calc((var(--bin-bf-VAL) / var(--bin-__bf-modBy)) - 0.5);
    --bin-bf-MOD: calc(var(--bin-bf-VAL) - var(--bin-__bf-modBy) * var(--bin-__bf-modTrunc));
  }

  @property --bin-cd-op { syntax: "*"; initial-value: initial; inherits: false; }
  @property --bin-cd-sign { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-cd-16 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-cd-15 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-cd-14 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-cd-13 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-cd-12 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-cd-11 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-cd-10 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-cd-9 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-cd-8 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-cd-7 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-cd-6 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-cd-5 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-cd-4 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-cd-3 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-cd-2 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-cd-1 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-cd-POS { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-cd-NEG { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-cd-EVEN { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-cd-ODD { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-cd-VAL { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-cd-NOT { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-cd-SIGNED { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-cd-SIGNED-NOT { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-cd-LEFT { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-cd-RIGHT { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-cd-SIGNED-RIGHT { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-cd-MOD { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-__cd-shift { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-__cd-shiftPow2 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-__cd-sloTrunc { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-__cd-modTrunc { syntax: "<integer>"; initial-value: 0; inherits: false; }
  :where([data-bin-bits~="cd"]) {
    --bin-cd-op: initial; /* XOR by default, example set to AND:: --bin-cd-op: var(--bin-AND); */
    --bin-__cdp: max(0, min(1, var(--bin-a-POS) var(--bin-cd-op, + var(--bin-b-POS) - 2 * var(--bin-a-POS) *) var(--bin-b-POS)));
    --bin-cd-sign: calc((var(--bin-__cdp) - 0.5) * 2);
    --bin-cd-POS: calc(var(--bin-cd-sign) / 2 + 0.5);
    --bin-cd-NEG: calc(1 - var(--bin-cd-POS));
    --bin-cd-16: max(0, min(1, var(--bin-c-16) var(--bin-cd-op, + var(--bin-d-16) - 2 * var(--bin-c-16) *) var(--bin-d-16)));
    --bin-cd-15: max(0, min(1, var(--bin-c-15) var(--bin-cd-op, + var(--bin-d-15) - 2 * var(--bin-c-15) *) var(--bin-d-15)));
    --bin-cd-14: max(0, min(1, var(--bin-c-14) var(--bin-cd-op, + var(--bin-d-14) - 2 * var(--bin-c-14) *) var(--bin-d-14)));
    --bin-cd-13: max(0, min(1, var(--bin-c-13) var(--bin-cd-op, + var(--bin-d-13) - 2 * var(--bin-c-13) *) var(--bin-d-13)));
    --bin-cd-12: max(0, min(1, var(--bin-c-12) var(--bin-cd-op, + var(--bin-d-12) - 2 * var(--bin-c-12) *) var(--bin-d-12)));
    --bin-cd-11: max(0, min(1, var(--bin-c-11) var(--bin-cd-op, + var(--bin-d-11) - 2 * var(--bin-c-11) *) var(--bin-d-11)));
    --bin-cd-10: max(0, min(1, var(--bin-c-10) var(--bin-cd-op, + var(--bin-d-10) - 2 * var(--bin-c-10) *) var(--bin-d-10)));
    --bin-cd-9: max(0, min(1, var(--bin-c-9) var(--bin-cd-op, + var(--bin-d-9) - 2 * var(--bin-c-9) *) var(--bin-d-9)));
    --bin-cd-8: max(0, min(1, var(--bin-c-8) var(--bin-cd-op, + var(--bin-d-8) - 2 * var(--bin-c-8) *) var(--bin-d-8)));
    --bin-cd-7: max(0, min(1, var(--bin-c-7) var(--bin-cd-op, + var(--bin-d-7) - 2 * var(--bin-c-7) *) var(--bin-d-7)));
    --bin-cd-6: max(0, min(1, var(--bin-c-6) var(--bin-cd-op, + var(--bin-d-6) - 2 * var(--bin-c-6) *) var(--bin-d-6)));
    --bin-cd-5: max(0, min(1, var(--bin-c-5) var(--bin-cd-op, + var(--bin-d-5) - 2 * var(--bin-c-5) *) var(--bin-d-5)));
    --bin-cd-4: max(0, min(1, var(--bin-c-4) var(--bin-cd-op, + var(--bin-d-4) - 2 * var(--bin-c-4) *) var(--bin-d-4)));
    --bin-cd-3: max(0, min(1, var(--bin-c-3) var(--bin-cd-op, + var(--bin-d-3) - 2 * var(--bin-c-3) *) var(--bin-d-3)));
    --bin-cd-2: max(0, min(1, var(--bin-c-2) var(--bin-cd-op, + var(--bin-d-2) - 2 * var(--bin-c-2) *) var(--bin-d-2)));
    --bin-cd-1: max(0, min(1, var(--bin-c-1) var(--bin-cd-op, + var(--bin-d-1) - 2 * var(--bin-c-1) *) var(--bin-d-1)));
    --bin-cd-EVEN: calc(1 - var(--bin-cd-1));
    --bin-cd-ODD: var(--bin-cd-1);
    --bin-cd-VAL: calc(
      var(--bin-cd-16) * 32768 +
      var(--bin-cd-15) * 16384 +
      var(--bin-cd-14) * 8192 +
      var(--bin-cd-13) * 4096 +
      var(--bin-cd-12) * 2048 +
      var(--bin-cd-11) * 1024 +
      var(--bin-cd-10) * 512 +
      var(--bin-cd-9) * 256 +
      var(--bin-cd-8) * 128 +
      var(--bin-cd-7) * 64 +
      var(--bin-cd-6) * 32 +
      var(--bin-cd-5) * 16 +
      var(--bin-cd-4) * 8 +
      var(--bin-cd-3) * 4 +
      var(--bin-cd-2) * 2 +
      var(--bin-cd-1)
    );
    --bin-cd-NOT: calc(
      (1 - var(--bin-cd-16)) * 32768 +
      (1 - var(--bin-cd-15)) * 16384 +
      (1 - var(--bin-cd-14)) * 8192 +
      (1 - var(--bin-cd-13)) * 4096 +
      (1 - var(--bin-cd-12)) * 2048 +
      (1 - var(--bin-cd-11)) * 1024 +
      (1 - var(--bin-cd-10)) * 512 +
      (1 - var(--bin-cd-9)) * 256 +
      (1 - var(--bin-cd-8)) * 128 +
      (1 - var(--bin-cd-7)) * 64 +
      (1 - var(--bin-cd-6)) * 32 +
      (1 - var(--bin-cd-5)) * 16 +
      (1 - var(--bin-cd-4)) * 8 +
      (1 - var(--bin-cd-3)) * 4 +
      (1 - var(--bin-cd-2)) * 2 +
      (1 - var(--bin-cd-1))
    );
    --bin-cd-SIGNED: calc(var(--bin-cd-sign) * var(--bin-cd-VAL));
    --bin-cd-SIGNED-NOT: calc(-1 * var(--bin-cd-sign) * var(--bin-cd-NOT));

    --bin-cd-shift: initial;
    --bin-__cd-shift: min(15, max(0, var(--bin-cd-shift, 0)));
    --bin-__cd-shiftPow2: calc(
      (min(1, max(0, var(--bin-__cd-shift) - 0)) + 1) *
      (min(1, max(0, var(--bin-__cd-shift) - 1)) + 1) *
      (min(1, max(0, var(--bin-__cd-shift) - 2)) + 1) *
      (min(1, max(0, var(--bin-__cd-shift) - 3)) + 1) *
      (min(1, max(0, var(--bin-__cd-shift) - 4)) + 1) *
      (min(1, max(0, var(--bin-__cd-shift) - 5)) + 1) *
      (min(1, max(0, var(--bin-__cd-shift) - 6)) + 1) *
      (min(1, max(0, var(--bin-__cd-shift) - 7)) + 1) *
      (min(1, max(0, var(--bin-__cd-shift) - 8)) + 1) *
      (min(1, max(0, var(--bin-__cd-shift) - 9)) + 1) *
      (min(1, max(0, var(--bin-__cd-shift) - 10)) + 1) *
      (min(1, max(0, var(--bin-__cd-shift) - 11)) + 1) *
      (min(1, max(0, var(--bin-__cd-shift) - 12)) + 1) *
      (min(1, max(0, var(--bin-__cd-shift) - 13)) + 1) *
      (min(1, max(0, var(--bin-__cd-shift) - 14)) + 1)
    );
    --bin-__cd-slOverflow: calc(var(--bin-cd-VAL) / (65536 / var(--bin-__cd-shiftPow2)));
    --bin-__cd-sloTrunc: calc(var(--bin-__cd-slOverflow) - 0.5);
    --bin-cd-LEFT: calc(65536 * (var(--bin-__cd-slOverflow) - var(--bin-__cd-sloTrunc)));
    --bin-cd-RIGHT: calc(var(--bin-cd-VAL) / var(--bin-__cd-shiftPow2) - 0.5);
    --bin-cd-SIGNED-RIGHT: calc(var(--bin-cd-sign) * (
      var(--bin-cd-NEG) * (var(--bin-__cd-shiftPow2) - 1) * (65536 / var(--bin-__cd-shiftPow2)) +
      var(--bin-cd-RIGHT)
    ));

    --bin-cd-mod: initial;
    --bin-__cd-modBy: max(1, var(--bin-cd-mod, 1));
    --bin-__cd-modTrunc: calc((var(--bin-cd-VAL) / var(--bin-__cd-modBy)) - 0.5);
    --bin-cd-MOD: calc(var(--bin-cd-VAL) - var(--bin-__cd-modBy) * var(--bin-__cd-modTrunc));
  }

  @property --bin-ce-op { syntax: "*"; initial-value: initial; inherits: false; }
  @property --bin-ce-sign { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-ce-16 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-ce-15 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-ce-14 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-ce-13 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-ce-12 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-ce-11 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-ce-10 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-ce-9 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-ce-8 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-ce-7 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-ce-6 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-ce-5 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-ce-4 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-ce-3 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-ce-2 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-ce-1 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-ce-POS { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-ce-NEG { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-ce-EVEN { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-ce-ODD { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-ce-VAL { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-ce-NOT { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-ce-SIGNED { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-ce-SIGNED-NOT { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-ce-LEFT { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-ce-RIGHT { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-ce-SIGNED-RIGHT { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-ce-MOD { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-__ce-shift { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-__ce-shiftPow2 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-__ce-sloTrunc { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-__ce-modTrunc { syntax: "<integer>"; initial-value: 0; inherits: false; }
  :where([data-bin-bits~="ce"]) {
    --bin-ce-op: initial; /* XOR by default, example set to AND:: --bin-ce-op: var(--bin-AND); */
    --bin-__cep: max(0, min(1, var(--bin-a-POS) var(--bin-ce-op, + var(--bin-b-POS) - 2 * var(--bin-a-POS) *) var(--bin-b-POS)));
    --bin-ce-sign: calc((var(--bin-__cep) - 0.5) * 2);
    --bin-ce-POS: calc(var(--bin-ce-sign) / 2 + 0.5);
    --bin-ce-NEG: calc(1 - var(--bin-ce-POS));
    --bin-ce-16: max(0, min(1, var(--bin-c-16) var(--bin-ce-op, + var(--bin-e-16) - 2 * var(--bin-c-16) *) var(--bin-e-16)));
    --bin-ce-15: max(0, min(1, var(--bin-c-15) var(--bin-ce-op, + var(--bin-e-15) - 2 * var(--bin-c-15) *) var(--bin-e-15)));
    --bin-ce-14: max(0, min(1, var(--bin-c-14) var(--bin-ce-op, + var(--bin-e-14) - 2 * var(--bin-c-14) *) var(--bin-e-14)));
    --bin-ce-13: max(0, min(1, var(--bin-c-13) var(--bin-ce-op, + var(--bin-e-13) - 2 * var(--bin-c-13) *) var(--bin-e-13)));
    --bin-ce-12: max(0, min(1, var(--bin-c-12) var(--bin-ce-op, + var(--bin-e-12) - 2 * var(--bin-c-12) *) var(--bin-e-12)));
    --bin-ce-11: max(0, min(1, var(--bin-c-11) var(--bin-ce-op, + var(--bin-e-11) - 2 * var(--bin-c-11) *) var(--bin-e-11)));
    --bin-ce-10: max(0, min(1, var(--bin-c-10) var(--bin-ce-op, + var(--bin-e-10) - 2 * var(--bin-c-10) *) var(--bin-e-10)));
    --bin-ce-9: max(0, min(1, var(--bin-c-9) var(--bin-ce-op, + var(--bin-e-9) - 2 * var(--bin-c-9) *) var(--bin-e-9)));
    --bin-ce-8: max(0, min(1, var(--bin-c-8) var(--bin-ce-op, + var(--bin-e-8) - 2 * var(--bin-c-8) *) var(--bin-e-8)));
    --bin-ce-7: max(0, min(1, var(--bin-c-7) var(--bin-ce-op, + var(--bin-e-7) - 2 * var(--bin-c-7) *) var(--bin-e-7)));
    --bin-ce-6: max(0, min(1, var(--bin-c-6) var(--bin-ce-op, + var(--bin-e-6) - 2 * var(--bin-c-6) *) var(--bin-e-6)));
    --bin-ce-5: max(0, min(1, var(--bin-c-5) var(--bin-ce-op, + var(--bin-e-5) - 2 * var(--bin-c-5) *) var(--bin-e-5)));
    --bin-ce-4: max(0, min(1, var(--bin-c-4) var(--bin-ce-op, + var(--bin-e-4) - 2 * var(--bin-c-4) *) var(--bin-e-4)));
    --bin-ce-3: max(0, min(1, var(--bin-c-3) var(--bin-ce-op, + var(--bin-e-3) - 2 * var(--bin-c-3) *) var(--bin-e-3)));
    --bin-ce-2: max(0, min(1, var(--bin-c-2) var(--bin-ce-op, + var(--bin-e-2) - 2 * var(--bin-c-2) *) var(--bin-e-2)));
    --bin-ce-1: max(0, min(1, var(--bin-c-1) var(--bin-ce-op, + var(--bin-e-1) - 2 * var(--bin-c-1) *) var(--bin-e-1)));
    --bin-ce-EVEN: calc(1 - var(--bin-ce-1));
    --bin-ce-ODD: var(--bin-ce-1);
    --bin-ce-VAL: calc(
      var(--bin-ce-16) * 32768 +
      var(--bin-ce-15) * 16384 +
      var(--bin-ce-14) * 8192 +
      var(--bin-ce-13) * 4096 +
      var(--bin-ce-12) * 2048 +
      var(--bin-ce-11) * 1024 +
      var(--bin-ce-10) * 512 +
      var(--bin-ce-9) * 256 +
      var(--bin-ce-8) * 128 +
      var(--bin-ce-7) * 64 +
      var(--bin-ce-6) * 32 +
      var(--bin-ce-5) * 16 +
      var(--bin-ce-4) * 8 +
      var(--bin-ce-3) * 4 +
      var(--bin-ce-2) * 2 +
      var(--bin-ce-1)
    );
    --bin-ce-NOT: calc(
      (1 - var(--bin-ce-16)) * 32768 +
      (1 - var(--bin-ce-15)) * 16384 +
      (1 - var(--bin-ce-14)) * 8192 +
      (1 - var(--bin-ce-13)) * 4096 +
      (1 - var(--bin-ce-12)) * 2048 +
      (1 - var(--bin-ce-11)) * 1024 +
      (1 - var(--bin-ce-10)) * 512 +
      (1 - var(--bin-ce-9)) * 256 +
      (1 - var(--bin-ce-8)) * 128 +
      (1 - var(--bin-ce-7)) * 64 +
      (1 - var(--bin-ce-6)) * 32 +
      (1 - var(--bin-ce-5)) * 16 +
      (1 - var(--bin-ce-4)) * 8 +
      (1 - var(--bin-ce-3)) * 4 +
      (1 - var(--bin-ce-2)) * 2 +
      (1 - var(--bin-ce-1))
    );
    --bin-ce-SIGNED: calc(var(--bin-ce-sign) * var(--bin-ce-VAL));
    --bin-ce-SIGNED-NOT: calc(-1 * var(--bin-ce-sign) * var(--bin-ce-NOT));

    --bin-ce-shift: initial;
    --bin-__ce-shift: min(15, max(0, var(--bin-ce-shift, 0)));
    --bin-__ce-shiftPow2: calc(
      (min(1, max(0, var(--bin-__ce-shift) - 0)) + 1) *
      (min(1, max(0, var(--bin-__ce-shift) - 1)) + 1) *
      (min(1, max(0, var(--bin-__ce-shift) - 2)) + 1) *
      (min(1, max(0, var(--bin-__ce-shift) - 3)) + 1) *
      (min(1, max(0, var(--bin-__ce-shift) - 4)) + 1) *
      (min(1, max(0, var(--bin-__ce-shift) - 5)) + 1) *
      (min(1, max(0, var(--bin-__ce-shift) - 6)) + 1) *
      (min(1, max(0, var(--bin-__ce-shift) - 7)) + 1) *
      (min(1, max(0, var(--bin-__ce-shift) - 8)) + 1) *
      (min(1, max(0, var(--bin-__ce-shift) - 9)) + 1) *
      (min(1, max(0, var(--bin-__ce-shift) - 10)) + 1) *
      (min(1, max(0, var(--bin-__ce-shift) - 11)) + 1) *
      (min(1, max(0, var(--bin-__ce-shift) - 12)) + 1) *
      (min(1, max(0, var(--bin-__ce-shift) - 13)) + 1) *
      (min(1, max(0, var(--bin-__ce-shift) - 14)) + 1)
    );
    --bin-__ce-slOverflow: calc(var(--bin-ce-VAL) / (65536 / var(--bin-__ce-shiftPow2)));
    --bin-__ce-sloTrunc: calc(var(--bin-__ce-slOverflow) - 0.5);
    --bin-ce-LEFT: calc(65536 * (var(--bin-__ce-slOverflow) - var(--bin-__ce-sloTrunc)));
    --bin-ce-RIGHT: calc(var(--bin-ce-VAL) / var(--bin-__ce-shiftPow2) - 0.5);
    --bin-ce-SIGNED-RIGHT: calc(var(--bin-ce-sign) * (
      var(--bin-ce-NEG) * (var(--bin-__ce-shiftPow2) - 1) * (65536 / var(--bin-__ce-shiftPow2)) +
      var(--bin-ce-RIGHT)
    ));

    --bin-ce-mod: initial;
    --bin-__ce-modBy: max(1, var(--bin-ce-mod, 1));
    --bin-__ce-modTrunc: calc((var(--bin-ce-VAL) / var(--bin-__ce-modBy)) - 0.5);
    --bin-ce-MOD: calc(var(--bin-ce-VAL) - var(--bin-__ce-modBy) * var(--bin-__ce-modTrunc));
  }

  @property --bin-cf-op { syntax: "*"; initial-value: initial; inherits: false; }
  @property --bin-cf-sign { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-cf-16 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-cf-15 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-cf-14 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-cf-13 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-cf-12 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-cf-11 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-cf-10 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-cf-9 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-cf-8 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-cf-7 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-cf-6 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-cf-5 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-cf-4 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-cf-3 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-cf-2 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-cf-1 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-cf-POS { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-cf-NEG { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-cf-EVEN { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-cf-ODD { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-cf-VAL { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-cf-NOT { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-cf-SIGNED { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-cf-SIGNED-NOT { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-cf-LEFT { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-cf-RIGHT { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-cf-SIGNED-RIGHT { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-cf-MOD { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-__cf-shift { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-__cf-shiftPow2 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-__cf-sloTrunc { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-__cf-modTrunc { syntax: "<integer>"; initial-value: 0; inherits: false; }
  :where([data-bin-bits~="cf"]) {
    --bin-cf-op: initial; /* XOR by default, example set to AND:: --bin-cf-op: var(--bin-AND); */
    --bin-__cfp: max(0, min(1, var(--bin-a-POS) var(--bin-cf-op, + var(--bin-b-POS) - 2 * var(--bin-a-POS) *) var(--bin-b-POS)));
    --bin-cf-sign: calc((var(--bin-__cfp) - 0.5) * 2);
    --bin-cf-POS: calc(var(--bin-cf-sign) / 2 + 0.5);
    --bin-cf-NEG: calc(1 - var(--bin-cf-POS));
    --bin-cf-16: max(0, min(1, var(--bin-c-16) var(--bin-cf-op, + var(--bin-f-16) - 2 * var(--bin-c-16) *) var(--bin-f-16)));
    --bin-cf-15: max(0, min(1, var(--bin-c-15) var(--bin-cf-op, + var(--bin-f-15) - 2 * var(--bin-c-15) *) var(--bin-f-15)));
    --bin-cf-14: max(0, min(1, var(--bin-c-14) var(--bin-cf-op, + var(--bin-f-14) - 2 * var(--bin-c-14) *) var(--bin-f-14)));
    --bin-cf-13: max(0, min(1, var(--bin-c-13) var(--bin-cf-op, + var(--bin-f-13) - 2 * var(--bin-c-13) *) var(--bin-f-13)));
    --bin-cf-12: max(0, min(1, var(--bin-c-12) var(--bin-cf-op, + var(--bin-f-12) - 2 * var(--bin-c-12) *) var(--bin-f-12)));
    --bin-cf-11: max(0, min(1, var(--bin-c-11) var(--bin-cf-op, + var(--bin-f-11) - 2 * var(--bin-c-11) *) var(--bin-f-11)));
    --bin-cf-10: max(0, min(1, var(--bin-c-10) var(--bin-cf-op, + var(--bin-f-10) - 2 * var(--bin-c-10) *) var(--bin-f-10)));
    --bin-cf-9: max(0, min(1, var(--bin-c-9) var(--bin-cf-op, + var(--bin-f-9) - 2 * var(--bin-c-9) *) var(--bin-f-9)));
    --bin-cf-8: max(0, min(1, var(--bin-c-8) var(--bin-cf-op, + var(--bin-f-8) - 2 * var(--bin-c-8) *) var(--bin-f-8)));
    --bin-cf-7: max(0, min(1, var(--bin-c-7) var(--bin-cf-op, + var(--bin-f-7) - 2 * var(--bin-c-7) *) var(--bin-f-7)));
    --bin-cf-6: max(0, min(1, var(--bin-c-6) var(--bin-cf-op, + var(--bin-f-6) - 2 * var(--bin-c-6) *) var(--bin-f-6)));
    --bin-cf-5: max(0, min(1, var(--bin-c-5) var(--bin-cf-op, + var(--bin-f-5) - 2 * var(--bin-c-5) *) var(--bin-f-5)));
    --bin-cf-4: max(0, min(1, var(--bin-c-4) var(--bin-cf-op, + var(--bin-f-4) - 2 * var(--bin-c-4) *) var(--bin-f-4)));
    --bin-cf-3: max(0, min(1, var(--bin-c-3) var(--bin-cf-op, + var(--bin-f-3) - 2 * var(--bin-c-3) *) var(--bin-f-3)));
    --bin-cf-2: max(0, min(1, var(--bin-c-2) var(--bin-cf-op, + var(--bin-f-2) - 2 * var(--bin-c-2) *) var(--bin-f-2)));
    --bin-cf-1: max(0, min(1, var(--bin-c-1) var(--bin-cf-op, + var(--bin-f-1) - 2 * var(--bin-c-1) *) var(--bin-f-1)));
    --bin-cf-EVEN: calc(1 - var(--bin-cf-1));
    --bin-cf-ODD: var(--bin-cf-1);
    --bin-cf-VAL: calc(
      var(--bin-cf-16) * 32768 +
      var(--bin-cf-15) * 16384 +
      var(--bin-cf-14) * 8192 +
      var(--bin-cf-13) * 4096 +
      var(--bin-cf-12) * 2048 +
      var(--bin-cf-11) * 1024 +
      var(--bin-cf-10) * 512 +
      var(--bin-cf-9) * 256 +
      var(--bin-cf-8) * 128 +
      var(--bin-cf-7) * 64 +
      var(--bin-cf-6) * 32 +
      var(--bin-cf-5) * 16 +
      var(--bin-cf-4) * 8 +
      var(--bin-cf-3) * 4 +
      var(--bin-cf-2) * 2 +
      var(--bin-cf-1)
    );
    --bin-cf-NOT: calc(
      (1 - var(--bin-cf-16)) * 32768 +
      (1 - var(--bin-cf-15)) * 16384 +
      (1 - var(--bin-cf-14)) * 8192 +
      (1 - var(--bin-cf-13)) * 4096 +
      (1 - var(--bin-cf-12)) * 2048 +
      (1 - var(--bin-cf-11)) * 1024 +
      (1 - var(--bin-cf-10)) * 512 +
      (1 - var(--bin-cf-9)) * 256 +
      (1 - var(--bin-cf-8)) * 128 +
      (1 - var(--bin-cf-7)) * 64 +
      (1 - var(--bin-cf-6)) * 32 +
      (1 - var(--bin-cf-5)) * 16 +
      (1 - var(--bin-cf-4)) * 8 +
      (1 - var(--bin-cf-3)) * 4 +
      (1 - var(--bin-cf-2)) * 2 +
      (1 - var(--bin-cf-1))
    );
    --bin-cf-SIGNED: calc(var(--bin-cf-sign) * var(--bin-cf-VAL));
    --bin-cf-SIGNED-NOT: calc(-1 * var(--bin-cf-sign) * var(--bin-cf-NOT));

    --bin-cf-shift: initial;
    --bin-__cf-shift: min(15, max(0, var(--bin-cf-shift, 0)));
    --bin-__cf-shiftPow2: calc(
      (min(1, max(0, var(--bin-__cf-shift) - 0)) + 1) *
      (min(1, max(0, var(--bin-__cf-shift) - 1)) + 1) *
      (min(1, max(0, var(--bin-__cf-shift) - 2)) + 1) *
      (min(1, max(0, var(--bin-__cf-shift) - 3)) + 1) *
      (min(1, max(0, var(--bin-__cf-shift) - 4)) + 1) *
      (min(1, max(0, var(--bin-__cf-shift) - 5)) + 1) *
      (min(1, max(0, var(--bin-__cf-shift) - 6)) + 1) *
      (min(1, max(0, var(--bin-__cf-shift) - 7)) + 1) *
      (min(1, max(0, var(--bin-__cf-shift) - 8)) + 1) *
      (min(1, max(0, var(--bin-__cf-shift) - 9)) + 1) *
      (min(1, max(0, var(--bin-__cf-shift) - 10)) + 1) *
      (min(1, max(0, var(--bin-__cf-shift) - 11)) + 1) *
      (min(1, max(0, var(--bin-__cf-shift) - 12)) + 1) *
      (min(1, max(0, var(--bin-__cf-shift) - 13)) + 1) *
      (min(1, max(0, var(--bin-__cf-shift) - 14)) + 1)
    );
    --bin-__cf-slOverflow: calc(var(--bin-cf-VAL) / (65536 / var(--bin-__cf-shiftPow2)));
    --bin-__cf-sloTrunc: calc(var(--bin-__cf-slOverflow) - 0.5);
    --bin-cf-LEFT: calc(65536 * (var(--bin-__cf-slOverflow) - var(--bin-__cf-sloTrunc)));
    --bin-cf-RIGHT: calc(var(--bin-cf-VAL) / var(--bin-__cf-shiftPow2) - 0.5);
    --bin-cf-SIGNED-RIGHT: calc(var(--bin-cf-sign) * (
      var(--bin-cf-NEG) * (var(--bin-__cf-shiftPow2) - 1) * (65536 / var(--bin-__cf-shiftPow2)) +
      var(--bin-cf-RIGHT)
    ));

    --bin-cf-mod: initial;
    --bin-__cf-modBy: max(1, var(--bin-cf-mod, 1));
    --bin-__cf-modTrunc: calc((var(--bin-cf-VAL) / var(--bin-__cf-modBy)) - 0.5);
    --bin-cf-MOD: calc(var(--bin-cf-VAL) - var(--bin-__cf-modBy) * var(--bin-__cf-modTrunc));
  }

  @property --bin-de-op { syntax: "*"; initial-value: initial; inherits: false; }
  @property --bin-de-sign { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-de-16 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-de-15 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-de-14 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-de-13 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-de-12 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-de-11 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-de-10 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-de-9 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-de-8 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-de-7 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-de-6 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-de-5 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-de-4 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-de-3 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-de-2 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-de-1 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-de-POS { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-de-NEG { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-de-EVEN { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-de-ODD { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-de-VAL { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-de-NOT { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-de-SIGNED { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-de-SIGNED-NOT { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-de-LEFT { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-de-RIGHT { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-de-SIGNED-RIGHT { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-de-MOD { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-__de-shift { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-__de-shiftPow2 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-__de-sloTrunc { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-__de-modTrunc { syntax: "<integer>"; initial-value: 0; inherits: false; }
  :where([data-bin-bits~="de"]) {
    --bin-de-op: initial; /* XOR by default, example set to AND:: --bin-de-op: var(--bin-AND); */
    --bin-__dep: max(0, min(1, var(--bin-a-POS) var(--bin-de-op, + var(--bin-b-POS) - 2 * var(--bin-a-POS) *) var(--bin-b-POS)));
    --bin-de-sign: calc((var(--bin-__dep) - 0.5) * 2);
    --bin-de-POS: calc(var(--bin-de-sign) / 2 + 0.5);
    --bin-de-NEG: calc(1 - var(--bin-de-POS));
    --bin-de-16: max(0, min(1, var(--bin-d-16) var(--bin-de-op, + var(--bin-e-16) - 2 * var(--bin-d-16) *) var(--bin-e-16)));
    --bin-de-15: max(0, min(1, var(--bin-d-15) var(--bin-de-op, + var(--bin-e-15) - 2 * var(--bin-d-15) *) var(--bin-e-15)));
    --bin-de-14: max(0, min(1, var(--bin-d-14) var(--bin-de-op, + var(--bin-e-14) - 2 * var(--bin-d-14) *) var(--bin-e-14)));
    --bin-de-13: max(0, min(1, var(--bin-d-13) var(--bin-de-op, + var(--bin-e-13) - 2 * var(--bin-d-13) *) var(--bin-e-13)));
    --bin-de-12: max(0, min(1, var(--bin-d-12) var(--bin-de-op, + var(--bin-e-12) - 2 * var(--bin-d-12) *) var(--bin-e-12)));
    --bin-de-11: max(0, min(1, var(--bin-d-11) var(--bin-de-op, + var(--bin-e-11) - 2 * var(--bin-d-11) *) var(--bin-e-11)));
    --bin-de-10: max(0, min(1, var(--bin-d-10) var(--bin-de-op, + var(--bin-e-10) - 2 * var(--bin-d-10) *) var(--bin-e-10)));
    --bin-de-9: max(0, min(1, var(--bin-d-9) var(--bin-de-op, + var(--bin-e-9) - 2 * var(--bin-d-9) *) var(--bin-e-9)));
    --bin-de-8: max(0, min(1, var(--bin-d-8) var(--bin-de-op, + var(--bin-e-8) - 2 * var(--bin-d-8) *) var(--bin-e-8)));
    --bin-de-7: max(0, min(1, var(--bin-d-7) var(--bin-de-op, + var(--bin-e-7) - 2 * var(--bin-d-7) *) var(--bin-e-7)));
    --bin-de-6: max(0, min(1, var(--bin-d-6) var(--bin-de-op, + var(--bin-e-6) - 2 * var(--bin-d-6) *) var(--bin-e-6)));
    --bin-de-5: max(0, min(1, var(--bin-d-5) var(--bin-de-op, + var(--bin-e-5) - 2 * var(--bin-d-5) *) var(--bin-e-5)));
    --bin-de-4: max(0, min(1, var(--bin-d-4) var(--bin-de-op, + var(--bin-e-4) - 2 * var(--bin-d-4) *) var(--bin-e-4)));
    --bin-de-3: max(0, min(1, var(--bin-d-3) var(--bin-de-op, + var(--bin-e-3) - 2 * var(--bin-d-3) *) var(--bin-e-3)));
    --bin-de-2: max(0, min(1, var(--bin-d-2) var(--bin-de-op, + var(--bin-e-2) - 2 * var(--bin-d-2) *) var(--bin-e-2)));
    --bin-de-1: max(0, min(1, var(--bin-d-1) var(--bin-de-op, + var(--bin-e-1) - 2 * var(--bin-d-1) *) var(--bin-e-1)));
    --bin-de-EVEN: calc(1 - var(--bin-de-1));
    --bin-de-ODD: var(--bin-de-1);
    --bin-de-VAL: calc(
      var(--bin-de-16) * 32768 +
      var(--bin-de-15) * 16384 +
      var(--bin-de-14) * 8192 +
      var(--bin-de-13) * 4096 +
      var(--bin-de-12) * 2048 +
      var(--bin-de-11) * 1024 +
      var(--bin-de-10) * 512 +
      var(--bin-de-9) * 256 +
      var(--bin-de-8) * 128 +
      var(--bin-de-7) * 64 +
      var(--bin-de-6) * 32 +
      var(--bin-de-5) * 16 +
      var(--bin-de-4) * 8 +
      var(--bin-de-3) * 4 +
      var(--bin-de-2) * 2 +
      var(--bin-de-1)
    );
    --bin-de-NOT: calc(
      (1 - var(--bin-de-16)) * 32768 +
      (1 - var(--bin-de-15)) * 16384 +
      (1 - var(--bin-de-14)) * 8192 +
      (1 - var(--bin-de-13)) * 4096 +
      (1 - var(--bin-de-12)) * 2048 +
      (1 - var(--bin-de-11)) * 1024 +
      (1 - var(--bin-de-10)) * 512 +
      (1 - var(--bin-de-9)) * 256 +
      (1 - var(--bin-de-8)) * 128 +
      (1 - var(--bin-de-7)) * 64 +
      (1 - var(--bin-de-6)) * 32 +
      (1 - var(--bin-de-5)) * 16 +
      (1 - var(--bin-de-4)) * 8 +
      (1 - var(--bin-de-3)) * 4 +
      (1 - var(--bin-de-2)) * 2 +
      (1 - var(--bin-de-1))
    );
    --bin-de-SIGNED: calc(var(--bin-de-sign) * var(--bin-de-VAL));
    --bin-de-SIGNED-NOT: calc(-1 * var(--bin-de-sign) * var(--bin-de-NOT));

    --bin-de-shift: initial;
    --bin-__de-shift: min(15, max(0, var(--bin-de-shift, 0)));
    --bin-__de-shiftPow2: calc(
      (min(1, max(0, var(--bin-__de-shift) - 0)) + 1) *
      (min(1, max(0, var(--bin-__de-shift) - 1)) + 1) *
      (min(1, max(0, var(--bin-__de-shift) - 2)) + 1) *
      (min(1, max(0, var(--bin-__de-shift) - 3)) + 1) *
      (min(1, max(0, var(--bin-__de-shift) - 4)) + 1) *
      (min(1, max(0, var(--bin-__de-shift) - 5)) + 1) *
      (min(1, max(0, var(--bin-__de-shift) - 6)) + 1) *
      (min(1, max(0, var(--bin-__de-shift) - 7)) + 1) *
      (min(1, max(0, var(--bin-__de-shift) - 8)) + 1) *
      (min(1, max(0, var(--bin-__de-shift) - 9)) + 1) *
      (min(1, max(0, var(--bin-__de-shift) - 10)) + 1) *
      (min(1, max(0, var(--bin-__de-shift) - 11)) + 1) *
      (min(1, max(0, var(--bin-__de-shift) - 12)) + 1) *
      (min(1, max(0, var(--bin-__de-shift) - 13)) + 1) *
      (min(1, max(0, var(--bin-__de-shift) - 14)) + 1)
    );
    --bin-__de-slOverflow: calc(var(--bin-de-VAL) / (65536 / var(--bin-__de-shiftPow2)));
    --bin-__de-sloTrunc: calc(var(--bin-__de-slOverflow) - 0.5);
    --bin-de-LEFT: calc(65536 * (var(--bin-__de-slOverflow) - var(--bin-__de-sloTrunc)));
    --bin-de-RIGHT: calc(var(--bin-de-VAL) / var(--bin-__de-shiftPow2) - 0.5);
    --bin-de-SIGNED-RIGHT: calc(var(--bin-de-sign) * (
      var(--bin-de-NEG) * (var(--bin-__de-shiftPow2) - 1) * (65536 / var(--bin-__de-shiftPow2)) +
      var(--bin-de-RIGHT)
    ));

    --bin-de-mod: initial;
    --bin-__de-modBy: max(1, var(--bin-de-mod, 1));
    --bin-__de-modTrunc: calc((var(--bin-de-VAL) / var(--bin-__de-modBy)) - 0.5);
    --bin-de-MOD: calc(var(--bin-de-VAL) - var(--bin-__de-modBy) * var(--bin-__de-modTrunc));
  }

  @property --bin-df-op { syntax: "*"; initial-value: initial; inherits: false; }
  @property --bin-df-sign { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-df-16 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-df-15 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-df-14 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-df-13 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-df-12 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-df-11 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-df-10 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-df-9 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-df-8 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-df-7 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-df-6 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-df-5 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-df-4 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-df-3 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-df-2 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-df-1 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-df-POS { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-df-NEG { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-df-EVEN { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-df-ODD { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-df-VAL { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-df-NOT { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-df-SIGNED { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-df-SIGNED-NOT { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-df-LEFT { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-df-RIGHT { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-df-SIGNED-RIGHT { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-df-MOD { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-__df-shift { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-__df-shiftPow2 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-__df-sloTrunc { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-__df-modTrunc { syntax: "<integer>"; initial-value: 0; inherits: false; }
  :where([data-bin-bits~="df"]) {
    --bin-df-op: initial; /* XOR by default, example set to AND:: --bin-df-op: var(--bin-AND); */
    --bin-__dfp: max(0, min(1, var(--bin-a-POS) var(--bin-df-op, + var(--bin-b-POS) - 2 * var(--bin-a-POS) *) var(--bin-b-POS)));
    --bin-df-sign: calc((var(--bin-__dfp) - 0.5) * 2);
    --bin-df-POS: calc(var(--bin-df-sign) / 2 + 0.5);
    --bin-df-NEG: calc(1 - var(--bin-df-POS));
    --bin-df-16: max(0, min(1, var(--bin-d-16) var(--bin-df-op, + var(--bin-f-16) - 2 * var(--bin-d-16) *) var(--bin-f-16)));
    --bin-df-15: max(0, min(1, var(--bin-d-15) var(--bin-df-op, + var(--bin-f-15) - 2 * var(--bin-d-15) *) var(--bin-f-15)));
    --bin-df-14: max(0, min(1, var(--bin-d-14) var(--bin-df-op, + var(--bin-f-14) - 2 * var(--bin-d-14) *) var(--bin-f-14)));
    --bin-df-13: max(0, min(1, var(--bin-d-13) var(--bin-df-op, + var(--bin-f-13) - 2 * var(--bin-d-13) *) var(--bin-f-13)));
    --bin-df-12: max(0, min(1, var(--bin-d-12) var(--bin-df-op, + var(--bin-f-12) - 2 * var(--bin-d-12) *) var(--bin-f-12)));
    --bin-df-11: max(0, min(1, var(--bin-d-11) var(--bin-df-op, + var(--bin-f-11) - 2 * var(--bin-d-11) *) var(--bin-f-11)));
    --bin-df-10: max(0, min(1, var(--bin-d-10) var(--bin-df-op, + var(--bin-f-10) - 2 * var(--bin-d-10) *) var(--bin-f-10)));
    --bin-df-9: max(0, min(1, var(--bin-d-9) var(--bin-df-op, + var(--bin-f-9) - 2 * var(--bin-d-9) *) var(--bin-f-9)));
    --bin-df-8: max(0, min(1, var(--bin-d-8) var(--bin-df-op, + var(--bin-f-8) - 2 * var(--bin-d-8) *) var(--bin-f-8)));
    --bin-df-7: max(0, min(1, var(--bin-d-7) var(--bin-df-op, + var(--bin-f-7) - 2 * var(--bin-d-7) *) var(--bin-f-7)));
    --bin-df-6: max(0, min(1, var(--bin-d-6) var(--bin-df-op, + var(--bin-f-6) - 2 * var(--bin-d-6) *) var(--bin-f-6)));
    --bin-df-5: max(0, min(1, var(--bin-d-5) var(--bin-df-op, + var(--bin-f-5) - 2 * var(--bin-d-5) *) var(--bin-f-5)));
    --bin-df-4: max(0, min(1, var(--bin-d-4) var(--bin-df-op, + var(--bin-f-4) - 2 * var(--bin-d-4) *) var(--bin-f-4)));
    --bin-df-3: max(0, min(1, var(--bin-d-3) var(--bin-df-op, + var(--bin-f-3) - 2 * var(--bin-d-3) *) var(--bin-f-3)));
    --bin-df-2: max(0, min(1, var(--bin-d-2) var(--bin-df-op, + var(--bin-f-2) - 2 * var(--bin-d-2) *) var(--bin-f-2)));
    --bin-df-1: max(0, min(1, var(--bin-d-1) var(--bin-df-op, + var(--bin-f-1) - 2 * var(--bin-d-1) *) var(--bin-f-1)));
    --bin-df-EVEN: calc(1 - var(--bin-df-1));
    --bin-df-ODD: var(--bin-df-1);
    --bin-df-VAL: calc(
      var(--bin-df-16) * 32768 +
      var(--bin-df-15) * 16384 +
      var(--bin-df-14) * 8192 +
      var(--bin-df-13) * 4096 +
      var(--bin-df-12) * 2048 +
      var(--bin-df-11) * 1024 +
      var(--bin-df-10) * 512 +
      var(--bin-df-9) * 256 +
      var(--bin-df-8) * 128 +
      var(--bin-df-7) * 64 +
      var(--bin-df-6) * 32 +
      var(--bin-df-5) * 16 +
      var(--bin-df-4) * 8 +
      var(--bin-df-3) * 4 +
      var(--bin-df-2) * 2 +
      var(--bin-df-1)
    );
    --bin-df-NOT: calc(
      (1 - var(--bin-df-16)) * 32768 +
      (1 - var(--bin-df-15)) * 16384 +
      (1 - var(--bin-df-14)) * 8192 +
      (1 - var(--bin-df-13)) * 4096 +
      (1 - var(--bin-df-12)) * 2048 +
      (1 - var(--bin-df-11)) * 1024 +
      (1 - var(--bin-df-10)) * 512 +
      (1 - var(--bin-df-9)) * 256 +
      (1 - var(--bin-df-8)) * 128 +
      (1 - var(--bin-df-7)) * 64 +
      (1 - var(--bin-df-6)) * 32 +
      (1 - var(--bin-df-5)) * 16 +
      (1 - var(--bin-df-4)) * 8 +
      (1 - var(--bin-df-3)) * 4 +
      (1 - var(--bin-df-2)) * 2 +
      (1 - var(--bin-df-1))
    );
    --bin-df-SIGNED: calc(var(--bin-df-sign) * var(--bin-df-VAL));
    --bin-df-SIGNED-NOT: calc(-1 * var(--bin-df-sign) * var(--bin-df-NOT));

    --bin-df-shift: initial;
    --bin-__df-shift: min(15, max(0, var(--bin-df-shift, 0)));
    --bin-__df-shiftPow2: calc(
      (min(1, max(0, var(--bin-__df-shift) - 0)) + 1) *
      (min(1, max(0, var(--bin-__df-shift) - 1)) + 1) *
      (min(1, max(0, var(--bin-__df-shift) - 2)) + 1) *
      (min(1, max(0, var(--bin-__df-shift) - 3)) + 1) *
      (min(1, max(0, var(--bin-__df-shift) - 4)) + 1) *
      (min(1, max(0, var(--bin-__df-shift) - 5)) + 1) *
      (min(1, max(0, var(--bin-__df-shift) - 6)) + 1) *
      (min(1, max(0, var(--bin-__df-shift) - 7)) + 1) *
      (min(1, max(0, var(--bin-__df-shift) - 8)) + 1) *
      (min(1, max(0, var(--bin-__df-shift) - 9)) + 1) *
      (min(1, max(0, var(--bin-__df-shift) - 10)) + 1) *
      (min(1, max(0, var(--bin-__df-shift) - 11)) + 1) *
      (min(1, max(0, var(--bin-__df-shift) - 12)) + 1) *
      (min(1, max(0, var(--bin-__df-shift) - 13)) + 1) *
      (min(1, max(0, var(--bin-__df-shift) - 14)) + 1)
    );
    --bin-__df-slOverflow: calc(var(--bin-df-VAL) / (65536 / var(--bin-__df-shiftPow2)));
    --bin-__df-sloTrunc: calc(var(--bin-__df-slOverflow) - 0.5);
    --bin-df-LEFT: calc(65536 * (var(--bin-__df-slOverflow) - var(--bin-__df-sloTrunc)));
    --bin-df-RIGHT: calc(var(--bin-df-VAL) / var(--bin-__df-shiftPow2) - 0.5);
    --bin-df-SIGNED-RIGHT: calc(var(--bin-df-sign) * (
      var(--bin-df-NEG) * (var(--bin-__df-shiftPow2) - 1) * (65536 / var(--bin-__df-shiftPow2)) +
      var(--bin-df-RIGHT)
    ));

    --bin-df-mod: initial;
    --bin-__df-modBy: max(1, var(--bin-df-mod, 1));
    --bin-__df-modTrunc: calc((var(--bin-df-VAL) / var(--bin-__df-modBy)) - 0.5);
    --bin-df-MOD: calc(var(--bin-df-VAL) - var(--bin-__df-modBy) * var(--bin-__df-modTrunc));
  }

  @property --bin-ef-op { syntax: "*"; initial-value: initial; inherits: false; }
  @property --bin-ef-sign { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-ef-16 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-ef-15 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-ef-14 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-ef-13 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-ef-12 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-ef-11 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-ef-10 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-ef-9 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-ef-8 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-ef-7 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-ef-6 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-ef-5 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-ef-4 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-ef-3 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-ef-2 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-ef-1 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-ef-POS { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-ef-NEG { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-ef-EVEN { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-ef-ODD { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-ef-VAL { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-ef-NOT { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-ef-SIGNED { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-ef-SIGNED-NOT { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-ef-LEFT { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-ef-RIGHT { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-ef-SIGNED-RIGHT { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-ef-MOD { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-__ef-shift { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-__ef-shiftPow2 { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-__ef-sloTrunc { syntax: "<integer>"; initial-value: 0; inherits: false; }
  @property --bin-__ef-modTrunc { syntax: "<integer>"; initial-value: 0; inherits: false; }
  :where([data-bin-bits~="ef"]) {
    --bin-ef-op: initial; /* XOR by default, example set to AND:: --bin-ef-op: var(--bin-AND); */
    --bin-__efp: max(0, min(1, var(--bin-a-POS) var(--bin-ef-op, + var(--bin-b-POS) - 2 * var(--bin-a-POS) *) var(--bin-b-POS)));
    --bin-ef-sign: calc((var(--bin-__efp) - 0.5) * 2);
    --bin-ef-POS: calc(var(--bin-ef-sign) / 2 + 0.5);
    --bin-ef-NEG: calc(1 - var(--bin-ef-POS));
    --bin-ef-16: max(0, min(1, var(--bin-e-16) var(--bin-ef-op, + var(--bin-f-16) - 2 * var(--bin-e-16) *) var(--bin-f-16)));
    --bin-ef-15: max(0, min(1, var(--bin-e-15) var(--bin-ef-op, + var(--bin-f-15) - 2 * var(--bin-e-15) *) var(--bin-f-15)));
    --bin-ef-14: max(0, min(1, var(--bin-e-14) var(--bin-ef-op, + var(--bin-f-14) - 2 * var(--bin-e-14) *) var(--bin-f-14)));
    --bin-ef-13: max(0, min(1, var(--bin-e-13) var(--bin-ef-op, + var(--bin-f-13) - 2 * var(--bin-e-13) *) var(--bin-f-13)));
    --bin-ef-12: max(0, min(1, var(--bin-e-12) var(--bin-ef-op, + var(--bin-f-12) - 2 * var(--bin-e-12) *) var(--bin-f-12)));
    --bin-ef-11: max(0, min(1, var(--bin-e-11) var(--bin-ef-op, + var(--bin-f-11) - 2 * var(--bin-e-11) *) var(--bin-f-11)));
    --bin-ef-10: max(0, min(1, var(--bin-e-10) var(--bin-ef-op, + var(--bin-f-10) - 2 * var(--bin-e-10) *) var(--bin-f-10)));
    --bin-ef-9: max(0, min(1, var(--bin-e-9) var(--bin-ef-op, + var(--bin-f-9) - 2 * var(--bin-e-9) *) var(--bin-f-9)));
    --bin-ef-8: max(0, min(1, var(--bin-e-8) var(--bin-ef-op, + var(--bin-f-8) - 2 * var(--bin-e-8) *) var(--bin-f-8)));
    --bin-ef-7: max(0, min(1, var(--bin-e-7) var(--bin-ef-op, + var(--bin-f-7) - 2 * var(--bin-e-7) *) var(--bin-f-7)));
    --bin-ef-6: max(0, min(1, var(--bin-e-6) var(--bin-ef-op, + var(--bin-f-6) - 2 * var(--bin-e-6) *) var(--bin-f-6)));
    --bin-ef-5: max(0, min(1, var(--bin-e-5) var(--bin-ef-op, + var(--bin-f-5) - 2 * var(--bin-e-5) *) var(--bin-f-5)));
    --bin-ef-4: max(0, min(1, var(--bin-e-4) var(--bin-ef-op, + var(--bin-f-4) - 2 * var(--bin-e-4) *) var(--bin-f-4)));
    --bin-ef-3: max(0, min(1, var(--bin-e-3) var(--bin-ef-op, + var(--bin-f-3) - 2 * var(--bin-e-3) *) var(--bin-f-3)));
    --bin-ef-2: max(0, min(1, var(--bin-e-2) var(--bin-ef-op, + var(--bin-f-2) - 2 * var(--bin-e-2) *) var(--bin-f-2)));
    --bin-ef-1: max(0, min(1, var(--bin-e-1) var(--bin-ef-op, + var(--bin-f-1) - 2 * var(--bin-e-1) *) var(--bin-f-1)));
    --bin-ef-EVEN: calc(1 - var(--bin-ef-1));
    --bin-ef-ODD: var(--bin-ef-1);
    --bin-ef-VAL: calc(
      var(--bin-ef-16) * 32768 +
      var(--bin-ef-15) * 16384 +
      var(--bin-ef-14) * 8192 +
      var(--bin-ef-13) * 4096 +
      var(--bin-ef-12) * 2048 +
      var(--bin-ef-11) * 1024 +
      var(--bin-ef-10) * 512 +
      var(--bin-ef-9) * 256 +
      var(--bin-ef-8) * 128 +
      var(--bin-ef-7) * 64 +
      var(--bin-ef-6) * 32 +
      var(--bin-ef-5) * 16 +
      var(--bin-ef-4) * 8 +
      var(--bin-ef-3) * 4 +
      var(--bin-ef-2) * 2 +
      var(--bin-ef-1)
    );
    --bin-ef-NOT: calc(
      (1 - var(--bin-ef-16)) * 32768 +
      (1 - var(--bin-ef-15)) * 16384 +
      (1 - var(--bin-ef-14)) * 8192 +
      (1 - var(--bin-ef-13)) * 4096 +
      (1 - var(--bin-ef-12)) * 2048 +
      (1 - var(--bin-ef-11)) * 1024 +
      (1 - var(--bin-ef-10)) * 512 +
      (1 - var(--bin-ef-9)) * 256 +
      (1 - var(--bin-ef-8)) * 128 +
      (1 - var(--bin-ef-7)) * 64 +
      (1 - var(--bin-ef-6)) * 32 +
      (1 - var(--bin-ef-5)) * 16 +
      (1 - var(--bin-ef-4)) * 8 +
      (1 - var(--bin-ef-3)) * 4 +
      (1 - var(--bin-ef-2)) * 2 +
      (1 - var(--bin-ef-1))
    );
    --bin-ef-SIGNED: calc(var(--bin-ef-sign) * var(--bin-ef-VAL));
    --bin-ef-SIGNED-NOT: calc(-1 * var(--bin-ef-sign) * var(--bin-ef-NOT));

    --bin-ef-shift: initial;
    --bin-__ef-shift: min(15, max(0, var(--bin-ef-shift, 0)));
    --bin-__ef-shiftPow2: calc(
      (min(1, max(0, var(--bin-__ef-shift) - 0)) + 1) *
      (min(1, max(0, var(--bin-__ef-shift) - 1)) + 1) *
      (min(1, max(0, var(--bin-__ef-shift) - 2)) + 1) *
      (min(1, max(0, var(--bin-__ef-shift) - 3)) + 1) *
      (min(1, max(0, var(--bin-__ef-shift) - 4)) + 1) *
      (min(1, max(0, var(--bin-__ef-shift) - 5)) + 1) *
      (min(1, max(0, var(--bin-__ef-shift) - 6)) + 1) *
      (min(1, max(0, var(--bin-__ef-shift) - 7)) + 1) *
      (min(1, max(0, var(--bin-__ef-shift) - 8)) + 1) *
      (min(1, max(0, var(--bin-__ef-shift) - 9)) + 1) *
      (min(1, max(0, var(--bin-__ef-shift) - 10)) + 1) *
      (min(1, max(0, var(--bin-__ef-shift) - 11)) + 1) *
      (min(1, max(0, var(--bin-__ef-shift) - 12)) + 1) *
      (min(1, max(0, var(--bin-__ef-shift) - 13)) + 1) *
      (min(1, max(0, var(--bin-__ef-shift) - 14)) + 1)
    );
    --bin-__ef-slOverflow: calc(var(--bin-ef-VAL) / (65536 / var(--bin-__ef-shiftPow2)));
    --bin-__ef-sloTrunc: calc(var(--bin-__ef-slOverflow) - 0.5);
    --bin-ef-LEFT: calc(65536 * (var(--bin-__ef-slOverflow) - var(--bin-__ef-sloTrunc)));
    --bin-ef-RIGHT: calc(var(--bin-ef-VAL) / var(--bin-__ef-shiftPow2) - 0.5);
    --bin-ef-SIGNED-RIGHT: calc(var(--bin-ef-sign) * (
      var(--bin-ef-NEG) * (var(--bin-__ef-shiftPow2) - 1) * (65536 / var(--bin-__ef-shiftPow2)) +
      var(--bin-ef-RIGHT)
    ));

    --bin-ef-mod: initial;
    --bin-__ef-modBy: max(1, var(--bin-ef-mod, 1));
    --bin-__ef-modTrunc: calc((var(--bin-ef-VAL) / var(--bin-__ef-modBy)) - 0.5);
    --bin-ef-MOD: calc(var(--bin-ef-VAL) - var(--bin-__ef-modBy) * var(--bin-__ef-modTrunc));
  }
}
