html { width: 100%; height: 100%; background: #000; }
body { position: relative; margin: 0; padding: 0; width: 100vw; height: 100vh; overflow: hidden; background: #000; }
.tv-player { position: absolute; top: 0; left: 0; right: 0; bottom: 0; width: 100%; height: 100%; overflow: hidden; background: #000; }
.tv-stage { position: absolute; top: 0; left: 0; right: 0; bottom: 0; width: 100%; height: 100%; opacity: 0; overflow: hidden; background: #000; transition: opacity 800ms linear; }
.tv-foreground { position: absolute; top: 0; left: 0; width: 100%; height: 100%; object-fit: contain; z-index: 1; }
.tv-background { position: absolute; top: 0; left: 0; width: 100%; height: 100%; object-fit: cover; filter: blur(25px); transform: scale(1.06); opacity: .65; }
.tv-stage .loaderCont, .tv-stage .locksideLoader { display: flex; align-items: center; justify-content: center; flex-direction: column; width: 100%; height: 100%; min-width: 100%; min-height: 100%; opacity: 1; }
.tv-player-message { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; color: #fff; font: 24px Arial,sans-serif; }
.mainLogo { pointer-events: none; z-index: 4; }

.location-loader-orbit {
  position: relative;
  width: min(62vh, 80vw);
  height: min(62vh, 80vw);
  display: flex;
  align-items: center;
  justify-content: center;
}
.location-loader-badge {
  position: relative;
  z-index: 4;
  width: 46%;
  height: 46%;
  object-fit: contain;
  filter: drop-shadow(0 15px 24px rgba(0,0,0,.72));
  animation: locationBadgeReveal 1s ease-out both;
}
.location-loader-bull {
  position: absolute;
  inset: 0;
  z-index: 3;
  width: 100%;
  height: 100%;
  object-fit: contain;
  animation: locationBullOrbit 3s linear infinite;
  transform-origin: center center;
  pointer-events: none;
}
@keyframes locationBadgeReveal {
  from { opacity: 0; transform: scale(.9); }
  to { opacity: 1; transform: scale(1); }
}
@keyframes locationBullOrbit {
  from { transform: rotate(0deg); }
  to { transform: rotate(360deg); }
}
