/* Shell — instant switch, no blocking overlays */

.world-frame {
  opacity: 0;
  visibility: hidden;
  pointer-events: none !important;
  transition: none !important;
  z-index: 0;
}

.world-frame.is-active:not(.is-leaving) {
  opacity: 1 !important;
  visibility: visible !important;
  pointer-events: auto !important;
  z-index: 1 !important;
  transition: none !important;
  content-visibility: visible;
  contain: none;
}

.world-frame.is-leaving {
  opacity: 0 !important;
  visibility: hidden !important;
  pointer-events: none !important;
  z-index: 0 !important;
}

.world-frame.is-paused:not(.is-active) {
  pointer-events: none !important;
}

.world-bar,
.world-bar button,
.world-bar .sound-toggle {
  pointer-events: auto !important;
}

.world-transition-overlay,
.transition-overlay,
.loading-overlay,
#world-transition-overlay,
.world-transition-canvas {
  display: none !important;
  visibility: hidden !important;
  opacity: 0 !important;
  pointer-events: none !important;
}

html.world-transition-lock,
html.world-transition-lock body {
  overflow: hidden !important;
  pointer-events: auto !important;
}

.world-frame:not(.is-active) {
  content-visibility: hidden;
  contain: strict;
  isolation: isolate;
}

.world-frame.is-paused:not(.is-active) {
  content-visibility: hidden;
  contain: strict;
}

.world-frame.is-active:not(.is-leaving) {
  content-visibility: visible;
}

.world-bar {
  contain: layout style;
}

@media (max-width: 1024px) {
  .world-bar {
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    z-index: 2147483647 !important;
    -webkit-transform: translateZ(0);
    transform: translateZ(0);
    will-change: transform;
  }

  .world-frame {
    top: var(--bar-h, 120px) !important;
    height: calc(100svh - var(--bar-h, 120px)) !important;
    height: calc(100dvh - var(--bar-h, 120px)) !important;
    max-height: calc(100dvh - var(--bar-h, 120px)) !important;
  }
}
