:root {
	--introHeight: calc(100vh - (var(--unit) * 2 + var(--navHeight)));
	--sigHeight: calc(var(--halfUnit));
	--sigWidth: calc(var(--sigHeight) * 2.73);
	--sectionItemHeight: calc((var(--elWidth) - var(--halfUnit)) / 3);
}

@supports(height: 1svh) {
	:root {
		--introHeight: calc(100svh - (var(--unit) * 2 + var(--navHeight)));
	}
}



/* ------------- INTRO ------------ */



.intro {
	max-width: var(--elWidth);
	width: fit-content;
	margin: var(--eighthUnit) auto var(--eighthUnit) auto;
	height: var(--introHeight);
	display: flex;
	position: relative;
}

#imgContainer {
	flex: 1;
	margin-right: var(--quarterUnit);
}

#imgContainer img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: 50% 25%;
	display: block;
	/* for narrow screens */
}

#introContent {
	width: fit-content;
	overflow: hidden;
	background: var(--containerBg);
	padding: var(--halfUnit);
	position: relative;
}

#introContentWrapper {
	overflow: hidden;
}

#introText {
	text-align: justify;
	line-height: 1.3;
	column-count: 2;
	column-gap: var(--thirdUnit);
}

#introText * {
	font-size: 1rem;
}

#introText .firstPara::first-letter {
	font-size: 2.6rem;
	color: var(--color1);
	float: left;
	margin-right: 0.6rem;
	margin-top: 0.3rem;
}

.apostrophe {
	font-size: 2.6rem !important;
	color: var(--color1);
	display: inline-block;
	vertical-align: bottom;
	margin-left: 0.2rem;
}

.apostrophe::before {
	content: '';
	display: block;
	height: 0;
	width: 0;
	margin-top: -2rem;
}

.apostrophe::after {
	content: '';
	display: block;
	height: 0;
	width: 0;
	margin-bottom: -1.5rem;
}


#signature {
	width: var(--sigWidth);
	height: var(--sigHeight);
	position: absolute;
	top: calc(100% + 1rem);
	right: 0;
}

.introCloseText {
	position: absolute;
	top: -2rem;
	right: 1rem;
	height: var(--introHeight);
	display: flex;
	justify-content: center;
}

.introCloseText,
.introCloseText * {
	color: var(--color2);
	display: inline-block;
	transition: transform 0.5s ease;
	font-family: bahnschrift;
	font-size: 1.3rem;
}

.introCloseText.long {
	top: 1rem;
	right: calc(var(--quarterUnit) * -1.95);
	writing-mode: vertical-lr;
}

.introCloseText.long,
.introCloseText.long * {
	font-size: calc(calc(var(--introHeight) - 2rem) / 22);
}

.introCloseText *:not(div) {
	text-decoration: underline;
	text-decoration-thickness: 3px;
	text-underline-offset: 4px;
}

.introCloseText.short,
.introCloseText_shorter {
	display: none;
}

.introCloseText a:hover {
	transform: translateX(-1em);
}

.introCloseText:not(.shorter) a:nth-of-type(2):hover {
	transform: translateX(1em);
}

.introCloseText.long a:hover {
	transform: translateY(-1em);
}

.introCloseText.long a:nth-of-type(2):hover {
	transform: translateY(1em);
}



/* ------------------------- */

#mainTools .contentWrapper {
	overflow: hidden;
	display: flex;
	flex-direction: column;
	justify-content: space-evenly;
	align-items: center;
	container-type: inline-size;
}

#mainTools .sectionItem {
	width: 100%;
	height: 100%;
}

#mainTools h3 {
	text-align: center;
	font-size: 10cqi;
}

#mainTools img {
	height: 70%;
}



@media (max-width: 1250px) or (max-aspect-ratio: 1/3) {
	#mainTools {
		--sectionItemHeight: calc((var(--elWidth) - var(--halfUnit)) / 3);
	}
}


