:root {
	--gallery-current-height: 80vh;
	--gallery-others-height: 75vh;
	--gallery-image-spacing: 6rem;

	--service-image-slider-height: 0;
}

body {
	overflow-x: hidden;
}

.page-content {
	margin-top: var(--navbar-height);
}

.page-content > section {
	height: calc(100vh - var(--navbar-height));
}

.scroll-separator {
	position: relative;
	top: calc(-1 * var(--navbar-height));
}

img {
	user-select: none;
}

.home-content {
	position: relative;
	top: 40vh;
	left: 15vw;
	transform: translateY(-50%);
	padding: 2rem;
	max-width: calc(70vw - 4rem);
}

.home-name {
	color: white;
	font-size: 5rem;
}

@keyframes home-profession-background {
	0% {
		background-position-x: 0%;
	}

	50% {
		background-position-x: 100%;
	}

	100% {
		background-position-x: 200%;
	}
}

.home-profession {
	display: inline;
	color: transparent;
	background: linear-gradient(150deg, rgb(100, 162, 255) 0%, rgb(213, 117, 187) 50%, rgb(100, 162, 255) 100%);
	background-clip: text;
	-webkit-background-clip: text;
	font-size: 5rem;
	font-family: JetBrainsMono;
	background-size: 200%;
	background-position-x: 0%;
	animation: home-profession-background 5s linear infinite;
}

#about-image:hover {
	content: url(/images/images/about-blurred.png);
}

.github-button {
	display: inline-flex;
	justify-content: center;
	align-items: center;
	font-size: 1.2rem;
	margin-top: 1.5rem;
	padding: 0.5rem 1rem;
	border-radius: 0.5rem;
	color: white;
	text-decoration: none;
	background-color: #24292F;
	border: none;
	transform: scale(1);
	transition: all 200ms ease;

}

.github-button:hover {
	transform: scale(1.02);
}

.github-button > img {
	width: 2rem;
	height: 2rem;
	padding: 0 8px 0 0;
}

.title-image-left, .title-image-right {
	transition: all 200ms ease;
}

.title-image-left:hover, .title-image-right:hover {
	transform: translateY(-50%) scale(1.02);
}

.title-image-left {
	position: relative;
	height: 30vw;
	aspect-ratio: 1;
	top: calc(50vh - var(--navbar-height) / 2);
	left: calc(15vw + 2rem);
	transform: translateY(-50%);
	border-radius: 2rem;
	object-fit: cover;
	float: left;
}

.description-right {
	width: 35vw;
	height: 70vh;
	position: relative;
	top: calc(50vh - var(--navbar-height) / 2);
	right: 15vw;
	transform: translateY(-50%);
	float: right;
	padding: 2rem;
	box-sizing: border-box;
	display: flex;
}

.description-right > div {
	margin: auto 0;
}

.description-right .heading {
	font-family: "JetBrainsMono";
	font-size: 2.5rem;
	color: var(--primary-color);
	text-decoration: underline 0.15rem dotted var(--primary-color);
	text-underline-offset: 0.25rem;
	margin-bottom: 1rem;
}

.description-right .text {
	color: var(--unhighlighted-color);
	font-size: 1.2rem;
}

.title-image-right {
	position: relative;
	height: 30vw;
	aspect-ratio: 1;
	top: calc(50vh - var(--navbar-height) / 2);
	right: calc(15vw + 2rem);
	transform: translateY(-50%);
	border-radius: 2rem;
	object-fit: cover;
	float: right;
}

.description-left {
	width: 35vw;
	height: 70vh;
	position: relative;
	top: calc(50vh - var(--navbar-height) / 2);
	left: 15vw;
	transform: translateY(-50%);
	float: left;
	padding: 2rem;
	box-sizing: border-box;
	display: flex;
}

.section-contact .description-left {
	height: initial;
	display: flex;
	flex-direction: column;
	justify-content: space-around;
	gap: 1rem;
}

.description-left > div {
	margin: auto 0;
}

.section-contact .description-left > div {
	margin: initial;
}

.description-left .heading {
	font-family: "JetBrainsMono";
	font-size: 2.5rem;
	color: var(--primary-color);
	text-decoration: underline 0.15rem dotted var(--primary-color);
	text-underline-offset: 0.25rem;
	margin-bottom: 1rem;
}

.description-left .text {
	color: var(--unhighlighted-color);
	font-size: 1.2rem;
}

.services-container {
	display: flex;
	flex-direction: column;
	gap: 1rem;
}

.service-card {
	display: flex;
	flex-direction: column;
	flex: 1 1 auto;
	border-radius: 1rem;
	transform: scale(1);
	transition: all 200ms ease;
}

.service-card:hover {
	transform: scale(1.02);
}


.service-image {
	height: 0;
	flex: 1 1 auto;
	object-fit: cover;
	border-radius: 0.5rem 0.5rem 0 0;
	transform: scale(1);
	transform-origin: bottom center;
	transition: all 200ms ease;
}

.service-image-slider {
	height: 0;
	flex: 1 1 auto;
	object-fit: cover;
	border-radius: 0.5rem 0.5rem 0 0;
	position: relative;
	transform: scale(1);
	transform-origin: bottom center;
	transition: all 200ms ease;
}

#service-image-slider {
	position: absolute;
	width: 100%;
	height: 100%;
	background: transparent;
	appearance: none;
}

#service-image-slider::-moz-range-thumb {
	appearance: none;
	width: 0.1rem;
	height: 100%;
	border: none;
	border-radius: 0;
	background-color: var(--unhighlighted-color);
}

