body.is-ovp { overflow: hidden; }

.ovp {
  position: fixed;
  inset: 0;
  z-index: 80;
  display: grid;
  place-items: center;
  padding: 4vh 4vw;
}

.ovp[hidden] { display: none; }

.ovp__dim {
  position: absolute;
  inset: 0;
  background: rgba(255, 255, 255, 0.14);
  backdrop-filter: blur(3px);
}

.ovp__stage {
  position: relative;
  z-index: 1;
  width: min(1240px, 90vw);
  background: #ffffff;
  border: 1px solid #e8eef6;
  border-radius: 20px;
  box-shadow: 0 24px 70px rgba(16, 24, 40, 0.10);
  overflow: hidden;
}

.ovp__top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 16px 20px 12px;
  background: #ffffff;
}

.ovp__title {
  margin: 0;
  color: #010101;
  font-size: 16px;
  font-weight: 700;
}

.ovp__x,
.ovp__btn,
.ovp__big {
  border: 0;
  background: transparent;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.ovp__x {
  width: 40px;
  height: 40px;
  border-radius: 99px;
  color: #010101;
  background: #f7f8fb;
}

.ovp__x:hover { background: #eceff5; }

.ovp__screen {
  position: relative;
  aspect-ratio: 16 / 9;
  background: #f7f8fb;
}

.ovp__video {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  background: #f7f8fb;
}

.ovp__big {
  position: absolute;
  inset: 0;
  margin: auto;
  width: 84px;
  height: 84px;
  border-radius: 99px;
  color: #fff;
  background: #fb2b7d;
  box-shadow: 0 14px 34px rgba(251, 43, 125, 0.28);
  transition: opacity 0.2s ease;
}

.ovp.is-playing .ovp__big { opacity: 0; pointer-events: none; }

.ovp__dock {
  display: grid;
  grid-template-columns: auto 1fr auto auto auto;
  gap: 12px;
  align-items: center;
  padding: 12px 16px 16px;
  background: #ffffff;
}

.ovp__btn {
  width: 36px;
  height: 36px;
  border-radius: 99px;
  color: #010101;
}

.ovp__btn:hover { background: #f7f8fb; }

.ovp__bar {
  -webkit-appearance: none;
  appearance: none;
  width: 100%;
  height: 6px;
  border-radius: 99px;
  background: #e8eef6;
  outline: none;
}

.ovp__bar::-webkit-slider-thumb {
  -webkit-appearance: none;
  width: 14px;
  height: 14px;
  border-radius: 99px;
  background: #fb2b7d;
}

.ovp__time {
  color: #4a4a4a;
  font-size: 13px;
  font-weight: 700;
  min-width: 92px;
  text-align: right;
}

.ovp__stage:fullscreen,
.ovp__stage:-webkit-full-screen {
  width: 100%;
  max-width: none;
  border-radius: 0;
}

@media (max-width: 900px) {
  .ovp { padding: 0; }
  .ovp__dim {
    background: #010101;
    backdrop-filter: none;
  }
  .ovp__stage {
    width: 100%;
    height: 100%;
    max-width: none;
    border: 0;
    border-radius: 0;
    box-shadow: none;
    background: #010101;
  }
  .ovp__top {
    position: absolute;
    top: 0;
    right: 0;
    z-index: 3;
    width: auto;
    padding: max(10px, env(safe-area-inset-top)) max(10px, env(safe-area-inset-right)) 0 0;
    background: transparent;
    pointer-events: none;
  }
  .ovp__title,
  .ovp__dock,
  .ovp__big { display: none; }
  .ovp__x {
    pointer-events: auto;
    width: 44px;
    height: 44px;
    color: #010101;
    background: #ffffff;
    box-shadow: 0 8px 22px rgba(1, 1, 1, 0.18);
  }
  .ovp__x:hover { background: #ffffff; }
  .ovp__screen {
    aspect-ratio: auto;
    width: 100%;
    height: 100%;
    max-height: none;
    background: #010101;
  }
  .ovp__video {
    object-fit: contain;
    background: #010101;
  }
}
