/* CSS reset */
html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,a,img,ins,kbd,q,s,samp,tt,var,b,u,i,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,embed,figure,figcaption,footer,header,hgroup,menu,nav,output,ruby,section,summary,time,mark,audio,video,button{margin:0;padding:0;border:0;font-size:100%;font:inherit;vertical-align:baseline}
article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section{display: block}
body{line-height:1}
ol,ul{list-style:none}
table{border-collapse:collapse;border-spacing:0}

@keyframes bg-appear{
	0% {
		transform: scale(0);
	}
	100% {
		transform: scale(1);
	}
}

@keyframes blinking{
	0% {
		color: red;
	}
	50% {
		color: var(--text-color);
	}
	100% {
		color: red;
	}
}

@font-face {
	font-family: "Lato";
	font-weight: 300;
	src: url("../fonts/Lato-Light.ttf") format("truetype");
}

@font-face {
	font-family: "Lato";
	font-weight: 400;
	src: url("../fonts/Lato-Regular.ttf") format("truetype");
}

@font-face {
	font-family: "Lato";
	font-weight: 700;
	src: url("../fonts/Lato-Bold.ttf") format("truetype");
}

@font-face {
	font-family: "Lato";
	font-weight: 900;
	src: url("../fonts/Lato-Black.ttf") format("truetype");
}

html {
	font-size: 21px;
	font-family: "Lato", sans-serif;
	font-weight: 300;
	--icon-done: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='%23000000'%3E%3Cpath d='M22.5 4.5c-.8-.8-2.2-.8-3 0L9 15l-4.5-4.5c-.8-.8-2.2-.8-3 0s-.8 2.2 0 3L9 21 22.5 7.5c.8-.8.8-2.2 0-3z'%3E%3C/path%3E%3C/g%3E%3C/svg%3E");
	--icon-right: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='%23000000'%3E%3Cpath d='M7.6 5.8c0 .4.1.7.4.9l4.6 4.3c.5.5.5 1.4 0 1.9L8 17.2c-.3.2-.4.6-.4.9 0 1.1 1.3 1.7 2.1.9l6.8-6.2c.6-.5.6-1.4 0-1.9l-6.8-6c-.8-.7-2.1-.1-2.1.9z'%3E%3C/path%3E%3C/g%3E%3C/svg%3E");
	--icon-left: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='%23000000'%3E%3Cpath d='M16.4 18.2c0-.4-.1-.7-.4-.9L11.4 13c-.5-.5-.5-1.4 0-1.9L16 6.8c.3-.2.4-.6.4-.9 0-1.1-1.3-1.7-2.1-.9l-6.8 6.2c-.6.5-.6 1.4 0 1.9l6.8 6.2c.8.5 2.1-.1 2.1-1.1z'%3E%3C/path%3E%3C/g%3E%3C/svg%3E");
	--icon-timer: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='%23000000'%3E%3Cpath d='M21 6l-2-2-1.7 1.7C16 4.8 14.6 4.2 13 4.1V3h1c.5 0 1-.5 1-1s-.5-1-1-1h-4c-.5 0-1 .5-1 1s.5 1 1 1h1v1.1c-1.6.1-3 .7-4.3 1.6L5 4 3 6l1.7 1.7C3.6 9.2 3 11 3 13c0 5 4 9 9 9s9-4 9-9c0-2-.6-3.8-1.7-5.3L21 6zm-4.1 11.9L12 13V6c3.9 0 7 3.1 7 7 0 1.9-.8 3.7-2.1 4.9z'%3E%3C/path%3E%3C/g%3E%3C/svg%3E");
	--icon-globe: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='%23000000'%3E%3Cpath d='M11 12V8H7.6c-.4 1.2-.6 2.6-.6 4h4zM2 12h4c0-1.4.2-2.8.5-4H3.1c-.6 1.2-1 2.6-1.1 4zM6.5 17c-.3-1.2-.5-2.6-.5-4H2c.1 1.4.5 2.8 1.1 4h3.4zM16 12c0-1.4-.2-2.8-.5-4H12v4h4zM12 3.1V7h3.1c-.7-2.1-1.8-3.6-3.1-3.9zM16.2 7h3c-1.2-1.7-2.9-3-4.9-3.6.8.9 1.4 2.1 1.9 3.6zM11 7V3.1C9.7 3.4 8.6 4.9 7.9 7H11zM11 13H7c0 1.4.2 2.8.5 4H11v-4zM16.5 8c.3 1.2.5 2.6.5 4h4c-.1-1.4-.5-2.8-1.1-4h-3.4zM6.8 18h-3c1.2 1.7 2.9 3 4.9 3.6-.8-.9-1.4-2.1-1.9-3.6zM6.8 7c.5-1.5 1.1-2.7 1.9-3.6C6.7 4 5 5.3 3.8 7h3zM16.2 18c-.5 1.5-1.1 2.7-1.9 3.6 2-.6 3.7-1.9 4.9-3.6h-3zM12 18v3.9c1.3-.3 2.4-1.8 3.1-3.9H12zM21 13h-4c0 1.4-.2 2.8-.5 4h3.4c.6-1.2 1-2.6 1.1-4zM11 21.9V18H7.9c.7 2.1 1.8 3.6 3.1 3.9zM12 13v4h3.4c.3-1.2.5-2.6.5-4H12z'%3E%3C/path%3E%3C/g%3E%3C/svg%3E");
	--icon-eye: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='%23000000'%3E%3Cpath d='M12 7c5.79 0 9.14 3.91 9.91 5.13C21.33 13.51 18.67 17 12 17s-9.33-3.49-9.91-4.87C2.86 10.91 6.21 7 12 7m0-2C4.37 5 0 11 0 12s2.71 7 12 7 12-6 12-7-4.37-7-12-7zm0 2c-2.76 0-5 2.24-5 5s2.24 5 5 5 5-2.24 5-5-2.24-5-5-5zm3 6c-1 0-3-3-3-4s1.7-.3 2.71.71S16 13 15 13z'%3E%3C/path%3E%3C/g%3E%3C/svg%3E");
	--icon-graduation: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='%23000000'%3E%3Cpath d='M5 13.1V16c0 3 2.6 4 7 4s7 0 7-3v-3.9L12 16l-7-2.9z'%3E%3C/path%3E%3Cpath d='M22 15V9.8l2-.8-12-5L0 9l12 5 9-3.8V15c-1 .2-1 1.1-1 2v3h3v-3c0-.9 0-1.7-1-2z'%3E%3C/path%3E%3C/g%3E%3C/svg%3E");
	--icon-lightning: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='%23000000'%3E%3Cpath d='M22 8h-9l4-6h-6L3 14h7l-6 9z'%3E%3C/path%3E%3C/g%3E%3C/svg%3E");
	--content-width: 800px;
}

