/* NOVA player experience 12.5.114 — isolated from legacy player rules. */
.title-ui-page .watch-player {
  isolation: isolate;
  position: relative !important;
  width: 100% !important;
  min-width: 0 !important;
  aspect-ratio: 16 / 9 !important;
  overflow: hidden !important;
  border: 1px solid color-mix(in srgb, var(--accent, #ed1742) 24%, #29303a) !important;
  border-radius: 16px !important;
  background: #000 !important;
  box-shadow: 0 28px 75px #0009, inset 0 0 0 1px #ffffff08 !important;
}

.title-ui-page .watch-player-stage {
  position: absolute !important;
  inset: 0 !important;
  box-sizing: border-box !important;
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  min-width: 0 !important;
  min-height: 0 !important;
  overflow: hidden !important;
  background-color: #000 !important;
  background-position: center !important;
  background-size: cover !important;
  container-type: size;
}

.title-ui-page .watch-player-stage > iframe.nova-player-frame,
.title-ui-page .watch-player-stage > video.nova-player-frame {
  position: absolute !important;
  inset: 0 !important;
  display: block !important;
  box-sizing: border-box !important;
  width: 100% !important;
  height: 100% !important;
  min-width: 100% !important;
  min-height: 100% !important;
  max-width: none !important;
  max-height: none !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: #000 !important;
  object-fit: contain !important;
  transform: none !important;
  transform-origin: center !important;
}

.title-ui-page .watch-player-stage::before,
.title-ui-page .watch-player-stage::after {
  position: absolute;
  z-index: 4;
  pointer-events: none;
  content: "";
}

.title-ui-page .watch-player-stage::before {
  inset: 0;
  opacity: 0;
  background:
    linear-gradient(115deg, transparent 30%, #ffffff0c 46%, transparent 62%),
    radial-gradient(circle at 50% 50%, color-mix(in srgb, var(--accent, #ed1742) 18%, transparent), transparent 32%),
    repeating-linear-gradient(90deg, #ffffff05 0 1px, transparent 1px 9%);
  background-size: 220% 100%, 100% 100%, 100% 100%;
}

.title-ui-page .watch-player-stage::after {
  top: 50%;
  left: 50%;
  width: 64px;
  height: 64px;
  border: 2px solid #ffffff18;
  border-top-color: var(--accent, #ed1742);
  border-right-color: color-mix(in srgb, var(--accent, #ed1742) 55%, #fff);
  border-radius: 50%;
  opacity: 0;
  box-shadow: 0 0 35px color-mix(in srgb, var(--accent, #ed1742) 35%, transparent), inset 0 0 20px #0008;
  transform: translate(-50%, -50%);
}

.title-ui-page .watch-player-stage.is-player-loading::before {
  opacity: 1;
  animation: novaPlayerScan 2.4s cubic-bezier(.45, 0, .2, 1) infinite;
}

.title-ui-page .watch-player-stage.is-player-loading::after {
  opacity: 1;
  animation: novaPlayerOrbit .9s linear infinite;
}

.title-ui-page .watch-player-stage.is-player-loading > .nova-player-frame {
  opacity: .18;
  filter: saturate(.65) brightness(.6) blur(2px);
  transform: scale(1.025) !important;
}

.title-ui-page .watch-player-stage.is-player-ready > .nova-player-frame {
  animation: novaPlayerReveal .72s cubic-bezier(.16, 1, .3, 1) both;
}

.title-ui-page .watch-player-stage.is-player-ready::before {
  animation: novaPlayerFlash .72s ease both;
}

.title-ui-page .watch-player-stage.is-player-error::after {
  width: 54px;
  height: 54px;
  border-color: #ff315755;
  opacity: 1;
  background: linear-gradient(45deg, transparent 46%, #ff3157 47% 53%, transparent 54%), linear-gradient(-45deg, transparent 46%, #ff3157 47% 53%, transparent 54%);
  animation: novaPlayerError .45s ease both;
}

.title-ui-page .watch-play {
  z-index: 7 !important;
  transition: transform .22s ease, box-shadow .22s ease, filter .22s ease !important;
  animation: novaPlayBreath 2.8s ease-in-out infinite;
}

.title-ui-page .watch-play:hover {
  filter: brightness(1.12);
  transform: translate(-50%, -50%) scale(1.08) !important;
  box-shadow: 0 0 0 14px color-mix(in srgb, var(--accent, #ed1742) 20%, transparent), 0 0 50px color-mix(in srgb, var(--accent, #ed1742) 45%, transparent) !important;
}

@keyframes novaPlayerScan {
  0% { background-position: 180% 0, center, center; filter: brightness(.82); }
  50% { filter: brightness(1.12); }
  100% { background-position: -120% 0, center, center; filter: brightness(.82); }
}
@keyframes novaPlayerOrbit { to { transform: translate(-50%, -50%) rotate(360deg); } }
@keyframes novaPlayerReveal {
  0% { opacity: 0; filter: saturate(.45) brightness(.45) blur(8px); transform: scale(1.035); }
  60% { opacity: 1; filter: saturate(1.15) brightness(1.08) blur(0); }
  100% { opacity: 1; filter: none; transform: none; }
}
@keyframes novaPlayerFlash {
  0% { opacity: .75; background: radial-gradient(circle at center, #ffffff34, transparent 54%); }
  100% { opacity: 0; background: radial-gradient(circle at center, #ffffff00, transparent 70%); }
}
@keyframes novaPlayerError { from { opacity: 0; transform: translate(-50%, -50%) scale(.65) rotate(-20deg); } to { opacity: 1; transform: translate(-50%, -50%) scale(1); } }
@keyframes novaPlayBreath { 0%, 100% { box-shadow: 0 0 0 10px color-mix(in srgb, var(--accent, #ed1742) 14%, transparent); } 50% { box-shadow: 0 0 0 16px transparent, 0 0 42px color-mix(in srgb, var(--accent, #ed1742) 32%, transparent); } }

@media (max-width: 760px) {
  .title-ui-page .watch-player { border-radius: 12px !important; }
  .title-ui-page .watch-player-stage::after { width: 48px; height: 48px; }
}

@media (prefers-reduced-motion: reduce) {
  .title-ui-page .watch-player-stage::before,
  .title-ui-page .watch-player-stage::after,
  .title-ui-page .watch-player-stage > .nova-player-frame,
  .title-ui-page .watch-play { animation: none !important; transition: none !important; }
}
