.ip-scene-background {
  position: absolute;
  z-index: 0;
  inset: 0;
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  pointer-events: none;
  user-select: none;
  opacity: 1;
  transition: opacity .45s ease;
}

.ip-scene-background-boo { opacity: 0; }
#scene-ip[data-ip-scene="boo"] > .ip-scene-background-rong { opacity: 0; }
#scene-ip[data-ip-scene="boo"] > .ip-scene-background-boo { opacity: 1; }

.ip-rong-character {
  position: absolute;
  z-index: 5;
  left: 27.3%;
  top: 29%;
  display: block;
  width: 44%;
  height: auto;
  object-fit: contain;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  user-select: none;
  transition: none;
}

#scene-ip[data-ip-scene="rong"] > .ip-rong-character.is-playing {
  opacity: 1;
  visibility: visible;
}

.ip-boo-character {
  position: absolute;
  z-index: 5;
  left: 32%;
  top: calc(25.8% - 5px);
  display: block;
  width: 36.6%;
  height: auto;
  aspect-ratio: 1;
  object-fit: contain;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  user-select: none;
  transition: none;
}

#scene-ip[data-ip-scene="boo"] > .ip-boo-character.is-playing {
  opacity: 1;
  visibility: visible;
}

#scene-ip > .ip-showcase { display: none; }

.ip-ui-button,
.ip-entry {
  position: absolute;
  z-index: 10;
  width: var(--corner-icon-size);
  height: auto;
  aspect-ratio: 1;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: transparent;
  cursor: pointer;
  transition: transform .2s ease;
}

.ip-ui-button img,
.ip-entry img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
  pointer-events: none;
}

.ip-ui-button:hover,
.ip-ui-button:focus-visible,
.ip-entry:hover,
.ip-entry:focus-visible {
  transform: scale(1.08);
  outline: 0;
}

.ip-return { left: var(--corner-icon-left); top: var(--corner-icon-top); }
.ip-sound { right: var(--corner-sound-right); top: var(--corner-icon-top); }
.ip-voice { right: var(--corner-settings-right); top: var(--corner-icon-top); }
.ip-entry { top: 43.23%; width: 4.54%; }
.ip-prev { left: 2.95%; }
.ip-next { right: 2.95%; }
.ip-sound[aria-pressed="true"] { filter: drop-shadow(0 0 10px #fff); }

.ip-stage-switch {
  position: absolute;
  z-index: 11;
  top: 79.5%;
  width: 4.54%;
  aspect-ratio: 1;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: transparent;
  box-shadow: none;
  cursor: pointer;
  transform: translateY(-50%);
  transition: transform .2s ease,filter .2s ease;
}

.ip-stage-switch img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.ip-stage-switch:hover,
.ip-stage-switch:focus-visible {
  filter: brightness(1.08);
  transform: translateY(-50%) scale(1.08);
  outline: 0;
}

.ip-stage-switch-prev { left: 25.3%; }
.ip-stage-switch-next { right: 25.3%; }

.game:has(#scene-ip.active) > .hud,
.game:has(#scene-ip.active) > .dialogue,
.game:has(#scene-ip.active) > .hint { display: none; }
