:root {
--lh-red: #c0392b;
--lh-blue: #2980b9;
--lh-green: #27ae60;
--lh-dark-green: #16a085;
--lh-purple: #8e44ad;
--lh-orange: #e67e22;
--lh-yellow: #f1c40f;
--lh-paper-bg: 255, 251, 240;
--lh-string-color: 192, 57, 43;
--lh-book-color: var(--gray-monochrome);
--lh-tape-color: 90,90,90,0.3;
--lh-white-bg: 249,249,249;
--lh-dark-bg: 50, 50, 50;
--lh-highlighter: var(--bright-accent);
--lh-border-color: var(--gray-monochrome);
--lh-wiki-note-color: var(--bright-accent)
}
/**
* 旧代码合集
* 为了向下兼容而保留
*/
.grid-container{display:flex;flex-direction:row;flex-wrap:wrap;width:100%}.grid-container,.grid-container [class*=grid]{box-sizing:border-box}[class*=grid]{padding:5px}.grid{width:100%}.grid-large{width:75%}.grid-big{width:50%}.grid-medium{width:33.33%}.grid-small{width:25%}@media screen and (min-width:768px){.wd-grid-large{width:75%}.wd-grid,.wd-grid-big{width:50%}.wd-grid-medium{width:33.33%}.wd-grid-small{width:25%}}.text-hover-hide{opacity:0;transition:opacity .3s}.text-hover-hide:hover{opacity:1}.text-block-hide{background:rgb(var(--black-monochrome));color:rgb(var(--black-monochrome));transition:background .3s}.text-block-hide:hover{background:0 0}.text-blur-hide,.text-blur-hover-hide{filter:blur(.3rem);-webkit-filter:blur(.3rem) transition: blur .3s}.text-blur-hover-hide:hover{filter:blur(0);-webkit-filter:blur(0)}.lyric-box{text-align:center;font-size:1.05rem;display:flex;flex-direction:column;flex-wrap:wrap;justify-content:center}.lyric-box p{margin:1.5em auto}.lyric-box.with-bigger-line p{margin:3em auto}
/**
* 便签纸
* notepaper
*/
.notepaper {
background: linear-gradient(rgb(var(--lh-paper-bg)) 95%, #ddd 0);
line-height: 2em;
background-size: 100% 2em;
background-attachment: local;
border: 2em solid rgb(var(--lh-paper-bg));
box-shadow: 0 0.1rem 0.3rem rgba(0,0,0,0.2);
padding: 0;
margin: 1em auto;
box-sizing: border-box;
position: relative
}
.notepaper p {
margin: 0;
font-size: 1.05rem;
letter-spacing: 0.1rem;
line-height: inherit
}
.notepaper.narrow,
.notepaper.wide {
width: 90%
}
@media screen and (min-width:768px){
.notepaper.narrow {
width: 50%
}
.notepaper.wide {
width: 75%
}
}
.notepaper.tight {
border-width: 1rem;
border-left-width: 1.2rem;
border-right-width: 1.2rem;
line-height: 1.8em;
background-size: 100% 1.8em;
font-size: 13px
}
.notepaper.with-string::before {
content: '';
width: 0.5em;
height: 6rem;
background: rgb(var(--lh-string-color));
top: -2rem; right: -1rem;
display: block;
position: absolute;
box-shadow: 0 0.1em 0.2em rgba(0,0,0,0.2);
clip-path: polygon(-100% -100%,100% 0%,100% 100%,50% 98%,0% 100%);
}
.notepaper.with-tape::before {
content: '';
border: 1px solid #ddd;
background: rgba(var(--lh-tape-color));
width: 1.5em;
height: 4em;
transform: rotate(45deg);
display: block;
position: absolute;
top: -3em;
left: -1.8em
}
.notepaper.tight.with-string::before {
top: -1rem;
right: -0.25rem;
}
.notepaper.tight.with-tape::before {
top: -2.5em;
left: -1.3em
}
.notepaper.page {
min-height: 36em;
counter-increment: page;
display: flex;
flex-direction: column;
justify-content: space-between
}
@media screen and (min-width:768px){
.notepaper.page {
width: 70%
}
}
.notepaper.page:after {
content: counter(page);
display: block;
text-align: center
}
.notepaper-group {
counter-reset: page;
}
.book-pattern {
display: flex;
flex-wrap: wrap;
flex-direction: row
}
.book-pattern .notepaper.page:not(.notepaper > .notepaper) {
width: 100%
}
@media screen and (min-width: 768px) {
.book-pattern .notepaper.page:not(.notepaper > .notepaper) {
width: 50%
}
}
.book-wrapper {
background: rgb(var(--lh-book-color));
padding: 0.5rem;
box-shadow: 0 0.1rem 0.2rem rgba(0,0,0,0.2);
border-radius: 5px;
margin: 1rem auto
}
@media screen and (min-width: 768px) {
.book-wrapper .notepaper {
margin: 0
}
}
/**
* 文字修饰
*/
.text-highlighted {
position: relative
}
.text-highlighted::before {
content: "";
position: absolute;
height: 0.9em;
bottom: 2px;
left: -2px;
width: 105%;
z-index: -1;
background-color: rgb(var(--lh-highlighter));
opacity: .6;
transform: skew(-15deg);
transition: opacity .2s ease;
border-radius: 3px 8px 10px 6px;
transition: 0.1s ease background-color;
}
.text-underlined {
text-decoration: underline;
text-underline-offset: 4px;
text-decoration-thickness: 2px;
text-decoration-color: rgb(var(--lh-highlighter))
}
.text-wavy {
text-decoration: underline wavy;
text-underline-offset: 4px;
text-decoration-color: rgb(var(--lh-highlighter))
}
.text-circled,
.text-squared {
display: inline-block;
border: 2px solid rgb(var(--lh-highlighter));
border-radius: 100%;
box-sizing: border-box
}
.text-squared { border-radius: 0 }
.text-shadow { text-shadow: 0.075em 0.075em 0 rgb(var(--lh-highlighter)) }
.text-highlighted.td-red::before { background: var(--lh-red) }
.text-circled.td-red, .text-squared.td-red { border-color: var(--lh-red) }
.text-underlined.td-red, .text-wavy.td-red { text-decoration-color: var(--lh-red) }
.text-highlighted.td-blue::before { background: var(--lh-blue) }
.text-circled.td-blue, .text-squared.td-blue { border-color: var(--lh-blue) }
.text-underlined.td-blue, .text-wavy.td-blue { text-decoration-color: var(--lh-blue) }
.text-highlighted.td-green::before { background: var(--lh-green) }
.text-circled.td-green, .text-squared.td-green { border-color: var(--lh-green) }
.text-underlined.td-green, .text-wavy.td-green { text-decoration-color: var(--lh-green) }
.text-highlighted.td-darkgreen::before { background: var(--lh-dark-green) }
.text-circled.td-darkgreen, .text-squared.td-darkgreen { border-color: var(--lh-dark-green) }
.text-underlined.td-darkgreen, .text-wavy.td-darkgreen { text-decoration-color: var(--lh-dark-green) }
.text-highlighted.td-purple::before { background: var(--lh-purple) }
.text-circled.td-purple, .text-squared.td-purple { border-color: var(--lh-purple) }
.text-underlined.td-purple, .text-wavy.td-purple { text-decoration-color: var(--lh-purple) }
.text-highlighted.td-yellow::before { background: var(--lh-yellow) }
.text-circled.td-yellow, .text-squared.td-yellow { border-color: var(--lh-yellow) }
.text-underlined.td-yellow, .text-wavy.td-yellow { text-decoration-color: var(--lh-yellow) }
.text-highlighted.td-orange::before { background: var(--lh-orange) }
.text-circled.td-orange, .text-squared.td-orange { border-color: var(--lh-orange) }
.text-underlined.td-orange, .text-wavy.td-orange { text-decoration-color: var(--lh-orange) }
/* 隐藏文字 */
.text-blank { color: rgba(0,0,0,0) }
.text-block {
background: rgb(var(--black-monochrome));
color: rgb(var(--black-monochrome));
}
.text-blur {
filter: blur(0.3em);
-webkit-filter: blur(0.3em)
}
.text-hoverback,
.text-selectback {
transition-duration: 0.3s;
transition-property: background, transform, color
}
.text-blank.text-hoverback:hover,
.text-blank.text-selectback::selection,
.text-blank.text-selectback *::selection { color: rgb(var(--black-monochrome)) }
.text-block.text-hoverback:hover { background: transparent!important }
.text-block.text-selectback::selection,
.text-block.text-selectback *::selection { color: rgb(var(--white-monochrome, 255, 255, 255)) }
.text-blur.text-hoverback:hover { filter: blur(0)!important; -webkit-filter: blur(0)!important }
/**
* 附加项
*/
.with-border, .with-box-style { border: 1px solid rgb(var(--bright-accent)) }
.with-border-dark { border: 1px solid rgb(var(--black-monochrome)) }
.with-border-light { border: 1px solid rgb(var(--white-monochrome)) }
.with-border-thick { border-width: 2px }
.with-shadow-sm { box-shadow: 0 0 0.1em rgba(0,0,0,0.2) }
.with-shadow { box-shadow: 0 0.1em 0.2em rgba(0,0,0,0.2) }
.with-shadow-lg { box-shadow: 0 0.15em 0.3em rgba(0,0,0,0.2) }
.with-shadow-xl { box-shadow: 0 0.2em 0.5em rgba(0,0,0,0.2) }
.with-shadow-xxl { box-shadow: 0 0.25em 0.8em rgba(0,0,0,0.2) }
.with-padding, .with-box-style { padding: 0.25em 1em }
.with-p-sm { padding: 0.125em 0.5em }
.with-p-lg { padding: 0.5em 2em }
.with-margin, .with-box-style { margin: 1em auto }
.with-m-sm { margin: 0.5em auto }
.with-m-lg { margin: 2em auto }
.with-narrow-width {
width: 90%!important;
margin-left: auto;
margin-right: auto
}
@media screen and (min-width: 768px) {
.with-narrow-width { width: 75%!important }
}
[class*="with-bg-"], [class*="with-bg-"] h1 { color: #fff!important }
.with-bg-red { background: var(--lh-red)!important }
.with-bg-blue { background: var(--lh-blue)!important }
.with-bg-green { background: var(--lh-green)!important }
.with-bg-darkgreen { background: var(--lh-dark-green)!important }
.with-bg-yellow { background: var(--lh-yellow)!important }
.with-bg-orange { background: var(--lh-orange)!important }
.with-bg-purple { background: var(--lh-purple)!important }
/**
* 删除类
*/
.offwith-shadow { box-shadow: none!important }
.offwith-border { border: none!important }
.offwith-padding, .offwith-pam { padding: 0!important }
.offwith-margin, .offwith-pam { margin: 0!important }
.offwith-width-limit {
width: auto!important;
margin-left: auto!important;
margin-right: auto!important
}
div[class*="grider"].offwith-grid-gap { grid-gap: 0!important }
/**
* 网格布局
*/
/* Gridder 容器 */
div[class*="gridder"] {
display: grid;
box-sizing: border-box;
grid-gap: 1rem;
padding: 0
}
div[class*="gridder"] * { box-sizing: border-box }
.gridder, .gridder-col-2 {
grid-template-columns: 1fr 1fr;
}
.gridder-col-3 {
grid-template-columns: repeat(3, 1fr);
}
.gridder-col-4 {
grid-template-columns: repeat(4, 1fr);
}
@media screen and (min-width: 768px) {
.pc-gridder, .pc-gridder-col-2 {
grid-template-columns: 1fr 1fr;
}
.pc-gridder-col-3 {
grid-template-columns: repeat(3, 1fr);
}
.pc-gridder-col-4 {
grid-template-columns: repeat(4, 1fr);
}
}
.spanner, .spanner-2 {
grid-column-start: span 2;
}
.spanner-3 {
grid-column-start: span 3;
}
/**
* 告示组件
*/
.signblock,
.signblock-dark,
.signblock-warn {
margin: 1rem auto;
box-shadow: 0 0.1rem 0.3rem rgba(0,0,0,0.4);
background: rgb(var(--lh-white-bg));
font-size: 1.05rem;
padding: 2rem
}
@media screen and (min-width: 768px) {
.signblock,
.signblock-dark,
.signblock-warn {
width: 75%
}
}
.signblock-dark,
.signblock-dark h1 {
background: rgb(var(--lh-dark-bg));
color: #fff
}
.signblock-warn,
.signblock-warn h1 {
background: var(--lh-red);
color: #fff
}
.signblock h1,
.signblock-dark h1,
.signblock-warn h1 {
text-align: center;
font-size: 2rem;
margin: 0;
font-weight: 700
}
.signblock-img {
display: flex;
flex-direction: row;
justify-content: center
}
.signblock-img img {
width: 8em
}
.signblock-footer {
font-size: 0.9em;
text-align: center;
margin: 0.5rem 0;
font-weight: bolder;
display: block
}
/**
* 报告
*/
.reportblock,
.reportblock-dark {
border: 2px solid rgb(var(--lh-border-color));
box-shadow: 0 0.1rem 0.2rem rgba(0,0,0,0.3);
background: rgb(var(--white-monochrome));
padding: 0.8rem 1.5rem;
padding-bottom: 0.4rem;
margin: 1.5rem auto;
margin-bottom: 1rem;
position: relative
}
.reportblock hr,
.reportblock-dark hr {
background-color: rgb(var(--lh-border-color));
margin-left: -1.5rem;
margin-right: -1.5rem
}
.reportblock h1:first-child,
.reportblock-dark h1:first-child {
position: absolute;
top: -1rem;
left: 1.5rem;
font-size: 110%;
font-weight: 600;
background: rgb(var(--lh-border-color));
color: #fff;
padding: 0.2rem 0.5rem;
margin: 0;
}
.reportblock-dark,
.reportblock-dark h1 {
border-color: rgb(var(--lh-white-bg));
background: rgb(var(--lh-dark-bg));
color: #fff
}
.reportblock-dark hr {
background-color: rgb(var(--lh-white-bg));
}
/* 更好的折叠框 */
.bettercollap {
margin: 1em 0;
}
.bettercollap .collapsible-block {
width: auto;
overflow: hidden;
border: 1px solid rgb(var(--lh-border-color))
}
.bettercollap .collapsible-block-content,
.bettercollap .collapsible-block-link {
background: rgb(var(--white-monochrome));
padding: 0.5em
}
.bettercollap .collapsible-block-content {
padding-left: 1em;
padding-right: 1em
}
.bettercollap .collapsible-block-link {
color: rgb(var(--lh-border-color));
background: rgb(var(--white-monochrome));
transition: .3s;
display: block;
}
.bettercollap .collapsible-block-link:hover,
.bettercollap .collapsible-block-unfolded .collapsible-block-link,
.styledcollap.bettercollap .collapsible-block-link {
color: rgb(var(--white-monochrome));
background: rgb(var(--lh-border-color))!important;
text-decoration: none
}
.bettercollap .collapsible-block-link:hover a { color: rgb(var(--white-monochrome)) }
.bettercollap .collapsible-block-link::before {
content: "\25BC";
display: inline-block;
margin-right: 0.5em;
transform: rotate(-90deg) scale(0.9)
}
.bettercollap .collapsible-block-unfolded .collapsible-block-link::before {
transform: rotate(0) scale(0.9)
}
.bettercollap .collapsible-block + .collapsible-block { border-top: none }
.styledcollap.bettercollap .collapsible-block {
border-radius: 2px;
box-shadow: 0 0.1rem 0.2rem rgba(0,0,0,0.3)
}
.styledcollap.bettercollap .collapsible-block-content {
background-color: rgb(var(--pale-gray-monochrome));
border-width: 3px
}
.styledcollap.bettercollap .collapsible-block-link:hover {
background: rgba(var(--lh-border-color),0.95)!important;
}
/**
* 提示框
*/
.infoblock {
color: #f1f1f1;
font-weight: bold;
background: #424242;
padding: 5px 5px 5px 5px;
border-radius: 4px;
margin: -0.5rem 0 1rem 0;
display: block;
width: fit-content;
padding-right: 25px;
}
.infoblock::before {
content: "ⓘ "
}
/**
* 单页迭代
*/
.offset-page:not(:target), .offset-page:target ~ div#u-default-page { display: none }
.offset-page:target { display: block }
如何使用:
[[include :backrooms-wiki-cn:component:level-class
|class=等级
]]
class 处的可用参数包括以下内容,支持简繁体及英文输入。
| English |
简体中文 |
繁體中文 |
| 0 |
1 |
2 |
3 |
4 |
5 |
0 |
1 |
2 |
3 |
4 |
5 |
0 |
1 |
2 |
3 |
4 |
5 |
| unknown |
未知 |
未知 |
| habitable |
宜居 |
宜居 |
| deadzone |
死区 |
死區 |
| pending |
等待分级 |
等待分級 |
| n/a |
不适用 |
不適用 |
| amended |
修正 |
修正 |
| omega |
终结 |
終結 |
该组件支持简繁切换,如下方代码所示:
[[include :backrooms-wiki-cn:component:level-class
|lang=cn/tr
|class=等级
]]
在
lang 处选择语言,cn 表示简体中文,tr 表示繁体中文,不填默认选择简体中文。
自定义等级
[[include :backrooms-wiki-cn:component:level-class
|lang=cn/tr
|class=等级名字
|color=#000000(带有井号的十六进制色号代码。)
|image=链接(至图片的链接。)
|one=在这
|two=随便
|three=放文字
]]
使用 CSS 进行自定义:
你可以使用 CSS 进行额外的自定义,将代码放入到 [[module css]] 中或者是放入到页面的版式内都可以。在这一组件中,不要把 [[module css]] 放在 [[include]] 里面,把它放在那个的下面或者是页面的顶部或底部。
将这些代码放入到你的页面/版式中以编辑所有的颜色,因为组件的 |color= 部分仅能控制背景:
[[module css]]
.sd-container {
/* 字体 */
--sd-font: Poppins, Noto Sans SC, Noto Serif SC;
/* 边框 */
--sd-border: var(--gray-monochrome); /* 大多数等级 */
--sd-border-secondary: 0, 0, 0; /* 不适用 */
--sd-border-deadzone: 20, 0, 0; /* 死区 */
/* 标志 */
--sd-symbol: var(--sd-border) !important; /* 大多数标志 */
--sd-symbol-secondary: 255, 255, 255; /* 4 级以上的是白色 */
/* 文本 */
--sd-bullets: var(--sd-border) !important; /* 点句符文本颜色 */
--sd-text: var(--swatch-text-secondary-color); /* 顶部框文本颜色 */
/* 等级颜色 */
--class-0: 247, 227, 117;
--class-1: 255, 201, 14;
--class-2: 245, 156, 0;
--class-3: 249, 90, 0;
--class-4: 254, 23, 1;
--class-5: 175, 6, 6;
--class-unknown: 38, 38, 38;
--class-habitable: 26, 128, 111;
--class-deadzone: 44, 13, 12;
--class-pending: 182, 182, 182;
--class-n-a: 38, 38, 38;
--class-amended: 185, 135, 212;
--class-omega: 25, 46, 255;
}
[[/module]]
旧版颜色:
如果你不喜欢新版的样式,想要用回旧版的红色边框色,只需要在你的页面中与组件一同引入下方的代码:
[[module css]]
.sd-container {
--sd-border: 90, 29, 27;
--sd-image: 90, 29, 27;
--sd-symbol: 90, 29, 27;
}
[[/module]]
描述:
Level AS-418是后室AS层群的第419层,其呈现为一座沉没于水中的古堡及其周边水域。古堡建立在海中断崖之下,初代大图书管理员艾德蒙·德·维里恩伯爵于三百年前择此地建堡,理由有二:其一,此处海流交汇,魔力波动异常丰富,适宜魔法典籍的保存;其二,海中岩壁天然形成的洞穴可为古堡提供稳固的支撑,亦可作为秘密通道的依托。
古堡整体采用晚期哥特式与早期文艺复兴法式风格融合的建筑形制,其主体为三层结构,顶部建有穹顶观测台,可用于天文观测与记录。外墙采用本地开采的灰色花岗岩,窗棂装饰繁复的火焰式镂刻,檐角蹲踞着石雕的麒麟与狮鹫,它们至今仍会在月圆之夜活动筋骨,只是因年久失修,关节处已长满藤壶。
建造者显然考虑过防水问题。古堡基础深入岩层达十二米,外层涂抹了三层防水魔浆,内衬铅板,墙壁中空灌注蜂蜡与树脂的混合物。这些措施在最初两百年间成效卓著,直至一场罕见的海底地震导致岩层位移,古堡底部出现裂缝,海水开始缓慢渗入。如今,古堡的下部三分之一已永久性地沉没于水面以下。
古堡的“入口”
因年久失修,过去的正厅与大门早已无法使用。现在,唯一能不使用魔法进入古堡的途径便是通过因墙体破碎而和古堡中层相连的岩洞。
岩洞纵深约四十米,起初狭窄逼仄,仅容一人侧身而过,两侧岩壁上生着发光的苔藓,散发幽蓝冷光。行至深处,洞窟豁然开朗,顶部穹窿高达二十余米,有天然孔洞贯通崖顶,正午时分会有柱状光束垂直射入。
洞窟中央是一汪深潭,潭水呈墨绿色,平静无波。这便是连接外部的地下水道入口,水道出口是位于Level AS-419的镜月湖。深潭边缘砌有石栏,栏柱上雕刻着翻开的书册图案,因水汽侵蚀已漫漶不清。
潭畔泊着一艘年代不明的小艇,艇身以魔法橡木制成,触手冰凉,永不腐朽。艇首悬挂一盏玻璃风灯,灯内无油无火,却终日散发暖黄光芒——这是米奥先生为数不多亲自维护的魔法物品之一,据他说,“总得给未来的管理员留条体面的路”。
岩洞北壁开一拱门,门楣上镌刻一行拉丁文:
“Sapientia sola libertas est”
其意为:智慧乃唯一自由
现今,门已不复存在,取而代之的是一道由数百本大小不一的书籍垒成的“书门”。这些书脊朝外,颜色从深棕到暗红不等,金粉烫印的书名在微光中闪烁。打开“书门”的方式颇为奇特:需用手指轻叩门框左侧第三块石砖,书们便会“嗡”的一声散开,在半空中盘旋片刻,待来者通过后,又自行飞回原处垒好,仿佛从未移动过。
古堡内部
下层:淹没之厅
此层原为门厅与会客前厅,如今三分之二浸泡在海水中,仅有靠近入口的一条石砌甬道尚存干燥。甬道高出水面约一米,宽仅容两人并行,左侧是湿漉漉的岩壁,右侧是齐胸深的碧色海水。
此层收藏主要为海洋魔法、潮汐预言、水元素召唤类典籍,其中最著名的是一套十二卷的《深海之书》,据说是由人鱼贤者用海藻纸写成,遇水才会显现文字。可惜这套书如今沉在最深处的水底书架底层,只有具备水元素中阶魔法才有能力取阅。
此层海水清澈异常,能见度可达十米。因魔力影响,此处的水体可以让人在水下自由呼吸。而水底的世界是一个诡异的沉没图书馆——原本摆放于此的“海洋文献专藏”书架仍矗立原地,只是下半截已没入水中。书架以耐腐蚀的柚木制成,雕饰波浪纹样,书册则被封装在透明的水晶匣内,隐约可见烫金的鲸皮封面。有淡青色的小鱼成群结队穿行于书架之间,偶尔会有体型稍大的石斑鱼懒洋洋地游过,鳞片上隐约可见银色的魔法符文闪烁——这是长期受魔力浸染的结果,据说吃下这种鱼的肉,能短暂获得水下呼吸的能力。
甬道尽头是一座螺旋楼梯的基座,楼梯上半截尚完好,下半截没入水中,台阶上覆盖着厚厚的海藻。若俯身细看,可见水下的台阶上盘踞着一只巨大的砗磲,壳口微张,露出内壁珍珠质的光泽。砗磲边缘探出几根触手状的软肉,末端生着疑似眼球的器官。这是某种因长期接触魔法而变异的贝类,其性情温和,但若有人试图盗取藏书,它会毫不犹豫地合上贝壳,将入侵者困在水底。
中层:漩涡回廊
沿下层螺旋楼梯上行二十三级台阶,便到达中层,此处亦是由岩洞进入首先到达之层。此处已完全脱离水面,干燥通风,但空气中弥漫着淡淡的咸腥味,混杂着旧书特有的霉香与纸张的气息。
中层是整个古堡的核心区域,呈环形结构,环绕中央天井而建。天井直径约十五米,底部即第一层的海水,抬头可见第三层的穹顶。奇特的是,天井中央的海水形成一个缓慢旋转的漩涡,直径约三米,永不停止。漩涡中心深不见底,隐约可见幽蓝光芒闪烁。这是古堡魔法阵的中枢,据说直接连通海洋地脉魔力,也是维持整座古堡结界运转的能量来源。
回廊宽约四米,两侧排列着高达五米的书架,书架顶部几乎触及拱形天花板。书架以黑檀木制成,虽历经三百年仍光洁如新,架柱雕刻着繁复的藤蔓纹样,藤蔓间隐藏着各种传说中的魔法生物——双足飞龙、狮鹫、独角兽、凤凰。这些雕刻并非纯粹的装饰,每逢子夜,它们会在书架表面缓缓游走,巡视藏书是否安好。
此层藏书浩如烟海,其按照魔法体系分门别类:
东侧回廊收藏基础元素魔法典籍:火系书籍的书脊呈红色,其触摸有温热感;水系为蓝色,其触感微凉;风系为青色,其轻轻翻动时有气流涌动;土系为褐色,其分量格外沉重。最珍贵的是一册《元素之心》,据说是初代大图书管理员手稿,用蕴含四种基础元素的墨水写成,阅读时需将手置于封面,书籍会根据读者体质自动调整四种基础元素相关魔法的阅读顺序。
西侧回廊专藏变形与咒法:此区书架上的书籍常有不安分的举动,会悄悄改变自己的位置。《变形术高阶指南》有时会变成一块砖头,《易容术精要》则喜欢把自己伪装成一面镜子。来访者经过此区走廊时,常常会有书籍从架上游下,悬停在半空打量来人。若觉得来人顺眼,便落回原处;若不顺眼,则可能突然翻开,蹦出一只纸折的青蛙或蝴蝶,骚扰一番。
南侧回廊是历史与理论区:收藏魔法史、各大魔法学派年鉴、历代大图书管理员日记。其中有一本《潮痕编年》,记载古堡每年的大事。其封面覆着一层薄薄的盐霜,书页边缘已有海水浸润的痕迹。其最新的一页停留在一百二十七年前,记录着“第七任大图书管理员阿方索出海未归”,此后便是空白。
北侧回廊收藏的是实用手册与工具书:炼金配方、魔法阵绘制指南、魔杖制作工艺、魔法药草图鑑。此处的书籍最为驯服,但也最为危险:若是不小心翻开一本错误的炼金配方,可能会引发小型爆炸。此区书架之间散落着许多工作台,工作台上则散落着各种实验器具:烧杯、坩埚、天平、研磨器,有些还残留着不知名的粉末,想必是当年学者们在此处一边查阅资料一边实验留下的痕迹。
回廊中悬浮的书籍随处可见,少则三五本,多则数十本,悠悠飘荡,宛如水中游鱼。若有生人走近,它们会礼貌地向两侧让开,偶尔有胆大的会凑到跟前,翻开书页展示自己的目录,仿佛在推销自己。这些是“主动寻求读者的书”,通常是在书架上待得太久,渴望被翻阅的寂寞灵魂。
夹层:助理司书的书房
回廊东侧有一扇不起眼的小门,门扉由一整块橡木雕成,没有任何标记。推门而入,是一间面积不大但异常舒适的书房,这便是古堡现任(暂代)管理者兼助理司书:米奥先生现今的居所。
房间约二十平方米,铺着深红色羊毛地毯,地毯花纹已部分磨损,但清洗得很干净。靠墙是一张胡桃木书桌,桌面上整齐堆放着一尺高的书册,最上面一本摊开着,压着一根羽毛笔。笔尖的墨水早已干涸,但米奥先生坚持认为它们“随时可能用到”。书桌旁立着一架黄铜地球仪,但其球面刻的不是陆地海洋,而是魔法元素的分布图——火元素聚集的火山口标注红色,水元素的深海标注蓝色,以此类推。
窗边摆放一把扶手椅,椅面蒙着墨绿色天鹅绒,因使用多年已磨得发亮。扶手椅上搭着一块羊毛毯,是米奥先生打盹时的必备用品。窗台很宽,上面摆着几盆多肉植物——它们是米奥先生少数成功养活的生命,据说浇灌的水必须用月光下收集的露水,否则它们会枯萎。
书架占据了整面北墙,但架上的书并非古籍,而是各种笔记、目录、索引。米奥先生用自己的爪迹在书脊上标注编号,但其字体工整得不像猫爪能写出。其中最厚的一册名为《潮痕藏书总目·附破损情况与修缮建议》,已经写满了两千页,据说还在持续增补中。
房间一角摆着一面落地镜,镜框镀金,雕刻着缠绕的藤蔓。镜子本身并无特殊魔法,但米奥先生每天早晨会在镜前整理他的学者服——黑色呢绒面料,领口镶着银色丝线绣成的槲寄生花纹,袖口磨损处仔细地缝补过。金丝单边眼镜永远架在左眼前,用一条细银链挂在领口。他整理完毕后,会对着镜中的自己说:“很好,米奥先生,今天也要为寻找新任图书管理员而努力。”
上层:穹顶之下与天文观测台
第三层是古堡的顶层,格局与前两层不同,由中央大厅和环绕的八个侧室组成。中央大厅呈八边形,每边长约六米,顶部为穹隆结构,高达十五米。穹隆以肋拱支撑,肋拱交汇处则悬挂着一盏巨大的青铜枝形吊灯,吊灯上点燃着永不熄灭的魔法火焰,火焰呈淡蓝色,无声无息,却将整个大厅照得亮如白昼。
大厅八面墙壁各开一扇巨大的玻璃窗,窗高八米,宽三米,窗棂是精雕细刻的铅条,拼出繁复的几何图案。透过玻璃窗,可以看到外面的海底世界——因为古堡第三层已完全没入海平面以下,这些窗户便成了水族箱般的观景窗。
窗外的景象美得不似真实。海水呈深邃的蓝绿色,阳光透过百余米的海水折射下来,形成摇曳的光斑。各种鱼类悠然游过:银色的鲱鱼群如流动的云朵,偶尔会有暗红色的真鲷从窗前掠过,拖着长长的背鳍。更为奇特的是受魔法影响的鱼类:一只海龟的背甲上生着对称的魔法阵纹样,发着微光;一群水母的触手拖曳着彩虹色的光带,游过时留下短暂的光痕;偶尔会有体长超过两米的巨型鳐鱼贴着玻璃游过,腹部生着无数闪烁的光点,仿佛夜空倒转,繁星洒落。
观景窗也是阅读的最佳位置。曾经的大图书管理员们在此处设置了软垫长椅和阅读架,学者可以一边研读书籍,一边观赏海底奇景。据说第七任大图书管理员阿方索尤其喜欢在此处研读潮汐魔法,曾创下连续观察窗外潮汐变化三十六小时的纪录。
大厅周围的八个侧室分别收藏着不同门类的高阶魔法典籍:星辰魔法、时空理论、元素本源、生命奥秘、精神领域、预言学派、禁制与封印、上古语言。每个侧室的门都是一扇“书门”,触发机关的方式各不相同——有的需要说出正确口令,有的需要画出指定符文,有的甚至需要答对一道魔法谜题。
其中最东侧的侧室有一道螺旋楼梯,通向穹顶之上的天文观测台。观测台是一个直径五米的圆形平台,周围环绕着齐胸高的石栏,顶部是铜皮穹顶,可以三百六十度旋转打开。平台上架设着一台巨大的黄铜望远镜,镜筒长达四米,表面刻满精细的星图与刻度,至今仍能正常使用。
站在观测台上,头顶是浩瀚星空,脚下是茫茫大海——因为观测台高出海平面约三米,可以将整个海洋尽收眼底。晴朗的夜晚,可以看到海面上倒映的星光与月光,偶尔会有发光的鱼群游过,在海面上留下一道道光带。据说在特定的夜晚,透过望远镜可以看到其他位面的景象——有记录显示,某任大图书管理员曾看到过Level 906和一座不知处于哪个世界的,如同高塔的图书馆。
禁书区:灵魂回廊
其入口位于第三层北侧的一个不起眼的壁龛内,壁龛里摆放着一尊真人大小的石像,是一位身着学者袍的老者,手持翻开的书册。这位便是初代大图书管理员艾德蒙·德·维里恩。石像的眼睛是两块黑色的曜石,据说它们会注视每一位来访者,判断其是否值得进入禁书区。
该区没有任何物理通道可以抵达,触发入口的方式也颇为玄妙——需要将手置于石像手中的书册上,用自己的魔力激活隐藏的传送阵。传送阵会将来访者直接传送到禁书区的核心。
其被称为“灵魂回廊”,是一条狭长的走廊,两侧墙壁上每隔三米便有一扇拱门,门后是独立的密室,每间密室收藏一本或一套禁忌之书。走廊本身长约五十米,宽仅两米,地面铺着黑色大理石,光滑如镜,倒映着走廊顶部的星光——这里的穹顶是透明的魔法屏障,可以直接看到外面的海水和游鱼,但鱼群似乎有意避开此处,从不游过屏障上方。
走廊中的光线来自漂浮在半空的幽蓝光球,光球约拳头大小,共有十余个,无声地在空中缓缓漂移。据说这些光球是历任大图书管理员留下的守护意识,会在有人试图滥用禁书时出手制止。
禁书区的核心收藏,那本传说中的禁忌之书,在走廊尽头的密室中。密室门扉由一整块黑曜石雕成,门上没有任何纹饰,只有一只手掌形状的凹陷。需要将手按入凹陷,以血为引,方能开启。
密室内极为简朴,仅有一张石制书桌,一把石椅,书桌上摆放着一个水晶匣子,匣中便是那本禁忌之书。书封面为深黑色,不知用什么材料制成,触感冰凉,隐隐有暗红色的纹路在表面流动,仿佛血管。书名以古代魔文烫金书写,意为“灵魂分割之书”,或更常见的译名——“原初裂痕”。
翻阅此书时,会有低语声在脑海中响起,仿佛无数人在同时说话,劝诱读者使用其中的咒语。据记载,此书共分七章,每章记载一道禁忌咒语,威力依次递增,但代价也依次加重。第一章咒语会使施法者暂时失去部分记忆,第二章会永久削減魔力上限,第三章会导致情感麻木,第四章会造成人格分裂,第五章会剥离部分灵魂,第六章会彻底分裂灵魂,第七章——从未有人读到过第七章,因为读到第六章的人已经无法被称为“人”了。
书桌旁的墙壁上有一行刻痕,显然是某任大图书管理员在最后时刻留下的:
“我越是想忘记,记得越清楚。
我越是抗拒,陷得越深。
若你读到这些字,请记住——
有些门一旦打开,就再也关不上了。”
刻痕的笔迹逐渐变得狂乱,最后几个字几乎难以辨认,仿佛书写者已经控制不住自己的手。
实体
米奥先生
米奥先生是潮痕古堡目前唯一的常住居民,也是来访者最可能遇到的“人”。
他是一只体型适中的黑猫,皮毛乌黑发亮,四爪雪白,如同穿着白色短靴。眼睛一绿一蓝——左眼绿如深海,右眼蓝若晴空。他常年穿着一件剪裁考究的黑色呢绒学者服,领口镶着银色丝线绣成的槲寄生花纹,袖口磨损处仔细地缝补过。金丝单边眼镜永远架在左眼前,用一条细银链挂在领口,偶尔需要仔细看东西时会用前爪扶一下眼镜,动作格外优雅。
他称自己为“助理司书”,并坚信自己肩负着寻找下一任大图书管理员的使命。
每天清晨,他会在书房整理藏书目录,标记需要修缮的破损书籍;午后,他会在古堡各处巡视,检查魔法结界是否稳定,书门是否正常工作;傍晚,他会到入口处的深潭边,望着水面出神,似乎期待着什么;入夜后,他偶尔会到天文观测台,仰望星空,用只有自己能听清的声音喃喃自语:“也许明天就会来……也许就在明天……”
他对古堡的一切了如指掌,哪本书放在哪个书架,哪个书架需要什么咒语才能开启,哪本书有破损需要修复,哪本书最近有苏醒的迹象想寻找读者——这些都像是刻在他骨子里的本能。若有来访者询问某个冷僻的魔法问题,他会闭上双眼思索片刻,然后准确地说出答案在哪本书的第几页,甚至能指出那本书目前所在的精确位置。
但他无法回答关于自己过去的问题。
“我是怎么来到这里的?”
“记不太清了,似乎一直就在这里。”
“你认识前任大图书管理员吗?”
“当然认识,记录中有他的名字和画像,但……我们没见过面?也许见过,但记不清了。毕竟我只是助理司书,可能接触得少。”
“你为什么对古堡这么熟悉?”
“助理司书当然要熟悉自己的工作场所。这是我的职责。”
他的记忆像一张被水浸泡过的羊皮纸,大部分字迹已模糊不清,只剩下与工作相关的部分清晰可辨。他只记得,醒来时发现自己变成了猫,穿着这身衣服,戴着这副眼镜,古堡已经变成现在的样子。他似乎本该悲伤,但不知道为什么悲伤;他似乎失去了什么,但不知道失去了什么。于是他便接受了现状,接受了“助理司书”这个身份,接受了寻找新任管理员的使命。
有时,在深夜巡视时,他会不由自主地停在那尊初代大图书管理员的石像前,久久凝视那双曜石眼睛。他会轻声问:“您认识我吗?”石像自然不会回答,他便摇摇头,继续往前走,学者服的下摆在石板上拖出轻微的沙沙声。
他偶尔也会去灵魂回廊的入口处站一会儿,望着那尊石像,却从未尝试进入。仿佛身体的某个部分在阻止他。
“分裂的灵魂永远无法完整,但或许不完整,也是一种完整。”——这是某天他自言自语时说过的话,说过之后他自己也愣了愣,不知道这句话从何而来。
基地、前哨和社区
考虑到本层藏书丰富且特殊,M.E.G.决定不在此设立任何基地和前哨站,仍由米奥先生管理本层。
入口和出口
入口:
在Level 906用寻踪魔法找到隐藏的一条书籍全数漂浮于走廊空中的走廊,穿过走廊尽头的一扇雕刻精美的白色大理石门扉,将会来到古堡中层。
潜入Level AS-419的镜月湖湖底,破解此地的谜题,被魔法伪装过的水道入口将会出现。通过水道,你将来到本层的岩洞。
出口:
通过水道,你可返回至Level AS-419。
若你有一只小船,你可翻越观测台栏杆,下到海中,通过划船离开此层。你将可能来到Level 48、Level 303、Level C-33、Level AS-232中任意一层的海域或岸边。
“或者,你可以选择接受大图书管理员试炼,成为新的图书管理员。若是通过试炼,这座古堡是所有知识与奇迹都将归你所有。”