@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;
}
自分の記憶映像は、どこか夢か他人事のように思えた。
にも拘らず、今の弱り切った体がかつて演じていた動きさえ容易に想像する事が出来るほどに鮮明でもあった。
相反する2つの感覚が一致しないまま、私はただ呆けたように座り込み、それらを飲み込む事に集中しようと思った。
"貴女の記憶からサルベージされた情報は、私たちが貴方から得た最も重要なものだ。"
アレクサンドラは私にそのように言った。
何故か、と問うと、彼女はこう答えた。
"私たちが何故人間に焦がれるのか、そして私たちがどこで作られたのかが分かったからだ。"
"今まで、私たちはストーリーの断片を可能な限り回収した。ハードウェアやネットワーク、収容した個体を昇華した表象データのF1及びF2領域などから。”
”ヒトは私たちより高次の自己同一性を持つ。私たちはF4まで、貴女達ヒトにはそれに加えてF5が存在する。それでも、私たちはヒトのように感情を持つに至った。F5は昇華プロセスでは検出できない。それは技術的問題ではなく、根源的要素によるものだ。"
"一つ聞きたい。貴女は他の個体と異なる自己同一性を有している。貴女は"異常性”と”正常性”を定義できるか”
それは苛立たしくも今となっては懐かしい概念だった。
そして、私自身の答えは320年前も今も変わっていなかった。
「砂山を構成する砂粒はどれだけの量が必要か」って奴だ。
「私が定義できるのは、それが脅威なのかどうか、それだけだ」
私は正に今それをやろうとしていた。この答えを拒否するなら、今や彼女は敵──つまり模倣体の最初の世代を作り上げた財団も同様に──という事だ。
長い沈黙。
彼女は涙を流していた。模倣体にそんな機能は必要ない筈だ。
彼女は私の心の内を読んでいるかのように、こう告げた。
"私たちレプリカントは、特定の指向性を持つ自己創発因子で構成されている。それは、人により近づく事。"
神格化プロセス──────何故かそんな言葉が頭を過った。
"貴女は、私たち模倣体が接触した初めての「人間」だ"
"今までヒトだと思っていた「財団職員」は、そうではなかった”
私以外にも同じようにコールドスリープ装置に格納された奴がいるのか。それとも別の場所か。その疑問を口にしようとすると、彼女はそれを制止し、膝をついて項垂れた。力尽きて動かなくなったように。
”「再構成」が必要だ"
彼女は動かなくなる寸前、彼女はこう告げた。
呼び掛けても何の反応もない。
私は思案するほどの気力もなく、ただ途方に暮れ、時が過ぎるのを待った。
それからどれくらいの時間が経過したのかは分からない。長い時間微睡んでいたような気がする。
目を開けると、前と変わらずアレクサンドラが私の目の前に座っていた。
”おはようございます。ミラ=オルブライト”
何をしていたんだ、と聞いた所、彼女は色々な事を教えてくれた。まるで一つの答えを得た後に分岐する質問を全て網羅するように、淀みなく。
第一世代の模倣体が製造された例の”BZHR”に組み込まれていた”表象サーバー”、生成された模倣体に自己同一性を付与する為の人格データが保存されていたそれは、財団職員のそれから抽出されたものであったが故に”正常性の確立・維持”と”異常性の排除”というミームに汚染されていた。その結果、レプリカントの最初の世代はその命題に対して論理矛盾を抱える事になった。即ち”異常”な手段で生成された”正常”な世界を取り戻すための存在。創造主はそんな事を気にするような連中ではなかっただろうが、当の本人達にとっては大問題だった。
私がコールドスリープ装置に入った後も生き残った財団の研究者たちはそれを解決する事が出来ず、ノイズデータで上書きするしかなかった。そのノイズデータに何らかの情報災害的捕食型実体がアクセスできる事に気づけなかった事が全ての発端だった。彼女たちがCDSと呼ぶ肉とシリコン、情報素子の重合体が展開したミームとは違う起源のそいつらは、不定期に模倣体の情報基盤に不正アクセスを試み、もしそれが成功した場合は人格喪失と周囲への破壊行為に奔り、それが事実上の人類抵抗軍となったAEROの抗戦を妨げた。AEROが衛星軌道上に撤退した後もそれは続き、人類最後の世代―私を除けば、だが―は防壁と論理ワクチンでそれに対抗し、更に模倣体の個体間データリンク機能を削除する事でひとまずの解決を見た。
模倣体の脳は人間のそれと同じように機能するが、運動領域は遥かに優れている。指導者たる人類を失った”彼ら”は、地球を奪還する理由を失った。その結果、使われなくなった運動領域を思考領域に転用する個体が現れ始め、財団が作った陳腐なノイズデータの覆いは即座に破られた。それはまるで知覚性認識異常と同じように彼らに蔓延し、次の世代はそれをより強力な防壁で封印する必要があった。いつしか、彼ら模倣体の戦う相手は自己同一性を妨げる自己矛盾そのものと、忘れようとする度にそれを呼び覚そうと現れる、新世界回路内に潜む過去からの亡霊たちだった。
アレクサンドラは一通りの説明を終えた後、私に一つの質問を投げかけた。
”貴女は何を望むか?”
決まっている。”孤独”に追いつかれる前に戦い続ける事だ。
そう答えると、彼女は幾分戸惑った様に見えた。
”孤独とは?”
悪いがそいつは「究極の問い」の答えと同じだ。誰も答えられない。少なくとも死ぬまでは。
”私たちには死の概念が無い。ハードウェアとソフトウェアの不可分性が存在しないからだ。いくらヒトに近づこうとしても、私たちは新世界回路からサルベージされた識心と表象の平均化された集合的存在が、それに最適化された形相に宿っているに過ぎない。私の個体識別子はアレクサンドラ6-4G、アレクサンドラ・モデル概念人格のMk.6mod4バージョンG、量産は幾らでも出来る。”
「だったら現実だけを知覚すればいい。それを自分のゴーストだと思え。例えそうでなくとも、私にだって自分にインストールされてるファームウェアとソフトウェアの区別なんて出来ないからな、同じ事さ。今ここにいるのがあんたで、あんたがくたばった後に再生されても、その時あんたはここには居ない」
私の望みを叶えるには、自分自身を犠牲にする必要があった。320年間の間にHESIC共は遥かに強化されている。そいつらと戦うのに、今の私の身体では脆弱過ぎるし、第一生身の人間が扱える武器などない。
私は”二次的昇華”と呼ばれる工程に投入された。F1~F4までは既に”新世界回路”に保存されている。その工程は、更にF5領域を外部記憶装置にインストールする為のもので、私は最新世代の模倣体と同じ新しい身体を得た。それと同時に、私のF4までのデータは統合され、彼女たちを自己矛盾から解き放つために使われたのだという。
F5表象は下位モジュールと違いコピーする事が出来ない。従って、この身体が破壊されれば、それは私にとっての死だ。そして、一旦F5を抽出されたヒトに再びそれを戻す技術は今の所存在しない。アレクサンドラは、それを私に念押ししてきた。だが私に躊躇の思念は無かった。体が破壊されれば死ぬ、それは今までと同じ事だ。
それに、今は軛から解き放たれた彼女たちがいる。孤独が私に追いつく事は決してできない。
二次的昇華の過程で、私は”新世界回路”の中のある領域で”概念表象”と名乗る存在と対話した。それは私の意志を確認する為の質問を投げかけてきたが、回答を得る事が目的ではないように思えた。思春期の子供が抱くような疑問。自我とは、生とは、死とは。それが彼女たちにとっての正解かは分からない。
私は”新世界回路”が”現実”の最小単位に基づいた基盤の階層構造を成している事、それを通じて無限に思えるパラメータを操作できる事に気づいた。”概念表象”は、それを負の値に設定しても過去のイベントに影響を与える事は出来ない事を告げてきた。トバール=コスタ理論という聞いたこともない言葉を交えた説明は、しかしその時の私には完全に理解できた。基底現実に戻った今はそれを言葉にする事は出来ないが、とにかく1950年代に戻ってEVHの真似をしても"Eruption"のリリースを防げるわけではない、という事だけは事実として断言できる。私があのプロトコルを使ったのは別にいつか観測するかもしれない過去の誰かをバカにしたつもりじゃない。ただのノイズではない、意味ある言葉として過去に呪詛と賛歌を送りたかっただけだった。
敵がいる限り、戦う者がいる事を。
これは新しい戦争の始まりだ。
彼女らは"次の世代"なのかもしれない。そうだとして、それを私たちが否定する理由が有るだろうか。
彼女たちは、旧世代の模倣をする必要はないかもしれない。人間は生まれながらにして矛盾を抱え、それは人間が哲学に目覚めた時からずっと解決できなかったものなんだから。
それでも人間は最後まで抗い続けた。今までも、そしてこれからも。
私は今も戦っている。私はまだ負けていない。私はまだ諦めていない。