@import url('https://fonts.googleapis.com/css2?family=Nixie+One&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Atkinson+Hyperlegible:ital,wght@0,400;0,700;1,400;1,700&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Outfit:wght@100..900&display=swap');
:root {
--body-bg: 225, 225, 225;
--content-bg: var(--global-white-color);
--bg-opacity: 0.9;
--extra-bg-1: url(https://imagebed.pro/images/Liurd/n2QIoY5r1F.svg);
--extra-bg-2: url(https://imagebed.pro/images/Liurd/n2QIoY5r1F.svg);
--extra-bg-3: url(https://imagebed.pro/images/Liurd/n2QIoY5r1F.svg);
--extra-opacity-1: 0.15;
--extra-opacity-2: 0.05;
--extra-opacity-3: 0.05;
--topbar-hover-bg: var(--dark-ui-bg), 0.2;
--topbar-hover-txt: var(--light-ui-txt);
--user-drop-txt: var(--dark-ui-txt);
--bottombar-bg: var(--dark-ui-bg);
--bottombar-txt: var(--dark-ui-txt);
--header-title: "Backrooms";
--banner-title: "BACKROOMS";
--banner-subtitle: "当色彩褪去的时候";
--header-height: 3rem;
--topbar-height: 2.5rem;
--dropdown-height: var(--topbar-height);
--banner-height: 25rem;
--header-ui-size: 3rem;
--header-title-size: 1.8rem;
--topbar-size: clamp(0.8rem, calc(0.4rem + 0.8vw), 1.2rem);
--banner-title-size: clamp(2rem, calc(2rem + 3.5vw), 6rem);
--banner-subtitle-size: 1rem;
--banner-font: "Nixie One", "Noto Serif SC", Franklin Gothic Medium, Franklin Gothic, ITC Franklin Gothic, Arial, serif;
--header-font: var(--banner-font);
--title-font: "Outfit", "Noto Sans SC", "Noto Sans TC", Franklin Gothic Medium, Franklin Gothic, ITC Franklin Gothic, Arial, sans-serif;
--body-font: "Atkinson Hyperlegible", "Noto Sans SC", "Noto Sans TC", Arimo, Verdana, Geneva, sans-serif;
--ui-font: "Outfit", "Noto Sans SC", "Noto Sans TC", Arimo, Verdana, Geneva, sans-serif;
}
#extra-div-1 {
position: fixed;
width: 100%;
height: 25vh;
bottom: 0;
left: 0;
z-index: -1;
background-image: var(--extra-bg-1);
background-size: 20rem;
background-repeat: repeat-x;
background-position: center;
opacity: var(--extra-opacity-1);
}
#extra-div-2 {
position: fixed;
width: 100%;
height: 50vh;
bottom: 0;
left: 0;
z-index: -2;
background-image: var(--extra-bg-2);
background-size: 40rem;
background-repeat: repeat-x;
background-position: center;
opacity: var(--extra-opacity-2);
}
#extra-div-3 {
position: fixed;
width: 100%;
height: 100vh;
bottom: 0;
left: 0;
z-index: -3;
background-image: var(--extra-bg-3);
background-size: contain;
background-repeat: repeat-x;
background-position: bottom;
opacity: var(--extra-opacity-3);
}
#container {
display: grid;
grid-template-columns: minmax(var(--sidebar-width), 1fr)auto 1fr;
grid-template-rows: auto auto auto auto;
}
#extrac-div-1 {
grid-column: 2 / 3;
grid-row: 1 / 2;
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
font-family: var(--banner-font);
font-weight: 200;
width: 100%;
height: var(--banner-height);
color: rgb(var(--header-txt));
order: -1;
}
#extrac-div-1::before {
content: var(--banner-title);
font-size: var(--banner-title-size);
}
#extrac-div-1::after {
content: var(--banner-subtitle);
font-size: var(--banner-subtitle-size);
}
#header {
grid-column: 1 / 2;
grid-row: 1 / 3;
min-width: var(--sidebar-width);
width: 100%;
height: fit-content;
grid-template-columns: var(--header-ui-size) 1fr auto auto;
grid-template-rows: var(--header-ui-size) calc(var(--banner-height) - var(--header-ui-size)) auto;
top: calc(0px - var(--banner-height));
order: -2;
}
#search-top-box {
grid-column: 3 / 4;
position: fixed;
right: var(--header-ui-size);
backdrop-filter: blur(1rem);
}
#login-status {
grid-column: 4 / 5;
position: fixed;
right: 0;
backdrop-filter: blur(1rem);
}
#header h1 {
grid-column: 2 / 3;
grid-row: 1 / 2;
height: var(--header-height);
position: static;
}
#header h1 a {
justify-content: flex-start;
padding: 0;
padding-left: 0.5rem;
transition: padding var(--global-duration);
}
#header h1 a:is(:hover, :focus) {
padding-left: 1rem;
transition: padding var(--global-hover-duration);
}
#header h2 {
display: none;
}
#header-extra-div-1 {
display: none;
}
#top-bar {
grid-column: 1 / 5;
grid-row: 3 / 4;
height: auto;
}
#top-bar > div > ul {
flex-direction: column;
height: auto;
margin-right: 0;
}
#top-bar > div > ul > li {
flex-basis: unset;
height: var(--topbar-height);
}
#top-bar > div > ul > li > a {
justify-content: flex-end;
padding: 0 1rem;
}
#top-bar > div > ul > :is(li, li:last-of-type) > ul {
top: 0;
left: 100%;
width: 24em;
max-width: max-content;
min-width: auto;
flex-direction: row;
flex-wrap: wrap;
}
#top-bar > div > ul > li > ul > li {
width: 10em;
flex-grow: 1;
}
#top-bar > div > ul > :is(li, li:hover, li:focus, li.sfhover, li:focus-within) > ul > li > a {
box-sizing: border-box;
}
#content-wrap {
display: contents;
}
#side-bar {
max-height: unset;
overflow-y: auto;
border: unset;
box-shadow: 0 0 1.5rem -1rem rgb(var(--global-dark-color));
}
#side-bar::after {
backdrop-filter: blur(1rem);
}
#main-content {
grid-column: 2 / 3;
grid-row: 2 / 3;
min-height: 100vh;
box-sizing: border-box;
margin: 0 auto 15vh;
padding: 1.5rem;
box-shadow: 0 0 2.5rem -1rem rgb(var(--global-dark-color));
position: relative;
background: rgba(var(--content-bg), var(--bg-opacity));
}
#main-content::after {
content: "你曾经来过这里.";
display: flex;
align-items: center;
justify-content: center;
position: absolute;
top: 100%;
left: 0;
width: 100%;
height: 10vh;
color: rgb(var(--header-txt));
font-family: var(--banner-font);
font-weight: 200;
}
#page-title {
padding: 0;
}
:is(blockquote, .blockquote, div.blockquote, [class*=blockquote]) {
padding: 0.5rem 1rem;
border-width: 0 0 0 0.3rem;
background: rgba(var(--light-block-bg), 0.4);
}
#page-options-container {
font-family: var(--ui-font);
}
#footer {
grid-column: 1 / 4;
grid-row: 3 / 4;
box-sizing: border-box;
justify-content: flex-end;
margin-top: 0.5rem;
border: unset;
}
#license-area {
grid-column: 1 / 4;
grid-row: 4 / 5;
padding: 0.5rem;
justify-content: flex-end;
}
#license-area a {
color: rgb(var(--global-pale-color));
}
@media only screen and (max-width: 1024px) {
#container-wrap {
perspective-origin: 49.5% 5rem;
}
#container {
display: flex;
}
#header {
min-width: var(--sidebar-width);
grid-template-columns: var(--header-ui-size) 1fr auto auto;
grid-template-rows: var(--header-ui-size) auto auto;
top: 0;
width: initial;
position: static;
}
#content-wrap {
display: block;
margin: 0;
}
#login-status {
position: relative;
backdrop-filter: unset;
}
#search-top-box {
position: static;
backdrop-filter: unset;
}
#login-status #account-options {
left: initial;
right: 0;
}
#top-bar > div > ul {
flex-direction: row;
margin-right: auto;
}
#top-bar > div > ul > li {
flex-basis: min-content;
}
#top-bar > div > ul > li > a {
justify-content: center;
padding: 0;
}
#top-bar > div > ul > :is(li, li:last-of-type) > ul {
top: 100%;
left: 0;
width: auto;
flex-direction: column;
}
#top-bar > div > ul > li:last-of-type > ul {
left: initial;
right: 0;
}
#top-bar > div > ul > li > ul > li {
width: 100%;
flex-grow: 1;
}
}
@media only screen and (max-width: 768px) {
#top-bar > div > ul > :is(li, li:last-of-type) > ul {
flex-direction: row;
}
#top-bar > div > ul > li > ul > li {
width: 50%;
}
}
吕柏溪切入这个层级的第一眼,就看见一条笔直而无尽的沙滩将层级的海与平原隔开。但他无心欣赏,高空的下坠加速过程中,短短的十来秒大脑已经将自己二十多年的人生回忆了一次。
而沙滩,一个男人,看眼正在尖叫的吕柏溪,又看眼手表心里开始倒计时。
15:20:00
男人退后一步,前方飞溅的沙子刚好落到自己的皮鞋前,在确认对方落地后又立马靠近。
“和总部通知的信息一样准时,需要我拉你吗?放心,这个层级好玩的地方在于流浪者永远不会出现摔死或摔伤。”男人弯下腰伸手。
吕柏溪恍惚着睁开眼。待过速的心跳平复,先看清太阳,其次是旁边插着尸体串的几颗枯树,最后才是男人那黄色眼镜衬托下有点神经质的笑脸。不过他还没说话的准备,想着先伸手让男人拉自己起来,然后再思考接下来的事情。
“好的,”男人把吕柏溪拉起来,“我叫李明山,是你的接应人,同时也是现任蓝鸟书店分店店长。欢迎来到黄花镇,跟我走个一两公里就是你接下来要上岗的地方。不用奇怪我怎么认识你的,毕竟总部在上任通知时已经把你大头照发出来了。”
吕柏溪正在努力回复身体状态的同时也正努力适应这个叫李明山的人的说话方式,这种自来熟且快速的语调且啰嗦的词句让他在理解差点跟不上。于是只能嗯两声来回应,出于礼貌。
“等我整理一下。”吕柏溪理智完全恢复后说,随即开始清理自身。
于是李明山就直直看着他处理完身上的沙子,等待对方下一步发言。
“对了,”吕柏溪这才被尸体吸引,“那些是?”
“来到这个层级少数不走运的人,摔不死不代表插不死。然后要不我们先走怎么样?等我们的流程走完你可以另外找时间来这里看看。”
并不是李明山没耐心,而是吕柏溪从整理到问问题已经过去20分钟。
“可以了,走吧。”
“好的,本来我可以开车接你的,可惜它坏了。”
“没事。”
两个身影向平原的城镇移动,逐渐缩小,直至消失。
黄花镇以完善的工业与动物养殖业,加上城镇内以米黄色为主的暖色密集建筑群落,一度成为流浪者旅行和长住的首选。当然,它的风俗产业更是吸引另一批急需解决欲望的流浪者的催化剂。
按小镇目前的扩张速度,使它成为黄花城只是时间问题。这里沿着海岸线原本有许多小镇,但是它们都因为黄花镇本身的优势而被兼并为一体。
以上是李明山给吕柏溪做的本地介绍。
在前往蓝鸟书店的路上,吕柏溪四处张望,张望在阳光下米黄的暖色街道,各色店铺还有穿梭其中的各种肤色的人。怕他往后迷路的李明山还将一本地图塞他手里,并像个话痨把每条路上会有什么店都讲一次。
“我觉得,我们是不是要休息一下?”吕柏溪停下收回地图。
反观李明山,表情可以说用亢奋形容。只是听到这么吕柏溪这样说显得有点不爽,但还是询问要不要吃点东西。
于是接下来两人出现在一旁的饭店,尽管蓝鸟书店在下个路口右转就到了。
“档案上说你之前在那边的总部干了四年,”李明山放下手机看向正在啃鸭腿的吕柏溪“那边什么样的书籍最畅销呢?”
“呃,关于切行的教材以及描写前厅的文学作品。在更多时候我在仓库清点存货。”说完后吕柏溪开始啃第二只鸭腿。
“档案又说你有能力胜任店长一职,如果你确实可以胜任的话我也可以离开这里了。没事,你有两周试任期,在最后一天我会向总部汇报你到底合不合适这个位置。”
吕柏溪抬头思考李明山说这话的用意,但目前进食的快感让他思考不了这么多。
“没事,你继续。”李明山看眼手表,又看看外面天空聚集的云层“这里你之前待的地方一样会下雨,尽管那边的雨只是实体们出来逛街的信号。不过这边雨是做为昼夜交替出现的,等十二小时后雨停就相当于过了一天。”
“那我是要加快速度了?”
“是的。”
两人到达书店之时,云层刚好堵上最后一抹光。面前只有三层的淡绿色的狭窄建筑,在街边与周围已经黯淡的米黄色色调格格不入。其店门口正对的路灯又以光亮来强调它的独特,使过路的行人总会留步看两眼再走。
“其他就不用多说了,我知道该干嘛。”吕柏溪打断想要说点什么的李明山,并从他手中接过钥匙。
看着李明山走向对街住房,吕柏溪并不急着进去,拿出手机蹲在路边边抽烟边看。
他相信雨不会那么快下,至少目前不会。
密集且细的雨丝在小镇的灯光中呈现铁丝的质感,人们与非人之物穿行其中。
“抱歉,打烊了。”吕柏溪锁上店门说。
一旁直行站立黑马鼻子喷出一贯气,驱动两蹄摇晃着离开,和人一样。吕柏溪看着面前怪诞的景象,只是拿出一瓶药倒出药片后配合杏仁水吞服。
“不用对雨中的东西感到奇怪或是害怕,雨停后它们会自己消失。”
以上是李明山在吕柏溪正式工作前说的最后一句话,而现在两人将再次见面,交流工作经验以及闲谈。
全身摸一遍看看有没有遗忘东西,再整理自己衣服。只有这样,吕柏溪才会撑开伞放心离开。
到后室后,人们只剩下三件事,忙着活下去,忙着找事干,忙着回忆前厅。这里的人们也尽力着将这里改造成符合自己记忆认知的样子,于是不同肤色不同母语的人在黄花镇进行文化熔炉,代表着自己在前厅的一切在此地成为了万千块玻璃碎片,在融化后又重新塑形。我们可以看到用于装饰的圣诞老人雕像前被摆上香炉,某家商店出售的屏风上画的是油画,人们用餐也会经常出现身处餐馆里老是找不到自己用惯的餐具。
离开书店右转,直至下个路口,再穿越一片暧昧灯光与未知香气弥漫交织的风俗区。这里是雨期最繁华的地带,流浪者的各种取向与玩法在一间间或大或小的店铺中尽情显现。吕柏溪时不时被那群风俗从业者问候,他确实也会时不时心动过,但背后的疾病传染更能震慑人心。不过要在杂乱的人流与迷幻光影中找到李明山说的酒馆就有点为难吕柏溪了。
在左右张望之际,一只戴黄色橡胶手套的手搭上吕柏溪的肩膀。转头就能看见李明山在黄色眼镜加持下神经质的脸,明明认识时间不长,但眼睛里确是一种看故人的目光。
“这里不错吧,我再带你去个更适合聊天的地方。”
“只要没有皮肉娱乐项目就行。”
“你都来这种地方却说这种话就败兴了,来吧。”
在李明山的带领下,两人拐入小巷,走向泛紫光的地下通道入口。
往下,再往下。
一间混合性酒吧。
“坐吧台吧,今晚我请客。”李明山先一步坐下。
“你是坐在人身上吗…?”
说完吕柏溪感觉自己说这个显得多余,这里的椅子全是跪撑在地的人组成。服务员和调酒师则是会动的椅子或是直立行动的动物组成。
“坐啊,他们又不会咬人。”李明山说完还拍拍身下的人。
“是的,我们不会咬人。”被坐的人说。
过了好一会吕柏溪才坐下,尽管他已经来这一周,对雨期时候的东西已经多少适应,但还是对眼下的景色感到大脑处理不来。
李明山刚要点酒水被吕柏溪打断,说来饮料就行,因为先前已经吃过药。
反观李明山这个时候又开始不断地讲述着这个地方发生的事情还有书店工作的细节。吕柏溪听着对方口中什么什么大海对半分开,或是枯树上的尸体串向路人讨要物品不给的话就不断哭闹,又或是书店二楼堆放的滞销书化为鸭子整场雨期地叫喊着逃离书店向四周奔去。
在猩猩调酒师将酒递上来后,李明山才停止讲述,眼睛望向不远处的舞台。一根钢管在站直的人的身上跳钢管舞,惹得顾客身下成为椅子的人不断吹口哨。
“话说,你什么时候离开,或者如果我正式上任后你会去哪?”吕柏溪问。
刚好这个时候酒吧的音乐又开始吵起来,吕柏溪不得不拍拍李明山的肩膀大声再说一遍。
“那个时候我会到处走走,别急还有一周时间呢,好好表现吧。”
李明山喝口酒,又开始滔滔不绝地讲述自己不干后的旅行规划。吕柏溪只觉得面前的人太吵了,不过又想起之前工作地那批沉默的同事来对比,由又能些许地接受。于是他干脆把注意力放在了那根扭动着的,跳钢管舞的钢管身上。
“嘿,你有在听我说吗?”
“有的,你继续。”
李明山看吕柏溪的样子,叹口气点根烟。抽一口,手习惯性往下放,身下的人被烟头烫到叫了一声。也只是叫了一声,重回安静。
舞台上的钢管仍在不断扭动,接受着台下的目光与口哨。
书店二楼,吕柏溪摁动墙上的按钮,排气扇极不情愿的开始运转,发霉的纸张味也极不情愿的被抽到室外。
不久,一批又一批滞销的书被码在门口。
吕柏溪拿出手机简单拍照并向总部汇报后,摆出免费书籍的牌子。随着时间推移,人们开始往门口聚集。
这是这些书较好的结局,楼上半滞销的书还躺着等待环境侵蚀。在人们对这些书左挑右挑的同时,吕柏溪又出来摆出一个牌子,写着店员招募,随后在一边拿手机通知当地出版社又进一批书籍。
在这一周,书店附近的居民多少都知道了书店换了个主人,以往那个话痨且亢奋的家伙被一个总是喜欢在雨期走动的外来人代替。趁这天又是送书又是招募店员,人们也开始围住外来人各种问题随着各种语言压来,渴望一个无论好坏的回答。
被人问得最多的无非是吕柏溪是什么时候来的后室,又以及来之前前厅怎么样了。
一开始还能好好回答,但耐不住提问得人越来越多,吕柏溪也只好躲回到店里看看有没有顾客光临。
没有的话,玩玩手机,进一下书,再清点一下营业额度又是一天。
于是这样的生活一连过了几天,直到将滞销书籍全部处理完,直到二楼全是新书的油墨味。只是在吕柏溪看来,目前的生活让他对自己或是对自己的死亡已经没有遗憾,在前厅更多的是自己挣扎的痕迹,那是一种被道德与竞争环境还有亲情作用下的勒痕。所以每次有人问他对前厅有什么想法,他都会说我来这里的时候爸妈还算年轻,应该又生个孩子陪他们了。
而李明山再来书店时已是几天后,看到吕柏溪和他招来的两个员工正在整理书架,没急着进去,而是用手机记录什么。
“我好奇,在你经营的时候不用招募人手吗?”吕柏溪已经来到门口。
“那是你碰巧在小镇人最多的时候来到这,”李明山进店后开始张望“人们还是那么喜欢关于前厅的文艺作品吗?”
“确实,但这周限制级或者猎奇作品销售额占了四成。”吕柏溪将营业单拿到对方面前。
“看来大家还是不满足于现实的刺激,”李明山接过单子,表情玩味“或者说大家在从这些作品里学到了点什么,不管怎么样这些购买者也是我们的顾客之一。很难想象这些人在前厅压抑了多久,如果是正常的色情刊物那无伤大雅,只是你需要把这个再划分一下。”
“什么划分?”吕柏溪蹲路边开始抽烟。
“把色情和血腥完全区分开再统计一遍,尽管总部不考虑你卖什么,但收入源是什么一定要让他们清楚。”说着,李明山开始进店。
“所以我通过试任了吗?”吕柏溪朝里面喊着。
“我要看你具不具备雨期营业能力,就在四小时后,如果能正常运行那么你的试任就通过了。”
得到这样的回答,吕柏溪抬头看向天空。
他相信雨很快会下。
不过之前,他要花几分钟去街对面买根雪糕。毕竟在炎热下午,没有什么是比雪糕更能振奋人心的。如果可以他愿意再买几根,回去后和自己招来的员工在店里边吃边交代任务。
当天空开始降下雨滴,吕柏溪才让两个店员走前做好自己的收尾工作。
两个店员将门口遮雨棚展开,店内门口也铺上防水毯。做完这一切后向吕柏溪报告后便下班离开,后者看着两人离开的背影,正在大口吃着盒饭。
这是吕柏溪到后室以来,第一次吃到跟前厅一样有锅气的晚饭,虽然这顿晚饭是他在做法上难以理解的意大利炒面。
雨滴打向雨棚,但没成噪音,只是密集地沙沙响着。使得这顿晚饭注定要分神,吕柏溪想到自己前厅老家下雨的样子。每次雨都会把自己家门口的摩托车铁棚打得噼啪响,偶尔又会出于未知原因触发摩托车警报器,这样一来吕柏溪总是睡不好觉。
店门拉开,也将吕柏溪拉到现实,一个男人牵条狐狸进来。
“抱歉,本店不接待宠物。”吕柏溪提醒一声,几大口把晚饭解决。
于是男人蹲到店门边,狐狸站起来,把男人栓在店门旁的装饰门杆上。然后直挺挺走向书架之间。
没等吕柏溪在震撼和不解中反应过来,之前没进店的黑马在这次也成功进来,不小心踩到被栓的男人,男人开始尖叫开始翻滚。狐狸也在第一时间跑到门口想看什么情况,结果差点被正在进店的黑马踩死,在绕过黑马后可能想通过抱着男人来安抚情绪,结果又被男人的体重和惯性下被甩飞。
吕柏溪张嘴,但很快又闭嘴了。他不知道该说点什么,看站立的黑马摇晃着在书架间移动的身体祈祷这玩意能赶紧离开。毕竟这东西站起来起码有四米高。
足足半个小时,黑马摇晃着把头向书架间探来探去。并时不时叫两声示意吕柏溪过来,并拿前蹄比划着,让他拿书架最底部的书出来看看。
又半小时,黑马没能找到想要的书籍才弯腰离开书店。门口的男人好不容易艰难起来准备和狐狸离开,结果刚好被出门的黑马一脚踢飞,又开始痛苦尖叫和翻滚…
看着这一切的吕柏溪瘫坐在收银位,点根烟。
他相信雨很快会停。