html.default-theme {
	--background-color: #FFFBFC;
	--secondary-bg-color: #e5e5e5;
	--selected-color: #e5e5e5;
	--main-color: #14213d;
	--text-color: #14213d;
	--featured-color: #0077b6;
	--black-to-text-filter: invert(8%) sepia(51%) saturate(1848%) hue-rotate(200deg) brightness(99%) contrast(92%);;
	--black-to-bg-filter: invert(100%) sepia(62%) saturate(587%) hue-rotate(287deg) brightness(100%) contrast(110%);
	--black-to-featured-filter: invert(26%) sepia(98%) saturate(1797%) hue-rotate(181deg) brightness(94%) contrast(101%);
}

@media(max-width: 800px){
	:root {
		--content-width: 100%;
	}
}

html,body {
	color: var(--text-color);
	text-size-adjust: none;
	-webkit-text-size-adjust: none;
	-moz-text-size-adjust: none;
	-ms-text-size-adjust: none;
}

body{
	min-height: 100vh;
	background-color: var(--background-color);
}

button{
	border: none;
	background-color: transparent;
	padding: 16px 25px;
	font-weight: 400;
	font-size: 1.1rem;
	transition-property: box-shadow, transform, background-color;
	transition-duration: 150ms;
	transition-timing-function: ease-out;
	border-radius: 2px;
	box-shadow: 0px 0px 0px 0px rgba(0,0,0,0.35);
	color: var(--text-color);
	cursor: pointer;
}

button:disabled{
	background-color: var(--secondary-bg-color);
	cursor: default;
}

button:disabled > *{
	opacity: .6;
}

button:hover:not(:disabled){
	background-color: inherit;
	box-shadow: 2px 2px 8px 0px rgba(0,0,0,0.35);
}

button.selected:not(:disabled){
	background-color: var(--selected-color);
	transition-duration: 0ms;
	transform: translate(0, 0);
}

button:hover:not(:disabled){
	transform: translate(-2px, -2px);
	transition-duration: 150ms;
}

button:active:not(:disabled){
	background-color: var(--selected-color);
	box-shadow: 0px 0px 0px 0px rgba(0,0,0,0.35);
	transition-duration: 0ms;
	transform: translate(0, 0);
}

button .text{
	display: inline-block;
	vertical-align: middle;
}

button.highlighted{
	border: 1px solid var(--featured-color);
	color: var(--featured-color);
}

button.highlighted:hover{
	border: 1px solid var(--featured-color);
	background-color: var(--featured-color);
	transform: translate(-4px, -4px);
	box-shadow: 2px 2px 8px 0px rgba(0,0,0,0.55);
	color: var(--background-color);
}

