: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 }
/* Ethereality Theme [2023 Wikidot Theme] By Eltrac */ :root { /* 基本信息 */ --header-title: "Gardenrooms"; --header-subtitle: "卧于自然怀抱中的宁静与平和"; --logo-img: url(''); /* 设置狐步舞/sigma-9 */ --accent: 108, 125, 70; --header-txt-color: rgb(var(--accent)); --link-txt-color: rgb(var(--accent)); --page-font-size: 0.832rem; /* 排版工具组 */ --lh-white-bg: 245,245,245; --lh-dark-bg: var(--accent); --lh-highlighter: var(--accent); --lh-border-color: var(--accent); --lh-wiki-note-color: var(--accent); /* 适配部分黑标属性 */ --white-monochrome: 250,250,250; --dark-gray-monochrome: var(--accent); --black-monochrome: 60,60,60; /* 飘渺愿景自定义属性 */ --header-bg-img: url('http://koalarooms.wdfiles.com/local--files/theme%3Aethereality/369hallway_%E5%89%AF%E6%9C%AC.jpg'); --header-height: 320px; --body-bg-color: var(--white-monochrome); } @media screen and (min-width: 768px) { :root { --page-font-size: 1rem; } } /* 修改版头 */ body { background-image: none; background-color: rgb(var(--body-bg-color)) } div#header { height: var(--header-height); } #extra-div-6 { /* 版头图片 */ position: absolute; top: 0; left: 0; right: 0; background-image: var(--header-bg-img); background-repeat: no-repeat; background-size: cover; background-position: center; z-index: -1; height: calc(var(--header-height)/10*9) } #extra-div-6::after { content: ''; position: absolute; bottom: 0; left: 0; right: 0; height: 100%; background-image: linear-gradient(to bottom, transparent 20%, rgb(var(--body-bg-color))) } /* 版头文字 */ #header h2, #header h2::before { text-shadow: 0.05em 0.05em 0.01em #666; color: #eee } #header h1 a, #header h1 a::before { text-shadow: 0.05em 0.05em 0.01em rgba(var(--accent), 0.25) } #header h1 { padding-top: calc(var(--header-height)/9); padding-bottom: 1rem } /* 顶栏 */ #header #top-bar { position: absolute; top: height: calc(var(--header-height)/10*9); height: height: calc(var(--header-height)/10); display: block; left: 0 } @media not all and (max-width: 767px) { #header #top-bar { max-width: 708px } } #header #top-bar .top-bar > ul, #header #top-bar .mobile-top-bar > ul { width: 100%; display: flex; justify-content: space-between } @media screen and (max-width: 767px) { #header #top-bar .top-bar > ul, #header #top-bar .mobile-top-bar > ul { justify-content: center } } #header #top-bar ul { background: none; border-radius: 0 } #header #top-bar a { color: rgb(var(--accent)); background: transparent; font-size: 120% } #header #top-bar a:not(ul li ul li a) { padding-bottom: 1rem } #header #top-bar ul li ul { box-shadow: none; border: 1px solid #ddd; background-color: rgba(245,245,245,0.75); backdrop-filter: blur(5px); -webkit-backdrop-filter: blur(5px); } #header #top-bar ul li ul li a { line-height: 200%; transition: background 0.3s } #header #top-bar ul li ul li a:hover { color: #eee !important; line-height: 200%; text-indent: 0; background-color: rgba(var(--accent), 0.75) } #top-bar ul li.sfhover a, #top-bar ul li:hover a, #top-bar ul li a, #top-bar ul li { border: none } #header #top-bar .open-menu a { font-size: 30px!important; padding: 0.25rem; border-radius: 100%; background: rgba(var(--accent), 0.65); box-shadow: 0 0 0.1rem rgba(0,0,0,0.2); color: #eee } #header #top-bar .open-menu a:hover { box-shadow: none } #header #top-bar .mobile-top-bar { position: static; display: flex!important; justify-content: center } /* 分割线 */ #page-content hr { border-bottom: 3px dashed rgb(var(--accent)); margin: 1em 0; background: none; border-radius: 5px; height: 0 } /* 图片框 */ .scp-image-block .scp-image-caption, .scp-image-block img { margin: 0; border: none; background-color: transparent } .scp-image-block { border: 2px solid #c6c6c6; } .scp-image-block.block-right { margin-right: 0 } /* 页面标题 */ #page-title { border: none; position: relative; font-size: 220% } #page-title::after { content: ''; position: absolute; bottom: -0.5rem; left: calc(50% - 4rem); height: 5px; width: 8rem; background-color: rgba(var(--accent), 0.8); } /* DIV 元素 */ .jotting { padding: 0 1em; margin: 1em 2em } #page-content .colored-div { border-color: rgb(var(--accent)); background-color: rgba(var(--accent), 0.3) } .lightblock, .darkblock, .styled-quote, .dark-styled-quote, .candyblock, .borderblock { padding: 0 1em; margin: 0.5em 0.1em; border-radius: 5px; border: 1px solid transparent } .lightblock, .styled-quote { background-color: rgba(var(--accent), 0.1) } .darkblock, .dark-styled-quote { background-color: rgba(var(--accent), 0.75); color: #eee } .styled-quote, .dark-styled-quote { border-left: .5rem solid rgb(var(--accent)) } .candyblock { background: linear-gradient(45deg,rgba(var(--accent), 0.1) 25%,rgba(var(--accent), 0.3) 0,rgba(var(--accent), 0.3) 50%, rgba(var(--accent), 0.1) 0,rgba(var(--accent), 0.1) 75%,rgba(var(--accent), 0.3) 0); background-size: 2em 2em; } .borderblock { border: 1px solid #c6c6c6 } /* 排版工具组 */ div.wiki-note::before { color: #eee } .reportblock h1:first-child, .reportblock-dark h1:first-child { top: -1rem; left: 0 } .reportblock, .reportblock-dark { padding: 0.4rem 1.5rem; padding-top: 0 } .bettercollap .collapsible-block { border-radius: 3px } #page-content .bettercollap .collapsible-block-link:hover, #page-content .bettercollap .collapsible-block-link:hover a, #page-content .bettercollap .collapsible-block-link a:hover, #page-content .bettercollap .collapsible-block-link:hover a:hover { color: #eee; text-decoration: none } /* 插入图片 */ .styled-img img { display: block; margin: 0.5rem auto; max-width: 75%; border-radius: 5px } /* 页内标题(Headings) */ #page-content h1 { position: relative; width: fit-content } #page-content h1:not(.reportblock h1)::before { content: ''; position: absolute; bottom: 0; left: 0; right: 0; height: 0.5em; width: 100%; background-color: rgba(var(--accent), 0.5) } /* 其他页面元素 */ a.newpage { color: rgb(229,194,38) } a.newpage:hover{ background-color: rgb(229,194,38) } /* 页面选项 */ #page-options-bottom { border-top: solid 1px rgba(213, 213, 213, 0.5); margin-top: 0; } #page-options-bottom a { margin-top: 0 } /* 页脚 */ #license-area { background-image: linear-gradient(to bottom, rgb(var(--body-bg-color)), rgb(236, 238, 232)); border-top: 0; margin-top: -1rem; padding: 1rem 0 } /* 脚注 */ .hovertip { background: rgba(236,238,232, 0.75)!important; backdrop-filter: blur(5px); -webkit-backdrop-filter: blur(5px); min-width: 8rem } .hovertip .footnote .f-footer { display: none } .hovertip .footnote .f-heading { font-size: 80% } .hovertip .footnote .f-content { font-size: 110% } div.footnotes-footer { border-top: 1px solid #c6c6c6; border-bottom: 1px solid #c6c6c6; padding: 0.5rem 1rem; padding-bottom: 1rem; margin: 1rem 0 } /* 侧边栏 */ #side-bar { background: rgba(236,238,232, 0.9) } #side-bar:target { box-shadow: 0 0 4rem rgba(0,0,0,0.15) } #side-bar .side-block { border: none; background: transparent } @media screen and (max-width: 767px) { #side-bar:target .close-menu { background: unset; } } /* 分页 */ .yui-navset .yui-nav, .yui-navset .yui-navset-top .yui-nav, .yui-navset .yui-content, .yui-navset .yui-navset-top .yui-content { border-color: rgb(var(--accent)); } .yui-navset .yui-nav a, .yui-navset .yui-navset-top .yui-nav a { color: rgb(var(--accent)); } .yui-navset .yui-nav a:hover, .yui-navset .yui-nav a:focus, .yui-navset .yui-nav .selected, .yui-navset .yui-navset-top .yui-nav .selected, .yui-navset .yui-nav .selected a:focus, .yui-navset .yui-nav .selected a:active { background-color: rgb(var(--accent)); } /* 生存难度组件 */ #page-content .sd-container { --sd-border: 80,80,80; --sd-bullets: 80,80,80; --sd-image: 80,80,80; --sd-symbol: 60,60,60; --sd-text: 240,240,240 } /* PLS */ #page-content .pls { --dark-gray-monochrome: var(--accent); --pale-gray-monochrome: 246,246,246; font-size: 0.85rem } #page-content .pls-title, #page-content .pls-list { margin: 0!important } #page-content .pls-title { font-size: 1.5rem } #page-content .pls-list { font-size: 1.1rem } /* COCS / CECS */ .wrapper { --cocs-dark: var(--accent); --cocs-light: 240,240,240; --cecs-dark: var(--accent); --cecs-light: 240,240,240; } /* IETS */ .box { margin: 0; border: none; padding: 0 0.5rem; } /* 评分模块 */ #main-content div.page-rate-widget-box, #page-content .rate-box-with-credit-button { border: none; box-shadow: none; background: transparent; padding: 0 } #main-content span.rate-points, #main-content span.btn { background: transparent!important; } #main-content .creditButtonStandalone p a { background-color: rgb(var(--accent)); font-size: 1rem; padding: 0.25rem; } /* 其他 */ #account-topbutton { border: none } #login-status { background: rgba(var(--body-bg-color),.4); padding: 0.35rem 0.5rem; border-radius: 2px; } #search-top-box-form { margin-top: 0.25rem; }
: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 }
零
Level 11,圣路易斯λ城区,虽然城内一直是明亮的白昼,让圣诞树上红绿色的彩灯失去了用武之地,但源自前厅的古旧的圣诞歌的旋律依然准时响起,在城中悠然回荡,往常静如死水的前厅人聚集区也泛起一层议论的涟漪。
“是谁啊?”
“不认识,听说是个M.E.G.的高管,也是前厅人。”
“哦,是这样啊,顺其自然,还是在这么个好时间好地方,真不错啊。”
“哈,真是这样,我过两年退休了可也希望这样啊!”
“过两年?还不知道退休时间得延后多少呢。后室的小子们管事了就知道蛮干。”
“唉……管他呢,过一天算一天吧,我们这些老家伙也是该下场啦,希望以后的事能办好吧。”
……
安德鲁小心地绕过人群,在圣诞歌欢快的韵律中一声不发地向前走去,与周围圣诞的景象有些违和的是,他口袋里装着一支盛放的向日葵。
壹
无垠城那永不改变的明媚日光透过廊道的窗户泼洒在疲惫不堪的安德鲁身上,悠扬的小提琴声透过门户飘散到走廊内,然而此时的他实在无心也无力欣赏。
“圣路易斯θ城区A17栋904,呼……”
安德鲁披着一件邋遢破损的制服站在门前,头晕眼花,模样之难堪简直像个前来乞讨的流浪汉。作为一名毫无实践经验的新人,他被分配到了“邮政递送”部门来送些包裹。然而这就把他折腾得不轻,作为新一代后室人,青年的安德鲁还并未锻炼出强健的体魄,他现在的身体素质实在很难适应这种高强度的摧残。不过至少他还没有成为那些可怖的怪物嘴下的美味,这已经很值得庆幸了。
安德鲁抬手敲了敲面前的木门,等了一会,琴声并未停下,刚欲再敲,随“吱呀”一声,门被推开了。应门的是一位头发花白但身姿挺拔的老人,他长着副严肃的面孔,脸上饱含着岁月刻下的皱纹,一双蔚蓝的眼睛射出犀利的目光,打量得安德鲁有些不大自在。
“您好,是弗莱尔·里德先生吗?这里有您的邮件。”
“弗莱尔·里德?”老人瞟了一眼安德鲁的臂章,“他已经死了……我说,灵协会的人昨天都来过一趟了,这什么邮件今天才送到?”
“啊……”安德鲁思索着一个合适的答案,他并不想在这片前厅人的居住地说出自己像其他后室人一样尽量逃避着递送前厅人邮件的事实。
安德鲁并没有见过自己的父母,从小他便由M.E.G.δ孤儿院的一位叫做蕾拉的护工养大,她是个前厅人,安德鲁把她当做自己的母亲。然而随着“厅室断联”现象的加深,已近乎无人传承的前厅文化后室人那追求与速度与激情的激进理念冲击得体无完肤,后室与前厅的人们开始互相排斥,各种明争暗斗愈演愈烈。在这样的背景下下,δ孤儿院成为了牺牲品之一,安德鲁和蕾拉都因孤儿院的解散而离开,安德鲁直接开始了工作,蕾拉则不知所踪。为了免遭排挤,安德鲁在工作中都不得已与前厅人保持着相当的距离。
老人歪了歪头,把门推开些,做了个“请进”的手势。
安德鲁本不想在他人家中做客,然而浑身的酸痛与不适还是推着他疲劳的身体踏进门内。客厅里的陈设很简单,只是一副真皮沙发,一张纯黑色的茶几,一个精巧的八音盒——琴声正是从这个小物件传出。这种简约设计在安德鲁看来有种前厅的复古风格,老人端来两杯热咖啡,扶着他在沙发上坐下。
“你叫什么名字?”
“安德鲁,安德鲁·伯恩。”
“哦,安德鲁啊,不错,不错。”
老人似乎想起了什么,走去捡起了那个包裹,扫了几眼后将它放到了茶几上,一丝复杂的光彩在眼中闪动,让安德鲁难以看透。
“里德先生是M.E.G.中的一位首席研究员,由他接手的研究不计其数,而且绝大部分都得到了丰硕的成果。”安德鲁仔细在自己的脑子里扒出和里德有关的信息,他想模仿出那种礼貌的前厅说辞,然而话到了嘴边却又找不到合适的词汇,“前厅人常说什么……生死有命……后面忘了,抱歉。在后室这种地方更是这样,您别太伤心了。”
老人摇了摇头,目光中闪动着些亮色。
“里德原先可不是研究员,他是个出色的暗行者,他是M.E.G.最早的那批成员——和第一代的三位监督者一同进入后室的那批。他也是‘罗经点’小队最初的队长,后来……”
“后来呢?”
“掩护撤离时被迷彩爬行者扯下来一条腿,自那以后他就不去前线了。他后半辈子就扎在了测验者的研究里。在这个领域内里德也像在罗经点里探索时一样屡建奇功。不得不承认,他有在后室中生存所需要有的全部天赋,可惜他不想把自己的下一代带到后室这个鬼地方,所以一直孑然一身……哈,你说的对,在这自然死亡也算是福分了,和他同代的很多人还没这个好运气呢。”
“怎么?三位监督者?”
“你不知道?也是……”
“第一代B——Kat,在26年就死了,第一代的C,和你一样叫做Andrew,41岁时在Level 9被守望者照成了灰。至于第一代A,确诊思乡症主动辞职隐居了,没人知道他现在在哪。”
“啊,这可真……”
嗡嗡的振动声响起,安德鲁掏出随身携带的终端机,“2080/12/23 13:47……”一条提示信息在屏幕上闪动,他这才想起自己的时限。
“抱歉先生,我得走了,这件东西就交给您吧。”安德鲁急匆匆地站起身来就要向门外走去,差点在光滑的木地板上摔了一跤。
“小心点孩子。”老人眼疾手快地搀扶住了他,将包裹递了回去,“这我可不能收,无亲属死者的邮件,现在总署的规定是如无特殊情况要把它收回或是埋藏。里德的墓碑就在附近的公墓里。”
“谢谢先生。”安德鲁点了点头,旋即冲向门口,一着急竟忘了这么简单的事,他不禁感到有些懊恼。
“先等等。”老人走进了卧室,手中提着一件干净整洁的M.E.G.制服走了出来,将它披在了安德鲁的肩上。安德鲁愣了一下,随后连忙道谢。
“唔,人还不错啊。”
贰
静谧的空气中传出几声微弱的虫鸣,青翠的绿草覆盖满了整片土地,柔软的常春藤攀爬上端正坚硬的墓碑,与之缠绵,乃至融合在一起。目力所及,几团鹅黄的,淡紫的花丛点缀着生命的碧绿,为这里更添一抹鲜艳,阳光散作碎金落在数座石碑上,让它们看起来更添几分庄严。在高楼林立,钢铁森林般的Level 11中,像巴尔菲茨神父公墓这样生机盎然的安宁景致实属罕见。
安德鲁看向那件包裹里的几样东西——一张卷曲泛黄的明信片和几张堪称古董的胶卷相片。他小心翼翼地将这些薄薄的,已脆弱如蝉翼的纸片插在方碑上的藤蔓间,动作虽轻柔,但也惊起了几只趴在枝叶上的小飞虫。说来奇怪,这几样东西看来年头已久,明信片上钢笔的墨迹已不大清晰,只能勉强阅读出寥寥数语,落款处也仅能分辨出一个单词“Justin”,相片同样模糊一片,刚刚能看出两个人影的轮廓。
“如果你看到这封信,说明你安然地度过了许多年,并没有在这个鬼地方死掉。当然,也意味着你没有在逃出这个地方。”
“我们当时的想法实现了吗?我们还坚持着我们的初心吗?我希望如此,更相信如此。”
“这么多年,或许写这封信时的现在和看到这封信时的境况已经完全不同了,或许看到这封信的根本不是里德本人,但既然你能够读懂,就意味着人类文明至少还存在着。”
“请相信,人类会延续下去,我们会‘热烈’地活下去。”
安德鲁有些不明所以,“邮政速递”部门的确有延时发送的服务,为何这封邮件现在才被送出,而收信人又刚好离世?
刚站起身,一只宽厚的大手拍了拍他的肩膀。扭头看去,老人手捧着一束鲜花肃穆地站在他面前。
“孩子,帮我一起把这些花插一插好吗?我恐怕没法弯腰太久。”老人将几枝花递给安德鲁,又用手指向几座墓碑。
“这几支黄玫瑰插在杰斯的那块碑边,这株郁金香放在那块墓,那是梅根的。还有最后这几支绣球花就插在里德这里。剩下的我自己来吧。”
安德鲁扒开墓碑前的一小块泥土,将花枝插了进去,又将土原样盖好,在繁茂效应的催化下,它们迅速开始葳蕤生长——安德鲁甚至听到了一些细微的声响,或许是花朵开放的声音。
老人插完手中的花朵,留了一株向日葵捧在心脏处,他有些迟缓地坐下,轻轻地将后背放了下去,平躺在了墓碑的一边,合上双眼享受着温和的阳光。
“来躺会吧孩子——如果你愿意的话。这里的小东西们不会咬人,我先前和里德来这里吊唁时都会躺上一会再走。”
安德鲁一屁股坐在土地上,感受到土壤的柔软后也顺势躺了下去,样子并不很雅观。一阵微风拂过安德鲁的脸颊,他嗅到了泥土的芬芳和刚栽下的花朵的一缕清新香气——这种奇妙的舒适感是他在后室里十余年都未曾认真感受的——不,他感受过,那是在孤儿院里的一次经历,在母亲的怀抱下晒着太阳的那种感觉。那次,她将安德鲁抱在怀里,轻声哼唱着一段安德鲁并不知晓的前厅的旋律,安德鲁嗅到了她身上的香水味,在歌谣中缓缓睡去。
“我一直都喜欢向日葵,它寓意着追逐阳光,追逐梦想,它象征着坚定的信念与希望的光辉。我当然希望今后后室的人也能像它一样热烈地生活。但哪怕在后室,人生也绝不像现在那些人说的一样局限于那些灿烂的理想。”
“向宏伟的目标奔跑的闲时也应当停下脚步,像现在这样感受属于自己平淡的快乐。这才是生活,才是活着,才是真正‘热烈地活着’。”
老人的声音显露出了疲惫,渐渐低沉下去,变的像是自言自语。
“无论是你,我、里德、前厅的流浪者,后室的本土人。我们都是凡人,亦都会经历凡人的欢欣磨难,生老病死。但平凡的生活同样炽热,平凡的灵魂同样不朽。人类文明便是如此,是由一个个平凡的微小火苗连成的燎原烈火。”
老人随手将向日葵插在了一旁的土壤里,转过脸对安德鲁莞尔一笑:“好了,要知道,往后人类是否能活得热烈,就得看你们这些孩子了。”
“在前厅的习俗里今天是圣诞节,马上就要放圣诞歌了,祝你圣诞快乐。”
“谢谢,先生。”
虽然安德鲁还并没有理解老人文绉绉的话。
老人还在念叨着什么,但声音越发微弱,几乎成了模糊不清的梦呓。早已升腾起来的困意淹没了安德鲁,他已听不清老人的呢喃。
叁
无尽的向日葵的原野平铺在眼前,它们朝向天空上的太阳转动着花盘,在微风中轻轻摇动,一眼望去仿佛是一片灿金的海洋随风掀起层层漩涡与波浪。安德鲁踩在平坦柔软的田野上,想掏出口袋中的终端机查询层级的信息,却发现它已经不知所踪,他蹲下身去仔细搜寻,仍没有找到,他用手掘开土壤,但却莫名发现了明信片与那叠相片,相片上是老先生与里德先生的人像,侧边标注着“Justin”与“Reed”。
霎时,成千上万的明信片与相片在空中相继飘落而下,一阵旋风卷起,吹得它们宛如一只只白鸽于空中盘飞,安德鲁惊恐地发现,自己已然被旋风抛到了空中,他拼命挥舞着四肢想要回到地面却又无能为力,很快就被卷入了卡片堆里。他看到了一尊向日葵状的石碑安稳地漂浮在旋风中心。“咔啪”一声,石碑碎裂,一团火焰随之升腾,将环绕着的卡片瞬间点燃,在炽热的烈火中,安德鲁摔向了地面。恍惚间,他好像又看到了母亲的怀抱,那首不知名的旋律又一次在耳边响起。
……
安德鲁猛然睁开了眼,喘着粗气从草地上惊慌地坐起身来。他心有余悸地站起身来,拍拍屁股上的泥土,内心的惶恐渐渐平静下来。
“先生,请问您的名字是?”
没有回应。
安德鲁小心地挪上前去,俯下身子轻轻拍了拍老人。
“先生?”
仍然无人回应,安德鲁咽了咽口水。
“先生?您还好吗?”
安德鲁颤抖地将手伸向老人的颈侧——
没有脉搏。
安德鲁刚放下不久的心又被提至高空,他惊惧地站起身,后退几步,取出随身携带的终端机准备呼叫救助,却又被身后的一块纪念碑绊倒,人仰马翻地摔在了地上。他手忙脚乱地拾起终端准备输入号码,手指却又悬在了半空。
他来时绝对没有这块碑,甚至就在他睡下之前都还没有。
他绕到了碑的正面,老人随手种下的那株向日葵的茎干已经融入碑中,几团花朵却依然在石碑上粲然绽放,他伸手撷下几朵,才看清了碑文的内容。
“Justin Zimals”
“1996/5/4 - 2080/12/25”
“曾于M.E.G.任监督者-A一职……”
他这才注意到那阵熟悉而灵动的旋律也和他一起从梦中来到了现实,透过厚厚的植物的阻隔钻入了他的耳朵。
哦,这就是母亲曾经哼唱的旋律,是来自前厅的“圣诞歌”。
无垠城恒久不变的阳光透过层层枝桠又一次洒在了安德鲁身上,洒在安详睡去的昔日的监督者A身上,洒在散发着蓬勃生机的向日葵上。
“圣诞快乐,监督者A先生。”安德鲁轻声说。