他乡余烬
/* source: http://ah-sandbox.wikidot.com/component:collapsible-sidebar-x1 */
 
#top-bar .open-menu a {
        position: fixed;
        top: 0.5em;
        left: 0.5em;
        z-index: 5;
        font-family: 'Nanum Gothic', san-serif;
        font-size: 30px;
        font-weight: 700;
        width: 30px;
        height: 30px;
        line-height: 0.9em;
        text-align: center;
        border: 0.2em solid #888;
        background-color: #fff;
        border-radius: 3em;
        color: #888;
}
 
@media (min-width: 768px) {
 
    #top-bar .mobile-top-bar {
        display: block;
    }
 
    #top-bar .mobile-top-bar li {
        display: none;
    }
 
    #main-content {
        max-width: 708px;
        margin: 0 auto;
        padding: 0;
        transition: max-width 0.2s ease-in-out;
    }
 
    #side-bar {
        display: block;
        position: fixed;
        top: 0;
        left: -20em;
        width: 17.75em;
        height: 100%;
        margin: 0;
        overflow-y: auto;
        z-index: 10;
        padding: 1em 1em 0 1em;
        background-color: rgba(0,0,0,0.1);
        transition: left 0.4s ease-in-out;
 
        scrollbar-width: thin;
    }
 
    #side-bar:target {
        left: 0;
    }
    #side-bar:focus-within:not(:target) {
        left: 0;
    }
 
    #side-bar:target .close-menu {
        display: block;
        position: fixed;
        width: 100%;
        height: 100%;
        top: 0;
        left: 0;
        margin-left: 19.75em;
        opacity: 0;
        z-index: -1;
        visibility: visible;
    }
    #side-bar:not(:target) .close-menu { display: none; }
 
    #top-bar .open-menu a:hover {
        text-decoration: none;
    }
 
    /* FIREFOX-SPECIFIC COMPATIBILITY METHOD */
    @supports (-moz-appearance:none) {
    #top-bar .open-menu a {
        pointer-events: none;
    }
    #side-bar:not(:target) .close-menu {
        display: block;
        pointer-events: none;
        user-select: none;
    }
 
    /* This pseudo-element is meant to overlay the regular sidebar button
    so the fixed positioning (top, left, right and/or bottom) has to match */
 
    #side-bar .close-menu::before {
        content: "";
        position: fixed;
        z-index: 5;
        display: block;
 
        top: 0.5em;
        left: 0.5em;
 
        border: 0.2em solid transparent;
        width: 30px;
        height: 30px;
        font-size: 30px;
        line-height: 0.9em;
 
        pointer-events: all;
        cursor: pointer;
    }
    #side-bar:focus-within {
        left: 0;
    }
    #side-bar:focus-within .close-menu::before {
        pointer-events: none;
    }
    }
}
:root {
    --timeScale: 1;
    --timeDelay: 0s;
}
 
/* Converting middle divider from box-shadow to ::before pseudo-element */
.anom-bar > .bottom-box { box-shadow: none!important; }
.anom-bar > .bottom-box::before {
    position: absolute;
    content: " ";
    width: 100%;
    height: 0.5rem;
    background-color: rgb(var(--black-monochrome, 12, 12, 12));
    transform: translateY(-0.74rem);
}
 
/* DIVIDER */
.anom-bar > .bottom-box::before {
    animation-name: divider;
    animation-duration: calc(0.74s * var(--timeScale));
    animation-delay: calc(0.1s * var(--timeScale) + var(--timeDelay));
    animation-iteration-count: 1;
    animation-timing-function: cubic-bezier(.32,.38,.39,.94);
    animation-fill-mode: backwards;
}
 
/* CLASSIFIED LEVEL BARS */
div.top-center-box  > * {
    animation-name: bar;
    animation-duration: calc(0.45s * var(--timeScale));
    animation-iteration-count: 1;
    animation-timing-function: ease-out;
    animation-fill-mode: backwards;
}
div.top-center-box > :nth-child(1) { animation-delay: calc(0.2s * var(--timeScale) + var(--timeDelay)); }
div.top-center-box > :nth-child(2) { animation-delay: calc(0.32s * var(--timeScale) + var(--timeDelay)); }
div.top-center-box > :nth-child(3) { animation-delay: calc(0.45s * var(--timeScale) + var(--timeDelay)); }
div.top-center-box > :nth-child(4) { animation-delay: calc(0.61s * var(--timeScale) + var(--timeDelay)); }
div.top-center-box > :nth-child(5) { animation-delay: calc(0.75s * var(--timeScale) + var(--timeDelay)); }
div.top-center-box > :nth-child(6) { animation-delay: calc(0.95s * var(--timeScale) + var(--timeDelay)); }
 
