寒さに震えながら、ヘルメスは両手でライフルを握りしめて座っていた。彼らの背後のドアは数日前に閉ざされ、支給物資はあと1週間はもつに十分だったが、彼らの制服は今纏わりついている荒漠たる寒気に耐えるよう設計されていなかった。彼らの世界は平坦な世界、果てなき世界、他になにも成すことがないかの如く全方向へ無為に広がるものだった。彼は扉が閉まる直前、それが束の間生温かったと思い出したのだが、この地平に残された最後の温いものは1発の弾丸だった。
ドアを背にして彼らが座る場所からは、男の裸の屍ははっきり見ることができた。彼らは寒さにやられ始めた最初の晩晩? 晩なんてものはない、ここには。にもかかわらず男たちは眠ろうとしたがに彼から服をはぎ取ってしまったが、気休めにもならなかった。彼らは男をさらに遠く、どこか見えないところへ押しやることを考えたが無意味だった。ドアのこちら側のどこからでもドアのこちら側からは見ることができる。はっきりと。彼らは屍を1日中、1千マイルにも感じられるほど引き摺り回して過ごしたが無意味だった。それはまた、彼らが座っているところから10フィートでもあったに違いない。
ラファエルは手で無線を弄んだ。彼らがどんな周波数に合わせようと、それはドアが閉じたとき沈黙してしまった。ヘルメスはかなり早くに、ドアはただの枠の中のドアに過ぎず、彼らが死人を追いかけてきた病院がもはや向こう側に存在しない事に気付いてしまったとき、自分の無線を叩き壊してしまった。年上の男が無線の上についたノブをいじり回す、虚しいクリック音が彼らの呼吸の上に谺し、気まぐれな笑い声のように彼らへ帰ってきた。彼らはそれを嫌っていたが、かといって他にすることはほとんどなかった。
「俺たちはここで死ぬと思うか?」ヘルメスは言った。
ラファエルは肩をすくめた。「そうかもしれん。そうでないかもしれん」
「どういう意味だ?」
無線は幾度となくクリック音をたてた。「ここで死ぬ予感とおなじぐらいにそうでない予感もするっていう意味だ。これより悪い状況だったことはあるし、生きて帰れた。そうならなかった者も知っているが」
ヘルメスは眉間にしわを寄せた。「なんの慰めにもならない」
「そうじゃない」ラファエルは無線をひっくり返し、数回バッテリーを取り出した。7回。午後7時だった。
「俺たちを探しに来ると?」
「意味があると思うか?」
「いいや」ヘルメスは震えながら言った。「でもいい考えだ。探してるって分かってるのは」
ラファエルは鼻で笑った。「つまり最後に考えるのは助けがどれだけ近づいているかか? 俺ならもう諦められたと思う方がマシだな。そうやって連中を憎む方が楽でいい」
「憎む? 何のために?」
「この任務のために。俺たちをこれに割り当てたことに。先にあの男が何をやらかせるか俺たちに知らせなかったために」ラファエルはため息をついた。「いくらでも。好きなのを選べ。簡単だろ」
「俺はあいつらの落ち度だとは思わないけどな、そうだろ? 要は、ファイルには特別なアノマリーについてなにも書いてなかったし」
「実際そうだが。でも俺たちがここに来る羽目になったのは面白くないか?」
「それどういう意味だよ?」
「メクラネズミの最年長と最年少。年寄りと新人。興味深くないか?」
ヘルメスはかぶりを振った。
ラファエルは再度肩をすくめた。「そこは問題じゃないさ。俺が言いたいのは、今は連中を恨む理由を見つけてそれにしがみつけってことだ。気楽になるぞ」
その後彼らはしばらく長めに黙って座っていた。ヘルメスは寛ごうとして何度か身動きしたが、もはやなにかがおかしかった。答えられていない問いが、束の間彼を寒さより煩わせるなにかがあった。
「財団が嫌い?」
「ああ」ラファエルは顔を上げなかった。
「なんで?」
無線のダイヤルはクリック音をたて続けていた。「こういう愉快なやり方で財団は善良な人間を怪物に変えちまうんだ」徐にラファエルは言った。「起こっている最中には分からない。誰も。冷や汗をかいて目を覚ます時まで、関連に気付き出さない。記憶処理の後でも関係ない。体が拒否しだす」
ヘルメスは手を擦り合わせた。「財団には山ほど善人がいるよ」
「1人言ってみろ」
「何?」
「財団の善人を1人言ってみろ」
ヘルメスはまぜっかえした。「ライト博士はいい人だろ。あの人はみんなを守るありとあらゆる種類のプロジェクトで働いてる」
ラファエルは頷いた。「そしてライト博士は90年代末に100人を死なせたテストもいくつか監督している」
「そんな訳ないよ」
「事実さ。アルファ-9プロジェクトに関わっている理由の1つだ。お前の耳には入らないだろうが事実だ。俺は配属されていた。いくつかのアーティファクトの戦闘有用性を調べるテストだった。先の10年での大規模な方のDクラス大量処分の1つだよ。ああいうのについてこれ以上あまり聞くことはないだろうな、我々に良心があるふりをし出してからはな」
「そうか。ブライト博士はどうだ? あの人は馬鹿だけど、ここ数年職員には沢山いいことをしてるじゃないか」
「お前が彼の旅費償還プログラムについて思うのと同じぐらい、彼が個人的に追いだした100の魂たちもよく評価してると思うよ」
「ならサイト-23のE棟スタッフ。俺たちの任務の準備のために最大限やってくれてるし、凄く仕事熱心だって知ってるよ―」
「だがそこで俺たち、我らが機動部隊の最も消耗的なメンバー2人は理解の不十分な能力をもつ異常実体との接触後、辺獄に坐しているって訳さ。今起きる必要のなかった対峙だった。我々はこいつを1月前に追い始めた、あいつがドアを無の世界に通じる一方通行路に変えられるかどうか見るべく、もう1月待てなかったと思わなかったと?」
「奴は危険だった」
「あいつは林に住んでいた。1年間居留区に近づいていなかった。あいつを街へ追い込んだのは俺たちだ。奴は怯えて混乱して道を見失っていたが、E棟は俺たちにあいつを罠へと追い込ませたがった」
「監督者評議会は?」
「奴らは実在しない」
ヘルメスは気色ばんだ。「存在してるよ」
「いないと思っておいた方がいいぞ。俺が言ったことを全部考慮した上で、財団の頂点にいてこれを承認した13人の謎の怪人が存在していて、そいつらは善良だと思うなら、言葉の定義から議論した方がいいだろうな」
「でもすべてはより良い善のためじゃないのか? 俺たちがやることは全部人を守るためのものだよ。財団は善だ、総合的には」
ラファエルは顔を上げ、彼らを取り囲む黄昏の虚空を見つめた。彼はバッテリーを数回取り外した。9。
「昔別の任務でエジプトにいた。俺たちはアーティファクトかなにかの破片を回収しようとしていた。バザールをくまなく漁り、砂を掘って3カ月。総員75名。1年かそれ以上もつ弾と食糧。財団が金を出しているので関係ないな。俺たちはそこで永遠に住めたよ。
最初の1月の後、南で紛争があるという情報が入った。独裁者かなにかが自国の少数民族に市民を服従させる能力を邪魔されてると信じて、兵士を使って追い出しだしたんだ。突然数1千人が家無しさ。軍隊は彼らを国境まで追い立てて置き去りにし、逆らうものは誰でも撃った。
我々は彼らと関わらないように言われた。第1の目標から逸れないようにとな。このアーティファクトの回収は地域の人間の安全のために最重要であると。それで飢え、死にゆく人々が死者の軍団のごとく我々の側を通り過ぎる間、働き続けた訳だ。我々が施した善と同じぐらい我々は幽霊であったろうさ。地元自治体には彼らを扱う準備がなく、食糧も住居も与えられなかった。己のために、あるいは家族のために自力で新しい生活を始めようとした者たちは失敗した。不正な手段に頼った者は殺された。死体は山積みにされて燃やされ、我々は砂を掘り続けた」
頭上の虚空の微かな光を暗い目に映し、彼はヘルメスの方を見遣った。「我々はそのアーティファクトを見つけた。何をするやつだったかも覚えてないがね。そんなことは関係ない。箱に仕舞われ、どこかの地下に納められ、2度と日の光を拝むことはない」彼は一旦止まった。「しかし思わずにはいられん、あれが何であるかが、あんなにも多くの人命に値したかどうかを。ある男の残虐性のために失われた命、ある国の無関心のために失われた命、その間のどこかで砂漠の岩を見つめ、周囲の同朋の苦難を通り過ぎた75人の目のために失われた命」
ラファエルはドアに凭れかかって溜息をついた。彼は無線を隣の地面に置き、彼らの世界は静まり返った。
「財団は善だ。財団は人々を守る。でも財団は目標をゴールよりも重要視する奴だらけだ。我々は人類の守護者、でも何から守る? 病気は毎年何百万人も殺す。戦争は地域を丸ごと痛めつける。憎悪と狭量は数え切れないほどの人生を壊す。財団は彼らを守る、でも財団は彼らを無視する。みんな同じように死んでいく。それで何になる? 俺たちが守ってるのは人類か虚構かどっちだ? 子供が1カ月草と水以外なにも食ってないから死のうが、土着信仰の偶像が失敗した儀式で殺そうが、違いがあるのか?」
寒さが再度、前より厳しく彼らを襲い始めた。ヘルメスは激しく震え、あまりに歯が鳴るので口の中で砕けんばかりになっていた。ラファエルはジャケットを脱いで若者を包んでやり、2人は無限の沈黙の中で、長い間身を寄せ合って座っていた。
「あんたはどうなんだ」ヘルメスは弱々しい、衰えゆく声で言った。「あんたはいい人だ。俺に優しかったし、人を助けてきた」
ラファエルは答えなかった。彼のまなざしは同僚を通り過ぎ、傍で横たわっている死んだ男に向けられていた。1発の弾丸は男の頭蓋骨に撃ち込まれ、そしてラファエルの弾倉は空だった。
ヘルメスが冷たく静かになった後、ラファエルは彼のベルトのホルスターから若者のサイドアームを抜きとった。弾倉は一杯だった。彼は空に向かって撃ち尽くした。
彼は死体の隣に丸まると無線を拾った。彼はバッテリーを取り出しては戻すのを何度も、何度も、何度も繰り返した。11。
: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)); }
}
本ページを引用する際の表記:
このコンポーネントの使用方法については、ライセンスボックス を参照してください。ライセンスについては、ライセンスガイド を参照してください。