/* Fallback palette before themes.js applies a theme class. Matches Supernova. */
:root {
	--background-color: #000;
	--header-active-background-color: rgba(37, 78, 168, 0.55);
	--header-hover-background-color: rgba(37, 78, 168, 0.18);
	--input-background-color: #0a0a0a;
	--border-color: #525252;
	--text-color: #ffffff;
	--hover-text-color: rgba(255, 255, 255, 0.49);
	--active-text-color: rgba(255, 255, 255, 0.81);
	--utility-background-color: rgb(22, 22, 22);
	--utility-shadow-color: rgba(66, 66, 66, 0.86);
	--hr-background: rgba(160, 160, 160, 0.274);
	--navbar-background-color: rgb(22, 22, 22);
	--page-text-color: rgba(82, 82, 82, 0.97);
	--shortcut-background-color: #131f42;
	--shortcut-box-shadow: 0 0 20px 1px rgba(91, 138, 240, 0.35);
	--image-outline-color: #2e5cb8;
	--button-background-color: #1d4ed8;
	--settingsection-background-color: #0c0c0c;
	--settingsection-background-color-hover: #101010;
	--link-hover-color: #5b8af0;
	--settingsection-hr-background: rgba(255, 255, 255, 0.22);
	--button-reg-background-color: rgb(22, 22, 22);
	--button-reg-hover-background-color: rgb(25, 25, 25);
	--button-reg-active-background-color: rgb(15, 15, 15);
	--dropdown-background-color: rgb(22, 22, 22);
	--dropdown-hover-background-color: rgb(25, 25, 25);
	--panic-key-successful-color: #24b95b;
	--panic-key-failed-color: #e20b41;
	--failtoast-background: rgb(255, 0, 0);
	--toast-background: rgb(43, 255, 0);
	--slider-background-color: #2e5cb8;
	--slider-box-shadow: inset 1px 1px 2px 0px #7fa4ec;
	--checkbox-background-color: #7fa4ec;
	--password-background-color: #252525;
	--password-hover-background-color: #181818;
	--dshadow1: #14275f;
	--dshadow2: #1d4ed8;
	--dshadow3: #0a1738;
	--dshadow4: #2e5cb8;
}

body {
	padding: 0;
	margin: 0;
	background-color: var(--background-color);
	font-family: 'DM Sans';
	transition: color 0.2s ease;
}

.header {
	position: absolute;
	transform: translate(-50%, -50%);
	left: 50%;
	top: 50%;
	justify-content: center;
	z-index: 10;
}

.header > h1 p {
	font-size: 20px;
	margin: 10px 0px 1px;
	font-weight: 200;
}

.btn {
	position: relative;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 7px;
	padding: 10px 16px;
	border-radius: 8px;
	border: none;
	color: var(--text-color);
	cursor: pointer;
	background: var(--button-background-color);
	text-decoration: none;
	font-family: 'DM Sans', sans-serif;
	will-change: transform;
	transition: background-color 0.2s ease;
}

.btn:active {
	transform: scale(0.98);
	transition: background-color 0.2s ease;
}

.btn:hover {
	background-image: none;
	filter: brightness(1.15);
}

#navactive {
	background-color: var(--header-active-background-color);
	border-radius: 7px;
}

.navbar span:hover,
.navbar div:not(.navHover):hover {
	background-color: var(--header-hover-background-color);
	border-radius: 7px;
	transition: 0.12s all ease-in-out;
	cursor: pointer;
}

.navbar span,
.navbar div {
	transition: 0.12s;
}

.navbar {
	list-style-type: none;
	padding-left: 5px;
	padding-right: 5px;
	padding-top: 5px;
	margin: 0;
	direction: ltr;
	width: 2.5em;
	height: 100%;
	background-color: var(--navbar-background-color);
	position: fixed;
	text-align: center;
	box-shadow: 1px 0 1px 0 var(--utility-shadow-color);
	z-index: 2147483640;
}

