.theme-coming-soon .play-stage { z-index: 2; overflow: visible; }

.theme-coming-soon .coming-soon-stage {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  flex: 1;
  width: 100%;
  min-height: 0;
  place-items: center;
}

.theme-coming-soon .coming-soon-stage img {
  width: min(48%, 240px);
  height: auto;
  filter: drop-shadow(0 20px 22px rgba(67, 92, 76, .24));
}

.theme-coming-soon .request-bubble {
  position: absolute;
  z-index: 2;
  top: 50%;
  left: calc(50% + min(24%, 120px) + 24px);
  width: min(390px, calc(100vw - 48px));
  box-sizing: border-box;
  transform: translateY(-50%);
  padding: 23px;
  border: 1px solid rgba(255, 255, 255, .9);
  border-radius: 22px;
  background: rgba(255, 255, 255, .86);
  box-shadow: 0 18px 35px rgba(61, 111, 109, .17), inset 0 1px rgba(255, 255, 255, .9);
  color: #285959;
}

.theme-coming-soon .request-bubble::before {
  position: absolute;
  top: 47%;
  left: -75px;
  width: 75px;
  height: 25px;
  background: rgba(255, 255, 255, .86);
  content: '';
  clip-path: polygon(100% 0, 100% 100%, 0 50%);
}

.theme-coming-soon .request-bubble > * { position: relative; z-index: 1; }
.theme-coming-soon .request-kicker { margin: 0 0 8px; color: #799b92; font: 700 9px/1 "Noto Sans KR", sans-serif; letter-spacing: .15em; }
.theme-coming-soon .request-bubble h2 { margin: 0; font: 700 clamp(23px, 2.2vw, 30px)/1 "Cormorant Garamond", "Noto Sans KR", serif; letter-spacing: -.035em; }
.theme-coming-soon .request-copy { margin: 9px 0 50px; color: #527174; font: 400 12px/1.58 "Noto Sans KR", sans-serif; }

.theme-coming-soon .request-form { display: grid; gap: 10px; }
.theme-coming-soon .request-form label { display: grid; gap: 4px; color: #315b5e; font: 700 11px/1.2 "Noto Sans KR", sans-serif; }
.theme-coming-soon .request-form :is(input, textarea) { width: 100%; box-sizing: border-box; border: 1px solid rgba(48, 98, 99, .2); border-radius: 9px; background: rgba(250, 255, 253, .94); color: #214c50; font: 400 12px/1.4 "Noto Sans KR", sans-serif; outline: none; }
.theme-coming-soon .request-form input { height: 34px; padding: 0 9px; }
.theme-coming-soon .request-form textarea { min-height: 132px; padding: 8px 9px; resize: vertical; }
.theme-coming-soon .request-form :is(input, textarea):focus { border-color: #4d9694; box-shadow: 0 0 0 3px rgba(77, 150, 148, .14); }
.theme-coming-soon .request-form button { min-height: 38px; font: 700 12px/1 "Noto Sans KR", sans-serif; }
.theme-coming-soon .request-form button:disabled { cursor: wait; opacity: .7; }
.theme-coming-soon .request-honeypot { position: absolute; width: 1px; height: 1px; opacity: 0; pointer-events: none; }
.theme-coming-soon .support-form-status { margin: 0; font: 400 11px/1.4 "Noto Sans KR", sans-serif; }

@media (max-width: 900px) {
  .theme-coming-soon .coming-soon-participant-panel { display: none; }
  .theme-coming-soon .coming-soon-stage { display: flex; flex: 0 0 auto; flex-direction: column; gap: 24px; min-height: 0; padding: 40px 0 24px; }
  .theme-coming-soon .request-bubble { position: relative; top: auto; left: auto; width: min(100%, 440px); transform: none; }
  .theme-coming-soon .request-bubble::before { display: none; }
}

@media (max-width: 620px) {
  .theme-coming-soon .coming-soon-stage { padding: 15px 0 24px; }
  .theme-coming-soon .coming-soon-stage img { width: min(68%, 240px); }
}
