/* ========================================================================== 
   HERO
   ========================================================================== */

.hero{
  position: relative;
  height: 100vh;
  min-height: 640px;
  overflow: hidden;
  background: linear-gradient(180deg, var(--bg-deep) 0%, var(--bg-indigo) 62%, var(--bg-indigo-2) 100%);
}

.hero-video{
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.hero::after{
  content: '';
  position: absolute;
  inset: 0;
  background:
    linear-gradient(90deg, rgba(10,13,28,0.72) 0%, rgba(10,13,28,0.42) 48%, rgba(10,13,28,0.16) 100%),
    linear-gradient(180deg, rgba(10,13,28,0.20), rgba(10,13,28,0.62));
  z-index: 2;
}

.hero-content{
  position: relative;
  z-index: 3;
  height: 100%;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  text-align: left;
  padding: 0 max(6vw, 32px);
}

.hero-content h1{
  font-size: clamp(3.8rem, 7vw, 5rem);
  max-width: 12ch;
  color: var(--ink);
  text-shadow: 0 2px 28px rgba(0,0,0,0.42);
}

.hero-content p{
  margin-top: 24px;
  max-width: 42ch;
  color: var(--ink-dim);
  font-size: clamp(1.02rem, 1.4vw, 1.14rem);
  line-height: 1.65;
  text-shadow: 0 1px 14px rgba(0,0,0,0.38);
}

.cta{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-top: 36px;
  min-height: 48px;
  padding: 0 22px;
  border: 1px solid var(--ember);
  background: var(--ember);
  color: var(--bg-deep);
  text-decoration: none;
  font-size: 0.78rem;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  transition: transform 0.2s ease, background-color 0.2s ease, color 0.2s ease;
}

.cta:hover,
.cta:focus-visible{
  transform: translateY(-1px);
  background: transparent;
  color: var(--ember);
}

@media (max-width: 680px){
  .hero-content{
    padding-left: 22px;
    padding-right: 22px;
  }

  .hero-content h1{
    font-size: clamp(3.2rem, 16vw, 4.4rem);
  }
}