.navbar hr {
	width: 40px;
	height: 1px;
	background: var(--hr-background);
	border: none;
	margin-top: 10px;
	margin-bottom: 5px;
}

.no-animation {
	animation: none !important;
	transition: none !important;
	opacity: 1;
}

.no-animation2 {
	animation: none !important;
	transition: none !important;
	opacity: 1 !important;
}

body img {
	-webkit-user-drag: none;
}

::-webkit-scrollbar {
	display: none;
}

.fade-in-top {
	-webkit-animation: fade-in-top 0.6s ease-in-out;
	animation: fade-in-top 0.6s ease-in-out;
}

@keyframes fade-in-left {
	0% {
		-webkit-transform: translateX(-50px);
		transform: translateX(-50px);
		opacity: 0;
	}
	100% {
		-webkit-transform: translateX(0);
		transform: translateX(0);
		opacity: 1;
	}
}

@-webkit-keyframes fade-in-top {
	0% {
		-webkit-transform: translateY(-50px);
		transform: translateY(-50px);
		opacity: 0;
	}

	100% {
		-webkit-transform: translateY(0);
		transform: translateY(0);
		opacity: 1;
	}
}

@keyframes fade-in-top {
	0% {
		-webkit-transform: translateY(-50px);
		transform: translateY(-50px);
		opacity: 0;
	}

	100% {
		-webkit-transform: translateY(0);
		transform: translateY(0);
		opacity: 1;
	}
}

@-webkit-keyframes fade-in-bottom {
	0% {
		-webkit-transform: translateY(50px);
		transform: translateY(50px);
		opacity: 0;
	}

	100% {
		-webkit-transform: translateY(0);
		transform: translateY(0);
		opacity: 1;
	}
}

@keyframes fade-out-bottom {
	0% {
		-webkit-transform: translateY(0px);
		transform: translateY(0px);
		opacity: 1;
	}

	100% {
		-webkit-transform: translateY(50px);
		transform: translateY(50px);
		opacity: 0;
	}
}

@keyframes fade-in-bottom {
	0% {
		-webkit-transform: translateY(50px);
		transform: translateY(50px);
		opacity: 0;
	}

	100% {
		opacity: 1;
	}
}

@keyframes fade-in-bottom-announcement {
	0% {
		-webkit-transform: translateX(-50%) translateY(50px);
		transform: translateX(-50%) translateY(50px);
		opacity: 0;
	}

	100% {
		-webkit-transform: translateX(-50%) translateY(0);
		transform: translateX(-50%) translateY(0);
		opacity: 1;
	}
}

@keyframes fade-in-bottom-announcement-close {
	0% {
		transform: translateX(calc(-50% + 289px)) translateY(calc(50px - 20%));
		opacity: 0;
	}

	100% {
		transform: translateX(calc(-50% + 289px)) translateY(-20%);
		opacity: 1;
	}
}

@keyframes fade-in-left {
	0% {
		-webkit-transform: translateX(-50px);
		transform: translateX(-50px);
		opacity: 0;
	}
	100% {
		-webkit-transform: translateX(0);
		transform: translateX(0);
		opacity: 1;
	}
}

@keyframes fade-out-top-announcement {
	100% {
		-webkit-transform: translateX(-50%) translateY(-50px);
		transform: translateX(-50%) translateY(-50px);
		opacity: 0;
	}

	0% {
		-webkit-transform: translateX(-50%) translateY(0);
		transform: translateX(-50%) translateY(0);
		opacity: 1;
	}
}

@keyframes fade-out-top-announcement-close {
	100% {
		transform: translateX(calc(-50% + 289px)) translateY(calc(- 20%));
		opacity: 0;
	}

	0% {
		transform: translateX(calc(-50% + 289px)) translateY(-20%);
		opacity: 1;
	}
}

