.nv-stage{position:relative;width:100%;min-height:100dvh;display:grid;place-items:center;overflow:hidden;background:#000;color:#fff;outline:0}.nv-stage>video{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;background:#000}.nv-top{position:absolute;inset:0 0 auto;z-index:5;display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:16px;padding:20px 28px 70px;background:linear-gradient(#000e,transparent);opacity:0;transition:.2s}.nv-controls-visible .nv-top{opacity:1}.nv-icon{position:relative;width:42px;height:42px;display:grid;place-items:center;border-radius:50%;color:#fff;background:transparent}.nv-icon:hover{background:#ffffff20}.nv-icon svg{width:24px;fill:currentColor}.nv-back{background:#111a}.nv-heading{min-width:0}.nv-heading strong,.nv-heading span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.nv-heading strong{font:700 17px "Space Grotesk",sans-serif}.nv-heading span{margin-top:3px;color:#ffffff9a;font-size:12px}
.nv-center{position:absolute;z-index:4;width:82px;height:82px;display:grid;place-items:center;border:1px solid #ffffff30;border-radius:50%;background:#101116b8;color:#fff;opacity:0;transition:.18s}.nv-center svg{width:38px;fill:currentColor}.nv-controls-visible .nv-center{opacity:1}.nv-playing .nv-center{opacity:0;pointer-events:none}.nv-loading{position:absolute;inset:0;z-index:8;display:grid;place-content:center;justify-items:center;gap:16px;background:#000e}.nv-loading.hidden{opacity:0;pointer-events:none}.nv-loading i{width:48px;height:48px;border:3px solid #ffffff20;border-top-color:#f20c22;border-radius:50%;animation:nvspin .8s linear infinite}@keyframes nvspin{to{transform:rotate(360deg)}}.nv-loading span{color:#ffffffa0;font-size:12px}.nv-error{position:absolute;z-index:9;display:grid;gap:12px;width:min(420px,90%);padding:30px;border:1px solid #ffffff20;border-radius:20px;background:#111218ee;text-align:center}.nv-error span{color:#ffffff90}.nv-error button{padding:11px;border-radius:99px;background:#fff;color:#111}.nv-feedback{position:absolute;z-index:7;padding:12px 18px;border-radius:99px;background:#000c;opacity:0;transform:scale(.9)}.nv-feedback.visible{animation:nvfeed .65s}@keyframes nvfeed{25%,70%{opacity:1;transform:scale(1)}}
.nv-controls{position:absolute;inset:auto 0 0;z-index:5;padding:70px 28px 22px;background:linear-gradient(transparent,#000f);opacity:0;pointer-events:none;transition:.2s}.nv-controls-visible .nv-controls{opacity:1;pointer-events:auto}.nv-timeline-wrap{position:relative;height:30px;display:grid;align-items:center;cursor:pointer;touch-action:none}.nv-timeline{position:relative;height:5px;border-radius:9px;background:#ffffff32}.nv-timeline>div{position:absolute;height:100%;width:0;border-radius:inherit}.nv-buffered{background:#ffffff5c}.nv-played{background:linear-gradient(90deg,#e50914,#ff3b50)}.nv-timeline>i{position:absolute;top:50%;width:15px;height:15px;border-radius:50%;background:#fff;transform:translate(-50%,-50%);box-shadow:0 2px 10px #000}.nv-preview{position:absolute;bottom:28px;padding:5px 8px;border-radius:6px;background:#111e;font-size:10px;opacity:0;transform:translateX(-50%)}.nv-preview.visible,.nv-timeline-wrap:hover .nv-preview{opacity:1}.nv-control-row,.nv-left,.nv-right{display:flex;align-items:center}.nv-control-row{justify-content:space-between;gap:15px}.nv-left,.nv-right{gap:4px}.nv-play{width:48px;height:48px;background:#fff;color:#111}.nv-play .i-pause,.nv-stage:not(.nv-muted) .i-mute{display:none}.nv-playing .nv-play .i-play,.nv-muted .i-volume{display:none}.nv-playing .nv-play .i-pause,.nv-muted .i-mute{display:block}.nv-skip small{position:absolute;font-size:7px}.nv-volume{width:80px;accent-color:#f20c22}.nv-time{margin-left:5px;color:#ffffffb0;font-size:12px;font-variant-numeric:tabular-nums}.nv-auto{display:flex;align-items:center;gap:7px;color:#ffffffa0;font-size:10px}.nv-auto i{width:29px;height:16px;border-radius:99px;background:#f20c22}.nv-auto input{display:none}.nv-menu{position:relative}.nv-menu>button{height:36px;padding:0 11px;border-radius:99px;color:#fff;background:#ffffff13;font-size:11px}.nv-menu menu{position:absolute;right:0;bottom:46px;min-width:210px;max-height:50vh;overflow:auto;padding:8px;border:1px solid #ffffff18;border-radius:13px;background:#15161cf5;backdrop-filter:blur(20px)}.nv-menu menu button{width:100%;display:flex;justify-content:space-between;padding:10px;border-radius:8px;color:#fff;text-align:left}.nv-menu menu button:hover{background:#ffffff15}.nv-menu small{color:#ffffff70}.nv-episodes{display:flex;gap:6px;margin-top:9px;padding-top:9px;overflow:auto;border-top:1px solid #ffffff20}.nv-episodes button{flex:none;padding:8px 12px;border-radius:99px;color:#ffffff9a;background:#ffffff12;font-size:10px}.nv-episodes button.active{color:#fff;background:#f20c2248}
@media(max-width:800px){.nv-top,.nv-controls{padding-inline:12px}.nv-auto,[data-prev],[data-next],[data-pip],.nv-time{display:none}.nv-volume{width:55px}}@media(max-width:520px){.nv-skip,[data-speed-btn]{display:none}.nv-menu menu{position:fixed;left:12px;right:12px;bottom:88px;min-width:0}}

/* NOVA ad diagnostics */
.nv-ad-scan{height:36px;padding:0 12px;border:1px solid #ff4a5d42;border-radius:999px;background:#f20c221c;color:#ffdbe0;font-size:10px;font-weight:800;white-space:nowrap}.nv-ad-scan:hover{background:#f20c2238;border-color:#ff4a5d70}.nv-ad-scan:disabled{opacity:.6;cursor:wait}.nv-ad-panel{position:absolute;right:28px;top:88px;z-index:10;width:min(420px,calc(100% - 56px));max-height:calc(100dvh - 190px);overflow:auto;padding:18px;border:1px solid #ffffff1c;border-radius:20px;background:#111218ee;box-shadow:0 24px 70px #000b;backdrop-filter:blur(22px)}.nv-ad-panel[hidden]{display:none}.nv-ad-panel-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.nv-ad-panel-head>div{min-width:0}.nv-ad-panel-head small,.nv-ad-panel-head strong{display:block}.nv-ad-panel-head small{margin-bottom:4px;color:#ff6a7a;font-size:9px;font-weight:900;letter-spacing:.16em}.nv-ad-panel-head strong{font:700 16px "Space Grotesk",sans-serif}.nv-ad-panel-head .nv-icon{width:32px;height:32px;font-size:24px}.nv-ad-panel>p{margin:0 0 12px;color:#ffffff9a;font-size:11px;line-height:1.55}.nv-ad-list{display:grid;gap:8px}.nv-ad-item{width:100%;display:grid;grid-template-columns:28px 1fr auto;align-items:center;gap:10px;padding:9px;border:1px solid #ffffff12;border-radius:13px;background:#ffffff08;color:#fff;text-align:left}.nv-ad-item:hover{background:#ffffff10;border-color:#ffffff24}.nv-ad-item>span{width:28px;height:28px;display:grid;place-items:center;border-radius:50%;background:#ffffff10;font-size:10px;font-weight:800}.nv-ad-item.exact>span{background:#f20c22}.nv-ad-item div{min-width:0}.nv-ad-item strong,.nv-ad-item small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.nv-ad-item strong{font-size:12px}.nv-ad-item small{margin-top:3px;color:#ffffff75;font-size:9px}.nv-ad-item>b{color:#ff7a88;font-size:9px}.nv-ad-empty,.nv-ad-error{padding:13px;border-radius:12px;background:#ffffff08;color:#ffffff80!important}.nv-ad-error{color:#ff8290!important}.nv-ad-scanning{display:flex;align-items:center;gap:10px;padding:13px;border-radius:12px;background:#ffffff08;color:#ffffff90;font-size:10px}.nv-ad-scanning i{width:17px;height:17px;border:2px solid #ffffff20;border-top-color:#f20c22;border-radius:50%;animation:nvspin .8s linear infinite}.nv-timeline>.nv-ad-markers{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.nv-ad-markers button{position:absolute;top:-3px;height:11px;min-width:3px;border-radius:3px;background:#ffb020;box-shadow:0 0 7px #ffb02099;pointer-events:auto}.nv-ad-markers button.exact{background:#f20c22;box-shadow:0 0 8px #f20c22cc}.nv-ad-markers button:hover{transform:scaleY(1.35)}
@media(max-width:800px){.nv-ad-panel{right:12px;top:76px;width:calc(100% - 24px);max-height:calc(100dvh - 170px)}.nv-ad-scan{padding:0 9px;font-size:9px}}
@media(max-width:520px){.nv-ad-scan{display:none}}

/* NOVA V4 player — user-facing ad skip controls */
.nv-ad-control {
  height: 36px;
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 0 12px;
  border: 1px solid rgba(255,255,255,.12);
  border-radius: 999px;
  background: rgba(255,255,255,.075);
  color: rgba(255,255,255,.82);
  font-size: 10px;
  font-weight: 800;
  white-space: nowrap;
  transition: .18s ease;
}
.nv-ad-control:hover { background: rgba(255,255,255,.13); color: #fff; }
.nv-ad-control-dot {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: rgba(255,255,255,.35);
  box-shadow: 0 0 0 4px rgba(255,255,255,.04);
}
.nv-ad-control.has-ads {
  border-color: rgba(70,211,105,.35);
  background: rgba(70,211,105,.12);
  color: #bcffd0;
}
.nv-ad-control.has-ads .nv-ad-control-dot {
  background: #46d369;
  box-shadow: 0 0 10px rgba(70,211,105,.75);
}
.nv-ad-control.has-candidates {
  border-color: rgba(255,176,32,.34);
  background: rgba(255,176,32,.1);
  color: #ffe1a5;
}
.nv-ad-control.has-candidates .nv-ad-control-dot {
  background: #ffb020;
  box-shadow: 0 0 10px rgba(255,176,32,.66);
}
.nv-ad-skip-prompt {
  position: absolute;
  right: 30px;
  bottom: 132px;
  z-index: 11;
  min-width: 330px;
  max-width: min(420px, calc(100% - 28px));
  display: grid;
  grid-template-columns: minmax(0,1fr) auto;
  align-items: center;
  gap: 18px;
  padding: 14px 14px 14px 17px;
  border: 1px solid rgba(255,255,255,.14);
  border-radius: 18px;
  background: linear-gradient(135deg, rgba(16,18,24,.95), rgba(8,9,13,.96));
  box-shadow: 0 22px 70px rgba(0,0,0,.58), inset 0 1px 0 rgba(255,255,255,.05);
  backdrop-filter: blur(22px);
  animation: nvAdPromptIn .22s cubic-bezier(.2,.8,.2,1);
}
.nv-ad-skip-prompt[hidden], .nv-ad-undo[hidden] { display: none; }
@keyframes nvAdPromptIn { from { opacity: 0; transform: translateY(10px) scale(.97); } to { opacity: 1; transform: none; } }
.nv-ad-skip-copy { min-width: 0; }
.nv-ad-skip-copy small,
.nv-ad-skip-copy strong,
.nv-ad-skip-copy span { display: block; }
.nv-ad-skip-copy small {
  margin-bottom: 4px;
  color: #6ff09f;
  font-size: 8px;
  font-weight: 900;
  letter-spacing: .16em;
}
.nv-ad-skip-copy strong {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-size: 13px;
}
.nv-ad-skip-copy span { margin-top: 4px; color: rgba(255,255,255,.52); font-size: 10px; }
.nv-ad-skip-prompt.candidate .nv-ad-skip-copy small { color: #ffca68; }
.nv-ad-skip-prompt > button {
  min-height: 44px;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 0 16px;
  border-radius: 999px;
  background: #fff;
  color: #08090d;
  font-size: 11px;
  font-weight: 900;
  transition: .16s ease;
}
.nv-ad-skip-prompt > button:hover { transform: translateY(-1px); box-shadow: 0 12px 24px rgba(255,255,255,.12); }
.nv-ad-skip-prompt > button svg { width: 18px; height: 18px; fill: currentColor; }
.nv-ad-undo {
  position: absolute;
  left: 50%;
  bottom: 126px;
  z-index: 12;
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 10px 11px 10px 15px;
  border: 1px solid rgba(255,255,255,.12);
  border-radius: 999px;
  background: rgba(13,15,20,.94);
  color: rgba(255,255,255,.78);
  box-shadow: 0 18px 50px rgba(0,0,0,.45);
  transform: translateX(-50%);
  backdrop-filter: blur(18px);
  font-size: 10px;
  animation: nvAdUndoIn .2s ease;
}
@keyframes nvAdUndoIn { from { opacity: 0; transform: translate(-50%,8px); } to { opacity: 1; transform: translate(-50%,0); } }
.nv-ad-undo button {
  min-height: 30px;
  padding: 0 11px;
  border-radius: 999px;
  background: rgba(255,255,255,.1);
  color: #fff;
  font-size: 9px;
  font-weight: 800;
}
.nv-ad-panel {
  width: min(460px, calc(100% - 56px));
  padding: 20px;
  border-radius: 22px;
  background: linear-gradient(180deg, rgba(20,22,29,.97), rgba(10,12,17,.97));
}
.nv-ad-setting {
  display: grid;
  grid-template-columns: minmax(0,1fr) auto;
  align-items: center;
  gap: 14px;
  padding: 13px 0;
  border-bottom: 1px solid rgba(255,255,255,.075);
  cursor: pointer;
}
.nv-ad-setting span { min-width: 0; }
.nv-ad-setting strong,
.nv-ad-setting small { display: block; }
.nv-ad-setting strong { margin-bottom: 4px; font-size: 12px; }
.nv-ad-setting small { color: rgba(255,255,255,.48); font-size: 9px; line-height: 1.5; }
.nv-ad-setting input { display: none; }
.nv-ad-setting i {
  position: relative;
  width: 38px;
  height: 22px;
  border-radius: 999px;
  background: rgba(255,255,255,.14);
  transition: .18s ease;
}
.nv-ad-setting i::after {
  content: "";
  position: absolute;
  top: 3px;
  left: 3px;
  width: 16px;
  height: 16px;
  border-radius: 50%;
  background: #fff;
  box-shadow: 0 2px 7px rgba(0,0,0,.35);
  transition: .18s ease;
}
.nv-ad-setting input:checked + i { background: #f20c22; }
.nv-ad-setting input:checked + i::after { transform: translateX(16px); }
.nv-ad-panel-actions { padding: 14px 0 12px; }
.nv-ad-panel-actions .nv-ad-scan,
.nv-ad-panel-actions [data-ad-scan] {
  width: 100%;
  min-height: 40px;
  border: 1px solid rgba(255,255,255,.1);
  border-radius: 12px;
  background: rgba(255,255,255,.055);
  color: rgba(255,255,255,.86);
  font-size: 10px;
  font-weight: 800;
}
.nv-ad-panel-actions [data-ad-scan]:hover { background: rgba(255,255,255,.1); }
.nv-ad-item {
  grid-template-columns: 28px minmax(0,1fr) auto;
  padding: 10px;
}
.nv-ad-item-actions { display: flex; align-items: center; gap: 5px; }
.nv-ad-item-actions button {
  min-height: 30px;
  padding: 0 9px;
  border-radius: 8px;
  background: rgba(255,255,255,.07);
  color: rgba(255,255,255,.7);
  font-size: 8px;
  font-weight: 800;
}
.nv-ad-item-actions button:hover { background: rgba(255,255,255,.12); color: #fff; }
.nv-ad-item-actions button.skip { background: #fff; color: #0a0b0f; }
.nv-ad-item.exact > span { background: #2dc66b; }
.nv-ad-item.candidate > span { background: rgba(255,176,32,.2); color: #ffd98a; }

@media(max-width:800px){
  .nv-ad-control { padding: 0 9px; }
  .nv-ad-skip-prompt { right: 12px; bottom: 112px; min-width: 0; width: calc(100% - 24px); }
  .nv-ad-undo { bottom: 104px; max-width: calc(100% - 24px); white-space: nowrap; }
}
@media(max-width:520px){
  .nv-ad-control { display: inline-flex; }
  .nv-ad-control span:last-child { display: none; }
  .nv-ad-control { width: 36px; justify-content: center; padding: 0; }
  .nv-ad-skip-prompt { grid-template-columns: minmax(0,1fr) auto; padding: 12px; border-radius: 15px; }
  .nv-ad-skip-prompt > button { min-height: 40px; padding: 0 12px; font-size: 10px; }
  .nv-ad-panel { right: 8px; top: 66px; width: calc(100% - 16px); max-height: calc(100dvh - 146px); padding: 16px; border-radius: 18px; }
  .nv-ad-item { grid-template-columns: 26px minmax(0,1fr); }
  .nv-ad-item-actions { grid-column: 1 / -1; justify-content: flex-end; }
}

/* NOVA v4.3 — non-blocking buffering and ad audio resync feedback */
.nv-loading {
  transition: opacity .16s ease, transform .16s ease, background .16s ease;
}
.nv-loading.is-initial {
  inset: 0;
  display: grid;
  place-content: center;
  justify-items: center;
  gap: 16px;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: rgba(0,0,0,.88);
  transform: none;
}
.nv-loading.is-buffering,
.nv-loading.is-resync {
  inset: auto auto 94px 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  width: auto;
  max-width: calc(100% - 28px);
  min-height: 42px;
  padding: 9px 14px;
  border: 1px solid rgba(255,255,255,.14);
  border-radius: 999px;
  background: rgba(12,14,19,.88);
  box-shadow: 0 12px 36px rgba(0,0,0,.42), inset 0 1px 0 rgba(255,255,255,.05);
  backdrop-filter: blur(16px);
  transform: translateX(-50%);
}
.nv-loading.is-resync {
  bottom: 112px;
  border-color: rgba(70,211,105,.22);
  background: rgba(11,20,16,.9);
}
.nv-loading.is-buffering i,
.nv-loading.is-resync i {
  width: 18px;
  height: 18px;
  border-width: 2px;
}
.nv-loading.is-resync i { border-top-color: #46d369; }
.nv-loading.is-buffering span,
.nv-loading.is-resync span {
  max-width: 320px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  color: rgba(255,255,255,.84);
  font-size: 11px;
  font-weight: 650;
}
@media (max-width: 640px) {
  .nv-loading.is-buffering,
  .nv-loading.is-resync { bottom: 82px; }
  .nv-loading.is-resync { bottom: 98px; }
}

/* NOVA v4.5 — unified player icons and final control polish */
.nv-stage .nova-icon{width:22px;height:22px;display:inline-block;flex:0 0 auto;fill:none;stroke:currentColor;overflow:visible}
.nv-icon .nova-icon{width:23px;height:23px;fill:none}.nv-icon .nova-icon path[fill="currentColor"]{fill:currentColor;stroke:none}
.nv-center-icon{width:42px!important;height:42px!important}.nv-center-icon path{fill:currentColor!important;stroke:none!important}
.nv-play .i-play,.nv-play .i-pause,.nv-icon .i-volume,.nv-icon .i-mute{line-height:0}.nv-play .i-play .nova-icon,.nv-play .i-pause .nova-icon{width:24px;height:24px}
.nv-skip small{display:none}.nv-skip .nova-icon{width:27px;height:27px}
.nv-menu>button{display:inline-flex;align-items:center;justify-content:center;gap:7px;white-space:nowrap}.nv-menu>button>.nova-icon:not(.nv-caret){width:16px;height:16px;color:#ffffffc7}.nv-menu>button>.nv-caret{width:12px;height:12px;color:#ffffff70;transition:transform .18s ease}.nv-menu:has(menu:not([hidden]))>button>.nv-caret{transform:rotate(180deg)}
.nv-menu menu button{align-items:center;gap:9px;justify-content:flex-start}.nv-menu menu button>.nova-icon{width:16px;height:16px;color:#ff6577}.nv-menu menu button>span{flex:1}.nv-menu menu button>small{margin-left:auto}
.nv-ad-skip-prompt button,.nv-ad-undo button,.nv-ad-panel-actions button{display:inline-flex;align-items:center;justify-content:center;gap:7px}.nv-ad-skip-prompt button .nova-icon,.nv-ad-undo button .nova-icon,.nv-ad-panel-actions button .nova-icon{width:17px;height:17px}
.nv-ad-panel-head .nv-icon .nova-icon{width:19px;height:19px}
.nv-back .nova-icon{width:24px;height:24px}
@media(max-width:800px){.nv-menu>button{padding-inline:9px;gap:5px}.nv-menu>button>.nova-icon:not(.nv-caret){display:none}.nv-menu>button>.nv-caret{display:none}}
@media(max-width:520px){.nv-icon .nova-icon{width:21px;height:21px}.nv-skip .nova-icon{width:25px;height:25px}}
