.overlay{
	position: fixed;
	top: 0; right: 0; bottom: 0; left: 0;
	z-index: 1000;
	background-color: rgba(0, 0, 0, 0.6);
	visibility: hidden;
	opacity: 0;
	transition: 0.5s all ease;

	display: flex;
	flex-direction: row;
	flex-wrap: nowrap;
	justify-content: center;
	align-items: center;
}.overlay.visible{
	visibility: visible;
	opacity: 1;
}

	.overlay.visible > .message{
		visibility: visible;
		opacity: 1;
		transform: scale(1);
	}.overlay.visible > .message > h3, .overlay.visible > .message > p,
	.message-button{
		animation-name: animation-h3;
		animation-duration: 0.5s;
		animation-delay: 0.5s;
		animation-direction: normal;
		animation-iteration-count: 1;
		animation-timing-function: linear;
		animation-fill-mode: forwards;
	}.overlay.visible > .message > p{
		animation-name: animation-p;
		animation-delay: 1s;
	}.overlay.visible .message-button{
		animation-name: animation-button;
		animation-delay: 1.5s;
	}.tool-info{
		position: absolute;
		visibility: hidden;
		opacity: 0;
	}

	.message{
		display: block;
		width: 60%;
		height: 50vh;
		padding: 3rem 6rem;
		background-color: var(--white);
		box-shadow: 0 0.3rem 1rem rgba(0, 0, 0, 0.6);
		border-radius: 0.6rem;
		visibility: hidden;
		opacity: 0;
		transform: scale(0);
		transition: 600ms all ease;
		overflow: auto;
	}.message > h3{
		text-align: center;
		font-size: 3rem;
		letter-spacing: 0.2rem;
		font-family: "IbmPlexMono";
		text-shadow: 0 0 1rem var(--brown-1);
		transform: scale(0) rotate(360deg);
	}.message > p{
		letter-spacing: 0.1rem;
		font-size: 1.4rem;
		font-family: "RobotoThin";
		font-weight: bold;
		text-align: justify;
		line-height: 2.3rem;
		margin: 2rem 0;
		text-align: center;
		opacity: 0;
		visibility: hidden;
	}.message-button{
		padding: 1rem 0;
		text-align: center;
		opacity: 0;
		visibility: hidden;
	}.message-button input{transition: 500ms all ease;}

.cont-tools{
	width: 100%;
	margin: 3rem 0;
	padding: 2rem;

	display: grid;
	grid-template-columns: repeat(3, minmax(calc(100%/3), calc(100%/3)));
	grid-template-rows: minmax(10rem, 10rem) repeat(2, minmax(39rem, 39rem));
	grid-auto-columns: calc(100%/4);
	grid-auto-rows: minmax(39rem, 39rem);
	grid-gap: 0;
	grid-column-gap: 0; grid-row-gap: 3rem;
}

	.tools-title{
		grid-column: 1/4;
		grid-row: 1/2;
	}.tools-title > article{
		width: 70%;
		margin: auto;
		padding: 3rem;
		background-color: var(--white);
		box-shadow: 0.3rem 0.3rem 0.3rem rgba(0,0,0,0.1);
		text-align: center;
		font-weight: bold;
		letter-spacing: 0.2rem;
		border-radius: 0.3rem;
	}.tools-title article h1{
		font-size: 2.6rem;
		font-family: "IbmPlexMonoItalic";
	}.tools-title article h3{
		margin-top: 1rem;
		font-size: 1.4rem;
		font-family: "IbmPlexMono";
	}

		#idName{
			color: var(--brown1);
			text-shadow: 0.2rem 0.2rem 0.1rem var(--brown);
		}

	.sub-cont-tool{
		padding: 1rem;

		display: flex;
		flex-direction: row;
		flex-wrap: wrap;
	}

		.tool{
			display: block;
			flex-basis: 100%;
			margin: 0 auto;
			background-color: var(--white);
			box-shadow: 
				0.2rem 0 0.3rem rgba(0, 0, 0, 0.1),
				-0.2rem 0 0.3rem rgba(0, 0, 0, 0.1),
				0 0.4rem 0.3rem rgba(0, 0, 0, 0.1),
				0 -0 0 rgba(0, 0, 0, 0.1);

			border-radius: 0.6rem;
			user-select: none;
			overflow: hidden;
		}

			.tool-footer{
				text-align: center;
			}

				.tool-validate{
					padding: 0 2rem 0 2rem;

					display: flex;
					flex-direction: row;
					flex-wrap: wrap;
					justify-content: space-between;
				}.tool-validation{
					align-self: center;

					padding: 0.1rem 2rem;
					color: var(--white);
					letter-spacing: 0.1rem;
					text-align: center;
					background-color: #00A3FF;
					border-radius: 30rem;
					font-weight: bold;
					font-family: "IbmPlexMono";
				}

				.tool-validate > div > img{
					cursor: pointer;
					background-image: url('../images/star-true.png');
				}

				.tool-footer > p{
					padding: 1.3rem 0;
					text-align: center;
					letter-spacing: 0.1rem;
					font-size: 1.4rem;
					font-family: "RobotoThin";
					font-weight: bold;
					user-select: text;
				}.tool-button{
					padding-top: 1rem;
					padding-bottom: 0.6rem;
				}.tool-footer > div input, .message-button input{
					display: inline-block;
					margin: 0.5rem 0.5rem;
					padding: 1.3rem 4rem;
					color: var(--white);
					font-size: 1.3rem;
					letter-spacing: 0.1rem;
					border-radius: 0.3rem;
					border: none;
					cursor: pointer;
				}

				.button-blue{
					background-color: #00A3FF;
				}.button-blue:hover{
					background-color: #0C95E0;
				}

				.button-gray{
					background-color: #7A939F;

					/* This (important) have styles for 
					default in (tool-footer > div > input). */
					padding-right: 2rem !important;
					padding-left: 2rem !important;
				}.button-gray:hover{
					background-color: #617A86;
				}