/* TOP TEXT */
div.top-left-box, div.top-right-box {
    clip-path: polygon( 0% -50%, 150% -50%, 150% 100%, 0% 100%);
}
 
div.top-left-box > *, div.top-right-box > * {
    position: relative;
    animation-name: bottomup;
    animation-duration: calc(0.65s * var(--timeScale));
    animation-delay: calc(0.5s * var(--timeScale) + var(--timeDelay));
    animation-iteration-count: 1;
    animation-timing-function: ease-out;
    animation-fill-mode: backwards;
}
 
/*-----------------------------------*/
/*-----------------------------------*/
 
/* CONTAINMENT, DISRUPTION, RISK CLASSES */
div.text-part > * {
    clip-path: polygon( 0% 0%, 100% 0%, 100% 100%, 0% 100%);
    animation-name: expand2;
    animation-duration: calc(0.5s * var(--timeScale));
    animation-iteration-count: 1;
    animation-timing-function: cubic-bezier(.12,.41,.27,.99);
    animation-fill-mode: backwards;
}
div.text-part > :nth-child(1) {
    animation-name: expand1;
}
div.text-part > :nth-child(1) { animation-delay: calc(0.6s * var(--timeScale) + var(--timeDelay)); }
div.text-part > :nth-child(2) { animation-delay: calc(0.75s * var(--timeScale) + var(--timeDelay)); }
div.text-part > :nth-child(3) { animation-delay: calc(0.86s * var(--timeScale) + var(--timeDelay)); }
 
div.main-class::before, div.main-class::after {
    animation-name: iconslide;
    animation-duration: calc(0.45s * var(--timeScale));
    animation-delay: calc(0.8s * var(--timeScale) + var(--timeDelay));
    animation-iteration-count: 1;
    animation-timing-function: cubic-bezier(.12,.41,.27,.99);
    animation-fill-mode: backwards;
}
 /* BOTTOM TEXT */
div.main-class > *,  div.disrupt-class > *, div.risk-class > * {
    white-space: nowrap;
    animation-name: flowIn;
    animation-duration: calc(0.42s * var(--timeScale));
    animation-delay: calc(0.75s * var(--timeScale) + var(--timeDelay));
    animation-iteration-count: 1;
    animation-timing-function: ease-out;
    animation-fill-mode: backwards;
}
 
/*-----------------------------------*/
/*-----------------------------------*/
 
/* DIAMOND */
div.arrows {
    animation-name: arrowspin;
    animation-duration: calc(0.7s * var(--timeScale));
    animation-delay: calc(0.6s * var(--timeScale) + var(--timeDelay));
    animation-iteration-count: 1;
    animation-timing-function: cubic-bezier(.12,.41,.27,.99);
    animation-fill-mode: backwards;
}
 
div.quadrants > * {
    animation-name: fade;
    animation-duration: calc(0.3s * var(--timeScale));
    animation-delay: calc(1.4s * var(--timeScale) + var(--timeDelay));
    animation-iteration-count: 1;
    animation-timing-function: cubic-bezier(.12,.41,.27,.99);
    animation-fill-mode: backwards;
}
 
div.top-icon, div.right-icon, div.left-icon, div.bottom-icon {
    animation-name: nodegrow;
    animation-duration: calc(0.4s * var(--timeScale));
    animation-delay: calc(1.4s * var(--timeScale) + var(--timeDelay));
    animation-iteration-count: 1;
    animation-timing-function: cubic-bezier(.12,.41,.27,.99);
    animation-fill-mode: backwards;
}
div.diamond-part {
    clip-path: polygon( -10% 0.37%, 120% 0.37%, 120% 100%, -10% 100%);
    animation-name: diamondBorder;
    animation-duration: calc(0.8s * var(--timeScale));
    animation-delay: calc(0.5s * var(--timeScale) + var(--timeDelay));
    animation-iteration-count: 1;
    animation-timing-function: cubic-bezier(.32,.38,.39,.94);
    animation-fill-mode: backwards;
    will-change: box-shadow;
}
 
