.nsvh-hero {
  --nsvh-accent: #7b3ff2;
  --nsvh-overlay: .56;
  --nsvh-desktop-height: 720px;
  --nsvh-mobile-height: 78svh;
  --nsvh-mobile-video-offset: -5%;
  --nsvh-mobile-copy-bottom: 48px;
  position: relative;
  z-index: 1;
  width: 100vw;
  max-width: 100vw;
  height: min(var(--nsvh-desktop-height), calc(100svh - 66px));
  min-height: 540px;
  margin-inline: calc(50% - 50vw);
  overflow: hidden;
  isolation: isolate;
  contain: layout paint style;
  background:
    radial-gradient(circle at 24% 48%, rgba(123,63,242,.18), transparent 32%),
    linear-gradient(115deg, #464b50 0%, #30353a 48%, #24292f 100%);
  color: #fff;
  font-family: inherit;
  visibility: visible;
  opacity: 1;
  touch-action: pan-y;
}

.nsvh-hero.nsvh-mounted { visibility: visible; opacity: 1; }
.nsvh-hero * { box-sizing: border-box; }

.nsvh-video {
  position: absolute;
  inset: 0;
  z-index: -4;
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  pointer-events: none;
  background: #34393e;
  transform: translateZ(0);
  backface-visibility: hidden;
}

.nsvh-veil {
  position: absolute;
  inset: 0;
  z-index: -3;
  pointer-events: none;
  background:
    linear-gradient(90deg, rgba(4,5,10,.20), rgba(4,5,10,.03) 44%, rgba(4,5,10,var(--nsvh-overlay)) 100%),
    linear-gradient(0deg, rgba(4,5,10,.52), transparent 38%, rgba(4,5,10,.14));
}

.nsvh-desktop-pos-left .nsvh-veil {
  background:
    linear-gradient(270deg, rgba(4,5,10,.20), rgba(4,5,10,.03) 44%, rgba(4,5,10,var(--nsvh-overlay)) 100%),
    linear-gradient(0deg, rgba(4,5,10,.52), transparent 38%, rgba(4,5,10,.14));
}

.nsvh-desktop-pos-center .nsvh-veil {
  background: radial-gradient(circle at center, rgba(4,5,10,.12), rgba(4,5,10,calc(var(--nsvh-overlay) * .9)) 88%);
}

.nsvh-glow {
  position: absolute;
  z-index: -2;
  inset: auto 5% -45% auto;
  width: 52vw;
  aspect-ratio: 1;
  border-radius: 50%;
  background: radial-gradient(circle, color-mix(in srgb, var(--nsvh-accent) 24%, transparent) 0%, transparent 68%);
  opacity: .24;
  pointer-events: none;
}

.nsvh-container {
  width: min(1440px, 100%);
  height: 100%;
  margin-inline: auto;
  padding: 70px clamp(28px, 6vw, 96px) 86px;
  display: flex;
  align-items: center;
  justify-content: flex-start;
}

.nsvh-desktop-pos-left .nsvh-container { justify-content: flex-end; }
.nsvh-desktop-pos-center .nsvh-container { justify-content: center; text-align: center; }

.nsvh-copy {
  width: min(630px, 52vw);
  opacity: 0;
  transform: translate3d(0, 28px, 0);
  transition: opacity .5s cubic-bezier(.22,1,.36,1), transform .5s cubic-bezier(.22,1,.36,1);
  pointer-events: none;
}

.nsvh-copy-visible .nsvh-copy {
  opacity: 1;
  transform: translate3d(0, 0, 0);
  pointer-events: auto;
}

.nsvh-copy--mobile { display: none; }

.nsvh-kicker {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 17px;
  padding: 8px 13px;
  border: 1px solid rgba(255,255,255,.16);
  border-radius: 999px;
  background: rgba(10,10,17,.28);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.09);
  font-size: 13px;
  font-weight: 650;
  letter-spacing: -.15px;
  color: rgba(255,255,255,.92);
}

.nsvh-kicker i {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--nsvh-accent);
  box-shadow: 0 0 0 5px rgba(123,63,242,.18), 0 0 18px var(--nsvh-accent);
  box-shadow: 0 0 0 5px color-mix(in srgb, var(--nsvh-accent) 18%, transparent), 0 0 18px var(--nsvh-accent);
}

