#broadcast-viewport { position: fixed; inset: 0; overflow: hidden; background: var(--color-black); }
.broadcast-stage {
  position: absolute;
  left: 0;
  top: 0;
  width: var(--stage-width);
  height: var(--stage-height);
  overflow: hidden;
  transform-origin: top left;
  background: var(--color-stage);
  isolation: isolate;
}
.stage-layer { position: absolute; inset: 0; }
.background-layer { z-index: 0; overflow: hidden; }
.scene-layer { z-index: 10; }
.persistent-layer { z-index: 20; pointer-events: none; }
.debug-layer { z-index: 100; pointer-events: none; }
.tiktok-interaction-reserve {
  position: absolute;
  left: 0;
  top: var(--essential-bottom);
  width: var(--stage-width);
  height: var(--interaction-reserve-height);
  z-index: 5;
  pointer-events: none;
  background:
    linear-gradient(180deg, rgba(5,7,19,0) 0%, rgba(3,5,13,0.38) 32%, rgba(2,3,10,0.88) 100%);
}
.stage-gradient {
  position: absolute;
  inset: 0;
  background:
    radial-gradient(circle at 50% 18%, rgba(47, 125, 255, 0.30), transparent 32%),
    radial-gradient(circle at 13% 34%, rgba(35, 231, 255, 0.16), transparent 27%),
    radial-gradient(circle at 87% 36%, rgba(101, 92, 255, 0.18), transparent 28%),
    linear-gradient(180deg, #08142d 0%, #050713 52%, #02040a 100%);
}
.stage-grid {
  position: absolute;
  left: -80px;
  right: -80px;
  top: 170px;
  bottom: 280px;
  opacity: 0.16;
  transform: perspective(800px) rotateX(64deg) translateY(150px) scale(1.45);
  transform-origin: center bottom;
  background-image:
    linear-gradient(rgba(39, 230, 255, 0.11) 1px, transparent 1px),
    linear-gradient(90deg, rgba(39, 230, 255, 0.11) 1px, transparent 1px);
  background-size: 54px 54px;
  mask-image: linear-gradient(to bottom, transparent 0%, black 18%, black 70%, transparent 100%);
}
.stage-light {
  position: absolute;
  width: 360px;
  height: 1180px;
  top: -80px;
  opacity: 0.17;
  filter: blur(36px);
  transform-origin: top center;
  animation: light-breathe 8s ease-in-out infinite alternate;
}
.stage-light-left {
  left: -70px;
  background: linear-gradient(to bottom, rgba(39,230,255,0.62), transparent 76%);
  transform: rotate(-12deg);
}
.stage-light-right {
  right: -70px;
  background: linear-gradient(to bottom, rgba(101,92,255,0.58), transparent 76%);
  transform: rotate(12deg);
  animation-delay: -4s;
}
.stage-horizon {
  position: absolute;
  left: 0;
  right: 0;
  top: 1000px;
  height: 4px;
  opacity: 0.55;
  background: linear-gradient(90deg, transparent 0%, rgba(39,230,255,.35) 22%, rgba(124,108,255,.5) 50%, rgba(39,230,255,.35) 78%, transparent 100%);
  box-shadow: 0 0 32px rgba(39,230,255,.28);
}
.stage-vignette {
  position: absolute;
  inset: 0;
  box-shadow: inset 0 0 140px rgba(0,0,0,.68), inset 0 -240px 180px rgba(0,0,0,.48);
}
@keyframes light-breathe {
  from { opacity: .12; filter: blur(40px); }
  to { opacity: .22; filter: blur(30px); }
}
