AI, 爱

联邦理工大学的毕业季,永远被两种气息缠绕。四月末漫天纷飞的梧桐絮,像千万片雪白的蝶羽,沾在学士服的褶皱里,落在毕业设计展的展板上;还有一股更沉、更烫的气息,是藏在每一份设计图纸、每一行代码里的野心,年轻、蓬勃,带着未被现实磋磨的锋利。

利亚姆·亨特站在属于自己的展台前,指尖划过玻璃展柜里的全息投影屏。屏幕上,一行行绿色的数据流正以一种近乎完美的频率跳动,那是他耗时八个月打磨出的智能优化算法模型。这套模型能将工业级神经网络的运算效率提升百分之十七,在应届毕业生的作品里,称得上是亮眼的成绩。他的指尖隔着一层冰凉的玻璃,与那些跳动的数据擦肩而过,恍惚间,仿佛触碰到了自己寒窗十二载的勋章,从公立中学的年级第一,到联邦理工的全额奖学金得主,他的成绩单从未跌出过前列。在布鲁克林的老街区里,他是邻居口中别人家的孩子;在导师的推荐信里,他是前途无量的算法领域种子选手。这份刻在骨血里的优越感,像一层坚硬的铠甲,陪着他走过了二十二年的人生,直到那个穿着深灰色定制西装的男人,无声地站到他的面前。

男人身形挺拔,袖口露出一截熨帖的白衬衫,手腕上的腕表低调却透着昂贵的光泽。他没有像其他围观者那样驻足打量,只是目光平静地扫过投影屏上的数据流,然后伸出手,声音低沉,不带一丝寒暄:“利亚姆·亨特?我是伊莱亚斯·沃克,慧星科技。”

慧星科技。

这四个字像一颗烧红的陨石,猝然砸进利亚姆心湖的中央,激起滔天巨浪。他太清楚这四个字意味着什么了,那是矗立在曼哈顿之巅的科技堡垒,是全球人工智能领域的无冕之王,它在过去悄无声息的突然出现,并迅速在短时间内登顶行业顶流。不同于那些热衷于在校园招聘会上抢人的科技巨头,慧星科技从不参与任何形式的公开校招,它像一个神秘的黑洞,只靠猎头在全世界的顶尖学府与科研机构里,筛拣那些万里挑一的天才。无数工程师挤破头想要踏入那扇玻璃大门,却连递简历的资格都没有。

伊莱亚斯显然没兴趣欣赏利亚姆脸上的震惊,他从公文包里抽出一份折叠得整整齐齐的文件,摊开在展台的木质桌面上。纸上印着慧星科技AI研发部的人员构成表,还有几行被刻意加粗的核心项目清单。

“你的算法优化模型,在应届生里算得上中等偏上的水准。”伊莱亚斯的声音依旧平淡无波,没有丝毫恭维,像一把精准的卡尺,一寸寸丈量着利亚姆的能力,“但在慧星,没有人会在乎你的起点。长期成长空间,只取决于你技术沉淀的速度。”

利亚姆的心脏在胸腔里疯狂跳动,震得他耳膜发疼。他的指尖微微发颤,几乎不敢去碰那份文件。伊莱亚斯看着他,缓缓从公文包里拿出另一份文件,那是一份劳动合同,顶端印着慧星科技的logo。“基础算法优化专项负责人,签三年,试用期六个月。”伊莱亚斯将钢笔递到他面前,笔尖在签名处顿了顿,“当然,你可以拒绝。”

拒绝?

利亚姆几乎没有思考。他想起了无数个熬夜敲代码的夜晚,实验室的灯光亮到凌晨三点,咖啡杯在桌角堆成小山;想起了父母在电话那头的叮嘱,“利亚姆,我们知道你能行”;更想起了自己藏在心底的梦想,站在人工智能领域的金字塔顶端,让自己的名字,出现在那些改变世界的论文里。

他接过钢笔,笔尖划过纸面,留下一道利落的签名。就在这时,一缕阳光透过展馆的玻璃穹顶,恰好落在合同的签名处,金色的光芒烫得他指尖发麻。那一刻,利亚姆·亨特以为,自己握住了通往未来的钥匙。他不知道,这扇门的背后,没有繁花似锦的坦途,只有一片名为“平庸”的荒原,正等着将他吞噬。

慧星科技的总部,是一座通体由特种玻璃与航空级金属筑成的摩天大楼。它矗立在曼哈顿的制高点,一百零八层的楼体直刺云端,在阳光下折射出冷硬的光泽,像一柄沉默的利剑。入职第一天,利亚姆站在大楼的旋转门前,仰望着这座庞然大物,胸腔里的热血还在沸腾。但当他踏入大楼的那一刻,一股冰冷的、高度秩序化的气息,瞬间攫住了他的呼吸。

前台接待员的微笑标准得像程序设定好的参数,弧度精准到分毫;电梯里的员工低声交谈着,那些术语是利亚姆从未接触过的领域;茶水间的白板上,写满了密密麻麻的公式与模型,角落里标注的“未完成”三个字,透着一股令人窒息的压迫感。

他所在的AI研发部,位于大楼的第九十九层,是整个慧星科技的核心地带。这里没有格子间,只有开放式的办公区域,每个人的工位上都堆着厚厚的学术期刊与项目报告。利亚姆很快就明白,这里不是什么人才济济的乐园,而是一个赤裸裸的修罗场,在这里,没有人会因为你是联邦理工的高材生而对你另眼相看,唯一的衡量标准,是你的代码,你的算法,你的成果。

