html, body {
  height: 100%;
}

body {
  margin: 0;
  background: #fff;
}

/* 화면 중앙 정렬 */
.stage {
  min-height: 100svh;
  display: grid;
  place-items: center;
}

/* 피그마 프레임 */
.board {
  position: relative;
  width: min(100vw, 520px);
  aspect-ratio: calc(var(--bw) / var(--bh));
  background: #ffffff;
  overflow: hidden;
}

/* 모든 이미지 요소 */
.item {
  position: absolute;
  left: calc(var(--x) * 100% / var(--bw));
  top:  calc(var(--y) * 100% / var(--bh));
  width:  calc(var(--w) * 100% / var(--bw));
  height: calc(var(--h) * 100% / var(--bh));
  object-fit: contain;
  user-select: none;
  -webkit-user-drag: none;
  z-index: var(--z, 10);
}

/* 회전 전용 */
.rotate {
  transform: rotate(var(--r, 0deg));
  transform-origin: center center;
}


/* 별 장식 */
.deco {
  z-index: 30;
  pointer-events: none;
}

/* 클릭 영역 */
.hit {
  position: absolute;
  left: calc(var(--x) * 100% / var(--bw));
  top:  calc(var(--y) * 100% / var(--bh));
  width:  calc(var(--w) * 100% / var(--bw));
  height: calc(var(--h) * 100% / var(--bh));
  display: block;
  -webkit-tap-highlight-color: transparent;
  z-index: var(--z, 20);
}

/* 클릭 이미지 */
.hit > .item {
  position: static;
  width: 100%;
  height: 100%;
}

/* 5초 뒤 등장할 요소 기본 상태 */
.pop {
  opacity: 0;
  transform: scale(0);
  transform-origin: center center;
  pointer-events: none; /* 필요하면 제거 */
}

/* show 붙으면 애니메이션으로 등장 */
.pop.show {
  animation: popIn 420ms ease-out forwards;
}

@keyframes popIn {
  0%   { opacity: 0; transform: scale(0); }
  70%  { opacity: 1; transform: scale(1.08); }
  100% { opacity: 1; transform: scale(1); }
}

