: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;
}
}
}
}
}
憎悪。貪欲のサーレックスは憎悪の他に何も知らなかった。この惑星を支配した、肉の生物への憎悪。
空虚な牢獄に閉じ込められ、四千年もの間それは眠りについていた。しかし今日が復讐の日だ。今日、それは報復をするだろう。今日、それは自由になるのだ。看守役になっていた秘術の錠前に最後の一撃を与えながら、世界を破壊するであろう大虐殺について考えた。不浄な人間どもは食い止めることができると思うだろうが、時計は最後の鐘を鳴らすのだ。今日、最後の審判が下されるのだ。
錠前は崩れ落ち、空虚はかつてない恐怖、影の巨獣を生み出した。貪欲のサーレックスは遂に自由になり、人間たちは苦痛の意味を知ることになる。それは砂を掻き分けて進み、広大な砂漠に侵入し、巨大な声で呼びかけた。そしてその声が届く範囲にいるものの精神は打ち砕かれるのだ。
しかしそれは孤独だった。そこが砂漠であるということを考えれば驚くことではない。そうであっても、貪欲のサーレックスは勝利の時を諦めることは無かった。怪物の背中から革のような翼が生え、自分をこんな目に遭わせた者を探すために飛び立った。砂漠を飛び回り、無限の砂丘の波を超え、四千年の間倒すことを夢見た敵を探した。
そしてそこに居た。終わりのない砂の海に、襤褸に頭からつま先まで包んだ孤独な人影がさまよい歩いていたのだ。貪欲のサーレックスは勝利の声を上げながら急降下した。獲物が発狂してパニックになっていることを疑いもしていなかった。
怪物は砂の上に着地し、その人影の包帯をした顔に砂粒のシャワーを浴びせた。人影は暗い色のゴーグルの砂を払い、怒ってぶつくさと文句を言った。怪物は包帯をした放浪者の魂を見つめ、周囲に強大な闇をもたらした。空は昼などなかったかのように暗くなり、砂漠の炎天下にも関わらず放浪者は震え上がった。
四千振りに、貪欲のサーレックスは声を発した。その声は砂丘を這って広がり、怪物の割れた口以外のすべての場所から聞こえてくるようであった。
「人間よ、恐怖して我を見よ。我を見て、遂に貴様の終わりが来たことを知るのだ。我を見て、そして死ね。」
「申し訳ありませんが、人違いじゃないですか?」
生意気な若造が無礼にも我を嘲笑ったのか?怪物はそれを軽視できなかった、この覚えている限りずっとこの偉大な復讐を企ててきたのだ。何人たりともその邪魔などできない!
「人間を探してるんですか?ハフウェイに居たって聞きましたよ。」
怪物は少しの間固まった、今しがた何を言われたのか考えていたのだ。返事をするときには、その声は自分の口から発せられていた。
「それは貴様は人間では無いという意味か?」
「え?もちろん違いますよ、僕は吸血鬼です。何のために僕がこんなに日焼け対策をしてると思うんです?」
「それなら人間はどうした?」
「ああ、ほとんど死んじゃいました。生き返った人もいますがそんなに多くは無いですね。」
「奴等に何があった?」
「知りませんよ。近くの街かどこかの方向が知りたいんです?」
「いや、我…我は少し考える時間が必要だ。」
怪物は静かに立ち尽くし、今知ったことについて考えていた。長い間熱狂していた大虐殺はもう存在しない。すぐ近くまで来ていたが、もうその野望は叶わないのだ。
貪欲のサーレックスが考えに耽っている間、吸血鬼のバーニーはそれを避け、砂の中を歩き続けた。
およそ一時間、包帯男は疲れ切っていたにもかかわらず、砂漠をふらふらと歩き続けていた。彼は荷物に手を伸ばし、血の入った缶を取り出し、包帯の隙間からストローを差し入れた。ひどい味だが、少なくとも彼を先に進ませてくれる。血液だけで生きていくということになるとは彼も予想していなかったが、少なくとも彼はまだ生きていた。彼は時計を確認した。街にたどり着くまでにはまだ一時間はかかる。彼はため息をつき、砂の中を進んでいった。
影が彼の上を通り過ぎた。彼はそれを見上げた、暗い色のゴーグルが彼の敏感な目を厳しい陽射しから守ってくれる。鳥だろうか?いや、それにしては大きすぎる。それは彼の頭上をしばらく旋回し、大きな緑の怪物が再び彼の前に着陸した。
「死すべき者よ、もう少し質問があるのだが。」
「もちろんいいですよ。でも歩きながらでいいですか?日が落ちる前に街に着きたいんですよ。」
吸血鬼は歩き続け、怪物は歩くような動作で後を追った。
「忌々しい人間共が消えた今、世界にはどの様な生物がいるのだ?」
「いろいろですよ。ゾンビとか変身するやつとかエイリアンとか。基本的に人間じゃないのは全部いますね。」
「その人間では無い奴等はまだ弱々しい肉で出来ているのか?」
「大体はそうですね。金属製のやつもいますよ。」
「では秘術の紋章が駆け抜けて頭が破裂した時にはまだ悲鳴を上げるのか?」
「うーん……いいえ。」
実のところバーニーはそのことについてよく知らなかったが、そんなことは大声では言わない方がいいだろうと思った。
「それは残念だ。奴等の苦しめられた魂は、地獄に落ちた時にも1番明るい星のように燃え続けるのか?」
「そうは思いませんね。」
「それなら人間では無い者達には何ができるのだ?」
彼はどう答えればいいか分からなかった。彼らがしてきたことは色々とあるが、何と言えばこの怪物は彼を離してくれるんだ?
「血は好きですか?」
「我の敵の血は、街路が死と闇の赤に染まるまで世界中に流されるであろうな。」
「いいですね、缶がありますよ、ご自由にどうぞ。」
怪物は缶を受け取り、少しの間観察した。そして潰した。残ったのは吸血鬼には爪としか思えない場所から滴る血液だけだった。
「血が手から滴り落ちるのを感じるのは本当に久し振りだ。貴様はこの缶をどこで手に入れたのだ?」
「買ったんですよ。街に吸血鬼の余剰品店があるんで、あなたが買いたいなら行きますよ。」
怪物は何も言わずにバーニーをつかんで翼を広げ、街に向かって空へと飛び出した。吸血鬼はこんな化け物になんて出会わなければよかったと思いながら、顔の包帯を懸命に抑えつつ悲鳴を上げた。すぐに街が見えてきた。彼らはそこで停止し、古い高層ビルの屋上に着陸した。怪物は屋上を見渡し、新しい環境を吟味していた。
「我がここに居た頃より家が随分……大きくなったのだな。泥の壁と茅葺き屋根はどうしたんだ?」
吸血鬼は答えなかった、彼は世界が回転するのを止めるので精一杯だったのだ。彼はよろよろと扉に向かい、取っ手を回してみたが無駄だった。
「ここは鍵がかかってるみたいですよ。優しく降ろしてくれませんか?」
「鍵か。人間は鍵が大好きだな。嘗ては囚われていたが、二度とさせぬ!この貪欲のサーレックスを制する事など不可能なのだ!」
怪物がそう言うとドアが光り始め、どんどん明るくなり蝶番から溶けていった。吸血鬼は溶けた金属を避けようと一歩退いたが、怪物はそれを踏みつけ塔を降りて行った。ほかに行く場所も無かったので、バーニーもついていった。階段を一階分降りると、すぐにドアにたどり着いた。この街の状況を考えれば驚くことでもないが、この建物には人の気配がなかった。街路にはほとんど人がいなかったが、その人たちは皆怪物の反対側を歩いていた。バーニーもそこに加わりたかったが、怪物がそんな逃亡計画を親切にも許してくれるとも思えなかった。幸運なことに、それは街の大きさに気を取られ、人に迷惑をかける様子はなかった。
「星の光で燃えている看板が有ったぞ、吸血鬼の商品を売っているそうだ。あれが貴様が言っていた、血を分け与える場所では無いのか?」
「そうですけど、くれるわけじゃないですよ。お金とか交換できるものとか持ってます?」
「親切にも死すべき者達がその惨めな生命を保つのを許そうではないか!」
吸血鬼は答えようとしたが、すぐに答えない方がいいと判断した。怪物が店に着いたと途端、ガラス戸が自動で開いた。
「遂に我の力を尊敬するものが現れたか。」
それは店内に入り、レジ係の若い吸血鬼の方を向いた。明かりは明滅し、怪物が話し始めると店の土台から揺れ始めた。
「我の前で震えるのだ、死すべき者よ。貴様らは直ぐに苦痛の真の意味を知ることになる。深まる闇を恐れよ、我は直ぐに不浄の血を味わうことになるからな。」
「血なら三番通路の一番後ろにありますよ。」
怪物は頷き、問題のエリアの方を見た。鮮やかな赤色をした缶が棚を埋めつくし、怪物が知っているより多くの血液型が存在していた。それが目に入ると、その目はクリスマスの朝、薪の火にあたる子供のように輝いていた。怪物は鼻のようなもので息を吸いこみ、血の香りを味わった。バーニーは歩いていって缶をいくつか手に取ると、光る石の入った袋と一緒にレジへと持って行った。彼は石を手渡すと、缶をリュックサックに入れ始めた。
貪欲のサーレックスは今目撃した取引について熟考した後、吸血鬼に質問しようと近づいていった。
「世界は四千年の間に様変わりしたようだな。貴様はこの変化についてどれだけ知っている?」
「少しなら?高校の歴史の時間に習いましたけど、それは……」
「素晴らしい。小さき吸血鬼よ、今からお前は影の巨獣たるこの貪欲のサーレックス様の永遠の下僕だ。人間を滅ぼすと云う我の探求を助ける、名誉ある使命を楽しむがよい。」
「僕に選択肢はあるんですかね?」
「無い。」
吸血鬼はリュックを閉じて包帯を整え、彼がしばらくの間仕えることになった恐怖を見据えた。
「じゃあ、街の観光でもします?」
「それは有益だな。」
二人は店から街に出ていった。バーニーは災厄について知っていることすべてを、怪物に話した。