/* NIGHT VENDOR — PASS 01C Object Interaction
   Additive tactile layer only. No story/copy/layout replacement. */
.nv01c-object{-webkit-tap-highlight-color:transparent;touch-action:manipulation}
.nv01c-object:focus-visible{outline:1px solid rgba(231,247,255,.72);outline-offset:4px}

/* Late Files: the visible archive drawer image becomes the physical entry point. */
.nv-late-files-page .late-files-visual-anchor.nv01c-object{
  cursor:pointer;transform-origin:50% 62%;
  transition:transform .22s ease,filter .22s ease,box-shadow .22s ease,border-color .22s ease;
}
.nv-late-files-page .late-files-visual-anchor.nv01c-object:hover,
.nv-late-files-page .late-files-visual-anchor.nv01c-object:focus-visible{
  transform:translateY(-2px);border-color:rgba(185,216,248,.34);
  box-shadow:0 30px 96px rgba(0,0,0,.52),0 0 24px rgba(185,216,248,.06);
}
.nv-late-files-page .late-files-visual-anchor.nv01c-object.nv01c-is-opening{
  transform:translateY(2px) scale(.997);filter:brightness(1.08);
  box-shadow:inset 0 0 28px rgba(0,0,0,.18),0 20px 70px rgba(0,0,0,.5);
}

/* Hidden Bookshop: reinforce the already-approved Back Shelf trigger as a physical shelf. */
.nv-hidden-bookshop-page #backShelfOpen.nv01c-object{
  transform-origin:50% 55%;
  transition:transform .22s ease,filter .22s ease,box-shadow .22s ease,border-color .22s ease;
}
.nv-hidden-bookshop-page #backShelfOpen.nv01c-object:hover,
.nv-hidden-bookshop-page #backShelfOpen.nv01c-object:focus-visible{
  transform:perspective(900px) rotateX(.35deg) translateY(-2px);
  border-color:rgba(185,216,248,.34);
  box-shadow:0 30px 96px rgba(0,0,0,.54),inset 0 0 28px rgba(185,216,248,.035);
}
.nv-hidden-bookshop-page #backShelfOpen.nv01c-object.nv01c-is-opening{
  transform:perspective(900px) rotateY(-.7deg) translateX(2px);filter:brightness(.92);
}

/* Fiction Shop: the marked counter and its existing object labels become tactile. */
.nv-fiction-shop-page #markedCounterTrigger.nv01c-object{
  transform-origin:50% 70%;
  transition:transform .22s ease,filter .22s ease,box-shadow .22s ease,border-color .22s ease;
}
.nv-fiction-shop-page #markedCounterTrigger.nv01c-object:hover,
.nv-fiction-shop-page #markedCounterTrigger.nv01c-object:focus-visible{
  transform:translateY(-2px);border-color:rgba(217,198,162,.30);
  box-shadow:0 30px 96px rgba(0,0,0,.52),0 0 26px rgba(217,198,162,.045);
}
.nv-fiction-shop-page #markedCounterTrigger.nv01c-object.nv01c-is-opening{
  transform:translateY(2px) scale(.997);filter:brightness(.94);
}
.nv-fiction-shop-page .restrained-objects .object-chip.nv01c-object{
  cursor:pointer;transform-origin:50% 70%;
  transition:transform .2s ease,background .2s ease,border-color .2s ease,box-shadow .2s ease;
}
.nv-fiction-shop-page .restrained-objects .object-chip.nv01c-object:hover,
.nv-fiction-shop-page .restrained-objects .object-chip.nv01c-object:focus-visible{
  transform:translateY(-3px) rotate(-.18deg);border-color:rgba(185,216,248,.28);
  background:rgba(185,216,248,.052);box-shadow:0 12px 28px rgba(0,0,0,.22);
}
.nv-fiction-shop-page .restrained-objects .object-chip.nv01c-object.nv01c-is-inspected{
  transform:translateY(-5px) rotate(.25deg);border-color:rgba(217,198,162,.30);
  background:rgba(217,198,162,.045);box-shadow:0 14px 34px rgba(0,0,0,.28),0 0 18px rgba(217,198,162,.05);
}

@media (prefers-reduced-motion:reduce){.nv01c-object{transition:none!important;animation:none!important}}
