@import url('https://fonts.googleapis.com/css2?family=Nixie+One&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Atkinson+Hyperlegible:ital,wght@0,400;0,700;1,400;1,700&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Outfit:wght@100..900&display=swap');
:root {
--body-bg: 225, 225, 225;
--content-bg: var(--global-white-color);
--bg-opacity: 0.9;
--extra-bg-1: url(https://imagebed.pro/images/liurd/skyline.svg);
--extra-bg-2: url(https://imagebed.pro/images/liurd/skyline.svg);
--extra-bg-3: url(https://imagebed.pro/images/liurd/skyline.svg);
--extra-opacity-1: 0.15;
--extra-opacity-2: 0.05;
--extra-opacity-3: 0.05;
--topbar-hover-bg: var(--dark-ui-bg), 0.2;
--topbar-hover-txt: var(--light-ui-txt);
--user-drop-txt: var(--dark-ui-txt);
--bottombar-bg: var(--dark-ui-bg);
--bottombar-txt: var(--dark-ui-txt);
--header-title: "Backrooms";
--banner-title: "BACKROOMS";
--banner-subtitle: "当色彩褪去的时候";
--header-height: 3rem;
--topbar-height: 2.5rem;
--dropdown-height: var(--topbar-height);
--banner-height: 25rem;
--header-ui-size: 3rem;
--header-title-size: 1.8rem;
--topbar-size: clamp(0.8rem, calc(0.4rem + 0.8vw), 1.2rem);
--banner-title-size: clamp(2rem, calc(2rem + 3.5vw), 6rem);
--banner-subtitle-size: 1rem;
--banner-font: "Nixie One", "Noto Serif SC", Franklin Gothic Medium, Franklin Gothic, ITC Franklin Gothic, Arial, serif;
--header-font: var(--banner-font);
--title-font: "Outfit", "Noto Sans SC", "Noto Sans TC", Franklin Gothic Medium, Franklin Gothic, ITC Franklin Gothic, Arial, sans-serif;
--body-font: "Atkinson Hyperlegible", "Noto Sans SC", "Noto Sans TC", Arimo, Verdana, Geneva, sans-serif;
--ui-font: "Outfit", "Noto Sans SC", "Noto Sans TC", Arimo, Verdana, Geneva, sans-serif;
}
#extra-div-1 {
position: fixed;
width: 100%;
height: 25vh;
bottom: 0;
left: 0;
z-index: -1;
background-image: var(--extra-bg-1);
background-size: 20rem;
background-repeat: repeat-x;
background-position: center;
opacity: var(--extra-opacity-1);
}
#extra-div-2 {
position: fixed;
width: 100%;
height: 50vh;
bottom: 0;
left: 0;
z-index: -2;
background-image: var(--extra-bg-2);
background-size: 40rem;
background-repeat: repeat-x;
background-position: center;
opacity: var(--extra-opacity-2);
}
#extra-div-3 {
position: fixed;
width: 100%;
height: 100vh;
bottom: 0;
left: 0;
z-index: -3;
background-image: var(--extra-bg-3);
background-size: contain;
background-repeat: repeat-x;
background-position: bottom;
opacity: var(--extra-opacity-3);
}
#container {
display: grid;
grid-template-columns: minmax(var(--sidebar-width), 1fr)auto 1fr;
grid-template-rows: auto auto auto auto;
}
#extrac-div-1 {
grid-column: 2 / 3;
grid-row: 1 / 2;
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
font-family: var(--banner-font);
font-weight: 200;
width: 100%;
height: var(--banner-height);
color: rgb(var(--header-txt));
order: -1;
}
#extrac-div-1::before {
content: var(--banner-title);
font-size: var(--banner-title-size);
}
#extrac-div-1::after {
content: var(--banner-subtitle);
font-size: var(--banner-subtitle-size);
}
#header {
grid-column: 1 / 2;
grid-row: 1 / 3;
min-width: var(--sidebar-width);
width: 100%;
height: fit-content;
grid-template-columns: var(--header-ui-size) 1fr auto auto;
grid-template-rows: var(--header-ui-size) calc(var(--banner-height) - var(--header-ui-size)) auto;
top: calc(0px - var(--banner-height));
order: -2;
}
#search-top-box {
grid-column: 3 / 4;
position: fixed;
right: var(--header-ui-size);
backdrop-filter: blur(1rem);
}
#login-status {
grid-column: 4 / 5;
position: fixed;
right: 0;
backdrop-filter: blur(1rem);
}
#header h1 {
grid-column: 2 / 3;
grid-row: 1 / 2;
height: var(--header-height);
position: static;
}
#header h1 a {
justify-content: flex-start;
padding: 0;
padding-left: 0.5rem;
transition: padding var(--global-duration);
}
#header h1 a:is(:hover, :focus) {
padding-left: 1rem;
transition: padding var(--global-hover-duration);
}
#header h2 {
display: none;
}
#header-extra-div-1 {
display: none;
}
#top-bar {
grid-column: 1 / 5;
grid-row: 3 / 4;
height: auto;
}
#top-bar > div > ul {
flex-direction: column;
height: auto;
margin-right: 0;
}
#top-bar > div > ul > li {
flex-basis: unset;
height: var(--topbar-height);
}
#top-bar > div > ul > li > a {
justify-content: flex-end;
padding: 0 1rem;
}
#top-bar > div > ul > :is(li, li:last-of-type) > ul {
top: 0;
left: 100%;
width: 24em;
max-width: max-content;
min-width: auto;
flex-direction: row;
flex-wrap: wrap;
}
#top-bar > div > ul > li > ul > li {
width: 10em;
flex-grow: 1;
}
#top-bar > div > ul > :is(li, li:hover, li:focus, li.sfhover, li:focus-within) > ul > li > a {
box-sizing: border-box;
}
#content-wrap {
display: contents;
}
#side-bar {
max-height: unset;
overflow-y: auto;
border: unset;
box-shadow: 0 0 1.5rem -1rem rgb(var(--global-dark-color));
}
#side-bar::after {
backdrop-filter: blur(1rem);
}
#main-content {
grid-column: 2 / 3;
grid-row: 2 / 3;
min-height: 100vh;
box-sizing: border-box;
margin: 0 auto 15vh;
padding: 1.5rem;
box-shadow: 0 0 2.5rem -1rem rgb(var(--global-dark-color));
position: relative;
background: rgba(var(--content-bg), var(--bg-opacity));
}
#main-content::after {
content: "你曾经来过这里.";
display: flex;
align-items: center;
justify-content: center;
position: absolute;
top: 100%;
left: 0;
width: 100%;
height: 10vh;
color: rgb(var(--header-txt));
font-family: var(--banner-font);
font-weight: 200;
}
#page-title {
padding: 0;
}
:is(blockquote, .blockquote, div.blockquote, [class*=blockquote]) {
padding: 0.5rem 1rem;
border-width: 0 0 0 0.3rem;
background: rgba(var(--light-block-bg), 0.4);
}
#page-options-container {
font-family: var(--ui-font);
}
#footer {
grid-column: 1 / 4;
grid-row: 3 / 4;
box-sizing: border-box;
justify-content: flex-end;
margin-top: 0.5rem;
border: unset;
}
#license-area {
grid-column: 1 / 4;
grid-row: 4 / 5;
padding: 0.5rem;
justify-content: flex-end;
}
#license-area a {
color: rgb(var(--global-pale-color));
}
@media only screen and (max-width: 1024px) {
#container-wrap {
perspective-origin: 49.5% 5rem;
}
#container {
display: flex;
}
#header {
min-width: var(--sidebar-width);
grid-template-columns: var(--header-ui-size) 1fr auto auto;
grid-template-rows: var(--header-ui-size) auto auto;
top: 0;
width: initial;
position: static;
}
#content-wrap {
display: block;
margin: 0;
}
#login-status {
position: relative;
backdrop-filter: unset;
}
#search-top-box {
position: static;
backdrop-filter: unset;
}
#login-status #account-options {
left: initial;
right: 0;
}
#top-bar > div > ul {
flex-direction: row;
margin-right: auto;
}
#top-bar > div > ul > li {
flex-basis: min-content;
}
#top-bar > div > ul > li > a {
justify-content: center;
padding: 0;
}
#top-bar > div > ul > :is(li, li:last-of-type) > ul {
top: 100%;
left: 0;
width: auto;
flex-direction: column;
}
#top-bar > div > ul > li:last-of-type > ul {
left: initial;
right: 0;
}
#top-bar > div > ul > li > ul > li {
width: 100%;
flex-grow: 1;
}
}
@media only screen and (max-width: 768px) {
#top-bar > div > ul > :is(li, li:last-of-type) > ul {
flex-direction: row;
}
#top-bar > div > ul > li > ul > li {
width: 50%;
}
}
:root {
/* 常规颜色 */
--sns-base-text-color: 0, 0, 0;
--sns-border-color: var(--sns-base-text-color);
--sns-gui-color: 100, 100, 100;
--sns-button-color: 60, 60, 60;
--sns-pressed-button-a-color: 48, 157, 219;
--sns-pressed-button-b-color: 0, 200, 0;
--sns-pressed-button-c-color: 200, 0, 0;
--sns-pressed-button-d-color: 48, 157, 219;
--sns-pressed-button-e-color: 48, 157, 219;
--sns-locate-link-color: 138, 137, 136;
--sns-normal-link-color: 2, 117, 224;
--sns-intro-background-color: 0, 0, 0;
/* 账号颜色 */
--administrator-account-color: 186, 186, 32;
--general-account-color: 119, 111, 227;
/* 深色模式下的颜色 */
--dark-sns-base-text-color: 255, 255, 255;
--dark-sns-border-color: 190, 190, 190;
--dark-sns-pressed-button-a-color: 48, 157, 219;
--dark-sns-pressed-button-b-color: 90, 197, 90;
--dark-sns-pressed-button-c-color: 197, 90, 90;
--dark-sns-pressed-button-d-color: 48, 157, 219;
--dark-sns-pressed-button-e-color: 48, 157, 219;
--dark-sns-gui-color: 126, 124, 120;
--dark-sns-button-color: 180, 180, 180;
--dark-sns-locate-link-color: 200, 199, 198;
--dark-sns-normal-link-color: 36, 149, 255;
--dark-administrator-account-color: 224, 224, 80;
--dark-general-account-color: 176, 170, 255;
/* 账号头像图片的尺寸 */
--post-account-image-size: clamp(2.125rem, 1.761rem + 1.82vw, 3.125rem);
/* 按钮使用的 Fontawesome 字符 */
--sns-button-a-content: "\f0e5";
--sns-pressed-button-a-content: "\f075";
--sns-button-b-content: "\f087";
--sns-pressed-button-b-content: "\f164";
--sns-button-c-content: "\f088";
--sns-pressed-button-c-content: "\f165";
--sns-button-d-content: "\f097";
--sns-pressed-button-d-content: "\f02e";
--sns-button-e-content: "\f08e";
--sns-pressed-button-e-content: var(--sns-button-e-content);
}
/* 帖子整体 */
.post-wrap {
position: relative;
overflow: hidden;
border-top: 1px solid rgb(var(--sns-border-color));
border-bottom: 1px solid rgb(var(--sns-border-color));
}
.sns-intro + .sns-intro .post-wrap,
.sns-intro + br + .sns-intro .post-wrap,
.sns-intro + br + br + .sns-intro .post-wrap,
.sns-intro + br + br + br + .sns-intro .post-wrap,
.sns-intro + br + br + br + br + .sns-intro .post-wrap {
border-top: none;
}
.post-wrap:not(.post-reply-false) {
margin-left: 1.5rem;
padding-left: 0.5rem;
}
/* 帖子版头 */
.post-header {
display: grid;
grid-template-areas:
"sender-image sender-info sender-more"
"sender-image sender-locate sender-locate";
grid-template-columns: calc(var(--post-account-image-size) + 6px) 1fr 24px;
grid-template-rows: 1fr 1fr;
padding-top: 1.2rem;
width: 100%;
}
.sender-image {
grid-area: sender-image;
display: flex;
justify-content: center;
align-items: flex-start;
}
.account-image {
height: var(--post-account-image-size);
width: var(--post-account-image-size);
overflow: clip;
overflow-clip-margin: content-box;
object-fit: cover;
border: 1px solid rgb(var(--sns-gui-color));
border-radius:50%;
position: relative;
user-drag: none;
-webkit-user-drag: none;
user-select: none;
-moz-user-select: none;
-webkit-user-select: none;
}
.sender-info {
grid-area: sender-info;
padding-left: 6px;
vertical-align: middle;
left: 55px;
width: 100%;
}
.sender-info span {
text-overflow: ellipsis;
white-space: nowrap;
overflow: hidden;
font-size: larger;
margin: 0;
padding: 0;
vertical-align: middle;
}
.sender-info .sender-account-name {
--wght: 700;
color: rgb(var(--sns-base-text-color));
font-weight: 700;
padding-right: 0.5rem;
}
.sender-info .sender-account-id {
--wght: 700;
color: rgb(var(--sns-gui-color));
font-weight: 700;
}
.sender-info .sender-post-time {
color: rgb(var(--sns-gui-color));
}
.sender-post-time.time-false {
display: none;
}
.sender-more {
grid-area: sender-more;
color: rgb(var(--sns-gui-color));
display: flex;
align-items: center;
justify-content: center;
width: 100%;
user-drag: none;
-webkit-user-drag: none;
user-select: none;
-moz-user-select: none;
-webkit-user-select: none;
}
.sender-locate {
grid-area: sender-locate;
color: rgb(var(--sns-gui-color));
padding-left: 6px;
vertical-align: middle;
width: 100%;
}
.sender-locate.locate-false {
display: none;
}
.sns-locate-link.locate-link-false {
pointer-events: none;
}
.sns-locate-link:is(*, :hover, :active, :focus, :focus-within) {
color:rgb(var(--sns-locate-link-color));
}
/* 帖子正文 */
.post-body {
padding-left: calc(var(--post-account-image-size) + 6px);
position: relative;
border: none;
color: rgb(var(--sns-base-text-color));
padding-top: 2rem;
font-size: clamp(0.97rem, 0.923rem + 0.24vw, 1.1rem);
}
.post-body :is(a, a.visited, a.newpage):is(*, :hover, :active, :focus, :focus-within) {
color: rgb(var(--sns-normal-link-color));
}
.post-header:not(:has(.hide-locate-false)) + .post-body {
padding-top: 0;
}
.attached-image:not(.attached-image-false) {
border: 1px solid rgb(var(--sns-gui-color));
border-radius: 16px;
margin-top: 1em;
user-drag: none;
-webkit-user-drag: none;
-moz-user-select: none;
user-select: none;
-webkit-user-select: none;
width: calc(100% - 3px);
}
.attached-image-false {
display: none;
}
/* 帖子末尾 */
.post-footer {
padding: 1rem 0 1rem calc(var(--post-account-image-size) + 6px);
color: rgb(var(--sns-gui-color));
user-select: none;
-moz-user-select: none;
-webkit-user-select: none;
display: flex;
flex-direction: row;
flex-wrap: nowrap;
justify-content: space-between;
}
.post-footer-button {
font-size: clamp(0.625rem, 0.475rem + 0.75vw, 1.038rem);
color: rgb(var(--sns-button-color));
cursor: pointer;
display: inline-flex;
align-items: center;
line-height: .75rem;
vertical-align: -15%;
position: relative;
}
.post-footer-button .fa {
font-size: 1.33333333em;
text-rendering: auto;
transform: translate(0, 0);
transition: color .3s cubic-bezier(.4,0,.2,1);
}
.post-footer-button-number {
position: absolute;
padding-left: 1.5em;
transition: color .3s cubic-bezier(.4,0,.2,1);
}
.post-footer-button-a:hover,
.post-footer-button-a:not(.button-press-false) {
color: rgb(var(--sns-pressed-button-a-color));
}
.post-footer-button-a .fa::before {
content: var(--sns-button-a-content);
}
.post-footer-button-a:not(.button-press-false) .fa::before {
color: rgb(var(--sns-pressed-button-a-color));
content: var(--sns-pressed-button-a-content);
}
.post-footer-button-b:hover,
.post-footer-button-b:not(.button-press-false) {
color: rgb(var(--sns-pressed-button-b-color));
}
.post-footer-button-b .fa::before {
content: var(--sns-button-b-content);
}
.post-footer-button-b:not(.button-press-false) .fa::before {
color: rgb(var(--sns-pressed-button-b-color));
content: var(--sns-pressed-button-b-content);
}
.post-footer-button-c:hover,
.post-footer-button-c:not(.button-press-false) {
color: rgb(var(--sns-pressed-button-c-color));
}
.post-footer-button-c .fa::before {
content: var(--sns-button-c-content);
}
.post-footer-button-c:not(.button-press-false) .fa::before {
color: rgb(var(--sns-pressed-button-c-color));
content: var(--sns-pressed-button-c-content);
}
.post-footer-button-d:hover,
.post-footer-button-d:not(.button-press-false) {
color: rgb(var(--sns-pressed-button-d-color));
}
.post-footer-button-d .fa::before {
content: var(--sns-button-d-content);
}
.post-footer-button-d:not(.button-press-false) .fa::before {
color: rgb(var(--sns-pressed-button-d-color));
content: var(--sns-pressed-button-d-content);
}
.post-footer-button-e:hover,
.post-footer-button-e:not(.button-press-false) {
color: rgb(var(--sns-pressed-button-e-color));
}
.post-footer-button-e .fa::before {
content: var(--sns-button-e-content);
}
.post-footer-button-e:not(.button-press-false) .fa::before {
color: rgb(var(--sns-pressed-button-e-color));
content: var(--sns-pressed-button-e-content);
}
/* sns-intro */
.sns-intro:not(.intro-false) {
margin: 2em -6em;
padding: 6em 6em 27em 6em;
background: linear-gradient(rgb(var(--sns-intro-background-color)), rgb(var(--sns-intro-background-color)), transparent); z-index: -2;
border-top-left-radius: 16px;
border-top-right-radius: 16px;
--sns-base-text-color: var(--dark-sns-base-text-color);
--sns-border-color: var(--dark-sns-border-color);
--sns-pressed-button-a-color: var(--dark-sns-pressed-button-a-color);
--sns-pressed-button-b-color: var(--dark-sns-pressed-button-b-color);
--sns-pressed-button-c-color: var(--dark-sns-pressed-button-c-color);
--sns-pressed-button-d-color: var(--dark-sns-pressed-button-d-color);
--sns-pressed-button-e-color: var(--dark-sns-pressed-button-e-color);
--sns-gui-color: var(--dark-sns-gui-color);
--sns-button-color: var(--dark-sns-button-color);
--sns-locate-link-color: var(--dark-sns-locate-link-color);
--administrator-account-color: var(--dark-administrator-account-color);
--general-account-color: var(--dark-general-account-color);
}
.sns-intro:not(.intro-false) .post-wrap {
border: none;
}
@media only screen and (max-width: 1040px) {
.sns-intro:not(.intro-false) {
margin: 2em 0;
padding: 6em 3em 27em 3em;
}
}
@media only screen and (max-width: 540px) {
.sns-intro:not(.intro-false) {
padding: 6em 0 27em 0;
}
}
/* common-sns */
:root {
--sns-button-b-content: "\f021";
--sns-pressed-button-b-content: var(--sns-button-b-content);
--sns-button-c-content: "\f08a";
--sns-pressed-button-c-content: "\f004";
}
: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 }
JUSTICE
過去や夢や記憶
絡みつく全てを Just Reset |
JUSTICE
过去、梦与记忆
将一切连接 Just Reset |
JUSTICE
あの日の痛みさえ
抱きしめるように消えてく |
JUSTICE
就连那天的痛楚
也像拥抱一样消失 |
| … |
… |
JUSTICE
あの日の涙さえ
幻想の向こうへ消えてく |
JUSTICE
连同那天的泪水
随着幻境消散殆尽 |
我的世界一直下雨,我处理不好。

