@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;
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;
width: var(--body-width-on-desktop, 45.75rem);
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 {
/* 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);
}
#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);
box-shadow: calc(var(--search-height) / 2 * -1) 0 calc(var(--search-height) / 2) 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;
}
}
我曾听闻,在卡兰极境的冰山上,有一座冰雕。她终日屹立在冷风中,据说已有了上千年的历史。
当每一个怀抱热血的登山者被卡兰的风雪征服,而不得不歇在半山腰的平顶山洞旁时,他们都能看到她立在洞口,她独自守望在冰山的寒风中。
为什么是她?因为冰雕里装着的是一个少女,或者说,她已经成为了一具永不衰老的尸体。她的生命,她的时间,被永远冻结在了接近死亡的那一刻。
她在等着什么?我不知道,那是只传唱在卡兰的神话,异乡人并没有多少倾听的机会。
但我在卡兰送信的时候,也曾亲眼望见过那块雪峰上的少女形状的冰雕。
在与洛汐分开以后,棱镜带我走进了北极山。这里的极夜刚刚过去,太阳整天都只能在地平线附近打转。
我不知道为什么,我感觉不到冷和饿。洛汐说只要走出了那片苔原,我就能重新获得我的生命。但我还是一点都感觉不到自己肉体的温度,感受不到北极山的冰雪气息。
除了风,在昼夜相接的时候最容易出现极地风。风会吹开我的前路,为我扫清行走在北极山的障碍。而我要做的,就是尽量躲开她要经过的路,然后顺着她在风中的足迹,直到神话中的那座最大的冰山。
每次遇到极地风,我都会记录下风谣者所带来的神话,久而久之,整理出了一段段另一个视角的神话故事。
但接着我就发现,这位风谣者的故事风格与以往的北极山神话有些不一样。风谣者并不是一个客观的传述者,她也有自己的思想。
所以,我把它们称为风谣残章。
如果有人不幸在冰川中罹难,寒冰之神卡伊就会在暴风雪中降临卡兰,用冰雪冻上探险者僵硬的身躯。然后,她会为那冰封的灵魂留下一个祝福,祝福着那些与卡兰的风雪搏斗的勇士。
她为那些探险者们准备了一副又一副冰棺,并许诺,等到他们晒够了十天整整的太阳,等到他们的冰壳化为四周的霜花之时,她就会回到卡兰,亲手打开留存着他们灵魂的冰棺,让他们的灵魂重新在太阳下闪烁着光芒。
冰棺中的尸体很难降解,但时间一长,他们原本的姿态就会变得面目全非,使人们不得不把他们扔到冰山脚下的一处壑谷中去。谷底是没有阳光的,就算是难得一见的晴天也不会直射到那些冰块之中去。
冰棺却也像是一副枷锁,禁锢住了他们的灵魂。他们就在永恒的冰冷中,永远不能逃脱卡兰冰雪的摆布。
有人说,这是卡伊对于那些妄想征服卡兰冰雪的旅行者的报复。旅行者被轻轻包装在美丽的冰壳之中,她用孤寂之寒塑造成了永恒的冰棺。她用一次又一次可能的希望摧残着被束缚的灵魂,直到它们再也无力期待未来,自我枯萎。
枯萎的灵魂再无力支撑起生前的躯壳,于是他们开始腐烂,在冰棺之中自我迷惘。失去了希望的灵魂只能被寒冰慢慢腐蚀,最终在冰棺被融化成蓝紫色的空洞冰渣。
在那之后,如果有机会,卡伊就会带着曾经留下的腐烂冰棺,将它送到卡兰冰山下的一处叫做无忧谷的地方。那里很深很深,总是有足够的时间让物体落下,这点空闲恰好可以解决卡兰人心中偶尔的忧愁。
但也许有可能,冰棺是不会被摔碎的,这使得谷底的住着的黑暗之神特别不满。她不能再用黑暗来分解眼前的枯萎灵魂,而只能哀怨地泛着卡莎的手迹的冰棺推到一旁。
于是,枯萎的灵魂冰沙就只能在黑暗的冰壳里蒸发。
因此,卡兰的那些行在冰川的旅行者们,他们的永远在期待着朝阳。期待着,有一束光,可以竖直地射进无忧谷中,为冰块中的躯骸们带回自由,为他们带来重回卡兰的机会。
我本来应该回去的,金主对我交出的报告很满意,我的朋友也为我拿回了隐身斗篷。
我还能继续当我的摇光,继续切入那些未知的层级,然后用纸笔刻画出那个世界的每个模样。
但我却总是忘不了她们,也许是当时的彼岸花闻的太多了,也许是她在我手臂上割开的口子留下了疤。
在我心里,北极山总有一种奇异的吸引力,原本听过的神话一个个的出现在我的脑海中,挥之不去。
任由从手指尖流过的血滴落在画上,我翻过了眼前的山。
冰山,极光,雪狐狸。我认出来了,这里就是她的北极山。
我们有过约定,她一定会来这里的,我会一直等着她。
我们永远不分开。
能听见远处的风声吗?极地风又来了,我又缩进了他们以前挖的冰洞中。我可没有抗衡极地风的本事,要对层级的一切自然现象保持畏惧,这是我上的第一课。
虽然我有斗篷罩着,但也不敢直接撞上她。极地风会卷走地表除冰雪以外的一切外来物品,只在地上留下一个平整的冰雪块。别人已经对极地风做过很多次实验了,我不想再拿我自己重复一次他们的失败经历。
我只去过一次卡兰,但卡兰就在那里,他们真的存在。我曾亲眼见证了一代又一代的卡兰人在冰雪高原中创造出了奇迹。他们的冰块之城,是人们在地上通向天境的交通枢纽。他们在风雪中培育的暗色蔬植,成为了最受游客们欢迎的卡兰特色。那段人们与冰雪斗争的文明历史,成了经久不衰的北境名片。
洛汐说,同样随着卡兰的冰雪文化流传的,还有经过各地的旅行者和游客们而流传的卡兰神话。
风谣者就是其中最著名的一群人,她们的出现总是伴着风雪,她们的故事在冰霜的凝结声里空灵又亲切,就像夜晚哼唱的歌谣。所以,越来越多的人们见到了她们,越来越多的人听到了卡兰风雪中的神话传说。
我见不到那些行走在卡兰冰河中的旅行者与游客,她曾经告诉过我,北极山就是另一个位面的卡兰的投影。北极山与卡兰并不在同一个世界,就像她们曾经来自前厅,而我一生都游荡在后室中。
但北极山与卡兰是相通的,无论是冰雪还是寒风。一定是这样。
在一个泼水成冰的季节,有一位少女,身上只着一件单衣。她走在卡兰夜里的寒风之中,独自步向死亡的路途。
起初人们都以为她会在一个无名之地被冻成冰块,但直到他们组织起几个人前往寻找那副冰棺的时候,却只发现眼前的脚印怎么也走不到尽头。
那时候卡兰的天气很安静,除了时常的风声以外只有一如既往的厚重云层。人们决定在暴风雪降临之前找到她,因为她必须要死在雪中,这是他们的规矩,也是少女独自出走的原因。
他们很快又组织了一个搜寻队,并不是在找活人,而是需要确保她的死亡。他们在找一个冰块,一个被卡兰的寒风冻死的尸体。
他们顺着她的足迹,跨过卡兰的那条风雪载途的淌冰之河,渡过那片群山之间日光所不及的冰原,走过卡兰所有的冰雪遗迹。她一步步走过的放逐旅途,被其后的人们一个接一个的超越。她在一个夜里出发,她的身后没有众人的目光。卡兰的夜犹如极境般冷淡,但她并不觉得寒冷,卡兰人也都不这么认为。
他们循着少女留下的痕迹与风雪一同前进,最后的浅薄足迹指向了一座冰山。那是卡兰边陲的雪峰,那是连慕名而来的专业登山队都要思量再三的冰山,没有人知道她是怎么一个人攀上卡兰最高的那座冰山的。
大家只知道,用蓍草占卜的时间划在了她出发一周之后,那时雪山的风雪久违的静了下来,初阳融化了杂生的冰刺。但却更冷了,就像风在空谷中的呜咽一般孤独的寒冷。
人们又花了两天才得以爬上那座安静的冰山,终于找到了她。少女同样安静地坐在一块裸露的巨石之上。她的手中多了一块用作口粮的菜团,其他什么都没有带。她依然是那件单衣,但风雪似乎并没有对她造成什么影响,她就像刚刚出发那般从容。
她没有死,没有人知道她是如何活过这几天天的,没有御寒的衣物,没有供暖的食物,也没有任何可以帮助她活在极境的东西。但她就是坐在那里,对着气喘吁吁的众人眨着眼睛。
他们说,那时候,她一个人,独自坐在石头上。她对着大惊失色的众人,只是微微的笑了笑。她没有对她来时的路途说些什么,而是对他们说,她要为神造一座冰雕。为潮汐之神所筑起的思念,这是她的遗愿。她想留下一座以她为形的冰雕,只为停留在这座卡兰最高的冰山,守望着她那可能的邂逅。
潮汐之神是什么神,没有人知道,卡兰神话中没有这一篇。我听说那位少女一直生活在卡兰,从来都没见过海,更不知道什么是潮汐。但她又是怎么活着走到那个地方的呢?没有人知道,就像卡兰人那时候也不知道潮汐这个词一样。
也许潮汐之神真的存在,真的护送着她来到了冰山上。但也许是因为他们相信的其他卡兰神灵需要她死,他们也不大可能亲手杀了眼前的少女,所以趁此机会驱散神话中的那场未至的暴风雪。反正总之他们还是听了少女的话,一起为她筑下她送给风的冰雕。
于是人们备好干柴支起锅,打来一盆一盆的热水,把新生的水汽与凝下的冰碴全部都浇在她身上。冰山上起风了,是明媚日光下依旧凛冽的极地之风。吹在她身上,滚烫与极寒交杂了一层又一层,冰霜不断的融化又凝结,直到塑成她的寒冰长裙,她的凌霜发髻。
卡兰冰山上的夕阳很美,在炽黄色的喷薄灿光中,藏在冰霜中的她眨着眼睛。她的眸子是金色的,比眼前的夕光还明媚。无数光线在她引以为傲的冰刺中折射跳跃,然后众人看到了,那抹只留存于卡兰传说之中的,冰花少女的绚烂之色。
赤红的夕阳落幕之后,锅里的水又烧开了,大家又重新按着她的命令浇水。少女就在这夜幕下的汐潮中捧着菜团安然入睡,没人清楚少女是何时闭上的双眼。
只是,他们说,那时候的天空清澈的没有一点杂烟,就像卡兰神话之中冰神登基的那一天一样繁星闪烁。风止星垂,没有一点杂音,他们发现时,她就像那一整块冰一样安宁。
等到最后一锅水被人们泼光,少女的冰雕也就正式落成了。她将独自面对着卡兰,面对着她的冰雪世界。她会永远保持着那一副青春之姿,眺望卡兰之上的那片冰海。
我听说,众人收拾工具的时候,看到了天际边也曾流落过一颗陨星。那颗流星啊,夜空中绽放出的是深邃的靛蓝星光,就像他们身旁的那座,与夜幕星河相映的孤独冰雕。
然后,在第十天,她独自走向死亡的第十天,她死了。她穿着凝冰而成形的长裙,戴着凌霜而成结的发饰花环。然后从容地为卡兰,或者说是为了她的一个约定,少女献出了自己的生命。
但冰雕的故事却被众人传说成了神话,也许当初亲手浇筑冰雕的人们也都已沉睡进了冰雪之中。也许她的姐姐,那位卡兰圣女也留在了神的怀抱中。她却永远留在那里,永远等待着那被风雪掩埋过的日落。
没有人知道她为什么要这样做,但我想知道她眼神里的是什么。临终之前,她那灿若晨曦的眸子里一闪而过的,是她的神灵吗。如果等到卡兰的天气不再整日飘舞着雪花,等到神也为她再度吹散天际的云雪。我想,她在生命结束的那一刻所看到的潮汐云海,那大概就是她所追求的约定吧。
少女曾说,潮汐之神叫作风,就是卡兰每天都会刮的风的那个风。少女是在距离卡兰冰山很远很远的天池里遇到她的。
风同样是个女孩子,长着大大的透明的翅膀,会带着她到处飞,带着她到处走。
风喜欢吃卡兰当地的菜团子,特别是她做的。她用薰衣草色的大麦糅的团子,还有卡兰本地的长得很像紫甘蓝的冰椰菜,就成卡兰流传下来的用以充饥的团子。她还会加一点暗灰色的芣苢和迷迭香,作为风初来卡兰的礼物。
但后来风回到了天池,她说那是一片极境的海洋,那里是永远没有日出日落的极夜。风只见过明亮的月光照在海上的样子,于是她就会鼓动翅膀,送来潮汐。
但卡兰从来没有天池,卡兰永远是一块大陆。风也常有,但却始终夹带着寒露与冰刺。风只能栖在海中,卡兰并没有什么水池足够让风停留,所以少女与风相处的时间很少。少女为风送别的时候,手上拿着的就是她特别准备的菜团。
终有一天,我为了送信也登上了那座冰山。游客们留下的痕迹只伴着我到了山脚下,然后的旅途都要我自己攀登。
然后,我终于在山腰上,看到了传说之中的那座冰雕。我走过无数个包裹着登山者的冰块,但也终得以重新一睹她那神话中冰封的容颜。
冰块的体积出乎意料的小,似乎只有一个冰壳。而冰中的少女依旧是那个样子,恬静而又忧敛,一点也没有经受过时间的痕迹。
终于,我在北极山看到了她,或者说是她曾经来过的踪迹。这次的她没有戴着兜帽斗篷和往常的破布烂毡,她真的像神话中说过的一样,身上只着一件单衣,再无其他。
她立在悬崖边上,眺望着无边无际的北极山。冰霜把时间刻在了长发上,风雪划过她的白色长裙,在深蓝的夜空与浮动着的极光映照下显得格外安宁。
我猜,她在等一个天晴,等一个一连十天的好天气。到了那个晴空万里的日子,烈阳就会炽烈地拥抱着那座冰雕,为她带来她永远等待着的温暖。
而如今,来之不易的暖阳陪着我一起洒满了北极山,我期待着,神话中的时机正要到了。
天亮了,我摘下斗篷,呼吸着北极山纯净得没有一丝杂质的空气。我正站在神话中冰雕的位置背后,当然,冰雕永远不会出现在北极山。
破晓的光投射在这座最大的冰山之上,暗蓝色的冰与血红色的初阳交相辉映,照亮了洛汐周围的冰雪。
到了那时,冰雕的风霜外衣会再度解冻。她的雪饰,她的冰裙,都会化为缥缈的水汽,汇集在她脚下的冰层所蒸发出的磅礴云雾中,为冰山下的卡兰投射出生命于冰花中绽放的色彩。
她的冰纱裙融入了眼下的潮汐之中。在多日晴空的云海之上,野马般的雾气环绕着北极山。她把自己塑成了一块晨霜般脆弱的棱镜。
她把晨曦折射成一个游荡在北极山间的光团。起初是血红的破晓之光,就像生长在异界的彼岸花一样绽放。
接着,光线逐渐柔和,逐渐飘落在冰雪之上。是樱花的水粉,是蒲公英的淡黄,是阿卡迪亚永远绵延的青绿原野。终日飘雪的冰原也因此有了生机。
然后,是北极山所折射出的冰蓝,渲染在半边未尽的夜空,映出了凝紫的时间极光。
那是她散下的色彩,是无数卡兰人只在神话中听说过的彩虹啊。北极山神话说,彩虹只会开在冰山的雾气翻涌之时,传说它能够联通生死异界,为女孩的心上人送去一缕极北之光。
至此,至少在那一刻,卡兰有了潮汐,北极山也有了雾霓。即使是如同蜉蝣的晨梦一般短暂,但在那个瞬间,我们的思绪却永远都不能被刻画。
有人说,彩虹是联通两个世界的通道,它的一端就落在我眼前的薄雾中,另一端散射在天边,看不到她的影子。
但那一定是北极山神话中风谣者的起点,也是每个风谣者都会驻足的风谣诗章的源头。
我看到了彩虹的那一端闪动着光,那一定是洛汐在守望着她的爱人啊。洛汐在等着她,然后,她会在彩虹之下,步入眼前祈望的云海潮汐。
柯希啊,我一直在等你。
晨光很快又被白毛风雪所覆盖,我重新戴上了隐身斗篷。我这次没有避开极地风,而是任由她从我身边穿过。
我看见风谣者在追逐着那一道虹光。太阳擦着远处地平线上的冰山,晨曦很快就没了影子。
风谣者紧紧握住了虹光的尾巴,和它一起飞向了北极山边境的那段白色雪墙。虽然理想中的神话与现实所发生的一切永远有点差异,但我相信在故事的最后,她们一定能够在虹桥的另一端相见。
听啊,风中的歌谣,依旧闪动在每一片不再黯淡的冰雪残花中。