.lego-brick {
      position: fixed;
      width: 30px;
      height: 30px;
      margin-left: -15px;
      margin-top: -15px;
      pointer-events: none;
      z-index: 999999;
      animation: brickPop 0.7s ease-out forwards;
      /* strong shadow so it pops on white */
      filter: drop-shadow(0 2px 3px rgba(0,0,0,0.28))
              drop-shadow(0 4px 8px rgba(0,0,0,0.12));
    }

    .lego-brick .body {
      position: absolute;
      bottom: 0;
      left: 0;
      width: 30px;
      height: 21px;
      border-radius: 2px;
      background: linear-gradient(
        180deg,
        var(--light) 0%,
        var(--base) 40%,
        var(--dark) 100%
      );
      /* dark outline for contrast */
      box-shadow:
        0 0 0 1.5px rgba(0,0,0,0.35),
        inset 0 1px 0 rgba(255,255,255,0.3),
        inset 0 -2px 0 rgba(0,0,0,0.18);
    }

    .lego-brick .stud {
      position: absolute;
      top: 0;
      left: 50%;
      width: 15px;
      height: 11px;
      margin-left: -7.5px;
      border-radius: 3px 3px 1px 1px;
      background: linear-gradient(
        180deg,
        var(--light) 0%,
        var(--base) 50%,
        var(--dark) 100%
      );
      box-shadow:
        0 0 0 1.2px rgba(0,0,0,0.3),
        0 1px 2px rgba(0,0,0,0.25),
        inset 0 1px 0 rgba(255,255,255,0.35);
    }

    .lego-brick .stud::after {
      content: '';
      position: absolute;
      top: 2px;
      left: 50%;
      width: 8px;
      height: 5px;
      margin-left: -4px;
      border-radius: 50%;
      background: var(--dark);
      box-shadow: inset 0 1px 1px rgba(0,0,0,0.4);
      opacity: 0.6;
    }

    @keyframes brickPop {
      0% {
        transform: translate(0, 0) scale(0.3) rotate(0deg);
        opacity: 0;
      }
      15% {
        transform: translate(calc(var(--tx) * 0.15), -18px) scale(1.12) rotate(calc(var(--rot) * 0.3));
        opacity: 1;
      }
      30% {
        transform: translate(calc(var(--tx) * 0.35), -6px) scale(0.96) rotate(calc(var(--rot) * 0.5));
      }
      100% {
        transform: translate(var(--tx), 75px) scale(0.8) rotate(var(--rot));
        opacity: 0;
      }
    }