Justin,哦,悲情可怜的Justin。
这位出净糗事的男士终于在擅自旷工且人间蒸发数日后回到了他的办公室。至少他的秘书Orlando——马上就是前秘书了——总算是没再以一副天下人皆负我的表情来应付其他二位监督者。
但Andrew仍有些放心不下他这位好兄弟,隔日晌午,他正竖在Justin办公室的门前,正要敲门进去,却听见当中传出剧烈的争吵声。
“TA是谁!”这尖锐的嗓音是那位好秘书。
“你他妈管我!”这是A兄,Justin。
大门忽地撞开,掩住了Andrew。他扒这门沿,看到一只手将一个木相框摔飞在地——Andrew知道他的办公桌上有个相框,那是他们监督者三兄弟的合照,但似乎没有这个的那么新——随后Justin大步流星一脚踏在相框旁,稍稍一愣,像拿豆腐一样端起。
他瞧见Justin,那叫一个怒目金刚,抬手就猛地扇了那秘书一耳光,若似那武松气摔西门庆。
Andrew暗道一声不妙,自己定是撞了凶情,趁着Justin还未注意,赶早着用诺克立普贴逃离现场。临走之前,他悄悄拍下照片,回到自家正准备发给Kat吃瓜,可仔细一看,那相框中的照片里并不是他们三人,却是Justin和另一人的大头合照——A兄笑得灿烂,只是拍得着急,看不清旁边那位的长相。
啧。
Andrew想找Justin问个清楚,只是想来他大概尚在气头,此事,暂且按下不表。
一切要从小半个月前说起……
New Messages
嗨!Justing,你终于上线了!
怎么又下线了 :(
哦抱歉,我有些年头没用过这玩意了,上次连上Wi-Fi不小心开了自动更新,才看见
请问你是?
是我,Justing,是我,ミサキ,Tachibana Misaki!
你这人人间蒸发这么久,终于露头了!
你还好吗
现在在哪里
在国外吗
我前几天一不小心迷路到了个长得很奇怪的地方,就像在睡袋里突然钻进时光机一样,我刚要报警,突然就看到你上线了
你是不是被绑架了?
还是说飞机事故流落荒野了?
你现在在哪,能不能告诉我们具体位置
███阿姨很一直在念叨
我很担心你
OKOK,停一下哥们停一下。
我不记得有叫musaki什么的这名字的这号人
你是不是加错人了?
你咒谁呢,我最近都快过劳死在工位上了
骂我是吧,别不把监督者看在眼里
拉黑你,拜拜
Justin时常坐在Level 707的雨中,臂弯里拄着把透明伞,半仰倒在一个白色塑料椅上。Level 11的市集中淘来的随身听缺少曲子,而且时常会坏,比起听一两曲便要修理烦人磁带的设备,他情愿在这里享受世界为他演奏——当一位孤独的听众。
尽管不愿承认自身只是想远离工作,但他还是能清楚感受到心底传来的钢琴声,如雨中夹风,由面颊,卷走他的脊骨。
Justin放任自己的身体从椅上瘫软滑落,他的屁股的一半挪至浮空,让后脑挂在椅背,雨滴落在双手,上流到嘴唇。
钢琴声似乎循环许久,Justin眯起眼睛,试图在这并不昏黄的黯淡中入眠。睫毛上下咬合,烦人的拨弦声震颤回忆,在充斥噪点的黑白未辨的眼皮中,似乎映照上了陌生的画面——
他恍惚看见,在朝日光芒直射的刺目金黄里,在闪烁着黑与白的色块的玻璃背景中,一个不同于Kat和其他任何人的短发人影……
曲声还在回荡,他努力让思维运转。
这个曲子,我曾听过吗?
是……
“《愛のテーマ爱的主题曲》”
是人声。
然后是鼻尖与额头传来丝丝瘙痒。
他睁开眼睛,伸手拨开挡在眼前的亚麻色短发——他突然意识到这不属于他自己——是一张脸,眯着双眼,眉角有些压平,抿嘴笑着就像犯了错后讨好主人的金毛犬。Justin能认出来这头发的主人正以一种从他身后附身低头注视的姿态看着自己,距离如此之近,以至于Justin的眼睛能清楚的数出嘴唇上的细小凹陷,呼吸的气流打在他的眼皮,是与雨滴大不相同的触摸的知觉。
那是个陌生,却突然觉得无比熟悉的样貌。
“找到你了,Justing。”
他站起身,发现自己随身的雨伞已不知去向,但他的上身尚且干燥,现在才堪堪被雨滴滴打。
“好久不见——”
他看见那人弯着的腰直起,双手还背在身后。这人穿着一身白色衬衫,肩膀透着水渍,袖子卷到肘间。或许是被他盯得不自在,Justin注意到这人腾出一只手摆弄衬衫最上的扣子,然后提了下衣领,缩了缩下巴像是要挡住什么——应该是个男人——他的视线从某部位上移到眼前之人的脸,留着妹妹头的短发,尚且挂着水滴,一边的鬓发挽至耳后,确是一副二十约莫的学生气的模样。或许是他帮自己挡了风雨,但应该是,不记得自己认识他吧……可为何感觉,如此熟悉呢?
“请问你是……”
“Misaki,橘たちばな 巳先みさき唷。”
Justin有些愣神,他的脑子才刚开机,然后才想起来自己曾见过这个名字。
“就是那个前几天给我发骚扰短信的。是你?”
然后他又想起来自己的处地。
“喂,待那儿别动!”慌乱中他试图把随身配枪从腰间抽出,但手指不听他的,勾着腰带一边握住枪把死死上拽,他开始后悔没听秘书的话买个正规枪套。
他弓着背,碎步向后,“707层不应该有第二个人,你是谁?”
“嗯……我不是很懂?”他看见面前人形的混沌慢慢挪动,终于掏出枪来。他横起手臂,甚至未注意自己是否瞄准了目标。流下的液体打湿发丝,模糊了他的视线。他试图维系作为监督者应有的严肃气场。
是汗?不,不,是雨。
Justin抹掉眼中的积水,他看见——Mutsukiむつき还是Misachiみさち来着?他记不清了,总之是他不擅长念的拗口名字的主人——从身后变出一副哈利波特样式的圆框眼镜戴上。他看起来不高,也许只有一米六几或者更矮一些,尽管二人之间只隔了不到两三米距离,也还是要微微抬头才能与Justin对视。
他发现对方是个圆脸。
他觉得有些熟悉。
“你这个人,还真是一如既往的健忘呢。”他扶了扶镜框,镜片与瞳孔间的反光突然闪烁,一切如按剧本运转。Justin感觉自己的太阳穴跳了一下。
一些碎片——
他看到一个更幼小的,在人造沙滩与晴空中笑着的圆脸。
“要一直做朋友哦。/ 说好的不会忘记呢。”他/他说。
“Misaki?”他试着喊出那个名字,“你的名字是……Misaki?”
“嗯呢。”Misaki扯出一丝弧度。
收回最后一个干涸的音节,Misaki还是忍不住地冷颤几下,他尽力控制自己看起来正常。
他撑起一把雨伞,是带着磨砂感的半透明,对Justin伸出手,低垂着。
“走吧。”
Justin的额头不再被雨水击打。他想握住那只手,却像是触碰到有着比气温更低些许的冰凉的浓雾后穿过。
Misaki似是自叹了口气,不再看Justin。
他说,
“没关系,我们路上说。”
如是双行悸动数曲
行方不明の本音を探して 迷うからジグザグに降る雨
“给我和我的好哥们一点私人时间。”Justin对Andrew如是说。
“你的好哥们我正在办公室忙得像被豪猪扎了屁股,你哪来私人时——”电话忙音堵住了Andrew的嘴,语音信箱的提示音切断他再次拨通尝试。他看着Kat和Orlando的眼睛,无言以对,“……或许,他经期到了?”
“他没告诉你行程?”
“说来惭愧,我正忙着准备特别惊喜……”Orlando向二人鞠躬致歉,他似乎急得前胸后背都被汗液浸透,以至于都忘了他一贯优雅的腔调,“我会去找回Justin先生的,为了监督者的正常工作,我保证。”
Orlando退下,捎走了不少监督者A办公室内的文件。
“所以你前几天才刚刚切入后室?”
“对哦。”
“那你怎么不第一时间告诉我,起码给我发个消息,我好派人去接你来Level 11,不瞒你说,我有个上好的办公室。”
“是啊,某人可第一时间拉黑了我呢。”
“是吗,是哪个傻帽……哦,哈哈,不说这个。你这几天过得怎么样,有没有撞上实体或者某些犯贱的劫路党什么的?我知道Level 0的杏仁水味道肯定能让任何人都闻出PTSD来……你知道的,我可爱来这里了,这儿虽然老下雨,但起码水是水味。”说罢,Justin主动走出伞去,仰头去接雨滴,他指着自己舌头,“你看,就像这样。”
“是么。水的味道?我现在也挺好奇了……”
伞面又将Justin盖住,他咳嗽一声假装刚刚的动作并未发生。他转头看着Misaki,只看到一个后脑。
Justin认为自己似乎误触了令人伤心的话题,他决定发动自己的智慧来活跃气氛——于是他一把揽住Misaki的肩膀,然后扑了个空。Justin尴尬地握住伞柄(尽管他没注意到自己的手和一个原先就在此处的手重叠了位置),刻意地让手臂弓起一个绕过Misaki脖子的三角。
“哦,那什么,我讲个笑话怎么样,老兄,我知道你肯定爱听,就像,嗯,就像……”
Misaki叹了口气,停下挣脱的尝试,接上话,“就像我们小时候一样?”
“啊,对,对,就像我们小时候一样,我们两一块待在社区的街道儿童乐园里,那时候我们总是在一块讲故事——主要是我听你讲——一些童书还有动画什么的,我爸妈总是不让我看电视,Andrew那闷葫芦也憋不出好屁,怪不得他后面会变成四眼仔,哦对你应该不认识他,Andrew是我邻居,我总是去你那里玩。”Justin讲得投入,好像他真得已经浸没在童年回忆里,“那时候我老听你讲剧情,米老鼠啦,高飞啦,比奇堡还有哥吉拉……”
“是哥斯拉,《哥斯拉对机械哥斯拉》。”Misaki闭起眼,似乎也投入进回忆里,“你还弄坏了我偷拿出来的光碟——非要拿它当飞盘玩,结果CD机读不了了,气得我恨不得踹死你。”
“对,对,哈哈,我才想起来这事。”Justin挠挠头发,他原本想说Misaki送给他的最后被不小心弄丢了的哥斯拉玩具,但突如其来涌现的记忆向他朗诵,以Misaki的声音。他想起那些画面,依凭着棕色色调的底片。
“在想玩具的事?”Misaki睁开眼,注视身旁讪笑着的男人。
“哈,你也想到了?我还以为是我记错了,没这回事呢!”
Justin察觉自己的手掌冰冷刺骨,他猛地将手抽出与Misaki的手重叠的地方,他感受到明显的阻力。Justin看向Misaki,后者又将脑袋撇至外侧,Justin看到他的嘴角下压。
“你心情不好?”
“没有。”Misaki的声音变得有些尖,声调拉高。
“肯定有,我都看到了,你嘴都要撇裤腿上去了。尽管你的嘴只有和鼻子一样宽,没什么男子气概,但逃不过我的观察力。”
Justin被用伞柄捅了下侧腰。
“我没说过我现在不开心。”Misaki说。
“我只是想到……我只是想到我精心准备的玩具被某人扭头就忘,我现在也气得想踹你。”
“为啥啊,还在烦这事?”
“就是烦,少管我。”
“原来如此。”Justin突然停下脚步,他的小臂从Misaki的脖颈处穿过。Misaki回头看他。
“向你道歉,Misaki中士,还有你的哥斯拉副官,请你原谅。”
Misaki感觉自己的太阳穴跳动几次,他抑住脑中不断涌现的画面和它们带来的温度。
“自己回来。”Misaki说,“别乱跑,你都快湿透了。”
“是,Misaki中士。”
“Misaki,之后你的自称代号就叫Misaki。BPN-001。”
“……”
“语言功能还需要进行实地社交训练,先生。”
“没关系,时间紧迫,直接给它加载行动预设。”
“遵您意思,先生。”
“复述一遍,你的名字。”
“……”
“嗯……还是不行吗,残次品?”
“……Misaki……我的功能正常,‘先生’。”
“不错。”
“嗯……Misa……名字……姓,姓氏?我的姓氏是?”
“随你,BPN-001,不妨碍任务就行。”
被称呼为BPN-001的个体看着拘束椅边上摆着的餐盘——那是社会性训练的一部分——拿起一个橙色的圆球。
“那……那就叫……”
“TA—CHI—BA NA——橘たちばな?”
“嗯。汉字就是,你现在吃的这个东西。”
“橘子?”
“橘子。”
Justin嚼着橘皮,他甚至懒得剥皮,管这吃法叫有营养,“原来是这个意思。你喜欢橘子吗?我还挺喜欢吃的,橙汁好喝。嗯,橘子?橙子?桔子?都差不多吧。”
“我不知道。”
层级的空间变换成了游乐园的样子,Justin能记得这是他中学时曾去过的一个游乐园,当时他心情低落,但具体的原因如何,他已然模糊了。乐园的设施起初像抹了层马赛克,Justin只能看清几个路边竖着的娃娃机,热狗车还有蹦床,他们坐在娃娃机前说话,Misaki替他回忆那些记忆中的设施——“那个,木马。”“碰碰车,你以前最喜欢的东西,就像《暴力摩托》一样。”“摩天轮。我还没坐过那个。”……最后乐园归于完整。
“那,你的名字又是怎么写的?我是说,那什么‘汉字’?”Justin不停在拍娃娃机的按钮,嘴上也不歇着,吃完水果后又叼了根木签,他原本从餐车上抓了两棉花糖打算给Misaki也尝尝这难得不是杏仁味的甜品,只是层级里永不停歇的雨水瞬间融化了糖花。尽管他的头还有些时不时地隐痛,但不影响他看起来没心没肺的开心。
“巳先。”
Misaki的头在痛,感觉像是被人拿钉子锤入颅骨内。
他模糊的视线看见Justin欢呼一声,随后附身去机器出口取出玩偶举在他眼前,是一只可爱的棕绿色的小蛇。
“我的娃娃呢?吞了?!”
“‘巳’就是,へび,蛇的意思。”
“蛇?”Justin的头从娃娃机的玩具出口里拔出来,他用双手比了一个滑稽的动作,“就是那种‘嘶嘶嘶嘶内克’的丑八怪?”
“丑么……”Misaki感觉自己分不清幻觉还是真实的画面,“还可以吧,丑萌的,你的。”
“喂,你别笑我的手势舞!这可是Andrew都做不到的。”
Justin站起来,拍了拍机器的上盖。挠挠头,他说,“真可惜,本来我看到有一个棕绿色的长条鲶鱼似的娃娃,我本来都夹出来了,居然不出货这机器。”
“那就是蛇。”
“又是水果又是蛇的,你的名字真怪。”Justin和Misaki走在路上,为了炫耀他‘后室多年生存的健硕身材’主动揽下了举伞工作,“我以前都没发现原来你的真名不是用英文写的。Misaki?”
“……”Misaki低着头,不知所想。在他短暂可读的记忆里,BPN-001这串字符要更为熟悉,“啊?嗯。奇怪的名字吗?”
“是有点。”
“我也觉得。”
“是吗,你变脸还真快。”Justin装作惊讶,他摸着下巴思索几秒,“那你有没有想过自己改名什么的?哈哈,我猜在本人切入后室后你肯定在名字上或者别的事跌过绊子吧。”
“我会考虑。”
Misaki靠在围栏上。
他看着Justin正摆着白痴般的表情骑旋转木马,像派大星一样放声大笑。也许他真的随着这记忆所构筑的宫殿重返了少年心态。
一切都如此成功,流畅且顺利地进行着。
Misaki低着头,控制那些记忆缓慢的调出。
这就是你的使命。你为之付出的成果。
声音在他脑中探出身来。
在他身边,在他目下,Justin可以抛开一切作为监督者,作为成年人的繁杂琐碎,Justin的心情,他的放松畅快在这一刻达到后室十几年人生中的极点。Justin向他伸出手,木马绕行一圈,Misaki还沉默在自己的回路中,木马绕行两圈,Misaki看见Justin向他挤眉弄眼,他表示迷惑,木马绕行三圈,他看见Justin咧着嘴,朝他喊着,“快来,兄弟!”。
他伸出手和Justin击掌,出乎他意料的,他的身体并未与Justin交错,Justin握住了他的手,那个具有实体和温度的人类的手掌,一把将他带上马来。
“坐好了,哥们,我头一次发现原来这东西这么好玩!”
他看不见Justin的脸,但他认定Justin一定笑得很放荡。
Misaki抓着男人的外套,腾出手去整理被吹得四散开的头发。
风将鬓发扰至眼前,遮挡住视线,在亚麻色的视界里,他又“回想”起曾经的光景。
BPN-001并不知道该如何与人类交流,他不会说话,准确地说,他并不知道该如何以“在不暴露目的的前提下通过最善的沟通方式来达成目标”。比起“交谈”,他更擅长“回答”。
“为了完成任务,你必须要学会成为人类。”某个穿着长袍,在记忆数据中被消除面容特征的人曾对他说。
记忆混乱不堪的个体不知道如何成为人类,甚至不知道应该如何继续推进任务。个体的嘴唇如活塞进行冲程,他无法控制自己所发生的音节,他感觉自己仿佛只是坐在颅骨所构成的一个无光的秘密房间中,透过名为“瞳孔”的显示设备去感受电影般的画面,至于“舌”与“喉”所进行的运动,一切不属他控制,也不能被他理解。
个体能理解,通过对比记忆数据发现自己所进行的声波交互内容正明显的缩短,逐渐退化成只有几个音节的短句。他试图去调用曾经有人替他输出的句子,但他命令自己的口腔展开,连气流都无法排出。
胸腔中的部件正在无规律的进行快速短促行程,他如此清晰的感知到部件运转的沉闷鼓声。
鼻翼内传来灼痛,他张着嘴,以几分之一秒的频率吸气,吐气,但肺部始终没能接收到新鲜供给。
手,手抓住身边能依靠的所有物质,另一边的手掌按压头部。他弯着身,眼皮张开到极限,直到失焦的视线被所流出干涩眼泪遮掩也不松懈,吸气,吸气,吸气,鼓动,吐气。
任务。
任务。
任务。
他的躯体在发抖,他的牙齿,他的骨头,他的身体在高频震动着,他试图抱紧自己,通过蜷缩来提升温度。他正感受自己快速失温的进程,不会有失温症的幻觉,因为他无比清醒。他不知道怎么做,冷,好冷,他想要也需要做些什么,以免身体崩溃,以免任务?任务?他需要回想。
“此后,你要忘掉BPN-001这个代号,‘Justin的童年好友Tachibana Misaki’,记住,这是你的预设的基点,你记忆与身份的锚点。而此后的记忆,需要由你的意志去建造。”他说,他说,谁在说?
谁?
谁?
谁?
他继续回忆,身处█████的短暂的起始记忆一晃结束,却只让他抖得更猛,他开始寻找代替方案。任务?Justin?
Justin?
关于Justin的记忆不断翻涌,从预设,到初见,到乐园,到玩偶,再到初见,再到,再到社区街道?到中学?到公园?商场?草地?桥?花?到Justin?
他“想起”数不尽的片段,从一米不到的小屁孩到穿着毕业礼服的Justin和Misaki。长达十几年的数据在翻涌,在炽烤他的处理中枢。他的额头渗出汗来。
太阳穴止不住地跳动,头痛欲裂。
喉中只剩低哑。
好热。
他感觉到有人在呼唤。
他感觉到怀抱。
“Misaki?”
“Misaki?”
“Misaki?”
在他空洞视线之外的现实,物质环境不断的裂解,循环,变化再破碎。
Justin站立着,他从未见过这般景象,但他所处的方寸地方始终完好。
世界在疯狂地变化。如魔方般扭曲又聚集,向他展现熟悉的各异姿态。
——那是他五六岁时候待过的托儿所。他看到毛发浅短的两个幼童相互打闹。
——那是他初中叛逆期逃学最爱去的公园。他看到一个略高他半个头的穿着制服的身影试图带他回去,然后恼人地看着他玩滑板。
——那是他兼职赚到第一桶金后去的商场。他看到他带着一个表情别扭的家伙一起逛街探店,在后者一副不耐烦的表情中向他炫耀新买的球鞋,直到偶遇Kat与Andrew时,才发现不知觉间已经跑没了影。
——那是他旅游时的景色。他看到他们二人在威斯敏斯特桥上一起合照,那时他已是成年,正值青春。
——那是——那是一簇花,是他捧着花?他尚未看清自己所面对的人,画面便消失无影。
Justin拿起身边一个品红色的拍立得,试图固定下这些原本早已被遗忘,而今托层级混乱再现的记忆。可底片上,只有一个黑色的扭曲的人影,他哭嚎着,正捧着自己的脸。
他放下相机,光圈所指的前方,物质逐渐稳定,变化回最初的模样。
他听到一阵低哑的嘶吼,尖叫声逐渐放大,直到像把他的心脏放进鼓中敲打。剧烈的疼痛与眩晕感袭来。
Justin发现Misaki跪在身前地上,两眼空洞而痛苦。
为什么
相対して育つ感情をまだ私は見つけてはいないのね
监督者-A擅离职守的第四日,通讯设备失联的第三日。
Orlando仍坚守在监督者-A的专属办公室内,整日在办公室-监控室-Justin住处之间三点一线的来往。
有人问他为何不趁机给自己放个短假,反正这几日也无要事,岂不自由潇洒?但Orlando只是埋头搜寻上司去向,监督者-B曾去Justin住处转悠时还且看见Orlando将书房搅得遍地纸张。抱歉,我正在研究Justin先生的日记,希望能找到他的去向线索,这些文件我会整理干净。秘书答。Katherine女士大惊,责令Orlando立刻出去竖着,上缴了他手里的钥匙。
不过,至少在M.E.G.一众职员中,Orlando无疑最是无愧于他最佳秘书的盛名。即使自己的上司监督者-A行事懒散,好酗酒、语浮夸,整一没个正形的浪子作态,却仍能辅佐其完美处理所有工作,从工位到酒桌到基层甚至是监督者-A的私生活,无一人不对他的工作能力和优雅行事赞赏有加。都言,就单凭Orlando那柔美的面貌,倘若他是女儿身,那绝对是要被Justin教堂礼花迎娶回家的。更有坊间流言甚者,揣测好秘书Orlando其实本就是女扮男装,否则怎能解释他与Justin不仅工作上密切往来,私底下更是能管住生性放浪形骸的监督者-A至今未曾流出绯色丑闻。
至于他本人对这些流言如何看法?还未曾有人听闻Orlando正面回应。这位Justin的好秘书此刻正忙着和另外二位监督者汇报情况——
“昨晚我通宵研读了Justin先生的日记,我发现了其中的一些规律,Justin先生爱去Level 707放松,虽然这次没有提前报备,但大概八九不离十。”Orlando在电话里给Kat和Andrew汇报,为了节省时间,他此刻已经在前往切行交通的路上,“Justin先生已经失联两天了,我认为一定是遇到了什么突发情况,我有义务前去营救。”
“你去过Justin宿舍!”Andrew一惊,赶忙小声询问Kat,“你知道事吗?”后者给了他一个肯定的眼神。“那他岂不会也有我房间钥匙?”Kat翻了个白眼说他自作多情。
“好吧,我批准了。”
“这事结束后你需要暂时调去别的岗位——你……”Kat憋了半天,最后补上说,“你太惯着那货了。”
长梦中。
Misaki想起初次踏入Level 707时的样子。
无边的黑夜,感觉自己存在于墨水之海中。他曾经期待能在这里看到云,哪怕是比黑夜更黑的乌云,称之为“星”的亮点或是月。但这世界只向他展开失望。他走在被雨水泥泞的草上,压下草茎陷进土中的每一脚都使重心为止倾斜,与干裂而坚硬的水泥地面大不相同。他折下一朵纯白的小花,只需要两指轻轻搓合就能将之碎成粉末,他想把它戴在耳边,但它无法承受水的冲击。他拔出胸前口袋里的工具,将其藏至裤腰,如此便能将花朵安置于心口,保护它的形状。
他又行走了几十个呼吸。在地平的尽头,浮出一个睡在躺椅上的——一个金发的,有些消瘦但尚且打理清秀的男人的身影。
他戴上眼镜,忍过脑畔冲击的闷痛,“记忆”开始灌输,向他讲述一个孩子,与他相伴的幽灵般的友人之间的故事——
的倒叙之开端,与将属于他们二人的基础设定。
镜片下的视线已经清明,他们之间的距离将不再是永恒的无限。
Misaki将会走进Justin。
Misaki感觉自己好像睡了漫长的一觉,主干躯体的骨架嘎咕响着报警僵硬。侧脑还有些隐痛,他发现自己的背和后脑在受力,他正躺着,但意外的没有潮湿感。Misaki扭头检查身下,一件针织外套垫着他的上半身,两个袖口叠在一起枕着他的脑袋。
Misaki坐起身,发现自己身后,只剩了件短衫庇体的Justin倚在最初的椅子上,他的手臂撑着脑袋,已经沉沉地睡去。
他检查了自己的随身物件。
眼镜。还架在他鼻梁上。
手枪。为了隐蔽原本就没带,他才想起来。
匕首。他伸手按了按自己大腿外侧的长裤,皮肤上冰冷的触感重了一分,裤腰上预留的出口也没变形,可以很方便的拔出来,一切正常。
贴身衣物。非常完整,没有被动手动脚的痕迹。
还有一朵小花。居然还完好,只是被压扁了。
他松了口气。
BPN-001贴至Justin近前,男人似乎很累,像是工作了很久似的疲惫地打起呼声,似乎连眼角的皱纹都多了些。
Misaki看着他。这是他第一次如此近距离的观察这个位高权重的男人的脸,所谓监督者,有着能轻易杀死脆弱的人类的力量,但同时也能脆弱的被轻易杀死。但这并不是他第一次脸贴脸的观察他,观察名为Justin的男人的脸。
他看起来累极了。
BPN-001看着他。他看不到男人蓝色的眼睛,只能注视一下此人的睫毛。他从胸口掏出一朵花——只是出于训练带来的肌肉记忆的动作,然后他想起来那东西被自己调换了位置。
Misaki叹了口气,准备丢掉这无用的东西。但突如其来的,一些不属于预设中的想法在心中乱窜,他把有些被压扁了的花端在指尖细细打量,他看到纯白中流动着细小的黄色和粉红的纹路,旋转着,仿佛昏迷前所见的木马玩具。他突发奇想将花干顶在头上,用手撑起遮雨的顶,花在发丝上驻留了数秒,枝上卷着一根亚麻色的发丝被吹落下来。他不自觉的发笑,重新将它放回口袋里。
正事要紧。一个冰冷的声音告诉他。
他将身体压在Justin上,后者尚在美梦中呢喃。就如此吧,在美好的幻梦里永远长眠,也算是永恒享受幸福。Misaki如此安慰自己。
他的双手环绕在男人的脖颈,他剧烈的深呼吸几口,无视胸前中要震破肋骨的冲动和眼眶传来的异样感觉,他决定一鼓作气终结这一切。
BPN-001的双手奋力收拢下压。
他闭上眼,让自己呼吸,不敢去看可能会出现的痛苦的脸。
属于Misaki的心脏在跳动,挣扎,要从BPN-001的身躯的囚禁里逃脱。
数秒。
数分。
双手的触感反馈来异样,指甲刺痛了掌心。
他睁开一个眯着的缝。Justin还睡着,他长吐一口闷气,撑开全部视野。Misaki发现自己的手穿过Justin的身体,抵在椅背上。
Misaki不敢去想,无论是失败或成功的一切可能的未来。他不知道接下来应该如何行动,也不知道为何他与Justin之间再次隔了一层虚幻——或许是因为他正在睡觉吧,也许他不在做梦,暂且丧失了意识。他如此为自己辩解。
Misaki楞在原地——保持着这样上半身俯下紧贴着压迫Justin的姿态,他不知道接下来该怎么做,尽管那声音仍在播报全部预案,但Misaki此刻不想理会。
他看着Justin紧闭的眼皮,他“想到”,他看见一个金发的二十出头的青年在夕阳下闪烁着黑与白的反射光斑的河上,举起一束鲜花,尽管青年背对着太阳而导致刺目的日光让他看不清面容,但直觉,灵魂在尖啸,在传递一个名字——
这不是他的记忆。这不是BPN-001的记忆。这是他的记忆。是 Misaki 的记忆。不属于BPN-001的记忆。
如此真实。
Misaki不知道该如何反应,他停止了思考。
他感觉自己的面颊与耳尖在发热,气血上涌。
Orlando咬断了他最后一个完好的手指甲。
他刚刚经历了此生最愤怒而无力的十几个钟头。他亲爱的上司正在来路不明的恐怖分子手中,一个不在他所绘制的“Justin人际关系表”中的陌生面孔劫持了监督者-A并强迫他配合这个一脸狡诈的不明分子进行意义不明的消耗精力的运动。Justin此刻瘫软着失去意识,这就是他不幸落入邪恶阴谋最有力的证明。Orlando如此后悔没有带上武器。
他藏身在草垛中,看着Justin四仰八叉的躺着,他能清楚的看见那件稍微淋湿了的,紧贴着Justin身体线条的衬衫,因为浸水而能隐隐透过布料看见其下皮肤的颜色,Justin平时也不乏锻炼,尽管胸腹的肌肉不甚明显,但整体也能算得上线条平坦流畅,随着Justin无意识地扭动身体甚至露出一点肚脐的部位,急得他恨不得立刻上去把自己的外套脱下来给Justin盖上。
Orlando看见那个面目可憎的亚麻色头发的小矮子,居然凑得离Justin这么近,几乎是整个身子都贴了上去。Orlando战栗地咬着指甲,瞪大眼睛,眼睑甚至鼻翼的肌肉都在用力扩张.
从Orlando的视角看去,压在Justin身上的小矮子明显是欲行不轨,更是在停滞片刻后整个人往下一压。这都要鼻对鼻,嘴贴嘴了吧!Orlando痛心的想着,他的心脏正感觉被油和醋同时煎炸,升起灼热的痛感。
那个矮子,邪恶的阴谋者,不知廉耻的混账,图谋不轨的恐怖分子,在Orlando的眼前,毫不怜惜的跨坐在Justin,监督者-A万人之上娇贵的身体上,整个上半身紧贴着压着Justin上百秒。Orlando如此愤怒,他的心在流泪,他咬着自己的袖子努力不然自己尖叫出声。天呐,他一定是趁着睡眠去强吻。他绝望地猜想。
Orlando一刻也没有放弃冲出去,但层级空间的特性强迫他不得不停留在原地,在一个仅能清楚的观察到却遥不可及的暧昧的中间距离而无法接近Justin。Orlando的呼吸越发粗重,仿佛要把自己的肺管也一并喷出。
他是如此绝望,如此无力。
似乎是上天体谅了他的悲伤,同理于他的怒火,在那个亚麻色头发的家伙从Justin身上坐起的数个呼吸之后,Orlando惊觉那曾挡住自己无法前进的如凝胶般阻滞感消失殆尽。他已放弃思考一切后果,奔向Justin。
Misaki冷静下来,他无数遍地默念重复自己放空大脑。脸颊上温热的感觉开始慢慢消退。
他试图回忆那些被灌输的训练的知识,却开始不受控地闪回那些他所创造的片段。Misaki感觉自己的心口似乎延伸出一个空洞,有些沉闷而随着失落的虚无感。在瞬息之间,那些被创造出的记忆不断地进行着自我补完,他开始看到那些原本非现实的细节被填充,一个个事件的时光间的空隙被无比真实的人类的记忆所连接,他想到数据中所指的走马灯。在跳跃的非线性的时间感受中,Misaki同步着所有记忆中的感官,经历了从婴儿至青年的所有年岁,不再只是为了目标,而更是包容了名为Justin与Misaki的两个人类之间相处的一切。
他还坐着,他的手撑在Justin的胸口,他惊讶地发现自己又能重新触碰到那个身体。
Misaki尚楞在原地,听觉系统告诉他身后有急促的脚步传来。
Orlando拽起眼前之人的领子,一把将其掀开,任其摔倒在地。
“么么——”
Justin撅着嘴,大概是梦见了什么好事,只是幻想恰好随着外界的嘈杂破灭。
一个扭曲的脸占据整幅,虽然意识还未完全开机,但仅凭这贴着他双眼的瞳孔的样貌,身体自动辨认了来者何人,他最先是感到菊花一惊。
完全出于记忆里提前演习了千百遍的预设,Justin先生本能地一个大跳避开身前的障碍,将双手护在裆部和臀后顺利地从椅子上摔下成倒拔葱。
等他站起来,倒腾双手后终于是重新驯服了四肢,把一只手抽出来挡在身前,而另一只则继续留在裆部护主。
“Orlando?怎么是你?”
将视线挪至更远处,Misaki正跪倒在地,双手捂着心口喘气,他的瞳孔已经涣散,脸上流着细密的汗,发丝散乱,似乎是看到了什么极大的恐怖,久久呆滞着。
Justin的焦点在两人间来回转动,马上明确了目标。挡在裆前的手提了提裤腰,向Misaki跑去。
“等一下!”
秘书一把拉住他的手,紧紧攥住Justin的袖口。
“Justin先生,原来你在这里,请不要误会,我,我,是我拜托Katherine女士和Andrew先生的允许来找你的。抱歉,无论如何您一声不吭就消失的话,我们非常担心您!我找遍了您会出现的工作地点和常去的散心处,我,我是猜到了所以才会来这里碰碰运气,您不要误会,我没有跟踪您也没有做过任何冒犯您隐私的事情。但是您已经消失好几天了,监督者的工作不能没有您,我这个当秘书的也不能没有上司您说对不对,实在是没办法——抱歉,一定吓到您了吧,您不原谅我也是理所应当的,是我擅自做了那些事,真的很抱歉……”
Justin扭头看回这个前不久狠狠羞辱了自己尊严的男人,他没想到再次相见会是这种景色。但好友在前,他尚且不想丢了面子。
“想工作是你的自由,随你怎么想。别装作一副为了别人的样子。”
“可是,您是MEG的监督者啊,没有您的话……”
“直到现在你还坚持自己所谓秘书工作的谎言执迷不悟吗?真是没眼看。你也差不多该换个岗位了吧。”
“为什么?为什么要说这种话呢?我们,我们以前明明是那么配合的亲密无间——每天都很开心,我们一起共事,现在就因为那个而要彻底决裂也太狠心了吧。‘你是我最得力的助手’这么说的人不正是先生您吗?”
“助手?那么,那天你又算什么。”
“为什么?拜托了,就让我们重新开始好不好,回到我们曾经的样子,您肯定也这么想过对吧?我也打算去找Katherine女士和Andrew先生……”
“是吗?”
Orlando看着Justin,后悔和懊恼充斥着,明明那天喝了酒的是Justin,可当时此刻做出胡乱行动的却这么像是自己。
Justin还在关心那个来路不明的人,Orlando试图把他拉回自己的朝向,但反被Justin带得一下跪倒在地,他仰头盯着那个高高在上的侧脸。
“但是,将这段缘分彻底结束的,正是你自己哦。”Justin冰冷地宣告。
“不是的!还没有结束!我,我一直在想着向您表示歉意……”
“我没说需要你的道歉。回去吧,不要再和我扯上关系了。”
Justin还在往前。
“等等,不要走。我真的很喜欢在您底下工作的日子,我对这缘分很重视,真的。”Orlando双腿蠕动着,试图抱住Justin的手臂,他又恳求,
“拜托了!要是没有Justin先生您的话,我!”
“放开!”
“到底怎么样您才能允许我回来?道歉也好,赔偿也好,给您安排相亲也行,我手底下有很多相貌堂堂的职员,不管什么性别都行,我还能给您安排去别的聚居地度假,费用都由我出,您的工作也可以全部交给我完成——只要是我能做的,我什么都愿意做!”
“你到底是凭着什么样的心思说出这种话的,仅仅是因为‘敬业’吗?可以偿还自己犯下的错吗?想当然的事谁都说得出来。”
“可是,我真的……”
“你这人,真是满脑子都想着自己呢。”
“……”
Orlando的嘴唇颤动着,但最终还是一句话都说不出来。
雨淋在跪地的男人脸上,视线被液体模糊,慢慢看不清走远的Justin。
Justin扶起Misaki的身子,他试着唤回这双无神眼睛的主人。他不断摇晃着,在耳边喊他的名字。
不断的刺激中,Misaki的头终于自主地抬起,双目相对,在Justin的期待中,却听见他说,
“目标……”
“什么?”
“直到……目标……死亡……”
Justin不明白他在说什么,他不知道该如何行动,只是一味的怀抱着,免得怀中的躯体再被淋湿。那体温仿佛不似人类般冰冷,只有心口向外散发着热度。
他到底是谁?
一个声音出现。
“那还用问了,Misaki是我最亲密的手足亲朋,是我从小的好友。”
为什么,没人认识他?Kat?Andrew?又或者是……Orlando?
“他是我的朋友,又不代表其他人一定要认识他。”
哪怕在这十几年的长度中,也是如此吗?
“……Misaki是我的朋友,我相信这一点,这就够了。”
“如果他别有用心呢?”
“Orlando,你说够了没!”Justin转头呵斥,却发现身后空无一人,连场景都换了副夜间的模样。
“如果他别有用心呢?”
“Orland?”
“他已经被我送走了,你还没回答我的问题呢,Justin。”
Illusory X: 潜在表明
揺れる 揺れる 揺れる愛 ああ その命と重なって
Justin和Misaki坐在摩天轮中。
自从Misaki清醒过来后,似乎对“能与Justin进行肢体接触”这种理所应当的事表现得格外兴奋,几乎无时无刻不拉着他的手,已经领着Justin在这个乐园样的地界疯玩了一整天。有些明明早就遍历过一次的项目,还是被硬带着又玩耍一趟,Justin试图表达自己无语的情绪,但所有休息的提议都被Misaki严肃且不留任何余地拒绝,不过,比起去回想Orland那个晦气的家伙,看着现在身边朋友从未有过的灿烂的神色,Justin的心情终归要好上不少。
他坐在舱里,从这个高度向层级所展示的乐园以外的外延空间看去,全是模糊的在不经意间变动的城市构成灯光变幻的景色。Justin的脸贴在玻璃上,出于本能的不敢看对向的人,尽管他能感觉到在这个狭小的空间,哪怕刻意控制自己的身体拘束着,也依然难免小腿或者是脚尖什么部位不经意的相互触碰。
他的指间捏着一张大头照,他与Misaki二人紧挨着,二人的头凑在一起,Misaki看着Justin,而他的眼珠子则除了边上人的方向外满处转,气得Misaki鼓了一边面颊。平心而论,Justin也认为这照片拍得不好,但他实在受不了这种两个人挤在原本应该只给一个人用的小胶囊舱里的无由头的尴尬感觉,死活不肯再拍一张,最后只能说待会亲自拿相机拍张帅的留念,这才安抚下了Misaki。
Justin不知道该说些什么打破这个冰冷粘稠的氛围,他试图余光偷偷看对面发挥自己身居高位培养出来的察言观色的能力,却发现Misaki的眼珠子也一起转了过来,浑身一惊,眼神下撇假装欣赏相片。
他把相片翻面,上面署了他Justin的大名,下面自然是朋友的名字,橘たちばな——
“美紗紀みさき?”
他抬头看Misaki,后者正巧也看着他。
“这个是?”
“是我啊。”
“但……”
“在拍之前,新想出来的名字。”他不再盯着Justin,学着Justin的姿势假意去看风景,“以后你想到我,就要想到这三个字。之前那个,忘了吧。”
“为什么?”
“虚假的东西,反正最后都要毁掉的,既然如此,不创造出什么留下些的话,我的生命也就什么都没有了。”
“毁掉?那是什么意思?”
“因为你和我之间的相遇可不是偶然哦。”Misaki看了眼Justin后又收回目光,眼神和头颅一起低沉下去,“在踏入这片空间开始,结局就已经无法改变了。”
Justin猛地窜起来,头顶狠狠撞向天花板,他捂着头追问答案。
“虽然一开始我很讨厌你,因为每次创造那些记忆带来的疼痛都无比折磨。”Justin听见一声轻笑,然后他接着说,“可比你现在这样子疼多了,Justin应该也跟我感同身受过吧。”
“难道你想说,过去都是虚假的吗?”
“没错そうだよ。”
Justin看见他也站起身来,语气和眼神从未有过的冰冷,仿佛做了什么重大的决定。
“不需要了。”
“什么意思?”Justin问,“是不需要我了吗?”
Justin看着Misaki,他从未见过这样的表情,那下垂的嘴角好像在嘲笑他的天真。
他只觉得有股火闷在胸口,愤怒,又或者是疑惑,他攥紧了相片,边角已经揉成一团,Justin抓住Misaki质问。
“你凭什么擅自说这种话?”他低头看着褶皱的照片,Misaki的眼神告诉他,“难道那时候你不是真心的感觉开心吗?明明我们从小到大——分别了这么久,好不容易重逢,你又要逃跑吗?”
“不是的……”
Misaki抱着自己的手臂,右手垂在身侧,扭头不愿看他的脸。
“那你说——”
“都是假的!”
Misaki突然吼了出来,他瞪着Justin,眼中充满血丝和泪。
“我从来就不是你的朋友,你不认识我,不认识什么Andrew和Kat以外的同龄朋友,没有什么青梅竹马,你没去过什么儿童乐园,也从来没出国旅游过——”他深吸了口气,闭上眼咆哮着说出最后的话,“这个世界上根本不存在那个叫橘巳先的人!”
空气像是凝结成固体,将这狭小的黑暗空间中的两人拘束,许久,安静,无人再说话。
Justin感到一阵口干,他的后背不断的寒颤,想要逃离这里。但这高空,无处可逃。
“不存在……是什么意思?”
Misaki低头咬着嘴唇,又是许久沉默,向他坦白。
“这些记忆,那些你从小到大的,在那个被你称为家或者前厅的对我而言完全是陌生世界的地方里,那些存在‘我’的记忆,全部,全部都是为了任务,通过意识侵入而由你我一起临时创造出来的东西。”
“橘たちばな巳先みさき,这个名字,也是虚构的。没有意义。”
“任务?”Justin发问,“什么任务?”
“杀死你的任务。”
Misaki不知从何处拔出一把匕首举至眼前,Justin几乎下意识的伸手去拔枪,但他的手不知怎么的停在腰间半空,僵硬着不愿动弹。
中间发生了什么,我已经记不起来了,可能是惊吓过度,大脑自动删除了也说不准。
回过神来时,鲜血已经流遍了身子和双手,我一度以为自己已经归西,但心脏还在跳动,也未有感到疼痛。等视线重新聚焦,我才发现Misaki已经倒在我的怀里,他的双手反握着那个匕首,刀刃深深刺入胸口。
我慌忙打算拔出匕首,不管怎么说我也无法催眠自己对眼前之人的死亡无动于衷,哪怕明明倒在地上的原本应该是我,哪怕他欺骗了我。
但Misaki拦住了我的动作,他死死握着我沾满血的手。
他说,
“笨蛋,怎么能随便扒女生的衣服……”
“为什么?”我问他,“你不是要杀我吗?”
我不知道该怎么做了,我用空着的手拨动腰间的枪套,取出手枪,我的手握着Misaki的手,枪柄夹在中间。Misaki的血止不住的流,我清楚知道他时间不多了。
“你不是要刺杀我吗,不是说那些记忆都是虚假的吗,你看,我把枪给你,机会就在眼前……”我的牙齿战栗,“喂!Misaki,醒醒,别闭眼!醒醒!”
“谁说我在乎这个了……”Misaki咳嗽几声,看向我。
“别说了,马上就能下去了,等会,等会去止血,回我办公室,我那里有医疗室……”
Misaki似乎想要坐起身,我赶忙将他扶到座位上。
“我没说过讨厌你。”他说,“虽然那些记忆是虚构,但也是真实的。”
Misaki的眼神恢复了点温度,似乎是回光返照。
“十几年的记忆,我可是一分一秒不落的亲身经历一遍了呢……很遗憾,我们必须有一个人死在这里,这是命定的结局。”
“别说胡话了!”我反驳着,“如果你早点告诉我的话,我带你去MEG,或者别的什么地方,总会有方法的,何必呢……”
他长长叹了口气,说,“谢谢你,Justin,如果没有你的话,恐怕我这短暂的生命,永远都没法体验怎么作为人类真正地,哪怕只有一瞬间地活着。尽管短暂,可这段时间,足够成为我最珍贵的宝藏了。”
美紗紀扭头看向窗外,摩天轮旋转着的景色里,一轮明月高悬。
“我……”
美紗紀还想说什么,但她已经永远闭上了双眼。
此刻,我的心脏才感到一阵迟来的刺痛。