/* NIGHT VENDOR HORROR — PASS 01B: ROOM IDENTITY
   Additive environmental composition only.
   No story/content/navigation changes. PASS 01A remains authoritative for spatial behavior. */

body.nv-late-files-page,
body.nv-hidden-bookshop-page,
body.nv-fiction-shop-page{
  --nv01b-cold:185,216,248;
  --nv01b-warm:217,198,162;
  --nv01b-blood:95,23,34;
}

/* Room-wide atmosphere stays behind the existing site and never becomes UI. */
body.nv-late-files-page{
  background:
    linear-gradient(90deg,rgba(126,153,177,.035) 0 1px,transparent 1px 10%,rgba(126,153,177,.025) 10% 10.15%,transparent 10.15% 89.85%,rgba(126,153,177,.025) 89.85% 90%,transparent 90% 99.9%,rgba(126,153,177,.035) 99.9%),
    radial-gradient(ellipse at 50% 7%,rgba(165,205,238,.15),transparent 30%),
    linear-gradient(180deg,#020508 0%,#061019 42%,#010305 100%);
}
body.nv-hidden-bookshop-page{
  background:
    linear-gradient(90deg,rgba(84,62,44,.17),transparent 13%,transparent 87%,rgba(84,62,44,.17)),
    radial-gradient(ellipse at 50% 12%,rgba(217,198,162,.115),transparent 32%),
    radial-gradient(circle at 16% 30%,rgba(58,34,23,.22),transparent 28%),
    linear-gradient(180deg,#030405 0%,#090c0d 43%,#020304 100%);
}
body.nv-fiction-shop-page{
  background:
    linear-gradient(90deg,rgba(217,198,162,.025),transparent 20%,transparent 80%,rgba(217,198,162,.025)),
    radial-gradient(ellipse at 64% 8%,rgba(217,198,162,.10),transparent 28%),
    radial-gradient(circle at 18% 28%,rgba(95,23,34,.13),transparent 30%),
    linear-gradient(180deg,#020405 0%,#071015 44%,#010203 100%);
}

/* Scene depth. These rules do not alter layout dimensions or content flow. */
body.nv-late-files-page .late-files-anchor-scene,
body.nv-hidden-bookshop-page .bookshop-anchor-scene,
body.nv-fiction-shop-page .fiction-anchor-scene{
  box-shadow:
    0 42px 150px rgba(0,0,0,.64),
    inset 0 0 0 1px rgba(var(--nv01b-cold),.025),
    inset 0 -90px 120px rgba(0,0,0,.28);
}
body.nv-late-files-page .late-files-anchor-scene{background:linear-gradient(180deg,rgba(7,16,24,.92),rgba(1,4,7,.99));}
body.nv-hidden-bookshop-page .bookshop-anchor-scene{background:linear-gradient(180deg,rgba(10,12,12,.90),rgba(2,4,5,.99));}
body.nv-fiction-shop-page .fiction-anchor-scene{background:linear-gradient(180deg,rgba(8,14,18,.92),rgba(1,3,5,.99));}

.nv01b-room-stage{
  position:absolute;
  inset:0;
  z-index:0;
  overflow:hidden;
  pointer-events:none;
  user-select:none;
}
.nv01b-room-stage i{position:absolute;display:block;pointer-events:none;}

/* Keep all pre-existing scene furniture above the new environmental shell. */
body.nv-late-files-page .late-files-anchor-scene > .drawer,
body.nv-late-files-page .late-files-anchor-scene > .slip,
body.nv-hidden-bookshop-page .bookshop-anchor-scene > .left-shelves,
body.nv-hidden-bookshop-page .bookshop-anchor-scene > .right-shelves,
body.nv-hidden-bookshop-page .bookshop-anchor-scene > .door,
body.nv-fiction-shop-page .fiction-anchor-scene > .scene-copy{
  position:relative;
  z-index:2;
}
body.nv-late-files-page .late-files-anchor-scene > .drawer,
body.nv-late-files-page .late-files-anchor-scene > .slip,
body.nv-hidden-bookshop-page .bookshop-anchor-scene > .left-shelves,
body.nv-hidden-bookshop-page .bookshop-anchor-scene > .right-shelves,
body.nv-hidden-bookshop-page .bookshop-anchor-scene > .door{
  position:absolute;
}

/* FIRST DOOR — LATE FILES: cold steel, fluorescent ceiling, cabinet-room perspective. */
body.nv-late-files-page .nv01b-room-stage__ceiling{
  left:9%;right:9%;top:18px;height:82px;
  background:
    linear-gradient(100deg,transparent 0 9%,rgba(var(--nv01b-cold),.055) 9.2% 9.6%,transparent 9.8% 90%,rgba(var(--nv01b-cold),.045) 90.2% 90.6%,transparent 91%),
    linear-gradient(180deg,rgba(190,219,242,.065),transparent 72%);
  clip-path:polygon(6% 0,94% 0,100% 100%,0 100%);
  opacity:.72;
}
body.nv-late-files-page .nv01b-room-stage__side-a,
body.nv-late-files-page .nv01b-room-stage__side-b{
  top:68px;bottom:52px;width:18%;
  border:1px solid rgba(var(--nv01b-cold),.075);
  background:
    repeating-linear-gradient(180deg,rgba(var(--nv01b-cold),.045) 0 1px,transparent 1px 56px),
    linear-gradient(90deg,rgba(94,117,138,.09),rgba(0,0,0,.48));
  box-shadow:inset 0 0 50px rgba(0,0,0,.64);
  opacity:.72;
}
body.nv-late-files-page .nv01b-room-stage__side-a{left:-3%;transform:perspective(540px) rotateY(12deg);transform-origin:left center;}
body.nv-late-files-page .nv01b-room-stage__side-b{right:-3%;transform:perspective(540px) rotateY(-12deg);transform-origin:right center;}
body.nv-late-files-page .nv01b-room-stage__floor{
  left:10%;right:10%;bottom:-1px;height:126px;
  background:
    repeating-linear-gradient(90deg,transparent 0 12%,rgba(var(--nv01b-cold),.025) 12.1% 12.3%,transparent 12.4% 24%),
    linear-gradient(180deg,transparent,rgba(126,153,177,.055) 52%,rgba(0,0,0,.48));
  clip-path:polygon(18% 0,82% 0,100% 100%,0 100%);
  opacity:.75;
}
body.nv-late-files-page .nv01b-room-stage__light{
  left:32%;right:32%;top:0;height:7px;
  background:rgba(225,244,255,.86);
  box-shadow:0 0 24px rgba(214,238,255,.72),0 0 96px rgba(172,214,248,.23);
  opacity:.67;
  animation:nv01b-fluor-breathe 11s ease-in-out infinite;
}

/* SECOND DOOR — HIDDEN BOOKSHOP: timber edges, long aisle, one restrained warm pool. */
body.nv-hidden-bookshop-page .nv01b-room-stage__side-a,
body.nv-hidden-bookshop-page .nv01b-room-stage__side-b{
  top:44px;bottom:38px;width:25%;
  background:
    repeating-linear-gradient(180deg,rgba(217,198,162,.045) 0 1px,transparent 1px 82px),
    repeating-linear-gradient(90deg,rgba(93,68,45,.22) 0 9px,rgba(0,0,0,.02) 9px 21px),
    linear-gradient(180deg,rgba(39,29,22,.26),rgba(2,3,4,.76));
  border:1px solid rgba(217,198,162,.065);
  box-shadow:inset 0 0 70px rgba(0,0,0,.64);
  opacity:.58;
}
body.nv-hidden-bookshop-page .nv01b-room-stage__side-a{left:-9%;transform:perspective(680px) rotateY(15deg);transform-origin:left center;}
body.nv-hidden-bookshop-page .nv01b-room-stage__side-b{right:-9%;transform:perspective(680px) rotateY(-15deg);transform-origin:right center;}
body.nv-hidden-bookshop-page .nv01b-room-stage__ceiling{
  left:17%;right:17%;top:10px;height:92px;
  background:linear-gradient(180deg,rgba(217,198,162,.06),transparent 78%);
  clip-path:polygon(14% 0,86% 0,100% 100%,0 100%);
  opacity:.5;
}
body.nv-hidden-bookshop-page .nv01b-room-stage__floor{
  left:22%;right:22%;bottom:-2px;height:168px;
  background:
    repeating-linear-gradient(90deg,transparent 0 19%,rgba(217,198,162,.025) 19.2% 19.5%,transparent 19.7% 39%),
    linear-gradient(180deg,rgba(217,198,162,.035),rgba(47,33,24,.09) 48%,rgba(0,0,0,.56));
  clip-path:polygon(38% 0,62% 0,100% 100%,0 100%);
  opacity:.82;
}
body.nv-hidden-bookshop-page .nv01b-room-stage__light{
  left:38%;right:38%;top:26px;height:270px;
  background:radial-gradient(ellipse at 50% 0%,rgba(232,214,177,.17),rgba(217,198,162,.045) 42%,transparent 72%);
  filter:blur(1px);
  opacity:.72;
  animation:nv01b-lamp-breathe 9s ease-in-out infinite;
}

/* THIRD DOOR — FICTION SHOP: old glass, brass line, counter depth, slow reflection. */
body.nv-fiction-shop-page .nv01b-room-stage__ceiling{
  left:12%;right:12%;top:20px;height:70px;
  border-top:1px solid rgba(217,198,162,.075);
  border-left:1px solid rgba(217,198,162,.04);
  border-right:1px solid rgba(217,198,162,.04);
  background:linear-gradient(180deg,rgba(217,198,162,.035),transparent);
  clip-path:polygon(7% 0,93% 0,100% 100%,0 100%);
  opacity:.7;
}
body.nv-fiction-shop-page .nv01b-room-stage__side-a,
body.nv-fiction-shop-page .nv01b-room-stage__side-b{
  top:72px;bottom:72px;width:16%;
  border:1px solid rgba(217,198,162,.06);
  background:linear-gradient(180deg,rgba(217,198,162,.025),rgba(95,23,34,.035) 42%,rgba(0,0,0,.5));
  box-shadow:inset 0 0 55px rgba(0,0,0,.65);
  opacity:.64;
}
body.nv-fiction-shop-page .nv01b-room-stage__side-a{left:-2%;transform:perspective(620px) rotateY(10deg);}
body.nv-fiction-shop-page .nv01b-room-stage__side-b{right:-2%;transform:perspective(620px) rotateY(-10deg);}
body.nv-fiction-shop-page .nv01b-room-stage__floor{
  left:7%;right:7%;bottom:-2px;height:114px;
  background:
    linear-gradient(90deg,transparent 20%,rgba(217,198,162,.035) 20.2% 20.4%,transparent 20.6% 79.4%,rgba(217,198,162,.035) 79.6% 79.8%,transparent 80%),
    linear-gradient(180deg,rgba(217,198,162,.018),rgba(0,0,0,.52));
  clip-path:polygon(14% 0,86% 0,100% 100%,0 100%);
  opacity:.78;
}
body.nv-fiction-shop-page .nv01b-room-stage__light{
  width:42%;height:150%;right:3%;top:-36%;
  background:linear-gradient(116deg,transparent 42%,rgba(225,238,244,.022) 46%,rgba(217,198,162,.07) 49%,rgba(225,238,244,.018) 52%,transparent 57%);
  transform:translateX(0);
  opacity:.75;
  animation:nv01b-glass-drift 18s ease-in-out infinite alternate;
}

@keyframes nv01b-fluor-breathe{0%,100%{opacity:.64}48%{opacity:.69}50%{opacity:.65}52%{opacity:.69}}
@keyframes nv01b-lamp-breathe{0%,100%{opacity:.66}50%{opacity:.76}}
@keyframes nv01b-glass-drift{from{transform:translateX(-5px)}to{transform:translateX(8px)}}

/* Mobile: preserve the same identity with one focal depth cue, never a squeezed desktop room. */
@media(max-width:820px){
  body.nv-late-files-page .nv01b-room-stage__side-a,
  body.nv-late-files-page .nv01b-room-stage__side-b{width:23%;opacity:.42}
  body.nv-late-files-page .nv01b-room-stage__floor{left:2%;right:2%;height:104px}

  body.nv-hidden-bookshop-page .nv01b-room-stage__side-a,
  body.nv-hidden-bookshop-page .nv01b-room-stage__side-b{width:30%;opacity:.38}
  body.nv-hidden-bookshop-page .nv01b-room-stage__floor{left:13%;right:13%;height:138px}
  body.nv-hidden-bookshop-page .nv01b-room-stage__light{left:27%;right:27%;height:220px;opacity:.58}

  body.nv-fiction-shop-page .nv01b-room-stage__side-a,
  body.nv-fiction-shop-page .nv01b-room-stage__side-b{width:21%;opacity:.4}
  body.nv-fiction-shop-page .nv01b-room-stage__light{width:54%;right:-4%;opacity:.56}
}

@media(max-width:430px){
  .nv01b-room-stage__ceiling{opacity:.42!important}
  body.nv-late-files-page .nv01b-room-stage__side-a,
  body.nv-late-files-page .nv01b-room-stage__side-b,
  body.nv-hidden-bookshop-page .nv01b-room-stage__side-a,
  body.nv-hidden-bookshop-page .nv01b-room-stage__side-b,
  body.nv-fiction-shop-page .nv01b-room-stage__side-a,
  body.nv-fiction-shop-page .nv01b-room-stage__side-b{opacity:.28}
}

@media(prefers-reduced-motion:reduce){
  .nv01b-room-stage__light{animation:none!important;transform:none!important}
}
html.nv-reduced .nv01b-room-stage__light{animation:none!important;transform:none!important}