button.highlighted:active:not(:disabled){
	box-shadow: 0px 0px 0px 0px rgba(0,0,0,0.35);
	transition-duration: 0ms;
	transform: translate(0, 0);
}

button.featured{
	background-color: var(--featured-color);
	color: var(--background-color);
}

button.featured:hover:not(:disabled){
	background-color: var(--featured-color);
	box-shadow: 2px 2px 8px 0px rgba(0,0,0,0.35);
}

button.featured:active:not(:disabled){
	box-shadow: 0px 0px 0px 0px rgba(0,0,0,0.35);
	transition-duration: 0ms;
	transform: translate(0, 0);
}


body.mobile button{
	transition: none !important;
	transform: none !important;
}

.icon{
	display: inline-block;
	width: 1em;
	height: 1em;
	background-size: 100%;
	vertical-align: middle;
	margin: 0 8px;
	filter: var(--black-to-text-filter);
	background-position: center;
	background-repeat: no-repeat;
}

.icon.globe{
	background-image: var(--icon-globe);
}

.icon.lightning{
	background-image: var(--icon-lightning);
	background-size: 80%;
}

.icon.eye{
	background-image: var(--icon-eye);
}

.icon.graduation{
	background-image: var(--icon-graduation);
}

button.featured .icon{
	filter: var(--black-to-bg-filter);
}

button .icon:last-child{
	margin-right: 0;
}

button .icon:first-child{
	margin-left: 0;
}

h1{
	line-height: 150%;
	font-size: 2.35rem;
    font-weight: 500;
}

h2{
	line-height: 150%;
    font-size: 1.6rem;
    font-weight: 500;
}

small{
	font-size: .78em;
	color: gray;
}

img.replace-black{
	filter: var(--black-to-text-filter);
}

.hidden{
	display: none !important;
}


.card{
	background-color: var(--background-color);
	box-shadow: 2px 2px 8px 0px rgba(0,0,0,0.7);
	border-radius: 5px;
	padding: 15px;
	margin: 10px;
}


main{
	display: grid;
	grid-template-rows: 1fr;
	align-items: center;
	justify-items: center;
	height: 100vh;
	width: 100%;
	transition-property: opacity;
	transition-duration: 300ms;
	transition-timing-function: ease-out;
	overflow: hidden auto;
}

main.faded{
	opacity: 0;
}

header, footer{
	width: 100%;
	height: 70px;
}

header {
	background: linear-gradient(180deg, rgba(255,251,252,1) 0%, rgba(255,251,252,1) 57%, rgba(255,251,252,0.31414572665003504) 92%, rgba(255,251,252,0) 100%);
}

header .logo{
	display: inline-block;
	padding: 10px;
	user-select: none;
	color: inherit;
	text-decoration: inherit;
}

header .logo .icon{
	background-image: url("../img/logo.png");
	width: 47px;
	height: 47px;
	margin: 0;
	margin-right: 7px;
}

header .logo .text{
	font-weight: 600;
	font-size: 1.4rem;
	vertical-align: middle;
}

.page-bg{
	position: fixed;
	top: 0;
	left: 0;
	z-index: -1;
	width: 100%;
	height: 100%;
	background-color: var(--background-color);
}

.page-bg .particles-js-canvas-el{
	transition: transform 1.4s ease-out;
	transform: scale(0);
}

.page-bg .particles-js-canvas-el.loaded{
	transform: scale(1);
}

.announcement{
	opacity: 1;
	text-align: center;
	width: 100%;
}

.announcement .announcement-body{
	width: 100%;
	max-width: 1200px;
	margin: auto;
}

.announcement .announcement-body .big-logo{
	padding-top: 360px;
	margin: auto;
	max-width: 800px;
	width: 100%;
	background-image: url("../img/full_logo.png");
	background-repeat: no-repeat;
	background-position: center;
	background-size: 100% auto;
	margin-bottom: -52px;
	filter: var(--black-to-text-filter);
}

@media(max-width: 800px){
	.announcement .announcement-body .big-logo{
		padding-top: 50%;
		background-size: 160% auto;
		margin-bottom: 0;
		margin-top: 30px;
		background-position: center top;
	}
}

@media(max-width: 500px){
	.announcement h1{
		font-size: 1.7rem;
	}
}

.announcement .announcement-body .description{
	line-height: 140%;
	margin: 5px 10px 20px 10px;
}

.announcement .start-test{
	padding: 14px 70px 18px 70px;
}

.announcement .start-test .icon{
	background-image: var(--icon-right);
	filter: var(--black-to-bg-filter);
	position: relative;
	top: 2px;
	margin: 0;
}

