/* Night guide: one readable silhouette, one floating rhythm, a little lantern light. */
html.carpet-loading { overflow: hidden; }
[data-carpet-replay][hidden], [data-motion-toggle][hidden] { display: none; }
.night-intro {
  --carpet-ready: 1;
  position: fixed;
  inset: 0;
  z-index: 10000;
  display: grid;
  place-items: center;
  overflow: hidden;
  isolation: isolate;
  color: #f7f1e8;
  background: radial-gradient(ellipse at 50% 54%, #283127 0%, #151e1b 35%, #0b1016 70%);
  font-family: var(--font-sans, system-ui, sans-serif);
  animation: night-reveal 180ms ease-out both;
}
.night-intro[hidden] { display: none; }
.night-intro::after {
  content: '';
  position: absolute;
  inset: auto -10% -45%;
  height: 68%;
  z-index: -1;
  background: radial-gradient(ellipse, #d2a2642b, transparent 65%);
}
.night-intro__brand {
  position: absolute;
  top: clamp(24px, 6vh, 60px);
  left: 0;
  width: 100%;
  margin: 0;
  text-align: center;
  color: #ded8cd;
  font: 600 20px/1.2 var(--font-display, Georgia, serif);
  letter-spacing: -.035em;
}
.night-intro__brand span { color: #efba79; margin-right: 9px; }
.night-intro__scene {
  width: min(600px, 94vw);
  text-align: center;
  position: relative;
  margin-top: -12px;
}
.night-intro__art {
  position: relative;
  width: min(440px, 88vw);
  margin-inline: auto;
  aspect-ratio: 4/3;
}
.night-intro__orbit {
  position: absolute;
  width: 78%;
  aspect-ratio: 1;
  border: 1px solid #dcbe8a12;
  border-radius: 50%;
  top: -4%;
  left: 11%;
  transform: rotate(-22deg);
}
.night-intro__orbit::before {
  content: '';
  position: absolute;
  inset: 9%;
  border: 1px solid #dcbe8a08;
  border-radius: 50%;
}
.night-intro__orbit::after {
  content: '';
  position: absolute;
  top: 12%;
  right: 15%;
  width: 5px;
  height: 5px;
  background: #e8c998;
  border-radius: 50%;
}
.night-intro__arrival { position: relative; animation: night-arrive 850ms cubic-bezier(.2,.7,.25,1) both; }
.night-intro__departure { transform-origin: 65% 62%; }
.night-guide { --guide-cycle: 5.6s; display: block; width: 100%; height: auto; overflow: visible; }
.night-guide [data-part='flight'] { animation: night-float var(--guide-cycle) ease-in-out infinite; transform-origin: 50% 65%; }
.night-guide [data-part='lantern'] { animation: night-lantern var(--guide-cycle) ease-in-out infinite; transform-box: fill-box; transform-origin: 50% 0%; }
.night-guide [data-part='scarf'], .night-guide [data-part='tassels'] {
  animation: night-fabric var(--guide-cycle) ease-in-out -.35s infinite;
  transform-box: fill-box;
  transform-origin: right top;
}
.night-guide [data-part='eyes'] { animation: night-blink 6.4s linear 1s infinite; transform-box: fill-box; transform-origin: center; }
.night-guide [data-part='steam'] { opacity: .6; }
.night-guide [data-part='glow'] { animation: night-glow var(--guide-cycle) ease-in-out infinite; }
.night-intro__eyebrow {
  margin: 8px 0 10px;
  color: #bbc8ab;
  font-size: 10px;
  font-weight: 600;
  letter-spacing: .23em;
  text-transform: uppercase;
}
.night-intro__title {
  margin: 0;
  color: #f7f1e8;
  font: 400 clamp(30px, 5vw, 44px)/1.12 var(--font-display, Georgia, serif);
  letter-spacing: -.035em;
}
.night-intro__caption { margin: 14px 20px 0; color: #acb7ba; font-size: 13px; line-height: 1.6; }
.night-intro__signal {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  margin: 25px 0 0;
  color: #cbbb9e;
  font-size: 10px;
  letter-spacing: .1em;
}
.night-intro__signal::before { content:''; width: 4px; height: 4px; border-radius: 50%; background: #e6bd80; }
.night-intro__skip {
  position: absolute;
  bottom: max(24px, env(safe-area-inset-bottom));
  left: 50%;
  transform: translateX(-50%);
  min-height: 44px;
  padding: 10px 18px;
  border: 1px solid #e7d8bc29;
  border-radius: 100px;
  background: #ffffff04;
  color: #d9d0c2;
  font: inherit;
  font-size: 12px;
  cursor: pointer;
}
.night-intro__skip:hover { background: #ffffff0c; border-color: #e7d8bc60; }
.night-intro__skip:focus-visible { outline: 2px solid #8fd7bb; outline-offset: 5px; }
.night-intro.carpet-loader--exit { animation: night-dismiss 400ms ease-in both; pointer-events: none; }
.carpet-loader--exit .night-intro__departure { animation: night-depart 400ms cubic-bezier(.4,0,.8,.5) both; }
@keyframes night-reveal { from { opacity: 0; } to { opacity: 1; } }
@keyframes night-arrive { from { opacity: 0; transform: translate(-30px, 10px) rotate(-2.5deg); } to { opacity: 1; transform: none; } }
@keyframes night-float { 0%,100% { transform: translateY(0) rotate(-.45deg); } 50% { transform: translateY(-6px) rotate(.45deg); } }
@keyframes night-lantern { 0%,100% { transform: rotate(-3deg); } 50% { transform: rotate(4deg); } }
@keyframes night-fabric { 0%,100% { transform: rotate(-1.5deg); } 50% { transform: rotate(2deg); } }
@keyframes night-blink { 0%,43%,47%,100% { transform: scaleY(1); } 45% { transform: scaleY(.08); } }
@keyframes night-glow { 0%,100% { opacity: .65; } 50% { opacity: 1; } }
@keyframes night-dismiss { to { opacity: 0; visibility: hidden; } }
@keyframes night-depart { to { transform: translate(48px,-18px) rotate(3deg); opacity: 0; } }
@media (max-height: 650px) {
  .night-intro__brand { top: 18px; font-size: 17px; }
  .night-intro__art { width: min(310px, 62vh); }
  .night-intro__eyebrow { margin-top: 0; }
  .night-intro__signal { margin-top: 12px; }
  .night-intro__skip { bottom: 12px; }
}
@media (max-height: 450px) {
  .night-intro__scene { display: grid; grid-template-columns: 46% 54%; align-items: center; width: min(680px,92vw); }
  .night-intro__art { width: 100%; }
  .night-intro__caption { margin-inline: 0; }
  .night-intro__copy { text-align: left; }
  .night-intro__signal { justify-content: flex-start; }
  .night-intro__title { font-size: 30px; }
}
@media (prefers-reduced-motion: reduce) {
  .night-intro, .night-intro *, .night-intro *::before, .night-intro *::after,
  .night-guide [data-part] { animation: none !important; transition: none !important; }
}
/* A lasting, optional home for the guide after the welcome disappears. */
.night-guide-note { display:flex; gap:16px; align-items:center; margin:40px 0 0; padding-top:22px; border-top:1px solid var(--border); }
.night-guide-note img { width:110px; height:83px; flex-shrink:0; }
.night-guide-note p { margin:0; color:var(--muted); font-size:13px; }
.night-guide-note strong { display:block; color:var(--text); font:400 21px/1.3 var(--font-display); margin-bottom:4px; }
.night-guide-note button { padding:4px 0; color:var(--accent); font:inherit; font-size:12px; border:0; background:none; cursor:pointer; text-decoration:underline; text-underline-offset:3px; }
