.login-puzzle-scene {
  background-color: #d9e3e7;
  background-image: var(--puzzle-image);
  background-position: center;
  background-size: 420px 190px;
}

.login-puzzle-scene::before {
  position: absolute;
  z-index: 1;
  inset: 0;
  background: linear-gradient(115deg, rgba(18, 49, 68, 0.08), transparent 55%);
  content: "";
  pointer-events: none;
}

.login-puzzle-hole,
.login-puzzle-piece {
  z-index: 2;
}

.login-puzzle-hole {
  border-color: rgba(255, 255, 255, 0.92);
  background: rgba(16, 48, 65, 0.32);
  box-shadow: inset 0 0 0 2px rgba(14, 43, 58, 0.24), 0 0 0 1px rgba(29, 66, 85, 0.48);
}

.login-puzzle-piece {
  border-color: rgba(255, 255, 255, 0.92);
  background-color: #b8d9e5;
  background-image: var(--puzzle-image);
  background-position: var(--piece-background-x) var(--piece-background-y);
  background-size: 420px 190px;
  box-shadow: 0 2px 7px rgba(17, 42, 56, 0.4);
}

.login-puzzle-piece::after {
  inset: 3px;
  border-color: rgba(255, 255, 255, 0.42);
}

.login-puzzle-thumb {
  z-index: 3;
  transition: transform 0.03s linear;
}