/* MOBILE QUERY */
@media (max-width: 480px ) {
    .anom-bar > .bottom-box::before {
        display:none;
    }
    .anom-bar > .bottom-box {
        box-shadow: 0 -0.5rem 0 0 rgb(var(--black-monochrome, 12, 12, 12))!important;
    }
    div.top-center-box  > * {
        animation-name: bar-mobile;
        animation-duration: calc(0.9s * var(--timeScale));
    }
    div.top-center-box > :nth-child(1) { animation-delay: calc(0.1s * var(--timeScale) + var(--timeDelay)); }
    div.top-center-box > :nth-child(2) { animation-delay: calc(0.2s * var(--timeScale) + var(--timeDelay)); }
    div.top-center-box > :nth-child(3) { animation-delay: calc(0.3s * var(--timeScale) + var(--timeDelay)); }
    div.top-center-box > :nth-child(4) { animation-delay: calc(0.4s * var(--timeScale) + var(--timeDelay)); }
    div.top-center-box > :nth-child(5) { animation-delay: calc(0.5s * var(--timeScale) + var(--timeDelay)); }
    div.top-center-box > :nth-child(6) { animation-delay: calc(0.6s * var(--timeScale) + var(--timeDelay)); }
 
}
 
/*--- Motion Accessibility ---*/
@media screen and (prefers-reduced-motion: reduce) { 
    div.anom-bar-container { --timeScale: 0!important; }
}
 
/*-------------------------*/
 
@keyframes divider {
    from { max-width: 0%;  }
    to { max-width: 100%; }
}
 
@keyframes bar {
    from { max-width: 0%; }
    to { max-width: 100%; }
}
@keyframes bar-mobile {
    from { max-height: 0%; }
    to { max-height: 100%; }
}
 
@keyframes bottomup {
    from { top: 100px; }
    to { top: 0; }
}
 
@keyframes expand1 {
    from { opacity: 0; clip-path: inset(0 calc(100% - 0.75rem) 0 0); }
    to { opacity: 1; clip-path: inset(0); }
}
@keyframes iconslide {
    from { opacity: 0; transform: translateX(-5rem); }
    to { opacity: 1; transform: translateX(0); }
}
 
@keyframes expand2 {
    from { opacity: 0; width: 1%; }
    to { opacity: 1; width: calc(100% - 0.25rem); }
}
@keyframes fade {
    from { opacity: 0; }
    to { opacity: 1; }
}
 
@keyframes flowIn {
    from { opacity: 0; transform: translateY(20px); }
    to { opacity: 1; transform: translateY(0); }
}
 
@keyframes arrowspin {
    from { clip-path: circle(0%); transform: rotate(135deg); }
    to { clip-path: circle(75%); transform: rotate(0deg); }
}
@keyframes nodegrow {
    from { transform: scale(0);}
    to {  transform: scale(1);}
}
@keyframes diamondBorder {
    from { box-shadow: -0.5rem -20rem 0 0 rgb(var(--black-monochrome, 12, 12, 12)); }
    to { box-shadow: -0.5rem 0 0 0 rgb(var(--black-monochrome, 12, 12, 12)); }
}
评分: +23+x

来访者的尸体沉寂百余年后,一粒小小的灰烬从尚存的骨骸中飘出。


Rei是从废墟里爬出来的。

熟悉的站点变成断壁,乔木之下隐藏着爆炸的黑灰,能够辨识的三箭头标志也变得残缺。

他看向四周,一个记忆中并不存在的冬眠舱躺在他那个的一侧,防护罩不幸被巨大的断裂合金柱贯穿,生锈的金属此刻宛如墓碑。

能够调出的信息近乎消失殆尽,他只能知道这个可怜的家伙名叫“R██ Belo”,他为逝者默哀片刻。


Rei觉得自己这辈子都没有这么倒霉过,在一个主观地球周之前碰上那个劝自己进入冬眠的傻卵主任,现在乐子大了,自己一觉醒来,基金会已经提桶跑路四百多年了。

