.hero-vsl {
  position: relative;
  width: min(780px, 100%);
  aspect-ratio: 16 / 9;
  margin: 0 auto 30px;
  overflow: hidden;
  border: 1px solid rgba(255,255,255,.13);
  border-radius: 13px;
  background:
    radial-gradient(circle at 50% 45%, rgba(255,56,184,.16), transparent 31%),
    linear-gradient(135deg, rgba(255,255,255,.055), rgba(255,255,255,.01));
  box-shadow: 0 22px 70px rgba(0,0,0,.42), 0 0 45px rgba(255,56,184,.08);
}

.hero-vsl:before {
  content: '';
  position: absolute;
  inset: 0;
  opacity: .45;
  background-image: linear-gradient(rgba(255,255,255,.06) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.06) 1px, transparent 1px);
  background-size: 32px 32px;
}

.hero-vsl__play {
  position: absolute;
  top: 50%;
  left: 50%;
  display: flex;
  flex-direction: column;
  place-items: center;
  justify-content: center;
  gap: 8px;
  width: 184px;
  height: 126px;
  transform: translate(-50%,-50%);
  border: 1px solid rgba(255,255,255,.25);
  border-radius: 10px;
  background: rgba(255,56,184,.84);
  color: #090909;
  box-shadow: 0 0 32px rgba(255,56,184,.42);
  text-align: center;
  animation: vsl-play-pulse 1.8s ease-in-out infinite;
}

@keyframes vsl-play-pulse {
  0%, 100% { transform: translate(-50%,-50%) scale(1); box-shadow: 0 0 24px rgba(255,56,184,.34); }
  50% { transform: translate(-50%,-50%) scale(1.045); box-shadow: 0 0 47px rgba(255,56,184,.72); }
}

.hero-vsl__play small,
.hero-vsl__play strong {
  font: 500 8px 'JetBrains Mono', monospace;
  letter-spacing: .12em;
}

.hero-vsl__play strong { font-size: 10px; }

.hero-vsl__play svg {
  width: 27px;
  height: 27px;
  stroke: currentColor;
  stroke-width: 2.2;
  fill: none;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.hero-vsl__caption {
  position: absolute;
  right: 18px;
  bottom: 17px;
  margin: 0;
  color: #d0d0d0;
  font: 500 9px 'JetBrains Mono', monospace;
  letter-spacing: .1em;
}

@media (max-width: 800px) {
  .hero { padding-top: 98px; }
  .hero-vsl { margin-bottom: 23px; border-radius: 9px; }
  .hero-vsl__play { width: 142px; height: 96px; gap: 5px; }
  .hero-vsl__play small { font-size: 6px; }
  .hero-vsl__play strong { font-size: 8px; }
  .hero-vsl__play svg { width: 21px; height: 21px; }
  .hero-vsl__caption { right: 12px; bottom: 11px; font-size: 7px; }
}

@media (prefers-reduced-motion: reduce) {
  .hero-vsl__play { animation: none; }
}
