/* ==========================================================================
   SELAHADORE — Landing / Elevator Reveal
   ========================================================================== */

body.home { height: 100vh; overflow: hidden; }
body.home.is-unlocked { overflow-y: auto; height: auto; }

/* ------------------------------- Intro doors ------------------------------ */
.intro {
  position: fixed;
  inset: 0;
  z-index: 950;
  pointer-events: none;
}

.intro__door {
  position: absolute;
  top: 0; bottom: 0;
  width: 50%;
  background: var(--black);
  transition: transform 1.6s var(--ease-out);
}

.intro__door--left { left: 0; transform-origin: left; }
.intro__door--right { right: 0; transform-origin: right; }

.intro__door::after {
  content: '';
  position: absolute;
  top: 0; bottom: 0;
  width: 1px;
  background: var(--line-strong);
}

.intro__door--left::after { right: 0; }
.intro__door--right::after { left: 0; }

.intro__mark {
  position: absolute;
  top: 50%; left: 50%;
  transform: translate(-50%, -50%);
  font-family: var(--font-display);
  font-style: italic;
  font-weight: 300;
  font-size: clamp(1.1rem, 2.2vw, 1.6rem);
  letter-spacing: 0.08em;
  color: var(--cream-faint);
  opacity: 0;
  transition: opacity 0.8s ease 0.3s;
  white-space: nowrap;
}

body.home.is-loaded .intro__mark { opacity: 1; }

body.home.is-unlocking .intro__door--left,
body.home.is-unlocked .intro__door--left { transform: translateX(-100%); }

body.home.is-unlocking .intro__door--right,
body.home.is-unlocked .intro__door--right { transform: translateX(100%); }

body.home.is-unlocked .intro { display: none; }

/* --------------------------------- Hero stage ------------------------------ */
.hero {
  position: relative;
  height: 100vh;
  min-height: 560px;
  width: 100%;
  overflow: hidden;
}

.hero__media {
  position: absolute;
  inset: 0;
  z-index: 1;
}

.hero__img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 65%;
  transform: scale(1.14);
  filter: saturate(0.92) brightness(0.86);
  transition: transform 3.5s var(--ease-out), filter 2.5s ease;
}

body.home.is-unlocked .hero__img {
  transform: scale(1);
}

.hero__scrim {
  position: absolute;
  inset: 0;
  background:
    linear-gradient(to bottom, rgba(5,4,3,0.55) 0%, rgba(5,4,3,0.1) 30%, rgba(5,4,3,0.35) 68%, rgba(5,4,3,0.85) 100%),
    linear-gradient(120deg, rgba(7,7,7,0.4), transparent 60%);
}

.hero__content {
  position: relative;
  z-index: 2;
  height: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  gap: clamp(0.9rem, 1.6vw, 1.4rem);
  padding: 0 1.5rem;
}

.hero__content .eyebrow {
  color: var(--cream-dim);
  opacity: 0;
  transform: translateY(14px);
  transition: opacity 1s var(--ease-out), transform 1s var(--ease-out);
  transition-delay: 1.5s;
}

.hero__mark {
  font-size: clamp(2.4rem, 6vw, 4.6rem);
  letter-spacing: 0.04em;
  color: var(--cream);
  text-shadow: 0 2px 40px rgba(0,0,0,0.35);
  opacity: 0;
  transform: translateY(20px);
  transition: opacity 1.2s var(--ease-out), transform 1.2s var(--ease-out);
  transition-delay: 1.7s;
}

.hero__tagline {
  max-width: 32ch;
  font-size: 0.95rem;
  font-weight: 300;
  color: var(--cream-dim);
  opacity: 0;
  transform: translateY(14px);
  transition: opacity 1s var(--ease-out), transform 1s var(--ease-out);
  transition-delay: 1.95s;
}

.hero__cta {
  margin-top: clamp(0.75rem, 2vw, 1.5rem);
  opacity: 0;
  transform: translateY(14px);
  transition: opacity 1s var(--ease-out), transform 1s var(--ease-out), border-color 0.5s var(--ease-soft), background 0.5s var(--ease-soft), color 0.5s var(--ease-soft);
  transition-delay: 2.2s;
}

body.home.is-unlocked .hero__content .eyebrow,
body.home.is-unlocked .hero__mark,
body.home.is-unlocked .hero__tagline,
body.home.is-unlocked .hero__cta {
  opacity: 1;
  transform: translateY(0);
}

.hero__scroll-cue {
  position: absolute;
  bottom: clamp(1.5rem, 3vw, 2.5rem);
  left: 50%;
  transform: translateX(-50%);
  z-index: 2;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.6rem;
  font-size: 0.64rem;
  letter-spacing: 0.3em;
  text-transform: uppercase;
  color: var(--cream-faint);
  opacity: 0;
  transition: opacity 1s ease;
  transition-delay: 2.6s;
}

body.home.is-unlocked .hero__scroll-cue { opacity: 1; }

.hero__scroll-cue::after {
  content: '';
  width: 1px;
  height: 34px;
  background: linear-gradient(to bottom, var(--cream-faint), transparent);
  animation: cue-drop 2.4s ease infinite;
}

@keyframes cue-drop {
  0% { transform: scaleY(0); transform-origin: top; opacity: 0; }
  40% { transform: scaleY(1); transform-origin: top; opacity: 1; }
  60% { transform: scaleY(1); transform-origin: bottom; opacity: 1; }
  100% { transform: scaleY(0); transform-origin: bottom; opacity: 0; }
}

/* --------------------------- Below-fold brand note -------------------------- */
.home-note {
  position: relative;
  background: var(--black);
  padding: var(--space-xl) 0 var(--space-lg);
  text-align: center;
}

.home-note__text {
  max-width: 46ch;
  margin-inline: auto;
  font-family: var(--font-display);
  font-style: italic;
  font-weight: 300;
  font-size: clamp(1.4rem, 2.6vw, 2.1rem);
  line-height: 1.5;
  color: var(--cream-dim);
}

.home-note .btn {
  margin-top: var(--space-md);
}

@media (prefers-reduced-motion: reduce) {
  .intro__door, .hero__img, .hero__mark, .hero__tagline, .hero__cta, .hero__content .eyebrow, .hero__scroll-cue {
    transition-duration: 0.01s !important;
  }
}