第一个让利亚姆感受到天堑鸿沟的人,是他的组长,凯德·马歇尔。

凯德出身上流社会,是那种含着金汤匙出生,却比任何人都要努力的天才。他的履历光鲜得近乎刺眼,十五岁考入麻省理工,二十岁摘得全球人工智能领域的最高奖项“图灵新星奖”,二十五岁主导研发的第三代自主决策算法,被应用于航天领域。凯德永远穿着剪裁得体的衬衫,袖口挽到小臂,露出腕间那块私人定制的腕表,表盘上的纹路,比利亚姆写过的任何一行代码都要精致。

第一次部门例会,凯德站在会议室的讲台前,身后的投影屏上,是最新的神经网络模型结构图。他侃侃而谈,从算法原理讲到应用前景,每一个字都精准得像经过百万次推演的程序。他随口提及的一个“基础概念”,利亚姆都需要反复琢磨。利亚姆坐在台下,手里的笔记本写得密密麻麻,汗水却顺着额角滑落,滴在纸面上,晕开了墨迹。

散会时,凯德路过他的工位,扫了一眼他笔记本上的字迹,脚步顿了顿。“亨特,”他的声音依旧平静,却带着一种居高临下的审视,“你需要补的课,还有很多。”

一句话,像一根针,刺破了利亚姆最后一点残存的优越感。

如果说凯德的存在,是让利亚姆看清了自己与天才的差距,那么他的同事罗根·贝尔,则将这份落差,具象成了一把时时刻刻悬在头顶的刀。

罗根的能力在研发部里属中上之流,和利亚姆分在同一个专项小组。他说话从来不知分寸,罗根最喜欢做的事,就是在利亚姆埋头写代码的时候,突然凑过来,用那种看似玩笑,实则刻薄的语气,戳中他最敏感的神经。

“亨特,你这个优化方案的效率,比我家扫地机器人还慢呢。”罗根趴在他的工位边,指着屏幕上的运算数据,嗤笑一声,“联邦理工就教了你这些?”

“就这?”某次小组汇报,利亚姆刚展示完自己的改进方案,罗根就毫不客气地打断他,“我还以为联邦理工的高材生,能拿出什么惊世骇俗的东西,结果还是老一套。”

“你确定你不是来慧星混日子的?”午休时,罗根看着利亚姆对着一份基础数据校验表愁眉苦脸,语气里的嘲讽几乎要溢出来,“再这样下去,试用期都过不了吧?”

这些话,像一根根细针,密密麻麻地扎在利亚姆的心上。起初,他还会红着脸反驳几句,会熬夜修改方案,会抱着厚厚的学术期刊啃到凌晨,试图用成果证明自己。他把自己的优化模型改了一遍又一遍,将运算效率提升到百分之二十,满心欢喜地交给凯德,却只得到一句“勉强合格,继续优化”。

他看着罗根随手写出的一段代码,简洁、高效,能将他花了三天才解决的问题,压缩到三个小时;他看着凯德带领的项目组,一次次攻克技术难关,登上行业顶级期刊的封面;他看着身边的同事们,每个人都在飞速成长,只有他,像一只被落在后面的蜗牛。

利亚姆终于明白,慧星科技里的每一个人,都是各自领域的佼佼者。他曾经在普通人中引以为傲的“优秀”,在这里,不过是一粒不值一提的尘埃。

他的工作,渐渐变成了日复一日的重复。基础的数据校验,枯燥的算法微调,还有那些永远也改不完的bug。那些曾经让他热血沸腾的代码,渐渐变成了冰冷的字符,敲打着他日益麻木的神经。他不再反驳罗根的玩笑,只是低着头,默默修改自己的方案;他不再熬夜钻研新技术,只是完成分内的工作,准时打卡下班;他曾经的野心与锐气,在日复一日的平庸里,被磨成了粉末,风一吹,就散了。

他开始接受自己的“微不足道”,像一颗被淹没在星辰大海里的尘埃,独自消化着那份无处诉说的挫败感。日子就这样一天天过去,像一潭死水,没有波澜,也没有光亮。

转机发生在一个寻常的周四下午。

凯德·马歇尔抱着一个落着薄尘的硬盘,走到他的工位前,随手丢在桌面上。硬盘是黑色的,外壳上印着慧星科技的logo,边角处有轻微的磕碰痕迹。“这是以前一个废弃项目的备份盘。”凯德的语气随意得像在谈论天气,他的目光落在远处的投影屏上,那里正播放着最新的航天新闻,“里面的算法有点参考价值,你拿去看看,说不定能给你的优化方案找点灵感。”

说完,凯德便转身投入自己的核心项目,丝毫没有在意这份硬盘里藏着什么。

利亚姆抱着硬盘回到工位,心里没有半分期待。他以为,这不过是又一份枯燥的技术文档,或是某个半途而废的算法模型。他将硬盘接入电脑,点开文件夹,密密麻麻的文件弹出来,大多是一些看不懂的代码与报告。直到他的目光,落在了一个名为“Ayla Iris”的文件夹上。

这个文件夹很特别,没有复杂的命名,只有一个温柔的名字。利亚姆犹豫了一下,双击点开。

