/* Telecom Security — system-ready preloader (Home only). */
.ts-preloader {
	display: none;
}

html.ts-preloader-active,
html.ts-preloader-technical {
	overflow: hidden;
	background: #0b111b;
}

html.ts-preloader-active body,
html.ts-preloader-technical body {
	background: #0b111b;
}

html.ts-preloader-active .ts-preloader,
html.ts-preloader-technical .ts-preloader {
	display: grid;
	position: fixed;
	inset: 0;
	width: 100%;
	height: 100vh;
	height: 100svh;
	place-items: center;
	z-index: 100000;
	background: transparent;
	isolation: isolate;
	overflow: hidden;
}

body.ts-preloader-scroll-lock {
	overflow: hidden;
	touch-action: none;
}

.ts-preloader__panel {
	position: absolute;
	inset-block: 0;
	width: 50.1%;
	background: #0b111b;
	z-index: 0;
	will-change: transform;
	transition: transform 940ms cubic-bezier(.76, 0, .24, 1), opacity 760ms ease 120ms;
}

.ts-preloader__panel--left {
	left: 0;
}

.ts-preloader__panel--right {
	right: 0;
}

.ts-preloader__content {
	position: relative;
	z-index: 1;
	display: grid;
	place-items: center;
	gap: clamp(1.25rem, 3vh, 2rem);
	padding: max(1.5rem, env(safe-area-inset-top)) max(1.5rem, env(safe-area-inset-right)) max(1.5rem, env(safe-area-inset-bottom)) max(1.5rem, env(safe-area-inset-left));
	color: #f8fafc;
	text-align: center;
	transition: opacity 320ms ease, transform 320ms ease;
}

.ts-preloader__emblem {
	--ts-scan-travel: clamp(8.25rem, 14vw, 11rem);
	position: relative;
	display: grid;
	width: clamp(10.5rem, 18vw, 14rem);
	aspect-ratio: 240 / 270;
	place-items: center;
	filter: drop-shadow(0 1.25rem 2.5rem rgb(0 0 0 / 28%));
	overflow: hidden;
}

.ts-preloader__shield {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	fill: rgb(255 255 255 / 1.5%);
	stroke: rgb(255 255 255 / 48%);
	stroke-width: 2;
	stroke-linecap: round;
	stroke-linejoin: round;
	stroke-dasharray: 890;
	stroke-dashoffset: 890;
	animation: ts-preloader-shield 980ms cubic-bezier(.65, 0, .35, 1) 120ms forwards;
}

.ts-preloader__mark {
	position: relative;
	display: grid;
	width: clamp(4.75rem, 8vw, 7rem);
	aspect-ratio: 1;
	place-items: center;
	font: 800 1.75rem/1 system-ui, sans-serif;
	color: #ff5a1f;
	opacity: 0;
	transform: scale(.93);
	filter: blur(2px);
	animation: ts-preloader-mark 460ms cubic-bezier(.22, 1, .36, 1) 620ms forwards;
}

.ts-preloader__mark::before {
	position: absolute;
	z-index: -1;
	inset: -28%;
	border-radius: 50%;
	background: radial-gradient(circle, rgb(255 90 31 / 11%) 0, rgb(255 90 31 / 3%) 45%, transparent 72%);
	content: "";
}

.ts-preloader__mark img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: contain;
}

.ts-preloader__scanner {
	position: absolute;
	inset: 0;
	clip-path: polygon(50% 3.7%, 91.7% 17.8%, 91.7% 46.7%, 90% 57%, 85% 68%, 77% 78.5%, 65% 88%, 50% 96.3%, 35% 88%, 23% 78.5%, 15% 68%, 10% 57%, 8.3% 46.7%, 8.3% 17.8%);
	overflow: hidden;
	pointer-events: none;
}

