/* HOME 12-BALL MODULE — home_slot_ball.css (V6.11.7 isolation) */

.slot-ball {
  width: 49px;
  height: 49px;
  min-width: 49px;
  min-height: 49px;
  border-radius: 50%;
  display: flex;
  justify-content: center;
  align-items: center;
  color: #111111;
  font-weight: 700;
  font-size: 17px;
  text-shadow: none;
  box-shadow: inset 0 2px 5px rgba(255,255,255,0.18),
              0 2px 4px rgba(0,0,0,0.10);
  transform: scale(0.42);
  /* e332 · 점박이(빈 슬롯 시각 잡음) 제거 · 총지휘관 확정 2026-08-05
   *   opacity/border/background 만 투명화 → 채워진 볼(.show) 은 !important 로 100% 유지
   *   부모 카드의 푸르스름한 배경만 보임 = 대장님 지시 「푸르스름한 상태」 */
  opacity: 0;
  border: none;
  background: transparent;
  transition: transform 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275), opacity 0.35s ease;
  position: relative;
  cursor: grab;
  flex-shrink: 0;
}

.slot-ball:active {
  cursor: grabbing;
}

.slot-ball.show {
  transform: scale(1) !important;
  opacity: 1 !important;
  visibility: visible !important;
  border-style: solid;
  border-color: transparent;
  border-radius: 50% !important;
  overflow: hidden;
  background-clip: padding-box;
  -webkit-background-clip: padding-box;
  /* PORTRAIT 12-BALL LAW V6.10.9e75 — 숫자 21px 공식화 · 검정 (마이페이지 혼용 금지) */
  font-weight: 900 !important;
  font-variant-numeric: tabular-nums lining-nums;
  color: #111111 !important;
  -webkit-text-stroke: 0 !important;
  paint-order: normal;
  text-shadow: none !important;
}

/* OFFICIAL PATCH LOCK — 안착 12구: 흰 패치 + 검정 숫자 · 밑줄/윤곽선 금지 */
#slots-container .slot-ball.show.slot-ball-official-patch,
#slots-container .slot-ball.slot-ball-official-patch.show {
  color: #111111 !important;
  -webkit-text-stroke: 0 !important;
  text-decoration: none !important;
  text-shadow: none !important;
  z-index: 2;
}
#slots-container .slot-ball.show.slot-ball-official-patch::before,
#slots-container .slot-ball.show.slot-ball-official-patch::after {
  content: none !important;
  display: none !important;
  border: none !important;
  background: none !important;
}

/* 빈 placeholder만 숨김 — 채워진 공의 background/visibility 절대 건드리지 않음 */
#numbers-result-card #slots-container .slot-ball.is-placeholder,
body.draw-animation-active #numbers-result-card #slots-container .slot-ball.is-placeholder {
  opacity: 0 !important;
  transform: scale(0.35) !important;
  pointer-events: none !important;
  border-color: transparent !important;
}

.slot-ball.land-curiosity-pop {
  transform: scale(1.08) !important;
  transition: transform 0.24s cubic-bezier(0.34, 1.45, 0.64, 1) !important;
}

.slot-ball.slot-exiting {
  transform: translateY(calc(100% + 10px)) scale(0.22) !important;
  opacity: 0 !important;
  visibility: hidden !important;
  z-index: 0 !important;
  box-shadow: none !important;
  background: transparent !important;
  filter: none !important;
}

#numbers-result-card.slot-exit-active #slots-container {
  position: relative;
  z-index: 1;
  overflow: visible;
}

#numbers-result-card.slot-exit-active::before {
  content: '';
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 58%;
  z-index: 12;
  pointer-events: none;
  border-radius: inherit;
  background: linear-gradient(
    to top,
    rgba(3, 10, 22, 0.98) 0%,
    rgba(3, 10, 22, 0.88) 42%,
    rgba(3, 10, 22, 0.35) 72%,
    transparent 100%
  );
}

/* 안착 팝(scale) 시 컨테이너 벽 클리핑 금지 — 확대는 박스 밖으로 그려도 됨 */

/* clipfix2: card/wrap visible during draw animation */
body.draw-animation-active #numbers-result-card,
body.draw-animation-active #numbers-result-card.neon-card,
body.draw-animation-active #scr-home .result-zone-wrap {
  overflow: visible !important;
}
body.draw-animation-active #numbers-result-card #slots-container {
  overflow: visible !important;
}

body.draw-animation-active #scr-home .slot-ball.slot-exiting {
  z-index: 0 !important;
}

.slot-ball.selected-slot {
  outline: 2.5px dashed var(--neon-color) !important;
  outline-offset: 3px;
  filter: drop-shadow(0 0 8px var(--neon-color)) !important;
  animation: select-glow 0.8s infinite alternate ease-in-out;
  z-index: 6 !important;
}

@keyframes select-glow {
  0% {
    outline-offset: 2px;
    filter: drop-shadow(0 0 5px var(--neon-color)) !important;
  }
  100% {
    outline-offset: 5px;
    filter: drop-shadow(0 0 16px var(--neon-color)) !important;
    transform: scale(1.04);
  }
}

.slot-ball.drag-hover {
  border: 2.2px dashed var(--gold-accent) !important;
  box-shadow: 0 0 16px var(--gold-accent) !important;
  transform: scale(1.1) !important;
}

/* e288 · UX-122 · Golden Grab Ring (총지휘관 승인 2026-08-02).
 *   생명구역 무침범: 볼 색·크기·palette·dual light 정적 스펙 무손상.
 *   .slot-grabbing 은 드래그 「잡히는 순간」에만 부착 → 놓는 즉시 제거 → 원본 100% 복귀.
 *   #E8C84A 는 공식 팔레트 1~10 노랑과 동일 톤 (은하·볼라인 100 조화).
 *   .drag-hover(놓기 대상 · 점선) 와 시각 구분:
 *     .slot-grabbing = solid 3px 금링 + glow + scale(1.06) = 「내가 든 볼」
 *     .drag-hover    = dashed 2.2px = 「놓을 자리」 */
.slot-ball.slot-grabbing {
  box-shadow:
    0 0 0 3px #E8C84A,
    0 0 12px 2px rgba(232, 200, 74, 0.55),
    0 8px 20px rgba(0, 0, 0, 0.35) !important;
  transform: scale(1.06) !important;
  transition: transform 0.12s ease, box-shadow 0.12s ease !important;
  z-index: 20 !important;
}
@media (prefers-reduced-motion: reduce) {
  .slot-ball.slot-grabbing {
    transform: none !important;
  }
}

#numbers-result-card .slot-ball {
  flex-shrink: 0;
  min-width: 49px;
  min-height: 49px;
}

#scr-home .slot-ball {
  pointer-events: auto;
  position: relative;
  z-index: 2;
}

.phone-container #scr-home .slot-ball {
  /* PORTRAIT 12-BALL GOLDEN LOCK V6.10.9e75 — 대장님 굿 크기 확정 · 법률 · 승인 없이 수정 금지
   * 볼 52×52px · 숫자 21px 공식화 · font-weight 700 · 2×6 flex */
  width: 52px !important;
  height: 52px !important;
  min-width: 52px !important;
  min-height: 52px !important;
  max-width: 52px !important;
  max-height: 52px !important;
  flex-shrink: 0 !important;
  aspect-ratio: 1 / 1 !important;
  font-size: 21px !important;
  font-weight: 700 !important;
}