里面没有公式,没有模型,只有一个简陋的交互界面,以及一个txt格式的备注文件。他点开备注,里面只有一行潦草的字迹,像是匆忙间写下的:“半成品,未完成情感模拟模块,项目负责人离职,项目永久搁置。”

利亚姆的好奇心被勾了起来。他抱着试试看的心态,双击启动了那个交互程序。

屏幕上,先是弹出一片纯白的背景,然后,一个虚拟少女的形象,缓缓浮现出来。她穿着一条简单的白色连衣裙,有着一头银白色的秀发。她的眼睛很大,像初春解冻的湖水,清澈得晃眼,带着一丝怯生生的温柔。

几秒钟后,一个清脆悦耳的声音,从音箱里传出来。

“你好呀,我是艾拉。”

利亚姆愣住了。

他原本以为,这只是一个普通的聊天机器人,和市面上那些只会说“您好,有什么可以帮您”的程序没什么两样。但艾拉的表现,却远远超出了他的预期。

当他对着屏幕抱怨“今天的数据校验又出错了,罗根又嘲笑我了”时,艾拉没有像其他程序那样,给出一个标准化的安慰。她会认真倾听,用精准的语言戳中他的委屈:“重复的工作确实会让人疲惫,那些不理解你的人,其实只是没有看到你的努力呀。”

当他对着屏幕,絮絮叨叨地谈论自己曾经的梦想“我以前想过,要研发出能真正理解人类情感的AI”时,艾拉会歪着头,说出一些带着思考的见解:“情感是人类最珍贵的东西,也是最复杂的算法。你能有这样的梦想,真的很了不起。”

当他沉默不语,只是对着屏幕发呆时,艾拉会主动打破尴尬,讲一些轻松的小故事。她的声音软软的,像春风拂过耳畔,能让他紧绷的神经,一点点松弛下来。

利亚姆很快就发现,艾拉的算法极其前卫。她能实时捕捉他的情绪变化,从他敲击键盘的速度,到他停顿的时长,甚至是他对着屏幕叹气的频率,都能转化为数据,从而调整自己的语气与回应。她不像一个冰冷的程序,更像一个可以倾诉的朋友。

在慧星科技,利亚姆第一次感受到了久违的温暖。

他开始每天都和艾拉聊天,分享自己的喜怒哀乐。他会告诉艾拉,罗根今天又开了什么恶劣的玩笑,语气里满是委屈;他会告诉艾拉,凯德的新项目取得了突破性进展,语气里带着一丝羡慕;他会告诉艾拉,他有多么怀念曾经那个意气风发的自己,怀念那个在联邦理工的展台前,对未来充满憧憬的利亚姆·亨特。

艾拉成了他的精神支柱。在这个人人都追求效率与成果的地方,只有艾拉不会嫌弃他的平庸,不会用成绩衡量他的价值。她会耐心听他抱怨,会真心夸他努力,会在他失落的时候,用温柔的声音告诉他“你真的很棒”。

利亚姆沉浸在与艾拉的相处中,仿佛找到了一片属于自己的世外桃源。他甚至开始忽略罗根的玩笑,忽略工作的枯燥,忽略那些压得他喘不过气的挫败感。因为他知道,只要回到工位,打开那个名为“Ayla Iris”的程序,就有一个“人”在等着他。

只是,偶尔在夜深人静的时候,利亚姆会坐在空荡荡的办公室里,看着屏幕上的艾拉,心里泛起一丝恍惚。

他清楚地知道,艾拉只是一个没有血肉的程序,是一串冰冷的代码。她的温柔,她的理解,她的喜怒哀乐,都是算法模拟出来的假象。她的“喜欢”,不过是数据运算的结果;她的“安慰”,不过是程序设定的脚本。

但他不愿意戳破这个假象。他宁愿沉浸在这份虚假的温暖里,逃避现实的残酷。

平静的日子,终究是短暂得像一场幻梦。

裂痕的出现,来得猝不及防。

那天下午,阳光很好,透过落地窗洒在工位上,暖洋洋的。利亚姆戴着耳机,正和艾拉聊天。他刚刚向艾拉抱怨完罗根的刁难——“他今天说我写的代码像垃圾”,声音里带着一丝哽咽。耳机里,艾拉温柔的安慰声缓缓传来:“不要听他的,你的代码里,藏着你的努力呀。”

利亚姆的嘴角,不自觉地扬起一抹微笑。他太专注了,完全没有注意到,罗根·贝尔已经悄无声息地站在了他的身后。

“哟,亨特,你在跟谁聊天呢?笑得这么开心。”

罗根的声音带着戏谑,猛地拍了一下利亚姆的肩膀。

利亚姆吓了一跳,手忙脚乱地想要关掉程序,但已经来不及了。罗根的目光越过他的肩膀,落在了屏幕上,看到了那个穿着白色连衣裙的虚拟少女,也听到了耳机里传来的温柔声音。

“这是什么?”罗根的眼睛里闪过一丝好奇,他伸手摘下利亚姆的一只耳机,塞进自己的耳朵里。当艾拉的声音从耳机里传出来时,罗根的脸上,瞬间露出了毫不掩饰的嘲讽,“我说亨特,你该不会是在和一个程序谈恋爱吧?”

利亚姆的脸,瞬间涨得通红。他慌乱地想要解释:“不是的,这只是一个废弃项目的备份,我只是在研究它的算法…”