@keyframes tilt {
	0% {
		-webkit-transform: rotateY(20deg) rotateX(35deg)
			translate(300px, -300px) skew(-35deg, 10deg);
		transform: rotateY(20deg) rotateX(35deg) translate(300px, -300px)
			skew(-35deg, 10deg);
		opacity: 0;
	}

	100% {
		-webkit-transform: rotateY(0) rotateX(0deg) translate(0, 0)
			skew(0deg, 0deg);
		transform: rotateY(0) rotateX(0deg) translate(0, 0) skew(0deg, 0deg);
		opacity: 1;
	}
}

.logo {
	width: 42px;
	height: 42px;
	transition: 0.3s;
	user-select: none;
}

.logo:hover {
	transform: scale(1.1);
	transition: 0.3s;
	cursor: pointer;
}

h1 {
	font-size: 50px;
	color: var(--text-color);
}

p {
	font-size: 20px;
	color: var(--text-color);
	font-weight: 200;
	font-family: 'DM Sans', sans-serif;
}

.material-symbols-outlined {
	user-select: none;
	cursor: pointer;
}

span.material-symbols-outlined {
	font-size: 20px;
	margin-top: 10px;
	margin-bottom: -6px;
	padding: 10px;
	color: var(--text-color);
}

.content {
	position: absolute;
	transform: translate(-50%, -50%);
	left: 50%;
	top: 50%;
	justify-content: center;
}

#particles-js {
	position: absolute;
	width: 100%;
	height: 99%;
	top: 0;
	left: 0;
}

.search-header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	text-align: center;
	border-radius: 10px;
}

.search-header__input {
	font-family: 'DM Sans';
	font-size: 16px;
	background-color: var(--input-background-color);
	border: solid 0.5px var(--border-color);
	color: var(--text-color);
	padding: 0.7rem 1rem;
	border-radius: 8px;
	width: 240px;
	height: 20px;
	transition: all ease-in-out 0.5s;
	margin-right: -2rem;
	opacity: 1;
	text-align: center;
}

