/* Homepage art direction; inner pages retain their existing styles. */
.home-page { --hero-gold: #e9bd73; --hero-ice: #d9f0ff; --hero-gutter: clamp(32px, 8.5vw, 180px); --hero-top: clamp(190px, 21.2svh, 204px); --hero-bottom: 70px; }
.home-page .hero-content { width: calc(100% - 2 * var(--hero-gutter)); }
.home-page .hero { display: block; min-height: 100svh; padding: var(--hero-top) 0 var(--hero-bottom); }
.home-page .hero-content { min-height: calc(100svh - var(--hero-top) - var(--hero-bottom)); display: flex; flex-direction: column; }
.home-page .hero-copy { max-width: min(670px, 46vw); }
.home-page .hero::after { background: linear-gradient(0deg, var(--night), #050d1c80 45px, transparent 30%), linear-gradient(90deg, #030d1dcc 0%, #041123a6 28%, #05122640 55%, #040e1c08 100%); }
.home-page .hero-media::after { background: linear-gradient(180deg, #041020b8, #04102099 134px, transparent 205px); }
.home-page .hero .location { display: flex; align-items: center; gap: 16px; margin-bottom: 14px; font: 500 20px/1.4 'Cormorant Garamond', Georgia, serif; }
.hero-star { width: 32px; height: 32px; flex-shrink: 0; color: var(--hero-gold); }
/* The generated lettering carries its own flourishes and glints. */
.home-page .hero h1 { margin: 0; line-height: 0; font-size: inherit; text-shadow: none; }
.hero-title-art { display: block; width: 100%; height: auto; }
.home-page .hero-description { margin-top: 20px; max-width: 460px; font: 400 20px/1.55 Manrope, sans-serif; color: #f2f1f0; text-shadow: 0 2px 12px #0008; }
.hero-action { margin-top: 24px; }
.home-page .hero .hero-cta { width: 350px; max-width: 100%; min-height: 66px; padding: 15px 26px; gap: 14px; border: 1px solid #ffecbaba; border-radius: 6px; background: linear-gradient(110deg, #ffe4a2, #f2c77b 52%, #c9954e); color: #142033; box-shadow: 0 8px 32px #d69f492e; font: 500 18px/1.4 Manrope, sans-serif; transition: transform .3s, box-shadow .3s; }
.hero-cta .line-icon { width: 24px; height: 24px; color: #142033; }
.hero-cta-arrow { margin-left: auto; font-size: 26px; line-height: 1; font-weight: 400; }
.home-page .hero .hero-cta:hover { transform: translateY(-2px); box-shadow: 0 10px 36px #e9bd7345; }
.hero-cta-caption { margin-top: 13px; max-width: 55ch; color: #e5ebf2; font-size: 13px; line-height: 1.6; }
.home-page .hero-facts { display: flex; flex-wrap: nowrap; width: fit-content; max-width: 100%; gap: 0; border: 0; margin-top: auto; padding-top: 48px; }
.home-page .hero-facts > div { display: grid; grid-template-columns: 34px auto; gap: 1px 12px; padding: 0 24px; border-left: 1px solid #dce9f273; }
.home-page .hero-facts > div:first-child { padding-left: 0; border-left: 0; }
.hero-facts .line-icon { grid-row: 1 / 3; width: 33px; height: 33px; align-self: center; color: var(--hero-gold); }
.home-page .hero-facts dt { color: #c4cedc; font-size: 12px; }
.home-page .hero-facts dd { color: #fff; font-size: 16px; font-weight: 500; }
.hero-snow { position: absolute; inset: 0; z-index: 2; pointer-events: none; overflow: hidden; mask-image: linear-gradient(transparent, #000 15%, #000 85%, transparent); }
.hero-snow span { position: absolute; inset: -470px -80px; background-repeat: repeat; animation: hero-snowfall 36s linear infinite; animation-play-state: paused; opacity: .3; }
.hero-snow.is-visible span { animation-play-state: running; }
.hero-snow span:nth-child(1) { background-image: radial-gradient(circle 1px at 25px 35px, #effaff 80%, transparent), radial-gradient(circle 1px at 154px 190px, #c2e7ff 80%, transparent); background-size: 280px 310px; }
.hero-snow span:nth-child(2) { background-image: radial-gradient(circle 2px at 85px 86px, #effaff 50%, transparent), radial-gradient(circle 1px at 320px 220px, #fff 70%, transparent); background-size: 425px 390px; animation-duration: 25s; animation-delay: -9s; opacity: .38; }
.hero-snow span:nth-child(3) { background-image: radial-gradient(circle 3px at 130px 160px, #ccecff 30%, transparent); background-size: 560px 470px; animation-duration: 19s; animation-delay: -14s; opacity: .22; filter: blur(1px); }
@keyframes hero-snowfall { from { transform: translate(0, 0); } to { transform: translate(40px, 470px); } }
@keyframes hero-reveal { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: no-preference) {
  .nav-ready .hero-title-art { animation: hero-reveal .9s .32s both; }
  .nav-ready .hero .location { animation: hero-reveal .8s .2s both; }
  .nav-ready .home-page .hero-description { animation: hero-reveal .9s .8s both; }
  .nav-ready .hero-action { animation: hero-reveal .9s .94s both; }
  .nav-ready .home-page .hero-facts { animation: hero-reveal .9s 1.08s both; }
}
@media (max-width: 1400px) and (min-width: 961px) {
  .home-page .hero-content { width: calc(100% - 2 * var(--hero-gutter)); }
}

@media (max-width: 960px) {
  .home-page .hero-content { width: calc(100% - 48px); }
  .home-page .hero { padding-top: 175px; padding-bottom: 38px; }
  .home-page .hero-content { min-height: calc(100svh - 213px); }
  .home-page .hero-copy { max-width: 620px; }

  .home-page .hero-facts { padding-top: 48px; }
  .home-page .hero-facts > div { padding-inline: 20px; }
}
@media (max-width: 767px) {
  .home-page .hero-content { width: calc(100% - 40px); }
  .home-page .hero { padding: 150px 0 38px; }
  .home-page .hero-content { min-height: calc(100svh - 188px); }
  .home-page .hero-media > video { object-position: 60% center; }
  .home-page .hero::after { background: linear-gradient(0deg, var(--night), #050d1c80 45px, transparent 35%), linear-gradient(90deg, #030d1dd6, #041123b8 65%, #0512267a); }
  .home-page .hero .location { font-size: 18px; gap: 10px; margin-bottom: 22px; }
  .hero-star { width: 28px; height: 28px; }

  .home-page .hero-description { font-size: 17px; line-height: 1.55; margin-top: 27px; max-width: 32ch; }
  .hero-desktop-break { display: none; }
  .hero-action { margin-top: 26px; }
  .home-page .hero .hero-cta { width: min(100%, 350px); min-height: 62px; font-size: 18px; padding-inline: 25px; }
  .hero-cta-caption { max-width: 37ch; font-size: 12px; line-height: 1.65; }
  .home-page .hero-facts { padding-top: 45px; flex-wrap: wrap; gap: 22px 0; }
  .home-page .hero-facts > div { grid-template-columns: 27px auto; column-gap: 9px; padding-inline: 13px; }
  .home-page .hero-facts > div:first-child { padding-left: 0; }
  .hero-facts .line-icon { width: 25px; height: 30px; }
  .home-page .hero-facts dt { font-size: 9px; }
  .home-page .hero-facts dd { font-size: 12px; }
  .home-page .hero-facts > div:last-child { border-left: 0; padding-left: 0; flex-basis: 100%; grid-template-columns: 27px auto; justify-content: start; }
  .hero-snow span:nth-child(3) { display: none; }
}
@media (max-width: 360px) {
  .home-page .hero-content { width: calc(100% - 32px); }
}
@media (max-height: 800px) and (min-width: 961px) {
  .home-page .hero { padding-top: 160px; padding-bottom: 48px; }
  .home-page .hero-content { min-height: calc(100svh - 208px); }
  .home-page .hero .location { margin-bottom: 15px; }
  .home-page #hero-title { max-width: 570px; }
  .home-page .hero-description { margin-top: 21px; font-size: 19px; }
  .hero-action { margin-top: 22px; }
  .home-page .hero-facts { padding-top: 42px; }
}
@media (max-width: 960px) {
  html:not(.nav-ready) .home-page .hero { padding-top: 520px; }
}
@media (prefers-reduced-motion: reduce) {
  .hero-snow span { animation: none; }
  .home-page .hero .hero-cta { transition: none; }
}