.announcement .describers{
	display: grid;
	grid-template-columns: 1fr 1fr 1fr 1fr;
	justify-items: center;
	position: relative;
	margin: 50px 0;
}

.announcement .describers > .item{
	max-width: 300px;
	padding: 10px;
	box-sizing: border-box;
}

.announcement .describers > .item > .icon{
	width: 70px;
	height: 70px;
	margin: 10px;
}

.announcement .describers h4{
	font-size: 1.5rem;
	font-weight: 500;
	line-height: 130%;
}

.announcement .describers p{
	line-height: 140%;
}

@media(min-width: 1201px){
	.announcement .describers{
		left: calc(0px - (90vw - 100%) / 2);
		width: 90vw;
	}
}

@media(max-width: 800px){
	.announcement .describers{
		grid-template-columns: 1fr 1fr;
	}
	
	.announcement .describers > .item{
		max-width: 100%;
	}
}

@media(max-width: 400px){
	.announcement .describers{
		grid-template-columns: 100%;
	}
}




.test-container{
	display: grid;
	align-items: center;
	justify-items: center;
	grid-template-columns: 1fr;
	grid-template-rows: 1fr;
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	overflow: hidden;
}

.test-container.hidden{
	display: block !important;
	width: 0;
	height: 0;
}

.tester-page{
	grid-column-start: 1;
	grid-column-end: 2;
	grid-row-start: 1;
	grid-row-end: 2;
	width: 100%;
	height: 100%;
	overflow-y: auto;
	box-sizing: border-box;
	background-color: transparent;
	z-index: -1;
	opacity: 0;
	pointer-events: none;
	transition-property: opacity;
	transition-duration: 300ms;
	transition-timing-function: ease-out;
	backdrop-filter: none;
}

.tester-page.active{
	opacity: 1;
	z-index: 1;
	pointer-events: auto;
}


.tester-page.intro{
	display: grid;
	grid-template-columns: 1fr;
	align-items: center;
	justify-items: center;
}

body.desktop .tester-page.intro.active{
	backdrop-filter: blur(2px);
}

.tester-page.intro .instruction{
	width: var(--content-width);
	text-align: center;
	box-sizing: border-box;
	padding: 1rem .4rem 0 .4rem;
}

.tester-page.intro p{
	text-align: left;
	margin: 15px 0;
	font-size: 1.1rem;
}

.tester-page.intro img{
	max-width: 100%;
}

.tester-page.intro .btn-panel{
	background: linear-gradient(0deg, rgba(255,251,252,1) 0%, rgba(255,251,252,1) 57%, rgba(255,251,252,0.31414572665003504) 92%, rgba(255,251,252,0) 100%);
	position: sticky;
	bottom: 0;
	padding: 20px 0;
}

.tester-page.intro button.start .icon{
	background-image: var(--icon-right);
}



.tester-page.questions{
	user-select: none;
	background-color: var(--background-color);
	display: grid;
	grid-template-columns: 1fr;
	grid-template-rows: auto 1fr;
	gap: 20px;
	backdrop-filter: none;
	padding: 25px 0;
}

.questions-list{
	display: grid;
	grid-template-rows: 1fr;
	grid-template-columns: 1fr;
	align-items: center;
	justify-items: center;
}

.question{
	grid-column-start: 1;
	grid-column-end: 2;
	grid-row-start: 1;
	grid-row-end: 2;
	width: var(--content-width);
	transform-origin: center;
	transition: opacity 150ms 50ms, transform 150ms 50ms, margin-top 0ms 0ms;
	margin-top: 0;
}

.question:not(.selected){
	z-index: -1;
	transform: scale(.95);
	opacity: 0;
	transition: opacity 50ms 0ms, transform 50ms 0ms, margin-top 0ms 300ms;
	pointer-events: none;
	margin-top: -1000px; /* trick to avoid hidden questions expanding the page */
	overflow: hidden;
}

body.mobile .question{
	transition: none;
}

body.mobile .question:not(.selected){
	display: none;
}

.question-img-wrapper, .answer-img-wrapper{
	margin: auto;
	overflow: hidden;
	position: relative;
}

.question-img-wrapper > img, .answer-img-wrapper > img{
	position: absolute;
}

.question[data-answers_amount="8"] > .question-img-wrapper{
	width: 290px;
	height: 240px;
}

.question[data-answers_amount="8"] > .question-img-wrapper .question-img{
	top: -2px;
	left: -2px;
}

.question[data-answers_amount="8"] .answer-img-wrapper{
	width: 120px;
	height: 72px;
}

.question[data-answers_amount="8"] .answer:nth-child(1) .answer-img{
	top: -270px;
	left: 0px;
}

.question[data-answers_amount="8"] .answer:nth-child(2) .answer-img{
	top: -270px;
	left: -121px;
}

