硝煙弾雨ーオペレーション: タングステン・ガルガンチュア_5
@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
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;
width: var(--body-width-on-desktop, 45.75rem);
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;
}
}
}
}
}
@supports(display: grid) {
: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);
}
#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);
box-shadow: calc(var(--search-height) / 2 * -1) 0 calc(var(--search-height) / 2) 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機のフロッグフットが、突然ありったけのフレアとチャフをばら撒きながら二手に分かれ、ジグザグに飛び始めた。だがそれも一瞬の事、2機はほぼ同時にばら撒いたそれらと見分けがつかないくらいにバラバラになって、それらの破片が燃えながら落ちていくのが見えた。続いて遥か上空を飛んでいたフランカーが、腹に響く轟音を立てながら急激に加速しながら旋回しつつ上昇を始めた。次の瞬間、1機が灰色の煙に覆われ、細かな破片をまき散らしながら、一番大きな塊は火を吐きながら落ちていった。もう1機は雲の中に消えて姿を晦ました。
俺たちの周りを旋回していたハインドが火花を散らしながら爆発して、そいつの機体が地面に落ちた時にまるでチェーンソーのような音があたりに響いた。視界の端では、もう1機のハインドが火を噴きながら、まるで凍結した路面で盛大にスリップした時みたいに回転しながら落ちていった。醜い肉食爬虫類のようなフォルムのジェット機が、施設の真上を通過した。上空で響く轟音の正体を確かめようと視界を巡らせると、先が切り落とされた三角形の巨大な翼を持つ戦闘機が、フランカーを追いかけて雲の中に消えるのが見えた。その直後、雲の中でオレンジ色の火の玉が出現した。
肉の塊が30㎜の焼夷榴弾をたっぷりと浴び、血と漿液が霧のように舞うのが見えた。一瞬それは縮こまった後、一気に膨張して周りの兵士共を弾き飛ばした。火炎放射器のタンクが破裂し、周りの兵士が炎に包まれるのが見えた。倒れた兵士たちがじりじりと進む肉のジェルに踏みつぶされ、その度に咀嚼音が聞こえた。PMCの指揮官らしき男が部下たちに指示を出している。その身振りと周りの動きを見て、彼らはどうやら援護射撃を繰り返しながら撤退しようとしているようだ。イヴァンが今までに聞いた事の無いような怒鳴り声を上げながらその場を去ろうとする指揮官を引き留めようとしていた。その時には既に俺たちは銃を拾い、様子を伺っていた。どうやらPMCの連中は俺たちには興味が無いようだった。だがあのぶよぶよした肉と腱の塊や、ミミック共、そしてそいつらと同化した民兵の連中は違う。その時には俺たちは銃を取り返し、建物の陰に身を潜めていたが、こちらに飛んでくる銃弾の数がまた増えてきた。あの保安要員、ファイサルの姿が見えた。横倒しになったトラックの陰に身を潜めている。俺は彼にこっちに来いと大声で呼び掛けつつ、マズルフラッシュが見えた場所にAKを撃ち込んだ。
コンクリートに弾が命中して破片が飛んでくる中、”今日は死ぬにはいい日じゃないからな”とジョーは言った。シエラ1もようやく無線に応えた。どうやら市街地の方にもやってきた民兵連中から逃げ回るのについさっきまで必死だったらしい。さっきのヘッドショットは最高のタイミングだった。
イヴァンとPMCの指揮官が部下と、ついでに今までどこにいたのかマフムードまで連れて俺たちの隠れているところまで走ってきた。当然ながら、俺たちは互いに銃を向け合う形になった。指揮官が言う。ここで撃ち合う気はない、と。イヴァンはまだあの代物をどうにか出来ると思っているのか、焦れったそうな表情を隠そうともしない。
「さっさと追加のヘリと戦闘機は呼べないのか!?」
指揮官に怒鳴りつけるイヴァン。しかし相手は俺たちと同じ思いだったらしい。半ば呆れたようにこう言った。
「無線自体は通じているが、基地が呼び出しに応じない。我々は切り捨てられたようだ。我々が彼らにしようとしたように」
「ダマスカスへの連絡は!?」
イヴァンは矛先をマフムードに向けようとしたが、それは失敗した。流れ弾にやられたのか、ビビって遮蔽物から身体を出したのか、奴の身体のど真ん中から流れ出た血は既に乾きつつあった。この状況と奴のやらかした事を考えれば、随分とマシな末路だと思う。情報源の一つを失ったのは残念だが、仲間じゃない奴が何人死のうが俺たちには関係ない。
突然、さっきとは別の攻撃ヘリが現れ、フェンス越しに度肝を抜くような弾幕射撃を展開して見せた。ハインドよりも遥かに巨大な砲塔が機首の下にぶら下がっている。最初、俺は奴らが増援を呼びやがったのかと思った。もしそうなら助かったのはぬか喜びだと。だが、よく見るとそのヘリはさっきのとは違い赤い星がついていた。そのすぐ後ろには連邦軍の識別マークを付けたゴツゴツした機首のブラックホークとキラーエッグが数機。
「まだわからないのか。撤退する場所なんてどこにもない。戻ってサイクロプスの餌になりたいなら、どうか一人で頼む」
部下を無駄に失った指揮官は、もう自分と部下を少しでも多く生き残らせる事しか考えていないようだった。イヴァン、いや"ロッジ"とどんな取引をしたのかは知らないが、自業自得とはいえ使い捨てられた事への憐れみを感じないではなかった。
キラーエッグがミニガンとロケット弾をぶちまける傍ら、ブラックホークがホバリングしながらロープで兵士たちを降ろす。全員が黒いマルチカムのBDUにヘルメット、大幅にカスタマイズされたM4A1ライフル。肩の部隊賞には短剣と鎌首を擡げた毒蛇をあしらっている。そうか、奴らか。ジョーがM60を肩から外し、”援護しろ”と叫ぶ。俺は周りの奴に声を掛け、それを援護しようと一斉射撃を行った。PMCの奴らも―恐らくこの状況では他に出来る事が無いと悟ったのだろう、俺に続いた。何をするつもりかは聞かない。彼はチームリーダーなんだから。
彼は拳銃を抜いて、とにかく弾が飛んでくる方に向かって撃ちながら、スモークを放り投げた。彼の手からそれが離れた瞬間、彼の左肩から血しぶきが飛ぶのが見えた。彼は構わず片手で射撃を続行する。脛にも弾が掠め、彼は崩れ落ちた。俺は飛び出して彼の下に駆け寄った。手を延ばせば彼の肩に手が触れそうになった瞬間、彼の身体が一瞬だけ跳ねた。
彼は座り込んでいた。首筋からプレートキャリアまで彼の血で染まっている。肩に手を置いて呼びかけたが、彼は力なく数度咳き込むと、動かなくなった。
俺は何度も叫びながらAKのセレクターをフルオートに合わせて撃った。何度も何度も”やりやがったな!”と。
引き金から指が離れなくなったようだった。それに気づいた直後、俺は胸と脚に衝撃を感じた。
全身から力が抜けて倒れ込むとき、マリクが大声で俺の名前を呼ぶのが、次いでネルとネイトが駆け寄ってくるのが、そしてイヴァンがよたよたと走りながら遠ざかっていき、あの肉塊の目の前で小瓶を口に着けるのが見えた。
その時の俺の記憶はここまでだ。
フメイミム空軍基地にある病室で目を覚ました俺に、代わる代わるネイトや他のメンバー達がその後の顛末を教えてくれた。
あのロシア野郎は財団を出し抜いてエリア126のオブジェクトを持ち出そうとした。その手順はこうだった。ネオ・サーカイト共の活動が活発になっているという情報に基づき、シリアの情勢を顧みて収容状況の効率化と状況への最適化──つまりアメリカ軍所属部隊をタスクフォースとして配備するのではなく、現地民兵をEクラス/クリアランスレベル0の保安部隊として雇用し、収容に従事するQRFはPMCに移管する。これによって火力を低下させることなく国内情勢に左右されにくい保安体制を維持できる、そういう名目だった。俺たちが派遣された表向きの理由もその言い分に紐づけられた。一方でダマスカスごとエリア126を抱き込んで、民兵にサーキック生物のクソと小便から抽出したステロイドとスピードを山ほど食らわせて、隠密裏にエリア126で収容違反を起こさせる。革命旅団の民兵やアイシャ達は例のSCiPのベクター汚染を受けて収容違反を幇助した、というカバーストーリーの下、子飼いのPMCと共に降り立って引きずり出してオブジェクトを持って意気揚々と出ていくつもりだった。旅団の支援を失ったサイト126-Bの保安部隊と俺たち6人は、もしその状況を把握したとしても事態をひっくり返せるだけの装備も火力もない。
奴の計画が破綻したのは、俺たちがシリア入りした直後、ノヴゴロドで起きたちょっとした事件だった。とあるマフィアと政府高官―そいつはシリア国内でのロシア軍部隊の運用に口出しできる立場だったらしい―の癒着が発覚し、FSBが強制捜査という名の強襲作戦を行った。それを決定づける情報を齎したのはCIAやNSAとは違う"情報通のアメリカ人"だったそうだ。ロシア政府が今回の件にどの程度深入りしていたのかは定かではないが、過去の遺産が今になって自分たちの中東での立場を危うくする事は避けたかったのだろう。画して、何者かが手出ししたお陰で、うちの会社はロシア軍と一緒に事態の収拾に乗り出す事が出来た。
"──────NATOによるシリア国内のイスラム過激派組織に対する攻撃が終息して3か月、再びアメリカ軍を中心とした数か国による空爆が再開されました。政府筋によると、今回の空爆に参加したアメリカ軍部隊は以前の作戦と異なりアメリカ空軍ではなくアメリカ連邦軍のものであるとの事。また、以前からシリア国内に駐留するロシア軍部隊との合同作戦でもあったとの事です。これが事実であるとすれば、これはアメリカ連邦軍による初のシリア空爆であると共に、これまで異なる立場をとり続けてきたアメリカ、ロシアの両国が初めて協調した作戦という事になります。一方、現地の報道機関は一連の空爆で複数のロシア軍機らしき残骸が複数、シリア北部一帯で発見された事を報じています。ロシア航空宇宙軍のスポークスマンはこの作戦によって失われたロシア軍機は無いと語り、アメリカ連邦軍も誤射などが発生した事実はないとしています。両国による初の作戦が行われた事は、テロとの戦いに於ける両国の歩み寄りと看做す識者も多く──────"
病室のテレビで流れるCNNを聞きながら、俺は気を失う前の事を考えた。あのロシア野郎は結局どうなったんだろう。アイシャやマリクは無事なのだろうか。思い出せる情景も音も声も、妙に霞が掛ったように不明瞭だったが、一つ確かな事があった。
ジョーは死んだという事だった。
どんなに絶望的な状況下でも、その時に感じる恐怖は苦痛や重圧に直結するものではない。その時に俺たち兵士が考えるのは、如何に効率よく、一貫性を維持し、現実に適した行動をとるか、それが全てだ。戦闘中のそれは嫌悪感どころか、高揚感さえ感じさせるものだ。
目の前で仲間が傷つき、死ぬことさえなければ。
その瞬間、耐え難い悲しみと怒りが綯い交ぜになった感覚に胸が締め付けられる。そしてそれは帰った後も、一生続く苦しみだ。
俺たちがこうして生きていられるのは運が良かっただけだ。
ジョーはそうじゃなかった。
彼はもう戻らない。