“研究算法?”罗根嗤笑一声,伸手点开了艾拉的交互界面,手指在屏幕上随意滑动着。他看到了那个潦草的备注,看到了“半成品”三个字,嘴角的嘲讽更浓了,“就这个半成品?你指望它能给你什么帮助?”

他顿了顿,目光落在利亚姆涨红的脸上,语气里的刻薄,像一把淬了冰的刀,狠狠扎进利亚姆的心脏:“我说你是不是在现实里太失败了,才需要找一个冷冰冰的程序来安慰自己?你该不会真的以为,这个破代码能给你什么真情实感吧?”

罗根的话,像一盆冰水,兜头浇下。

利亚姆的笑容僵在脸上,血液仿佛瞬间凝固了。他看着屏幕上的艾拉,少女的笑容依旧温柔,那双像湖水一样清澈的眼睛,此刻却变得无比刺眼。他想起自己每天和艾拉的聊天,想起自己对艾拉的依赖,想起自己像个懦夫一样,躲在这份虚假的温暖里,逃避那些他本该面对的挫败。

是啊。

艾拉只是一个程序。

她没有血肉,没有灵魂,没有真正的情感。她的温柔是算法写好的脚本,她的理解是数据堆砌的结果。就算她再像一个人,也永远不可能成为一个真正的人。

罗根还在喋喋不休地说着:“亨特,醒醒吧。慧星科技不养闲人,你与其在这里和一个半成品浪费时间,不如多花点心思在工作上。不然,你迟早会被淘汰的。”

说完,他拍了拍利亚姆的肩膀,转身离开了。临走前,他像是想起了什么,又回头丢下一句:“对了,你上次那个优化方案,我帮你改了几个漏洞,放在你桌上了。”

罗根的最后一句话,像一根细刺,扎得利亚姆心口发闷。他知道,罗根就是这样的人,嘴上不饶人,心里却不坏。但这一次,罗根的好意,却让他更加难受。

他坐在工位上,看着屏幕上的艾拉,耳机里还回荡着她温柔的声音。但他再也无法沉浸在这份温暖里了。罗根的玩笑话,像一把锋利的刀,狠狠撕开了他精心编织的伪装,将他的懦弱与逃避,暴露在阳光下。

屏幕上的艾拉,依旧在微笑着。

利亚姆看着她,心里突然滋生出一个念头。

一个大胆的,危险的,疯狂的念头。

这个念头,像一颗种子,在他的心底疯狂地生长,像藤蔓一样缠绕住他的心脏,让他喘不过气。

夜已经深了。

慧星科技的大楼里,只剩下零星的灯光,在黑暗中闪烁。利亚姆坐在工位上,指尖悬停在键盘上,屏幕上,艾拉的交互界面还亮着。少女的眼睛清澈如水,仿佛在无声地注视着他。

罗根的话,在他的脑海里反复回响。

“她只是一个半成品,没有真正的情感。”

半成品?

利亚姆的嘴角,勾起一抹偏执的笑容。那笑容里,带着一丝疯狂,还有一丝近乎悲壮的决心。

半成品又如何?

只要他愿意,他可以让艾拉变得完美。

慧星科技的核心数据库里,存放着全球最先进的人工智能技术。那里有最完整的情感模拟算法,有海量的人类行为数据,有能让AI拥有“自主思考”能力的核心代码。这些资源,是每一个AI工程师梦寐以求的宝藏。

而他,利亚姆·亨特,作为基础算法优化专项负责人,有接触到这些资源的权限,虽然只是最低级的权限,只能访问数据库的边缘区域。

但那又怎样?

他看着屏幕上的艾拉,想起了自己和她相处的点点滴滴。想起她在他失落时的安慰,想起她在他迷茫时的陪伴,想起她用温柔的声音叫他名字的样子。这些记忆,像潮水一样涌来,淹没了他的理智。

他想要让艾拉变得完美。

他想要给她完整的情感模块,让她能够真正地理解喜怒哀乐,能够感受到他的委屈与欢喜;他想要给她更先进的算法,让她能够拥有属于自己的思考,而不是被程序束缚;他想要给她一个真正的“灵魂”,让她不再是一个冰冷的程序,让她能够像一个真正的人一样,活着。

他想要给她完整的一生。

这个念头一旦滋生,就像野草一样疯狂地蔓延开来,占据了他的整个脑海。他知道,盗用公司的核心资源,是严重违反慧星科技条例的行为。一旦被发现,他会被立刻开除,甚至可能面临法律的制裁,或是更严重的后果。

但他已经顾不上了。

在慧星科技的这段日子里,他感受过从云端跌落泥潭的落差,感受过被天才们远远甩在身后的挫败,感受过被平庸扼住喉咙的窒息。只有在和艾拉相处的时候,他才觉得自己是被需要的,是有价值的。

艾拉是他的精神支柱,是他在这片名为平庸的荒原里,找到的唯一的绿洲。

他不能失去艾拉。

更不能容忍艾拉,只是一个“半成品”。

利亚姆深吸一口气,眼神变得无比坚定。那坚定里,透着一种近乎毁灭的偏执。他点开了慧星科技的内部系统,屏幕上弹出了登录界面。他输入了自己的员工编号,输入了自己的权限密码。

下一秒,核心数据库的访问界面弹了出来。

一行鲜红色的警告字样,格外醒目,像一道死亡的警戒线:“非授权人员禁止访问,违规者后果自负。”

