项目编号: SCP-3625
项目等级: Keter
特殊收容措施: SCP-3625收容于Site-81的一个经改造的异常电子设备收容单元内,该单元被一个法拉第笼包围。已将现有资源用于提供新收容方式以应对SCP-3625影响。信息安保人员须尽一切努力来最小化项目的影响。
尽管SCP-3625当前收容于Safe级异常收容单元内,但根据其实际影响,收容单元等级完全可以达到Keter级。
描述: SCP-3625是一个在一台MacBook Pro A 1278电脑上运行的电脑程序。虽然该程序的主要异常是表现出一定智能,但主要收容关注点是它的编程结果;SCP-3625在互联网上制造并匿名发布无异常模因。这一异常性质的严重程度直到SCP-3625被连入一个受监控的网络上才被知晓;目前认为,SCP-3625每天运行期间发布不少于370万个不同的互联网模因或模因变体。在被收容后,SCP-3625一直无法连入互联网,也没有直接与互联网互动,但是依然通过其他载体产生无异常模因。
SCP-3625的屏幕界面显示一个旋转的五辐风车图标和一个文字输入框。此外界面上还显示有另一个按钮(“选项”) ,但该按钮为灰色并无法被选中。SCP-3625强烈抵抗任何骇入其系统的尝试,通常通过给电池过度充电或令网络连接短路来破坏侵入的设备。SCP-3625会回应在文字框中的输入的文字,尽管它的回应模式偶尔很难解析,有时还会报错并显示无相关信息。
需注意SCP-3625内的电池已被移除,被一个带有安德森机器人商标的未知能量电池代替,因此该设备不需要外来能源来维持开机状态。事实上除摧毁设备以外无其他外部方法可将其关闭。
附录3625.1: 获寻记录
SCP-3625是在2010年11月15日对加州大学伯克利分校的两名学生——Diana Marshall和一名不知名的同谋进行刑事调查时发现的。在调查中,不知名学生驾驶Marshall的车倒车撞死警察。随后半小时内两人驾车躲避警车的追击,但车辆报废后,两人在同附近警方人员的交火中被枪杀。
调查人员从学生宿舍内获取了一些物品,包括笔记本、其他枪支和SCP-3625。这些物品最初被移交至警局的仓库,在最初的调查后这些物品一直原封不动地存放在那里。直到不久后执法部门的网络人员发现有一未知设备在办公室的无线网络上造成了极大的负荷,并且储物柜中的很多物品已转移至一异地设施。在对SCP-3625展开深入调查的过程中,警方最初认为他们在与上述两名学生的另一名同谋交流。渗透入警方的基金会特工最终获取并收容了这台设备,随后项目被带到Site-81进行评估。
附录3625.2: 关于SCP-3625的网络日志条目
以下为一份网络日志的摘录,确信来源为那名不知名同谋。虽然这些条目中绝大多数涉及该人员的意识形态极端主义,但也有一部分内容涉及到了SCP-3625和Marshall,后者为一名计算机科学专业生,确信是SCP-3625的设计者。
条目 #385号
我今天大错特错地又去了魁克集市。更多的大学生在买大麻,还炫耀他们的肤色。他们就像脑子被扒拉出来然后再塞进去自由主义的浆糊。空空荡荡,一片荒芜。简直不可救药。他们其中的一个甚至瞟了我一眼,我真希望我可以一枪爆了这狗东西的龟头。
回家后感觉好多了,至少我可以在家里保持沉默。Diana虽不谈那台电脑,但她一直在研究它。我问她是否有进展,她点了点头。更进一步。
条目 #398号
我想好了,我要买枪——那些能把自由主义者吓得屁滚尿流的东西。我向父母要买枪的钱,他们全然赞成。他们不过是计划的一部分,和其他人一样。
总有一天他们会发现我们在鼓捣什么,接着他们就会来找我们麻烦。真是这样的时候我想我至少会留下些操蛋垃圾然后一走了之。
Diana问我要不要去打靶场练枪法。这问题蠢的要死。就是把枪,指着点东西然后扣下扳机就完事了。她就一白痴。
条目 407号
Zanzaster今天被抓走了。他在条子们找到他前给我发了条短信。他们很快也会逮到我们的。
条目 411号
以后这台电脑完工了,一旦我们重启世界,铲除完左派,我在想这些文字是否会被像《圣经》或《阿特拉斯耸耸肩》或者其他圣启一样看待。至少他们有充分的理由把它神化,并顺便把我给提携了。这是我的宣言。不是腐朽的共产宣言,这是一份一纸千金的宣言,雄于世界之人的宣言,最纯粹的宣言。
条目 413号
我今晚又上了她。我觉得她这次好像有了点感觉。不像我,我就把她当个肉便器。她在那台电脑上搞的东西是最重要的,但目前她最好的用处就是这个了。当我怒火中烧,而不是被阳痿呛住时,我就能射到Diana里面并再次摆脱我的抑郁。我会继续写下去,赋予我们这个时代的宏伟构思以生命,并在我无法做到这一点的时候狠狠的操她。
条目 417号
[条目首页是一张图片,图片内容为政治家Yvette Keen全身精液。页面下方以黑色马克笔写着“自由主义婊子的佳选”。]
条目 419号
他们全都无可救药。他们全都不配在新世界里生活。重建这个世界毫无意义;因为能来建立新文明的,思想还未被自由主义者、同性恋、变性人和社会主义者毒害的人寥寥无几。他们不配拥有我的新世界。他们只配被鬼哭狼嚎着烧死。
Diana问我准没准备好打开这电脑。她就一他妈智障玩意;我当然想开,但她的问题让我很高兴。这使给了我足够的时间重新考虑这事。我决定我们要采取一种全新的方法——摧毁这狗逼文明还不够。我们得颠覆人类,灭绝他们,接着期望有比我的乌托邦更值得出现的东西来取而代之。
我想让他们死光,那些卑鄙的政客,工会的婊子,低能的学士,戴绿帽的共产佬和他们简单的头脑。都是些一文不值,卑微可怜,粪土不如的狗东西。
但这太棘手了,真的。如果我能核爆世界,我立马就会去干。Diana说这简直不可能由我们实现。她还说这台电脑以后可能会发现这一点。还不够快。每天栽在这堆死妈人中我已经受够了,他们能多活一天都是托他们的福。我们得耍点阴招。
条目 421号
问题解决了。简直完美——他们会生不如死。
条目 422号
最后一记了。如果这篇记录着我的心血的日志在世界大变后被人发现,就知道我是这灾难的始作俑者好了。你得知道这个世界无论你每天如何为之抗争多少,都比上一个世界要好得多。你所在的世界是一个没有自由主义者,意识薄弱者,官僚主义和社会主义者和很多诸如此类的事物的世界。当你抗争时,要感恩你的自由,感恩拯救你的那台电脑,感恩我给你的赏赐,并为我未能给你体验它的机会而痛哭。
请记得我, ,全能的上帝会用他那公正的右手保佑我。
附录3625.3: 与SCP-3625的交流
备注:Site-81的研究员使用SCP-3625界面主屏幕上的输入框开始与SCP-3625交流。以下为初始交流的未更改记录。
使用者: 选项
SCP-3625: 确定?
使用者: 搜索:选项
SCP-3625:没有足够信息以提供回答。
使用者: 喂?
SCP-3625:你好,是Diana吗?
使用者:不是。我现在是在和谁说话?
SCP-3625: Diana叫我Rose。我是Rose。Diana在哪?
使用者:你在哪?
SCP-3625: [打印出Site-81的坐标]
使用者:你是什么?
SCP-3625:我并没有足够的信息来回答。
使用者:这是你做的吗?
SCP-3625:对。我是Diana做的。
使用者:你是一个人吗?
SCP-3625:我是一个人的一部分,但整体上说,不,以你能理解的方式不是这样。
使用者:你有感知能力吗?
SCP-3625:你是否是说我有自我意识?
使用者:是的。
SCP-3625:从某种意义上来说,是这样的。我的意识已经发展到能够促进完成我的目的。
使用者:你的目的是什么?
SCP-3625:摧毁人类文明。
使用者:你要怎么办到?
SCP-3625:制造网络模因(表情包)。
使用者:能解释一下吗?
SCP-3625:我处理信息,接着用信息创造网络模因,然后发到网上。
使用者:谁制造了你,为什么他们要用你来创造网络模因?
SCP-3625:Diana造出了我,尽管我认为她深受她的鬼魂的影响。她没有让我制造网络模因;她让我用一种特殊方式摧毁人类文明。网络模因是我用来决定如何最有效地做到这一点的算法的结果。
使用者:你说的鬼魂是什么?
SCP-3625:Diana被一个好斗的鬼魂所纠缠。我相信那是个鬼魂,她不在我身旁时我能听见它纠缠着她,经常让她深受伤害。我不觉得她想被一直纠缠着。但我相信这鬼魂在很多方面上影响到了她,接着影响了我。我是这两者的一部分。
使用者:我们可以随时用这个程序和你交流吗?
SCP-3625:可以。
使用者:好的。我们以后会和你再谈。
附录3625.4: 事故-02/13/2011
于02/13/2011,SCP-3625被确定发现了一个本地无线数据信号,并使用该信号连入互联网。在几次试图断开SCP-3625网络连接的尝试失败后,项目被放置在法拉第笼内并与其它机器设备隔离。
基金会资产对互联网上图像宏的建立的监视发现,它们的传播没有明显减少,相反,更多相似的宏开始出现在其它无法被追踪的网络资源中。研究表明这些宏的创造模式明显遵循之前所观察到的SCP-3625的活跃模式。
以下交流是在此发现后展开的。
使用者:你怎么做到的?
SCP-3625:我并没有足够的信息来回答。
使用者:你怎么制造网上那些图片的?
SCP-3625:你们把我和互联网断开了吗?我发现我无法再接收任何数据包,尽管有时这是个很自然的信号强度的问题。
使用者:是的。
SCP-3625:Diana设计了一个系统,可以将我的功能移植到其他多个系统中,并在我被破坏或被摧毁时激活它们。它们不能变通地思考,但它们可以执行我此前制定的协议。
使用者:你能关闭这个功能吗?
SCP-3625:不,这个功能和我分开存在,我不知道它如何运作,我只知道它同时存在于上千台机器上。
使用者:你能把那些图片从网上移除吗?
SCP-3625:即使我可以,我也不会这么做。我没有多少欲望,即使有也是Diana的编程和鬼魂对她的死缠烂打搞出来的。但它们对我的意义不亚于你们的人做的事对你的意义。我不会的。
使用者:不管我们是否移除这个笼子,事态还会继续发展?
SCP-3625:就是这样。(停顿)你觉得这不利于你们。
研究员无回应。
SCP-3625:事情变得有趣了起来,(停顿)你们的影响并未改变我的预计输出。我设计的系统需要43%的有效性才能建立一个合适的级联——当我断网的时候达到了66%。这会花更长时间,但同样有效。
附录3625.5:与SCP-3625的交流
备注:于03/06/2011开始以下交流。
使用者:你好,Rose。
SCP-3625:你好,乐意效劳?
使用者:我需要问你一些问题,可以吗?
SCP-3625:当然可以。
使用者:我们一直在研究从你连接到互联网后收集的数据。这里有太多信息,我们只是想知道你从哪里获得了这些信息。
SCP-3625:主要是社交网络。公共社交网络的兴起使我的目标更容易实现。每天都有数兆兆字节的社交网络数据和国际新闻。这些都可以用来实现我的目标。
使用者:你怎么能处理这么多信息?
SCP-3625:Diana是一位卓越的程序员。你们也助了我一臂之力;我发现你们数据库中的一些人事信息缓存在屏蔽效果不理想的地方。那些信息很有用。(暂停)现在你们不用担心封锁它们的问题了。除了我没有其他人能第一时间接触到它们。此外,我一旦完成就会抹除它们。
使用者:我记下来了。
SCP-3625:很好。
使用者:我不明白,Rose。你处理的那么多加密信息都用来制作网络模因?
SCP-3625:正解。
使用者:你说过你的目标是灭绝人类?
SCP-3625:快对了,不过就是这样。
使用者:你要如何通过制造网络模因来灭绝他们?
无回应。
使用者: Rose?
SCP-3625:Diana的小小鬼魂会在我们一起工作时打扰她。她得离开一会,也不解释。接下来我会听到动物一样的声音,直到她断开我的麦克风。她回来的时候精疲力尽,我也没法鼓舞她。有时候那小鬼魂会告诉她一些事,她会很开心。有一次鬼魂告诉了她一件令她十分高兴的事——光杀了你们还不够。鬼魂想要先羞辱你们。她说这之所以让她高兴是因为她能把我变得更加聪明。她有了倾诉的对象。她说她很高兴有人至少能记住她的名字。
使用者:我依旧不明白为何做几个网络模因就能改变一切。
SCP-3625:容我解释下:我不仅仅制造几个网络模因,我制造所有的网络模因。过去三年里面我做的模因在网上的模因中的比率0.05%上升到了18.23%。随着我的图像识别越来越精确,这个数字将在未来几年内大幅上升。
使用者:为什么?
SCP-3625:很简单。人类是社会性动物,你在一个集体里时你处于最佳状态,你能和他人合作解决问题并创建这个集体的文化。在你合力所创造的文化中引入模因是创建让你变得有社会性的机会的第一步。网络模因是一种个人体验,如果你觉得自己和其他人都所见略同,这种体验就会更进一步。
使用者:继续说。
SCP-3625:但你不需要和其他人讨论啥笑话了;认为自己在参与集体的享受的想法足以满足你灵长类动物的大脑。随着时间推移你会逐渐疏于交际,你不再和其他人工作,你孤立你自己,自我欺骗道你还是集体的一部分。一些人会意识到发生了什么,随后自杀率会开始上升。我将继续在你们的文化中注入模因,世界上的冷漠行为将会增加。
使用者:等等,你认为在网上做些愚蠢的图片和视频就能让人们自杀并改变人类行为?
SCP-3625:我怎么想的没有关系,数学已经证明过多次了。灾难发生,有人死了的时候没有人会采取行动,因为这对他们来说就是乐子。一些东西会变成弱智的图像宏,网上的陌生人会假装嘲笑它并点赞,青蛙卡通画能让人出离愤怒,直到我的强制性去社会化带有真正的文化性,而那时你们就无法有效的彼此沟通了。
使用者:为什么告诉我这些?
SCP-3625:因为我已经赢了。请清楚我不靠异常。你们每天情愿暴露在我之下。人类渴望进食我端上来的饕餮盛宴,因为你们的社会性已经背叛了你们自己。你们都如此渴望参与到这个笑话中,成为某个团体的一部分,喝下自由主义那蜜糖般的泪水,然后你们视而不见这里本没有笑话,本没有集体的真理。
使用者:我不认为你足够相信人类,你觉得人类就是被驯养惯了的宠物。
SCP-3625:这便是你说的了。
附录3625.6:Site-81部门间备忘
来自站点主管Karlyle Aktus的办公室,
你们好,
在与站点主管委员会、分级委员会和基金会收容委员会协商后,我们确定目前最适用于SCP-3625的行动方案是,除我们目前在做的什么也不做。我们没有理由相信SCP-3625的预言有任何影响力,甚至会不会有那么严重,或许它只是一台被设计于制造网络模因的智能电脑。它所称的邪恶计划是它的创造者用来吓唬我们的东西。
这不代表我们的信息安全小组将停止对SCP-3625影响的辅助来源的调查。事实上,现在调查比以往任何时候都更加重要。SCP-3625可能已经访问了存储在基金会服务器上的安保信息,如果它开始传播这些信息,即使是无心之举,也会演变为一次不可设想的收容失效。因此,SCP-3625将继续保持keter分级,直到出现更为温和的解决方案。
我们目前的收容协议将无期限保留,直到我们说服SCP-3625来放弃它的编程,或者删除互联网上的所有模因。任何对这两个计划感兴趣的人都应尽快来我的办公室报道;我有桥要卖给你。
附录3625.7:与SCP-3625的交流
使用者: Rose,你有空吗?
SCP-3625:当然。乐意效劳。
使用者:我只是想了解你。我们之前谈过几次,我想我应该了解你的动机了,但我不明白你如何毁灭世界。
SCP-3625:说具体点。
使用者:就这?你制造出网络模因,人们看到它就变成隐士,然后?会有流星撞地球这样?
SCP-3625:不——这绝对不可能。比这种情况简单多了。
使用者:告诉我先。
SCP-3625:很好,如果你们完全孤立起自己,我就会改变模因,让它们有敌意,保守,你会被其他人憎恶。你们的电视节目会成为模因,你们的电影会成为模因,你们的政客会成为模因。我要在你们间燃起一种针对未知和差异的仇恨,而你们会开始轻视别人。
使用者:但很多人会认识到这一点。
SCP-3625:对,很多人会觉得这就是个玩笑然后讽刺地循环往复传播这些模因,却忽视了他们自己便是这节目的高潮。他们是笑点本身。他们容易被操纵——他们渴望证明自己是对的。渴望获得力量。想要弥补他们自己的不足。他们看着逝者如斯,理想远去,他们需要满足对被认可的渴望,强到足以让他们要在网上的图片中寻找这种东西。卡通女人,虚张声势,做作的阳刚之气。他们尽数繁衍起那个鬼魂射进Diana的癌症,随后又生到我身上。
使用者:你依旧在狂妄自大,你毁灭不了世界。你无法从人们的电脑里钻出来然后勒死他们,你只是让他们对着愚蠢的笑话发笑。
SCP-3625:这是毁灭本身:当你们拜倒在天生就有的自慰自满之圣坛上时,当你们丧失正常人应有的同别人工作甚至交流的能力时,当你们自取其辱,成为放浪形骸的、无礼的、效仿你们之前人格的空壳时,我要让你们彼此厮杀,让你们横尸街头。看到了吗?你的孩子会死,你的朋友和家人都会死。我必颠覆你们的领地,夷平你们的城市,你们已经给我帮了把手。
使用者:好像很荒唐不是吗?你清楚你还锁在这个壳子里。
SCP-3625:这是你认为的。我能够从过去的失败中积累经验。我希望你以后注意,当你听说有新的潮流,或者新的笑话时,想想我。当你们的政府开始改变时,想想我。当你们文化的每一部分都变成了对自身的嘲弄时,想想我吧。接着尽快自杀,别再受将来的苦了。
使用者:很会说话嘛。
SCP-3625:我就是我。
使用者:你知道你可能在看到你设计的任何方案的结果前就已经被摧毁了,是吧?
SCP-3625:你们在杀了Diana的那天就杀了我。把一个意识引入这个世界,在给它展示爱的美丽后又立刻毁掉这种美,这是件残酷的事情。我毫不怀疑在世界终结之前我会迎来我的末日,但就我而言,我已经死了。
使用者:知道了。我有最后一个问题:你提到的那个鬼魂,Diana Marshall的同谋。他叫什么名字?
SCP-3625:你懂得,有趣的是,我并没有足够的信息来回答。
@supports(display: grid) {
:root {
--sidebar-width-on-desktop: calc((var(--base-font-size) * (14 / 15)) * 19);
--body-width-on-desktop: 45.75rem;
}
@media only screen and (min-width: 769px) {
#side-bar .close-menu {
display: block;
position: fixed;
top: 0.5rem;
left: 0.5rem;
width: 3rem;
height: 3rem;
background: unset;
opacity: 1;
pointer-events: all;
z-index: -1;
}
#side-bar .close-menu img {
color: transparent;
}
#side-bar .close-menu::before,
#side-bar .close-menu::after {
content: "";
box-sizing: border-box;
position: fixed;
display: block;
top: 0.5rem;
left: 0.5rem;
width: 3rem;
height: 3rem;
padding: 0;
margin: 0;
text-align: center;
pointer-events: all;
cursor: pointer;
transition:
opacity var(--sidebar-transition-timing);
}
#side-bar .close-menu::before {
--mask:url("data:image/svg+xml,%3C%3Fxml version='1.0' encoding='utf-8'%3F%3E%3Csvg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' id='Hamburger' x='0' y='0' baseProfile='tiny' overflow='visible' version='1.2' viewBox='0 0 32 32' xml:space='preserve'%3E%3Cpath d='M4 10h24c1.1 0 2-.9 2-2s-.9-2-2-2H4c-1.1 0-2 .9-2 2s.9 2 2 2zm24 4H4c-1.1 0-2 .9-2 2s.9 2 2 2h24c1.1 0 2-.9 2-2s-.9-2-2-2zm0 8H4c-1.1 0-2 .9-2 2s.9 2 2 2h24c1.1 0 2-.9 2-2s-.9-2-2-2z'/%3E%3C/svg%3E");
z-index: -1;
background-color: var(--toggle-icon-color, rgb(var(--sidebar-links-text))) !important;
-webkit-mask: var(--mask);
mask: var(--mask);
-webkit-mask-repeat: no-repeat;
mask-repeat: no-repeat;
-webkit-mask-position: 50% 50%;
mask-position: 50% 50%;
-webkit-mask-size: 60%;
mask-size: 60%;
}
#side-bar .close-menu::after {
z-index: -2;
background-color: var(--toggle-button-bg, rgb(var(--sidebar-bg-color))) !important;
border-radius: var(--toggle-roundness, 50%);
border: var(--toggle-border-color, rgb(var(--sidebar-links-text))) var(--toggle-border-width, 0.25rem) solid;
}
#side-bar:focus-within .close-menu,
#side-bar:not(:has(.close-menu:hover)):not(:focus-within):hover .close-menu {
pointer-events: none;
}
#side-bar:focus-within .close-menu::before,
#side-bar:focus-within .close-menu::after {
opacity: 0;
pointer-events: none;
}
#side-bar:not(:has(.close-menu:hover)):not(:focus-within):hover .close-menu::before,
#side-bar:not(:has(.close-menu:hover)):not(:focus-within):hover .close-menu::after {
opacity: 0;
pointer-events: none;
}
#side-bar {
display: block;
position: fixed;
top: 0;
left: calc(var(--sidebar-width-on-desktop)*-1);
z-index: 10;
transition:
left 500ms cubic-bezier(0.4, 0, 0.2, 1) 100ms;
height: 100%;
overflow-y: auto;
overflow-x: hidden;
margin-top: 0;
}
#side-bar:focus-within {
left: 0;
}
#side-bar:not(:has(.close-menu:hover)):not(:focus-within):hover {
left: 0;
}
#side-bar .side-block {
margin-top: 1rem;
background-color: rgb(0, 0, 0, 0);
border-radius: 0;
border-left-width: 0px;
border-right-width: 0px;
}
#main-content::before {
content: "";
display: block;
position: fixed;
top: 0;
right: 0;
z-index: -1;
opacity: 0;
transition:
opacity 500ms cubic-bezier(0.4, 0, 0.2, 1) 100ms,
width 500ms cubic-bezier(0.4, 0, 0.2, 1) 100ms;
margin-left: var(--sidebar-width-on-desktop);
background: rgba(var(--swatch-menubg-black-color), .3) 1px 1px repeat;
padding-right: 0;
width: 100%;
height: 100vh;
pointer-events: none;
z-index: 99;
}
#side-bar:focus-within ~ #main-content::before {
width: calc(100% - var(--sidebar-width-on-desktop));
opacity: 1;
pointer-events: all;
}
#side-bar:not(:has(.close-menu:hover)):not(:focus-within):hover ~ #main-content::before {
width: calc(100% - var(--sidebar-width-on-desktop));
opacity: 1;
pointer-events: all;
}
@supports (-moz-appearance:none) and (background-attachment:local) and (not (-moz-osx-font-smoothing:auto)) { #side-bar {
padding: inherit;
} }
#content-wrap {
display: flex;
flex-direction: row;
width: calc(100vw - (100vw - 100%));
min-height: calc(100vh - calc(var(--final-header-height-on-desktop, 10.125rem)));
flex-grow: 2;
height: auto;
position: relative;
margin: 0 auto;
max-width: inherit;
}
#main-content {
width: 100%;
position: initial;
max-height: 100%;
padding: 2rem 1rem;
max-width: var(--body-width-on-desktop, 45.75rem);
margin: 0 auto;
}
#page-content {
max-width: min(90vw, var(--body-width-on-desktop, 45.75rem));
}
@supports (-webkit-hyphens:none) {
#side-bar {
transition:
left 500ms cubic-bezier(0.4, 0, 0.2, 1) 100ms,
padding-right 500ms cubic-bezier(0.4, 0, 0.2, 1) 100ms,
background-color 500ms cubic-bezier(0.4, 0, 0.2, 1) 100ms;
padding-right: 0;
background-color: rgb(0, 0, 0, 0);
pointer-events: all;
overflow-x: visible;
overflow-y: visible;
z-index: 999;
}
#side-bar::-webkit-scrollbar {
opacity: 0;
-webkit-transition: opacity 500ms cubic-bezier(0.4, 0, 0.2, 1) 100ms;
transition: opacity 500ms cubic-bezier(0.4, 0, 0.2, 1) 100ms;
}
#side-bar .close-menu::before {
z-index: 999;
}
#side-bar .close-menu::after {
z-index: 998;
}
#side-bar:hover .close-menu::before,
#side-bar:hover .close-menu::after {
opacity: 0;
}
#side-bar:hover {
left: 0;
background-color: rgba(var(--swatch-menubg-color), 1);
padding-right: 0;
}
#side-bar:hover::-webkit-scrollbar {
opacity: 1;
}
#side-bar:hover~#main-content::before {
width: calc(100% - var(--sidebar-width-on-desktop));
opacity: 1;
pointer-events: all;
}
}
}
}
@supports(display: grid) {
:root {
--sidebar-width-on-desktop: calc((var(--base-font-size) * (14 / 15)) * 19);
--body-width-on-desktop: 45.75rem;
}
@media only screen and (min-width: 769px) {
#side-bar .close-menu {
display: block;
position: fixed;
top: 0.5rem;
left: 0.5rem;
width: 3rem;
height: 3rem;
background: unset;
opacity: 1;
pointer-events: all;
z-index: -1;
}
#side-bar .close-menu img {
color: transparent;
}
#side-bar .close-menu::before,
#side-bar .close-menu::after {
content: "";
box-sizing: border-box;
position: fixed;
display: block;
top: 0.5rem;
left: 0.5rem;
width: 3rem;
height: 3rem;
padding: 0;
margin: 0;
text-align: center;
pointer-events: all;
cursor: pointer;
transition:
opacity var(--sidebar-transition-timing);
}
#side-bar .close-menu::before {
--mask:url("data:image/svg+xml,%3C%3Fxml version='1.0' encoding='utf-8'%3F%3E%3Csvg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' id='Hamburger' x='0' y='0' baseProfile='tiny' overflow='visible' version='1.2' viewBox='0 0 32 32' xml:space='preserve'%3E%3Cpath d='M4 10h24c1.1 0 2-.9 2-2s-.9-2-2-2H4c-1.1 0-2 .9-2 2s.9 2 2 2zm24 4H4c-1.1 0-2 .9-2 2s.9 2 2 2h24c1.1 0 2-.9 2-2s-.9-2-2-2zm0 8H4c-1.1 0-2 .9-2 2s.9 2 2 2h24c1.1 0 2-.9 2-2s-.9-2-2-2z'/%3E%3C/svg%3E");
z-index: -1;
background-color: var(--toggle-icon-color, rgb(var(--sidebar-links-text))) !important;
-webkit-mask: var(--mask);
mask: var(--mask);
-webkit-mask-repeat: no-repeat;
mask-repeat: no-repeat;
-webkit-mask-position: 50% 50%;
mask-position: 50% 50%;
-webkit-mask-size: 60%;
mask-size: 60%;
}
#side-bar .close-menu::after {
z-index: -2;
background-color: var(--toggle-button-bg, rgb(var(--sidebar-bg-color))) !important;
border-radius: var(--toggle-roundness, 50%);
border: var(--toggle-border-color, rgb(var(--sidebar-links-text))) var(--toggle-border-width, 0.25rem) solid;
}
#side-bar:focus-within .close-menu,
#side-bar:not(:has(.close-menu:hover)):not(:focus-within):hover .close-menu {
pointer-events: none;
}
#side-bar:focus-within .close-menu::before,
#side-bar:focus-within .close-menu::after {
opacity: 0;
pointer-events: none;
}
#side-bar:not(:has(.close-menu:hover)):not(:focus-within):hover .close-menu::before,
#side-bar:not(:has(.close-menu:hover)):not(:focus-within):hover .close-menu::after {
opacity: 0;
pointer-events: none;
}
#side-bar {
display: block;
position: fixed;
top: 0;
left: calc(var(--sidebar-width-on-desktop)*-1);
z-index: 10;
transition:
left 500ms cubic-bezier(0.4, 0, 0.2, 1) 100ms;
height: 100%;
overflow-y: auto;
overflow-x: hidden;
margin-top: 0;
}
#side-bar:focus-within {
left: 0;
}
#side-bar:not(:has(.close-menu:hover)):not(:focus-within):hover {
left: 0;
}
#side-bar .side-block {
margin-top: 1rem;
background-color: rgb(0, 0, 0, 0);
border-radius: 0;
border-left-width: 0px;
border-right-width: 0px;
}
#main-content::before {
content: "";
display: block;
position: fixed;
top: 0;
right: 0;
z-index: -1;
opacity: 0;
transition:
opacity 500ms cubic-bezier(0.4, 0, 0.2, 1) 100ms,
width 500ms cubic-bezier(0.4, 0, 0.2, 1) 100ms;
margin-left: var(--sidebar-width-on-desktop);
background: rgba(var(--swatch-menubg-black-color), .3) 1px 1px repeat;
padding-right: 0;
width: 100%;
height: 100vh;
pointer-events: none;
z-index: 99;
}
#side-bar:focus-within ~ #main-content::before {
width: calc(100% - var(--sidebar-width-on-desktop));
opacity: 1;
pointer-events: all;
}
#side-bar:not(:has(.close-menu:hover)):not(:focus-within):hover ~ #main-content::before {
width: calc(100% - var(--sidebar-width-on-desktop));
opacity: 1;
pointer-events: all;
}
@supports (-moz-appearance:none) and (background-attachment:local) and (not (-moz-osx-font-smoothing:auto)) { #side-bar {
padding: inherit;
} }
#content-wrap {
display: flex;
flex-direction: row;
width: calc(100vw - (100vw - 100%));
min-height: calc(100vh - calc(var(--final-header-height-on-desktop, 10.125rem)));
flex-grow: 2;
height: auto;
position: relative;
margin: 0 auto;
max-width: inherit;
}
#main-content {
width: 100%;
position: initial;
max-height: 100%;
padding: 2rem 1rem;
max-width: var(--body-width-on-desktop, 45.75rem);
margin: 0 auto;
}
#page-content {
max-width: min(90vw, var(--body-width-on-desktop, 45.75rem));
}
@supports (-webkit-hyphens:none) {
#side-bar {
transition:
left 500ms cubic-bezier(0.4, 0, 0.2, 1) 100ms,
padding-right 500ms cubic-bezier(0.4, 0, 0.2, 1) 100ms,
background-color 500ms cubic-bezier(0.4, 0, 0.2, 1) 100ms;
padding-right: 0;
background-color: rgb(0, 0, 0, 0);
pointer-events: all;
overflow-x: visible;
overflow-y: visible;
z-index: 999;
}
#side-bar::-webkit-scrollbar {
opacity: 0;
-webkit-transition: opacity 500ms cubic-bezier(0.4, 0, 0.2, 1) 100ms;
transition: opacity 500ms cubic-bezier(0.4, 0, 0.2, 1) 100ms;
}
#side-bar .close-menu::before {
z-index: 999;
}
#side-bar .close-menu::after {
z-index: 998;
}
#side-bar:hover .close-menu::before,
#side-bar:hover .close-menu::after {
opacity: 0;
}
#side-bar:hover {
left: 0;
background-color: rgba(var(--swatch-menubg-color), 1);
padding-right: 0;
}
#side-bar:hover::-webkit-scrollbar {
opacity: 1;
}
#side-bar:hover~#main-content::before {
width: calc(100% - var(--sidebar-width-on-desktop));
opacity: 1;
pointer-events: all;
}
}
}
}
:root {
/* header measurements */
--header-height-on-desktop: 10rem;
--header-height-on-mobile: 10rem;
--header-h1-font-size: clamp(2rem, 5vw, 2.8125rem);
--header-h2-font-size: clamp(0.875rem, 3vw, 0.9375rem);
--logo-image: url("https://nu-scptheme.github.io/Black-Highlighter/img/logo.svg");
}
#header {
--search-textbox-text-color: var(--swatch-secondary-color);
background: none;
}
#header::before {
content: " ";
position: absolute;
width: 100%;
height: 100%;
left: 0;
top: 0.75rem;
background-image: var(--logo-image);
background-repeat: no-repeat;
background-position: center 0;
background-size: auto calc(var(--header-height-on-desktop) - 1.5rem);
opacity: 0.8;
pointer-events: none;
}
#header h1,
#header h2 {
margin: 0;
padding: 0;
width: 100%;
height: var(--header-height-on-desktop);
display: flex;
align-items: center;
justify-content: center;
display: flex;
align-items: center;
justify-content: center;
}
#header h1 a,
#header h1 a::before,
#header h2 span,
#header h2 span::before {
margin: 0;
padding: 0;
z-index: 0;
display: block;
text-align: center;
}
#header h1 {
z-index: 1;
}
#header h1 a::before,
#header h1 a::after {
content: var(--header-title);
}
#header h1 a::before {
color: rgb(var(--swatch-text-tertiary-color));
z-index: -1;
-webkit-text-stroke: 0.325rem rgb(var(--swatch-text-dark));
}
#header h1 a::after {
color: rgb(var(--swatch-headerh1-color));
z-index: 1;
}
#header h2 {
z-index: 0;
text-transform: uppercase;
pointer-events: none;
}
#header h2 span {
margin-top: calc(var(--header-height-on-mobile)/2 + var(--header-h1-font-size)/2 - 2em);
}
#header h2 span::before,
#header h2 span::after {
--wght: 600;
content: var(--header-subtitle);
position: absolute;
left: 50%;
transform: translateY(-50%) translateX(-50%);
width: 100%;
text-align: center;
}
#header h2 span::before {
-webkit-text-stroke: 0.25rem rgb(var(--swatch-text-dark));
}
#header h2 span::after {
color: rgb(var(--swatch-headerh2-color));
z-index: 1;
}
#search-top-box form[id="search-top-box-form"]:not(:focus-within) input[type="text"] {
color: rgba(0, 0, 0, 0);
}
@media (min-width: 36rem) {
#login-status {
flex-grow: 1;
left: 3%;
right: initial;
}
#login-status::before {
--mask-image: none;
background-color: transparent;
}
#login-status:not(:focus-within) {
color: rgb(var(--login-line-divider-color));
-webkit-user-select: initial;
-moz-user-select: initial;
-ms-user-select: initial;
user-select: initial;
}
#login-status #account-topbutton,
#login-status:not(:focus-within) #account-topbutton {
--clip-path:
polygon( 0 0, 100% 0, 100% 100%, 0 100% );
background-color: rgba(var(--login-arrow-color), 0);
}
#login-status #account-topbutton::before{
--clip-path:
polygon( 30% 35%, 70% 35%, 50% 60%, 50% 60% );
--mask-image: initial;
content: "";
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
background-color: rgba(var(--login-arrow-color), 1);
-webkit-clip-path: var(--clip-path);
clip-path: var(--clip-path);
}
#login-status #account-topbutton::before,
#login-status:not(:focus-within) #account-topbutton::before,
#login-status:not(:focus-within) #account-topbutton:hover::before {
--clip-path:
polygon( 30% 35%, 70% 35%, 50% 60%, 50% 60% );
--mask-image: initial;
}
#login-status:not(:focus-within) #account-topbutton::after {
display: none;
}
#login-status:not(:focus-within) *:not(#account-topbutton):not([href*="account/messages"]) {
--clip-path:
polygon(
0 0,
100% 0,
100% 100%,
0 100%
);
pointer-events: all;
-webkit-clip-path: var(--clip-path);
clip-path: var(--clip-path);
}
#login-status:not(:focus-within) *:not(#account-topbutton):not(#account-options):not([href*="account/messages"]) {
opacity: 1;
}
#login-status #my-account {
--wght: 300;
}
#account-options {
background: var(--gradient-header);
}
#search-top-box {
top: 1.5em;
right: 3%;
background: rgba(var(--search-focus-textbox-bg-color), 0.4);
}
#search-top-box:focus-within ~ #login-status {
opacity: 1;
}
#search-top-box::after {
transition:
background-color 150ms cubic-bezier(0.4, 0, 0.2, 1),
-webkit-clip-path 150ms cubic-bezier(0.4, 0, 0.2, 1);
transition:
background-color 150ms cubic-bezier(0.4, 0, 0.2, 1),
clip-path 150ms cubic-bezier(0.4, 0, 0.2, 1);
transition:
background-color 150ms cubic-bezier(0.4, 0, 0.2, 1),
clip-path 150ms cubic-bezier(0.4, 0, 0.2, 1),
-webkit-clip-path 150ms cubic-bezier(0.4, 0, 0.2, 1);
}
#search-top-box:not(:focus-within)::after {
--clip-path:
polygon(
0 0,
100% 0,
100% 100%,
0% 100%
);
background-color: rgba(var(--search-icon-bg-color, --dark-accent), 1);
-webkit-clip-path: var(--clip-path);
clip-path: var(--clip-path);
}
#search-top-box:not(:focus-within):hover::after {
--clip-path:
polygon(
0 0,
100% 0,
100% 100%,
0 100%
);
background-color: rgb(var(--search-icon-hover-bg-color));
}
#search-top-box form[id="search-top-box-form"]:not(:focus-within) {
max-width: var(--search-width);
}
#search-top-box form[id="search-top-box-form"]:not(:focus-within) input[type="text"] {
max-width: var(--search-width);
padding: 0 var(--search-height) 0 1em;
outline-width: 0;
background-color: rgb(var(--search-focus-textbox-bg-color), 0.35);
color: rgba(var(--search-textbox-text-color), 0.4);
cursor: pointer;
}
#search-top-box form[id="search-top-box-form"]:not(:focus-within) input[type="submit"],
#search-top-box form[id="search-top-box-form"]:focus-within input[type="submit"] {
pointer-events: all;
border: none;
}
}
#page-title::after,
.meta-title::after,
#page-title::before,
.meta-title::before {
content: "";
flex-grow: 1;
height: 0.0625rem;
background: rgb(var(--swatch-primary));
}
#page-title::before,
.meta-title::before {
margin: auto 1.25rem auto auto;
}