#hero {
  position: relative;
  height: 100vh;
  min-height: 700px;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
}

.hbg {
  position: absolute;
  inset: 0;
  background: url('../img/photo-1519681393784-d120267933ba.jpg') center / cover;
  transform: scale(1.05);
  transition: transform 8s ease-out;
}
.hbg.go { transform: scale(1); }

.hov {
  position: absolute;
  inset: 0;
  background: linear-gradient(to bottom,
    rgba(10,10,11,.5)  0%,
    rgba(10,10,11,.2)  40%,
    rgba(10,10,11,.75) 80%,
    rgba(10,10,11,1)   100%);
}
[data-theme="light"] .hov {
  background: linear-gradient(to bottom,
    rgba(245,240,232,.3)  0%,
    rgba(245,240,232,.1)  40%,
    rgba(245,240,232,.65) 80%,
    rgba(245,240,232,1)   100%);
}

.hcnt {
  position: relative;
  z-index: 2;
  text-align: center;
  max-width: 900px;
  padding: 0 2rem;
}

.heye {
  font-size: .65rem;
  font-weight: 300;
  letter-spacing: .4em;
  text-transform: uppercase;
  color: var(--sky);
  margin-bottom: 1.5rem;
  opacity: 0;
  animation: fup 1s ease .3s forwards;
}

.hh1 {
  font-family: 'Cormorant Garamond', serif;
  font-size: clamp(3rem, 8vw, 7rem);
  font-weight: 300;
  line-height: 1.05;
  color: var(--tx);
  margin-bottom: 1.5rem;
  opacity: 0;
  animation: fup 1s ease .5s forwards;
}
.hh1 em { font-style: italic; color: var(--gold); }

.hsub {
  font-size: clamp(.9rem, 1.5vw, 1.1rem);
  font-weight: 200;
  letter-spacing: .08em;
  line-height: 1.8;
  color: var(--txm);
  max-width: 560px;
  margin: 0 auto 2.5rem;
  opacity: 0;
  animation: fup 1s ease .7s forwards;
}

.hctas {
  display: flex;
  gap: 1rem;
  justify-content: center;
  flex-wrap: wrap;
  opacity: 0;
  animation: fup 1s ease .9s forwards;
}

.hscr {
  position: absolute;
  bottom: 2.5rem;
  left: 50%;
  transform: translateX(-50%);
  z-index: 2;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: .5rem;
  opacity: 0;
  animation: fin 1s ease 1.5s forwards;
}
.hscr span { font-size: .6rem; letter-spacing: .3em; text-transform: uppercase; color: var(--txd); }

.scrl {
  width: 1px;
  height: 60px;
  background: linear-gradient(var(--gold), transparent);
  animation: sp 2s ease infinite;
}

@keyframes fup {
  from { opacity: 0; transform: translateY(30px); }
  to   { opacity: 1; transform: none; }
}
@keyframes fin  { from { opacity: 0; } to { opacity: 1; } }
@keyframes sp   { 0%, 100% { opacity: .3; } 50% { opacity: 1; } }