他也不是没试着寻找可能的同伴,但在他冬眠的时光里,基金会发射的卫星变成废铁,通讯站被当地人占作烽火台——自己所携带的通讯器也几乎失效,Rei几乎放弃了希望。

研究之旅转眼变成异界重生,未免有些滑稽好笑。最初的几天里他几近奔溃,甚至只有抱着自己的基金会特制白大褂才能勉强睡去。

没人愿意一无所知的生存在一个异世界,凭着随身终端自带的求助系统,Rei摸索着找到了一个勉强还能维持运转的基金会前哨站——万幸,它的防御能力还不至于使它自己变成当地人的挡风棚。


千万别出什么差错。Rei拿出自己的终端与眼前这个已经无法辨认的基金会前哨的门口识别点对接。

erorr

他差点被冲上额头的血压挤晕过去。Rei发疯似的抖弄着终端,甚至开始小心地捶打,直到几秒后那个尖锐的报错声奇迹的消失。

正在对比身份……验证成功!

尽管如此,建筑的大门还是没有开启,直到一个令人感到无比亲切的基金会小人头像颤抖着出现在前哨站的显示器上。

你好啊,三级研究员Rei!我是基金会OSF-393的人工智能作业员“蒙.aic”,你可以叫我蒙。

距离上一个基金会员工使用OSF-393已经过去46…啊呀蒙也记不清了。总而言之,本世界最后一位基金会成员——Rei,欢迎来到基金会前哨站OSFOutpost station of Foundation-393!有什么需要我为您服务的吗?尽管这个前哨站已经空无一人,服务机器人也多半瘫痪了,不过我还是能为您做一些基本的服务哦……

“先开门,我们进去再说。”有时候,人性化模块真不见得是个合适的东西。

站点的外表虽然一尘不染,但内部大概已经开始腐蚀——前哨的大门打开到一半时,齿轮就已经发出不堪重负的哀嚎,最终只能被迫停滞。Rei勉强能从这个缝里挤进去。

几百年无人扰动的灰尘在进门的微风下浮满整个内部空间,反射出幽蓝色的昏暗灯光带来的丁达尔效应让狭小的走廊显出牛皮纸般的质感。Rei无力地倚靠在门板上,想从衣兜里摸出一根烟来。

“蒙,你在吗。”

“嘿,Rei先生,当然在。”没有电子屏幕,蒙.aic只能通过广播系统来与Rei交流。“你知道吗,先生,基金会跑路后不到十年,地面的网络传输设施就被那群原始人拔得一千二净。我只能通过卫星设备和其他前哨的AIC交流情报,天呐,那种交换效率真的是低的我想删库。可五十年后,连卫星也开始失灵了,到现在过了三百多年的寂寞日子,我真是无聊透了……我发誓我甚至跑遍了这里的每个角落——只要是摄像头能到的地方。我做梦都想要岀现个能交流的现代人类——当然不是那群只会挥舞法杖和双手剑的原始人——谢天谢地,基金会之星在上,O5啊,终于让我等到你了,Rei先生,你简直是我的救星!我无法想象要是再过个几百年寂寞日子,不,我的程序会崩溃的……”

“饶了我吧,我可不想听你二十四小时唠叨你那三百年时光磨岀来的嘴皮子。还有,你叫我雷就好。”Rei循着灯光摸索着前进,在一个拐角后,他被另一扇大门挡住去路——可以肯定,这扇门之后才是这座哨站真正的部分,“蒙,打开这扇门。另外,你能把这座前哨的最高执行权限交给我吗?最好的话,机密权限也一并移交。”

“呃……开门当然是没问题,不过执行和管理权限的话……我看看……当然可以,根据通用协议,三百九十年前你就能拿到最高权限了。不过,权限移交需要录入被授权者的生物信息,我们得先到主控中心才行。”

穿过内部大门和一道失效的消毒室后,映入Rei眼帘的是熟悉的基金会式设计——门口正对的大厅墙壁上挂着一幅两米见方的模因触媒画,它用来辨别来者是否为基金会成员——不同于别的极度扭曲和夸张色彩的图画触媒,它显得更加规则,或者说“方正”,它的图形与墙壁上的花纹巧妙的融合在一起,又用突出的墙壁设计和一些色彩变幻使人一眼就能注意到它。