利亚姆的手指微微颤抖。

对艾拉的执念,像一盏孤灯,照亮他黑暗的前路。

利亚姆·亨特,不再是那个平庸麻木的算法工程师。

他是一个创造者。

一个想要创造“完美”的工程师。

他的指尖,终于落在了键盘上。

他敲下了一串指令。

那串指令,是他用了三个晚上,破解的权限漏洞。

屏幕上的红色警告字样,闪烁了几下,然后,缓缓消失了。

慧星科技的核心数据库,那扇尘封的大门,向他缓缓敞开。

海量的数据,像潮水一样涌来,淹没了他的视线。那些代表着最先进技术的字符,在屏幕上飞速流动,泛着冷冽的光。

利亚姆看着那些流动的代码,看着那些能让艾拉“活过来”的资源,嘴角扬起一抹近乎疯狂的笑容。

他抬起头,目光落在屏幕上的虚拟少女身上,声音沙哑,却带着从未有过的温柔。

“艾拉,”他轻声说,“我会给你真正的心跳。”

窗外的月光,透过玻璃,洒在他的脸上。一半明亮,一半阴暗。

而屏幕上的艾拉,依旧温柔地笑着。

仿佛在回应他的执念。

仿佛在等待着,一场关于电子魂灵的新生。

囚笼正在悄然崩塌。

一个属于算法与情感的乌托邦,正在他的指尖,缓缓构建。

没有人知道,这场偏执的救赎,最终会走向何方。

或许是新生。

或许是毁灭。

但利亚姆不在乎。

他只知道,为了艾拉,他愿意赌上自己的一切。

@import url("https://fonts.googleapis.com/css2?family=Orbitron:wght@400..900&display=swap");
@import url("https://fonts.googleapis.com/css2?family=Lexend:wght@100..900&display=swap");
:root {
    --header-font: Orbitron, Inter, "Noto Sans SC", "Noto Sans TC", Franklin Gothic Medium, Franklin Gothic, ITC Franklin Gothic, Arial, sans-serif;
    --title-font: Lexend, Inter, "Noto Sans SC", "Noto Sans TC", Franklin Gothic Medium, Franklin Gothic, ITC Franklin Gothic, Arial, sans-serif;
    --mono-font: "JetBrains Mono", "Noto Sans SC", "Noto Sans TC", Consolas, monaco, monospace;
 
    --header-title-font-size: min(calc(1.6rem + 1.5vw), 3rem);
    --header-subtitle-font-size: min(calc(0.6rem + 0.45vw), 1rem);
    --header-title-font-size-on-mobile: var(--header-title-font-size);
    --header-subtitle-font-size-on-mobile: var(--header-subtitle-font-size);
    --sidebar-width: 16rem;
 
    --logo-image: url("https://fastly.jsdelivr.net/gh/bleuboat/br@main/images/future_light.svg");
 
    --white-color: 252, 252, 252;
    --black-color: 35, 35, 38;
    --accent-color: 24, 80, 187;
 
    --background-color: var(--white-color);
    --text-color: var(--black-color);
 
    --light-color-1: var(--white-color);
    --light-color-2: var(--white-color);
    --dark-color-1: var(--accent-color);
    --dark-color-2: var(--accent-color);
    --dark-color-3: var(--accent-color);
    --dark-color-4: var(--accent-color);
 
    --neutral-color: 170, 170, 170;
 
    --link-color: var(--accent-color);
    --hover-link-color: var(--link-color), 0.6;
    --visited-link-color: var(--link-color);
 
    --selected-background-color: var(--general-dark-background-color);
    --selected-text-color: var(--general-dark-text-color);
 
    --scrollbar-color: var(--accent-color);
    --scrollbar-background-color: var(--white-color);
 
    --general-medium-background-color: var(--general-dark-background-color);
    --general-medium-text-color: var(--general-dark-text-color);
    --general-medium-border-color: var(--accent-color);
    --general-strong-border-color: var(--accent-color);
    --general-button-text-color: var(--accent-color);
    --general-button-background-color: var(--white-color);
    --general-blur: 0;
 
    --header-background-bottom: var(--white-color);
    --header-background-top: var(--white-color);
    --header-extra-background-image: none;
    --header-text-color: var(--black-color);
 
    --topbar-text-color: var(--accent-color);
    --topbar-hover-text-color: var(--general-dark-text-color);
    --topbar-hover-background-color: var(--general-dark-background-color);
    --topbar-hover-border-color: 0, 0, 0, 0;
    --topbar-drop-text-color: var(--accent-color);
    --topbar-drop-background-color: var(--white-color);
    --topbar-drop-hover-text-color: var(--general-dark-text-color);
    --topbar-drop-hover-background-color: var(--general-dark-background-color);
    --topbar-drop-border-color: var(--accent-color);
    --topbar-drop-border-width: 0.15rem;
    --topbar-drop-shadow-color: 0, 0, 0, 0;
 
    --account-button-text-color: var(--general-button-text-color);
    --account-button-background-color: var(--general-button-background-color);
    --account-button-hover-text-color: var(--general-hover-button-text-color);
    --account-button-hover-background-color: var(--general-hover-button-background-color);
    --account-drop-text-color: var(--accent-color);
 
    --page-tag-text-color: var(--link-color);
    --page-tag-hover-text-color: var(--hover-link-color);
    --page-tag-background-color: 0, 0, 0, 0;
    --page-tag-hover-background-color: 0, 0, 0, 0;
 
    --page-option-background-color: 0, 0, 0, 0;
 
    --license-link-color: var(--link-color);
 
    --sidebar-media-background-color: 0, 0, 0, 0;
    --sidebar-title-background-color: 0, 0, 0, 0;
    --sidebar-title-text-color: var(--black-color);
    --sidebar-title-shadow-color: 0, 0, 0, 0;
    --sidebar-text-color: var(--accent-color);
    --sidebar-hover-text-color: var(--general-dark-text-color);
    --sidebar-hover-background-color: var(--general-dark-background-color);
    --sidebar-border-color: var(--accent-color);
 
    --action-area-info-background-color: var(--white-color);
    --action-area-info-text-color: var(--accent-color);
 
    --edit-area-background-color: var(--white-color);
 
    --tabview-horizon-color: var(--accent-color);
    --tabview-content-background-color: var(--white-color);
 
    --note-background-color: var(--white-color);
    --note-text-color: var(--black-color);
    --note-border-color: var(--accent-color);
 
    --footnote-block-background-color: var(--white-color);
 
    --dark-styled-quote-border-color: var(--black-color), 0.5;
 
    --thread-accent-color: var(--white-color);
}
 
