/* Two separate original-image parts: curtain at top, audience at bottom.
   Only curtain side strips and the plain middle extend with screen height. */
.schedule-backdrop { position: fixed; inset: 0; z-index: 0; pointer-events: none; }
.schedule-texture { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.schedule-frame {
  --frame-width: min(100vw, 750px, calc((100vh - env(safe-area-inset-top) - env(safe-area-inset-bottom)) * 750 / 1206));
  --frame-width: min(100vw, 750px, calc((100dvh - env(safe-area-inset-top) - env(safe-area-inset-bottom)) * 750 / 1206));
  position: absolute;
  top: 0;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
  width: var(--frame-width);
}
.schedule-curtain {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  bottom: calc(var(--frame-width) * 306 / 750);
  border-style: solid;
  border-color: transparent;
  border-width: calc(var(--frame-width) * 200 / 750) calc(var(--frame-width) * 150 / 750) 0;
  border-image-source: url('https://1500065981.vod-qcloud.com/968a96ddvodbj1500065981/4f21939a5001834827746120317/DpVyAS4WVPIA.webp');
  border-image-slice: 200 150 0 150 fill;
  border-image-repeat: stretch;
}
.schedule-audience { position: absolute; left: 0; bottom: 0; display: block; width: 100%; height: auto; }