“蒙,你应该有存储这段时间的历史记录吧?就是从基金会进入到退出后的完整记载。”Rei抚摸着大厅的墙壁,这里也已经有了严重的积灰。他的心情神奇的舒缓下来,说不上缘由,Rei任由双腿带着自己四处漫步,他仿佛进入了一种舒适的放空状态,他不排斥这样。

“哦,看样子你是不清楚吗?好吧,真是奇怪。”沉默片刻,蒙.aic说,“你想从哪里听起?”

“那就近一些好了。”Rei轻轻拂去一个椅子上的灰尘,缓缓坐下,如果他手上有一杯咖啡或是绿茶,那就是他曾经最自然的闲暇时刻的样子,“这里的站点为什么会遭到大规模废弃?已经基金会…他们为什么要撤走?他们像是很急,除了原来的人之外,似乎什么都没带走——甚至包括你。”

“关于这个,先生,我们只知道是监督者的命令。不过,大多数人认为是由于‘死镰战役’惨胜而直接导致的大撤退——你可能有些过于缺乏历史常识了,雷先生。”蒙.aic顿了顿声,模仿出一副教授的语气说,“四百多年前,具体来说是基金会彻底撤退前大约半年,一只代号叫‘镰利未雅坦’,或者叫‘镰刀头’的超大型恶魔从基金会的门径通道处出现,随即入侵临近的一个小型国家并开始大肆破坏。先生,您应该知道那个‘门径’是什么吧?”

“我知道,你继续说。”

“嗯……简单来说,这只超大型袭击者比以往基金会所记录的所有超大型袭击者,也就是所谓的LSA还要大,破坏力更强。虽然基金会对LSA有一定了解,但那毕竟是和其他世界基金会交换的信息情报而已。”蒙.aic调出一副全息影像,上面展示了“镰利未雅坦”——这个怪物的形象和那场战役的部分数据,“它被特别编号为LSD(Large Scale Demons)-ψ1。你只需要知道那个东西很强,不光是战斗力,还有破坏欲。它一登陆,便开始大肆破坏沿途的一切,当地军队和蚂蚁没有任何区别——他们的进攻和微风一样。”

影像一阵轻微的抖动,随机开始播放一段视频——俯视角拍摄,似乎是利用的卫星拍摄。Rei看到,画面里一只丑陋至极的怪物——它有些镰刀一般的尖锐头部,背身如同天牛,但却肉眼可见的布满了紫色的发光结晶,仿佛一座连绵的山脉,其下似乎流动着血液,或者是满溢的能量。它的嘴里——如果那确实是嘴——吐出巨大的奇术火焰,将整个城市点燃,躯体移动,便能摧毁无数建筑。城市的围墙好似门框,为了容纳这个怪物,人类被缩小到只有群聚才能从画面中找到属于他们的像素点。

画面再次抖动,此时的地表已经完全变成火海,基岩层裸露在外,目力所及之处尽是废墟。

不时几架基金会战斗机呼啸而过,朝着那个怪物发起进攻,如同蚊蝇掠过,仅仅是吐出零星几口飞沫而已。

Rei驱散了影像,他不想再看到这些让自己烦躁的画面,“所以说,基金会被毁灭了?”

“并不完全是。但近七成的基金会设施被完全毁坏——LSD-ψ1,也就是那个所谓的‘镰利未雅坦’出现的地点几乎与基金会的门径通口重合,而那块地区又聚集的多大多数的基金会设施和人员。在此之后,基金会在这里的实力大减,便全体撤退了,只留下一些带不走的——他们怎么不把我的服务器也一起砸了……”

没有意义的历史。

Rei起身,凭着交谈间隙他已经把自己的个人终端连上了前哨的局域网络,地图路线到手——索性这个前哨不是什么机密设施,主控中心的位置已经牢记在他脑中,剩下的路线凭着身份证明应该也能通行无阻。

“走吧,去交接权限。”


交接超乎Rei想象的顺利,他仅仅是进行了生物信息验证,便立刻得到了这座前哨站的全部操作权限,像是先前就设定好的程序一样。

他摁住扫描区域,正想检索可能会有用的信息时,屏幕上却跳出了意想不到的东西。