.question[data-answers_amount="8"] .answer:nth-child(3) .answer-img{
	top: -270px;
	left: -242px;
}

.question[data-answers_amount="8"] .answer:nth-child(4) .answer-img{
	top: -270px;
	left: -363px;
}

.question[data-answers_amount="8"] .answer:nth-child(5) .answer-img{
	top: -368px;
	left: 0px;
}

.question[data-answers_amount="8"] .answer:nth-child(6) .answer-img{
	top: -368px;
	left: -121px;
}

.question[data-answers_amount="8"] .answer:nth-child(7) .answer-img{
	top: -368px;
	left: -242px;
}

.question[data-answers_amount="8"] .answer:nth-child(8) .answer-img{
	top: -368px;
	left: -363px;
}


.question[data-answers_amount="6"] > .question-img-wrapper{
	width: 335px;
	height: 210px;
}

.question[data-answers_amount="6"] > .question-img-wrapper .question-img{
	top: -2px;
	left: -2px;
}

.question[data-answers_amount="6"] .answer-img-wrapper{
	width: 130px;
	height: 82px;
}

.question[data-answers_amount="6"] .answer:nth-child(1) .answer-img{
	top: -245px;
	left: 0px;
}

.question[data-answers_amount="6"] .answer:nth-child(2) .answer-img{
	top: -245px;
	left: -150px;
}

.question[data-answers_amount="6"] .answer:nth-child(3) .answer-img{
	top: -245px;
	left: -300px;
}

.question[data-answers_amount="6"] .answer:nth-child(4) .answer-img{
	top: -358px;
	left: 0px;
}

.question[data-answers_amount="6"] .answer:nth-child(5) .answer-img{
	top: -358px;
	left: -150px;
}

.question[data-answers_amount="6"] .answer:nth-child(6) .answer-img{
	top: -358px;
	left: -300px;
}


.test-info{
	width: var(--content-width);
	margin: auto;
}

.test-info > .timer{
	display: grid;
	grid-template-columns: 70px 70px;
	justify-content: center;
	font-weight: 400;
	padding: 12px 0;
	gap: 10px;
	text-align: center;
}

.test-info > .timer .time-left.ending{
	animation: blinking 1s infinite;
}

.test-info > .progress{
	overflow: hidden;
	position: relative;
	margin-top: 15px;
	margin-bottom: 20px;
	width: 100%;
}

.test-info > .progress .slider{
	position: relative;
	top: 0;
	left: 0;
	width: calc(100% * 5);
	transition-property: left;
	transition-duration: 300ms;
	transition-timing-function: ease-out;
}

.milestone-line{
	display: inline-block;
	width: 20%;
	height: 30px;
	text-align: center;
	position: relative;
}

.milestone-line .point{
	display: inline-block;
	width: 30px;
	height: 30px;
	box-sizing: border-box;
	margin: 0 calc((100% - 30px * 12) / 24);
	border-radius: 50%;
	background-color: transparent;
	position: relative;
	overflow: visible;
}

.milestone-line .point.accessible{
	cursor: pointer;
}

.milestone-line .point.accessible:hover{
	background-color: rgba(0,0,0,.05);
}

.milestone-line .point::before{
	content: "";
	display: block;
	position: absolute;
	top: calc((100% - 15px) / 2);
	left: calc((100% - 15px) / 2);
	width: 15px;
	height: 15px;
	background-color: var(--secondary-bg-color);
	border-radius: 50%;
	opacity: 1;
	transition-property: opacity;
	transition-duration: 200ms;
	transition-timing-function: linear;
}

.milestone-line .point.active::before{
	opacity: 0;
}

.milestone-line .point.current::before{
	opacity: 0;
}

.milestone-line .point::after{
	content: "";
	display: block;
	position: absolute;
	top: 50%;
	left: 50%;
	width: 0;
	height: 0;
	background-color: var(--main-color);
	transition-property: top, left, width, height, border-width, opacity;
	transition-duration: 100ms;
	transition-timing-function: linear;
	border-radius: 50%;
	box-sizing: border-box;
	border: 0 solid var(--background-color);
	opacity: 0;
}

body.mobile .milestone-line .point::after{
	transition: none;
}

.milestone-line .point.active::after{
	top: calc((100% - 18px) / 2);
	left: calc((100% - 18px) / 2);
	width: 18px;
	height: 18px;
	border-width: 2px;
	opacity: 1;
}

.milestone-line .point.current::after{
	top: calc((100% - 24px) / 2);
	left: calc((100% - 24px) / 2);
	width: 24px;
	height: 24px;
	border-width: 2px;
	opacity: 1;
}