.cont-account{
	margin: 3rem 0;
}

	.account{
		padding: 3rem 2rem;
		background-color: var(--white);
		box-shadow: 0 0.3rem 0.3rem rgba(0, 0, 0, 0.1);
	}

		.account-header{
			margin-bottom: 3rem;
		}.account-group-h{
			padding: 1rem;
			text-align: center;
		}.account-group-h h1{
			font-size: 3rem;
			font-family: "IbmPlexMonoItalic";
			letter-spacing: 0.2rem;
			margin-bottom: 0.6rem;
			color: var(--brown1);
			text-shadow: 0 0 1rem var(--brown);
		}.account-group-h h3{
			margin: 0.4rem;
			font-family: "IbmPlexMono";
			letter-spacing: 0.1rem;
			color: var(--brown);
			text-shadow: 0 0 1rem var(--brown1);
		}

		.account-body{
			padding: 1rem 3rem;
			letter-spacing: 0.1rem;
			line-height: 2.3rem;
			font-size: 1.4rem;
			font-family: "RobotoThin";
			font-weight: bold;
			text-align: justify;
		}

		.account-footer{
			padding: 3rem;
		}

			.account-buttons{
				text-align: center;
				padding: 1rem 0;
			}.account-buttons a{
				text-decoration: none;
			}

@keyframes animation-h3{
	from{
		opacity: 0;
		visibility: hidden;
		transform: scale(0) rotate(360deg);
	}

	to{
		opacity: 1;
		visibility: visible;
		transform: scale(1) rotate(0);
	}
}

@keyframes animation-p{
	from{
		opacity: 0;
		visibility: hidden;
		transform: translateY(2rem);
	}

	to{
		opacity: 1;
		visibility: visible;
		transform: translate(0);
	}
}

@keyframes animation-button{
	from{
		opacity: 0;
		visibility: hidden;
		transform: translateY(-2rem);
	}

	to{
		opacity: 1;
		visibility: visible;
		transform: translateY(0);
	}
}

@media screen and (max-width: 920px){
	.tool-validate{
		justify-content: center;
	}
}

@media screen and (max-width: 850px){
    
    .message{width: 80%;}

	.tools-title{
		grid-column: 1/3;
		grid-row: 1/2;
	}

	.cont-tools{
		grid-template-columns: repeat(2, minmax(50%, 50%));
		grid-template-rows: minmax(15rem, 15rem) repeat(3, minmax(39rem, 39rem));
		grid-auto-columns: calc(100%/2);
	}
}

@media screen and (max-width: 580px){
    .message{
        width: 100%;
        border-radius: 0;
        padding: 3rem 1.6rem;
        overflow: initial;
    }
    
	.cont-tools{
		grid-template-columns: 1fr;
		grid-template-rows: minmax(15rem, 15rem) repeat(6, minmax(39rem, 39rem));
		grid-auto-columns: 100%;
		grid-row-gap: 5rem;
	}

		.tools-title{
			grid-column: 1/2;
			grid-row: 1/2;
		}.tools-title > article{
			width: 100%;
			padding: 1rem;
		}.tools-title > article h1{
			font-size: 2rem;
		}.tools-title > article h3{
			font-size: 1.3rem;
		}
}

@media screen and (max-width: 320px){
	.cont-tools{
		padding: 0;
		grid-template-rows: minmax(6rem, 6rem) repeat(6, min(39rem, 39rem));
	}
}

@media screen and (max-width: 270px){
	.cont-tools{
		grid-row-gap: 9rem;
	}

		.sub-cont-tool{padding: 0;}

	.tools-title > article h1{
		font-size: 1.3rem;
	}.tools-title > article h3{
		font-size: 0.9rem;
	}
}