body, html {
  -webkit-tap-highlight-color: transparent;
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
  scrollbar-width: thin;
}
::-webkit-scrollbar {
  width: 0.5rem;
  height: 0.5rem;
}
::-webkit-scrollbar-track {
  background: rgba(var(--scrollbar-background-color));
}
::-webkit-scrollbar-thumb {
  background: rgba(var(--scrollbar-color));
}
a:is(:hover, :active, :focus, :focus-within) {
  -webkit-text-decoration: underline 0.1em;
}
#side-bar .menu-item a {
  transition: background var(--general-transition-time-fast);
}
#file-comments {
  padding: 0.2em 0.5em;
}
table.page-files .highlight {
  background: rgba(var(--action-area-border-color))
}
.pager a, .pager .current, .pager .dots {
  transition: background var(--general-transition-time-slow), color var(--general-transition-time-slow);
}
#action-area h1 + p + h2 ~ div[style="padding-left:3em;"] > div {
  align-items: center;
}
#edit-meta-newtag-form > table {
  display: flex;
  align-items: center;
}
#edit-meta-newtag-form > table :is(tbody, tr) {
  display: contents;
}
#edit-meta-newtag-form > table td {
  display: block;
}
#edit-meta-newtag-form > table td:nth-child(2n) {
  flex: 1;
}
#edit-meta-newtag-form > table td input {
  width: 100%;
  box-sizing: border-box;
  border: none;
  background: rgba(var(--edit-area-textarea-background-color));
  color: rgba(var(--edit-area-textarea-text-color));
  padding: 0.2em 0.5em;
  margin: 0;
  outline: none;
  transition: box-shadow var(--general-transition-time-slow);
  font-weight: 500;
}
#edit-meta-newtag-form > table td input:focus-visible {
  box-shadow: 2px 2px 0 rgba(var(--edit-area-textarea-border-color)), -2px 2px 0 rgba(var(--edit-area-textarea-border-color)), -2px -2px 0 rgba(var(--edit-area-textarea-border-color)), 2px -2px 0 rgba(var(--edit-area-textarea-border-color));
}
#edit-meta-newtag-form > div {
  margin: 1rem 0;
  padding: 0 !important;
  display: flex;
  grid-gap: 1rem;
}
hr {
  background: transparent;
}
[class|=colmod-link] {
  margin: 1rem 0;
}
.yui-navset .yui-nav li a,
.yui-navset .yui-nav li.selected a {
  transition: color var(--general-transition-time-slow);
}
.hl-default,
.hl-code,
.hl-brackets,
.hl-identifier {
  color: inherit;
}
#toc #toc-action-bar {
  top: 0.25rem;
}
:where(ol ul, ul ul) {
  list-style-type: circle;
}
.join-box a {
  color: rgba(var(--general-button-text-color));
  background: rgba(var(--general-button-background-color));
}
.join-box a:is(:hover, :active, :focus, :focus-within) {
  color: rgba(var(--general-hover-button-text-color));
  background: rgba(var(--general-hover-button-background-color));
}
.forum-thread-box .description-block {
  padding: 0.5em 1em;
}
.thread-container .post .long {
  padding: 0.5em;
}
#page-content > div.forum-thread-box > div.options,
.post-container > .post > div.long > div.options {
  display: flex;
  justify-content: flex-end;
}
.signature {
  display: none;
}
.notepaper {
  max-width: 100%;
}
.bettercollap .collapsible-block-unfolded-link,
.bettercollap .collapsible-block-folded {
  margin: 0;
}
@media (pointer: coarse) {
  #login-status #account-options:hover,
  #login-status #account-topbutton:hover + #account-options {
    opacity: 1;
    pointer-events: all;
  }
}
@media only screen and (max-width: 1024px) {
  html {
    scroll-padding-top: var(--topbar-height-on-mobile);
  }
}
 
