@charset "UTF-8";
@import url("https://fonts.googleapis.com/css2?family=Raleway:wght@600&display=swap");
@import url("https://fonts.googleapis.com/css2?family=Rubik&display=swap");
@import url("https://unpkg.com/@fortawesome/fontawesome-free@7.0.1/css/all.min.css");

:root {
	--light-bg: #1f003e;
	--primary: #d34644;
	--secondary: #250c3a;
	--text: #fff;
}

@keyframes fadeInAnimation {
	0% { opacity: 0; }
	100% { opacity: 1; }
}

@keyframes pulse {
	0%, 100% { transform: scale(1); }
	50% { transform: scale(1.05); }
}

* {
	margin: 0;
	padding: 0;
	box-sizing: border-box;
	scroll-behavior: smooth;
	color: var(--text);
	font-family: "Raleway", sans-serif;
	scrollbar-width: thin;
	scrollbar-color: var(--primary);
}

::selection,
::-moz-selection {
	background: #372551;
}

html::-webkit-scrollbar {
	width: clamp(12px, 1.5vw, 16px);
}

html::-webkit-scrollbar-track {
	background-color: var(--secondary);
	border-radius: clamp(80px, 10vw, 100px);
}

html::-webkit-scrollbar-thumb {
	background-color: var(--primary);
	border-radius: clamp(80px, 10vw, 100px);
}

body {
	position: absolute;
	width: 100%;
	left: 0;
	top: 0;
	text-shadow: clamp(1px, 0.2vw, 2px) clamp(1px, 0.2vw, 2px) clamp(8px, 1vw, 11px) black;
	background-color: var(--light-bg);
}

button {
	background: none;
	outline: none;
	border: none;
	width: 100%;
	justify-content: center;
}

pre {
	display: inline;
	font-family: "Rubik", sans-serif;
	background-color: #000;
	padding: clamp(1px, 0.2vw, 2px) clamp(4px, 0.6vw, 6px);
	border-radius: clamp(3px, 0.4vw, 4px);
}

.header {
	min-height: 10vh;
	padding-bottom: clamp(1vw, 2vw, 3vw);
	display: flex;
	justify-content: center;
	align-items: center;
	animation: fadeInAnimation ease-in-out 2s forwards;
}

.background {
	position: fixed;
	left: 0;
	top: 0;
	width: 100%;
	height: 100vh;
	z-index: -1;
	background: url("/public/background.svg") no-repeat center/cover;
}

.titlecontainer {
	display: flex;
	justify-content: center;
	align-items: center;
	flex-direction: column;
	width: 90%;
}

.sitetitle {
	margin-left: 11%;
	padding: clamp(2px, 0.3vw, 3px) clamp(6px, 0.8vw, 8px);
	display: inline-flex;
	align-items: center;
	border: 1px solid var(--text);
	border-radius: clamp(2px, 0.3vw, 3px);
	letter-spacing: clamp(4px, 0.8vw, 8px);
	font-size: clamp(20px, 3.5vw, 32.5px);
	text-transform: uppercase;
	cursor: pointer;
}

.sitetitle > a {
	color: var(--text);
	text-decoration: none;
}

.sitetitle:hover {
	animation: pulse 1s;
}

.navbar {
	width: 10%;
	margin: clamp(15px, 2vw, 20px) 0;
	padding: 0;
	display: flex;
	justify-content: space-around;
	overflow: hidden;
}

.navbar > li {
	margin: clamp(20px, 3vw, 30px) 0;
	padding: clamp(2px, 0.3vw, 3px) clamp(15px, 2vw, 20px);
	float: left;
	display: inline-flex;
	cursor: pointer;
}

.navbar > li > a {
	color: var(--text);
	font-size: clamp(12px, 1.5vw, 16px);
	font-family: "Raleway", sans-serif;
	letter-spacing: clamp(1px, 0.2vw, 2px);
	text-decoration: none;
}

.link {
	font-size: clamp(16px, 2vw, 20px);
}

.icon {
	width: clamp(36px, 4.5vw, 48px);
	height: clamp(36px, 4.5vw, 48px);
	margin-right: clamp(12px, 1.5vw, 16px);
}

.content {
	width: clamp(70%, 50%, 50%);
	margin-top: 5vh;
    overflow: visible;
    padding-top: clamp(180px, 20vw, 240px);
    margin-top: clamp(-180px, -20vw, -240px);
}