.nsvh-title {
  margin: 0;
  padding: 0;
  color: #fff;
  font-size: clamp(42px, 4.25vw, 76px);
  font-weight: 900;
  line-height: 1.16;
  letter-spacing: -2.3px;
  text-wrap: balance;
  text-shadow: 0 8px 38px rgba(0,0,0,.28);
}

.nsvh-title span,
.nsvh-title strong { display: block; }

.nsvh-title strong {
  font-weight: 900;
  color: transparent;
  background: linear-gradient(100deg, #fff 0%, #b89bff 47%, var(--nsvh-accent) 100%);
  background: linear-gradient(100deg, #fff 0%, color-mix(in srgb, var(--nsvh-accent) 62%, #fff) 47%, var(--nsvh-accent) 100%);
  -webkit-background-clip: text;
  background-clip: text;
  text-shadow: 0 8px 20px rgba(123,63,242,.18);
}

.nsvh-subtitle {
  max-width: 600px;
  margin: 23px 0 0;
  color: rgba(255,255,255,.78);
  font-size: clamp(15px, 1.1vw, 18px);
  font-weight: 450;
  line-height: 2;
  text-wrap: pretty;
}

.nsvh-desktop-pos-center .nsvh-subtitle { margin-inline: auto; }

.nsvh-actions {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 30px;
}

.nsvh-desktop-pos-center .nsvh-actions { justify-content: center; }

.nsvh-btn {
  min-height: 52px;
  padding: 0 21px;
  border-radius: 15px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 14px;
  text-decoration: none !important;
  font-size: 14px;
  font-weight: 750;
  line-height: 1;
  transition: transform .25s ease, border-color .25s ease, background .25s ease, box-shadow .25s ease;
}

.nsvh-btn:hover { transform: translateY(-2px); }

.nsvh-btn--primary {
  color: #fff !important;
  border: 1px solid color-mix(in srgb, var(--nsvh-accent) 65%, #fff);
  background: linear-gradient(135deg, #4f22bd, var(--nsvh-accent));
  background: linear-gradient(135deg, color-mix(in srgb, var(--nsvh-accent) 80%, #3810a3), var(--nsvh-accent));
  box-shadow: 0 12px 36px rgba(123,63,242,.30), inset 0 1px 0 rgba(255,255,255,.25);
  box-shadow: 0 12px 36px color-mix(in srgb, var(--nsvh-accent) 30%, transparent), inset 0 1px 0 rgba(255,255,255,.25);
}

.nsvh-btn--primary b { font-size: 21px; font-weight: 400; transition: transform .25s ease; }
.nsvh-btn--primary:hover b { transform: translateX(-4px); }

.nsvh-btn--ghost {
  color: #fff !important;
  border: 1px solid rgba(255,255,255,.18);
  background: rgba(8,9,15,.28);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.08);
}

.nsvh-btn--ghost:hover { border-color: rgba(255,255,255,.34); background: rgba(255,255,255,.1); }

.nsvh-sound {
  position: absolute;
  z-index: 4;
  left: clamp(18px, 3vw, 48px);
  bottom: 31px;
  width: 46px;
  height: 46px;
  padding: 0;
  border: 1px solid rgba(255,255,255,.18);
  border-radius: 50%;
  display: grid;
  place-items: center;
  color: #fff;
  background: rgba(8,9,15,.32);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.1), 0 10px 30px rgba(0,0,0,.18);
  cursor: pointer;
  transition: transform .2s ease, background .2s ease;
}

.nsvh-sound:hover { transform: scale(1.05); background: rgba(255,255,255,.13); }
.nsvh-sound svg { width: 20px; height: 20px; fill: currentColor; }
.nsvh-icon-sound-on { display: none; }
.nsvh-sound-on .nsvh-icon-sound-on { display: block; }
.nsvh-sound-on .nsvh-icon-sound-off { display: none; }

.nsvh-scroll {
  position: absolute;
  z-index: 4;
  left: 50%;
  bottom: 23px;
  transform: translateX(-50%);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  padding: 0;
  border: 0;
  color: rgba(255,255,255,.68);
  background: #34393e;
  transform: translateZ(0);
  backface-visibility: hidden;
  font-family: inherit;
  font-size: 10px;
  cursor: pointer;
}

.nsvh-scroll i {
  width: 22px;
  height: 34px;
  border: 1px solid rgba(255,255,255,.35);
  border-radius: 20px;
  position: relative;
}

.nsvh-scroll i::after {
  content: '';
  position: absolute;
  top: 7px;
  left: 50%;
  width: 3px;
  height: 6px;
  border-radius: 4px;
  background: #fff;
  transform: translateX(-50%);
  animation: nsvh-scroll-dot 1.7s ease-in-out infinite;
}

@keyframes nsvh-scroll-dot {
  0%, 100% { opacity: .25; transform: translate(-50%, 0); }
  50% { opacity: 1; transform: translate(-50%, 10px); }
}

@media (max-width: 767px) {
  .nsvh-hero {
    height: min(900px, max(610px, var(--nsvh-mobile-height)));
    min-height: 610px;
  }

  .nsvh-video {
    inset: 0;
    height: 100%;
    object-position: center;
    transform: translate3d(0, var(--nsvh-mobile-video-offset), 0) scale(1.07);
    transform-origin: center;
  }

  .nsvh-veil,
  .nsvh-desktop-pos-left .nsvh-veil,
  .nsvh-desktop-pos-center .nsvh-veil {
    background: linear-gradient(0deg, rgba(5,6,12,calc(var(--nsvh-overlay) + .18)) 0%, rgba(5,6,12,.10) 48%, rgba(5,6,12,.28) 100%);
  }

  .nsvh-glow {
    width: 100vw;
    inset: auto -30% -20% auto;
    opacity: .26;
  }

  .nsvh-container {
    padding: 78px 20px var(--nsvh-mobile-copy-bottom);
    align-items: flex-end;
    justify-content: center !important;
    text-align: center;
  }

  .nsvh-mobile-pos-top .nsvh-container { align-items: flex-start; }
  .nsvh-mobile-pos-center .nsvh-container { align-items: center; }
  .nsvh-mobile-pos-bottom .nsvh-container { align-items: flex-end; }

  .nsvh-copy--desktop { display: none; }
  .nsvh-copy--mobile { display: block; }
  .nsvh-copy { width: min(100%, 430px); }

  .nsvh-kicker {
    margin-bottom: 13px;
    padding: 7px 11px;
    font-size: 11px;
  }

  .nsvh-title {
    font-size: clamp(33px, 10.2vw, 48px);
    line-height: 1.18;
    letter-spacing: -1.5px;
  }

  .nsvh-subtitle {
    margin-top: 16px;
    font-size: 14px;
    line-height: 1.85;
    color: rgba(255,255,255,.8);
  }

  .nsvh-actions { justify-content: center; margin-top: 21px; gap: 9px; }
  .nsvh-btn { min-height: 48px; padding: 0 17px; border-radius: 14px; font-size: 13px; }
  .nsvh-sound { left: 16px; bottom: 19px; width: 42px; height: 42px; }
  .nsvh-scroll { right: 16px; left: auto; bottom: 19px; transform: none; }
  .nsvh-scroll span { display: none; }
}

@media (max-width: 390px) {
  .nsvh-container { padding-inline: 16px; }
  .nsvh-title { font-size: 34px; }
  .nsvh-btn--ghost { display: none; }
}

@media (prefers-reduced-motion: reduce) {
  .nsvh-copy,
  .nsvh-btn,
  .nsvh-sound { transition: none; }
  .nsvh-scroll i::after { animation: none; }
  .nsvh-copy { opacity: 1; transform: none; pointer-events: auto; }
}


/* The matching first frame is visible while the video downloads/decodes. */
.nsvh-hero .nsvh-poster{position:absolute;inset:0;z-index:-3;pointer-events:none;display:block;}
.nsvh-hero .nsvh-poster img{display:block;width:100%;height:100%;object-fit:cover;object-position:center;}
.nsvh-hero.nsvh-video-ready .nsvh-poster{visibility:hidden;}
.nsvh-hero.nsvh-offscreen .nsvh-scroll i::after{animation-play-state:paused;}
@media(max-width:767px){.nsvh-hero .nsvh-poster img{transform:translate3d(0,var(--nsvh-mobile-video-offset),0) scale(1.07);transform-origin:center;}}