.milestone-line .progressbar{
	position: absolute;
	height: 4px;
	width: calc(100% / 12 * 11);
	top: calc(50% - 2px);
	left: calc(100% / 24);
	background-color: var(--secondary-bg-color);
	overflow: hidden;
}

.milestone-line .progressline{
	background-color: var(--main-color);
	height: 100%;
	width: 0;
	transition-property: width;
	transition-duration: 100ms;
	transition-timing-function: linear;
}

body.mobile .milestone-line .progressline{
	transition: none;
}

.test-info .sets{
	width: 60%;
	height: 45px;
	margin: auto;
}

.test-info .set{
	display: inline-grid;
	position: relative;
	padding: 0;
	width: 20%;
	height: 100%;
	grid-template-rows: 1fr;
	align-content: center;
	align-items: center;
	border-radius: 0;
	box-sizing: border-box;
	border-top: 2px solid var(--secondary-bg-color);
}

.test-info .set:hover{
	z-index: 1;
}

.test-info .set .set-name{
	display: block;
	font-weight: 400;
	position: relative;
	z-index: 1;
}

.test-info .set .set-progress{
	position: absolute;
	width: 100%;
	height: 5px;
	top: -2px;
	left: 0;
}

.test-info .set .set-progress .set-progress-line{
	height: 100%;
	width: 0%;
	background: linear-gradient(180deg, rgba(20,33,61,1) 0%, rgba(20,33,61,1) 12%, rgba(20,33,61,0) 100%);
	transition-property: width;
	transition-duration: 100ms;
	transition-timing-function: linear;
}

.test-info .buttons{
	text-align: center;
	height: 60px;
}

.test-info .buttons button{
	width: 170px;
	margin: 0 5px;
}

button.prev .icon{
	background-image: var(--icon-left);
}
button.next .icon{
	background-image: var(--icon-right);
}
button.finish .icon{
	background-image: var(--icon-done);
}


.question .answers{
	text-align: center;
	margin: 20px auto;
}

.question[data-answers_amount="6"] .answers{
	max-width: 600px;
}

.question .answer{
	display: inline-grid;
	align-content: center;
	justify-content: center;
	width: 150px;
	height: 150px;
	margin: 10px;
}



.tester-page.paywall{
	display: grid;
	grid-template-columns: auto;
	align-items: center;
	justify-items: center;
	gap: 20px;
	background-color: var(--background-color);
	backdrop-filter: none;
}

.tester-page.paywall .paywall-animation{
	position: relative;
	transform: scale(.85);
	opacity: 0;
	transition-duration: 400ms;
	transition-timing-function: ease-out;
	transition-property: opacity, transform;
}

.tester-page.paywall.active .paywall-animation{
	transform: scale(1);
	opacity: 1;
}

.milestone-list{
	font-size: 2.1rem;
}

.milestone-list li{
	transition-property: opacity;
	transition-duration: 150ms;
	transition-timing-function: linear;
	color: var(--text-color);
	opacity: 1;
}

.milestone-list li:not(.active):not(.complete) > span{
	opacity: .35;
}

.milestone-list li{
	display: grid;
	grid-template-columns: auto auto;
	justify-content: start;
	align-items: center;
}

.milestone-list li .bullet{
	position: relative;
	display: grid;
	grid-template-columns: 1fr;
	align-items: center;
	justify-items: center;
	height: 100%;
}

.milestone-list li .bullet::before, .milestone-list li .bullet::after{
	content: "";
	position: absolute;
	display: block;
	width: 6px;
	height: 100%;
	top: 0;
	left: calc(50% - 3px);
	z-index: -1;
}

.milestone-list li:first-child .bullet::before, .milestone-list li:first-child .bullet::after{
	clip-path: inset(50% 0 0 0);
}

.milestone-list li:last-child .bullet::before, .milestone-list li:last-child .bullet::after{
	clip-path: inset(0 0 50% 0);
}

.milestone-list li .bullet::before{
	background-color: var(--secondary-bg-color);
}

.milestone-list li .bullet::after{
	padding-bottom: 100%;
	box-sizing: border-box;
	background-clip: content-box;
	background-color: var(--main-color);
	transition-delay: 0ms;
	transition-property: padding-bottom;
	transition-duration: 60ms;
	transition-timing-function: linear;
}

.milestone-list li.active .bullet::after{
	transition-delay: 360ms;
	padding-bottom: 50%;
}

.milestone-list li.complete .bullet::after{
	transition-delay: 300ms;
	padding-bottom: 0%;
}

.milestone-list .point{
	display: grid;
	align-items: center;
	justify-items: center;
	width: 100px;
	height: 100px;
}