.ts-preloader__scanner::before {
	position: absolute;
	left: 12%;
	right: 12%;
	top: 19%;
	height: 1px;
	background: linear-gradient(90deg, transparent 0, rgb(255 90 31 / 55%) 18%, #ff8a52 50%, rgb(255 90 31 / 55%) 82%, transparent 100%);
	box-shadow: 0 0 .35rem rgb(255 90 31 / 74%), 0 0 .9rem rgb(255 90 31 / 26%);
	content: "";
	opacity: 0;
	animation: ts-preloader-scan 980ms cubic-bezier(.45, 0, .55, 1) 520ms 1 both;
	will-change: transform, opacity;
}

.ts-preloader__scanner::after {
	position: absolute;
	top: calc(19% - 1px);
	right: 24%;
	width: 3px;
	height: 3px;
	border-radius: 50%;
	background: #ffb08a;
	box-shadow: 0 0 .45rem rgb(255 90 31 / 72%);
	content: "";
	opacity: 0;
	animation: ts-preloader-scan 980ms cubic-bezier(.45, 0, .55, 1) 520ms 1 both;
	will-change: transform, opacity;
}

.ts-preloader__status {
	margin: 0;
	font: 650 clamp(.72rem, 1vw, .84rem)/1.4 system-ui, sans-serif;
	letter-spacing: .18em;
	text-transform: uppercase;
	color: rgb(248 250 252 / 72%);
	opacity: 0;
	transform: translateY(.35rem);
	animation: ts-preloader-status 460ms ease-out 260ms forwards;
}

.ts-preloader.is-ready .ts-preloader__emblem {
	animation: ts-preloader-ready 240ms ease-out 1;
}

.ts-preloader.is-ready .ts-preloader__status {
	color: #ff7a3d;
}

.ts-preloader.is-opening .ts-preloader__content {
	opacity: 0;
	transform: scale(.985);
}

.ts-preloader.is-opening .ts-preloader__panel--left {
	transform: translate3d(-101%, 0, 0);
	opacity: 0;
}

.ts-preloader.is-opening .ts-preloader__panel--right {
	transform: translate3d(101%, 0, 0);
	opacity: 0;
}

html.ts-preloader-technical .ts-preloader__content {
	display: none;
}

html.ts-preloader-technical .ts-preloader.is-opening {
	opacity: 0;
	transition: opacity 240ms ease;
}

html.ts-preloader-technical .ts-preloader__panel,
html.ts-preloader-technical .ts-preloader.is-opening .ts-preloader__panel {
	transform: none;
	opacity: 1;
	transition: none;
}

.ts-hero__video-fallback {
	position: absolute;
	inset: 0;
	background: radial-gradient(circle at 67% 48%, #16243c 0, #0b111b 40%, #070b13 100%);
}

.ts-hero.is-video-pending .ts-hero__video,
.ts-hero.is-video-blocked .ts-hero__video,
.ts-hero.is-video-error .ts-hero__video {
	opacity: 0;
}

.ts-hero__video-play {
	position: absolute;
	left: 50%;
	top: 50%;
	z-index: 5;
	display: inline-flex;
	min-height: 3.5rem;
	align-items: center;
	gap: .7rem;
	padding: .85rem 1.15rem;
	border: 1px solid rgb(255 255 255 / 45%);
	border-radius: .25rem;
	background: rgb(11 17 27 / 88%);
	color: #fff;
	font: 650 .9rem/1.2 system-ui, sans-serif;
	transform: translate(-50%, -50%);
	cursor: pointer;
	backdrop-filter: blur(.5rem);
}

.ts-hero__video-play[hidden] {
	display: none;
}

.ts-hero__video-play:hover,
.ts-hero__video-play:focus-visible {
	border-color: #ff5a1f;
	outline: 2px solid #ff5a1f;
	outline-offset: 3px;
}

@keyframes ts-preloader-shield {
	0% { fill: rgb(255 255 255 / 0%); }
	70% { fill: rgb(255 255 255 / 1.5%); }
	100% { fill: rgb(255 255 255 / 1.5%); stroke-dashoffset: 0; }
}

@keyframes ts-preloader-mark {
	to { opacity: 1; transform: scale(1); filter: blur(0); }
}

@keyframes ts-preloader-status {
	to { opacity: 1; transform: translateY(0); }
}

@keyframes ts-preloader-scan {
	0% { opacity: 0; transform: translateY(0); }
	12% { opacity: 1; }
	76% { opacity: .82; }
	100% { opacity: 0; transform: translateY(var(--ts-scan-travel)); }
}

@keyframes ts-preloader-ready {
	50% { filter: drop-shadow(0 0 1.4rem rgb(255 90 31 / 42%)); }
}

@media (max-width: 767px) {
	.ts-preloader__emblem {
		width: min(48vw, 11.5rem);
	}

	.ts-preloader__status {
		max-width: 18rem;
		letter-spacing: .14em;
	}

	.ts-hero__video-play {
		width: max-content;
		max-width: calc(100vw - 2rem);
	}
}

@media (orientation: landscape) and (max-height: 520px) {
	.ts-preloader__content {
		grid-template-columns: auto auto;
		gap: 1.5rem;
	}

	.ts-preloader__emblem {
		width: min(31vh, 8.5rem);
	}
}

@media (prefers-reduced-motion: reduce) {
	.ts-preloader__shield,
	.ts-preloader__mark,
	.ts-preloader__scanner,
	.ts-preloader.is-ready .ts-preloader__emblem {
		animation: none !important;
	}

	.ts-preloader__shield {
		stroke-dashoffset: 0;
	}

	.ts-preloader__mark {
		opacity: 1;
		transform: none;
	}

	.ts-preloader__scanner {
		display: none;
	}

	.ts-preloader__status {
		opacity: 1;
		transform: none;
		animation: none;
	}

	.ts-preloader__panel {
		transition: none;
	}

	.ts-preloader.is-opening .ts-preloader__panel {
		transform: none;
		opacity: 1;
	}

	.ts-preloader.is-opening {
		opacity: 0;
		transition: opacity 150ms linear;
	}
}
