@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)/2 - 1.5em);
}
#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;
}
}
/* source: http://scpko.wikidot.com/theme:minimal-scp-foundation-by-cocoonist */
#top-bar .open-menu a {
position: fixed;
top: 0.5em;
left: 0.5em;
z-index: 5;
font-family: 'Nanum Gothic', san-serif;
font-size: 30px;
font-weight: 700;
width: 30px;
height: 30px;
line-height: 0.9em;
text-align: center;
border: 0.2em solid #888;
background-color: #fff;
border-radius: 3em;
color: #888;
pointer-events: none;
}
div#side-bar {
position: fixed;
left: -19em;
height: 100%;
overflow-y: auto;
top: 0;
width: 17em;
padding: 0.45em;
display: block;
z-index: 10;
transition: left 0.5s ease-in-out;
}
div#side-bar:hover {
left: 0;
}
div#side-bar:before {
content: '≡';
position: fixed;
top: 0.5em;
left: 0.5em;
font-size: 30px;
width: 36px;
height: 36px;
text-align: center;
z-index: 6;
transition: left 0.5s ease-in-out;
opacity: 0;
cursor: pointer;
}
div#side-bar:hover:before {
transition-delay: 0.1s;
}
@media (min-width: 768px) {
#main-content {
max-width: 708px;
margin: 0 auto;
padding: 0;
transition: max-width 0.2s ease-in-out;
}
.mobile-top-bar {
display: block;
}
.mobile-top-bar li {
display: none;
}
}
不用敬禮了,放輕鬆。
雖然位置有點遠,不過你們應該可以看清楚投影螢幕上的這個簡報,如果有看不清楚的人舉起手來、沒有是吧?
那讓我來自我介紹一下:我是Obermaier少校,呼號Freiheit,4級特遣隊指揮官,也是這場講習的教官。
這次的課程召集了即將登上空中母艦的新進人員,主要是讓你們了解主要收容流程的大概;
你們並不全是專業的空勤體系人員,我也知道在座有不少在其他專業具有頗高造詣的博士們,但為了日後的相關流程順遂,基本的流程還是會進行講解,所以內容我會盡量從簡。
首先,從實戰過程開始逐個解釋。
提取檔案:第三次異常空域06滲入計畫 簡報
『Merlin,三個群組。』
『A群組相對Goose點方位270,28海浬,高度22000,航向正東,敵機』
『B群組相對Goose點方位340,45海浬,高度22000,航向東南,未知』
『C群組相對Goose點方位080,30海浬,高度38000,空中徘徊,項目』
好的,在正常情況下,所有在同一個頻道的設備都會接到同一個廣播訊息,現在你們聽到的是所謂的「空情通報」,這些通報由負責該區域的攔截官統一進行匯報。
注意到開頭的部分,Merlin是我們攔截官的呼號,這次任務的執行團隊是由我帶領,攔截官是Ambrosius.aic。
然後是「三個群組」,這是從我們操控雷達或其他偵測設備的攔截官察覺到在這片空域的所有目標當中進行分類的一個辦法,一個群組由一架或是複數機體或空中實體組成,只要他們之間相距約5海浬以上就會被獨立分為其他群組。
現在你們可以看到螢幕上有三個集群,分別是空中巡邏的第八處戰鬥機CK-2兩架、一架未識別飛行物體、正在飛行的待收容項目。
第八處的機體被歸類為「敵機Hostile」,意思就是可以進行擊殺以確保收容過程的順利進行,而未知Bogey的機體有可能是敵機或是友機,再讓我們看看這句話,「A群組相對Goose點方位270,28海浬,高度22000,航向正東,敵機」。
首先我們要簡單的了解一下靶眼坐標法,這是北約一直以來採用的一個標準做法,意思就是在某處設定一個點位用來作為空域的中心,而每個靶眼都有不同的名字,這次行動當中所拿來使用的靶眼呼號便是Goose。
從靶眼向外延伸,半徑60海浬的範圍內就是我們劃定的一個空域,透過相對靶眼的這個點的航向與距離,就能夠定位任何你想要指出的位置。
若以正北作為0度,方位270就表示這個群組在相對靶眼的270度,飛機在正西邊,航向正東也就是那台飛機向著正東方飛過去,這個沒什麼障礙。
此時他們的下一個情報是28海浬,就代表他們距離靶眼28海浬,在地圖上是位於中間靠左的位置。
最後便是高度22000了,這一連串加起來我們可以得知他的性質、位置和正在做什麼,通過一個管制攔截官,用一次簡潔的訊息對所有收得到訊息的友方單位匯報。
但這樣的訊息仍然還是太長了,所以為了避免打亂無線電通訊,攔截官通常不會一直進行空情通報。
接下來是前出交戰Commit,當敵機距離我方機體約60海浬時便會滿足交戰條件,而負責搶奪制空權的戰機要前出進行攔截。
『Freiheit 1,Merlin。』
『A群組相對Goose點方位270,27海浬,高度22000,迎面,敵機,建議交戰。』
現在第八處的飛機注意到我們的存在了。
Freiheit 1是我,隊長機的呼號,是否進入交戰由隊長機決定,所以這裡攔截官只能進行「建議交戰recommend commit」,意思是攔截官認為我們應該進行交戰了。
『Freiheit 1,commit。』
此時我做出應答,我要進行交戰;接下來攔截官會開始進行分類,以下是分類的匯報。
『Merlin,三個群組成V字陣型,長10、寬15海浬。』
『領頭群組相對Goose點方位270,25海浬,高度20000,迎面,敵機,兩架。』
『北側尾隨群組高度18000,側向西北,敵機。』
『南測尾隨群組高度22000,迎面,敵機。』
首先,他們之間的位置就像是銳角等腰三角形那樣,我們就直接稱呼為V字陣型比較直觀,而這是一個長10海浬,寬15海浬的三角形。
接下來是「北側尾隨群組高度18000,側向西北,敵機。」這句,為什麼這裡攔截官不報坐標了呢?因為剛剛已經報了領頭機的靶眼坐標,又說了這個三角形的長和寬。
秉持著交戰單位優先的原則,現在我:Freiheit 1進入了交戰,作為攔截官的Merlin便要立即停止空情通報,開始進行下一個階段戰術管制。
以基金會的特殊性來說,我們通常會在這個時候將收容目標的監視工作分擔給另一位攔截官,別忘記主要目標還是在項目身上,但是在大部分時候,敵意實體和敵機會直接對我方造成威脅,在項目的威脅等級尚未提升到超越交戰等級時,我們應該先把較大的注意力放在驅逐敵人身上。
接下來讓我解釋一下所謂的BRAA,在場如果有接觸過相關無線電課程的同仁可能很熟悉,簡單來說,就是由航向Bearing、距離Range、高度Altitude、進入角Aspect所組成的通報方式。
『Freiheit 1,Merlin』
『領頭群組BRAA,300,30,22000,迎頭,敵機。』
300是指「航向」,敵機「距離」Freiheit 1約30海浬,「高度」22000,敵機的「進入角」直接面對Freiheit 1所以叫做迎頭。
Merlin會持續的向飛行員使用BRAA報告,直到Freiheit 1能夠從雷達或目視追蹤敵機為止,如果你們有幸前往Site-ZH-81任職,在那邊的攔截官會特別直接對飛行員進行交戰的指揮。
『Freiheit 1,Judy Judy。』
與81站的情況不同,飛行員可以自主對敵人進行追蹤之後,我會喊Judy Judy,攔截官會立即停止對該群組的報告,轉而去對其他群組進行追蹤,看是有其他目標的出現,還是其他突然威脅該飛行員的目標出現,如果沒有,那麼攔截官便不會再進行報告,將作戰交由友方機體;核心概念是輔助飛行員,而不是指揮飛行員該如何作戰。
『Merlin,Freiheit 1 遺失目標bogeydope。』
此時敵機離開了我本身的監測範圍,我看不到目標了,攔截官就要立即再向飛行員報BRAA。
『Freiheit 1,Merlin』
『領頭群組BRAA,250,30,20000,側向南,敵機。』
接下來有一些沒有出現在這個實戰過程的情況,像是請求態勢Picture,這時候攔截官就會再做一次空情通報。
以及請求識別Declare,假設說我現在向攔截官說:
「Merlin,Freiheit 1。請求識別靶眼250,29,12000的群組。」
攔截官此時可能會回答:
「Freiheit 1,靶眼250,29,12000的群組是友機Friendly。」
那麼,現在你們應該了解了最基本的空中管制過程,如果還不清楚的,我會將簡報檔案寄送到各位的電子信箱,下一節我將講解基金會在大氣層範圍內的空中收容程序。
現在下課。