@media(max-width: 800px){
	.milestone-list{
		font-size: 1.4rem;
	}
	
	.milestone-list li .bullet::before, .milestone-list li .bullet::after{
		left: calc(30px - 2px);
		width: 4px;
	}
	
	.milestone-list .point{
		width: 60px;
		height: 60px;
	}
}

.milestone-list .point::before, .milestone-list .point::after{
	content: "";
	grid-column-start: 1;
	grid-column-end: 2;
	grid-row-start: 1;
	grid-row-end: 2;
	display: block;
}

.milestone-list .point::before{
	background-color: var(--secondary-bg-color);
	border-radius: 50%;
	width: 100%;
	height: 100%;
	transform: scale(.26);
	transform-origin: center;
	transition: transform 350ms cubic-bezier(.79,2,.81,.84), background-color 150ms 380ms ease-out;
	border: 8px solid var(--background-color);
}

.milestone-list li.active .point::before{
	background-color: var(--main-color);
}

.milestone-list li.complete .point::before{
	background-color: var(--main-color);
	transform: scale(.36);
}

.milestone-list .point::after{
	width: 100%;
	height: 100%;
	transform: scale(.2);
	background-image: var(--icon-done);
	filter: var(--black-to-bg-filter);
	opacity: 0;
	transition-delay: 100ms;
	transition-property: opacity;
	transition-duration: 300ms;
	transition-timing-function: ease-out;
	z-index: 1;
}

.milestone-list li.complete .point::after{
	opacity: 1;
}


.paywall-panel{
	overflow: hidden;
	display: grid;
	width: 100%;
	align-self: start;
	grid-template-columns: auto;
	align-items: center;
	align-content: center;
	justify-items: center;
	justify-content: center;
	transition-property: height, opacity;
	transition-timing-function: ease-out;
	transition-duration: 300ms;
}

.paywall-panel > *{
	grid-column-start: 1;
	grid-column-end: 2;
	grid-row-start: 1;
	grid-row-end: 2;
}

.paywall-panel > *:not(.shown){
	display: none;
}

.paywall-panel:not(.active){
	height: 0;
	opacity: 0;
}

.paywall-panel fieldset{
	padding: 20px 40px;
	margin: 10px;
	text-align: center;
}

.paywall-panel form button[type="submit"]{
	padding: 8px;
	vertical-align: middle;
	margin-left: 10px;
}

.paywall-panel form button[type="submit"] .icon{
	background-image: var(--icon-right);
	width: 1.6em;
	height: 1.6em;
}

.paywall-panel form legend{
	font-weight: 400;
	font-size: 1.07em;
	float: left;
	width: 100%;
	padding-bottom: 12px;
}

.paywall-panel form input[type="text"]{
	font-family: inherit;
	font-weight: 500;
	font-size: 1.2em;
	vertical-align: middle;
	border: 1px solid var(--main-color);
	padding: .25em .4em;
}

.paywall-panel form input[type="text"]:disabled{
	background-color: var(--secondary-bg-color);
}

.paywall-panel form.age input[type="text"]{
	width: 60px;
}

.paywall-panel form.name input[type="text"]{
	max-width: 70%;
}


.payment-options{
	display: grid;
	grid-template-columns: 1fr 1fr 1fr;
	gap: 50px 40px;
	padding: 40px 20px;
}

.payment-options:not(.shown){
	display: grid;
	visibility: hidden;
}

.payment-options .payment-option{
	max-width: 400px;
	margin: 0;
	box-sizing: border-box;
	position: relative;
	opacity: 0;
	transform: scale(.8);
	transform-origin: center;
	transition-property: transform, opacity;
	transition-timing-function: ease-out;
	transition-duration: 400ms;
	transition-delay: 300ms;
	background-color: var(--background-color);
	box-shadow: 2px 2px 8px 0px rgba(0,0,0,0.7);
	border-radius: 5px;
}

@media(min-width: 801px){
	.payment-options .payment-option:nth-child(1){
		transform: scale(.9) translateX(50%);
		transition-delay: 450ms;
	}
	
	.payment-options .payment-option:nth-child(2){
		transform: scale(.7);
		transition-delay: 300ms;
	}
	
	.payment-options .payment-option:nth-child(3){
		transform: scale(.9) translateX(-50%);
		transition-delay: 450ms;
	}
	
}

.payment-options.shown .payment-option:nth-child(2){
	z-index: 1;
	transform: scale(1.1);
}

.payment-options.shown .payment-option{
	opacity: 1;
	transform: scale(1);
}

.payment-options .payment-option.featured::before{
	content: "Most popular";
	text-transform: uppercase;
	display: inline-block;
	position: absolute;
	top: 0;
	left: 50%;
	transform: translateX(-50%) translateY(-50%);
	background-color: var(--featured-color);
	color: var(--background-color);
	font-size: .63rem;
	border-radius: 1em;
	padding: 4px 25px;
}

