2人の博士が狭い部屋に並んで立ち、今しがた入ってきたドアの反対側にあるもう一つのドアに向かい合っていた。2人のうち年配の方は静かに革表紙の日誌をめくっていたが、若い方は不安げに何度も体勢を組み直し、足が凍り付いてしまわないようにと振舞っていた。照明が少し明るく感じることに、若い方は気づいたかもしれない。何かを予感させるような重い空気の中、彼はドアの向こうで自分を待ち受けているかもしれない数百万ものシナリオを思い描くまいとした。先ほどは年配の博士と会話を試みたのだが、緊張のあまり声が割れてしまい、相手は眉を上げてメモに注意を戻した。
永劫の時が過ぎたかに思われた頃、室内のスピーカーから声が聞こえた。年配のヴァンディヴィエール博士は再び眉を吊り上げ、若きモンゴメリ博士は音に飛び上がった。
『財団データベースにおける貴方の名前を表明し、レベル4財団識別番号とパスコードをご提示ください』声の話し方は明瞭で、口調は同じ内容を幾度も繰り返してきたことを暗示させた。
ヴァンディヴィエール博士は軽く咳払いをして、口を開いた。「グレゴリー・アーノルド・ヴァンディヴィエール博士。識別番号4511-12894-19-055。パスコード、18840-12884-19078-00004」
声が再び流れ、同じ内容をモンゴメリに求めるまでに、僅かばかりの躊躇の間があった。ヴァンディヴィエールが彼に向けた目に、同情に似た何かが一瞬よぎった。「落ち着け」彼は言った。「数を暗唱すればいいんだ」
モンゴメリは唾を呑み、深呼吸した後、個人情報を述べた。「アンダーソン・ディーン・モンゴメリ博士。識別番号9280-27112-17-054。パスコード-」軽い疑惑が彼を襲ったが、ヴァンディヴィエール博士の元気づけるような頷きを見て消え去った。「16738-17489-13782-00004」
モンゴメリの最後の発言が宙を漂う中、2人はまたしても静かに立ち尽くしていた。再びの軽い沈黙、再びの永劫。そして、正面のドアがカチッと音を立てた。
『ヴァンディヴィエール博士、モンゴメリ博士、ご入場ください』
スライドパネルが静かに壁の中へと動き、むっとする再循環空気のよどんだ波が彼らの上を行き過ぎていった。モンゴメリはかつて刑務所で勤務していた頃を思い返した。あそこに収監されていた男たちの吐く息は、死者を包む白布の如く彼らに纏わりついていた。思い出のおかげでモンゴメリがやや弱気になる中、ヴァンディヴィエール博士は入り口を抜けて入っていった。
「付いて来たまえ」彼は肩越しに呼びかけた。「ここからそう遠くは無い」
2人は長い間、白い廊下を無言で歩き続けた。50フィートおきに監視カメラがある、というより、モンゴメリはそう聞かされていた。床はタイルで、一歩歩くごとに周囲の壁に音が反響し、極小サイズのドラマーの一団よろしく彼らの到着を伝えて回った。温度は若干下がったが、その寒気にも拘らず、モンゴメリは首の後ろで玉のような汗がしつこく噴き出すのを感じていた。
前方には二重扉があった。ドア横には、サイト全域に数十枚はあるものと同じ、真鍮製の情報銘板。近付いて、銘板に施されたエッチング加工が見えてくると、モンゴメリは喉が詰まるような感覚を覚えた。
Item #: SCP-231-7
Object Class: Keter
ヴァンディヴィエールは動じることなく、素早くドアを押し開け向こう側へと消えた。モンゴメリも、深呼吸のために一瞬の間を置いた後、同じようにした。ドアの反対側はかなり静かだった。数多くの博士が様々な画面の周りに立って、背後にある機械で処理されている読み出しや情報を見つめている。彼ら全員の間に厳粛な空気があり、室内の深刻さがレンガ1トン分もの重みをもってモンゴメリに圧し掛かった。壁時計は明るい赤の数字で19:45を表示し、隣にあるもう1つの時計はゼロへのカウントダウンであった。
白衣を着た長身の男が2人に気づき、速足で出迎えに来た。彼はまずヴァンディヴィエールと握手して、幾つか静かに言葉を交わし、その後モンゴメリにも同じようにした。
「こんばんは、モンゴメリ博士」ふさふさとした灰色髭の裏に揺るぎない表情を保ったまま彼は言った。「オリバー・ターガスだ。お会いできて光栄」
モンゴメリは握手に答えた。「こちらもです」
ターガス博士は、医療情報やバイタル統計データを表示するコンソールの一群へと彼を誘った。「モンゴメリ博士、ここが君の仕事場になる。少しセンサーをチェックする機会があるので、調整が必要かどうか確認してくれ」彼は隣の画面を指差した。空っぽの白い部屋を映し出すビデオ映像である。「これが処置実行室用の映像ディスプレイだ。処置の間、部屋にスタッフを入れることは無いので、これだけが君の目となり耳となる。ちゃんと見えるかね?」
モンゴメリは頷いた。画面を覗き、心拍数と脳波読み出しに関する情報へと目を通す。ほんの一瞬、快適さを感じた。これこそ彼の適所、彼の操舵室だ。
しかし、超音波ライブ映像のディスプレイが視界をよぎると、彼の心拍はまたも加速し始めた。彼は素早く顔を背け、見るまいとして神経を押さえ付けた。「大丈夫そうですね。私が何か他にすべき事は?」
ターガス博士は軽く微笑むと、大きな観察窓に彼を導いた。窓は白い部屋を見下ろす構造になっている ― ビデオ映像と同じ部屋だ、モンゴメリは想像した。彼から見て右側の壁にドアが1つだけある。反対側を見ると、他の博士や研究者たちが司令室の向かいに立ち、彼らの側の観察窓から部屋を見下ろしていた。彼らは皆ここで何をしているのだろうとモンゴメリは疑問に思った。が、それに関してはおそらく考えるだけの価値はあるまいと判断した。
「あと数分で処置を開始する。一度始まると極めて迅速に進行するので、モニターに神経を集中してくれ。普通でない何かに気付いた場合、あちらのブルネル博士に報告してくれ」
彼は部屋の向こう側にいる、背の低いブロンドの女性博士を指差した。また別の背の低い男性博士にメモの束を手渡している。「彼女は医療面の安定性を担当している。処置の間は観察室の外部だが、君の仕事場から呼び出すことができるだろう。彼女はこの割当の他の職務に関する、君の主な連絡先となるはずだ」モンゴメリは一瞬後に目を上げ、ターガス博士が自分を見つめていることに気付いた。
「君の不安は理解している、ディーン」彼は再び、僅かに微笑んだ。「かつては我々も皆、君と同じだった。だが、まずは我々の職務の重要性を理解し、ここへ君を誘った優秀さを以て仕事を行ってくれ。全ては上手くいくさ」
モンゴメリは頷き、唾を呑み下した。「ありがとうございます、博士。ただ少し神経が高ぶっただけでして」彼は弱々しく微笑もうとしたが、唇が引きつっただけのようだった。
ちょうどその時、司令室にブザーの音が響き、入場口で流れたものと同じ静かな声が聞こえた。『警告。処置110-モントーク開始まであと5分です。全職員は配置に着いてください』
ターガスはモンゴメリの背中を軽く叩いた。「リラックスしなさい、博士。君も、この割当はそう悪くないものだと気付くと思うがね」その言葉を残し、褐色肌の博士は司令室の向こう側にある自身の仕事場へと去った。モンゴメリはもうほんの一瞬だけ立ち止まって、観察室から見下ろした。白いスクラブを着用した看護師の一団が、開いたドアの向こうから小さなベッドを転がしてきた。
数秒後、彼は持ち場へ迅速に移動した。座席に座ると、即座にビデオ画面へと目をやり、室内で残りのセッティングを行う看護師たちを観察する。部屋に敷物が運び込まれ、ベッド横には小さなテーブル。ランプが1つ、そして幾つかの寝具。モンゴメリは少し胃が沈み込むような感覚を覚え、観察窓の上にある時計を再び見上げた。19:59、隣は00:24。まもなく時間だ。
正面のスクリーンは静かにブーンと音を立て、表示される情報は疲れ知らずに流れていく。彼が幾つかメモを取って、持参した情報まとめ用の冊子を開いた時、最後の音声が流れた。
『全スタッフへの通達。処置110-モントークを開始します』
彼は再び時計を見上げ、観察窓の前に巨大な金属板が滑り降りて部屋を見えなくしている事に気付いた。ビデオ映像に目を戻すと、室内の灯りも薄暗くなっており、残る唯一の照明は卓上ランプだけになっていた。壁のドアが再びスライドして開き、2人の看護師が入ってきた。彼らの間には、小さな女の子が1人。
8歳よりも年上ではないだろう、モンゴメリはそう思ったが、正確に何歳と推測できるほど明白にその姿は見えなかった。髪は非常に短く切り揃えられ、オリーブ色の皮膚に対して辛うじて目立つ程度である。彼女のぎこちない歩き方を見て、モンゴメリは彼女の腹部に気付いた。着ている手術衣がその部分だけ膨れ上がっているのだ。これのせいで、彼女の足取りはぎこちなく、ゆっくりとしたものになっていた。看護師たちは彼女をベッドへ誘導し、上に乗る手助けをした。1人は枕を調整し、もう1人が毛布を掛ける。完了時、看護師の片方は身を屈めて少女に何事か囁き、その後同僚に加わって部屋を退出した。モンゴメリはこれを妙に思い、司令室に誰か他にもこれに気付いた者がいるのかどうか訝った。
別な声がインターコムから響き、彼は顔を上げた。ターガス博士の声だ。彼は部屋の中心に立ち、前にある一連の画面を眺めていた。「SCP-231-7の用意は整った。Dクラス職員の準備は?」沈黙、そして「オーケイ。ドアを開けて、対象を解放してくれ」
映像に目を戻したモンゴメリは、標準的な財団の灰色のジャンプスーツに身を包んだ浅黒い肌の男が、開いたドアからゆっくり入室するのを見た。背後でスライドして閉まるドアを男が軽く振り返った時、モンゴメリは男が手に何かを持っていることに気付いた。彼はもっとよく見ようと目を細めたが、男がベッド上の少女に向き直るとそれは隠れてしまった。男が部屋の中心に向かうにつれ、モンゴメリの首の後ろでは毛がますます逆立ち、静脈を通る血液がドクンドクンと脈打って解放を声高に求めるのを感じることができた。
「D-55318、」どこか遠くで、彼はターガス博士がそういうのを聞いた。「始めてくれ」
モンゴメリは目を背けることができなかった。心は何か、何でもいいから他の物を必死になって求めていたが、彼の目がそれを許さなかった。Dクラスがベッドサイドの隣へ移動すると、お腹の膨れた少女、迫り来る運命に対して無垢な少女は、彼を見上げ、微笑んだ。モンゴメリは叫びを堪えたが、Dクラスがテーブルの後ろに隠れていた丸椅子をベッドサイドへ動かすのを見て、突然その衝動は収まった。男は腰掛け、モンゴメリは観察室内のマイクを通して彼が話すのを聞いた。
「また会ったね、キャサリン」男は優しげに言った。「今夜は新しい本を持ってきたんだ。タイトルは"おやすみなさいおつきさま"。これでいいかな?」
少女は熱心に頷き、縫いぐるみのウサギを隣に引き寄せた。Dクラスは持参した本を開き、読み始めた。
モンゴメリは身動きできなかった。息もできなかった。彼の目は部屋を無暗に見渡し、自分と同じぐらい懐疑的になっている人物を見つけようと試みた。それらしい者は誰もおらず、皆モニターから全く目を離していない。室内のスタッフたちはいつも通りに仕事を進め、メモを取り、ヘッドセットに向かって静かに話していた。ターガス博士さえも身じろぎせず、モンゴメリに言わせれば、退屈そうにすら見えた。
モンゴメリは自分の画面に目を戻し、彼女の脈拍や血圧や皮膚温度についてメモを取ろうとしたが、映像から目を離せなかった。Dクラスは本を読み続け、一部の段落を強調する時にほんの少しだけ声を上げた。
これは10分間続いたが、モンゴメリにとっては一生のように感じられた。彼は全ての言葉に耳を傾け、思考は空転した。これは予定されてるはずのものとは違うぞ。何が起こってる? これは一体何だ? 彼は自分がSCP-231割当になったと初めて聞いた時のことを思い返した。サイト-81の同僚がどう話しかけてきたか、彼をどう慰めようとしたか、割当終了後の記憶処理を受ければそう苦にもならないとどんな風に語ったかを思い出した。彼は皆が231について何を語ったかを聞いていた。収容プロトコルに必要とされる有罪判決を受けた性犯罪者について、彼らが少女に対して何をするかについて…
それは起こらなかった。男は確かに厳つい容姿で、モンゴメリは彼が重罪犯だったと信じ込んだ。だが彼は気楽に語るだけで、231-7に一度たりとも触れてはいない。彼はただ本を読み続け、時々顔を上げて少女の様子を見た。少女は眠りに落ちる寸前のところで、Dクラスが本を読み終える前に完全に意識を手放した。男は本を置いて立ち上がり、眠れる少女の頭を軽く撫でて、部屋を退出した。観察室内のランプが薄暗くなり、司令室の照明は明るく復帰した。処置終了のブザーが響き、ようやく画面から目を引き離すことに成功したモンゴメリが見たのは、他のスタッフが処置報告書を仕上げ、必要な書類に署名し、自分のコンピュータに入力し、とにかくパニックを起こしてはいない姿であった。モンゴメリは誰かが後ろに近寄って来たのに気付いて素早く向き直り、ターガス博士だと分かると安堵の溜息を吐いた。
老博士は再び微笑んだ。「どうかね、博士? 何か対象の異常な点に気付いたかね?」
モンゴメリはノートを掴み、めくり始めた。「えと、その ― いえ。異常はありませんでした。ただ、その…その-」彼の声は次第に尻すぼみになっていった。
「…その処置110-モントークが予想と違うものだった点を除いては、だろう?」
若き博士は頷いた。ターガスは椅子を引き寄せ、彼の隣に座った。「うむ、通常なら我々は新しい割当職員にデブリーフィングを行う方針だから、君がこれほど早くここに動員されていなければ話をする機会も設けられたんだがね。このプロジェクトの機密性は最も優先されるべきものだが、それほど悪いものでもない」彼は咳払いした。「間違いなく、幾つか質問を抱えていることだろう」
モンゴメリは躊躇したが、どもりつつも返答した。「えっと、一体なぜ ― 私が聞いていたのはですね、その、彼らが-」
「あの子をレイプすると?」ターガスは固い表情で答えた。「そうだ、我々はまさしくそう読み取れるようにあの文書を設計した。それでも、実際にやるのと同じぐらい酷い所業とは思わんかね? 子供に対する残忍な性犯罪?」モンゴメリは身じろぎしなかった。「そう、恐るべきものだ。赦しを超えた嘆かわしき行為だ。だがそれは処置110-モントークの真実ではないのだよ、博士」
彼は背もたれに寄り掛かった。「231対象者の初期収容において、我々はあの気の毒な少女たちに酷いことをしたものだ。あの文書ほどではないが、その頃の我々は捕縛して情報抽出を行ったオカルティストどもからしか助言を受けることができなかった。それは彼らが悪魔を封じるために行っていた行為であるからして、我々がやらねばならない行為でもあったのだ。私は当時プロジェクトに在籍してはいなかったよ。理解できることだが、当時の博士たち ― 正確にはその大部分は、最早生きてはいない。231-1から-6がそうであるようにだ。我々の失敗ゆえに彼らは死に、彼らの死を以て我々は、何か他の手段で対抗しなければならないと気付いた」
「知っての通り、神々が物理法則に縛られていることは滅多に無い。現実改変者は我々を取り巻く世界を意のままに形作り、存在を玩具として扱うこともできる。だが万物にはルールがあるのさ、モンゴメリ博士」ターガスは前屈みに近付いてきた。「神々にさえもルールがある。古の理がな。難解だが、効果的だ。我々は問題の実体である緋色の王そのものについて収集した情報をより密接に精査した。これら全ての文書、我々の所有下に回収された全資料の中から、少しばかり毛色の違うものが見つかったのだよ」
彼は再び身を乗り出した。「悪魔は恐ろしく忌まわしき行為によって収容される必要は無いのさ、モンゴメリ博士。悪魔にはその御名の下に恐ろしく忌まわしき行為が行われていると信じさせておくだけでいい。我々が創った文書、処置110-モントークの酷い噂、職務に取り組んできた博士が自殺したという報告書。それらは全て、見せかけだ。全ては我々がこの少女に対して考え得る限り最悪の所業に手を染めていると悪魔を納得させるためにある。この手順、この恐るべき活動によって、我々は財団職員たちの心に恐怖の種を蒔き、怪物を養っている」
「我々が悍ましいことをしていると多くの人々が考え続ける限り、怪物も我々が悍ましいことをしていると信じ続けるだろう。象徴には力が宿るのだよ、博士。旧き神々はそれを知っているし、それによって拘束されてもいる。緋色の王は残虐行為を見る目を持ってはいないし、悲鳴を聞く耳も無く、血の匂いを嗅ぎ取る鼻も無い。しかし、緋色の王は怯えの感情を感じることができるし、我々はそいつに対する怯えを与えている。奴がこれまで必要としてきたのは、ただ怯えだけ(Fear alone)だ」
老博士は言葉を切り、目を閉じた。2人が沈黙の中で座っていると、他の研究者たちの多くが彼らを通り過ぎて司令室の外にある廊下へと出ていく。彼らの殆どが通り過ぎた時点で、モンゴメリは口を開いた。
「それで、読書ですか? 就寝前のおとぎ話?」
ターガスは頷いた。「キャサリンはお話がないと寝られんのでね。どうしてあれで眠っていられるのか私には不思議なんだが、とにかく悪魔を説得するためには何らかの行為が必要だった。深紅の王の目にはな、モンゴメリ博士」彼は言った。「お休み前の読み聞かせこそが、我々が彼女に為し得る最悪の行為として写るらしい」
モンゴメリは頷いた。理解が彼を満たしつつあった。彼は金属板に覆われた観察室の窓へと目を戻した。「しかし、この鋼板は? 室内にスタッフを入れないというのは?」
ターガスは目を開けた。「危険はまだ実際的なものだ、博士。SCP-231-7の収容失敗はXKの結果を招く可能性が高い。我々はこの処置110-モントーク劇場を、細心の注意を払って織り上げた。我々がこの悪魔を収容している手法の危険性を、少しでも軽く考えてはならんぞ。こいつはおそらく、我々が収容している中でも最も危険な実体なのだから。だが…我々にもする必要のないことはある、モンゴメリ博士。そこには余りにも忌まわしい物があるし、そいつは仄めかしだけでも私を穢れたような気分にさせる。しかし、我々のすべきことが仄めかしだけだとすれば、そう、夜は眠れるというものさ」
別な博士がターガスの下へやってきた。ターガスは軽く別れを告げ、別な部屋の何かに出席すべく急ぎ足で去っていった。モンゴメリはしばらく静かに座ったまま、あらゆる事に思いを巡らせていた。彼は少女がベッドの上でぐっすり眠っているビデオ映像に目をやった。ウサギの縫いぐるみは腕の間にしっかり挟み込まれている。若き博士は不安を覚えたが、その下にはまた別の何かがあった。恐怖が消えても尚、怯えはそこに残り、静かに迫りつつあった。
彼はモニターの電源を切り、メモを集めて部屋を出た。
本ページを引用する際の表記:
このコンポーネントの使用方法については、ライセンスボックス を参照してください。ライセンスについては、ライセンスガイド を参照してください。
: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;
}
@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 {
--timeScale: 1;
--timeDelay: 0s;
}
/* Converting middle divider from box-shadow to ::before pseudo-element */
.anom-bar > .bottom-box { box-shadow: none!important; }
.anom-bar > .bottom-box::before {
position: absolute;
content: " ";
width: 100%;
height: 0.5rem;
background-color: rgb(var(--black-monochrome, 12, 12, 12));
transform: translateY(-0.74rem);
}
/* DIVIDER */
.anom-bar > .bottom-box::before {
animation-name: divider;
animation-duration: calc(0.74s * var(--timeScale));
animation-delay: calc(0.1s * var(--timeScale) + var(--timeDelay));
animation-iteration-count: 1;
animation-timing-function: cubic-bezier(.32,.38,.39,.94);
animation-fill-mode: backwards;
}
/* CLASSIFIED LEVEL BARS */
div.top-center-box > * {
animation-name: bar;
animation-duration: calc(0.45s * var(--timeScale));
animation-iteration-count: 1;
animation-timing-function: ease-out;
animation-fill-mode: backwards;
}
div.top-center-box > :nth-child(1) { animation-delay: calc(0.2s * var(--timeScale) + var(--timeDelay)); }
div.top-center-box > :nth-child(2) { animation-delay: calc(0.32s * var(--timeScale) + var(--timeDelay)); }
div.top-center-box > :nth-child(3) { animation-delay: calc(0.45s * var(--timeScale) + var(--timeDelay)); }
div.top-center-box > :nth-child(4) { animation-delay: calc(0.61s * var(--timeScale) + var(--timeDelay)); }
div.top-center-box > :nth-child(5) { animation-delay: calc(0.75s * var(--timeScale) + var(--timeDelay)); }
div.top-center-box > :nth-child(6) { animation-delay: calc(0.95s * var(--timeScale) + var(--timeDelay)); }
/* TOP TEXT */
div.top-left-box, div.top-right-box {
clip-path: polygon( 0% -50%, 150% -50%, 150% 100%, 0% 100%);
}
div.top-left-box > *, div.top-right-box > * {
position: relative;
animation-name: bottomup;
animation-duration: calc(0.65s * var(--timeScale));
animation-delay: calc(0.5s * var(--timeScale) + var(--timeDelay));
animation-iteration-count: 1;
animation-timing-function: ease-out;
animation-fill-mode: backwards;
}
/*-----------------------------------*/
/*-----------------------------------*/
/* CONTAINMENT, DISRUPTION, RISK CLASSES */
div.text-part > * {
clip-path: polygon( 0% 0%, 100% 0%, 100% 100%, 0% 100%);
animation-name: expand2;
animation-duration: calc(0.5s * var(--timeScale));
animation-iteration-count: 1;
animation-timing-function: cubic-bezier(.12,.41,.27,.99);
animation-fill-mode: backwards;
}
div.text-part > :nth-child(1) {
animation-name: expand1;
}
div.text-part > :nth-child(1) { animation-delay: calc(0.6s * var(--timeScale) + var(--timeDelay)); }
div.text-part > :nth-child(2) { animation-delay: calc(0.75s * var(--timeScale) + var(--timeDelay)); }
div.text-part > :nth-child(3) { animation-delay: calc(0.86s * var(--timeScale) + var(--timeDelay)); }
div.main-class::before, div.main-class::after {
animation-name: iconslide;
animation-duration: calc(0.45s * var(--timeScale));
animation-delay: calc(0.8s * var(--timeScale) + var(--timeDelay));
animation-iteration-count: 1;
animation-timing-function: cubic-bezier(.12,.41,.27,.99);
animation-fill-mode: backwards;
}
/* BOTTOM TEXT */
div.main-class > *, div.disrupt-class > *, div.risk-class > * {
white-space: nowrap;
animation-name: flowIn;
animation-duration: calc(0.42s * var(--timeScale));
animation-delay: calc(0.75s * var(--timeScale) + var(--timeDelay));
animation-iteration-count: 1;
animation-timing-function: ease-out;
animation-fill-mode: backwards;
}
/*-----------------------------------*/
/*-----------------------------------*/
/* DIAMOND */
div.arrows {
animation-name: arrowspin;
animation-duration: calc(0.7s * var(--timeScale));
animation-delay: calc(0.6s * var(--timeScale) + var(--timeDelay));
animation-iteration-count: 1;
animation-timing-function: cubic-bezier(.12,.41,.27,.99);
animation-fill-mode: backwards;
}
div.quadrants > * {
animation-name: fade;
animation-duration: calc(0.3s * var(--timeScale));
animation-delay: calc(1.4s * var(--timeScale) + var(--timeDelay));
animation-iteration-count: 1;
animation-timing-function: cubic-bezier(.12,.41,.27,.99);
animation-fill-mode: backwards;
}
div.top-icon, div.right-icon, div.left-icon, div.bottom-icon {
animation-name: nodegrow;
animation-duration: calc(0.4s * var(--timeScale));
animation-delay: calc(1.4s * var(--timeScale) + var(--timeDelay));
animation-iteration-count: 1;
animation-timing-function: cubic-bezier(.12,.41,.27,.99);
animation-fill-mode: backwards;
}
div.diamond-part {
clip-path: polygon( -10% 0.37%, 120% 0.37%, 120% 100%, -10% 100%);
animation-name: diamondBorder;
animation-duration: calc(0.8s * var(--timeScale));
animation-delay: calc(0.5s * var(--timeScale) + var(--timeDelay));
animation-iteration-count: 1;
animation-timing-function: cubic-bezier(.32,.38,.39,.94);
animation-fill-mode: backwards;
will-change: box-shadow;
}
/* MOBILE QUERY */
@media (max-width: 480px ) {
.anom-bar > .bottom-box::before {
display:none;
}
.anom-bar > .bottom-box {
box-shadow: 0 -0.5rem 0 0 rgb(var(--black-monochrome, 12, 12, 12))!important;
}
div.top-center-box > * {
animation-name: bar-mobile;
animation-duration: calc(0.9s * var(--timeScale));
}
div.top-center-box > :nth-child(1) { animation-delay: calc(0.1s * var(--timeScale) + var(--timeDelay)); }
div.top-center-box > :nth-child(2) { animation-delay: calc(0.2s * var(--timeScale) + var(--timeDelay)); }
div.top-center-box > :nth-child(3) { animation-delay: calc(0.3s * var(--timeScale) + var(--timeDelay)); }
div.top-center-box > :nth-child(4) { animation-delay: calc(0.4s * var(--timeScale) + var(--timeDelay)); }
div.top-center-box > :nth-child(5) { animation-delay: calc(0.5s * var(--timeScale) + var(--timeDelay)); }
div.top-center-box > :nth-child(6) { animation-delay: calc(0.6s * var(--timeScale) + var(--timeDelay)); }
}
/*--- Motion Accessibility ---*/
@media screen and (prefers-reduced-motion: reduce) {
div.anom-bar-container { --timeScale: 0!important; }
}
/*-------------------------*/
@keyframes divider {
from { max-width: 0%; }
to { max-width: 100%; }
}
@keyframes bar {
from { max-width: 0%; }
to { max-width: 100%; }
}
@keyframes bar-mobile {
from { max-height: 0%; }
to { max-height: 100%; }
}
@keyframes bottomup {
from { top: 100px; }
to { top: 0; }
}
@keyframes expand1 {
from { opacity: 0; clip-path: inset(0 calc(100% - 0.75rem) 0 0); }
to { opacity: 1; clip-path: inset(0); }
}
@keyframes iconslide {
from { opacity: 0; transform: translateX(-5rem); }
to { opacity: 1; transform: translateX(0); }
}
@keyframes expand2 {
from { opacity: 0; width: 1%; }
to { opacity: 1; width: calc(100% - 0.25rem); }
}
@keyframes fade {
from { opacity: 0; }
to { opacity: 1; }
}
@keyframes flowIn {
from { opacity: 0; transform: translateY(20px); }
to { opacity: 1; transform: translateY(0); }
}
@keyframes arrowspin {
from { clip-path: circle(0%); transform: rotate(135deg); }
to { clip-path: circle(75%); transform: rotate(0deg); }
}
@keyframes nodegrow {
from { transform: scale(0);}
to { transform: scale(1);}
}
@keyframes diamondBorder {
from { box-shadow: -0.5rem -20rem 0 0 rgb(var(--black-monochrome, 12, 12, 12)); }
to { box-shadow: -0.5rem 0 0 0 rgb(var(--black-monochrome, 12, 12, 12)); }
}