: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;
}
@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;
}
}
}
}
Alex Thorley的办公桌上有一封信。基金会从不写信。一切重要和不重要的消息都是通过安全的scipnet系统发来的。Alex拆开了信。
Alex思考了一会这封信的内容,然后把它揉成一团,扔进已经装满的废纸篓里。
很久很久以前,曾经有一个名字。
愚者,一个人类的名字。
有一天,愚者来到了一片荒野,在这里,愚者找不到任何可以成为的东西。
愚者孤独地死去。
因为冬之领域掌管的是灭亡之物,不论它们曾是平民还是国王。在化为乌有的世界中找不到有价值的东西。
一个有着白胡子和很多名字的老人在雪中跋涉,他的胳膊下夹着一棵冷杉树。在他身后,死寂的雪原复活过来,化作一场暴风雪。
他要去的是冬之庭边缘的一座小屋,它只是勉强跟现实世界连在一起。
随着冬之父的到来,小屋变得明亮了一点点,又能多支撑一天而不消亡。
老人右手提着树,用左手抓住了木门的把手。门一动不动。他绕到门的侧面,再次尝试打开它,这一次他用了更大的力气。门仍然没有开,但开始吱呀作响。门中间部分的声响比门把手这边更大。最终,他放下了树,把它倚在小屋的木墙上。现在他用双手全力推起门来。
一个合叶松脱了,他一头撞进门里,摔倒在地上。他呻吟着站起身,把冷杉树拖进室内。
暴风雪也想跟进来,但冬之父严厉地瞪了它一眼。这场冰的风暴只得留在屋外,形成一道不可穿透的壁障,阻隔了其他一切活物。
他把门扶回门框,朝合叶吹着气,直到它冻结在原本的位置上。
老人叹了口气。
他从红斗篷里掏出几颗苹果,把它们挂在树上。
最后,他在小屋的一个箱子里找到了柴火。老人把木柴从全都箱子里拿了出来,用双臂搂住它们,然后呻吟着把它们扔进壁炉。
然后他终于坐下了。他又叹了口气。
他听见门的吱嘎声,一个孩子走了进来。这孩子从头到脚都裹在羊毛罩衫里,只有那双精灵的眼睛露在外面。
孩子走向冬之父,递给他一个火柴盒。他感激地接过它,拿出一根蓝头火柴。当他划火柴时,冒出的只有雪花。
孩子咯咯笑起来。
冬之父又划了两次火柴,然后放弃了。他装出一副严肃表情,把火柴盒还给孩子。
孩子又笑了几声,然后跳上来坐在他腿上。它的脚悬在半空晃荡。
老人摸了摸他的白胡子。
又过了一会儿,他向冷杉树伸出了左手。一颗苹果渐渐变冷,直至完全冻结。随着苹果的冻结,细小的火花出现在壁炉里。火花闪耀了三次,火终于燃了起来。
现在他们只需等待。
冬之庭是重叠在现实世界之上的领域,两者间几乎互不干涉。这座小屋位于冬的半途,冬之庭特有的迷雾毫不费力地钻进了屋里。一开始,窗户的内侧蒙上了一层水汽,然后雾爬过地面,渐渐涌向给予生命的火焰。它越靠近火焰,就有越多的部分从雾中脱离出来,凝聚成形。它们并不会完全离开雾。
急切靠近火焰的形体中唯一可以辨认的是一个幽灵,一层层华丽披肩和长袍在它身上如同枷锁,黄昏时分才露头的太阳给它们笼罩上了一层惨白的色彩。这个影子的衣服是静止的,像是定格在了动作中的某一帧。两只冰冷的死者之手伸到火上取暖。影子一言不发。
冬之父向前倾身。
欢迎来到小屋,暮光之主。
没有人叫那个名字。它已经被夺走了,就跟其他那些一样。
白胡子的老人脸色一变。有那么一瞬间,他的存在分裂开来,几十张不同的面孔透过那个表象朝外窥探,随后冬之父再次确认了自我。
叫我冬之父吧。我在这里就是这个身份,而且我想其他的名字也帮不上你。
没有什么帮得上我。
然后他们继续等待。
一个对小屋来说个头太大的影子挤进了门。进门后,它从冷杉树上摘了一颗苹果,然后也走向了火焰。这是一个野人的影子。
穿长袍的已死的神一动不动。
冬之庭里没有野人的位置。冬之庭是精灵的安息之所,而不是野人的。
影子无视了这位曾经的神。很显然,他们之间存在着根深蒂固的嫌隙,这是数千年的仇恨培育出来的。
冬之庭里没有野人的位置。冬之庭是精灵的安息之所,而不是野人的。
够了。Ur-An-Uum在起义期间深深地投身于我们的魔法当中。虽然她现在也许还在天上,但她留在这个世界上的影子就跟冬之领域所有其他的东西一样已经死去。他们已经忘了她,就像忘了你一样。
于是他们或站或坐地围在火炉边,冬之父常常觉得这才是这个季节真正的意义:在温暖的火堆旁挤成一团,确保自己不会被冻死。
如果你用合适的方式去看,会发现壁炉附近的一根柱子看上去有点像是正在守护着这群人。
我看见相之守卫也来了。
他们又等了一会儿,但再也没人进入小屋。
看样子Alex是不会来了。我确定我的信没送错地方。我知道相之守卫想要澄清我们对非现实部的态度。
小屋并非密不透风。风从墙缝间钻进来,声音几近叹息。
没有新的人类加入,感觉我们好像少了点什么。他们会给这件事带来一些生气。
孩子盯着老人看了一会儿。其他人没有反应。
就这样吧。也没多少事要分享的。谁想先发言?
老人和孩子所坐的椅子在坐了很久之后变得略有些不舒服了。
对不起。跟往常一样,这不是冬之庭的正式庭审,也永远不会是。我只是想和老朋友们互通有无。
曾经的暮光之主瞪着他。
这里没有人是你的朋友。你也并不真的是法庭的一部分,多名者。
白胡子的老人脸色一变。有那么一瞬间,他的存在分裂开来,几十张不同的面孔透过那个表象朝外窥探,随后冬之父再次确认了自我。
有没有人要分享些什么?
没有人回应。
那就从我开始。有谁听说过夏之庭吗?
Ur-An-Uum的影子缓缓摇了摇头。其他死去的神没有动弹。
也许两百年前有。不。算了,没什么。
什么?这也许会是有用的信息。
我不记得了。
暴风雪在屋外咆哮。冬之父向外看去。
秋天说夏天已经不在了。一定是有什么把它藏起来了。
没有人在意。
小屋里很冷。他们全都挤得离壁炉近了一点。
我们一定可以做些什么。你们有谁能联系上春天吗?
我们为什么要联系?
如果四季之环继续残缺下去,一切最终都会变成冬天。
那么事情就是本该如此。
老人望着曾经的神,眼里满是悲哀。孩子仍然在冬之父的腿上摇晃着它的双脚。
那孩子们怎么办?他们也活该彻底坠入冬天吗?
不,孩子可不能。
那么我们必须联系春天。
我们为什么要联系?
冬之父叹了口气。在他第二次提及春天的时候,Ur-An-Uum影子的眼睛至少闪亮了一次,但也仅此而已。他朝没有人的方向转过脸去。
相之守卫,这样肯定能解放一些消失者吧?我们至少可以把它们带到春天那里。
外面的暴风雪吹得小屋吱吱作响。从某个角度听时,这声音听起来有点像怒吼。
我想也只能就这样了。
他们在火边等待着,直到火焰彻底燃尽。有的人在最后的火苗之前就离去了,其他人则随着最后的余烬熄灭而溃散在雾中。最后,老人的小屋里只剩下了他一个人。说真的,像往常一样,他本来就没指望这事能有什么结果。一个被遗忘已久的女王的影子眼中闪过的光亮对他来说就足够了。