致 Re.I:


很抱歉,我们把你独自丢在这个毫无现代气息的世界这么久。

我不知道你现在在哪里,景况如何,你是否知道了什么,这些都不重要。

到门径通口去,回来,尽可能回来。

我们在??等你。记得注意身体。

[数据损坏]

“这是给我的?”Rei自言自语地迷茫了片刻——这个“Re.I”的名字拼写的似错非错,可基金会目前似乎确实是仅剩自己一人——思来想去,他只能不情愿的判断,这是写给自己的,而自己如今的状况似乎也不是个意外。

“我敢保证,先生,我能够查阅的记录里绝对没有这东西。”

Rei回顾自己的一生,普通的出身,考上大学,通过校招进入基金会,又花了七八年被幸运的批为高级研究员,自己所接触到过的最高层的领导也不过是时空部的主管。自己又有什么可能会被注意到?他不相信一封没有署名的信件是哪个人做的恶作剧,但他也不敢相信这是针对自己的。

难道真的是故意的?那自己沦落至此也就不是意外?如果自己是基金会的重要资产——也许是不知觉的被牵扯进什么计划里,那为何基金会不将他带走?并且在一开始就让自己进入冬眠状态?

Rei不解,熟悉的无力感和心绞痛再次出现。

但不论如何,它给了——倒不如说是激起了Rei心中那个被蒙上了死灰的那个“回去的愿望”。

“先生,您的身体似乎有些不太正常。AKiva辐射探测器显示……”

“蒙,这里有没有武器库?有的话,保管的怎么样?”Rei少见的不耐烦起来,不仅是因为自己莫名的病状被人发现,他现在更是按捺不住内心,“但愿这个设施里还有能用的东西。”

“啊,有的,氮储仓库的我不太清楚,不过真空储库肯定能用。那里还有一些装备留着。不过,您去武器库干什么?”

“我原本想看看这里的机密数据库是否存有什么有用的信息,不过现在看来,我的目的似乎提前达到了。”


备用的微型电脑,一套制式斥外护具——防御能力一般,但至少能解决日常的能量供给问题。

Rei直接忽略了大把还泛着冷光的枪械,在当地,这些“先进的铳械”会让他瞬间暴露身份——他还记得,初到驻地时,当地人就是凭着自己的配枪认出了他的“来访者”的身份——他们似乎总是有着很浓的排外敌意。

一个奇术辅助设备,还有几个被基金会私改而成的术封手雷。这里的武器不算多,但绝对够用。

犹豫片刻,他又带上一个便携身体检测设备。

“蒙,这里离通口有多远?”

“大约376公里,急行军大约需要七天,但你的身体素质可能无法支撑。先生,设施内所有的交通工具都因为时间久远而报废,短时间内到达通口是不可能的。我建议……”

“留在这里?不可能,我会骑马,哪怕是跑步,我也会到那里去。”

“等等,雷先生!”蒙.aic高声嚷道,“你这是要走了?”

“没错。”

“那我怎么办?我没法待在那种大小的设备里,雷先生,我不想再独自一个人了——您给了我奢求已久的期望,若是再失去你,我的程序会崩溃的!”

“是的,我没法带走你。”Rei已经整理好装备,“可我也不能留下自己。”

“就为了那个都不知道是谁发送的信件吗?万一那是个异常陷阱?”

“那我也得去。活的生命是不能忍受思想的冬眠的。”空荡的建筑回响着Rei的声音,“蒙,某些方面我和你是一样的,而对我来说,这不过是踏上归乡的末班车而已。真可惜,你只是个AIC,而非真人。”

“……”

……

“雷先生,我必须提醒你一点——根据最后传来的情报,镰利未雅坦的尸体极其坚韧而无法被任何手段分解,并且持续向外释放出高强度辐射——他们没搞懂那是什么,但伤害绝对有核爆中心的强度,甚至犹有过之。虽然这么长时间过去了,但影响仍有可能存在,安全路线已经保存到你的终端里了。”

“保重,先生。”

“谢谢……告诉我,存档你的数据的服务器在哪里?”

枪响后,灰烬踏上归途。

除非特别注明,本页内容采用以下授权方式: Creative Commons Attribution-ShareAlike 3.0 License