/* Easter eggs on the floor plan (eggs.js places them in layout units; --u is one block). */
.egg {
  position: absolute;
  padding: 0;
  border: 0;
  background: none;
  cursor: pointer;
  opacity: 0.75;
  filter: saturate(0.6);
  touch-action: manipulation;
}

.egg::before { content: ''; position: absolute; inset: -1.2cqw; } /* a roomier tap target */
.egg:focus-visible { z-index: 2; opacity: 1; filter: none; outline: 0.8cqw solid var(--yellow); outline-offset: 0.6cqw; }
.floor.locked .egg:not(:focus-visible) { filter: grayscale(0.85) brightness(0.8); }

@media (hover: hover) {
  .egg:hover { opacity: 1; filter: none !important; animation: egg-bob 0.5s steps(2) infinite; }
}

.egg i {
  position: absolute;
  left: calc(var(--x) * var(--u));
  top: calc(var(--y) * var(--u));
  width: var(--u);
  height: var(--u);
  background: var(--c);
  box-shadow: inset calc(var(--u) / 6) calc(var(--u) / 6) 0 rgba(255, 255, 255, 0.5), inset calc(var(--u) / -6) calc(var(--u) / -6) 0 rgba(0, 0, 0, 0.35);
}

.egg .puff { position: absolute; top: calc(var(--u) * -1); width: calc(var(--u) * 0.6); height: calc(var(--u) * 0.6); background: #eef0ff; }
.egg-count { position: absolute; top: 100%; left: -50%; right: -50%; margin-top: 0.6cqw; font: 3.6cqw/1 var(--mono); color: var(--ink); text-align: center; }

/* Game Boy mode (Konami code): the floor only, so position: fixed elsewhere keeps working */
.egg-defs { position: absolute; width: 0; height: 0; }
.floor.egg-gb { filter: url(#egg-dmg) drop-shadow(0 0 18px rgba(139, 172, 15, 0.35)); }

@keyframes egg-bob { 50% { translate: 0 -0.5cqw; } }