@media (max-width: 1024px) or (max-aspect-ratio: 1/3) {
	:root {
		--sigHeight: calc(var(--halfUnit) * 1.5);
	}

	.intro {
		flex-direction: column;
		height: var(--introHeight);
	}

	#imgContainer {
		margin-right: 0;
		max-width: 100%;
		height: fit-content;
		max-height: 50%;
		flex: none;
		overflow: hidden;
	}

	#imgContainer img {
		object-fit: cover;
		object-position: 50% 27%;
	}

	#introContent {
		flex: 1;
	}

	#introContentWrapper {
		overflow-y: auto;
	}

	#introText {
		column-count: 2;
		height: fit-content;
	}

	.introCloseText.long {
		display: none;
	}

	.introCloseText.short {
		display: inline-block;
		height: fit-content;
	}

	.introCloseText * {
		font-size: 1.2rem;
		text-decoration-thickness: 2px !important;
	}

	#signature {
		bottom: 0.1rem;
	}

	.contactCloseText {
		bottom: calc(100% + 0.5rem);
	}
}



@media (max-width: 900px) or (max-aspect-ratio: 1/3) {
	:root {
		--sigHeight: calc(var(--halfUnit) * 1.75);
	}

	#introText {
		column-count: 2;
		column-gap: var(--thirdUnit);
	}

	.introCloseText {
		right: 0.5rem;
	}

	#mainTools {
		grid-template-columns: repeat(2, 1fr);
		gap: var(--quarterUnit);
		--sectionItemHeight: calc((var(--elWidth) - var(--quarterUnit)) / 2);
	}
}



@media (max-width: 800px) or (max-aspect-ratio: 1/3) {
	#signature {
		right: -0.4rem;
		top: calc(100% + 0.5rem);
	}
}



@media (max-width: 700px) or (max-aspect-ratio: 1/3) {
	:root {
		--sectionItemHeight: var(--elWidth);
	}

	#introText {
		column-count: 1;
		column-gap: var(--thirdUnit);
	}

	.introCloseText.short {
		top: -1.9rem;
	}

	.introCloseText.short * {
		font-size: 1.1rem;
	}
}



@media (max-width: 575px) or (max-aspect-ratio: 1/3) {
	#signature {
		bottom: 0rem;
	}

	#mainTools {
		gap: var(--eighthUnit);
	}
}



@media (max-width: 530px) or (max-aspect-ratio: 1/3) {
	.introCloseText * {
		font-size: 1rem !important;
	}
}


@media (max-width: 450px) or (max-aspect-ratio: 1/3) {
	#mainTools h3 {
		font-size: 1rem;
	}

	#mainTools img {
		height: calc(calc(var(--sectionItemHeight) - var(--sectionItemPadding) * 2) - calc(1.5em + var(--eighthUnit)));
		width: calc(calc(var(--sectionItemHeight) - var(--sectionItemPadding) * 2) - calc(1.5em + var(--eighthUnit)));
	}
}


@media (pointer: coarse) and (hover: none) {

	.introCloseText a:hover,
	.introCloseText a:nth-of-type(2):hover,
	.gridItem img:hover {
		transform: none;
	}
}

@media (hover: none) and (max-width: 900px) {

	.introCloseText a,
	.introCloseText_shorter a {
		animation: shiftleft 5s infinite;
	}

	.introCloseText a:nth-of-type(2),
	.introCloseText_shorter a:nth-of-type(2) {
		animation: shiftright 5s infinite;
	}
}

@media (max-width: 1200px) and (min-width: 1025px) {
	#introContent {
		padding: var(--thirdUnit);
	}
}



@media (min-aspect-ratio: 1.75 / 1) and (max-height: 900px) {
	.intro {
		--introHeight: calc(70vh);
	}

	#introText {
		column-count: 1;
	}
}

@media (min-aspect-ratio: 1.75 / 1) and (max-height: 600px) {
	.intro {
		--introHeight: calc(100vh);
	}
}

@media (min-aspect-ratio: 1.75 / 1) and (max-height: 400px) {

	.intro {
		flex-direction: row;
	}

	#imgContainer {
		flex: 1;
		height: var(--introHeight);
		max-height: none;
		margin-right: var(--quarterUnit);
	}

	#imgContainer img {
		width: 100%;
		height: var(--introHeight);
		object-fit: cover;
		object-position: 50% 25%;
	}

	#introContent {
		width: 55vw;
		background: var(--containerBg);
		padding: var(--halfUnit);
		position: relative;
		flex: none;
	}

	@supports(width: 1svw){
		:root{
			--introHeight: calc(100vw - (var(--unit) * 2 + var(--navHeight)));
		}
		#introContent {
			width: 55svw;
		}
	}
}