.step-grid a {
  display: block;
  background: rgba(255, 255, 255, 0.13);
  padding: 18px;
  border-radius: 18px;
  border: 1px solid rgba(255, 255, 255, 0.25);
  min-height: 168px;
  color: white;
  text-decoration: none;
  transition: 0.2s;
}
.step-grid a:hover,
.step-grid a:focus-visible {
  transform: translateY(-5px);
  background: rgba(255, 255, 255, 0.22);
  outline: 2px solid var(--sun);
}
.step-grid a > span {
  font:
    700 20px "Playfair Display",
    serif;
  color: var(--sun);
}
.step-grid a small {
  display: block;
  margin-top: 18px;
  color: var(--sun);
  font-weight: 700;
}
.scene {
  position: relative;
  width: 100%;
  aspect-ratio: 3/2;
  overflow: hidden;
  border-radius: 24px;
  box-shadow: var(--shadow);
  background: #f7eadb;
}
.theme-layer {
  position: absolute;
  inset: 0;
  background-image: url("./theme-neutral-hd.png");
  background-size: 100% 100%;
  background-position: center center;
  background-repeat: no-repeat;
  transition:
    opacity 0.35s ease,
    filter 0.35s ease;
}
.theme-layer.plain {
  background-position: 0 0 !important;
}
.furniture-stage {
  position: absolute;
  inset: 0;
}
.furniture-piece {
  position: absolute;
  background-image: none;
  background-size: contain;
  background-repeat: no-repeat;
  mix-blend-mode: screen;
  filter: contrast(1.07);
  transition:
    opacity 0.22s,
    transform 0.3s;
}
.furniture-piece.arco {
  inset: 7% 21% 18% 21%;
  background-position: 0 0;
  z-index: 1;
}
.furniture-piece.mampara {
  inset: 12% 34% 20% 7%;
  background-position: 50% 0;
  z-index: 2;
}
.furniture-piece.espejo {
  inset: 13% 7% 18% 59%;
  background-position: 100% 0;
  z-index: 2;
}
.furniture-piece.cilindros {
  inset: 47% 26% 5% 29%;
  background-position: 0 100%;
  z-index: 5;
}
.furniture-piece.reloj {
  inset: 48% 57% 5% 7%;
  background-position: 50% 100%;
  z-index: 6;
}
.furniture-piece.caballete {
  inset: 42% 5% 5% 68%;
  background-position: 100% 100%;
  z-index: 6;
}
.scene-empty {
  position: absolute;
  inset: 0;
  display: grid;
  place-items: center;
  text-align: center;
  padding: 30px;
  color: var(--muted);
  font-weight: 700;
  background: rgba(255, 255, 255, 0.3);
  z-index: 9;
}
.scene-empty[hidden] {
  display: none;
}
@media (max-width: 600px) {
  .scene { aspect-ratio: 3/2; }
  .theme-layer { background-size: 100% 100%; background-position: center center; }
  .step-grid a {
    min-height: 175px;
  }
  .scene {
    border-radius: 18px;
  }
}
