.ys-video-shell {
  position: relative;
  display: block;
  width: min(100%, 820px);
  max-width: 100%;
  margin: 24px auto;
  border: 1px solid rgba(255, 255, 255, .08);
  border-radius: 18px;
  overflow: hidden;
  background:
    radial-gradient(circle at 50% 18%, rgba(45, 122, 78, .22), transparent 38%),
    #07130d;
  line-height: 0;
  box-shadow: 0 20px 56px rgba(4, 21, 12, .18);
  isolation: isolate;
}

.ys-video-shell .ys-video {
  width: 100%;
  max-width: 100%;
  display: block;
  vertical-align: top;
  border-radius: 0;
  margin: 0;
  background: #000;
}

.ys-video-shell.is-portrait {
  width: min(100%, 640px);
}

.ys-video-loading {
  position: absolute;
  z-index: 4;
  inset: 0;
  display: flex;
  visibility: hidden;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  gap: 12px;
  color: rgba(255, 255, 255, .9);
  background: rgba(3, 14, 8, .58);
  opacity: 0;
  backdrop-filter: blur(7px);
  transition: opacity .24s ease, visibility .24s ease;
}

.ys-video-shell.is-buffering .ys-video-loading {
  visibility: visible;
  opacity: 1;
}

.ys-video-loading span {
  width: 38px;
  height: 38px;
  border: 3px solid rgba(255, 255, 255, .24);
  border-top-color: #d6ad50;
  border-radius: 50%;
  animation: ysVideoSpin .8s linear infinite;
}

.ys-video-loading small {
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .08em;
  line-height: 1;
}

@keyframes ysVideoSpin {
  to { transform: rotate(360deg); }
}

.ys-video-watermark {
  position: absolute;
  z-index: 3;
  pointer-events: none;
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 7px 11px;
  background: rgba(8, 24, 16, 0.52);
  border-radius: 8px;
  backdrop-filter: blur(4px);
  max-width: min(78%, 340px);
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.18);
}

.ys-video-watermark--top-left { top: 10px; left: 10px; right: auto; bottom: auto; }
.ys-video-watermark--top-right { top: 10px; right: 10px; left: auto; bottom: auto; }
.ys-video-watermark--bottom-left { bottom: 10px; left: 10px; top: auto; right: auto; }
.ys-video-watermark--bottom-right { bottom: 10px; right: 10px; top: auto; left: auto; }

.ys-video-watermark-logo {
  width: 30px;
  height: 30px;
  object-fit: contain;
  border-radius: 6px;
  background: rgba(255, 255, 255, 0.92);
  flex-shrink: 0;
}

.ys-video-watermark-text { min-width: 0; }

.ys-video-watermark-title {
  font-size: 12px;
  font-weight: 800;
  color: var(--ys-color-surface, #ffffff);
  line-height: 1.35;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.ys-video-watermark-subtitle {
  font-size: 10px;
  color: rgba(255, 255, 255, 0.88);
  line-height: 1.35;
  margin-top: 1px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

@media (max-width: 768px) {
  .ys-video-shell { margin: 18px auto; border-radius: 14px; }
  .ys-video-watermark { padding: 5px 8px; gap: 6px; max-width: min(85%, 280px); }
  .ys-video-watermark-logo { width: 24px; height: 24px; }
  .ys-video-watermark-title { font-size: 11px; }
  .ys-video-watermark-subtitle { font-size: 9px; }
}

@media (prefers-reduced-motion: reduce) {
  .ys-video-loading span { animation-duration: 1.6s; }
}
