/* Home hero — one-time load: left/right ease inward (CSS transition only, no replay) */

.hero-section.hero-scenic-style {
  isolation: isolate;
}

.hero-scenic-bg {
  overflow: hidden;
}

.hero-scenic-bg-media {
  position: absolute;
  inset: 0;
  background-size: cover;
  background-position: right center;
  background-repeat: no-repeat;
  opacity: 0;
  transition: opacity 0.9s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

.hero-scenic-glow {
  position: absolute;
  inset: 0;
  z-index: 2;
  pointer-events: none;
  background:
    radial-gradient(ellipse 55% 45% at 12% 42%, rgba(22, 137, 200, 0.14), transparent 68%),
    radial-gradient(ellipse 40% 35% at 88% 22%, rgba(67, 56, 255, 0.1), transparent 70%);
  opacity: 0;
  transition: opacity 0.75s ease 0.06s;
}

.hero-scenic-orb {
  position: absolute;
  border-radius: 50%;
  filter: blur(48px);
  pointer-events: none;
  z-index: 2;
  opacity: 0;
  transition: opacity 0.7s ease 0.1s;
}

.hero-scenic-orb--1 {
  width: min(280px, 42vw);
  height: min(280px, 42vw);
  top: 8%;
  right: 18%;
  background: rgba(22, 137, 200, 0.22);
}

.hero-scenic-orb--2 {
  width: min(200px, 32vw);
  height: min(200px, 32vw);
  bottom: 12%;
  right: 8%;
  background: rgba(99, 102, 241, 0.16);
}

.hero-scenic-overlay {
  z-index: 3;
}

.hero-section.hero-scenic-style .hero-container {
  z-index: 4;
}

.hero-content-reveal,
.hero-visual-reveal {
  opacity: 0;
  transition:
    opacity 0.95s cubic-bezier(0.25, 0.46, 0.45, 0.94),
    transform 0.95s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

.hero-section.hero-scenic-style:not(.hero-ready) .hero-content-reveal {
  transform: translate3d(-3.25rem, 0, 0);
}

.hero-section.hero-scenic-style:not(.hero-ready) .hero-visual-reveal {
  transform: translate3d(3.25rem, 0, 0);
}

.hero-section.hero-scenic-style.hero-ready .hero-content-reveal {
  opacity: 1;
  transform: translate3d(0, 0, 0);
  transition-delay: 0.08s;
}

.hero-section.hero-scenic-style.hero-ready .hero-visual-reveal {
  opacity: 1;
  transform: translate3d(0, 0, 0);
  transition-delay: 0.14s;
}

.hero-section.hero-scenic-style.hero-ready .hero-scenic-bg-media,
.hero-section.hero-scenic-style.hero-ready .hero-scenic-glow,
.hero-section.hero-scenic-style.hero-ready .hero-scenic-orb {
  opacity: 1;
}

.hero-scenic-style .hero-title {
  font-size: clamp(2rem, 4.2vw, 3.15rem);
  line-height: 1.12;
  letter-spacing: -0.03em;
}

.hero-scenic-style .hero-title .gradient-part {
  display: inline;
}

.hero-scenic-style .hero-text {
  font-size: clamp(1rem, 1.35vw, 1.0625rem);
  max-width: 34rem;
}

.hero-scenic-style .hero-badge {
  letter-spacing: 0.02em;
}

.hero-content-reveal {
  contain: layout style;
}

@media (prefers-reduced-motion: reduce) {
  .hero-section.hero-scenic-style .hero-scenic-bg-media,
  .hero-section.hero-scenic-style .hero-scenic-glow,
  .hero-section.hero-scenic-style .hero-scenic-orb,
  .hero-section.hero-scenic-style .hero-content-reveal,
  .hero-section.hero-scenic-style .hero-visual-reveal {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
  }
}

@media (max-width: 991.98px) {
  .hero-scenic-bg-media {
    background-position: center 20%;
  }

  .hero-scenic-orb {
    display: none;
  }

  .hero-section.hero-scenic-style:not(.hero-ready) .hero-content-reveal {
    transform: translate3d(-1.5rem, 0, 0);
  }

  .hero-section.hero-scenic-style:not(.hero-ready) .hero-visual-reveal {
    transform: translate3d(1.5rem, 0, 0);
  }
}