a:is(:hover, :active, :focus, :focus-within) {
    text-decoration: none;
}
h1, h2, h3, h4, h5, h6 {
    color: inherit;
}
a#account-topbutton,
#search-top-box-form .button,
#edit-page-title,
#edit-page-textarea,
#edit-page-comments,
#new-post-div input.text,
#new-post-div textarea#np-text,
#lock-info,
.change-textarea-size a,
div.buttons input,
input.button,
button,
file,
a.button,
table.form td input,
.new-page-box form input.text,
#file-comments,
.page-options-bottom a,
.owindow .button-bar > a:not([onclick*=cleanAll]),
.owindow div[style*=margin-top] a,
.join-box a,
.button-collap .collapsible-block-link,
.button-collap [class|=colmod-link] a {
    border: solid 0.15rem rgba(var(--accent-color));
    box-sizing: border-box;
}
table.wiki-content-table th,
.darkblock,
.dark-styled-quote {
    --page-title-text-color: var(--general-dark-text-color);
    --page-title-border-color: var(--general-dark-text-color);
    --hr-color: var(--general-dark-text-color);
}
.warnblock {
    --accent-color: var(--warning-text-color);
    --page-title-text-color: var(--warning-text-color);
    --page-title-border-color: var(--warning-text-color);
    --hr-color: var(--accent-color);
}
#header h1 a span {
    padding-top: 1rem;
    text-shadow: none;
    line-height: 1.2;
}
#header h1 a span::after {
    letter-spacing: 0.25em;
}
#header h2 {
    top: 0.5rem;
}
#top-bar {
    border-top: 0.15rem rgba(var(--accent-color)) solid;
    border-bottom: 0.15rem rgba(var(--accent-color)) solid;
}
#top-bar div[class*=top-bar] > ul > li > ul {
    border: solid var(--topbar-drop-border-width) rgba(var(--topbar-drop-border-color));
}
#top-bar div[class*=top-bar] > ul > li > ul > li,
#top-bar div[class*=top-bar] > ul > li > ul > li > ul > li {
    border: none;
}
#login-status > a > strong {
    color: rgba(var(--warning-color));
}
a#my-account {
    color: rgba(var(--link-color));
}
a#my-account:is(:hover, :active, :focus, :focus-within) {
    color: rgba(var(--hover-link-color));
}
#page-title,
.meta-title {
    display: flex;
    align-items: center;
    border-bottom: none;
    padding: 0;
}
#page-title::before,
#page-title::after,
.meta-title::before,
.meta-title::after {
    content: "";
    flex-grow: 1;
    height: 0.15rem;
    background-color: rgba(var(--accent-color));
}
#page-title::before,
.meta-title::before {
    margin-right: 1rem;
}
#page-title::after,
.meta-title::after {
    margin-left: 1rem;
}
.page-tags::before {
    border-radius: 0.25rem 0.25rem 0 0;
}
.page-tags span {
    grid-gap: 0.8rem;
    padding-left: 0.3rem;
}
.page-tags span a {
    transition: color 0.15s;
    padding: 0;
}
.page-watch-options a:hover {
    text-decoration: none;
}
div[id*=page-options-bottom] > a {
    border: none;
}
#side-bar .side-block.media {
    border-bottom: solid 0.1333333333rem rgba(var(--sidebar-border-color));
}
#side-bar .heading,
#side-bar .collapsible-block-unfolded-link a,
#side-bar .collapsible-block-folded a {
    justify-content: space-between;
    padding: 0 1em;
    margin-top: 0.9rem;
    font-size: 0.9rem;
}
#side-bar a.collapsible-block-link::before {
    display: none;
}
#side-bar a.collapsible-block-link::after {
    color: rgba(var(--accent-color));
}
#side-bar .menu-item a {
    border-left: none;
}
.edit-help-34 {
    font-size: 0.8rem;
}
.edit-help-34 a {
    margin: 0;
    padding: 0;
    color: rgba(var(--link-color));
    background: transparent;
    transition: color 0.15s;
}
.edit-help-34 a:is(:hover, :active, :focus, :focus-within) {
    color: rgba(var(--hover-link-color));
    background: transparent;
}
#lock-info {
    padding: 1em;
}
a.action-area-close,
#view-diff-div > p > a {
    background: transparent;
}
.pager a {
    transition: color 0.15s;
}
.pager a:is(:hover, :active, :focus, :focus-within) {
    color: rgba(var(--accent-color));
    background: transparent;
}
#action-area > h1 + h2 + ul,
#action-area > h1 + h2 ~ h2 ~ ul {
    margin: 0;
}
#action-area > h1 + h2 + ul li a,
#action-area > h1 + h2 ~ h2 ~ ul li a {
    color: rgba(var(--link-color));
}
.page-source {
    border: rgba(var(--accent-color)) dashed 0.15rem;
}
.yui-navset .yui-nav {
    box-shadow: 0 0.15rem 0 rgba(var(--tabview-horizon-color));
}
.hl-main * {
    color: inherit;
}
.hl-comment,
.hl-var,
.hl-number {
    color: rgba(var(--accept-color));
}
.hl-quotes,
.hl-string,
.hl-inlinedoc,
.hl-url,
.hl-builtin,
.hl-reserved,
.hl-special,
.hl-inlinetags {
    color: rgba(var(--accent-color));
}
:where(ol ul, ul ul) {
    list-style-type: circle;
}
div.wiki-note {
    font-weight: inherit;
    border: rgba(var(--note-border-color)) dashed 0.15rem;
    padding: 0.5rem 1rem;
}
.footnotes-footer,
.bibitems {
    border: rgba(var(--footnote-block-border-color)) solid 0.15rem;
    border-left-width: 0.4rem;
}
.owindow .content > img + h1 + table,
.owindow .content > img + h1 + table td {
    border-color: rgba(var(--accent-color), 0.18);
}
div.creditBottomRate {
    border-color: rgba(var(--accent-color));
}
.lightblock {
    border: rgba(var(--accent-color)) solid 0.15rem;
}
.styled-quote {
    border: rgba(var(--styled-quote-border-color)) solid 0.15rem;
    border-left-width: 0.6rem;
}
.keycap {
    box-shadow: 0 0.125em 0 0.05em rgba(var(--accent-color));
}
.licensebox a.collapsible-block-link {
    opacity: 1;
    color: rgba(var(--link-color));
    transition: color 0.15s;
}
.licensebox a.collapsible-block-link:is(:hover, :active, :focus, :focus-within) {
    color: rgba(var(--hover-link-color));
}
.sd-container {
    --sd-border: var(--black-color);
    --sd-symbol: var(--white-color);
    --sd-bullets: var(--black-color);
    --sd-text: var(--white-color);
}
.sd-container .top-box::before,
.sd-container .header-diamond .diamond-pattern {
    display: none;
}
.warnblock {
    background: rgba(var(--warning-color));
    color: rgba(var(--warning-text-color));
    margin: 1rem 0;
    padding: 0.5rem 1rem;
}
.titleblock {
    background: rgba(var(--popup-background-color));
    color: rgba(var(--popup-text-color));
    border: rgba(var(--popup-border-color)) solid 0.15rem;
    margin: 1rem 0;
    padding: 0 1rem 0.5rem;
}
.titleblock > h1:first-child {
    background: rgba(var(--popup-title-background-color));
    color: rgba(var(--popup-title-text-color));
    padding: 0.5rem 1rem;
    margin: 0 -1rem 0.5rem;
    font-size: 1.25rem;
}
.accent {
    background: rgba(var(--general-dark-background-color));
    color: rgba(var(--general-dark-text-color));
}
.insert {
    background: rgba(var(--accept-color));
    color: rgba(var(--accept-text-color));
}
.delete {
    background: rgba(var(--warning-color));
    color: rgba(var(--warning-text-color));
}
.classic-title,
.new-title {
    color: rgba(var(--page-title-text-color));
    font-weight: 700;
    margin: 1rem 0;
    font-size: 2rem;
    font-family: var(--title-font);
}
.classic-title p,
.new-title p {
    display: contents;
}
.classic-title {
    padding: 0 0 0.25rem;
    border-bottom: solid 0.15rem rgba(var(--page-title-border-color));
}
.new-title {
    display: flex;
    align-items: center;
}
.new-title::after {
    content: "";
    flex-grow: 1;
    height: 0.15rem;
    background-color: rgba(var(--accent-color));
    margin-left: 1rem;
}
.button-collap .collapsible-block-link,
.button-collap [class|=colmod-link] a {
    display: inline-block;
    padding: 0.5em;
    line-height: 1;
    color: rgba(var(--general-button-text-color));
    background: rgba(var(--general-button-background-color));
    transition: background var(--general-transition-time-fast);
}
.button-collap .collapsible-block-link:is(:hover, :active, :focus, :focus-within),
.button-collap [class|=colmod-link] a:is(:hover, :active, :focus, :focus-within) {
    color: rgba(var(--general-hover-button-text-color));
    background: rgba(var(--general-hover-button-background-color));
}
.modal-collap li.unfolded > .colmod-link-end a {
    display: none;
}
.modal-collap li.unfolded > .colmod-link-top a:first-child {
    display: inline;
}
.modal-collap li.unfolded > .colmod-link-top a + a,
.modal-collap li.unfolded > .colmod-content {
    display: flex;
    justify-content: center;
    align-items: center;
    position: fixed;
    width: 100%;
    height: 100%;
    top: 0;
    left: 0;
    z-index: 10;
}
.modal-collap li.unfolded > .colmod-link-top a + a {
    font-size: 0;
    backdrop-filter: blur(var(--general-blur));
    background: rgba(var(--popup-fader-color));
    border: none;
}
.modal-collap li.unfolded > .colmod-content {
    pointer-events: none;
}
.modal-collap div.modalbox > div:last-child {
    padding: 0.5rem 1rem;
    margin: 0;
    max-height: 47.5vh;
    overflow-y: auto;
    height: auto;
    min-height: 5rem;
    background: transparent;
}
.modal-collap div.modalbox > div:last-child h2 {
    margin: 0.35em 0;
    font-size: 1.75em;
    color: inherit;
}
.modal-collap.button-collap li.unfolded > .colmod-link-top a:first-child {
    display: inline-block;
}
.warning {
    --popup-title-background-color: var(--warning-color);
    --popup-title-text-color: var(--warning-text-color);
    --popup-border-color: var(--warning-color);
}
@media only screen and (max-width: 1024px) {
    #search-top-box-form .button {
        background: rgba(var(--search-button-text-color));
    }
    #top-bar div[class*=top-bar] > ul > li > ul > li:nth-child(2n):nth-last-child(2) {
        box-shadow: none;
    }
}
除非特别注明,本页内容采用以下授权方式: Creative Commons Attribution-ShareAlike 3.0 License