pre { 
	--bg-color: #002b36;
	--text-color: #839496;
	--select-bg-color: #2aa198;
	--select-text-color: #002b36;
	--border-color: #0f8b6d;
	--pre-v-offset: 50px;
	--arrow-widht: 80px;
	--arrow-height: 50px;
	--arrow-left-offset: 50%;
	--arrow-anim-v-offset: -20%;
	max-height: 50dvh;
	min-width: min(1000px, 50vw);
	font-size: clamp(20px, calc(16.9091px + 0.9091vw), 30px);
	line-height: 1.2;
	color: var(--text-color);
	white-space: pre-wrap;
	margin-top: var(--pre-v-offset);
	margin-bottom: calc(-1 * var(--pre-v-offset));
    padding-block: 50px;
    padding-inline: 20px;
    background-color: var(--bg-color);
	border: 1px solid var(--border-color);
	position: relative;
	z-index: 999;
	overflow: auto;
	&::selection {
		background-color: var(--select-bg-color);
		color: var(--select-text-color);
	}
}

html, body { 
	scroll-behavior: smooth; 
	background-color: var(--white);
}
body {
	display: flex;
    flex-direction: column;
    min-height: 100dvh;
	font-family: var(--font-main);
}
main { 
	flex: 1 0 auto; 
	padding: var(--clamp-30-10); 
	display: flex;
    flex-direction: column;
    gap: var(--clamp-40-20);
}

section[id], div[id] {
	scroll-margin-top: calc(var(--header-height) - var(--top-bar-height));
}


.button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding-block: var(--clamp-16-10);
    padding-inline: var(--clamp-22-14);
	border: 2px solid transparent;
	border-radius: 8px;
	font-size: var(--clamp-16-12);
	font-weight: 500;
	line-height: 1;
	text-align: center;
	text-decoration: none;
	cursor: pointer;
	white-space: nowrap;
	
	transition:
		background-color var(--trans),
		color var(--trans),
		border-color var(--trans),
		opacity var(--trans),
		transform var(--trans),
		outline-offset var(--trans),
		outline-color var(--trans),
		border-radius var(--trans);
	
	&.button--primary {
		background: var(--blue);
		color: var(--white);
		border-color: var(--blue);
	}

	&.button--outline {
		outline: 3px solid transparent;
		background: transparent;
		color: var(--blue);
		border-color: var(--blue);
	}

	&.button--light {
		background: var(--white);
		color: var(--blue);
		border-color: var(--white);
	}
	
	&.button--outline:hover {
		outline-offset: 3px;
		outline-color: var(--blue-a50);
		border-radius: 10px;
	}
	
	&:hover {
		opacity: 0.8;
		transform: translateY(-2px);
	}

	&:active {
		transform: translateY(2px);
	}
}


img,
svg {
	pointer-events: none;
	user-select: none;
	-webkit-user-select: none;
	-moz-user-select: none;
	-ms-user-select: none;
	-webkit-user-drag: none;
	-webkit-touch-callout: none;
}


.container {
	--max-width: 1440px;
	--min-width: 320px;
	max-width: var(--max-width);
	min-width: var(--min-width);
	margin: 0 auto;
}


.anim-bottom-line {
	position: relative;
	max-width: max-content;
	white-space: nowrap;

	&::before {
		content: '';
		position: absolute;
		left: 0;
		bottom: -2px;
		height: 1px;
		width: 0px;
		background-color: var(--blue);
		border-radius: 2px;
		transition: width var(--trans);
	}

	&:hover::before {
		width: 100%;
	}
}