.vts-player,
.vts-player *{box-sizing:border-box}

.vts-player{
  --vts-blue:#1479ff;
  --vts-blue-bright:#2f8cff;
  --vts-track:rgba(255,255,255,.42);
  --vts-control-bg:rgba(0,0,0,.35);
  width:100%;
  max-width:340px;
  aspect-ratio:9/16;
  position:relative;
  background:#000;
  overflow:hidden;
  user-select:none;
  -webkit-user-select:none;
  touch-action:manipulation;
}

.vts-player video{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
  background:#000;
}

.vts-player.vts-ready video{opacity:1}

.vts-player .vts-big-play{
  position:absolute;
  left:50%;
  top:50%;
  transform:translate(-50%,-50%);
  width:64px;
  height:64px;
  border-radius:50%;
  border:0;
  background:var(--vts-blue);
  color:#fff;
  cursor:pointer;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:0;
  z-index:5;
  box-shadow:0 4px 18px rgba(0,0,0,.35);
}

.vts-player .vts-big-play span{
  display:block;
  width:0;
  height:0;
  border-top:14px solid transparent;
  border-bottom:14px solid transparent;
  border-left:21px solid #fff;
  margin-left:5px;
}

.vts-player .vts-controls{
  position:absolute;
  left:12px;
  right:12px;
  bottom:12px;
  display:flex;
  align-items:center;
  gap:8px;
  z-index:6;
}

.vts-player .vts-mini-play{
  flex:0 0 auto;
  width:30px;
  height:26px;
  border-radius:7px;
  border:0;
  background:var(--vts-blue);
  color:#fff;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:0;
  cursor:pointer;
  box-shadow:0 2px 7px rgba(0,0,0,.35);
}

.vts-player .vts-mini-play span{
  display:block;
  width:0;
  height:0;
  border-top:6px solid transparent;
  border-bottom:6px solid transparent;
  border-left:10px solid #fff;
  margin-left:2px;
}

.vts-player.is-playing .vts-mini-play span{
  width:12px;
  height:12px;
  border:0;
  margin-left:0;
  background:linear-gradient(to right,#fff 0 38%,transparent 38% 62%,#fff 62% 100%);
}

.vts-player .vts-progress{
  position:relative;
  flex:1 1 auto;
  height:3px;
  border-radius:999px;
  background:var(--vts-track);
  cursor:pointer;
  overflow:hidden;
}

.vts-player .vts-progress-fill{
  position:absolute;
  left:0;
  top:0;
  width:0%;
  height:100%;
  border-radius:999px;
  background:var(--vts-blue);
}

.vts-player .vts-time{
  flex:0 0 auto;
  color:var(--vts-blue-bright);
  font-family:Arial,sans-serif;
  font-size:14px;
  line-height:1;
  font-weight:700;
  text-shadow:0 1px 5px rgba(0,0,0,.95);
  white-space:nowrap;
}

.vts-player .vts-close{
  display:none;
}

.vts-player.vts-open{
  position:fixed!important;
  inset:0!important;
  width:100vw!important;
  height:100vh!important;
  max-width:none!important;
  aspect-ratio:auto!important;
  z-index:2147483647!important;
  background:#000!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  overflow:hidden!important;
  opacity:0;
  animation:vtsFadeIn .18s ease-out forwards;
}

.vts-player.vts-open video{
  width:auto!important;
  height:100vh!important;
  max-width:100vw!important;
  aspect-ratio:9/16!important;
  object-fit:cover!important;
}

.vts-player.vts-open .vts-controls{
  left:50%!important;
  right:auto!important;
  bottom:26px!important;
  width:min(calc(100vh * 9 / 16 - 34px), calc(100vw - 34px))!important;
  transform:translateX(-50%)!important;
}

.vts-player.vts-open .vts-close{
  display:flex;
  position:absolute;
  top:22px;
  right:calc(50vw - min(50vw, calc(100vh * 9 / 32)) + 14px);
  width:52px;
  height:52px;
  border-radius:50%;
  border:2px solid var(--vts-blue-bright);
  background:rgba(0,0,0,.48);
  color:var(--vts-blue-bright);
  align-items:center;
  justify-content:center;
  cursor:pointer;
  z-index:8;
  font-size:34px;
  line-height:1;
  box-shadow:0 3px 14px rgba(0,0,0,.35);
  transition:transform .15s ease, color .15s ease, border-color .15s ease, background .15s ease;
}

.vts-player.vts-open .vts-close:hover{
  transform:scale(1.06);
  color:#fff;
  border-color:#fff;
  background:var(--vts-blue);
}

.vts-player.vts-open .vts-big-play{display:none!important}

body.vts-player-lock{
  overflow:hidden!important;
}

@keyframes vtsFadeIn{
  from{opacity:0;transform:scale(.985)}
  to{opacity:1;transform:scale(1)}
}

@media (max-width:600px){
  .vts-player{max-width:100%}
  .vts-player .vts-big-play{width:58px;height:58px}
  .vts-player .vts-big-play span{border-top-width:12px;border-bottom-width:12px;border-left-width:19px}
  .vts-player.vts-open .vts-close{top:14px;right:14px}
  .vts-player.vts-open .vts-controls{bottom:18px!important;width:calc(100vw - 26px)!important;max-width:calc(100vh * 9 / 16 - 26px)!important}
}