.container {
	bottom: 0;
	display: flex;
	justify-content: center;
	letter-spacing: clamp(2px, 0.3vw, 3px);
	font-family: "Raleway", sans-serif;
}

.docs {
	display: flex;
	flex-direction: column;
	align-items: center;
	margin: 0 auto 5vh;
	padding: clamp(20px, 3vw, 30px);
	letter-spacing: clamp(2px, 0.3vw, 3px);
	font-family: "Raleway", sans-serif;
	overflow: hidden;
	overflow-wrap: break-word;
	border: 1px solid #b29dc688;
	background-color: #1f003e54;
	border-radius: clamp(20px, 3vw, 30px);
    overflow: visible;
}

.button {
	position: relative;
	color: var(--text);
	padding: clamp(15px, 2vw, 20px);
	line-height: clamp(48px, 6vw, 64px);
	margin: clamp(8px, 1vw, 10px) 0;
	display: flex;
	align-items: center;
	text-decoration: none;
	transition: all 0.3s;
}

.button::before,
.button::after {
	content: "";
	position: absolute;
	bottom: 0;
	left: 0;
	width: 100%;
	height: 100%;
	transition: all 0.3s;
}

.button::before {
	left: 1px;
	z-index: 1;
	opacity: 0;
	background: rgba(255, 255, 255, 0.1);
	transform: scale(0.1, 1);
}

.button:hover::before,
.button:has(input:checked)::before {
	opacity: 1;
	transform: scale(1, 1);
}

.button::after {
	z-index: 1;
	border: 1px solid rgba(255, 255, 255, 0.5);
}

.button:hover::after,
.button:has(input:checked)::after {
	transform: scale(1, 0.1);
	opacity: 0;
}

.button input {
	position: absolute;
	opacity: 0;
	cursor: pointer;
}

.button .icon {
	position: relative;
	z-index: 2;
}

.button .label {
	font-size: clamp(14px, 1.8vw, 18px);
	letter-spacing: clamp(1px, 0.2vw, 2px);
	position: relative;
	z-index: 2;
}

.button .status {
	font-size: clamp(14px, 1.8vw, 18px);
	letter-spacing: clamp(1px, 0.2vw, 2px);
	position: relative;
	z-index: 2;
}

.button-right {
	margin-left: clamp(15px, 2vw, 20px);
}

.toggles {
	display: flex;
	align-items: center;
	margin: clamp(15px, 2vw, 20px) 0;
}

.check {
	width: clamp(12px, 1.5vw, 16px);
	height: clamp(12px, 1.5vw, 16px);
	margin-right: clamp(12px, 1.5vw, 16px);
}

.button .status {
	display: flex;
	width: clamp(12px, 1.5vw, 16px);
	height: clamp(12px, 1.5vw, 16px);
	margin-left: auto;
	padding: clamp(6px, 0.8vw, 8px);
	border-radius: clamp(10px, 1.2vw, 12px);
	font-size: 0.75em;
	font-weight: 600;
}

.status-up {
	background-color: #00ff00;
	border: 2px solid #80ff80;
}

.status-down {
	background-color: #ff0000;
	border: 2px solid #ff8080;
}

.status-unknown {
	background-color: #808080;
	border: 2px solid #b0b0b0;
}

.preview {
    position: absolute;
    top: clamp(-180px, -20vw, -220px);
    left: 50%;
    transform: translateX(-50%);
    width: clamp(240px, 30vw, 300px);
    height: clamp(160px, 20vw, 200px);
    object-fit: cover;
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.3s ease, top 0.3s ease;
    z-index: 1000;
    border: 1px solid rgba(255, 255, 255, 0.5);
}

label:not(:has(.status-up)) .preview {
	display: none;
}

.button.service {
    overflow: visible;
    position: relative;
}

.button.service:hover .preview {
    opacity: 1;
    top: clamp(-190px, -21vw, -230px);
}

@media (max-width: 768px) {
    .content {
        width: 90%;
    }
    
    .sitetitle {
        margin-left: 0;
        letter-spacing: clamp(2px, 1vw, 4px);
    }
    
    .navbar {
        width: 100%;
        flex-wrap: wrap;
    }
}