#service-image-slider::-webkit-slider-thumb {
	-webkit-appearance: none;
	height: var(--service-image-slider-height);
	width: 0.1rem;
	border: none;
	border-radius: 0;
	background-color: var(--unhighlighted-color);
}

#service-image-slider-thumb {
	position: absolute;
	transform: translate(-50%, -50%);
	top: 50%;
	left: 50%;
	width: 2rem;
	height: 2rem;
	background-repeat: no-repeat;
	background-position: center;
	background-size: contain;
	filter: var(--unhighlighted-color-filter);
}

#service-image-slider-bg {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background-repeat: no-repeat;
	background-position: left;
	background-size: cover;
	border-radius: 0.5rem 0.5rem 0 0;
}

#service-image-slider-fg {
	width: 50%;
	height: 100%;
	background-repeat: no-repeat;
	background-position: left;
	background-size: cover;
	border-radius: 0.5rem 0.5rem 0 0;
}

.service-name {
	color: var(--unhighlighted-color);
	font-size: 1.5rem;
	padding: 0.5rem 1rem;
	border: 0.15rem solid var(--unhighlighted-color);
	border-top: 0;
	border-radius: 0 0 0.5rem 0.5rem;
}

.contact-line {
	margin: 0.5rem 0;
	display: flex;
	flex-direction: row;
	justify-content: start;
	font-size: 1.2rem;
}

.contact-icon {
	width: 1.5rem;
	height: 1.5rem;
	background-repeat: no-repeat;
	background-clip: content-box;
	background-size: cover;
	background-position: center;
	filter: var(--primary-color-filter);
	display: inline-block;
	margin: auto 0;
	margin-right: 1rem;
}

.contact-info {
	display: inline-block;
	color: var(--unhighlighted-color);
	text-decoration: none;
}

.contact-info:hover {
	color: white;
	text-decoration: underline;
}

#contact-form > * {
	width: 100%;
	padding: 0.75rem 1.5rem;
	margin: 0.3rem 0;
	border: 0.1rem solid var(--unhighlighted-color);
	border-radius: 0.5rem;
	box-sizing: border-box;
	font-size: 1rem;
	font-family: sans-serif;
	background-color: var(--background-color);
	color: white;
}

#form-submit {
	background-color: var(--primary-color);
	border: 1px solid var(--primary-color);
	color: white;
	transition: all 200ms ease;
}

#form-submit:hover {
	background-color: var(--primary-accent-color);
	border: 1px solid var(--primary-accent-color);
}

#form-submit:disabled {
	background-color: var(--primary-accent-color);
	border: 1px solid var(--primary-accent-color);
}

#contact-form > textarea {
	resize: none;
	height: 200px;
}

#contact-form > *:focus {
	border: 0.1rem solid var(--primary-color);
}

#contact-image:hover {
	content: url(/images/images/contact-blurred.png);
}

#image-popup-parent {
	position: fixed;
	width: 100vw;
	height: 100vh;
	top: 0;
	left: 0;
	z-index: 110;
	visibility: hidden;
	background-color: rgba(32, 32, 32, 0.8);
	opacity: 0;
	transition: all 200ms ease;
}

#image-popup {
	position: fixed;
	background-position: center;
	background-size: contain;
	background-repeat: no-repeat;
	width: 85vw;
	height: 85vh;
	top: 50vh;
	left: 50vw;
	transform: translate(-50%, -50%);
	z-index: 111;
}

#image-popup-cancel {
	position: absolute;
	top: 2.5rem;
	right: 4rem;
	width: 2.5rem;
	height: 2.5rem;
	background: radial-gradient(circle, white 0%, white 60%, transparent 61%);
	z-index: 112;
	transition: all 200ms ease;
}

#image-popup-cancel > div {
	width: 100%;
	height: 100%;
	background-repeat: no-repeat;
	background-clip: content-box;
	background-size: cover;
	background-position: center;
	filter: var(--primary-color-filter);
}

#image-popup-cancel:hover {
	background: radial-gradient(circle, var(--primary-accent-color) 0%, var(--primary-accent-color) 60%, transparent 61%);
	cursor: pointer;
	scale: 1.2;
}

#message-popup-parent {
	position: fixed;
	width: 100vw;
	height: 100vh;
	top: 0;
	left: 0;
	z-index: 120;
	visibility: hidden;
	background-color: rgba(32, 32, 32, 0.8);
	opacity: 0;
	transition: all 200ms ease;
}

#message-popup {
	position: fixed;
	top: 50vh;
	left: 50vw;
	transform: translate(-50%, -50%);
	z-index: 121;
	padding: 2rem;
	background-color: var(--background-color);
	border-radius: 0.5rem;
	border: 0.1rem solid white;
	color: white;
	font-size: 1.2rem;
}

#message-popup-cancel {
	position: absolute;
	top: 2.5rem;
	right: 4rem;
	width: 2.5rem;
	height: 2.5rem;
	background: radial-gradient(circle, white 0%, white 60%, transparent 61%);
	z-index: 122;
	transition: all 200ms ease;
}

#message-popup-cancel > div {
	width: 100%;
	height: 100%;
	background-repeat: no-repeat;
	background-clip: content-box;
	background-size: cover;
	background-position: center;
	filter: var(--primary-color-filter);
}

#message-popup-cancel:hover {
	background: radial-gradient(circle, var(--primary-accent-color) 0%, var(--primary-accent-color) 60%, transparent 61%);
	cursor: pointer;
	scale: 1.2;
}