/* Night Vendor: The Customer Still Inside
   Homepage-only additive attraction doorway. No global selectors. */
.nv-closing-attraction{
  --nv-attraction-red:#a91f2d;
  --nv-attraction-red-hot:#df4a58;
  --nv-attraction-brass:#d9c6a2;
  position:relative;
  padding:clamp(76px,9vw,118px) 0 clamp(22px,4vw,42px);
  border-top:1px solid rgba(185,216,248,.12);
  isolation:isolate;
}
.nv-closing-attraction::before{
  content:"";
  position:absolute;
  top:0;
  left:8%;
  right:8%;
  height:1px;
  background:linear-gradient(90deg,transparent,rgba(169,31,45,.78),rgba(217,198,162,.38),transparent);
  box-shadow:0 0 28px rgba(169,31,45,.34);
}
.nv-closing-attraction__shell{
  position:relative;
  display:grid;
  grid-template-columns:minmax(0,1.12fr) minmax(340px,.88fr);
  min-height:620px;
  overflow:hidden;
  border:1px solid rgba(185,216,248,.2);
  background:
    radial-gradient(circle at 82% 12%,rgba(169,31,45,.09),transparent 26%),
    linear-gradient(135deg,rgba(4,9,15,.98),rgba(0,0,0,.98));
  box-shadow:0 38px 130px rgba(0,0,0,.62),inset 0 0 80px rgba(94,151,196,.035);
}
.nv-closing-attraction__shell::after{
  content:"";
  position:absolute;
  inset:12px;
  border:1px solid rgba(185,216,248,.07);
  pointer-events:none;
  z-index:5;
}
.nv-closing-attraction__monitor{
  position:relative;
  min-height:620px;
  overflow:hidden;
  border-right:1px solid rgba(185,216,248,.14);
  background:#010203;
}
.nv-closing-attraction__room{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
  filter:brightness(.66) contrast(1.11) saturate(.72);
  transform:scale(1.015);
}
.nv-closing-attraction__customer{
  position:absolute;
  z-index:2;
  left:50%;
  bottom:8%;
  width:clamp(84px,12vw,148px);
  height:auto;
  opacity:0;
  transform:translateX(-50%) scale(.72);
  filter:brightness(.34) contrast(1.35) drop-shadow(0 22px 34px rgba(0,0,0,.9));
  animation:nvClosingCustomer 14s steps(1,end) infinite;
}
.nv-closing-attraction__monitor::before{
  content:"";
  position:absolute;
  z-index:3;
  inset:0;
  pointer-events:none;
  background:
    repeating-linear-gradient(0deg,rgba(255,255,255,.018) 0,rgba(255,255,255,.018) 1px,transparent 1px,transparent 4px),
    linear-gradient(90deg,rgba(0,0,0,.26),transparent 22%,transparent 76%,rgba(0,0,0,.34));
  mix-blend-mode:screen;
  opacity:.58;
}
.nv-closing-attraction__monitor::after{
  content:"";
  position:absolute;
  z-index:4;
  left:0;
  right:0;
  top:-18%;
  height:16%;
  pointer-events:none;
  background:linear-gradient(180deg,transparent,rgba(216,238,255,.11),transparent);
  animation:nvClosingScan 6.8s linear infinite;
}
.nv-closing-attraction__hud{
  position:absolute;
  z-index:6;
  top:24px;
  left:26px;
  right:26px;
  display:flex;
  justify-content:space-between;
  gap:18px;
  color:rgba(232,245,255,.78);
  text-transform:uppercase;
  letter-spacing:.18em;
  font:800 .64rem system-ui,sans-serif;
  text-shadow:0 1px 12px #000;
}
.nv-closing-attraction__clock{
  font-variant-numeric:tabular-nums;
}
.nv-closing-attraction__clock i{
  font-style:normal;
  animation:nvClosingColon 1s steps(1,end) infinite;
}
.nv-closing-attraction__exit{
  position:absolute;
  z-index:6;
  top:66px;
  right:28px;
  min-width:76px;
  padding:9px 13px 8px;
  border:1px solid rgba(223,74,88,.55);
  background:rgba(80,5,12,.48);
  color:#ff7782;
  text-align:center;
  text-transform:uppercase;
  letter-spacing:.26em;
  font:900 .72rem system-ui,sans-serif;
  box-shadow:0 0 20px rgba(169,31,45,.22),inset 0 0 20px rgba(169,31,45,.12);
  animation:nvClosingExit 8s steps(1,end) infinite;
}
.nv-closing-attraction__status{
  position:absolute;
  z-index:6;
  left:26px;
  bottom:25px;
  display:flex;
  align-items:center;
  gap:10px;
  color:rgba(232,245,255,.74);
  text-transform:uppercase;
  letter-spacing:.17em;
  font:800 .63rem system-ui,sans-serif;
}
.nv-closing-attraction__status::before{
  content:"";
  width:8px;
  height:8px;
  border-radius:50%;
  background:var(--nv-attraction-red-hot);
  box-shadow:0 0 15px rgba(223,74,88,.8);
  animation:nvClosingStatus 1.6s ease-in-out infinite;
}
.nv-closing-attraction__copy{
  position:relative;
  z-index:7;
  display:flex;
  flex-direction:column;
  justify-content:center;
  padding:clamp(38px,4.2vw,58px);
}
.nv-closing-attraction__copy .kicker{
  color:#e1626d;
  margin-bottom:18px;
}
.nv-closing-attraction__narrative{
  display:grid;
  gap:5px;
  margin:0 0 24px;
  padding:0 0 20px;
  border-bottom:1px solid rgba(185,216,248,.12);
}
.nv-closing-attraction__narrative p{
  margin:0;
  color:rgba(183,200,218,.7);
  font:700 clamp(.74rem,1.2vw,.86rem)/1.55 system-ui,sans-serif;
  letter-spacing:.12em;
  text-transform:uppercase;
}
.nv-closing-attraction__narrative p:last-child{
  margin-top:8px;
  color:#f1d8d6;
}
.nv-closing-attraction__copy h2{
  max-width:680px;
  margin:0;
  font-size:clamp(2.65rem,3.8vw,4rem);
  line-height:.94;
  letter-spacing:.045em;
}
.nv-closing-attraction__lede{
  max-width:620px;
  margin-top:20px;
  color:#b8c8d8;
  font-size:clamp(1rem,2vw,1.17rem);
  line-height:1.66;
}
.nv-closing-attraction__meta{
  margin-top:16px;
  color:rgba(217,198,162,.82);
  text-transform:uppercase;
  letter-spacing:.15em;
  font:800 .66rem/1.6 system-ui,sans-serif;
}
.nv-closing-attraction__actions{
  margin-top:22px;
}
.nv-closing-attraction__button.btn{
  position:relative;
  width:auto;
  min-width:min(100%,330px);
  min-height:58px;
  padding:16px 24px;
  overflow:hidden;
  border-color:rgba(223,74,88,.84);
  background:linear-gradient(180deg,#aa2432,#6d0e19);
  color:#fff7f1;
  box-shadow:0 14px 38px rgba(75,0,8,.42),inset 0 1px 0 rgba(255,255,255,.11);
}
.nv-closing-attraction__button.btn::after{
  content:"";
  position:absolute;
  inset:-2px;
  border:1px solid transparent;
  box-shadow:inset 0 0 20px rgba(255,255,255,.04);
  pointer-events:none;
}
.nv-closing-attraction__button.btn:hover,
.nv-closing-attraction__button.btn:focus-visible{
  transform:translateY(-2px);
  background:linear-gradient(180deg,#c42d3d,#7c101d);
  box-shadow:0 18px 48px rgba(105,0,12,.52),0 0 24px rgba(169,31,45,.2);
}
.nv-closing-attraction__advisory{
  margin-top:14px;
  color:rgba(143,162,183,.75);
  font-size:.88rem;
  line-height:1.6;
}
@keyframes nvClosingCustomer{
  0%,56%,66%,100%{opacity:0;transform:translateX(-50%) scale(.72)}
  57%,62%{opacity:.58;transform:translateX(-50%) scale(.72)}
  63%,65%{opacity:.18;transform:translateX(-50%) scale(.74)}
}
@keyframes nvClosingScan{
  from{transform:translateY(0)}
  to{transform:translateY(760%)}
}
@keyframes nvClosingExit{
  0%,12%,14%,51%,53%,100%{opacity:.86}
  13%,52%{opacity:.2}
}
@keyframes nvClosingColon{
  0%,49%{opacity:1}
  50%,100%{opacity:.2}
}
@keyframes nvClosingStatus{
  0%,100%{opacity:.45}
  50%{opacity:1}
}
@media(max-width:900px){
  .nv-closing-attraction__shell{grid-template-columns:1fr;min-height:0}
  .nv-closing-attraction__monitor{min-height:0;aspect-ratio:16/10;border-right:0;border-bottom:1px solid rgba(185,216,248,.14)}
  .nv-closing-attraction__copy{padding:clamp(30px,8vw,54px)}
  .nv-closing-attraction__customer{width:clamp(68px,17vw,112px);bottom:3%}
}
@media(max-width:560px){
  .nv-closing-attraction{padding-top:66px}
  .nv-closing-attraction__shell::after{inset:7px}
  .nv-closing-attraction__monitor{aspect-ratio:4/3}
  .nv-closing-attraction__hud{top:17px;left:17px;right:17px;font-size:.54rem;letter-spacing:.12em}
  .nv-closing-attraction__exit{top:49px;right:18px;min-width:62px;padding:7px 9px 6px;font-size:.59rem}
  .nv-closing-attraction__status{left:17px;bottom:17px;right:17px;font-size:.54rem;letter-spacing:.12em}
  .nv-closing-attraction__copy h2{font-size:clamp(2.35rem,11.5vw,3.35rem)}
  .nv-closing-attraction__button.btn{width:100%;min-width:0}
}
@media(prefers-reduced-motion:reduce){
  .nv-closing-attraction__customer{animation:none;opacity:.22}
  .nv-closing-attraction__monitor::after,
  .nv-closing-attraction__exit,
  .nv-closing-attraction__clock i,
  .nv-closing-attraction__status::before{animation:none}
}
