@supports(display: grid) {
:root {
--sidebar-width-on-desktop: calc((var(--base-font-size) * (14 / 15)) * 19);
--body-width-on-desktop: 45.75rem;
}
@media only screen and (min-width: 769px) {
#side-bar .close-menu {
display: block;
position: fixed;
top: unset;
bottom: 0.5rem;
left: 0.5rem;
width: 3rem;
height: 3rem;
background: unset;
opacity: 1;
pointer-events: all;
z-index: -1;
}
#side-bar .close-menu img {
color: transparent;
}
#side-bar .close-menu::before,
#side-bar .close-menu::after {
content: "";
box-sizing: border-box;
position: fixed;
display: block;
top: unset;
bottom: 0.5rem;
left: 0.5rem;
width: 3rem;
height: 3rem;
padding: 0;
margin: 0;
text-align: center;
pointer-events: all;
cursor: pointer;
transition:
opacity var(--sidebar-transition-timing);
}
#side-bar .close-menu::before {
--mask:url("data:image/svg+xml,%3C%3Fxml version='1.0' encoding='utf-8'%3F%3E%3Csvg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' id='Hamburger' x='0' y='0' baseProfile='tiny' overflow='visible' version='1.2' viewBox='0 0 32 32' xml:space='preserve'%3E%3Cpath d='M4 10h24c1.1 0 2-.9 2-2s-.9-2-2-2H4c-1.1 0-2 .9-2 2s.9 2 2 2zm24 4H4c-1.1 0-2 .9-2 2s.9 2 2 2h24c1.1 0 2-.9 2-2s-.9-2-2-2zm0 8H4c-1.1 0-2 .9-2 2s.9 2 2 2h24c1.1 0 2-.9 2-2s-.9-2-2-2z'/%3E%3C/svg%3E");
z-index: -1;
background-color: var(--toggle-icon-color, rgb(var(--sidebar-links-text))) !important;
-webkit-mask: var(--mask);
mask: var(--mask);
-webkit-mask-repeat: no-repeat;
mask-repeat: no-repeat;
-webkit-mask-position: 50% 50%;
mask-position: 50% 50%;
-webkit-mask-size: 60%;
mask-size: 60%;
}
#side-bar .close-menu::after {
z-index: -2;
background-color: var(--toggle-button-bg, rgb(var(--sidebar-bg-color))) !important;
border-radius: var(--toggle-roundness, 50%);
border: var(--toggle-border-color, rgb(var(--sidebar-links-text))) var(--toggle-border-width, 0.25rem) solid;
}
#side-bar:focus-within .close-menu,
#side-bar:not(:has(.close-menu:hover)):not(:focus-within):hover .close-menu {
pointer-events: none;
}
#side-bar:focus-within .close-menu::before,
#side-bar:focus-within .close-menu::after {
opacity: 0;
pointer-events: none;
}
#side-bar:not(:has(.close-menu:hover)):not(:focus-within):hover .close-menu::before,
#side-bar:not(:has(.close-menu:hover)):not(:focus-within):hover .close-menu::after {
opacity: 0;
pointer-events: none;
}
#side-bar {
display: block;
position: fixed;
top: 0;
left: calc(var(--sidebar-width-on-desktop)*-1);
z-index: 10;
transition:
left 500ms cubic-bezier(0.4, 0, 0.2, 1) 100ms;
height: 100%;
overflow-y: auto;
overflow-x: hidden;
margin-top: 0;
}
#side-bar:focus-within {
left: 0;
}
#side-bar:not(:has(.close-menu:hover)):not(:focus-within):hover {
left: 0;
}
#side-bar .side-block {
margin-top: 1rem;
background-color: rgb(0, 0, 0, 0);
border-radius: 0;
border-left-width: 0px;
border-right-width: 0px;
}
#main-content::before {
content: "";
display: block;
position: fixed;
top: 0;
right: 0;
z-index: -1;
opacity: 0;
transition:
opacity 500ms cubic-bezier(0.4, 0, 0.2, 1) 100ms,
width 500ms cubic-bezier(0.4, 0, 0.2, 1) 100ms;
margin-left: var(--sidebar-width-on-desktop);
background: rgba(var(--swatch-menubg-black-color), .3) 1px 1px repeat;
padding-right: 0;
width: 100%;
height: 100vh;
pointer-events: none;
z-index: 99;
}
#side-bar:focus-within ~ #main-content::before {
width: calc(100% - var(--sidebar-width-on-desktop));
opacity: 1;
pointer-events: all;
}
#side-bar:not(:has(.close-menu:hover)):not(:focus-within):hover ~ #main-content::before {
width: calc(100% - var(--sidebar-width-on-desktop));
opacity: 1;
pointer-events: all;
}
@supports (-moz-appearance:none) and (background-attachment:local) and (not (-moz-osx-font-smoothing:auto)) { #side-bar {
padding: inherit;
} }
#content-wrap {
display: flex;
flex-direction: row;
width: calc(100vw - (100vw - 100%));
min-height: calc(100vh - calc(var(--final-header-height-on-desktop, 10.125rem)));
flex-grow: 2;
height: auto;
position: relative;
margin: 0 auto;
max-width: inherit;
}
#main-content {
width: 100%;
position: initial;
max-height: 100%;
padding: 2rem 1rem;
max-width: var(--body-width-on-desktop, 45.75rem);
margin: 0 auto;
}
#page-content {
max-width: min(90vw, var(--body-width-on-desktop, 45.75rem));
}
@supports (-webkit-hyphens:none) {
#side-bar {
transition:
left 500ms cubic-bezier(0.4, 0, 0.2, 1) 100ms,
padding-right 500ms cubic-bezier(0.4, 0, 0.2, 1) 100ms,
background-color 500ms cubic-bezier(0.4, 0, 0.2, 1) 100ms;
padding-right: 0;
background-color: rgb(0, 0, 0, 0);
pointer-events: all;
overflow-x: visible;
overflow-y: visible;
z-index: 999;
}
#side-bar::-webkit-scrollbar {
opacity: 0;
-webkit-transition: opacity 500ms cubic-bezier(0.4, 0, 0.2, 1) 100ms;
transition: opacity 500ms cubic-bezier(0.4, 0, 0.2, 1) 100ms;
}
#side-bar .close-menu::before {
z-index: 999;
}
#side-bar .close-menu::after {
z-index: 998;
}
#side-bar:hover .close-menu::before,
#side-bar:hover .close-menu::after {
opacity: 0;
}
#side-bar:hover {
left: 0;
background-color: rgba(var(--swatch-menubg-color), 1);
padding-right: 0;
}
#side-bar:hover::-webkit-scrollbar {
opacity: 1;
}
#side-bar:hover~#main-content::before {
width: calc(100% - var(--sidebar-width-on-desktop));
opacity: 1;
pointer-events: all;
}
}
}
}
}
:root {
/* header measurements */
--header-height-on-desktop: 10rem;
--header-height-on-mobile: 10rem;
--header-h1-font-size: clamp(2rem, 5vw, 2.8125rem);
--header-h2-font-size: clamp(0.875rem, 3vw, 0.9375rem);
--logo-image: url("https://scp-jp.github.io/Black-Highlighter/img/logo.svg");
}
#header {
--search-textbox-text-color: var(--swatch-secondary-color);
background: none;
}
#header::before {
content: " ";
position: absolute;
width: 100%;
height: 100%;
left: 0;
top: 0.75rem;
background-image: var(--logo-image);
background-repeat: no-repeat;
background-position: center 0;
background-size: auto calc(var(--header-height-on-desktop) - 1.5rem);
opacity: 0.8;
pointer-events: none;
}
#header h1,
#header h2 {
margin: 0;
padding: 0;
width: 100%;
height: var(--header-height-on-desktop);
display: flex;
align-items: center;
justify-content: center;
display: flex;
align-items: center;
justify-content: center;
}
#header h1 a,
#header h1 a::before,
#header h2 span,
#header h2 span::before {
margin: 0;
padding: 0;
z-index: 0;
display: block;
text-align: center;
}
#header h1 {
z-index: 1;
}
#header h1 a::before,
#header h1 a::after {
content: var(--header-title);
}
#header h1 a::before {
color: rgb(var(--swatch-text-tertiary-color));
z-index: -1;
-webkit-text-stroke: 0.325rem rgb(var(--swatch-text-dark));
}
#header h1 a::after {
color: rgb(var(--swatch-headerh1-color));
z-index: 1;
}
#header h2 {
z-index: 0;
text-transform: uppercase;
pointer-events: none;
}
#header h2 span {
margin-top: calc(var(--header-height-on-mobile)/2 + var(--header-h1-font-size)/1.6 - 2em);
}
#header h2 span::before,
#header h2 span::after {
--wght: 600;
content: var(--header-subtitle);
position: absolute;
left: 50%;
transform: translateY(-50%) translateX(-50%);
width: 100%;
text-align: center;
}
#header h2 span::before {
-webkit-text-stroke: 0.25rem rgb(var(--swatch-text-dark));
}
#header h2 span::after {
color: rgb(var(--swatch-headerh2-color));
z-index: 1;
}
#search-top-box form[id="search-top-box-form"]:not(:focus-within) input[type="text"] {
color: rgba(0, 0, 0, 0);
}
@media (min-width: 36rem) {
#login-status {
flex-grow: 1;
left: 3%;
right: initial;
}
#login-status::before {
--mask-image: none;
background-color: transparent;
}
#login-status:not(:focus-within) {
color: rgb(var(--login-line-divider-color));
-webkit-user-select: initial;
-moz-user-select: initial;
-ms-user-select: initial;
user-select: initial;
}
#login-status #account-topbutton,
#login-status:not(:focus-within) #account-topbutton {
--clip-path:
polygon( 0 0, 100% 0, 100% 100%, 0 100% );
background-color: rgba(var(--login-arrow-color), 0);
}
#login-status #account-topbutton::before{
--clip-path:
polygon( 30% 35%, 70% 35%, 50% 60%, 50% 60% );
--mask-image: initial;
content: "";
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
background-color: rgba(var(--login-arrow-color), 1);
-webkit-clip-path: var(--clip-path);
clip-path: var(--clip-path);
}
#login-status #account-topbutton::before,
#login-status:not(:focus-within) #account-topbutton::before,
#login-status:not(:focus-within) #account-topbutton:hover::before {
--clip-path:
polygon( 30% 35%, 70% 35%, 50% 60%, 50% 60% );
--mask-image: initial;
}
#login-status:not(:focus-within) #account-topbutton::after {
display: none;
}
#login-status:not(:focus-within) *:not(#account-topbutton):not([href*="account/messages"]) {
--clip-path:
polygon(
0 0,
100% 0,
100% 100%,
0 100%
);
pointer-events: all;
-webkit-clip-path: var(--clip-path);
clip-path: var(--clip-path);
}
#login-status:not(:focus-within) *:not(#account-topbutton):not(#account-options):not([href*="account/messages"]) {
opacity: 1;
}
#login-status #my-account {
--wght: 300;
}
#account-options {
background: var(--gradient-header);
}
#search-top-box {
top: 1.5em;
right: 3%;
background: rgba(var(--search-focus-textbox-bg-color), 0.4);
}
#search-top-box:focus-within ~ #login-status {
opacity: 1;
}
#search-top-box::after {
transition:
background-color 150ms cubic-bezier(0.4, 0, 0.2, 1),
-webkit-clip-path 150ms cubic-bezier(0.4, 0, 0.2, 1);
transition:
background-color 150ms cubic-bezier(0.4, 0, 0.2, 1),
clip-path 150ms cubic-bezier(0.4, 0, 0.2, 1);
transition:
background-color 150ms cubic-bezier(0.4, 0, 0.2, 1),
clip-path 150ms cubic-bezier(0.4, 0, 0.2, 1),
-webkit-clip-path 150ms cubic-bezier(0.4, 0, 0.2, 1);
}
#search-top-box:not(:focus-within)::after {
--clip-path:
polygon(
0 0,
100% 0,
100% 100%,
0% 100%
);
background-color: rgba(var(--search-icon-bg-color, --dark-accent), 1);
-webkit-clip-path: var(--clip-path);
clip-path: var(--clip-path);
}
#search-top-box:not(:focus-within):hover::after {
--clip-path:
polygon(
0 0,
100% 0,
100% 100%,
0 100%
);
background-color: rgb(var(--search-icon-hover-bg-color));
}
#search-top-box form[id="search-top-box-form"]:not(:focus-within) {
max-width: var(--search-width);
}
#search-top-box form[id="search-top-box-form"]:not(:focus-within) input[type="text"] {
max-width: var(--search-width);
padding: 0 var(--search-height) 0 1em;
outline-width: 0;
background-color: rgb(var(--search-focus-textbox-bg-color), 0.35);
color: rgba(var(--search-textbox-text-color), 0.4);
cursor: pointer;
}
#search-top-box form[id="search-top-box-form"]:not(:focus-within) input[type="submit"],
#search-top-box form[id="search-top-box-form"]:focus-within input[type="submit"] {
pointer-events: all;
border: none;
}
}
#page-title::after,
.meta-title::after,
#page-title::before,
.meta-title::before {
content: "";
flex-grow: 1;
height: 0.0625rem;
background: rgb(var(--swatch-primary));
}
#page-title::before,
.meta-title::before {
margin: auto 1.25rem auto auto;
}
シアトルが陥落した数日後の雨の降る夜、幾つもの閃光が窓に映り、数秒置いて猛烈な地震があった。続いて表が騒がしくなり、ヘリや戦車のエンジン音が響き始めた。次いで上空を通過するジェット音も。私は無線機のスイッチを入れ、何が起きているのかを把握しようとした。
「──────キロ64よりセイバー6、Foot-Mobile HOBOsが100以上、先頭の車両を失った!1747、時速15キロ、真西に移動中!こちらは激しい砲火を浴びている!小隊長は戦死!」
「セイバー6、Fast Moverはセクター3で待機中。ダブ14にコンタクト」
「キロ64-Actual、こちらダヴ14。レーザー照射は可能か?」
「出来ない、装備を失った。我々はジェファーソン通りの交差点から3ブロック、アパートの屋内にいる!ブロークン・アローを宣言する。繰り返す、ブロークン・アロー!」
「キロ64、了解。待機せよ。スターバースト、こちらダヴ14、即応CASパッケージを要請する」
「スターバースト、了解。アレイ6、A-10の2機編隊が利用可能。ブルズアイ110、50マイル。33.6FMでコンタクト。アレイ6、アレイ61、WP5の南東15マイル、地上部隊より支援要請。12S-XP-45826-26948」
「アレイ61、12S-XP-45826-26948」
「復唱を確認、アレイ61。A-FACとチャンネル・パープルで交信せよ。コールサインはダヴ14」
「ダヴ14、こちらアレイ6、2機のA-10で向かっている。こちらは2発のMk77と4発の500ポンドJDAM、機関砲、目標指示ポッドを装備。状況は?」
「ダヴ14、地上部隊よりブロークン・アローの申請あり。ジェファーソン通り西側に多数のHOBOs、地上部隊が包囲されつつある。タイプⅠ管制、9-LINEに備えろ」
「アレイ61、9-LINEの準備良し」
「ダヴ14、9-LINEを通達する。1: ジェファーソン通り西側、2: 方位020、3: 7マイル、4: 700フィート、5: HOBOs、6: 12S-XP-12217-11005、7: マーク無し、8: 300フィート南、9: 離脱方位230、Danger Close」
「700、12S-XP-12217-11005、友軍は300フィート南」
「復唱を確認。機関砲の使用を推奨する。目標視認後に交戦を許可する」
「アレイ61が目標を視認、GUNを使用、交戦準備良し」
「ダヴ14よりアレイ61、そちらを視認した。Cleared Hot、やってくれ」
「アレイ61、Going Hot! Guns!Guns!Guns!」
つまり、防衛線が急激に突破され、包囲されつつある友軍部隊が近接航空支援を求めている。それも極めて逼迫した状況で。タイプⅢ管制が有効であるという事は、辛うじてまだ航空部隊の対処能力を超えてはいないのだろう。だが、その後も聞こえてくるやり取りを聞く限り、それが長く続くようには思えなかった。
マシューとネイサンはガーナで戦死、スタンリーはウラル山脈で、そしてネルはーああ、クソッ。シアトルで私自身が手を掛けた。今や私はこの戦域での最先任。i3分遣隊の指揮官。最初はGCPUだったが、最早SERPAもCRSAも存在しない。それだけの人数が居ないのだから。戦いの場が本土に移ってからすぐ、CRITICSの全部隊はIASS隷下に統合されていた。私は無線のチャンネルを切り替え、前線の絶望的な状況に考えが及ぶのを阻止した。装備を身に着け、私たちのチームは2機のブラックホークに分乗した。
ヘリが離陸しようとする時、聞いた事の無い声が無線に割り込んできた。
”ミラ・オルブライト大尉、HMCLより通達。直ちにE-4区画へ出頭”
「ガイスト中佐の指示を仰ぐか、今すぐそのクソッたれな口を閉じろ。繰り返す、シエラ、タンゴ、フォックストロット、ユニフォーム」
”中佐の乗機は撃墜された。ガニメデ・イプシロン221に従い、今の君の上官は私だ。指示に従え。このままでは取り返しがつかなくなるぞ”
「ファッキン・ラジャー、小隊の指揮権をアイシャ・ファラハニ中尉に移譲。オルブライト大尉は降機し、E-4へ向出頭する」
私は舌打ちをしながらヘリから降り、アイシャに後を託した。財団の奴らは私たちの質問に答える意志が無い事は随分前から知っていた。いや、実は無いのは意志ではなく機能じゃないだろうか。
E-4、それは私たちが今まで一度も立ち入った事の無い場所だった。"ぶっ壊れた舞台装置"の(地図に載っている中では)最深部。巨大な半円型の隔壁。その前に真っ黒な装備に身を包みHK416を携行した財団の兵士がこの混乱の中でも微動だにせず突っ立っているのを見て、奴らはマネキンなんじゃないかと思った。彼らは私に武装解除を命じ、私はそれに従った。ナイツ社製の308口径、略奪者の銘を刻まれた45口径、タントー・ブレードにククリ。どれ一つ欠けても私は今まで無事ではいられなかっただろう。バッグも降ろし、プレートキャリアとベルトを外そうとした所で"それは着けたままで良い"と言われた。
隔壁が開き、私は彼らに案内されるまま中に入った。複数のエアロックを通り、隔壁の裏側へ。
「ここから先へは一人で行ってください。私たちにはクリアランスがありません」
「一つ教えてくれ。今私がやらされている事は、表で暴れてるHOBOs共をブチ殺すよりも重要な事か?」
「間違いなく。この戦争の今後を左右します」
私はそれ以上彼に問う事はしなかった。溜め込み屋連中が大切にするものは3つ。一つは"収容"、一つは"異常性”、そしてもう一つは"クリアランス"。つまり、聞くだけ時間の無駄だ。
私は隔壁の裏側──とはいえ、下り坂のだだっ広い通路があるだけだったが──を進み、その間に表で起きている事を
考えた。
シアトル、ポートランド、セイラム、ロサンゼルス、サンディエゴ、サンノゼ、サンフランシスコ、西海岸の主だった都市に、青白い肌の巨人染みたハルコストが上陸したのは1週間ほど前だった。奴の全容を捉えたのは初めてだったが、15年前から私たちはその存在を知っていた。HESICが海岸から離れた地域でしか活動できない事は知っていた。だから、奴らがネットワークにばら撒く異常性ミームにさえ対抗できれば、少なくともアメリカ本土が物理的に攻撃される事は無いと誰もが思っていた。だが、そうはならなかった。今や全てのサーカイト共は一つの群体となり、地球上の生態系を自らに置き換えようとしている。サーカイト食物環理論、そんな言葉を収容マニアの誰かが言っていたような気がする。
それにしてもこの道は妙だった。見た目には下り坂だが、足の感覚はこれが明らかに上り坂だと言っているし、そのくせ平衡感覚は平坦な道だと認識している。気分が悪くなりそうだった。
どれくらい歩いたかは分からない。時計を見ると、ヘリから降りてまだ30分も経っていなかったが、肉体の感覚は沿岸猟兵に配属された時に受けた任務適合訓練の初日を思い出す程だった。
唐突に床も壁も真っ白な石畳で覆われただだっ広い部屋にたどり着いた。薄暗い間接照明が規則正しく壁と床に埋め込まれていた。人がいる気配はしない。幾つものコンテナ、土木作業用の機械などが並んでいるだけ。その大きさを除けばシェルターのように見えた。
ふと、フレームに座席を載せただけの簡単な車両がそれらの間を通って近づいてくるのが見えた。扉とフレーム、ルーフを全て剥がしたHWMMVのようだった。乗っているのは財団の職員だろうか。灰色のジャンプスーツを身に着けている。助手席と後席にも同じ格好の男女が一人ずつ。
真意がわからない以上、この状況で出会った奴は敵と看做すべきだ。私はチェストリグのポーチに隠してあるP365とカランビットを抜いた。
助手席の男が降り、"軍人は血の気が多くて困る"などと抜かしやがった。私は構えを維持したまま奴らに誰何した。奴は自分をこの施設の主席HCML管理官だと名乗った。何だそれは、という質問は無視された。奴はただ車両に乗るように促し、必要なら銃とナイフも持って行っていい、と付け加えた。財団の研究者はどいつもこいつも似たような喋り方をする。だが、ここに来てから奴らはますます機械みたいになったように思った。
車両が走り出すと、彼は私に状況の説明を始めた。財団は"K級イベント"の封じ込めが失敗しつつあると看做した。今やサーカイトとメカニトが一体化したサイバネティック有機体の奔流に世界が覆われるまでの時間は残り少ないと。奴が言うには、失われた兵士と研究者の代替手段は既に確立されており、それらを指揮する"生身の人間"を一刻も早く確保する必要がある。
BZHRと奴らが呼ぶ装置がその代替手段のキーだった。何の略かは知らない。現在の文明が何かしらの理由でその連続性を失った時──例えば今起きているような事態に直面した時に──、既存のデータベースから死んだ人間を複製する事を目的としていたらしいが、ここが発見された当初から今に至るまでそいつは壊れたまま。財団の連中が"壊れた舞台装置"などと呼ぶのはそのせいだった。
財団はAEROに組み込まれた時からこれの復旧に全資産を投入したが、それが適わないと分かると、代わって失われた人員を補填する為の"代用人間"を作るのに使えないかを検討し始めた。オリンピア計画だの、SCP-3480だの、プランク=アストラル変換投射だの、F4階層ユニットだのと訳の分からないフレーズが幾つも飛び出したが、詰まるところはヒトそっくりの模倣体を作り出し、それを兵士の代わりに使う。作り出された模倣体は人間と何ら変わらない外見だが、遥かに強靭な肉体と運動能力、再生能力、一切の認識災害を受け付けない知覚、そして現象的意識を伴わない意識構造を持っているのだと。それ故に彼らは人と同じように思考し、意志を持ち、行動するが、主観的現象意識はない―奴はこの事を"F5。会話をしても、服を脱がしても、そしてセックスしても普通の人間とは全く見分けがつかないが、一つだけ違いがある。彼らは絶対に妊娠しない。BZHRに付加された現行の機能が健全に維持される限り、彼らの生殖機能は不要だからだ、と。
彼は認知科学と哲学の講義を終えた後に、こう付け加えた。
「解決不可能問題を解決不可能な状態に留め置く事で、我々は模倣体を完成させる事が出来たのだ」
それが私を連れてきた理由にはならない。だったらさっさとそいつらに武器と訓練を施し、アパッチに乗せ、敵を殲滅するよう命じればいい。すると奴は表情を変えず、こう告げた。
「君は既に会っている。模倣体の最初の世代に」
車は巨大な部屋の真ん中──いや、本当に真ん中なのかは自身が無い。ただ、全周見渡しても同じ景色が広がっていたから、きっとそうなんだろうと自分を納得させた。
マネキン兵士は文字通りのゾンビ野郎だった。だが、そんな事は最早どうでも良かった。知りたいのは私が個々に連れて来られた理由だった。
私がそれを口にする前に、車両ごと床がゆっくりと沈み始めた。