.search-header__input:not(#proxyAddress):hover,
.search-header__input:not(#proxyAddress):focus {
	box-shadow:
		10px 5px 40px -10px var(--dshadow1),
		-14px -4px 40px -10px var(--dshadow2);
	padding-left: calc(+50px) !important;
	padding-right: calc(+50px) !important;
}

.search-header__input:focus {
	outline: none;
	background-color: #0a0a0af0;
}

.search-header__input::-webkit-input-placeholder {
	font-weight: 200;
	color: #868686;
	font-family: 'DM Sans';
}

.search-header__input:focus + .search-header__button {
	background-color: transparent;
}

.search-header__button {
	border: none;
	background-color: transparent;
	margin-top: 0.1em;
}

.search-header__button:hover {
	cursor: pointer;
}

.search-header__icon {
	height: 1.3em;
	width: 1.3em;
	fill: #3a3a3a;
}

.searchEngineIcon {
	width: 20px;
	height: 20px;
	border-radius: 50%;
	object-fit: cover;
	position: relative;
	z-index: 9999999;
	margin-right: -35px;
}

.blob {
	box-shadow: 0 0 150px 100px var(--link-hover-color);
	border-radius: 50%;
	height: 290px;
	width: 290px;
	background-image: radial-gradient(
		farthest-corner at 50% 50%,
		#ffffff,
		var(--dshadow3)
	);
	background-blend-mode: multiply;
	filter: blur(50px) contrast(1.1);
	position: fixed;
	transform: translate(-50%, -50%);
	left: 47vw;
	top: 100vh;
	position: absolute;
}

.blobbig {
	box-shadow: 0 0 150px 100px var(--link-hover-color);
	border-radius: 100%;
	height: 45vh;
	width: 75vw;
	opacity: 0.15;
	background-image: radial-gradient(
		farthest-corner at 50% 50%,
		#ffffff,
		var(--dshadow4)
	);
	background-blend-mode: multiply;
	filter: blur(50px) contrast(1.1);
	position: fixed;
	transform: translate(-50%, -35%);
	left: 47vw;
	top: 100vh;
	position: absolute;
}

.blobsmall {
	box-shadow: 0 0 150px 50px var(--dshadow4);
	border-radius: 50%;
	height: 50px;
	width: 340px;
	background-image: radial-gradient(
		farthest-corner at 50% 50%,
		#ffffff,
		var(--dshadow3)
	);
	background-blend-mode: multiply;
	filter: blur(50px) contrast(1.2);
	position: fixed;
	transform: translate(-50%, -50%);
	left: 60vw;
	top: 100vh;
	position: absolute;
}

.blobtop {
	box-shadow: 0 0 1px 20px var(--dshadow4);
	border-radius: 50%;
	height: 230px;
	width: 20px;
	background-image: radial-gradient(
		farthest-corner at 50% 50%,
		#ffffff,
		var(--dshadow3)
	);
	background-blend-mode: multiply;
	filter: blur(50px) contrast(1.1);
	position: fixed;
	transform: translate(-50%, -50%);
	rotate: -20deg;
	left: 41.6vw;
	top: calc(89vh - 200px);
	position: absolute;
}

@keyframes spinning {
	to {
		transform: rotate(360deg);
	}
}

.password {
	width: 100%;
	height: 45px;
	line-height: 30px;
	padding: 0 1rem;
	padding-left: 3rem;
	border: 2px solid transparent;
	border-radius: 10px;
	outline: none;
	background-color: var(--password-background-color);
	color: #818181;
}

.password::placeholder {
	color: #8d8d8d;
}

.password:focus,
input:hover {
	outline: none;
	background-color: var(--password-hover-background-color);
}

.picon {
	position: absolute;
	left: 1rem;
	fill: none;
	width: 1rem;
	height: 1rem;
	color: #fff;
}

.pgroup {
	display: flex;
	line-height: 30px;
	align-items: center;
	position: relative;
	max-width: 300px;
}

.panicKeyFailed {
	transition: all 0.2s ease-in-out;
	box-shadow: 0px 0px 30px -5px #e20b41;
	background-color: var(--panic-key-failed-color) !important;
	z-index: 999999999;
}

.panicKey {
	background-color: rgba(37, 37, 37, 0.5);
}

.failtoast {
	position: absolute;
	top: 25px;
	right: 30px;
	border-radius: 12px;
	background: var(--failtoast-background);
	padding: 20px 25px 20px 35px;
	box-shadow: 0 6px 20px -5px rgba(255, 255, 255, 0.1);
	overflow: hidden;
	transform: translateX(calc(100vw + 30px));
	transition: all 0.5s cubic-bezier(0.68, -0.55, 0.265, 1.35);
	z-index: 999999999999;
}

.failtoast.active {
	transform: translateX(0%);
}

.failtoast .failtoast-content {
	display: flex;
	align-items: center;
}

.failtoast span.material-symbols-outlined,
.toast span.material-symbols-outlined {
	margin: 0;
	padding: 0;
}

.failtoast-content .fail {
	display: flex;
	height: 35px;
	min-width: 35px;
	color: red;
	font-size: 30px;
	border-radius: 50%;
}

.failtoast-content .failmessage {
	display: flex;
	flex-direction: column;
	margin: 0 20px;
}

.failmessage .failtext {
	font-size: 16px;
	font-weight: 400;
	color: rgba(255, 255, 255, 0.48);
}

.failmessage .failtext.text-1 {
	font-weight: 600;
	color: rgba(255, 255, 255, 0.48);
	margin: 0 !important;
}

.failtoast .failclose {
	position: absolute;
	top: 10px;
	right: 15px;
	padding: 5px;
	cursor: pointer;
	opacity: 0.7;
	color: #fff;
	pointer-events: all !important;
	user-select: all !important;
	cursor: pointer;
}

.failtoast .failclose:hover {
	opacity: 1;
}

.failtoast .failprogress {
	position: absolute;
	bottom: 0;
	left: 0;
	height: 3px;
	width: 100%;
}

.failtoast .failprogress:before {
	content: '';
	position: absolute;
	bottom: 0;
	right: 0;
	height: 100%;
	width: 100%;
	background-color: #b70000;
}

.failprogress.active:before {
	animation: progress 5s linear forwards;
}

.failtoast.active ~ button {
	pointer-events: none;
}

@keyframes failprogress {
	100% {
		right: 100%;
	}
}

.toast {
	position: absolute;
	top: 25px;
	right: 30px;
	border-radius: 12px;
	background: var(--toast-background);
	padding: 20px 35px 20px 25px;
	box-shadow: 0 6px 20px -5px rgba(255, 255, 255, 0.1);
	overflow: hidden;
	transform: translateX(calc(100vw + 30px));
	transition: all 0.5s cubic-bezier(0.68, -0.55, 0.265, 1.35);
}

.toast.active {
	transform: translateX(0%);
}

.toast .toast-content {
	display: flex;
	align-items: center;
}

.toast-content .check {
	display: flex;
	align-items: center;
	justify-content: center;
	height: 35px;
	min-width: 35px;
	background-color: #00b709;
	color: #fff;
	font-size: 20px;
	border-radius: 50%;
}

.toast-content .message {
	display: flex;
	flex-direction: column;
	margin: 0 20px;
}

.message .text {
	font-size: 16px;
	font-weight: 400;
	color: rgba(255, 255, 255, 0.48);
}

.message .text.text-1 {
	font-weight: 600;
	color: rgba(255, 255, 255, 0.48);
}

.toast .close {
	position: absolute;
	top: 10px;
	right: 15px;
	padding: 5px;
	cursor: pointer;
	opacity: 0.7;
	color: #fff;
}

.toast .close:hover {
	opacity: 1;
}

.toast .progress {
	position: absolute;
	bottom: 0;
	left: 0;
	height: 3px;
	width: 100%;
}

.toast .progress:before {
	content: '';
	position: absolute;
	bottom: 0;
	right: 0;
	height: 100%;
	width: 100%;
	background-color: #00b709;
}

.progress.active:before {
	animation: progress 5s linear forwards;
}

@keyframes progress {
	100% {
		right: 100%;
	}
}

.toast.active ~ button {
	pointer-events: none;
}

/* Landing hero */
.hero {
	width: min(780px, calc(100vw - 130px));
	text-align: center;
}

.hero h1 {
	margin: 0 0 18px;
	font-size: clamp(42px, 6.5vw, 60px);
	font-weight: 600;
	letter-spacing: -0.02em;
	line-height: 1.08;
}

.hero p {
	max-width: 620px;
	margin: 0 auto 30px;
	font-size: 20px;
	font-weight: 380;
	line-height: 1.55;
	color: rgba(255, 255, 255, 0.78);
}

.btn-hero {
	padding: 14px 26px;
	font-size: 16px;
	font-weight: 600;
}

.btn-hero span.btn-arrow {
	margin: 0;
	padding: 0;
	font-size: 20px;
}

/* Pre-animation state, applied from <head> before first paint. home.js
   animates the elements in; without Motion the class is removed again. */
.anim [data-anim],
.anim .navbar {
	opacity: 0;
}

/* Slow ambient drift on the background blobs. Animates the independent
   translate property so it composes with the existing transform centering. */
@keyframes blob-float-a {
	from {
		translate: 0 0;
	}
	to {
		translate: 14px -30px;
	}
}

@keyframes blob-float-b {
	from {
		translate: 0 0;
	}
	to {
		translate: -22px -18px;
	}
}

@keyframes blob-float-c {
	from {
		translate: 0 0;
	}
	to {
		translate: 8px 22px;
	}
}

.blob {
	animation: blob-float-a 13s ease-in-out infinite alternate;
}

.blobbig {
	animation: blob-float-b 18s ease-in-out infinite alternate;
}

.blobsmall {
	animation: blob-float-c 11s ease-in-out infinite alternate;
}

.blobtop {
	animation: blob-float-c 15s ease-in-out infinite alternate-reverse;
}

@media (prefers-reduced-motion: reduce) {
	.blob,
	.blobbig,
	.blobsmall,
	.blobtop {
		animation: none;
	}
}
