@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 {
--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 }
一
绵绵细雨敲打着清冷的地面,霓虹灯在湿漉漉的街道上晕开模糊的光团。一家不起眼的小酒吧隐匿在一条不起眼的巷子里,一只不起眼的大橘趴在酒吧的门口,望着那些不起眼的行人。这里灯光昏暗,私密性不错,更重要的是——老板不太严格地核对顾客的年龄。
角落里,Annie一手杵着脑袋,另一手用吸管有一下没一下地戳着玻璃杯里那片可怜的柠檬,果汁几乎没动。她身上的皮夹克似乎也耷拉着,一撮侧发时不时滑落到她眼前,又被她吹了上去。对面的Sherry则将整个人缩在高领毛衣里,双手捧着那杯蔓越莓汁,目光低垂,仿佛在观察杯壁上凝结的水珠一颗一颗的滑落。二人看起来失去了往日的活力。
沉默持续了好一会儿。
Annie终于受不了这死寂,她抬起头,目光落在Sherry苍白的脸上,那紧蹙的眉头和失去血色的嘴唇让她心里一阵揪紧。她清了清嗓子,试图让语气轻松些:
“嘿,至少这果汁味道还不赖,对吧?老贝克要是知道我们在他竞争对手的地盘喝这个,估计要气得吹胡子瞪眼了。”她试图挤出一个笑容,却显得有些勉强。
Annie叹了口气,身体向前倾,声音放得更柔:“听着,Sherry,我知道这事很糟心,但…别太往心里去了。Dr.Cb会处理好的,那些调查组的人总有一天会明白…”她伸出手,越过小桌,轻轻覆在Sherry微凉的手背上,想传递一些温暖和安慰。
Sherry的手颤抖了一下,但没有立刻躲开。
Annie继续说着,语气刻意装作十分豁达:“再说了,就算他们不明白又怎样?我们可是大名鼎鼎的‘量子幽灵’,大不了以后不接他们的活儿了,把义体还给他们,咱们自己找乐子去!网络那么大,总有……”
“怎么能不在意?!”
一声压抑着的、带着细微颤音的反问突然打断了Annie的话。
Annie愣住了。
Sherry猛地抬起头,那双通常清澈冷静的眼眸此刻竟泛着红,里面翻涌着Annie从未见过的激烈情绪——痛苦、委屈,还有一丝被压抑的愤怒。
“研究员艾略特·肖死了!就在我们快要找到他的时候!”Sherry的声音因为激动而略微提高,她反手抓住了Annie的手,指尖用力,将那双手捧到自己身前,“他们…所有人都认为是因为我们的失误,我们的鲁莽逼死了他!甚至…甚至怀疑我们参与了更糟的事情!”
她的呼吸变得急促,胸膛微微起伏,仿佛终于找到了一个宣泄口:“我们被停职,被怀疑,像罪犯一样被审查……怎么可能不在意?!”
说到最后,她的声音几乎带上了哭腔,但倔强地没有让眼泪掉下来,只是死死咬着下唇,看着Annie。
Annie完全怔住了。她习惯了Sherry的冷静、自持、偶尔的害羞,却很少见到她如此情绪失控的样子。她忽然意识到,Sherry承受的压力和痛苦远比她表现出来的要深得多。
短暂的震惊过后Annie的心中被一种更强烈的保护和共情所占据。她收起了所有故作轻松的姿态,表情变得严肃而坚定。她用力回握住Sherry的手,指腹轻轻摩挲着对方冰凉的指尖。
“对不起,”Annie的声音低沉而认真,“是我说错话了。你说得对,这件事不能就这样不了了之。”
她直视着Sherry的眼睛,目光灼灼:“艾略特·肖的死绝不是意外,更不是因为我们。有人在我们前面动了手,还顺手把黑锅扣在了我们头上。这件事不能就这么算了。”
Sherry在她坚定的目光和话语中逐渐平静下来,激烈的情绪慢慢褪去。她深吸一口气,点了点头。“所有的答案,一定还在现场。”Sherry的声音恢复了平时的冷静,但多了一丝不容置疑的锐利,“调查组或许已经得出了他们‘满意’的结论,但他们肯定忽略了某些东西。”
Annie的嘴角勾起一抹熟悉的、带着野性和挑战意味的笑容:“所以…我亲爱的‘福尔摩斯’先生,你的意思是?”
Sherry微微挺直了脊背,尽管眼睛还有些发红,但神态已与之前截然不同了:“我的意思是,‘华生医生’,”她甚至可以模仿了一下英国绅士的语调,“如果我们想证明自己的清白,找出真相,只有一个地方能给我们答案——艾略特·肖出事的现场。我们必须返回那里,再一次,更加仔细的调查一遍!”
Annie凝视着Sherry的眼睛,“你知道,这意味着我们将违反‘禁足令’, 若是被抓到,或者并没有调查到什么结果……”她顿了顿,“我们可能将要面临更加严肃的惩罚或者更多的嫌疑。”
Sherry被盯得面色泛红,但并没有移开视线,“Annie,我从过去得到的唯一教训就是——绝不能坐以待毙!”
二
姐妹二人回到了临时的安全屋——一间由Dr. Cb提供的、位于大学边缘的旧公寓,这里没有错综复杂的监控设备,是她们此刻唯一的庇护所。
“准备好了?”Sherry坐在工作台前,手指飞快地在光屏上操作,最后确认着参数。工作台上,一只外形极其逼真的狸花猫义体安静地趴着,它的眼睛是两颗精致的光学传感器。这件义体是姐妹二人仿造自身义体的工艺,私自打造出来的,以备不时之需。没想到这么快就用上了。
“随时待命,医生。”Annie活动了一下脖颈,躺进旁边的连接舱,语气带着跃跃欲试的兴奋。但意识离体入驻非人形义体,总归不是那么舒适的体验。“只希望这‘小猫咪’别半路没电,或者被真的小野猫看上了。”
二人自身的义体都装有定位装置,若定位离开‘禁足区’或定位信号消失,就会触发警报。届时二人恐将面临真正的监禁。
“能源足够持续6小时,生物信号模拟也足以骗过大部分动物。”Sherry头也不抬,完成最后一道指令,“记住,Annie,你的任务是观察和记录,非必要绝不互动。我会全程监控你的状态和参数。”
“Yes sir!”Annie咧嘴一笑,闭上眼睛,“我的身体就交给你看管啦,可别趁机恶作剧喔。”
Sherry的脸微微一红,瞪了Annie一眼,没接话,只是按下了启动键。连接舱发出轻微的嗡鸣,Annie的意识如同被抽离,短暂的光怪陆离之后,她“睁开”了眼睛,视野变成了略带广角的、高清晰的猫科动物视角。她试着动了动,轻盈的仿生躯体响应极其灵敏,就是反曲的后腿用着十分别扭。
“连接稳定。”Sherry的声音通过内置通讯器传来,“感觉如何?”
“感觉好极了,就是有点想吃鱼喵~。”Annie操控着猫义体,简单适应了一下全新的运动方式,灵活地跳下工作台,优雅地甩着尾巴走到Sherry身边,亲昵的蹭了蹭她的手,又伸出舌头舔了舔。
“好啦好啦…”Sherry嘴上这么说着,但手却下意识的挠了挠小猫的下巴:“现在就叫你‘Annie喵’吧!保持通讯畅通,行动开始。”
Annie喵哈气以示抗议,随后她操纵着小小狸花猫的身体,如同真正的夜行动物一般,悄无声息地溜出公寓,融入雨夜。它避开主干道的监控,利用绿化带、排水管和通风口移动,目标直指大学核心区的那栋发生“意外”的研究员公寓楼。
楼下果有几名便衣值守,Annie喵小心翼翼的操控着猫义体,轻松找到了一处监控死角——一条用于空调外机排线的狭窄通道。她轻盈地攀爬跳跃,从三楼一个未完全关闭的卫生间通风窗钻了进去。
公寓内一片死寂,空气中还残留着一丝微弱的、难以形容的焦糊味和清洁剂的味道。大部分个人物品已被收走,家具上蒙着一层薄灰。事故发生的书房门口还拉着官方警戒带。
猫的视野扫过客厅、厨房,最后定格在书房。她小心翼翼地绕过警戒带,钻了进去。
书房内还维持着原样。官方现场标记依然存在,中心是艾略特·肖倒下的位置。书桌上,个人终端处于休眠状态,旁边放着一个空的玻璃水杯。桌角散落着几页打印纸——那份至关重要的“遗书”就是在这些散落的纸张中发现的。一个常见的家用单杯咖啡机放在桌角,旁边散落着几枚用完的咖啡胶囊。
“Sherry,我已进入现场。开始传输实时数据。”
“收到。数据流清晰。”Sherry的声音传来,“官方最终结论:艾略特·肖在得知调查即将指向他后,畏罪自杀。服药过量。现场发现了打印的遗书,内容承认了窃取数据的企图,并表达了对即将面临之后果的恐惧和绝望。我们的调查,成了压垮他的‘最后一根稻草’。”她的语气平静,但透着冰冷。
Annie喵没有靠近中心现场,而是像真正的猫一样,沿着房间边缘踱步,锐利的目光扫过每一个角落,每一件物品。
Sherry透过Annie喵的眼睛重新审视着现场,“首先,重现官方视角下的现场。”Sherry的声音如同旁白,“打印机、空水杯、可能用于服药的咖啡、一个因痛苦而倒地的受害者……合乎逻辑,不是吗?”
但Annie喵的传感器捕捉到了异常,“Sherry,义体的鼻子告诉我,空气中除了灰尘和微弱的清洁剂,还有极其微量的苦杏仁味残留,非常淡,主要集中在咖啡机和水杯区域。”
“记录下来了。”Sherry回应,“继续。”
Annie喵跳上书桌,避开那些关键区域,仔细审视那几张散落的打印纸。纸张是普通的打印纸,上面的文字是标准的激光打印体。
“艾略特·肖的遗书是从这里打印的?”Annie喵问道。
“是的,官方解释是‘避免笔迹潦草难以辨认’。”Sherry道,“但这本身就值得玩味。一个万念俱灰、决定结束生命的人,会选择如此整洁的方式留下最后的话语吗?更常见的,难道不应是手写?”
Annie喵的目光落在打印机上,用猫爪在操控屏上敲敲打打。“Sherry,这台打印机的打印日记被删除过,能尝试恢复吗?”
“正在尝试…需要一点时间。期间检查一下咖啡胶囊。”Sherry冷静的犹如一台机器。
Annie喵用爪子小心地拨弄着那几枚用完的咖啡胶囊。其中一枚的铝箔封口上,有一个几乎肉眼难以察觉的微小针孔。
“发现异常!Sherry,放大影像!咖啡胶囊的封口有刺穿的痕迹!”
影像被迅速放大和分析。
“针孔!极细,像是医用注射器所为!”Sherry的声音陡然提升,“成分分析显示针孔边缘有微量的药物残留,与艾略特·肖体内超量检出的镇静类药物成分一致!”
“真是一个重大的发现!”Annie喵兴奋道。
就在这时,Sherry在远程取得了突破:“打印机和终端日志恢复部分数据!重大发现:遗书文件是在预估死亡时间前25分钟被打印的。但打印命令并非来自本机,而是来自一个伪装成内部网络维护信号的、经过三次跳转的远程指令! 来源IP无法追踪,但手法专业。”
“外部设备?”Annie喵竖起了耳朵,“这意味着…”
“意味着遗书很可能不是艾略特·肖自己写的!”Sherry的声音带着一丝发现突破口的兴奋,“是别人提前写好,用外部设备连接这台打印机打印出来,伪造成艾略特·肖自己打印出来的模样!”
“还有更多,”Sherry乘胜追击,“个人终端的后台进程日志显示,在死亡时间前约40分钟,有一个伪装成系统更新的后台脚本运行,这个脚本的唯一作用是在特定时间(打印遗书前后)自动清空了浏览器的历史缓存和部分特定文件的临时记录!这是在销毁凶手可能远程访问过的痕迹!”
整个阴谋的轮廓变得清晰起来。
“所以,真相很可能是这样……”Sherry语速加快,逻辑链条无比清晰,“凶手提前潜入了公寓,在艾略特·肖常用的咖啡胶囊中,用极细的针头注射了超量的液态药物。”
“在预估的行动时间,”她继续道,“凶手通过某种方式,让艾略特·肖确信自己即将被逮捕,承受巨大的心理压力。肖回到家,习惯性地用咖啡机冲了一杯咖啡——正是那枚被下毒的胶囊。”
“药物起效需要时间。在药物开始发作、肖感到极度不适甚至昏迷前后,”Sherry的声音冰冷,“凶手远程启动了打印命令,将那份早就准备好的、内容指向‘因调查压力而自杀’的遗书打印出来,正好落在桌上。”
“同时,他远程运行脚本,清理掉自己远程接入和操作的所有痕迹。
“最后,药物彻底发作,艾略特·肖倒下死亡。一个完美的‘因调查压力而畏罪自杀’的现场就此完成。所有的证据:体内的药物、打印的遗书、都完美地指向这个结论。而凶手,可能远在几公里外,有着完美的不在场证明。”
阴险、冷酷,且几乎天衣无缝。如果不是Annie和Sherry顶着压力重返现场,案件的真相几乎就要被永远埋葬。
“选择我们调查他的这个时间点下手,”Annie喵的声音带愤怒,“不仅是为了让自杀动机看起来合理,更是为了把祸水引向我们!一举两得!”
“但是,动机呢?”Sherry再次回到核心,“如此处心积虑,仅仅是为了灭口一个数据窃贼?艾略特·肖到底窃取了什么?或者……他到底发现了什么,才招致杀身之祸?”
两人的目光再次投向了那台个人终端和更深层的网络空间。凶手可以清除明显的访问记录,但原始数据本身,或许还藏着钥匙。
“答案不在这里。”Sherry的声音斩钉截铁,“而在能源动力实验室的服务器深处。我们需要看到那份被窃数据的原始版本,才能知道艾略特·肖究竟因何而死,以及谁如此害怕真相曝光。”
Annie喵最后看了一眼这个阴郁的房间,悄无声息地按原路撤离。
三
小小狸花猫如同幽灵般从通风窗口钻回安全屋,轻盈地落在地板上。任务完成的松弛感还没来得及浮现,她的猫眼就被眼前的景象定格了。
安全屋内一片漆黑。只有那张旧木桌上,有一支孤零零的白蜡烛在燃烧,火苗不安地跳动着,投下摇曳而狭长的阴影。
而在那昏黄、诡谲的烛光旁,坐着一个人。
那是她自己的身体。
深蓝色短发的少女双眼微眯,一动不动。她被打扮得如同一个价格不菲的诡异人偶,穿着一件极度夸张、层叠繁复的暗色系哥特洋装,苍白的脸上妆容精致却毫无生气。她的身体被摆成一个极其刻意的姿势——一只手优雅地托着腮,另一只手向前伸出,指尖轻轻捏住一个茶杯手柄,仿佛正在参加一场寂静的午夜茶会。
Sherry不见了踪影。
屋内死寂一片,只有蜡烛燃烧发出的细微噼啪声。
Annie喵浑身的毛发几乎要立起来。一种荒谬又令人脊背发凉的感觉攫住了她。怎么回事?袭击?恶作剧?某种她无法理解的情况?
她压下意识中想要立刻冲回本体的冲动,捕猎者的本能让她瞬间进入戒备状态。她弓起身体,紧贴墙根的阴影,琥珀色的猫眼在黑暗中急剧缩放,仔细扫描着房间的每一个角落。听觉传感器开到最大,捕捉着任何细微的声响。
没有陌生的呼吸声。
没有隐藏的心跳。
没有入侵者的迹象。
确认没有的危险后,Annie喵才极其缓慢地从阴影中走出来。她跳上一张椅子,再轻盈地跃上餐桌,肉垫没有发出丝毫声响。
她靠近那个穿着华丽洋装的“自己”。在如此近的距离下,视觉传感器能捕捉到更多细节:睫毛膏刷得根根分明,唇釉带着细闪,裙子的蕾丝多得令人发指……
这绝对是Sherry的手笔。只有她才有这种专注到近乎偏执的细节把控力。
可是,她人呢?为什么要把现场弄得像某个惊悚片的场景?
Annie喵绕着自己的本体走了一圈,心中的警惕逐渐被一种又好气又好笑的无奈取代。她最终停在那只伸出的、碰着茶杯的手旁边,犹豫了一下,然后伸出自己的猫爪,带着一种极其怪异的感觉,轻轻碰了碰那只冰冷的手背——试图感受一下,或者只是一种确认。
就在她的猫爪触碰到本体手背的瞬间——
“咔嚓!”
一声极其清脆的快门声毫无预兆地响起!
同时,一道刺眼的白色闪光猛地从书架顶层的阴影处爆发出来,瞬间将整个房间照得如同白昼!
“喵嗷!!!”
Annie喵被吓得猛地向后一跳,几乎从桌子上摔下去,浑身的毛彻底炸开,发出了一声受惊的嘶叫。
只见衣橱顶上,Sherry蜷缩在一个视觉死角里,手里正拿着一个老式的拍立得相机,相机口还冒着少许白烟。她脸上泛着兴奋的红晕,眼睛亮得惊人,正小心翼翼地捏着刚刚吐出来的相纸,对着它轻轻吹气,仿佛完成了什么伟大的艺术创作。
“完美!” Sherry看着相纸上逐渐显影的画面——一只警惕的狸花猫,在烛光下用爪子触碰一个哥特人偶的手背,构图诡异又充满故事感——她忍不住发出满足的赞叹,完全没注意到餐桌上的猫已经进入了攻击状态。
“Sherry!!!” Annie喵的怒吼通过意识连接直接冲击着Sherry的大脑,充满了羞愤和惊吓,“你吓死我了!你躲在那里干什么?!这到底是怎么回事?!”
Sherry这才兴奋中回过神来,看到桌上那只炸毛炸成一颗毛栗子、显然气得不轻的猫咪,顿时意识到自己玩过头了。她脸上的兴奋迅速褪去,换上了熟悉的羞赧和慌乱,差点从衣橱顶上掉下来。
“An…Annie!你回来了。诶嘿嘿,我…我只是想捕捉一种…一种超现实的、带有哥特美学和张力的瞬间…”她手忙脚乱地试图爬下来,一边结结巴巴地解释,“烛光的光影效果很好…而且你回来的时机刚刚好…这张照片真的太…”
“删掉!立刻!马上!” Annie喵咆哮着,从餐桌上一跃而下,瞬间将意识切换回本体。
烛光旁,“洋娃娃”猛地睁开了眼睛,眸子里此刻燃烧着羞愤的火焰。
“Sherry!”Annie几乎是咆哮着从椅子上跳起来,繁复的裙摆差点把她绊倒。她踉跄着扑向床边,张牙舞爪地试图去抢Sherry手里的照片,“你居然趁我不在给我换这种衣服!还拍照!删掉!快给我删掉!”
“啊!等一下!Annie!别闹!”Sherry惊慌失措地躲闪着,把照片和拍立得死死护在怀里,脸上红得几乎要冒烟,“我只是…只是觉得这套衣服和你很搭…而且你睡着的样子很安静,就像…”
“就像个娃娃随便你摆弄是吧?!”Annie不依不饶,扑到Sherry身上,开始挠她痒痒,“让你乱动我的身体!让你给我穿这种羞死人的衣服!”
“哈哈哈…停、停下!Annie!我错了…哈哈哈…好痒!”Sherry笑得眼泪都出来了,在床上扭动着试图躲避,却根本敌不过Annie的攻势。两人顿时滚作一团,华丽的洋装裙摆和朴素的床单纠缠在一起,空气中充满了笑闹和喘息声。
打闹间,Annie的手偶尔会碰到Sherry腰间敏感的肌肤,Sherry的发丝会拂过Annie的脸颊,两人的距离时远时近,呼吸交织。渐渐地,笑闹声低了下去,气氛变得有些微妙和暧昧。Annie的动作慢了下来,她撑在Sherry上方,看着身下的人脸颊绯红、眼泛泪光、微微喘息的样子,自己的心跳也不知为何漏跳了一拍。
Sherry也停下了挣扎,湛蓝的眼眸望着Annie,里面带着一丝羞涩和无措,却没有真正的抗拒。
就在Annie的眼神逐渐变得深邃,慢慢低下头,似乎想做点什么的时候——
Sherry忽然伸出手,轻轻抵住了Annie的肩膀。
“等…等一下,Annie。”她的呼吸还有些不稳,但语气已经逐渐恢复冷静,“正事…正事要紧。”
Annie动作一顿,有些不满地嘟囔了一句,但还是顺从地翻身躺到一边,只是手臂依然霸道地环着Sherry的腰,不肯完全放开。“什么正事能比删除我的黑历史照片更重要?”
Sherry微微侧身,从床头拿出了数据板,快速操作了几下,调出的不再是照片,而是一些人员档案和行程数据。
“在你回来的路上,我初步筛查了近期与艾略特·肖有过接触、并且有能力进行远程精密操作和获取特定药物的人员名单。”她的声音恢复了平时的冷静和专业,只是脸颊还带着红晕,“范围已经缩小到三个人选。但缺乏决定性证据。”
Annie的注意力被吸引过来,她凑近看着数据板上的信息:“哪三个?”
Sherry点开第一个档案,一个面容严肃的中年男性照片浮现出来。
“嫌疑人A:卡尔文·莫里斯,男,48岁。大学信息安全办公室的高级技术专员。”Sherry介绍道,“他与艾略特·肖在死亡前一周有过三次工作接触,原因是例行网络安全巡检,他有权访问肖的终端日志。他有技术能力进行远程操作和清除日志。接触原因合规,但时间点敏感。”
接着,她点开第二个档案,是一位看起来精明干练的女性。
“嫌疑人B:戴安娜·李,女,36岁。能源动力实验室的项目协调员,是艾略特·肖的直属上司之一。”Sherry继续道,“她在死亡前三天与肖有一次长时间单独会议,官方记录是讨论项目进度延期问题。据其他同事透露,会议气氛紧张,戴安娜曾对肖的工作效率表示不满。她有机会接触到实验室的各种物资,并且有权限审批一些特殊设备的调用。她可能因肖的工作问题或窃密行为对其产生强烈不满。”
最后,她点开了第三个档案。这是一个看起来有些阴郁、不太起眼的男性。
“嫌疑人C:利安·马克,男,41岁。大学后勤与设施管理部的电气工程师。”Sherry的语气没有变化,但资料显示的内容却更为关键,“他与艾略特·肖在死亡前五天有过一次非正式接触。记录显示他以‘检查老旧线路安全隐患’为由,申请进入了肖的公寓楼栋,并‘顺带’检查了肖所在楼层的配电箱和部分房间的插座。他具备专业的电工知识,能轻易改造线路或利用电力设备做文章,也有机会获取特定药物。他的职务看似不起眼,却让他能合法地接触到几乎所有建筑的内部设施。”
Annie仔细听着,手指无意识地卷着Sherry的一缕头发:“一个管网络的,一个管项目的,一个管电路的……听起来都有点可能,又都缺点直接证据。这个利安·马克,他的动机是什么?”
“表面上看,似乎没有强烈动机。”Sherry沉吟道,“他的工作与艾略特·肖的研究领域毫无交集。这也是为什么他的嫌疑最初被排得比较靠后。但正是这种‘毫无交集’,使得他出现在肖的公寓附近显得更为突兀和值得深究。相比之下,莫里斯和李的接触都更有正式理由。”
“目前只是嫌疑,”Sherry谨慎地说,“需要更多信息。而关键的钥匙,很可能就在能源动力实验室的那份原始数据里。”
她切换屏幕,展示出能源动力实验室服务器的结构图和安保布局。“我制定了一个潜入计划。实验室夜间有最低限度的安保巡逻,内部监控系统有一个极短的维护窗口期,就在明天凌晨4:00到4:05。我们需要利用这五分钟。”
“怎么做?”Annie的眼睛亮了起来,充满了跃跃欲试的兴奋。
“我会远程为你提供支持,干扰外围感应器,并确保维护窗口期不会被意外缩短。而你,”Sherry看向Annie,眼神认真,“需要再次使用小猫义体,从通风管道潜入服务器机房。数据接口在机柜后方,我需要你将这个…”她拿出一个微型的接口插件,“…接入第三排第二个服务器的备用诊断端口。只要三秒钟,我就能远程下载我们需要的那部分数据日志,而不会触发任何常规安全警报。”
计划听起来危险却直接。
“听起来比对付这件可怕的衣服简单多了。”Annie撇撇嘴,扯了扯身上夸张的蕾丝花边。
Sherry的脸又红了一下,小声辩解:“…其实很衬你…”
“嗯?你说什么?”Annie故意凑近,坏笑着问。
“没什么!”Sherry猛地摇头,迅速切换了话题,“行动时间很紧,我们需要充分休息。现在,立刻,睡觉养精蓄锐。”她说着,试图挣脱Annie的怀抱起身。
但Annie的手臂收得更紧了,把她重新拉回床上。“遵命,我的指挥官。”她笑嘻嘻地说,意识控制小猫熄灭蜡烛,室内陷入一片黑暗,“不过就这样睡吧,暖和。”
“衣服…不脱掉吗?”
“你喜欢的话我就一直穿着。”
黑暗中,Sherry僵硬了片刻,但最终放松下来,轻轻叹了口气,向后靠进Annie的怀里,找了个舒服的位置。背后传来Annie平稳的心跳和温暖的体温,让人安心。
经历了一夜的紧张调查和情绪起伏,巨大的疲惫感终于袭来。两人都没有再说话,只是依偎在一起,呼吸逐渐变得平稳悠长。
四
能源动力实验室的服务器机房深处,恒温系统发出低沉的嗡鸣,无数指示灯在机柜上如同繁星般明灭。一只小巧的狸花猫正灵巧地穿梭在冰冷金属构成的丛林之中。
Annie喵凭借Sherry提供的精确图纸,轻而易举地避开了地面的巡逻队和预警激光栅格,从天花板夹层直接进入了核心区域,悄无声息地落在第三排服务器机柜的后方。
“Sherry,我已就位。目标接口确认。” Annie喵通过意识汇报,同时用精确的机械爪将从Sherry那里得到的微型接口插件,稳稳地接入了指定端口。
“连接建立…开始数据抽取…进度10%…30%…” Sherry的声音带着一丝兴奋,“防火墙没有反应,日志伪装成功…70%…快了,Annie,保持住!”
时间一秒一秒过去,机房内只有机器运行的单调声响。Annie喵琥珀色的眼睛紧紧盯着那个小小的接口,仿佛能听到数据流正在疯狂涌入小猫体内特制的高速缓存硬盘中。
“…95%…100%!完成!断开连接,Annie!” Sherry的声音几乎要欢呼起来。
Annie喵迅速而轻柔地拔下了接口插件。任务完成!巨大的喜悦和放松感涌上心头。然而,就在她拔下接口的瞬间, 或许是因为异常的数据流出量终于触发了某种潜伏的安全协议,一声极其尖锐、高频的警报声猛地划破了机房的寂静!
嗡——!
红色的警示灯疯狂旋转起来!
“该死!” Annie喵和远在安全屋的Sherry同时咒骂出声。
“Annie!紧急撤离!按照备用路线C!” Sherry的声音瞬间变得急促无比,远程操控着机房的几个无关紧要的照明系统闪烁了几下,试图制造混乱。
Annie喵反应极快,化作一道模糊的影子,沿着预定的撤退路径——通风管道——疾驰而去。身后已经传来了急促的脚步声和安保人员的呼喝声。
“发现入侵者!在通风系统里!是只猫?!搞什么鬼?”
“别管是什么!抓住它!”
小小的猫影在复杂的管道网络中疯狂穿梭,身后是追兵和越来越近的封锁指令。Sherry尽最大努力干扰着沿途的门禁系统,为Annie争取那零点几秒的时间。
但包围圈正在缩小。终于,在一个管道交汇处的检修口,Annie喵刚探出头,几道强光手电筒的光柱就猛地笼罩了她,刺得她传感器一阵晕眩。下方,至少三名安保人员举着捕捉网枪,死死封住了所有去路。
完了!Annie喵的心沉了下去。被抓到,意味着小猫义体会被没收,里面的数据会被发现,她们私自调查的行为会彻底暴露,一切就都……
就在这千钧一发之际,一个冷静而熟悉的声音突然从安保人员身后响起:
“放下你们的武器。退后。”
安保人员一愣,纷纷回头,只见Dr. CB不知何时出现在了走廊入口,脸上带着一丝无奈和不容置疑的威严。
“CB博士?您怎么…”
“这只猫,”Dr. CB走上前,目光扫过被困在检修口、无处可逃的小小身影,语气平淡得像在陈述一个事实,“是我的私人宠物‘毛豆’。它有点过于活泼,总是喜欢溜进各种管道。看来这次又给你们添麻烦了。”
安保人员面面相觑,一时有些反应不过来。博士的…宠物猫?闯进了最高安全级别的服务器机房?谁信啊?
“可是博士,警报显示有数据…”
“可能是它不小心碰到了哪个老旧接口,触发了吧。这里的有些系统敏感过头了。”Dr. CB轻描淡写地打断,同时伸出手,“好了,‘毛豆’,别闹了,过来。”
她的声音不容置疑。Annie喵也十分机灵,摆出一副小猫撒娇的姿态,施施然跳上了Dr. CB的肩头,亲昵的蹭着她的脸颊。
Dr. CB抱着“猫”,感受着义体冰冷的触感和内部硬盘轻微的运转发热,脸上不动声色:“抱歉打扰各位工作,我会好好管教它的。这里后续的损失评估和报告,直接提交给我的办公室。”
说完,她不等安保人员回应,便抱着Annie喵,步伐沉稳地离开了现场,留下身后一群目瞪口呆的安保人员。
Dr. CB的“恶名”在圣亚伯拉罕大学内可谓流传甚广,因此没人愿意触她的霉头。根据经验,这个时候至于要装糊涂、按照她的要求做就行了,至于其他麻烦,自有那些领导操心。
一路无话。直到进入Dr. CB的办公室,门在她身后无声滑关闭锁,她才将“猫”放在办公桌上,自己则坐进宽大的椅子里,揉了揉眉心。
“好了,Annie。”Dr. CB看着桌上那双警惕的猫眼,语气听不出喜怒,“玩够了吗?从艾略特·肖的公寓,到这里的服务器机房。你们的‘课外活动’还真是丰富多彩。”
Annie喵沉默着,没有回应。她知道瞒不过去了。
“让我猜猜,”Dr. CB继续道,指尖轻轻敲击着桌面,“你们不相信官方的自杀结论,私自重返现场,找到了他杀的证据。然后顺藤摸瓜,认为关键在那份被窃的数据上,所以又冒险来实验室拷贝。我说得对吗?”
Annie喵依旧保持沉默,算是默认。
“把数据交出来吧。”Dr. CB伸出手,“实验室的原始数据属于最高机密,不允许以任何非授权方式带离。你们的行为已经严重违规了。”
Annie喵向后缩了缩,身体炸毛:“我们什么都没找到!警报就响了!”
Dr. CB叹了口气:“Annie,别对我撒谎。义体的缓存硬盘指示灯还在发亮,数据传输刚完成。把数据交出来。”
看Annie(猫)仍然不肯就范,Dr. CB无奈的摇了摇头。
“你们私自组装的这台义体,虽然用了些‘特殊’技术规避常规检测,但它的基础控制协议,依然脱胎于大学提供的框架。”她轻轻在桌面控制板上点了几下,“而我,拥有最高权限。”
话音刚落,Annie喵突然感到一股强大的强制指令涌入!小猫义体的所有机能瞬间被锁死,视觉传感器黑屏,听觉传感器静默,运动模块完全瘫痪——她被强制关机了!
意识被猛地弹回安全屋的本体之中。
Annie猛地从床上坐起,剧烈地喘息着,仿佛刚从水里被捞出来。她看着旁边同样被惊醒、一脸关切的Sherry,又急又气:“Sherry!CB博士她…她强行关掉了义体!她把数据拿走了!她为什么不让我们继续查下去?她明明知道肖是被杀的!她以前不是这样的!”
巨大的失落和不解笼罩了她。一向支持她们、甚至有些纵容她们的Dr. CB,这次却如此强硬地阻止她们追寻真相。
Sherry听着Annie急促的叙述,湛蓝的眼眸中却并没有太多意外,反而闪过一丝狡黠的光芒。她轻轻握住Annie因激动而颤抖的手。
“别担心,Annie。”Sherry的声音带着一种奇异的安抚力量,“数据…并没有丢。”
Annie一愣:“什么?可是义体已经被她…”
“在我远程帮你下载数据的时候,”Sherry的嘴角勾起一个浅浅的、带着点小得意的笑容,“我为了以防万一,在数据流进入硬盘的同时,我分出了一小股意识流,将它们…嗯…‘量子化’了,然后顺着我们的神经连接,偷偷地、一股脑地塞进你的记忆区深处了。就像…就像把一本书直接印在了你的脑海里。”
Annie彻底呆住了。她下意识地闭上眼睛,集中精神去回想…果然!无数复杂的数据流、图表、公式、实验日志片段…如同被解锁的密码箱,纷至沓来,清晰地呈现在她的意识之中!那份被Dr. CB严防死守的机密文件,此刻正完好无损地躺在她的脑子里!
她猛地睁开眼睛,看向Sherry,张牙舞爪道:“下次不许往我的脑子里塞东西!”
Sherry微微脸红了一下,似乎有点不好意思承认自己的“小动作”,“以防万一嘛。现在看来,果然派上用场了。”
兴奋过后,更大的疑问浮现了。
“可是…为什么?”Annie皱起眉,“CB博士为什么要阻止我们?她好像…在保护谁?”
Sherry的表情也严肃起来,她看向窗外依然沉沉的夜色,轻声道:“也许,答案就在你脑海里的那些数据之中。而我们,需要尽快把它解读出来。”
五
圣亚伯拉罕大学能源动力实验室主控大厅,深夜的宁静被刺耳的警报声彻底撕裂!
嗡——呜——嗡——呜——
红色的警示灯将整个大厅映照得一片诡异。并非之前服务器机房遭到Annie喵入侵的那种高频警报,而是更为急促的警报。这意味着实验室出现了重大实验事故或核心数据异常。
几乎是同时,三个人影从不同的方向匆忙赶到了主控大厅门口——正是那三位嫌疑人。
信息安全办公室的卡尔文·莫里斯脸色凝重,一边操作着数据板试图连接内部网络:“见鬼!核心数据库的响应全部中断!像是遭到了物理破坏!”
项目协调员戴安娜·李穿着睡袍外罩外套,显然是从宿舍匆匆赶来,她焦急地看着紧闭的气密门:“怎么回事?今晚没有安排高危实验!里面的研究人员呢?”
后勤部的电气工程师利安·马克手里提着一个沉重的工具箱,语气急促但条理清晰:“我刚在附近检修线路,听到警报就过来了!可能是主服务器群过热或者冷却系统故障!需要立刻手动干预,防止更大损失!我需要进入的权限!”
就在此时,主控大厅的气密门因为内部骤升的压力和安全协议而“砰”的一声自动解锁弹开!一股焦糊的热风从里面涌出!
众人冲了进去,只见大厅中央的巨大环形控制台多处冒着黑烟,几个主要屏幕漆黑一片,剩下的也满是乱码。最关键的是,存放着所有原始数据的独立服务器阵列,此刻正闪烁着不祥的电弧,内部传来轻微的爆裂声,显然已经彻底烧毁!
“不!!”戴安娜·李发出一声尖叫,脸色惨白,“数据!几十年的研究数据全完了!”她下意识地就想冲过去,却被莫里斯拦住。
“别过去!可能还有短路风险!”莫里斯吼道,同时快速操作数据板,“日志…日志最后显示大规模数据删除指令和过载指令…是从…是从内部协调员终端发出的!”他猛地抬头,目光如电般射向戴安娜·李,充满了震惊和怀疑。
戴安娜·李如遭雷击,浑身冰凉:“不可能!我的终端权限在项目阶段性总结后就已经交还归档了!我怎么可能…莫里斯先生,一定是搞错了!或者是被盗用了!”
“李女士,请你冷静。”利安·马克突然开口,声音透露着沉痛,他蹲下身,假意检查地板下的线路的间隙,从中去除了一张戴安娜·李的的工作牌。他站起身,语气沉重地说:“李女士,我们都知道,近期因为艾略特·肖的事情,你承受了很大的压力…项目进度也受到了影响。董事会那边似乎对你的管理也有些…微词。”
“你…你这是什么意思?”戴安娜·李的声音因愤怒和恐惧而颤抖。
“我的意思是,”利安·马克叹了口气,摊开手,一副“我也不愿相信但事实如此”的表情,“会不会是压力太大,一时…想不开?毕竟,这些数据如果毁了,项目就等于从头再来,所有之前的延误和问题…似乎也就没人会再深究了?”
“你胡说!我怎么可能做这种事!这是我毕生的心血!”戴安娜·李激动地反驳,但在周围人越来越怀疑的目光下,她的辩解显得如此苍白无力。莫里斯看着她的眼神已经彻底变了,甚至悄悄移动脚步,隐隐挡住了她可能的去路。
“而且,”利安·马克仿佛突然想起了什么,指向戴安娜·李身上的睡袍,“李女士,您刚才说您是从宿舍赶来?但据我所知,您的宿舍在园区另一头,就算听到警报,也不可能比就在附近检修的我,以及就在信息安全办公室的莫里斯先生来得更快吧?除非…”他故意停顿了一下,留下令人毛骨悚然的想象空间,“…您本来就在这里?”
这句话成了压垮骆驼的最后一根稻草!所有人的目光都死死锁定了戴安娜·李,仿佛她已经确凿无疑就是那个毁灭数据的疯子。
戴安娜·李百口莫辩,她看着周围怀疑、恐惧、甚至厌恶的眼神,只觉得一阵天旋地转,嘴唇哆嗦着,却一个字也说不出来,绝望的泪水在眼眶里打转。
轰!!!
大厅侧面的一根主要承重柱后方,突然发生了剧烈的爆炸!威力不大,但足以炸裂装饰墙面,引发火警喷淋系统,顿时水雾弥漫,碎片四溅,整个大厅一片狼藉!更重要的是,爆炸彻底破坏了主要的出口和部分承重结构!
“啊!!”
“怎么回事?!”
“还有爆炸物?!她还想把我们全都炸死在这里吗?!”混乱中,不知是谁喊了这么一句,彻底将恐慌和敌意推向了顶点!人们惊恐地看着戴安娜·李,仿佛她是带来毁灭的恶魔。
利安·马克的声音通过不知何时弄到手的扩音器响起,充满了正义感:“封锁现场!立刻请求最高级别支援!这不是简单的事故,这是有预谋的破坏和袭击!所有相关人员都必须到场!在安全部门到来之前,绝不能让她离开!”
就在这水雾弥漫、火光闪烁、一片混乱、所有人都将戴安娜·李视为罪魁祸首之际——
“Ladies and Gentlemen!”
一个清亮而带着戏剧腔调的女声突然从大厅二楼被炸开的观察廊缺口处传来。
所有人下意识地抬头望去。
只见弥漫的水汽和红色警报灯的光晕中,两个高挑的身影傲然立于破损的栏杆之后。
左边一位,身穿复古英伦风衣,头戴猎鹿帽,嘴上贴着两撇俏皮的翘胡子,单手持着一根精致的手杖,另一只手举着一个古朴而精致的烟斗——正是Shery!
右边一位,穿着略显保守的西装马甲,同样戴着眼镜贴着胡子,手里拿着一本厚厚的“笔记”(其实是数据板),表情严肃——正是Annie!
“今晚这场蹩脚的三流戏剧,” Annie用手指向下方混乱的场面,声音透过一个小小的扩音器传遍大厅,“可以到此为止了!”
所有人都愣住了,呆呆地望着殷勤作秀的二人。
“你…你们是什么人?!”卡尔文·莫里斯警惕地问道,同时仍不忘看住几乎崩溃的戴安娜·李。
“是她们!”显然现场有人认出了二人,“Dr.CB手下的‘AS双子’!”
“你们不是还在隔离审查吗?”卡尔文·莫里斯显然知道二人被禁足的事情。
“非也非也,我是华生,这位是我的朋友夏洛特。”Annie面不改色地报出假名,甚至微微鞠了一躬,“我们受邀前来,解开贵校近日发生的一些列案件。”
戴安娜·李又惊又疑,泪眼婆娑:“什么?现在是说这个的时候吗?!”
“正是时候,女士。”Sherry将烟斗从口中去下,用冷静的声音陈述:“因为盗取机密数据、杀害艾略特·肖、制造这场混乱并试图将罪名嫁祸于你的人——”
她的话音清晰而冷静,手杖精准地指向人群中那个正准备悄悄后退的身影。
“——就是你,利安·马克先生!”
六
弥漫着水雾与焦糊味的主控大厅里,所有的目光都聚焦在二楼观察廊上那两个突兀的身影身上。
被Sherry精准指认,利安·马克的脸色瞬间惨白,但他仍强撑着反驳,声音因激动而尖利:“胡说!你们这两个不知道从哪里冒出来的小丑!戴安娜·李的嫌疑是系统日志和物证指向的!你们有什么证据指控我?!”
“证据?”华生装扮的Annie上前一步,虽然扮演助手,但她的气势却丝毫不减,朗声道:“那就让我们从头说起,马克先生。”
Sherry接优雅地调整了一下袖口后接口道:“首先,是艾略特·肖之死。你利用后勤检修之便,提前获取了他的咖啡胶囊,用微型注射器注入了超剂量的镇静类药物。你选择在我们即将调查到他的时候动手,完美利用了时间背景,伪造出他因压力崩溃而‘畏罪自杀’的假象。”
“荒谬!证据呢?”利安·马克吼道。
“证据就是那份远程打印的遗书。”Annie立刻接话,语速飞快,“你自以为通过三次跳转隐藏了IP,但在‘某种特殊的信息回溯技术’面前——”她意味深长地看了Sherry一眼,“——你的真实访问路径无所遁形。需要我当众念出那个最终指向你个人终端编码的IP序列吗?”
利安·马克的瞳孔猛地收缩。
Sherry继续施压,仿佛在陈述一个早已了然于胸的事实:“至于你如何在不被察觉的情况下完成注射…公寓楼道的监控虽然常规覆盖有死角,但很不幸,对面实验室有一个用于观测鸟类迁徙的高精度摄像头,‘恰好’记录下了某个熟悉的身影在非工作时间段潜入公寓楼的画面。需要调取那份‘意外’捕捉到的影像资料吗,马克先生?”
利安·马克的呼吸开始急促,额头渗出冷汗。他无法理解这些证据从何而来,大学的监控系统他早已排查过!
“而你今晚的目的,”Sherry的声音陡然变得冰冷,她指向仍在冒烟的服务器阵列,“根本不是窃取数据,而是彻底毁灭它!因为你从艾略特·肖窃取的数据备份中,发现了一份关于‘■■■■实验事故’的完整报告!”
利安·马克如遭雷击,身体晃了一下。
“那份报告显示,你的父亲,已故的列昂尼德·马克博士,”Sherry一字一顿,声音清晰地传遍寂静的大厅,“当年并非死于简单的事故操作失误,而是自愿参与了一项极高风险的能量阈值测试,并在测试中为保护同事和设备而英勇牺牲。大学高层和项目组出于多重考虑,最终将事故报告简化处理了。”
“你胡说!”利安·马克双眼赤红,歇斯底里地打断她,“他们掩盖了真相!他们害死了我父亲!他们必须付出代价!所以我才会…!”他猛地住口,意识到自己失言了。
“才会利用肖的贪念,诱导他窃取数据,实则为你寻找‘罪证’?”Annie冷笑接口,“才会在他可能察觉真相或失去利用价值后杀他灭口?才会在今晚摧毁这些你认为‘虚伪’的数据,并试图将所有你认为‘有罪’的高层引来,用你预设的炸弹将他们一并埋葬,为你父亲‘复仇’?”
逻辑链条被彻底补完。大厅里一片死寂,所有人都被这扭曲的复仇计划震惊了。
“证据…你们说的这些影像、IP记录…在哪里?”利安·马克在做最后的挣扎,声音嘶哑,“拿出来!否则就是诽谤!”
Annie和Sherry对视一眼,忽然,Annie爆发出了一阵得意的大笑。
“哈哈哈!马克先生,你也太不经诈了吧?”她笑得前仰后合,甚至扯了扯自己的假胡子,“下载国家反诈中心APP了吗?那些所谓的监控影像、IP回溯记录——”
她停顿了一下,和Sherry一起,动作同步地摘下了可笑的单片眼镜和胡子,露出了她们原本年轻娇俏的面容。
“——当然是我们亲爱的‘福尔摩斯’,用她独一无二的能力,临时根据你的行为模式和心理侧写,制作出来的最符合逻辑的推理模型啊!”Annie笑得前仰后合,“不然你以为我们怎么在这么短时间内找到这么多‘铁证’?只是为了让你亲口承认而已!”
“你…你们…”利安·马克彻底愣住了,随即一股被戏耍的巨大羞辱感和绝望涌上心头,整张脸因极致的愤怒而扭曲,“无耻!骗子!你们和他们都一样!都是一丘之貉!掩盖真相!包庇罪恶!”
他陷入了彻底的癫狂,猛地从工具箱底层掏出一个起爆器,疯狂地嘶吼:“那就一起死吧!全都为我父亲陪葬!”
他用力按下了起爆按钮!
然而——
什么也没有发生。
预想中的惊天爆炸没有到来,只有他手中起爆器单调的、无效的“咔哒”声。
利安·马克难以置信地再次疯狂按动,依旧毫无反应。
“怎么会…不可能!”
“因为你的炸弹,早就失效了。”一个疲惫而冷静的声音从大厅入口处传来。
Dr. CB缓缓走了进来,身后跟着几名全副武装的大学内部安全人员。她看着利安·马克,眼神复杂,充满了痛心、遗憾和一丝如释重负。
“在肖死亡后,我早就有所怀疑了,而Annie和Sherry被迫交出的数据证实了我的猜想,我也猜到了你的最终目标。”Dr. CB平静地说,“我比任何人都了解你对父亲的感情,也比任何人都清楚那次实验事故的真相。我早就派人找到了你安置的所有爆炸物,并解除了它们。利安,收手吧。”
她挥了挥手,一名安保人员上前,将两份文件扔到了利安·马克面前。
一份是已经发黄的保密协议与高风险实验自愿同意书,上面清晰地签着他父亲的名字,条款明确,包括意外后果的承担与保密要求。
另一份,是一个密封的信封,上面是利安·马克父亲熟悉的笔迹——“致吾儿利安,待保密条例允许后,方可由CB交予他。”
可悲的是,保密条例的截至日期就在明年的今日。
“当初,你的父亲作为我的导师,同时也是整个项目的负责人,带领我们全身心的投入到那个项目中……”Dr. CB闭幕仰头,仿佛陷入了回忆。
“与你父亲共事的那段时光让人难以忘怀。列昂尼德·马克博士为人和善,当年初出茅庐的我深受其指点,和他相处令我如沐春风……”
“这封信,你父亲托我保管,希望在你足够成熟和理解时再给你。他从未后悔自己的选择,他希望你骄傲,而不是被仇恨吞噬。”Dr. CB从惆怅中恢复,声音重新变得冷静。“他拯救了当时就在他身边的我,还有其他同事。他是英雄,不是受害者。”
利安·马克颤抖着,捡起那封信,撕开,贪婪地阅读着父亲熟悉的字迹…信中,父亲坦然讲述了实验的风险、自己的决定、对科学探索的无悔,以及对他最深切的期望和爱…
“不…不是这样的…父亲啊!”利安·马克的咆哮变成了呜咽,他跪倒在地,信纸从他颤抖的手中滑落,他像个迷路的孩子一样嚎啕大哭起来。他所有的仇恨、所有的偏执,在父亲真实的心声面前,土崩瓦解,只剩下无尽的悔恨与空虚。
Dr. CB招了招手,安保人员缓缓上前准备逮捕他。
然而利安·马克猛地抬起头,眼中闪过最后一丝疯狂与绝望!他以惊人的速度从工具箱夹层中掏出了一把隐藏的老式手枪!
“别过来!”他嘶吼着,枪口胡乱指着周围,逼退了安保人员。
他的目光扫过震惊的人群,扫过面无表情的Dr. CB,最后定格在Annie和Sherry身上,充满了扭曲的怨恨。
但最终,那枪口颤抖着,缓缓移开,并没有指向任何人。他发出一声凄厉至极、仿佛撕裂灵魂的惨笑。
“父亲…我对不起你…我错了…全都错了…”
然后,在所有人惊骇的目光中,他猛地将冰冷的枪口塞进了自己的嘴里!
砰!!!
一声沉闷而决绝的枪声,在大厅中骤然响起,回荡不息,最终归于死寂。
利安·马克的身体重重地倒在地上,鲜血从他脑后蔓延开来,染红了冰冷的地板和他父亲那封未曾及时送达的信。
一切终于结束了,以最惨烈的方式。
Annie和Sherry沉默地看着这一幕,脸上的胜利笑容早已消失不见,只剩下沉重。Dr. CB闭上眼,深吸一口气,仿佛瞬间苍老了许多。
真相大白,凶手伏诛,但似乎没有胜利者。但空气中弥漫的,只有浓得化不开的悲剧与遗憾。
尾声
圣亚伯拉罕大学能源动力实验室的数据毁灭事件及其背后的曲折真相,最终未能完全掩盖。在巨大的舆论压力和内部审查下,大学董事会经过激烈辩论,不得不做出一个艰难的决定:将■■■■实验的部分非核心研究数据及相关事故的经过,以纪念和警示的名义,提前有限度地予以公布。列昂尼德·马克博士的贡献与牺牲终于得以正名,虽然代价沉重得令人窒息。
在此次事件中发挥了决定性作用的Annie和Sherry,自然受到了学校的褒奖。她们不仅洗清了自己身上的嫌疑,更因其【卓越的调查能力与对真相的执着追求】而获得了一笔颇为丰厚的特殊奖学金。
然而,并非所有人都得到了圆满的结局。
Dr. CB因“未经许可提前泄露机密文件”(指将利安·马克父亲的遗书和协议在公开场合交出)及“对下属职员(指利安·马克)心理状况失察,间接导致重大安全事故”,受到了学校的内部处分:被暂停行政职务一年,扣罚年度奖金,并强制接受一系列管理心理学培训。她平静地接受了这一切,仿佛这惩罚能稍稍减轻她心中的重负。
……
一周后,大学部基础理论课的教室里。
阳光透过高大的窗户洒进来,照在讲台上飞舞的粉笔灰上。本该是安静听课的课堂,却时不时传来一阵压抑不住的、细碎的笑声。
笑声的源头,来自于教室中间一排的课桌。
只见那张课桌上,并没有学生,而是端坐着一只神态倨傲、穿着特制迷你校服的狸花猫,以及一只同样穿着小校服、显得格外安静羞涩的垂耳兔。
狸花猫显然极度不耐烦,尾巴焦躁地甩来甩去,时不时用爪子去扒拉面前电脑上的键盘,发出轻微的哒哒声,试图屏蔽掉周围细碎的笑声。而小白兔则努力坐得笔直,长长的耳朵却因为周围同学投来的好奇和好笑的目光而微微抖动着,粉红色的鼻子轻轻翕动,一副想把自己藏进桌洞里的模样。
这诡异又可爱的一幕,自然是Dr. CB的杰作。
事件结束后不久,在她那间依旧整洁却似乎冷清了些的办公室里,她对着前来炫耀奖学金的Annie和Sherry,露出了一个难得的、却让姐妹俩背后发凉的笑容。
“奖学金?很好。”Dr. CB推了推眼镜,镜片反着光,“但是,两位天才侦探,你们是否想过,如果不是你们最后那场华丽却鲁莽的‘侦探秀’,极度刺激了利安·马克,我或许本可以用更缓和、更不需要违反保密协议的方式解决这件事,从而避免后续一系列麻烦,我也不必被停职罚薪?”
Annie和Sherry脸上的笑容僵住了。
“所以,”Dr. CB的语气温柔却不容置疑,“为了惩罚你们的多动症和过于旺盛的表现欲,也为了让你们深刻理解低调和遵守程序的重要性——当然,主要是为了让我的心理平衡一点——”
她按下了某个按钮。
下一秒,Annie和Sherry感到意识一阵模糊,她们发现自己的义体瞬间被强制离线、锁定。
“这一周,你们就用这个上课吧。”Dr. CB指了指旁边桌子上早就准备好的两只小动物义体——正是她们私自拼装的狸花猫和一只新做的、毛茸茸的小白兔义体。“每天准时到课,我会远程监控你们的签到情况。旷课一次,奖学金扣百分之十。旷课超过三次…呵呵,你们那笔可爱的奖学金,可就全部充公了哦。权当是弥补我被扣除的年终奖吧。”
……
于是,便有了如今课堂上的这一幕。
“喂,Sherry,这老头讲的什么鬼东西,完全听不懂啊!”Annie喵用意识通讯抱怨着,爪子无聊地拍着键盘。
“是…是能量微积分基础…”Sherry兔小声回应,努力想集中精神,“Annie你别乱动,好多同学在看我们…”
“看就看呗~”Annie喵反而来了劲,忽然伸出爪子,飞快地挠了一下Sherry兔那团毛茸茸的尾巴球。
Sherry兔吓得猛地一蹦,差点从桌子上掉下去,发出了一声极轻微的惊呼:“呀!”
周围顿时又响起一阵压抑的低笑声。
教授在讲台上推了推眼镜,看着台下那两只明显不在状态的小动物“学生”,无奈地摇了摇头,最终还是决定无视,继续他的讲课。毕竟,CB博士的“特殊要求”,总是有那么点…与众不同。
Annie喵得意地甩着尾巴,看着旁边惊魂未定、用一双红宝石般的眼睛哀怨地瞪着自己的小白兔,忍不住又想伸出爪子。
也许这一周的惩罚会很难熬。
也许穿着滑稽的义体被围观很丢脸。
也许能量微积分真的像天书一样难。
但…
Annie喵偷偷用脑袋蹭了蹭Sherry兔柔软的身侧。
Sherry兔微微愣了一下,随即放松下来,轻轻回蹭了一下。
但只要她们还在一起,似乎再荒谬的局面,也能变得有趣起来。
阳光温暖,课堂依旧,虽然有点吵,奖学金也暂时安全。
至于下一场冒险在哪里?
谁在乎呢。