.stamp-controls {
  display: flex;
  justify-content: center;
  gap: 9px;
  margin-bottom: 10px;
}

.stamp-controls button {
  height: 48px;
  border: 0;
  border-radius: 16px;
  background: #fff;
  font-size: 1.25rem;
  cursor: pointer;
  box-shadow: 0 3px 0 rgba(46, 35, 95, .14);
}

.stamp-scene { min-width: 85px; }
.stamp-undo, .stamp-clear { width: 50px; }

.stamp-stage {
  position: relative;
  height: min(56vh, 490px);
  overflow: hidden;
  border: 7px solid #fff;
  border-radius: 32px;
  box-shadow: 0 10px 28px rgba(40, 54, 105, .13);
  touch-action: none;
  transition: background .35s;
}

.scene-park { background: linear-gradient(#9fe4ff 0 62%, #8fdb82 62%); }
.scene-sea { background: linear-gradient(#8de9ff, #2c8bd1); }
.scene-space { background: radial-gradient(circle at 30% 20%, #6e5bb7, #171b4c 72%); }
.scene-sky { background: linear-gradient(#9ddfff, #fff2b6); }

.scene-sparkles {
  position: absolute;
  top: 17%;
  left: 7%;
  color: rgba(255,255,255,.72);
  font-size: 2rem;
  letter-spacing: .35em;
}

.scene-icon {
  position: absolute;
  top: 7%;
  right: 8%;
  font-size: 5rem;
  opacity: .8;
}

.scene-hill {
  position: absolute;
  right: -10%;
  bottom: -14%;
  left: -10%;
  height: 34%;
  border-radius: 50% 50% 0 0;
  background: rgba(255,255,255,.2);
}

.placed-stamp {
  position: absolute;
  z-index: 4;
  width: var(--size);
  height: var(--size);
  border: 0;
  padding: 0;
  background: transparent;
  transform: translate(-50%, -50%) rotate(var(--turn));
  cursor: pointer;
  filter: drop-shadow(0 6px 5px rgba(35, 27, 70, .2));
  animation: stamp-pop .3s ease-out;
}

.placed-stamp img,
.stamp-option img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
  pointer-events: none;
  user-select: none;
}

.stamp-palette {
  display: flex;
  gap: 9px;
  overflow-x: auto;
  padding: 14px 4px 9px;
  scrollbar-width: none;
}

.stamp-palette::-webkit-scrollbar { display: none; }

.stamp-option {
  flex: 0 0 72px;
  height: 72px;
  overflow: hidden;
  border: 3px solid #fff;
  border-radius: 21px;
  padding: 4px;
  background: #fff;
  cursor: pointer;
  box-shadow: 0 4px 0 rgba(46, 35, 95, .14);
}

.stamp-option.selected {
  border-color: #5f43be;
  outline: 3px solid #cfc4ff;
  background: #fff1a9;
  transform: translateY(-2px);
}

@keyframes stamp-pop {
  from { transform: translate(-50%, -50%) scale(.2) rotate(-20deg); }
  to { transform: translate(-50%, -50%) scale(1) rotate(var(--turn)); }
}