@media(max-width: 800px){
	.payment-options{
		grid-template-columns: 100%;
	}
	
	.payment-options .payment-option{
		max-width: none;
		width: 100%;
	}
}

.payment-options .payment-option .header{
	display: grid;
	grid-template-columns: 1fr auto;
	align-items: center;
	margin-bottom: 7px;
	margin: 15px 15px 0 15px;
}

.payment-options .payment-option .name{
	font-weight: 700;
	font-size: 1.9rem;
}

.payment-options .payment-option .price{
	font-size: 1.35rem;
	font-weight: 400;
}

.payment-options .payment-option .description{
	font-size: .78em;
	color: gray;
	line-height: 115%;
	height: 60px;
	margin: 0 15px;
}

.payment-options .payment-option .inner-body{
	padding-bottom: 15px;
	box-shadow: 0px 11px 11px -10px rgba(0,0,0,0.15) inset;
	background-color: var(--secondary-bg-color);
	padding-top: 11px;
}

.payment-options .payment-option .features{
	height: 260px;
	margin: 0 15px;
}

.payment-options .payment-option .features h4{
	font-weight: 500;
	font-size: 1.22rem;
	margin-bottom: 11px;
}

.payment-options .payment-option .features li{
	margin: 12px 0;
}

.payment-options .payment-option .features .feature-name{
	vertical-align: middle;
	font-size: 1.1em;
}

.payment-options .payment-option .features li:before{
	content: "";
	display: inline-block;
	width: 1em;
	height: 1em;
	background-image: var(--icon-done);
	vertical-align: middle;
	background-repeat: no-repeat;
	background-size: 88%;
	background-position: 50%;
	filter: var(--black-to-text-filter);
}

.payment-options .payment-option .choose{
	display: block;
	margin: auto;
}


.timeout-modal{
	position: fixed;
	top: 0;
	left: 0;
	z-index: 1000;
}

.timeout-modal .backdrop{
	width: 100vw;
	height: 100vh;
	background-color: rgba(0,0,0,.3);
	transition-property: opacity;
	transition-timing-function: ease-out;
	transition-duration: 150ms;
}

.timeout-modal .modal{
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translateX(-50%) translateY(-50%);
	transform-origin: center;
	text-align: center;
	padding: 30px 60px 10px 60px;
	transition-property: transform, opacity;
	transition-timing-function: ease-out;
	transition-duration: 150ms;
}

.timeout-modal:not(.shown) .backdrop{
	opacity: 0;
}

.timeout-modal:not(.shown) .modal{
	opacity: 0;
	transform: translateX(-50%) translateY(-50%) scale(.7);
}

.timeout-modal .modal > .icon{
	width: 50px;
	height: 50px;
	margin: auto;
	background-image: var(--icon-timer);
}

.timeout-modal .message{
	font-weight: 900;
	font-size: 1.2rem;
}

.timeout-modal .finish{
	margin: 15px;
}



/* Result page */

.result-page{
	display: grid;
	align-content: center;
	min-height: calc(100vh - 70px);
	background-image: url("../img/circuit_bg.png");
	background-position: center;
	background-repeat: no-repeat;
}

.result.expired{
	text-align: center;
	padding: 50px 0;
}

.result.expired .desc{
	font-weight: 400;
	margin-bottom: 10px;
	font-size: 2.3rem;
}

.result.expired button.main-page:hover{
	background-color: var(--background-color);
}


.result.plain{
	text-align: center;
	padding: 50px 0;
}

.result.plain .name{
	font-weight: 600;
	margin-bottom: 10px;
	font-size: 2.3rem;
}

.result.plain .desc{
	font-weight: 400;
	margin-bottom: 10px;
}

.result.plain .score{
	font-weight: 900;
	font-size: 5.3rem;
}

.cert-wrapper{
	box-sizing: border-box;
	width: 1000px;
	max-width: 100vw;
	margin: 20px auto;
	display: block;
	position: relative;
}

.cert-wrapper::after{
	content: "";
	display: block;
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	opacity: 0;
	background-color: rgba(0, 0, 0, .4);
}

.cert-wrapper:hover::after{
	opacity: 1;
}

.cert-wrapper::before{
	content: "Click to Download";
	display: block;
	text-align: center;
	position: absolute;
	top: 50%;
	left: 0;
	opacity: 0;
	width: 100%;
	transform: translateY(-50%);
	color: white;
	font-weight: 400;
	z-index: 1;
	font-size: 2rem;
}

.cert-wrapper:hover::before{
	opacity: 1;
}

.cert-wrapper img{
	width: 100%;
	box-shadow: 0px 0px 16px 3px rgba(0,0,0,0.64);
}