サイト-81の管理官は、財団の領域から遠く離れ、ロッキー山脈に囲まれたコテージにいた。彼は裏手のポーチで腰かけて、爽やかな朝の空気を楽しんだ。彼は深呼吸を一つ、そしてもう一つ。それから、貯水池の地下の長い廊下や暗い部屋よりもここで呼吸をする方がどれほど愉快かと考えながら、微笑んだ。彼はサイト-81を愛していた──そこに疑いの余地は無い。だがサイト-81は古めかしく、太古の昔に建てられたかのようだった。そこは、異常実体を研究し、収容するためには素晴らしい場所だったが、快適さという点では何も考慮されていなかった。
しかし、そのような財団への不満は、今や彼の心の奥底にあった。博士はコーヒーをすすり、自らの腕の点滴を何気なくいじった。カーライルは、古い友人から捧げられた本を読んでいた。旧友は、今や財団を退職して久しい人物だった。まだ青年であった頃に彼らは出会い、外界との関係を解消するよう強制されたときも彼らは共にあった。かつて彼らは、自分たちなりのやり方で、互いを愛し合っていたと言えるかもしれない。
一方の男が財団を去る時が来た際、彼はカーライルに本と約束を贈った──アクタスが引退したあかつきにはまた会おう、そして共にイタリアへ引っ越そう。彼らはいつもイタリアを好んでいた。カーライルは微笑んで、本を受け取り、約束を交わした。
「だけど、ひょっとするとだけどさ、カーライル」オリバーが言う。「もしかしたら君はずっとここにいて、太陽が沈むまであの研究室でこつこつやるのかもな。君がこの三十年近くで老けていない理由も、主のみぞ知るということか」
カーライルは笑い、自分を待ってくれるよう友人に頼んだ。オリバー・ライツは財団を去った後、自身の生まれた地であるミネアポリスへと移った。23年後のある夜、彼は亡くなった。吹雪による停電が彼の家を闇へと追いやり、火の消えた薪ストーブのそばで彼は凍え死んだのだ。87歳だった。
同じ夜、カーライルは、危険なSCPを制限付きでKeterクラスに格上げする要望を認可していた。彼はもっと後になるまで、オリバーの死について聞き知ることがなかった。町を出る間際にこの本を掴むまでずっと、彼はこの事について考えてこなかったのだった。
彼の目は、カバーの内側に刻まれた手書きの文字に釘付けになった。我が一番の親友へ、愛を込めて。彼は本を読みだした。
ランチの事を考え始めるまで、彼は昼近くまで満足に読書を続けた。彼は立ち上がり、ゆっくりと慎重に戸口へと歩いて、部屋に入った。本は、屋外の椅子のそばにあるテーブルに置いていた。
老年の博士は手短に伸びをしてから、サンドウィッチを作り始めた。ライ麦パンのターキー・サンドウィッチは、以前から仕事で基本的に食べていたものだった。古い習慣はなかなか無くせないが、少なくともここでは、ターキーとよく合うチェダーのスライスを用意することくらいはできる。
彼の手は冷蔵庫へと伸び、止まった。部屋の隅に立っている男に気づいたのだ。
「あー、」冷蔵庫の戸を引き開けながら、カーライルはゆっくりと口を開いた。「ついてきてくれて、どうも。しかし、私が帰るには早くないかい? まだ二日しか経っていないように感じるんだがね」
男は微動だにせず、何も言わないまま立っていた。カーライルはドアを閉じると辺りを見回した。そして、自らのコテージに他にも沢山の男女がこっそりと、プレッシャーを与えるようにして存在しているのを悟った。一部の者はスーツ、その他は平服。また一部の者は武器を携えている。彼らは全員が静かに立ち、まっすぐ前を見つめていた。老人は首を横に振り、笑った。「思うに、堅苦しい手続きは不要だろう。君と私以外、ここにはいないんだからさ」
彼らは皆が部屋から立ち去り、一人の男が残った。
「そうそう、それでいい」カーライルはリビングへと移動し、ビロードのソファーに座った。点滴は未だ彼の腕にあった。腕の針は、金属製のスタンドに吊るされた点滴パックに繋がれていて、彼が行く場所ならどこへでも付いてくる。点滴スタンドは堅木張りの床を滑り、彼の隣に鎮座して、物言わずにこの光景を見守っていた。「こっちに来て座ってくれ、ジョシュア。手早く片付けなくてもいい案件だというのは分かってるんだ」
男は静かに、造作なく部屋を横切る。彼は椅子へと移動し腰かけた。その眼は、部屋の端からカーライルへ圧を与えている。年老いた博士は、また自らのサンドウィッチを食べ続けていた。
「それで、」サンドウィッチを齧る合間に、彼が言う。「君みたいなお偉いさんsomebody like youが、こんな所でわざわざ私のようなやつsomebody like meと何をするつもりだい? 取巻きたちも同様に、だ」彼は入念に唇を舐めた。「大物じゃない誰かは送れないのかい、このアクタスのような年寄りにだよ?」彼は笑う。
もう一方の男は身じろぎもしない。「私は、貴方が誰である、という理由でここにいるわけではありませんよ。貴方が誰であったか、という理由でここにいるんです」
カーライルは嚥下するのに充分なくらい長く間を置いてから、また食事を続けた。「今の言い方は、ジョシュア。私が以前のような人間ではないという事かい。そんな事は君も分かっているだろうし、この老体だって分かっている」彼はサンドウィッチをもう一口食べる。「君はよその方がうまくやれると思うよ、ご友人」
気詰まりな沈黙は、野外で鳥がさえずる声で打ち破られた。カーライルは音のする方へと目を向けようかとも思ったが、男から視線をそらすほど馬鹿ではなかった。
「私が探しているのは若者ではないんですよ、ジーン」男は続ける。「兵器の扱いに長けた人物でもない」
カーライルは肩をすくめた。身の毛がよだつような思いだった。「それならば、何故ここに?」
「分かっているでしょうに」
「頼むからやめてくれよ。私は年を取りすぎている」
男が立ち上がる。「二年で二十五もの実体を収容。非常に多くの異常存在に関して、その習性や異常特性への幅広い知識。収容を容易にする為に、異常実体についての状態を上手く利用する能力。ある事を理解している点──」彼は少し言葉を止める。「エンティティの秘める、可能性というものを。貴方が分類委員会に加わった理由だ。委員会が貴方をトップに据えた理由も。貴方の在職期間中にサイト81で収容違反が発生していない理由でもある」
カーライルは頷き、サンドウィッチの最後の一かけらにパクリと噛みついた。「君が先程言ったこと、それらは本当だ。事実は否定しない。それでもだ。私は老いぼれだよ、ジョシュア。間違いなく、私の刃は鈍く擦り減っている。また間違いなく、私以外の人物を再び探す羽目になるだろうね」
「そんな事はありません」
「ならば、もしも私が拒否したら? 私は自分の職務に満足している。今の仕事は楽しいよ。まぁそれは脇に置いておこう、ジョシュア。私はいち科学者で、常にそうあり続けてきた。仮に私がその立場を放棄したくなくても、なお同じようにするのかい?」
「これは、古い借金みたいなものなんですよ、ジーン。いつかは支払う時が来ると、貴方はご存じだった筈だ。年月は過ぎ去ってしまった。そして、寿命というものは貴方の全てに襲い掛かる。一部の、選ばれし領域を除いてね。病気は多くを滅茶苦茶にしてくれましたが。それでもまだ、貴方の幾分かはそのまま踏ん張っている。何故こうなったのか、お忘れで?」
カーライルは顔を曇らせた。「いいや。忘れたことなんかないよ」
ジョシュアはドアへと移動した。「それならば、O5評議会へと貴方の判断を報告させて頂きます。残念ですが、休暇はお終いですよ。貴方の治療は、私共の安全保障施設で継続します」
「この老いぼれが高飛びするとは思わないのかい?」
「思いませんよ、」ジョシュアが口を開く。「貴方がそう仰るのも無理はないでしょうけど」
その後、ひと握りのエージェントが現れ、カーライルの所持品を回収して外へと持ち出した。博士はリビングルームから正面玄関まで、足を引きずりつつ歩く羽目になった。そして、彼は待機していた車両へと案内された。彼は車へ足を踏み入れると、動きを止め、ジョシュアに向かって振り返った。「これだけやる価値があるのかい?」
「誰にも分かりませんよ」ジョシュアはそう言ってから、車のドアを閉めた。「山場に直面しているというのに、貴方はたった一人なんだ、ジーン。それが終わった時に、自分自身で判断したらいい」
車はコテージから離れ、長き山下りを始めた。ジョシュアは、コテージを最後捜索するために少々長く留まったが、その後彼も立ち去ってしまった。
開いたままの本は、裏手のポーチのテーブルに置かれていた。誰にも気づかれないままに。かつて、人生を共に夢見ようとした二人の、愛の象徴。夢は破れ、思い出は失われた。しかし本は残った。約束の証だった。
その夜。雨が降った。
収容房の扉がゆっくりとスライドして開き、まず初めに女性が入室してきた。ジーナはこの人物を知っていた。彼女の担当医だ。悲しくなったときにお喋りをする相手でもある。ジーナは、女性の後ろにいる男には覚えがなかった。白衣に黒のサングラス、そして輝くはげ頭。彼が微笑んできたので、ジーナは微笑み返した。彼は怖い人には見えなかった。
「ジーナ、」彼女の担当医が言う。「こちらはアクタス博士。あなたにいくつか質問をするために彼はここにいるの。私たち、あなたにやってみて欲しいことがあるのだけど、大丈夫?」
あどけない少女はうなずき、座ったまま背筋を伸ばした。ジョーラ博士は部屋の隅へと移動し、アクタス博士は前に歩み出て、ジーナの目の前の椅子に座った。彼が手を差し出したので、彼女は握手をした。
「こんにちは、ジーナ。私の名前はカーライルだ」彼は彼女にもう一度笑いかける。「君の好きなように呼んでくれ」
ジーナは考えて、表情を明るくさせて耳をそばだてた。「カールって呼んでいいですか?」
カーライルは笑った。「カールか、それはいいね」彼は赤いボールを白衣のポケットから引っ張り出して、ジーナの前に持ち上げた。「ジーナ。ウェンズリー博士は、君がとても特別だと言っているね。それはとても興味深いことだと私は思うし、君がどれほど特別なのか知りたい」彼はボールを上に投げて、キャッチする。「このボールを青にできるかい?」
彼はジーナにボールを手渡した。少女は受け取り、それをじっと眺めて、数回振って、そして気落ちしたように頭を垂れた。「命令されないと、本当に何もできないんです」
カーライルは頷いた。「まったく構わないよ。ジーナ、このボールを青にしてみせてくれないかい」
少女の目がわずかに痙攣し、彼女は手の中でボールを握りしめた。ジーナが手を放したとき、それは紫になっていた。彼女は咳き込んで、アクタスにボールを手渡してから、目を伏せた。
カーライルは微笑んだ。「恥ずかしがる必要はないんだよ、お嬢さん」彼はボールを受け取りながら言った。「君は素晴らしい事をやってくれた」
彼女は顔を上げた。「だけど、これは青じゃありません」
博士は首をかしげた。「青じゃない? 私には充分青く見えるよ。ほら、異なる言葉というものには、出身地によって異なる意味があるだろう。私には、ここに青色が見える。私の部下だって皆、これを青色と呼ぶだろうね」
ジーナは目を細める。「えっと……これが、青色?」
カーライルは頷いた。「同じように、私の名前はアクタス博士。次は、このボールを紫にしてみてくれ、私のために」
ジーナは再びボールを見つめ、それを握りしめた。彼女が手を放したときには、それは緑になっていた。彼女はカーライルを見あげた。物問いたげに。老人は微笑んだ。
「いいぞ、ジーナ」彼はそう言い、ゆっくりと頷いた。「とてもいい」
: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)); }
}
本ページを引用する際の表記:
このコンポーネントの使用方法については、ライセンスボックス を参照してください。ライセンスについては、ライセンスガイド を参照してください。