@import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;700;900&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Bitter&display=swap');
/* 全局 */
:root {
--theme-base: "black-highlighter";
--theme-id: "blank";
--theme-name: "Blank Theme";
--logo-image: none;
--header-title: "The Backrooms";
--header-subtitle: "你曾经来过这里";
--bb-black: 65, 65, 65;
--bb-white: 253, 253, 253;
--bb-accent-color: 63, 66, 50;
--bb-accent-background: 215, 219, 204;
--body-font: Inter, Noto Sans SC, Noto Sans TC, Arimo, Verdana, Geneva, sans-serif;
--header-font: var(--body-font);
--title-font: var(--body-font);
--mono-font: Bitter, Noto Serif SC, Noto Serif TC, Consolas, monaco, monospace;
--temp-font-1: Inter, Noto Sans SC, Noto Sans TC, Arimo, Verdana, Geneva, sans-serif;
--temp-font-2: Bitter, Noto Serif SC, Noto Serif TC, Consolas, monaco, monospace;
--white-monochrome: var(--bb-white);
--pale-gray-monochrome: var(--bb-white);
--light-gray-monochrome: var(--bb-white);
--gray-monochrome: var(--bb-white);
--black-monochrome: var(--bb-black);
--bright-accent: var(--bb-black);
--medium-accent: var(--bb-white);
--dark-accent: var(--bb-black);
--pale-accent: var(--bb-black);
--swatch-topmenu-border-color: var(--bb-white);
--swatch-menubg-dark-color: var(--bb-black);
--rating-module-button-plus-color: var(--bb-black);
--rating-module-button-negative-color: var(--bb-black);
--rating-module-button-cancel-color: var(--bb-black);
--rating-module-button-credit-color: var(--bb-black);
--link-color: var(--bb-black);
--hover-link-color: var(--bb-black);
--visited-link-color: var(--bb-black);
--background-gradient-distance: 0rem;
--gradient-header: linear-gradient(to top,
rgba(var(--medium-accent)) 0%,
rgba(var(--medium-accent), 0.90) 100%);
--diagonal-stripes: linear-gradient(transparent 0);
}
* {
scrollbar-color: rgb(var(--bb-black)) transparent !important;
}
#page-content {
font-size: 110%;
}
@media only screen and (max-width: 768px) {
#page-content {
font-size: 90%;
}
}
::selection {
background: rgb(var(--black-monochrome));
color: rgb(var(--white-monochrome));
}
::-moz-selection {
background: rgb(var(--black-monochrome));
color: rgb(var(--white-monochrome));
}
#skrollr-body {
background-image: none;
}
#container {
background-image: none;
}
/*
body::-webkit-scrollbar-thumb {
background-color: rgb(var(--bb-black));
}
body::-webkit-scrollbar-track {
background-color: rgb(var(--bb-white));
}
*/
#main-content {
padding-bottom: 3em;
}
/* 版头 */
#login-status,
#login-status a {
color: rgb(var(--bb-black));
opacity: 0;
transition: opacity 300ms;
}
#login-status span.printuser {
opacity: 0;
transition: opacity 300ms;
}
#header:hover #login-status span.printuser,
#header:focus-within #login-status span.printuser {
opacity: 1;
}
#header:hover #login-status,
#header:hover #login-status a,
#header:focus-within #login-status,
#header:focus-within #login-status a {
opacity: 1;
}
#account-topbutton {
border: none;
}
#account-options {
background-color: rgb(var(--bb-white));
border: 0.15rem solid rgb(var(--bb-black));
}
#login-status ul a {
text-decoration: none;
background-color: rgb(var(--bb-white));
color: rgb(var(--bb-black));
transition: background-color 300ms;
}
#login-status ul a:hover,
#login-status ul a:focus {
background-color: rgb(var(--bb-black));
color: rgb(var(--bb-white)) !important;
}
@media only screen and (max-width: 768px) {
#search-top-box-form {
display: none;
}
}
#search-top-box-input {
display: none;
}
#search-top-box-form>input.button.btn {
opacity: 0;
transition: opacity 300ms, color 300ms, background-color 300ms;
color: rgb(var(--bb-black));
background-color: rgb(var(--bb-white));
border: 0.15rem solid rgb(var(--bb-black));
}
#search-top-box-form>input.button.btn:hover {
color: rgb(var(--bb-white));
background-color: rgb(var(--bb-black));
}
#search-top-box-form input[type=submit]:focus,
#search-top-box-form input[type=submit]:hover {
text-shadow: none;
}
#header:hover #search-top-box-form>input.button.btn,
#header:focus-within #search-top-box-form>input.button.btn {
opacity: 1;
}
#header h1 a::before,
#header h2 span::before {
text-shadow: none;
color: rgb(var(--bb-white));
transition: color 300ms, bottom 300ms;
}
#header:hover h1 a::before,
#header:hover h2 span::before,
#header:focus-within h1 a::before,
#header:focus-within h2 span::before {
color: rgb(var(--bb-black));
}
#header h1 a:before {
position: relative;
font-weight: 900 !important;
bottom: 0;
}
#header:hover h1 a:before,
#header:focus-within h1 a:before {
bottom: 3px;
}
#header h2,
#header h2 span,
#header h2 span::before {
position: absolute;
top: 2rem;
margin: 0;
width: 100%;
display: flex;
justify-content: center;
}
/* 顶栏 */
#top-bar div.mobile-top-bar>ul>li>a,
#top-bar div.top-bar>ul>li>a,
#header:hover #top-bar div.mobile-top-bar>div.open-menu>p>a,
#header:focus-within #top-bar div.mobile-top-bar>div.open-menu>p>a {
color: rgb(var(--bb-white));
transition: opacity 300ms;
}
#header:hover #top-bar div.mobile-top-bar>ul>li>a,
#header:hover #top-bar div.top-bar>ul>li>a,
#header:focus-within #top-bar div.mobile-top-bar>ul>li>a,
#header:focus-within #top-bar div.top-bar>ul>li>a {
color: rgb(var(--bb-black));
}
#header:hover #top-bar div.mobile-top-bar>div.open-menu>p>a,
#header:focus-within #top-bar div.mobile-top-bar>div.open-menu>p>a {
color: rgb(var(--bb-black)) !important;
}
#top-bar div.top-bar>ul>.sfhover>a {
color: rgb(var(--bb-white)) !important;
}
#top-bar div.mobile-top-bar>ul>li:hover>a,
#top-bar div.mobile-top-bar>ul>li:focus-within>a {
color: rgb(var(--bb-white)) !important;
}
#top-bar div.mobile-top-bar>ul>li>ul>li,
#top-bar div.top-bar>ul>li>ul>li {
transition: background 300ms;
}
#top-bar div.mobile-top-bar>ul>li>ul>li:hover,
#top-bar div.top-bar>ul>li>ul>li:hover,
#top-bar div.mobile-top-bar>ul>li>ul>li:focus,
#top-bar div.top-bar>ul>li>ul>li:focus {
background: rgb(var(--bb-white));
}
#top-bar div.mobile-top-bar>ul>li>ul>li:hover a,
#top-bar div.top-bar>ul>li>ul>li:hover a,
#top-bar div.mobile-top-bar>ul>li>ul>li:focus-within a,
#top-bar div.top-bar>ul>li>ul>li:focus-within a {
color: rgb(var(--bb-black));
}
/* 侧栏 */
#side-bar::-webkit-scrollbar {
display: none !important;
}
#main-content::after {
visibility: hidden;
}
#main-content::before {
background-color: rgb(var(--bb-white)) !important;
}
#side-bar div.side-block {
border-right: none;
}
#side-bar .heading {
border-top: 0.125rem solid rgb(var(--bb-black));
border-bottom: 0.125rem solid rgb(var(--bb-black));
}
#side-bar .heading p {
background-color: rgb(var(--bb-black));
color: rgb(var(--bb-white));
text-shadow: none;
}
#side-bar .menu-item,
#side-bar .menu-item p {
border-bottom: 0.15rem solid rgb(var(--bb-white)) !important;
}
#side-bar div.menu-item a:not(a:first-child) {
border-left: 0.15rem rgb(var(--bb-white)) !important;
}
#side-bar .side-block>.collapsible-block .collapsible-block-link {
color: rgb(var(--bb-black));
text-shadow: none;
}
#side-bar .side-block>.collapsible-block .collapsible-block-link:hover {
color: rgb(var(--bb-white));
}
#side-bar div.menu-item a {
transition: background-color 300ms;
}
#side-bar div.menu-item a:hover {
background-color: rgb(var(--bb-black));
color: rgb(var(--bb-white));
}
#side-bar .side-block>.collapsible-block a.collapsible-block-link:after,
#side-bar div.menu-item a.collapsible-block-link:after,
#side-bar div.menu-item a::before {
display: none;
}
#side-bar {
position: fixed;
border-right: 0.15rem solid transparent;
}
#content-wrap {
margin-left: 0;
}
#side-bar:hover {
border-right: 0.15rem solid rgb(var(--bb-black));
}
@media only screen and (max-width: 768px) {
#side-bar {
border: none !important;
}
}
/* 评分 */
.page-rate-widget-box,
.rate-box-with-credit-button {
background-color: rgb(var(--bb-white)) !important;
border-color: transparent !important;
box-shadow: none !important;
}
/* 页面元素 */
.radius-div>* {
border-radius: 10px;
}
.error-inline {
color: rgb(var(--bb-black));
border: 1px solid rgb(var(--bb-black));
}
hr,
.dashed-hr {
margin: 1em 0;
padding: 0;
display: block;
border: none;
height: 2px;
background-image: linear-gradient(90deg, rgb(var(--bb-black)) 0%, rgb(var(--bb-black)) 55%, rgb(var(--bb-white)) 55%, rgb(var(--bb-white)) 100%);
background-size: 1em 2px;
background-repeat: x-repeat
}
.solid-hr {
margin: 1em 0;
padding: 0;
display: block;
height: 2px;
background-color: rgb(var(--bb-black));
}
.styled-hr {
margin: 1em 0;
padding: 0;
display: block;
position: relative;
height: 0.15em;
overflow: hidden;
border: initial;
background-color: rgb(var(--bb-black));
-webkit-clip-path: polygon(50% 10%, 100% 50%, 50% 90%, 0% 50%);
clip-path: polygon(50% 10%, 100% 50%, 50% 90%, 0% 50%);
}
.avatar-hover {
display: none !important;
}
.avatarhover a {
text-decoration: none;
color: rgb(var(--bb-black));
-webkit-box-decoration-break: clone;
box-decoration-break: clone;
transition:
color 300ms cubic-bezier(0.4, 0.0, 0.2, 1);
background-color 300ms cubic-bezier(0.4, 0.0, 0.2, 1);
}
.avatarhover:hover a {
text-decoration: none;
color: rgb(var(--bb-white));
}
#action-area .avatarhover:hover a {
background-color:rgb(var(--bb-black));
}
#page-content a:not([href*="user"]):not([href*="javascript:;"]):not([href*="#u-credit-view"]),
#page-content .avatarhover,
.hovertip a,
.classic-collap a.collapsible-block-link {
padding: 0.15em;
margin: -0.15em;
color: rgb(var(--bb-black));
-webkit-box-decoration-break: clone;
box-decoration-break: clone;
box-shadow: inset 0 -0.125rem 0 0rem rgb(var(--bb-black));
transition:
box-shadow 300ms cubic-bezier(0.4, 0.0, 0.2, 1),
color 300ms cubic-bezier(0.4, 0.0, 0.2, 1);
}
#page-content a:not([href*="user"]):not([href*="javascript:;"]):not([href*="#u-credit-view"]):hover,
#page-content .avatarhover:hover,
.hovertip a:hover,
.classic-collap a.collapsible-block-link:hover {
box-shadow: inset 0 -1.5em 0 0 rgb(var(--bb-black));
text-decoration: none;
color: rgb(var(--bb-white));
}
#page-title,
.meta-title {
margin: 0 auto 0.6em;
text-align: center;
font-size: 30px !important;
}
/* 目录 & 折叠 */
#toc {
background-color: rgb(var(--bb-white));
border: solid 0.15rem rgb(var(--bb-black));
color: rgb(var(--bb-black));
padding: 0;
}
#toc-action-bar {
padding: 0 !important;
}
#toc-list {
margin: 0.5em;
}
#toc-action-bar>a,
a.collapsible-block-link:not(.classic-collap *):not(.styled-collap *) {
display: inline-block;
transition: background-color 300ms;
color: rgb(var(--bb-black));
background-color: rgb(var(--bb-white));
text-decoration: none !important;
}
a.collapsible-block-link:not(.classic-collap *):not(.styled-collap *) {
padding-right: 0.4em;
}
.collapsible-block {
margin: 1em 0;
}
#toc-action-bar>a {
width: 100%;
}
#toc-action-bar>a:hover,
a.collapsible-block-link:not(.classic-collap *):not(.styled-collap *):hover {
color: rgb(var(--bb-white));
background-color: rgb(var(--bb-black));
}
#toc-action-bar>a:nth-child(1)::before,
#toc-action-bar>a:nth-child(2)::before,
.collapsible-block-folded a.collapsible-block-link:not(.classic-collap *):not(.styled-collap *)::before,
.collapsible-block-unfolded-link a.collapsible-block-link:not(.classic-collap *):not(.styled-collap *)::before {
margin: 0 0.2em 0 0.4em;
content: "▼";
color: rgb(var(--bb-black));
background-color: transparent;
visibility: visible;
display: inline-block;
}
#toc-action-bar>a:nth-child(1):hover::before,
#toc-action-bar>a:nth-child(2):hover::before,
.collapsible-block-folded a.collapsible-block-link:not(.classic-collap *):not(.styled-collap *):hover::before,
.collapsible-block-unfolded-link a.collapsible-block-link:not(.classic-collap *):not(.styled-collap *):hover::before {
color: rgb(var(--bb-white));
}
#toc-action-bar>a:nth-child(2)::before,
.collapsible-block-folded a.collapsible-block-link:not(.classic-collap *):not(.styled-collap *)::before {
animation-name: collapsible-arrow-spin;
animation-duration: 0.3s;
animation-iteration-count: 1;
animation-timing-function: cubic-bezier(.32, .38, .39, .94);
animation-fill-mode: forwards;
}
#toc-action-bar>a:nth-child(1)::before,
.collapsible-block-unfolded-link a.collapsible-block-link:not(.classic-collap *):not(.styled-collap *)::before {
animation-name: collapsible-arrow-spin-back;
animation-duration: 0.3s;
animation-iteration-count: 1;
animation-timing-function: cubic-bezier(.32, .38, .39, .94);
animation-fill-mode: forwards;
}
@keyframes collapsible-arrow-spin {
from {
transform: rotate(0deg);
}
to {
transform: rotate(-90deg);
}
}
@keyframes collapsible-arrow-spin-back {
from {
transform: rotate(-90deg);
}
to {
transform: rotate(0deg);
}
}
/* 分页 */
.yui-navset .yui-nav {
border: solid 3px rgb(var(--bb-black));
box-shadow: none;
}
.yui-navset .yui-nav a,
.yui-navset .yui-navset-top .yui-nav a {
transition: background-color 300ms;
background-color: rgb(var(--bb-white));
color: rgb(var(--bb-black));
}
.yui-navset .yui-nav a:hover,
.yui-navset .yui-nav a:focus {
background-color: rgb(var(--bb-black));
color: rgb(var(--bb-white));
}
.yui-navset .yui-nav .selected,
.yui-navset .yui-navset-top .yui-nav .selected {
background-color: rgb(var(--bb-black));
color: rgb(var(--bb-white)) !important;
}
.yui-navset .yui-nav .selected a {
color: rgb(var(--bb-white)) !important;
}
.yui-navset .yui-nav .selected a:focus,
.yui-navset .yui-nav .selected a:active {
background-color: rgb(var(--bb-black));
color: rgb(var(--bb-white));
}
.yui-navset .yui-nav li,
.yui-navset .yui-navset-top .yui-nav li {
box-shadow: 0 0 0 .0625rem rgb(var(--bb-white));
background-color: rgb(var(--bb-white));
}
.yui-navset .yui-content {
background-color: rgb(var(--bb-white));
border: none;
margin: 0;
padding: 0.25em 0;
}
/* 图像框 */
.scp-image-block {
border: none;
box-shadow: none;
}
.scp-image-block .scp-image-caption {
background-color: rgb(var(--bb-black));
color: rgb(var(--bb-white));
border: none !important;
}
.reversed-image .scp-image-block .scp-image-caption {
background-color: rgb(var(--bb-white));
color: rgb(var(--bb-black));
}
.bordered-image .scp-image-block {
border: 0.15rem solid rgb(var(--bb-black));
}
/* 表格 */
table.wiki-content-table tr,
table.wiki-content-table th,
table.wiki-content-table td {
border: .2rem solid rgb(var(--bb-black)) !important;
}
table.wiki-content-table th {
background-color: rgb(var(--bb-black)) !important;
color: rgb(var(--bb-white));
}
/* DIVs */
.code {
border: dashed 0.15rem rgb(var(--bb-black));
background-color: rgb(var(--bb-white));
color: rgb(var(--bb-black));
}
.code::-webkit-scrollbar-thumb {
background-color: rgb(var(--bb-black));
}
.code::-webkit-scrollbar-track {
background-color: rgb(var(--bb-white));
}
.blockquote,
blockquote {
border: solid 0.15rem rgb(var(--bb-black)) !important;
box-shadow: none !important;
background-color: rgb(var(--bb-white)) !important;
color: rgb(var(--bb-black)) !important;
}
.lightblock {
margin-left: 0;
border: solid 0.15rem rgb(var(--bb-black)) !important;
box-shadow: none !important;
background-color: rgb(var(--bb-white));
color: rgb(var(--bb-black));
}
.darkblock {
--bb-black: var(--white-monochrome);
--bb-white: var(--black-monochrome);
margin-left: 0;
border: none !important;
box-shadow: none !important;
background: rgb(var(--bb-white));
color: rgb(var(--bb-black));
}
.darkblock * {
--bb-black: var(--white-monochrome);
--bb-white: var(--black-monochrome);
}
.styled-quote {
background-color: rgb(var(--bb-white));
color: rgb(var(--bb-black));
margin-left: 0;
border-left: solid 0.4rem rgb(var(--bb-black)) !important;
box-shadow: none !important;
padding-top: 0;
padding-bottom: 0;
}
.dotted-quote {
color: rgb(var(--bb-black));
background-color: rgb(var(--bb-white));
padding: 0.01rem 1rem;
margin: 0.5rem 0;
border: dashed 0.15rem rgb(var(--bb-black));
}
.dotted-quote hr {
background-image: none;
background-color: rgb(var(--bb-white));
height: 0px;
border-top: dashed 0.15rem rgb(var(--bb-black));
}
.accent-block {
--bb-black: var(--bb-accent-color);
--bb-white: var(--bb-accent-background);
background-color: rgb(var(--bb-white));
padding: 0.01rem 1rem;
margin: 0.5rem 0;
color: rgb(var(--bb-black));
}
.accent-block * {
--bb-black: var(--bb-accent-color);
--bb-white: var(--bb-accent-background);
}
.accent-block .darkblock {
--bb-black: var(--bb-accent-background) !important;
--bb-white: var(--bb-accent-color) !important;
}
/* 脚注 */
a.footnoteref {
color: rgb(var(--bb-black));
background-color: transparent;
transition: background-color 300ms;
text-decoration: none !important;
padding: 0 0.2em;
}
a.footnoteref:hover {
color: rgb(var(--bb-white));
background-color: rgb(var(--bb-black));
}
.hovertip {
border: 0.15rem solid rgb(var(--bb-black)) !important;
}
.hovertip .f-footer {
display: none;
}
#page-content>div.footnotes-footer {
border-left: solid 0.4rem rgb(var(--bb-black));
margin-top: 1rem;
}
.footnotes-footer .footnote-footer a:nth-child(1) {
text-decoration: none;
color: rgb(var(--bb-black));
}
/* 标签 */
.page-tags {
margin: 0 auto;
text-align: center !important;
}
.page-tags a {
line-height: inherit;
font-weight: 600;
}
.page-tags span {
border-top: none;
border-bottom: 0.15rem solid rgb(var(--bb-black));
}
.page-tags span a {
color: rgb(var(--bb-black));
-webkit-box-decoration-break: clone;
box-decoration-break: clone;
transition:
box-shadow 300ms cubic-bezier(0.4, 0.0, 0.2, 1),
color 300ms cubic-bezier(0.4, 0.0, 0.2, 1),
padding 300ms cubic-bezier(0.4, 0.0, 0.2, 1),
margin 300ms cubic-bezier(0.4, 0.0, 0.2, 1);
}
.page-tags span a:hover {
box-shadow: inset 0 -1.5em 0 0 rgb(var(--bb-black));
text-decoration: none;
color: rgb(var(--bb-white));
}
/* 按钮 */
div#page-options-bottom-2>a,
div#page-options-bottom>a {
background-color: rgb(var(--bb-white));
font-weight: 600 !important;
color: rgb(var(--bb-black));
border-radius: 0em;
-moz-border-radius: 0em;
border: 0.15rem solid transparent;
text-decoration: none !important;
transition:
border 300ms,
background-color 300ms;
}
#prw54355 {
font-weight: 600 !important;
}
div#page-options-bottom-2>a:active,
div#page-options-bottom-2>a:hover,
div#page-options-bottom>a:active,
div#page-options-bottom>a:hover {
color: rgb(var(--bb-white));
background-color: rgb(var(--bb-black));
border: 0.15rem solid rgb(var(--bb-black));
text-decoration: none !important;
}
/* 信息 */
#page-info {
color: rgb(var(--bb-white));
}
div.page-watch-options {
visibility: hidden;
}
@media only screen and (max-width: 768px) {
#page-info {
display: none;
}
}
/* 页脚 */
#license-area {
display: none;
}
#footer {
display: none !important;
}
/* 操作 */
#owindow-1 {
border-color: rgb(var(--bb-black));
}
#who-rated-page-area>div>span {
color: rgb(var(--bb-black)) !important;
}
#who-rated-page-area .avatarhover:hover a {
transition: background-color 300ms;
}
#who-rated-page-area .avatarhover:hover a {
background-color: rgb(var(--bb-black));
}
#action-area input.text::-webkit-scrollbar-thumb,
#action-area textarea::-webkit-scrollbar-thumb {
background-color: rgb(var(--bb-black));
}
#action-area input.text::-webkit-scrollbar-track,
#action-area textarea::-webkit-scrollbar-track {
background-color: rgb(var(--bb-white));
border-left: rgb(var(--bb-black)) 0.15rem solid;
}
#action-area input.text::-webkit-resizer,
#action-area textarea::-webkit-resizer {
border-top: rgb(var(--bb-black)) 0.15rem solid;
border-left: rgb(var(--bb-black)) 0.15rem solid;
background-color: rgb(var(--bb-white));
color: rgb(var(--bb-black));
}
textarea,
input.text,
input.checkbox,
div.note,
#lock-info {
border: 0.15rem solid rgb(var(--bb-black)) !important;
}
table.form td div.sub,
form div.sub {
color: rgb(var(--bb-black));
}
.pager a {
color: rgb(var(--bb-black));
background-color: rgb(var(--bb-white));
border: 0.15rem solid rgb(var(--bb-black));
text-decoration: none !important;
transition: background-color 300ms;
}
.pager .current {
border: 0.15rem solid rgb(var(--bb-black));
color: rgb(var(--bb-white));
background-color: rgb(var(--bb-black));
}
.pager a:hover {
color: rgb(var(--bb-white));
background-color: rgb(var(--bb-black));
}
.change-textarea-size a {
color: rgb(var(--bb-black));
background-color: rgb(var(--bb-white));
border: 0.15rem solid rgb(var(--bb-black));
transition: background-color 300ms;
text-decoration: none;
}
.change-textarea-size a:hover,
.change-textarea-size a:active {
color: rgb(var(--bb-white));
background-color: rgb(var(--bb-black));
}
.owindow .button-bar a,
a.button,
button,
div.buttons input,
file,
input.button {
background: rgb(var(--bb-white));
color: rgb(var(--bb-black));
border-radius: 0em !important;
-moz-border-radius: 0em !important;
border: 0.15rem solid rgb(var(--bb-black));
transition:
border 300ms,
background-color 300ms;
}
.page-source {
border: 0.15rem solid rgb(var(--bb-black));
font-family: var(--mono-font);
}
.owindow .button-bar a:active,
.owindow .button-bar a:hover,
a.button:active,
a.button:hover,
button:active,
button:hover,
div.buttons input:active,
div.buttons input:hover,
file:active,
file:hover,
input.button:active,
input.button:hover {
color: rgb(var(--bb-white));
background-color: rgb(var(--bb-black));
border: 0.15rem solid rgb(var(--bb-black));
}
.preview-message {
border: 0.15rem dotted rgb(var(--bb-black));
background-color: rgb(var(--bb-white));
}
a.action-area-close:hover {
background-color: rgb(var(--bb-white));
}
table.page-history td.optionstd a {
color: rgb(var(--bb-black));
border: none;
text-decoration: none;
background-color: transparent;
transition: background-color 300ms;
}
table.page-history td.optionstd a:hover {
color: rgb(var(--bb-white));
background-color: rgb(var(--bb-black));
}
select {
font-family: var(--body-font);
border: 0.1rem solid rgb(var(--bb-black));
color: rgb(var(--bb-black));
background-color: rgb(var(--bb-white));
}
/* 特殊折叠 */
.styled-collap .collapsible-block {
margin: 0.5rem 0;
}
.styled-collap a.collapsible-block-link {
text-decoration: none;
display: block;
padding: 0.3rem 0.5rem;
background-color: rgb(var(--bb-black));
color: rgb(var(--bb-white));
}
.styled-collap .collapsible-block-content {
padding: 0.01rem 1rem;
background-color: rgb(var(--bb-white));
border: 0.125rem solid rgb(var(--bb-black));
border-top: none;
}
.styled-collap .collapsible-block-folded a.collapsible-block-link::before {
margin: 0 0.2em 0 0.4em;
content: "▶";
color: rgb(var(--bb-white));
background-color: transparent;
display: inline-block;
}
.styled-collap .collapsible-block-unfolded a.collapsible-block-link::before {
margin: 0 0.2em 0 0.4em;
content: "▼";
color: rgb(var(--bb-white));
background-color: transparent;
visibility: visible;
display: inline-block;
}
/* 更多标题 */
.classic-title {
text-align: left;
border-bottom: 3px rgb(var(--bb-black)) solid;
padding: 0;
margin-top: 0.6em !important;
margin-bottom: 0.6em !important;
}
.classic-title p {
margin-bottom: 0.2em;
}
.new-title {
display: flex;
margin-top: 0.6em !important;
margin-bottom: 0.6em !important;
}
.new-title p {
display: flex;
margin-top: 0;
margin-bottom: 0;
}
.new-title::after {
content: "";
flex-grow: 1;
height: 3px;
margin: auto auto auto 1.2rem;
background: rgb(var(--bb-black));
}
/* SD 适配 */
.sd-container {
--sd-border: var(--bb-black);
--sd-bullets: var(--bb-black) !important;
}
/* 授权栏适配 */
#page-content .licensebox .collapsible-block-link {
color: rgb(var(--bb-black));
}
#page-content .licensebox .collapsible-block-link:hover {
color: rgb(var(--bb-white));
}
隧道,天花板置有零散泛黄灯管,为底下的惨淡景象勉强照出光影。
隧道内的各处养有枯老泛黄的盆栽,偶有几株藏着嫩绿,却更像是垂死挣扎。
盆栽之间便花样百出不少。乔住的布帐篷、桌椅、墓碑、储物箱,还有其他人各有特色的居所:一张床,一个铁棚盒子,纸皮屋,应有尽有。居民在这不大的隧道内构筑起商店、食堂、杂物间,但人们之间的氛围却颓靡得压抑。
一些人家——姑且可以这么称为,会在门口悬挂铁罐子构成的风铃,它们在极罕见的风中晃动,发出刺耳难听的声响。
像某种废土营地。
也是乔住了快两个月的破烂地方。
他照例给女友发去消息,总结了他今天的生活。起床,搬运隧道尽头新出现的物资,发呆到现在,一如既往。
女友没回消息,同样一如既往。
乔有点难过,这种情绪持续了很长一段时间,从最早误闯开始。
起于对突兀出现小镇的好奇,乔无视了女友的提醒,毅然踏入镇中。等回过神来,原先的路口消失,乔这才惊觉无路可退。
随之而来的是,骤然变化颜色的天幕,昼夜毫无规律的转换,以及某种不可视的玩意嬉笑、践踏、一拥而上。他记得那些声音,不像尖叫,不是咆哮,像一些顽童玩闹,刺得叫人发寒。
无论朝哪逃离都会回到原地。
再次清醒时,乔已经被丢到了隧道前。像是被小镇戏弄,又可能是被什么东西施以援手。
浑身是血,伤口遍布全身,却不记得自己被什么东西触碰过。
他们说,不要出门。你总会被发现。如同某种烙印,诅咒。
万幸的是,这处聚居地几乎什么都有。水和罐头以某种方式,被批量送进隧道尽头的空间,足够幸存者们苟延残喘了。
有人在门外喊他,将他从杂乱思绪中拽回。声音不高不低,带着非比寻常的郑重。
“该走了。”
她也曾说
“该走了。”
“朝前走50米,有概率遇到前哨站,也可能因为层级性质走入更危险的区域。往回走,可以切回我们上一个层级,另寻出路。”乔无比慎重地止步于走廊门把前,背对着女友安娜开口。
他的手悬在门把上方三厘米处,没有落下。他在等。
安娜没有任何纠结,神采奕奕。她得意地拿出硬币,语带挑衅:“交给命运!”
那枚硬币是从某个不知名层级捡到的,上面印着一种他从未见过的文字。安娜说那是幸运币,乔则说那只是一块钱。
硬币高高跃起,被安娜一把握住。
“正!”乔下意识抢答。
安娜眨了下眼睛,但没有摊开手。她朝前一走,越过乔,毫不犹豫推开走廊大门。门轴发出尖锐的呻吟,对于两位冒险家而言更像是冲锋号角。
乔先是一愣,随后大笑。笑声在雾气中回荡,笑得连他自己都觉得有点傻。
他抓起安娜的手,闲置的手摸了摸自己的脑袋,朝着未知尽头一同朝前大跨步。
安娜手心有一点汗,握起来刚刚好。
后来——
他们走了很久很久。
乔走了很久很久。
他这才发觉原来隧道角落还藏有这么一条拐角。他以为自己已经摸清了每一寸墙壁的纹理、每一盏灯管的闪烁频率。但这条拐角像是刚刚才长出来的,或者一直都在,只是从未允许他看见。
同样枯黄、散发些许腐臭,但长得看不到尽头。墙壁上覆盖着一层薄薄的水膜,手指碰上去会留下短暂的印记,然后水膜会慢慢将印记吞噬,恢复成完好无损的灰败。像是某种活物在呼吸。
喊他过来的人是被选举出来的物资配给员,平日也负责安排隧道内人员的工作。配给员在幸存者中颇有威望,但没人知道他的真名。
“我们要去哪?”乔忍不住开口询问。他的声音在狭窄的巷道里被压扁,变得陌生,隐隐还有回响。
“仪式。”这位向来春风和睦的配给员,此刻表情严肃。
他们停在了巷子尽头的门前,那扇门是铁质的,锈迹斑斑,上面有人用指甲刻了一些字,但已经被锈蚀得无法辨认。配给员推开铁门,向着乔点头示意。
乔犹豫了片刻,迈步走入其中。
哦,一张桌子,几张椅子,一些同样是最近一年内才进入聚居地的人,一个面色苍白的女人,还有一个五岁左右的孩子。
乔见过那个孩子,为营地注入生机的小家伙总是让人印象深刻。他记得那孩子笑起来有两个酒窝,记得他曾在隧道里追逐自己的影子,记得短暂会面时,小家伙亲切地喊一声叔叔。
乔敏锐地注意到,房间某个角落,用红色记号笔画着醒目的圆圈,大概有一个半脑袋的直径。
配给员在随后进入房间,他随手带上门,扫视房间所有人一圈,最后将视线落在孩子上,眼神变得柔和。
“具体缘由我待会再说。”
“开始吧。”
她也曾说
“开始吧。”
安娜的声音带着一种她很少展露的郑重。她只有在认真的时候才会这样说话,而乔爱死了她认真的样子。安娜将神圣的酒精高举。随后毫不犹豫浇下。
乔将布料塞入口中,眉头紧锁,将血淋淋的右臂放在桌面。
布料有安娜身上的味道,某种他说不上名字的花香,可能是她在某个层级捡到的洗衣液。他试图集中注意力到这上,尝试用这个味道压住手臂传来的剧痛。
嘶——
乔紧咬住布,不让自己惨叫出声 ,但不可避免的眼泪与颤抖的身子,无一不让他看起来更加狼狈。他听见自己喉咙里滚过的闷哼,像是被踩住尾巴的野兽。
安娜抽了抽鼻子,斜撇了眼乔,小声斥责:“早说过不用帮我挡住的……”
她的声音在最后几个字上碎掉了,像是被什么东西哽住。
乔大口喘气,没空回答。汗珠从他额头上滑落,滴在桌面上,和血迹混在一起。
安娜用白布将乔的伤口简单包扎,又背过身,蹲了下来。她的动作很轻,但乔能感觉到她的手指在微微发抖。
乔难得害羞,脸红起来:“我是手臂受伤,腿没问题的。”
他的声音还带着喘,听起来像是在逞强。
安娜有些失望。她转过头来,眼睫毛上还挂着一点没干的痕迹,但嘴角已经弯了起来。
“我还想美救英雄的。笨蛋乔。”
乔站直起身,躬身下腰,伸出左手,受伤的右手颤颤巍巍置于胸前。每一个动作都牵扯到伤口,但他笑得像个小孩子。
“尊敬的安娜大英雄,这点小事不能扰烦您折腰。”乔咧嘴一笑,“请容许我搀扶您,这位美丽的英雄。”
安娜笑得很开心。
孩子哭得很伤心。
那哭声不是嚎啕,而是一种压抑的、断断续续的呜咽。五岁的孩子已经懂得控制音量了,乔注意到了这点,这让乔更加难受。
女人紧紧握住他手,嘴巴开合,小声在孩子耳边絮叨。乔听不清她在说什么,只能看见她的嘴唇快速翕动。孩子从大哭再到抽泣,直到哭声变得细碎。
孩子最后没再哭了,但乔注意到,孩子握住女人的手,指节发白。
配给员没有打扰,直到孩子心情平复才继续开口。
“薇尔夫人,开始吧。”配给员一动不动,声音放得很轻。
薇尔回身点头致意,眼睛有些发红,但她很快地垂下眼眸。她的睫毛很长,足以藏下所有情绪,乔不再能看清。
环境压抑得恶心。乔注意到,有人在发颤,有人眼神变得凶恶,有人一动不动,亦有人开始发起了呆。他有点好奇自己在别人看来又是什么姿态,是全身绷直的警备,还是无所谓地发散思维,看上去痴痴呆呆。
也有人与自己一般,扫视所有人,观察环境。这是与安娜多年在外养成的习惯,尽管很多时候并无用处。联想到此,乔的手指无意识地摩挲着掌心——那是他曾与安娜的手指相扣的位置。
薇尔夫人带着孩子,走向墙角,每一步都很艰难。乔眉头皱起。那个圆到底代表什么?仪式又是什么?某种献祭?某种死亡?某种别离?他忍不住把所有可能想象一遍,每种都血腥残酷。
有人先他一步忍不住开口,声音里带着一种被压扁的焦虑:“这究竟是什么仪式?”
配给员抬手向下压了压,示意对方安静。与此同时,薇尔夫人与孩子已经一起站在圆圈前,薇尔夫人似乎终于控制不住情绪了,她伏下腰,抱着孩子泣不成声。
很快,这位坚强的女人重新站起身,她最后告诫了什么,这回我们都能听到了。
“到那边后你要照顾好自己,不要到处乱跑,你要乖乖的,要永远记得,你父亲和我永远爱你。”
她最后轻吻了孩子的额头,嘴唇贴上去很久。孩子擦拭着自己的眼睛,没有应声。
她将孩子轻轻朝前一推,那名五岁大的男孩,一个踉跄,跌入红圈。
“不要回来。”她说。
她也曾说
“不要走。”她说。
安娜的声音闷闷的,似乎把脸埋在了什么东西里。
乔拍了拍安娜的肩膀,力度很轻,如同呵护易碎品:“我们想继续前进,必须有人先朝前探路。既然无路可退,便让我放手一搏吧。”他试着让自己的声音更轻松。
但他们中任何一人都知道前路有多险峻。
安娜想起身随行,却被乔的接下来的话打断:“你必须留在原地,如果你和我一起,我想离开也没有空间腾移。”
安娜有些愤怒了,她握拳击打在乔的背部,但没再继续,最后只是顺着背脊无力滑落下来。她将头靠在乔的背上,对着乔说:“你要活下来。”
乔没有转身,只是站在原地,驻足朝前看了很久。
“放心,我经验丰富。”安娜看不到乔的脸,但乔的声音从未如此无比清晰:“一定活下来。”
乔远远哼唱起小曲,大步向前。那是安娜最喜欢的那首,他们在某个层级的小酒馆里听到,学习,与当地人共饮,惺惺相惜。他记不全歌词,只能哼出大概的调子。
安娜也哼起伴奏,旋律远远传开。
直到乔消失在凸起的转角,再也看不见。
那个五岁孩子消失了。
空气里还残留着一点他存在过的痕迹——孩子身上那种淡淡的、混合着肥皂和尘土的气味。然后连这点气味也被房间吞没了。
薇尔夫人捂脸哭泣,
配给员小心搀扶着她坐下。直到最后才将注意力放回乔和这些新人身上,乔觉得自己像被某种冰冷的仪器扫描了一遍。
“你们也在此定居了不短时间了。这毕竟是一个极度危险的区域。上面连我这种级别的人员都随意挥霍,派遣来此,足以看出端倪了。有些事情我不会瞒着你们,这次的送别仪式便是其中之一。”
“你们有的人可能也猜到了,这是一个出口,整个层级唯一能出去的出口。但同样如你们所见,这个出口太小了。我们无法将大件物品送出,更何况是成年人。如果你们不信邪,想尝试随时欢迎,我们从不阻碍任何人去留。”
有人跃跃欲试,但乔明白配给员说的是真的。他突然觉得有些喘不过气,脑子里闪过的话却不是关于仪式的,而是——
无法离开。
乔嘴巴有些发干,但理智让他稍微回了点神。
配给员的话并未终止:“如果可以,请不要在这里诞下子嗣。想象下,没有这个出口,孩子们将在这个不到七十米长的隧道里度日,在毫无花样、营养欠缺的食物下成长,在压抑的环境里度过余生。”
他顿了顿,像是在给自己积攒继续说下去的力气。
“长期缺乏日照,玩伴都缺少,没有医生。周遭的成年人废物得只有麻木。我们甚至不知道这些孩子能不能活到成年。”
“所以我们做出这么一个艰难的决定。”
配给员低下头,没再继续说下去。房间里只剩下薇尔夫人压抑的抽泣声,和某个人沉重的呼吸声。但在场的人都明白这是什么意思。
乔忍不住询问道:“没有其它出口?”
配给员沉思了一会,最后给出答案:“至少隧道里没有。”
有人问:“你们知道这个出口又是通向哪里吗?”
乔已经没心情再听剩下的了。
但配给员的回答依旧清晰。
“城市。”配给员说。
她也曾说
“城市。”安娜说。
“这么多宜居层级,为什么偏偏选择了城市呢。”乔有些不解。他记得那份层级名单上还有更多安全的选择——乡村、海滩、图书馆。但安娜的眼睛只停在“城市”上。
安娜微微歪头,笑着回答:“随时有可能的冒险,无处不在的出口,哪里又都能回来,对于我们两个冒险家而言,这无疑是完美答案。”
她笑的时候,左边嘴角会比右边高一点点,这是只有乔才知道的秘密。
“那么,等我们这次回去,我送你一个新家。”乔摸了摸安娜脑袋,绘制起未来宏图。他的手插进她的头发里,发丝从指缝间滑过,柔软得让他想要握住。他描述着那个还不存在的家——窗户朝南,阳台上可以种安娜喜欢的花,厨房要大,因为家里有两个笨蛋大厨。
乔又哼起了小曲,但这次安娜没有应和。乔看向安娜,这才发现安娜用她那极漂亮的眼睛注视着自己。她的眼睛是深棕色的,但在某种光线下会变成琥珀的颜色。现在就是那种光线下。
“怎么?”乔有些疑惑。
安娜脸红了,这在这位一向很有主见且富有冒险精神的女士上不多见,红色从她的耳尖开始蔓延,经过颧骨,停在鼻梁上。她突然站起身,迅速吻了下乔,又迅速收回。
安娜开口了。
她说得很快,像是怕说慢了就会后悔。但每个字都清清楚楚,砸进乔的耳朵里,砸进他的心脏里,砸进他此后每一个日夜的梦里。
“到时候你要娶我。”安娜说。
我要娶她。我要娶她!
这两个句子在乔的脑子里炸开,一遍又一遍,像是心跳,像是战鼓。
乔冲出房间,所有人都吓了一跳。椅子被撞倒,有人发出短促的惊呼,但这些声音都像是隔着一层厚厚的水。
操你妈的。
乔向前大跨步奔跑,他一个大男子汉怎么能哭呢。
但他脸上湿了一片,分不清是汗还是别的什么。
狗屁的无法离开。
我他妈一定能出去!
乔跑出走廊,回到隧道,他大口呼气,平息心情,他回到自己帐篷,披上自己最习惯的多口袋冲锋衣,备好食物手电,以及零散必备品,最后带上头盔。他必须离开这个狗日的地方!
他开始预热,加速,狂奔。脚步在隧道里发出巨大的回声,像是有另一个人在他身后奔跑。短短距离里收获了近乎所有人的诧异与疑惑。一张张脸从他视野边缘滑过,张大的嘴,瞪圆的眼睛,伸出一半又缩回的手。乔不在乎,直到他在门口被人一拳撂倒在地。
那一拳落在他颧骨上,视野里炸开一片白光。后背撞上地面的时候,肺里的空气全被挤了出来。
“我操你妈。”乔无力呻吟。他尝到了血腥味,从牙龈渗出来的。
“你他妈真是疯了。不要命了?你知道贸然开门有他妈多大风险吗?”守门者的声音从上方压下。
乔拖动身子,撑起上半身。手臂在发抖,不是因为那一拳,是因为他刚才跑了太久。他以跪姿匍匐在地,声音带上了哭腔:“求你了。”
对面没有立刻开口,而是过了许久才挤出:“你考虑清楚了?即便放你出去你也不一定能走远,很可能重新回到原位。所有所困于此的人的都无法逃脱,鬼打墙。”
乔却满不在乎,凑出残破不堪的笑容,点了点头。他的颧骨已经开始肿了,笑起来牵扯到伤处,疼得他倒吸一口气。
“我们从来不会阻止任何人离开。”壮汉叹气,让出位置,“出去后立刻把门带上。”
乔膝盖有点软,但他站住了。
“三十秒!”壮汉突然开口,“在他们反应过来之前,你有三十秒时间。”壮汉补充。
“谢谢。”
乔最后留下了这句话。
大门开启。
大门关闭。
身后传来门闩落下的声响,沉闷,决绝,像是一个句号。
安娜在哭,他感受得到。不是听见,是感受——是他身体里某个从未休眠过的部分接收到的信号。安娜还在原地吗,乔又想。这个问题他已经想了两个月,想了无数遍,每一遍都没有答案。
隧道被甩在身后,同时风更凌厉了。风里有东西,不是沙子,不是灰尘,是某种更细碎的、几乎像是碎玻璃一样的东西,刮在脸上生疼。安娜会不会傻到尝试进来这里?一个危险绝望又乏味,毫无冒险的地方?会。乔知道她会。安娜从来不是一个会被危险拦住的人。所以他必须出去,在她犯傻之前。
天色开始发生改变。不是渐变,是抽搐——天空从灰黄色跳到深紫色,再跳到一种乔从未见过的、不该存在于任何天空的颜色。两个月了她应该已经去城市了吧。乔在心里计算日期。如果他们分开的那天她顺利离开,如果她没有回头,如果她没有犹豫,如果她——不。她一定已经到了。乔决定相信这个。
他看到前方不远开始有东西汇聚。不是怪物,更像是光线在某个区域发生了扭曲,像是空气本身在蜷缩、在蠕动、在模仿某种形态。我好像确实有点傻。乔突然想笑。两个月来他一直告诉自己,只要活着就有希望。但此刻他才明白,希望不是用来等的,是用来跑的。
眼前的城镇也变得张牙舞爪了。那些建筑物的轮廓开始流动,像是一幅被人泼了水的墨画。窗户像眼睛,门像嘴巴,但它们的位置都不对,不在应该在的地方。二十五秒原来这么长吗,我记得,安娜的手表计时总是快半拍。安娜的手表——那是一只老旧的机械表,走时永远快半拍。她总是提前半拍开始笑,提前半拍开始跑,提前半拍吻他。乔记得她把手表贴在耳边上弦的样子,眉毛会微微皱起,像是在听一首只有她听得见的歌。
乔突然止住了脚步。
他好像看到,在城镇的某处地方,似乎有一道身影在狂奔,在跌跌撞撞,在躲藏。那个身影移动的方式让他的心脏停跳了一拍——不是因为他认出了那个人,而是因为那个人移动的方式像极了她。向前三步,突然转向,矮身躲过什么看不见的东西,然后继续跑。那是安娜躲避实体时的习惯。她总是多转向一次,因为她说“那些东西猜不到第三下”。
好像是她,但是太模糊了,什么都看不清。乔感觉刺痛,不知由于铺天盖地的碎屑,还是因为他太久没有眨过眼。
熟悉的嬉笑声在耳边响起。
它们越来越多,从四面八方,整个小镇都活过来了。声音越来越近,越来越密,令人作呕的笑声也变得轰鸣。
乔眯起眼睛,尝试看清前方具体有什么,却只看到了隧道铁门出现在前方。
整个世界都开始变疯了。天空在翻滚,地面在呼吸,远处的城镇在融化,近处的声音在逼近。乔站在这一切的中心,看着那个模糊的、像极了安娜的身影,心里只剩下最后一个念头——
但他来不及了。