:root {
--sidebar-width-on-desktop: calc(var(--base-font-size) * (266 / 15));
--body-width-on-desktop: 45.75rem;
}
@media only screen and (min-width: 56.25rem) {
#content-wrap {
display: flex;
position: initial;
flex-direction: row;
flex-grow: 2;
width: calc(100vw - (100vw - 100%));
max-width: inherit;
height: auto;
min-height: calc(100vh - var(--final-header-height-on-desktop, 10.125rem));
margin: 0 var(--sidebar-width-on-desktop, 13.6rem) 0 calc(var(--sidebar-width-on-desktop, 13.6rem) * -1 / 2);
}
#main-content {
position: initial;
width: var(--body-width-on-desktop, 45.75rem);
max-width: var(--body-width-on-desktop, 45.75rem);
max-height: 100%;
margin: 0 auto;
padding: 2rem 1rem;
}
#page-content {
max-width: min(90vw, var(--body-width-on-desktop, 45.75rem));
}
#side-bar {
position: -webkit-sticky;
position: sticky;
top: 0;
left: 0;
grid-area: side-bar;
width: var(--sidebar-width-on-desktop, 13.6rem) !important;
min-width: var(--sidebar-width-on-desktop, 13.6rem) !important;
max-height: 100vh;
padding-right: 2.5rem;
padding-left: 0.5rem;
overflow-y: scroll;
transition:
translate 300ms cubic-bezier(0.4, 0.0, 0.2, 1),
background-color 300ms cubic-bezier(0.4, 0.0, 0.2, 1),
padding 300ms linear,
margin 300ms linear;
border: none;
border-color: rgba(var(--swatch-tertiary-color, 170, 170, 170), 0.4);
background-color: rgba(var(--sidebar-bg-color, 255, 255, 255), 0);
translate: calc(var(--sidebar-width-on-desktop, 13.5rem) * -1 - 1rem);
direction: rtl;
scrollbar-width: thin;
-ms-scroll-chaining: none;
overscroll-behavior: contain;
scrollbar-color:
rgba(var(--swatch-primary-darker), 0.1) /* Thumb */
rgba(var(--swatch-tertiary-color), 0.05); /* Track */
}
#side-bar::-webkit-scrollbar-track {
background-color: rgba(var(--swatch-secondary-color, 244, 244, 244), 0.8);
}
#side-bar::-webkit-scrollbar,
#side-bar::-webkit-scrollbar-thumb,
#side-bar::-webkit-scrollbar-corner {
width: 0.5rem;
border-right-width: calc(100vw + 100vh);
border-right-style: inset;
border-color: inherit;
background-color: rgba(var(--sidebar-bg-color, 255, 255, 255), 0);
}
#side-bar:is(:hover, :active, :focus-within) {
margin-right: 2.25rem;
padding-right: 0.25rem;
overflow-x: hidden;
overflow-y: auto;
border-color: rgba(var(--swatch-primary-darker), 1);
background-color: rgba(var(--sidebar-bg-color, 255, 255, 255), 1);
translate: calc(var(--sidebar-width-on-desktop, 1rem) - var(--sidebar-width-on-desktop, 0));
scrollbar-color:
rgba(170, 170, 170, 1) /* Thumb */
rgba(252, 252, 252, 1); /* Track */
scrollbar-color:
rgb(var(--swatch-primary-darker, 170, 170, 170), 1) /* Thumb */
rgb(var(--swatch-menubg-color, 252, 252, 252), 1); /* Track */
}
#main-content::after {
content: " ";
display: flex;
position: fixed;
top: 0;
left: 1rem;
align-items: center;
justify-content: center;
width: 1rem;
height: 100%;
max-height: 100%;
transition:
left 300ms cubic-bezier(0.4, 0.0, 0.2, 1),
background-position 300ms cubic-bezier(0.4, 0.0, 0.2, 1),
opacity 300ms cubic-bezier(0.4, 0.0, 0.2, 1);
background: url("https://scp-wiki.wdfiles.com/local--files/component%3Acollapsible-sidebar/sidebar-tab.svg");
background-attachment: fixed;
background-repeat: no-repeat;
background-position: center left 1rem;
background-size: 1rem 12.875rem;
pointer-events: none;
}
#side-bar:is(:hover, :active, :focus-within) + #main-content::after {
left: calc(var(--sidebar-width-on-desktop, 14.5rem) * -1);
width: 0rem;
transition:
left 300ms cubic-bezier(0.4, 0.0, 0.2, 1),
background-position 300ms cubic-bezier(0.4, 0.0, 0.2, 1),
opacity 300ms cubic-bezier(0.4, 0.0, 0.2, 1);
opacity: 0;
background-position: center left calc(var(--sidebar-width-on-desktop, 14.5rem) * -1);
font-size: 0em;
}
#main-content::before {
content: " ";
position: absolute;
z-index: 9;
top: var(--final-header-height-on-desktop, 0);
left: 0;
width: var(--sidebar-width-on-desktop, 14.5rem);
height: calc(100% - var(--final-header-height-on-desktop, 0.688rem) - 2.313rem);
margin-bottom: calc(var(--final-header-height-on-desktop, -2.313rem) * -1 - 2.313rem);
transition:
translate 300ms cubic-bezier(0.4, 0.0, 0.2, 1),
opacity 300ms cubic-bezier(0.4, 0.0, 0.2, 1);
opacity: 0.5;
background-color: rgb(var(--swatch-alternate-color, 0, 0, 0));
pointer-events: none;
translate: calc(var(--sidebar-width-on-desktop, 14.5rem) * -1 + 1rem);
}
#side-bar:is(:hover, :active, :focus-within) + #main-content::before {
translate: 0;
opacity: 0;
}
#side-bar .side-block {
margin-top: 1em;
padding-left: 0.25em;
border-right-width: 0rem;
border-left-width: 0rem;
border-radius: 0;
background-color: rgb(0, 0, 0, 0);
direction: ltr;
}
#side-bar .scpnet-interwiki-wrapper {
direction: ltr;
}
/* Print Friendly Formatting by Estrella */
body.print-body {
--sidebar-width-on-desktop: 0;
}
body.print-body #main-content::before,
body.print-body #main-content::after {
display: none;
}
}
音乐
2052年,11月
唐汝盯着布满电子回路的天花板,幽蓝色的可视信息流在管道中穿梭,他的元件没有从这些跳动的字节中捕获到任何一条感兴趣的信息,旁边冰冷的电子音不停播报着智能算法推荐的娱乐项目。
视线转向窗外,“安乐乡”三个大字的投影隐藏在飘荡的云层内。虚拟空间内正悄无声息的下着暴雨。雨水斜落入地面激起一阵涟漪,然后无声无息的消失,积水与流淌的水渍不过是虚拟的一部分。
没有一个人抬头注意这场雨——当然了,这里是安乐乡,这里是虚拟空间,人们什么都知道。
他讨厌现在铁灰色的天空,霓虹灯和波普配色的招牌交织出的暧昧带着点糜烂的气息。让他想起曾经去过的黔东南山寨,水流蒸腾出的雾气浸透骨髓,像是一张湿淋淋的网从你的口腔钻入,经过肺部,笼住心脏的活性。
唐汝叹了口气,在这个所谓的“乐园”里他没有得到丝毫的乐趣。
10分钟后,唐汝闷哼一声,从黑暗中醒来。他哼哼唧唧地转动着头部。舱外的智能操作系统开始闷声运作,他双手摸索着拔下了颈后植入物,接口的润滑液顺着背流下来和汗水混在一起集成了小水洼,冰冷的舱底研磨着他的脊椎骨。唐汝左右蹭动着背部,试图使自己舒适点,他的视线随着移动在上方观察窗内的小世界飘忽着。
然后,他捕捉到了一个身影。
她撩了下齐耳的短发,唐汝看的更清楚了,他看到女孩身上黑色的夏季校服,看到她紫色条纹的领结,皮鞋惬意地踢着面前的桌子,粉嫩的指尖上会沁出汗水。表情、眼神与话语是没有必要的,尖锐的情绪用柔化坚韧的形体与周围的事物融为一体,缠绕在唐汝眼中的女孩。
女孩微微地抬起头,唐汝知道她的动作,她会转过身,她会抓挠鼻尖,她会暗自窃笑,她会去抓阳光,她……
她停住了,唐汝像是被猛地提拉到半空中,胃部的某处在抽搐。大脑在提醒着什么,感官变得更加清晰。而她就站在观察窗边缘的实验桌前,背对着他。他耳边的声音放缓了,夹杂着低保真的颗粒流过,机器运作声像沉闷的鼓点激荡着空气。
女孩面部肌肉在移动,唐汝看的到她的两颗小虎牙钻了出来——
——机械臂的关节喷出的雾气阻隔了唐汝与他窗外的小世界,他像是被人活生生的从她身边抽离出来。现实蛮横的侵入他的眼睛,虚幻的泡泡被刺碎。无力感蔓延至他的全身,无形的网勒入心脏,让他无法喘息。
他知道——即便雾气遮住她的面庞——他也知道,那是一个未完的微笑。
诊疗
走之前,杜医生塞给唐汝两盒药。
“会发生什么?”
“她会消失一段时间,大概吧,这是感官迁移症。”
唐汝从药盒里拿出一板药,深吸一口气,颤抖着抠出两粒塞进嘴里。他倒在沙发上盯着天花板,故意用力而粗重地呼吸像是要用力把什么东西喷吐出来,强迫自己不去思考,想象大脑中是一片静滞的空白。
视线在卧室里飘忽着,随意扫视着角角落落。他听到自己心脏强健有力的跳动着,感到手掌中的微热。什么东西正在迅速地涌回——记忆中的画面潮起潮落般冲刷着脑海。他侧过头,眼眶中的朦胧与窗外的阳光重叠,女孩身形波动着,消失在朦胧尽头。
他茫然而慌张地站起来,心中像是被刎出了些什么。
“袋子里有七盒,”杜医生拿笔指了指桌子上的白色塑料袋,“用的太快了,你是按照我说的去服用吗?”
唐汝脸上出现了很勉强的笑容:“是啊,每次接入前都会吃,不吃的话情况会很糟糕。”
杜医生搁下笔,认真地盯着唐汝,然后摊了摊手:“我没有冒犯的意思,只是很好奇——我的意思是:哦,天哪!唐汝是谁?安乐乡的总设计师!他会得感官迁移症?!他接入的时候都用独家定制的接入舱!你知道的——感官迁移症大多数都是那些沉迷虚拟空间,或者是一套极烂的接入装置导致的。发生在你身上几乎是不可能的。”
唐汝面无表情地摇了摇头,问道:“能抽烟吗?”
杜医生张了张嘴,好似很错愕,像是想问点什么,但他没有说话,只是默默地把手边烟灰缸推了过去,做了个“请便”的手势。
对唐汝来讲,这是一个很长的故事。在几年前,虚拟空间只是麦宗的专属,接入者们受到条条框框地限制,而在空间内他们也没有如梦想中尽情享乐。失望之余,唐汝和他的一帮朋友们开始建造属于自己的“人间天堂”——在贵州湿热的山水间,他们用着简陋的接入装置,进入麦宗虚拟空间中的底层代码区进行着窃取。
许多人认为那是整个空间里最枯燥乏味的地方。踏进那里之前,唐汝也是这么认为的。当他们穿过一层又一层的拟真环境,底层像是隐藏在厚重幕布后的华丽戏剧般展开。那里的一切都是梦幻的:未完成的组件高悬在头上,它们的信息流环绕在四周,闪烁着黯淡的蓝色;虚拟空间的反馈波动虚幻了这里的空间,让周围的场景都看上去若有若无;调控模组的数据流从天空垂直落下,包裹着银白色的权限保护组,如同蒸汽弥漫在地面。
唐汝和他的朋友们走散了,他来到一条很长很长的隧道里,那里到处有乳白色的投影在飘荡,像是流体一样。不知为何,唐汝记不起具体的内容了。走到尽头时,他感到有暖风吹过来,风中夹杂着修剪干净草坪的味道。他推开门,那是一个午后的客厅,空气是湿润,有阳光蒸腾出的水汽的味道,抽动鼻子时能捕捉到青草的气味。
女孩笑着,注视唐汝。她身上是鲜艳的扶桑花色,绿色的小熊在身体外侧。唐汝屏住呼吸走进她,然后,房间开始旋转……他们在一起呆了很久,经历许多事。唐汝为她设计了安乐乡,他想象他们住在高楼顶层上的乡间寓所。在那里,人们将没有泪水。当他兴致勃勃的给朋友讲述自己的设计,激动而夸张像是在讲述自己在女孩身边的种种美好。
没有别人见过女孩,也没有别人知道女孩。
但,当然了,唐汝知道有关她的一切,知道那是他虚构的雨天少女。他知道构成她的每一行代码,可视化模组的数值,拟真情感的适配方式。但他不知道女孩为什么会消失。
过去的故事
隧道中空无一物,有些钢铁的部分已经出现了锈蚀,这里改变了许多,许多东西凝固、冷却成了坚硬的钢铁。他看见亮蓝色的投影屏上飘过字符,走进发现那只是一串二进制代码。唐汝点起一根烟,深深地吸了一口,彻骨的寒冷像一块老冰寒着他的胸腔。继续向前走,脚步回响到未知的巨大结构中。他能想到,在他没回来的日子里,这里逐渐变得寂寥,钢铁一样不近人情,冷漠如过去的时间。
当然,他也没有想过还会再回到这里,再看到这扇木门。他仔仔细细地看着细节,木纹不像原来那样让他感叹精巧,现在明白那只是年久失修后时光的腐朽。唐汝在门上掐灭那根快烧到手指的烟,重新点燃一根,推开门。
唐汝猛地睁开眼,在黑暗中剧烈喘息着,胸闷,头痛欲裂,浑身湿透。像是从高空坠落的前一刻停住,他习惯性地去拔脖颈后的植入物。然后,愣住了,那里空空如也——他根本没有接入。
他曾去寻找任何有关她的一切。在她消失后,他离开了安乐乡很长日子,在麦宗那些死板的虚拟空间里漫无目的的逛了许久。然后,他回到安乐乡,看着那些建筑——唐汝记得,在高楼顶层的那栋乡间别墅是他们一起设计的,衣柜里堆满了夏季的衣服,床头柜底层放着一只绿色的小熊。曾经他认为,这里会成为自己最后的归宿。那是在她消失之前,女孩消失后,安乐乡对唐汝只是旧日的泡影,他尽力的抓住关于女孩的一切,但那些就像过往的云烟,抓在手里也只是留下些许触感。
他还记得女孩对自己说的想去看自己说的老式列车,想跟着他去看黔东南的雾气,想和他在雨天路边野餐。
他记得那么多——那么多围绕自己的事情,女孩却只是一片空白。出现感官迁移症之后,他经常梦见女孩在纯白色的世界中等他,她说着模糊的话,脸上模糊的笑,然后自己呆愣着看女孩走远。想起来去追她,看到的是拉长的影子。他无声地呐喊,哭泣,周围的白色起了波澜,变成波动的流体,周围映照着与女孩的过往,刹那间又变得空白。
于是他醒来,吃药,接入虚拟空间。看着变得无聊的安乐乡发呆,一分钟,又一分钟。
有蝉鸣声,洒水器突突喷水的响声,似乎有小汽车发动的响声。
他来到外面,声音变得清晰,是个夏天的午后,热量和水分使空间朦胧。他觉得自己会在草坪看见一个穿着干净夏装的女孩。但是那里没有人。呆愣地站了一会,他恍惚地往回走。
接着,世界开始旋转。
他希望看到女孩的残影在旋转中出现。当视野定格时,世界是一片无人的山坡,一张野餐布铺在树荫下,他张嘴了张嘴,世界却再次开始旋转。
空白
唐汝不知道自己是怎么来到这里的,事实上这里什么都没有,只是纯粹的空白。他努力的想着,回想着,如此努力以至于眉头皱了起来。想到了女孩,想到了雾气,想到了追寻,想到了安乐乡,想到了天使城。
一只手握住了他。唐汝回过身,刚好与女孩对视着,女孩冲他眨了眨眼。然后,她又低下头笑着,说着什么。唐汝没有回答,抓着女孩的手跑了起来,周围的白色波动着,褶皱中裹挟着每一段回忆向前奔涌。女孩快活地笑着,仰起头笑着,唐汝想看看她的笑,但却不能停止奔跑。
白色在他们身后合拢。他们停在在山坡上看了一会,女孩激动地说着什么。唐汝却继续把她拉向远方,继续跑着,穿过正在行驶的蒸汽列车,跳过黔东南大山中的迷雾,他们奋力奔跑,在中途亲吻,在终点拥抱
他撩开飘荡在半空像是幕布般的投影,这里是最后的目的地。他兴奋地指着,说着,安乐乡的一切,关于她的一切,那栋乡间别墅,是啊,必须要好好说说。
他转过身时,身后没有女孩的身影。他像是突然落幕的戏剧演员,不知所措的站在舞台中央。他以为他们会在安乐乡重逢,这里充满了她的痕迹。但是,并没有。
他开始哭泣,眼泪落到地面前就已蒸发,这里没有泪水。
世界继续旋转着,转过空旷的安乐乡,甚至转过那条隧道。唐汝再次点起一根新的烟,缓缓地走出去,世界在他周围慢慢地展开。黄昏的天使城,落日燃烧在天边,他慢慢地走着,走到铁路旁的一条小道,现代列车飞速驶过,带着凉风。他走了很久,场景在他身后飞速的褪去。他遇到一扇门,他打开一扇又一扇的门,看见落日、微风、雨水和灰尘微粒飘扬在空中,他看着,直到打开终点那扇门。
这里是午后,或许很热的夏天午后。唐汝听见远处的汽笛声,他又走一段,铁路横在道路的中间。女孩站在对面,她的影子拉的很长,伸到了铁路的另一边。身上是艳丽的扶桑花色,绿色的小熊拿在右手。唐汝感觉有泪水在打转,他的心脏重新开始跳动,但大脑却静滞着,粘稠的无法运作。
远处的汽笛声越来越近。
女孩慢慢地转过身,唐汝手中的烟几乎燃尽快要烧到了他的手指,但是流下的泪水熄灭了烟头。
女孩凝视着他,他看到了她的眼睛。
他知道,她会微笑。
太阳缓缓地运动着,阳光环绕着女孩的周围,夏天地面蒸腾的水汽让她的身形波动着。
他看到了她的嘴缓缓地勾起弧度,时间好像停止,声音又变得缓慢。
他心中震颤了一下,意识到,那不是一个笑容——
汽笛尖叫着。
列车贴着女孩高速驶过,蒸汽喷吐而出,遮住了女孩的面孔,也藏住了她的话语。
他好像走了很远,忽然间找到回家的方向——睁眼时,看见的是接入舱的舱顶复杂的电子回路。
唐汝拔下植入物,捂着脸在黑暗中默默地哭泣,好似大梦初醒。