/* Night Vendor — PASS 01A Spatial Shell
   Additive-only layer: threshold, hallway, physical doors, room entry, hallway return. */
:root{
  --nv01a-cold:#c9e7ff;
  --nv01a-ice:#eff8ff;
  --nv01a-warm:#d9c6a2;
  --nv01a-line:rgba(185,216,248,.22);
  --nv01a-shadow:rgba(0,0,0,.82);
}

/* The existing Three Rooms block becomes the physical hallway without changing its content. */
body.nv-home-page .room-strip{
  position:relative;
  isolation:isolate;
  gap:clamp(16px,2vw,24px);
  padding:clamp(34px,5vw,58px) clamp(18px,3vw,34px) clamp(28px,4vw,46px);
  border:1px solid rgba(185,216,248,.16);
  background:
    linear-gradient(180deg,rgba(210,235,255,.06),transparent 8%),
    radial-gradient(ellipse at 50% -8%,rgba(185,216,248,.14),transparent 38%),
    linear-gradient(90deg,rgba(0,0,0,.72),rgba(5,12,18,.32) 28%,rgba(5,12,18,.32) 72%,rgba(0,0,0,.72)),
    #020507;
  box-shadow:inset 0 28px 80px rgba(0,0,0,.58),0 34px 120px rgba(0,0,0,.44);
  overflow:hidden;
  perspective:1100px;
}
body.nv-home-page .room-strip:before{
  content:"";
  position:absolute;
  z-index:-2;
  left:-12%;right:-12%;bottom:-48%;height:72%;
  background:
    linear-gradient(90deg,transparent 49.75%,rgba(185,216,248,.08) 50%,transparent 50.25%),
    repeating-linear-gradient(90deg,rgba(185,216,248,.025) 0 1px,transparent 1px 90px),
    linear-gradient(180deg,rgba(22,31,38,.42),#010203 74%);
  transform:perspective(620px) rotateX(62deg);
  transform-origin:bottom;
  opacity:.82;
}
body.nv-home-page .room-strip:after{
  content:"";
  position:absolute;
  z-index:-1;
  left:22%;right:22%;top:0;height:3px;
  background:#e8f7ff;
  box-shadow:0 0 22px rgba(213,240,255,.9),0 0 70px rgba(151,207,255,.38);
  opacity:.72;
}
body.nv-home-page .room-strip .room-card{
  min-height:clamp(420px,47vw,560px);
  padding:clamp(24px,3.4vw,36px);
  justify-content:flex-end;
  border:1px solid rgba(185,216,248,.24);
  border-radius:2px;
  background:
    linear-gradient(90deg,rgba(255,255,255,.028),transparent 5%,transparent 95%,rgba(255,255,255,.018)),
    linear-gradient(180deg,rgba(22,35,47,.68),rgba(6,12,18,.95) 34%,rgba(1,3,5,.99));
  box-shadow:
    inset 0 0 0 7px rgba(0,0,0,.30),
    inset 0 0 0 8px rgba(185,216,248,.055),
    inset 0 -80px 100px rgba(0,0,0,.72),
    0 20px 54px rgba(0,0,0,.5);
  transform:translateZ(0);
  transform-origin:left center;
  transition:transform .28s ease,border-color .28s ease,box-shadow .28s ease,filter .28s ease;
}
body.nv-home-page .room-strip .room-card:nth-child(1){transform:perspective(900px) rotateY(4deg)}
body.nv-home-page .room-strip .room-card:nth-child(2){transform:translateZ(12px)}
body.nv-home-page .room-strip .room-card:nth-child(3){transform:perspective(900px) rotateY(-4deg);transform-origin:right center}
body.nv-home-page .room-strip .room-card:before{
  content:"";
  position:absolute;
  left:12%;right:12%;top:12%;height:27%;
  border:1px solid rgba(185,216,248,.11);
  background:linear-gradient(180deg,rgba(185,216,248,.025),rgba(0,0,0,.13));
  box-shadow:inset 0 0 28px rgba(0,0,0,.42);
  opacity:1;
}
body.nv-home-page .room-strip .room-card:after{
  content:"";
  position:absolute;
  right:clamp(18px,2.6vw,28px);
  top:52%;
  width:8px;height:8px;border-radius:50%;
  border:1px solid rgba(217,198,162,.62);
  background:radial-gradient(circle at 38% 35%,#eadbbd,#6f604b 62%,#241e17);
  box-shadow:0 0 0 5px rgba(217,198,162,.045),0 3px 16px rgba(0,0,0,.72);
}
body.nv-home-page .room-strip .room-card .ghost-num{
  top:18px;right:20px;font-size:clamp(4.4rem,8vw,7rem);color:rgba(185,216,248,.06);
}
body.nv-home-page .room-strip .room-card .kicker,
body.nv-home-page .room-strip .room-card h3,
body.nv-home-page .room-strip .room-card p,
body.nv-home-page .room-strip .room-card .small-link{position:relative;z-index:2}
body.nv-home-page .room-strip .room-card p{font-size:clamp(.98rem,1.6vw,1.12rem);line-height:1.68}
body.nv-home-page .room-strip .room-card .small-link{
  width:max-content;max-width:100%;padding:10px 0 7px;border-bottom-color:rgba(238,247,255,.54)
}
body.nv-home-page .room-strip .room-card:hover,
body.nv-home-page .room-strip .room-card:focus-within{
  border-color:rgba(202,230,255,.42);
  box-shadow:inset 0 0 0 7px rgba(0,0,0,.26),inset 0 0 0 8px rgba(185,216,248,.09),inset 0 -80px 100px rgba(0,0,0,.62),0 24px 70px rgba(0,0,0,.62),0 0 40px rgba(122,184,255,.07);
  filter:brightness(1.04);
}
body.nv-home-page .room-strip .room-card:nth-child(1):hover,
body.nv-home-page .room-strip .room-card:nth-child(1):focus-within{transform:perspective(900px) rotateY(1deg) translateY(-2px)}
body.nv-home-page .room-strip .room-card:nth-child(2):hover,
body.nv-home-page .room-strip .room-card:nth-child(2):focus-within{transform:translateZ(18px) translateY(-2px)}
body.nv-home-page .room-strip .room-card:nth-child(3):hover,
body.nv-home-page .room-strip .room-card:nth-child(3):focus-within{transform:perspective(900px) rotateY(-1deg) translateY(-2px)}

/* Reusable full-screen shell used only during navigation, never over reading content at rest. */
.nv01a-shell{
  position:fixed;inset:0;z-index:10040;
  display:grid;place-items:center;
  background:
    radial-gradient(ellipse at 50% 8%,rgba(185,216,248,.10),transparent 33%),
    linear-gradient(90deg,#010203 0,#061019 50%,#010203 100%);
  color:var(--nv01a-ice);
  opacity:0;
  pointer-events:none;
  transition:opacity .18s ease;
  overflow:hidden;
}
.nv01a-shell.is-visible{opacity:1;pointer-events:auto}
.nv01a-shell:before{
  content:"";position:absolute;left:-15%;right:-15%;bottom:-46%;height:72%;
  background:repeating-linear-gradient(90deg,rgba(185,216,248,.028) 0 1px,transparent 1px 92px),linear-gradient(180deg,rgba(28,38,47,.38),#010203 70%);
  transform:perspective(660px) rotateX(62deg);transform-origin:bottom;opacity:.8
}
.nv01a-shell:after{
  content:"";position:absolute;left:22%;right:22%;top:0;height:4px;background:#e7f7ff;
  box-shadow:0 0 28px rgba(216,243,255,.92),0 0 92px rgba(142,201,255,.36);opacity:.7
}
.nv01a-threshold-frame{
  position:relative;z-index:2;width:min(72vw,430px);height:min(76vh,610px);
  perspective:1000px;transform:scale(.98);transition:transform .54s cubic-bezier(.2,.74,.2,1)
}
.nv01a-threshold-frame:before{
  content:"";position:absolute;inset:-18px;border:1px solid rgba(185,216,248,.17);
  box-shadow:0 0 0 10px rgba(0,0,0,.5),0 34px 120px rgba(0,0,0,.82),inset 0 0 55px rgba(122,184,255,.045)
}
.nv01a-door-panel{
  position:absolute;inset:0;
  transform-origin:left center;transform-style:preserve-3d;
  border:1px solid rgba(185,216,248,.26);
  background:
    linear-gradient(90deg,rgba(255,255,255,.025),transparent 5%,transparent 95%,rgba(255,255,255,.018)),
    linear-gradient(180deg,#132231 0,#071019 34%,#020405 100%);
  box-shadow:inset 0 0 0 10px rgba(0,0,0,.32),inset 0 0 0 11px rgba(185,216,248,.055),inset 0 -100px 120px rgba(0,0,0,.62);
  transition:transform .62s cubic-bezier(.18,.76,.18,1),filter .34s ease;
}
.nv01a-door-panel:before{
  content:"";position:absolute;left:14%;right:14%;top:13%;height:30%;border:1px solid rgba(185,216,248,.11);box-shadow:inset 0 0 30px rgba(0,0,0,.42)
}
.nv01a-door-panel:after{
  content:"";position:absolute;right:26px;top:52%;width:10px;height:10px;border-radius:50%;border:1px solid rgba(217,198,162,.72);
  background:radial-gradient(circle at 35% 35%,#ecddbd,#6f604b 62%,#211b15);box-shadow:0 0 0 6px rgba(217,198,162,.04)
}
.nv01a-door-plaque{
  position:absolute;left:13%;right:13%;bottom:17%;padding:14px 14px 13px;border:1px solid rgba(217,198,162,.28);
  background:rgba(1,3,5,.62);text-align:center;text-transform:uppercase;letter-spacing:.18em;
  font:800 clamp(.62rem,2vw,.76rem)/1.5 system-ui,sans-serif;color:#e9f5ff
}
.nv01a-door-plaque b{display:block;font:500 clamp(1.35rem,4vw,2.05rem)/1 Georgia,'Times New Roman',serif;letter-spacing:.08em;margin-top:7px}
.nv01a-shell.is-opening .nv01a-threshold-frame{transform:scale(1.045)}
.nv01a-shell.is-opening .nv01a-door-panel{transform:perspective(1000px) rotateY(-78deg);filter:brightness(.72)}
.nv01a-shell.is-opening{background:radial-gradient(ellipse at 50% 48%,rgba(185,216,248,.12),transparent 25%),#010203}

/* Hallway overlay reached by touching the existing Night Vendor brand from a room. */
.nv01a-hallway{
  position:relative;z-index:2;width:min(1180px,100%);max-height:100vh;overflow:auto;
  padding:clamp(74px,10vh,110px) clamp(18px,4vw,44px) clamp(34px,6vh,64px)
}
.nv01a-hallway__top{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;margin-bottom:clamp(24px,4vw,40px)}
.nv01a-hallway__eyebrow{color:#9cc6e9;text-transform:uppercase;letter-spacing:.24em;font:800 .66rem system-ui,sans-serif}
.nv01a-hallway__title{margin:8px 0 0;font:500 clamp(2rem,6vw,4.8rem)/.92 Georgia,'Times New Roman',serif;text-transform:uppercase;letter-spacing:.06em}
.nv01a-hallway__exit{
  flex:0 0 auto;border:1px solid rgba(185,216,248,.24);background:rgba(0,0,0,.2);color:#eaf6ff;padding:12px 15px;
  text-transform:uppercase;letter-spacing:.16em;font:800 .64rem system-ui,sans-serif;cursor:pointer
}
.nv01a-hallway__doors{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(14px,2vw,24px);perspective:1050px}
.nv01a-hall-door{
  position:relative;min-height:clamp(380px,47vw,540px);padding:26px 24px 28px;display:flex;flex-direction:column;justify-content:flex-end;
  border:1px solid rgba(185,216,248,.24);background:linear-gradient(180deg,rgba(20,33,45,.78),rgba(6,12,17,.96) 38%,#010203);
  box-shadow:inset 0 0 0 7px rgba(0,0,0,.3),inset 0 0 0 8px rgba(185,216,248,.055),0 24px 70px rgba(0,0,0,.58);
  color:#eef8ff;text-decoration:none;overflow:hidden;transform-origin:left center;
  transition:transform .28s ease,border-color .28s ease,filter .28s ease
}
.nv01a-hall-door:nth-child(1){transform:perspective(900px) rotateY(4deg)}
.nv01a-hall-door:nth-child(3){transform:perspective(900px) rotateY(-4deg);transform-origin:right center}
.nv01a-hall-door:before{content:"";position:absolute;left:13%;right:13%;top:13%;height:29%;border:1px solid rgba(185,216,248,.11);box-shadow:inset 0 0 32px rgba(0,0,0,.45)}
.nv01a-hall-door:after{content:"";position:absolute;right:25px;top:51%;width:9px;height:9px;border-radius:50%;border:1px solid rgba(217,198,162,.7);background:#7b694e;box-shadow:0 0 0 6px rgba(217,198,162,.035)}
.nv01a-hall-door small{position:relative;z-index:2;color:#9cc6e9;text-transform:uppercase;letter-spacing:.2em;font:800 .61rem system-ui,sans-serif;margin-bottom:9px}
.nv01a-hall-door strong{position:relative;z-index:2;font:500 clamp(1.5rem,4vw,2.45rem)/1 Georgia,'Times New Roman',serif;text-transform:uppercase;letter-spacing:.045em}
.nv01a-hall-door[aria-current="page"]{border-color:rgba(217,198,162,.46);box-shadow:inset 0 0 0 7px rgba(0,0,0,.28),inset 0 0 0 8px rgba(217,198,162,.08),0 24px 70px rgba(0,0,0,.6),0 0 32px rgba(217,198,162,.06)}
.nv01a-hall-door:hover,.nv01a-hall-door:focus-visible{outline:none;border-color:rgba(220,239,255,.5);filter:brightness(1.06)}
.nv01a-hall-door:nth-child(1):hover,.nv01a-hall-door:nth-child(1):focus-visible{transform:perspective(900px) rotateY(1deg) translateY(-2px)}
.nv01a-hall-door:nth-child(2):hover,.nv01a-hall-door:nth-child(2):focus-visible{transform:translateY(-2px)}
.nv01a-hall-door:nth-child(3):hover,.nv01a-hall-door:nth-child(3):focus-visible{transform:perspective(900px) rotateY(-1deg) translateY(-2px)}
.nv01a-hallway__close{
  position:absolute;right:clamp(18px,4vw,44px);top:24px;border:0;background:transparent;color:#9fb3c7;
  font:800 .66rem system-ui,sans-serif;letter-spacing:.17em;text-transform:uppercase;cursor:pointer;padding:10px
}

/* Arrival frame: a short spatial continuation after the new page has loaded. */
.nv01a-arrival{position:fixed;inset:0;z-index:10039;pointer-events:none;background:#010203;opacity:1;transition:opacity .46s ease}
.nv01a-arrival:before{content:"";position:absolute;inset:8% 12%;border:1px solid rgba(185,216,248,.17);box-shadow:inset 0 0 80px rgba(122,184,255,.035),0 0 100px rgba(0,0,0,.72);transform:scale(.84);transition:transform .54s cubic-bezier(.2,.72,.2,1)}
.nv01a-arrival.is-clearing{opacity:0}
.nv01a-arrival.is-clearing:before{transform:scale(1.12)}

body.nv01a-hallway-open{overflow:hidden}

@media(max-width:820px){
  body.nv-home-page .room-strip{grid-template-columns:1fr;padding:28px 16px 24px;gap:18px}
  body.nv-home-page .room-strip:before{height:35%;bottom:-20%}
  body.nv-home-page .room-strip .room-card,
  body.nv-home-page .room-strip .room-card:nth-child(1),
  body.nv-home-page .room-strip .room-card:nth-child(2),
  body.nv-home-page .room-strip .room-card:nth-child(3){min-height:330px;transform:none}
  body.nv-home-page .room-strip .room-card:hover,
  body.nv-home-page .room-strip .room-card:focus-within{transform:translateY(-1px)}
  .nv01a-threshold-frame{width:min(76vw,330px);height:min(66vh,510px)}
  .nv01a-hallway{padding-top:70px}
  .nv01a-hallway__top{display:grid;align-items:start}
  .nv01a-hallway__exit{width:max-content}
  .nv01a-hallway__doors{grid-template-columns:1fr;gap:16px}
  .nv01a-hall-door,
  .nv01a-hall-door:nth-child(1),.nv01a-hall-door:nth-child(2),.nv01a-hall-door:nth-child(3){min-height:260px;transform:none}
  .nv01a-hall-door:hover,.nv01a-hall-door:focus-visible{transform:translateY(-1px)}
}

@media(max-width:430px){
  .nv01a-hallway__title{font-size:clamp(2rem,12vw,3rem)}
  .nv01a-hall-door{min-height:236px}
  .nv01a-door-plaque b{font-size:1.35rem}
}

@media(prefers-reduced-motion:reduce){
  body.nv-home-page .room-strip .room-card,.nv01a-shell,.nv01a-threshold-frame,.nv01a-door-panel,.nv01a-hall-door,.nv01a-arrival,.nv01a-arrival:before{transition:none!important;animation:none!important}
  body.nv-home-page .room-strip .room-card,body.nv-home-page .room-strip .room-card:nth-child(1),body.nv-home-page .room-strip .room-card:nth-child(2),body.nv-home-page .room-strip .room-card:nth-child(3),.nv01a-hall-door,.nv01a-hall-door:nth-child(1),.nv01a-hall-door:nth-child(2),.nv01a-hall-door:nth-child(3){transform:none!important}
}
html.nv-reduced body.nv-home-page .room-strip .room-card,
html.nv-reduced .nv01a-shell,html.nv-reduced .nv01a-threshold-frame,html.nv-reduced .nv01a-door-panel,html.nv-reduced .nv01a-hall-door,html.nv-reduced .nv01a-arrival,html.nv-reduced .nv01a-arrival:before{transition:none!important;animation:none!important}
