/* Cinematic light reveal: bounded glow layers, no canvas or video dependency. */
#first-visit-intro {
  --arrival-gold: #e4bd78;
  position: fixed;
  inset: 0;
  z-index: 2147483647;
  display: none;
  place-items: center;
  overflow: hidden;
  background: #080a0e;
  transition: opacity 280ms ease;
}
html.intro-pending #first-visit-intro { display: grid; }
html.intro-seen #first-visit-intro { display: none; }
html.intro-pending #preloader { display: none !important; }
.arrival-brand { position: relative; width: min(480px,calc(100vw - 48px)); text-align: center; isolation: isolate; }
/* Create the animation only when its controller and font are ready. */
#first-visit-intro:not(.is-playing) .arrival-brand { opacity: 0; }
#first-visit-intro:not(.is-playing) .arrival-brand,
#first-visit-intro:not(.is-playing) .arrival-brand *,
#first-visit-intro:not(.is-playing) .arrival-brand::before,
#first-visit-intro:not(.is-playing) .arrival-brand *::before,
#first-visit-intro:not(.is-playing) .arrival-brand *::after { animation: none !important; }
#first-visit-intro.arrival-font-fallback .arrival-name { font-family: system-ui,sans-serif !important; }
#first-visit-intro.arrival-font-fallback .arrival-eyebrow { font-family: system-ui,sans-serif !important; }
.arrival-brand::before {
  content: '';
  position: absolute;
  inset: -84px -30px;
  z-index: -1;
  background: radial-gradient(ellipse,rgba(223,163,70,.19),transparent 68%);
  animation: arrival-atmosphere 2800ms ease both;
  pointer-events: none;
}
#first-visit-intro .arrival-eyebrow {
  position: relative;
  margin: 0 0 23px;
  color: #ead8b4;
  font: 400 12px/1.5 'DM Sans',sans-serif;
  letter-spacing: .65em;
  text-indent: .65em;
  text-transform: uppercase;
  animation: arrival-label 800ms ease 1000ms both;
}
#first-visit-intro .arrival-name {
  display: flex;
  justify-content: center;
  position: relative;
  margin: 0;
  font: 600 clamp(31px,8.4vw,56px)/1.4 'Sora',sans-serif;
  font-family: 'Sora',sans-serif !important;
  letter-spacing: .025em;
  animation: arrival-name-settle 2400ms cubic-bezier(.2,.7,.2,1) both;
}
#first-visit-intro .arrival-letter { position: relative; display: block; color: transparent; }
.arrival-letter::before, .arrival-letter::after {
  content: attr(data-glyph);
  position: absolute;
  inset: 0;
  color: #fff1d2;
  pointer-events: none;
}
.arrival-letter::after {
  text-shadow: 0 0 7px rgba(255,224,156,.5),0 0 22px rgba(237,169,66,.28);
  animation: arrival-ignite 1250ms cubic-bezier(.2,.65,.2,1) both;
  animation-delay: calc(120ms + var(--letter) * 85ms);
}
.arrival-letter::before {
  color: #ffcf79;
  text-shadow: 0 0 14px #ffcf79,0 0 34px #ed9c3d,0 0 58px rgba(236,158,49,.85);
  filter: blur(5px);
  mix-blend-mode: screen;
  animation: arrival-bloom 1700ms ease both;
  animation-delay: calc(120ms + var(--letter) * 85ms);
}
.arrival-rays {
  position: absolute;
  left: 5%;
  right: 5%;
  top: 50%;
  height: 228px;
  transform: translateY(-42%);
  display: flex;
  align-items: center;
  justify-content: space-around;
  z-index: -1;
  pointer-events: none;
  -webkit-mask-image: linear-gradient(transparent,#000 28%,#000 72%,transparent);
  mask-image: linear-gradient(transparent,#000 28%,#000 72%,transparent);
}
.arrival-rays i {
  display: block;
  height: 100%;
  width: 2.5px;
  background: linear-gradient(transparent,#d88c39 28%,#fff3d6 50%,#c48031 72%,transparent);
  box-shadow: 0 0 9px 2.5px rgba(247,175,70,.48);
  transform-origin: center;
  animation: arrival-ray 2000ms cubic-bezier(.2,.6,.2,1) both;
  animation-delay: calc(210ms + var(--ray) * 29ms);
}
.arrival-rays i:nth-child(3n) { width: 5px; height: 80%; }
.arrival-rays i:nth-child(4n) { height: 64%; background: linear-gradient(transparent,#927c60,#f5e7cf,#7c6748,transparent); }
#first-visit-intro .arrival-skip {
  position: absolute;
  right: max(24px,env(safe-area-inset-right));
  bottom: max(20px,env(safe-area-inset-bottom));
  min-width: 72px;
  min-height: 44px;
  padding: 10px;
  border: 0;
  background: transparent;
  color: #b5b9ad;
  font: 400 12px/1.5 'DM Sans',sans-serif;
  cursor: pointer;
}
#first-visit-intro .arrival-skip span { margin-left: 8px; color: inherit; }
#first-visit-intro .arrival-skip:hover { color: #fff1d2; }
.arrival-skip:focus-visible { outline: 2px solid var(--arrival-gold); outline-offset: -3px; }
#first-visit-intro.is-leaving { opacity: 0; pointer-events: none; }
@keyframes arrival-ignite {
  0% { opacity: 0; clip-path: inset(0 100% 0 0); transform: scaleX(.9); }
  40% { opacity: 1; }
  65%,100% { opacity: 1; clip-path: inset(0 -15% 0 -15%); transform: scaleX(1); }
}
@keyframes arrival-bloom {
  0% { opacity: 0; transform: scale(.92,1.3); }
  35% { opacity: 1; transform: scale(1.04,1.12); }
  65% { opacity: .6; }
  100% { opacity: .12; transform: scale(1); }
}
@keyframes arrival-ray {
  0% { opacity: 0; transform: scaleY(.08); }
  30% { opacity: .8; transform: scaleY(.9); }
  55% { opacity: .35; transform: scaleY(1); }
  100% { opacity: 0; transform: scaleY(1.2); }
}
@keyframes arrival-atmosphere { 0% { opacity: 0; transform: scale(.7); } 45% { opacity: 1; } 100% { opacity: .25; transform: scale(1); } }
@keyframes arrival-name-settle { from { transform: scale(.96); } to { transform: scale(1); } }
@keyframes arrival-label { from { opacity: 0; } to { opacity: 1; } }
@media (prefers-reduced-motion: reduce) {
  html.intro-pending #first-visit-intro { display: none; }
  #first-visit-intro, #first-visit-intro *, #first-visit-intro *::before, #first-visit-intro *::after { animation: none !important; transition: none !important; }
}

/* The legacy jQuery preloader must not cover pages on arrival. */
#preloader { display: none !important; }
