body,
html {
	height: 100%;
	width: 100%;
}

* {
	font-family: 'Fira Sans', Tahoma, Geneva, Verdana, sans-serif;
	margin: 0px;
	padding: 0px;
	z-index: 100;
	transition: all 100ms ease-in-out;
	color: var(--gray-l90);
	box-sizing: border-box;
}

body {
	background: var(--blue-l10);
	background: fixed linear-gradient(135deg, var(--blue-l05), var(--purple-l10));
	text-align: center;
}

.wrapper {
	max-width: 1000px;
	min-width: 620px;
	margin: 0px auto;
	padding: 0px 20px 0px 20px;
	display: grid;
	/* grid-template-columns: repeat(auto-fill, 242.5px); */
	grid-template-columns: 1fr 1fr 1fr 1fr;
	row-gap: 10px;
	column-gap: 10px;
}

.extra-top-space {
	margin-top: 80px !important;
	grid-template-columns: 250px 250px 245px 245px;
}

.span2 {
	grid-column: span 2;
}

.span3 {
	grid-column: span 3;
	margin-bottom: 20px;
}

.span4 {
	grid-column: span 4;
}

h1,
h2,
h3,
h4,
p {
	text-align: left;
}

h2 {
	font-size: 1.8em;
	margin-top: 40px;
	grid-column: 1 / -1;
}

h3 {
	grid-column: 1 / -1;
	font-size: 1.4em;
	margin-top: 10px;
	text-align: center;
}

p {
	font-size: 1.1em;
}

section {
	text-align: left;
	border: 1px solid transparent;
	background-color: transparent;
	margin: 10px 0px;
}

/* ---------------------
	Links
----------------------*/
a {
	text-decoration-style: none;
	color: var(--blue-l80);
}

a:hover {
	text-decoration-style: dashed;
}

a img {
	text-decoration: none;
	border: 0px;
}

.primary-action-link,
.secondary-action-link,
.action-link-label {
	font-size: 2em;
	display: inline-block;
	margin-top: 20px;
	white-space: nowrap;
}

.primary-action-link,
.secondary-action-link {
	padding: 5px 10px;
	text-decoration-thickness: 2px;
	border-radius: 8px;
}

.primary-action-link {
	background-color: var(--blue-l95);
	border: 1px solid var(--blue-l30);
	background: fixed linear-gradient(135deg, var(--blue-l30), var(--blue-l10));
	color: var(--green-l85);
}

.primary-action-link:hover {
	background: fixed linear-gradient(135deg, var(--blue-l35), var(--blue-l15));
}

.secondary-action-link {
	background-color: hsla(200, 100%, 100%, 0.05);
	border: 1px solid hsla(200, 100%, 100%, 0.1);
}

.action-link-label {
	padding: 5px 10px 5px 0px;
	color: var(--gray-l80);
}

/* ---------------------
	Split center
----------------------*/
.split-center {
	width: 100%;
	background-color: hsla(200, 100%, 2%, 0.4);
	border-style: solid;
	border-width: 1px 0px;
	border-color: var(--blue-l25);
	box-shadow: 0px 0px 4px var(--blue-l05);
	display: grid;
	grid-template-columns: 0.9fr 1.1fr;
	grid-template-rows: repeat(2em);
	row-gap: 0px;
	column-gap: 20px;
	margin-top: 100px;
	padding-bottom: 20px;
}

.split-center .action-link-label {
	text-align: right;
}

.split-center .primary-action-link,
.split-center .secondary-action-link {
	width: min-content;
}

/* ---------------------
	Hero
----------------------*/

h1 {
	font-size: 44px;
	display: inline-block;
	margin-left: 0px;
	margin-top: 28px;
	line-height: 1.3em;
}

.hero {
	width: 500px;
	position: relative;
	left: 20px;
}

#big-logo {
	display: inline-block;
	position: relative;
	left: -10px;
	margin-bottom: 20px;
	width: 510px;
	height: 300px;
}

#big-logo .logo {
	display: block;
	width: 510px;
	height: 300px;
	position: relative;
	top: -600px;
	/* z-index: 0; */
	background-color: var(--purple-l90);
	mask: url(images/logo-wordmark-vertical.svg) no-repeat center;
	-webkit-mask: url(images/logo-wordmark-vertical.svg) no-repeat center;
	transform: scale(105%);
}

#big-logo .logo:after {
	display: block;
	content: '';
	width: 510px;
	height: 300px;
	background-color: var(--blue-l70);
	mask: url(images/logo-wordmark-vertical.svg) no-repeat center;
	-webkit-mask: url(images/logo-wordmark-vertical.svg) no-repeat center;
}

#big-logo .gradient {
	display: block;
	width: 510px;
	height: 600px;
	overflow: visible;
	position: relative;
	top: -140px;
	/* z-index: 100; */
	background: radial-gradient(
		circle at center,
		var(--blue-l85),
		transparent 50%
	);
	opacity: 0.1;
}

#top-level-features_wrapper {
	padding: 0;
	margin: 0;
}

#top-level-features_image {
	animation: all 200ms ease-in-out;
	width: 100%;
	border-radius: 4px;
	/* filter: blur(0) grayscale(0%);
	scale: 1;
	opacity: 1; */
}

#top-level-features_description {
	animation: opacity 200ms ease-in-out;
	display: block;
	width: 100%;
	font-size: 1.2em;
	color: var(--blue-l85);
	padding: 0px;
	margin: 0px 0px 10px 0px;
	font-style: italic;
}

.exit {
	animation: all 200ms ease-in-out;
	filter: blur(2px) grayscale(50%);
	scale: 0.99;
	opacity: 0.9;
}

/* ---------------------
	Other sites
----------------------*/
.small-wrapper {
	margin: 0px auto;
	padding: 0px 20px 0px 20px;
	display: grid;
	grid-template-columns: 1fr 1fr 1fr 1fr;
	row-gap: 10px;
	column-gap: 10px;
	max-width: 800px;
	grid-template-columns: 1fr 1fr;
	width: calc(100% - 40px);
	text-align: center;
}

.small-wrapper h1,
.small-wrapper h2,
.small-wrapper h3,
.small-wrapper h4,
.small-wrapper p {
	text-align: center;
}

.small-logo {
	width: 204px;
	height: 120px;
	margin: 0px auto 20px auto;
	display: block;
	background-color: var(--blue-l40);
	mask: url(images/logo-wordmark-vertical.svg) no-repeat center;
	-webkit-mask: url(images/logo-wordmark-vertical.svg) no-repeat center;
}

/* ---------------------
	Cards
----------------------*/
.card {
	border: 1px solid var(--blue-l30);
	background-color: var(--blue-l10);
	background-color: hsla(200, 93%, 5%, 0.3);
	border-radius: 4px;
	box-shadow: 0px 2px 12px hsla(200, 93%, 33%, 0.1);
	display: inline-block;
	padding: 20px;
}

.card h2 {
	margin: 0px 0px 8px 0px;
	color: var(--purple-l30) !important;
	grid-column: span 3;
}

.grid {
	display: grid;
	grid-template-columns: 1fr 1.2em 3fr;
	gap: 10px;
}

.grid p,
.grid a {
	font-size: 1.2em;
}
.grid img {
	height: 1.2em;
	margin-top: 2px;
}

.donate-button {
	border-bottom: 0;
}

.text-gradient {
	background: -webkit-linear-gradient(
		300deg,
		var(--blue-l70) 20%,
		var(--purple-l70) 70%
	);
	background-clip: text;
	-webkit-background-clip: text;
	-webkit-text-fill-color: transparent;
	box-decoration-break: clone;
	-webkit-box-decoration-break: clone;
	text-align: left;
}

.square img {
	height: 60px;
	display: block;
	margin: 0px auto 20px auto;
}

/* ---------------------
	Squares
----------------------*/
.square {
	grid-column: span 1;
	display: inline-block;
	padding: 20px;
}

.square img {
	height: 80px;
}
.appear1 {
	grid-column: 1;
}

/* ---------------------
	Footer
----------------------*/
#bottom-logo {
	margin: 100px auto 0px auto;
	width: 48px;
	opacity: 0.5;
}

.tagline {
	width: 100%;
	font-size: 1em;
	margin-bottom: 100px;
	color: #1b5e99;
	font-style: italic;
	font-weight: bold;
}

/* ---------------------
	Common
----------------------*/
:root {
	--gray-l95: hsl(200, 60%, 94%);
	--gray-l90: hsl(200, 60%, 87%);
	--gray-l85: hsl(200, 60%, 80%);
	--gray-l80: hsl(200, 60%, 73%);
	--gray-l75: hsl(200, 60%, 64%);
	--gray-l70: hsl(200, 60%, 58%);
	--gray-l65: hsl(200, 60%, 49%);
	--gray-l60: hsl(200, 60%, 45%);
	--gray-l55: hsl(200, 60%, 41%);
	--gray-l50: hsl(200, 60%, 37%);
	--gray-l45: hsl(200, 60%, 33%);
	--gray-l40: hsl(200, 60%, 30%);
	--gray-l35: hsl(200, 60%, 25%);
	--gray-l30: hsl(200, 60%, 22%);
	--gray-l25: hsl(200, 60%, 19%);
	--gray-l20: hsl(200, 60%, 15%);
	--gray-l15: hsl(200, 60%, 12%);
	--gray-l10: hsl(200, 60%, 9%);
	--gray-l05: hsl(200, 60%, 6%);

	--blue-l95: hsl(200, 100%, 94%);
	--blue-l90: hsl(200, 94%, 87%);
	--blue-l85: hsl(200, 100%, 80%);
	--blue-l80: hsl(200, 100%, 73%);
	--blue-l75: hsl(200, 100%, 64%);
	--blue-l70: hsl(200, 100%, 58%);
	--blue-l65: hsl(200, 100%, 49%);
	--blue-l60: hsl(200, 100%, 45%);
	--blue-l55: hsl(200, 100%, 41%);
	--blue-l50: hsl(200, 100%, 37%);
	--blue-l45: hsl(200, 100%, 33%);
	--blue-l40: hsl(200, 100%, 30%);
	--blue-l35: hsl(200, 100%, 25%);
	--blue-l30: hsl(200, 100%, 22%);
	--blue-l25: hsl(200, 100%, 19%);
	--blue-l20: hsl(200, 100%, 15%);
	--blue-l15: hsl(200, 100%, 12%);
	--blue-l10: hsl(200, 100%, 9%);
	--blue-l05: hsl(200, 100%, 6%);

	--green-l98: hsl(125, 100%, 98%);
	--green-l95: hsl(125, 100%, 82%);
	--green-l90: hsl(125, 97%, 74%);
	--green-l85: hsl(125, 83%, 66%);
	--green-l80: hsl(125, 74%, 58%);
	--green-l75: hsl(125, 67%, 50%);
	--green-l70: hsl(125, 82%, 43%);
	--green-l65: hsl(125, 100%, 36%);
	--green-l60: hsl(125, 100%, 33%);
	--green-l55: hsl(125, 100%, 30%);
	--green-l50: hsl(125, 100%, 27%);
	--green-l45: hsl(125, 100%, 24%);
	--green-l40: hsl(125, 95%, 22%);
	--green-l35: hsl(125, 100%, 19%);
	--green-l30: hsl(125, 100%, 16%);
	--green-l25: hsl(125, 100%, 14%);
	--green-l20: hsl(125, 100%, 11%);
	--green-l15: hsl(125, 100%, 9%);
	--green-l10: hsl(125, 100%, 6%);
	--green-l05: hsl(125, 100%, 4%);

	--purple-l95: hsl(250, 100%, 96%);
	--purple-l90: hsl(250, 100%, 92%);
	--purple-l85: hsl(250, 100%, 89%);
	--purple-l80: hsl(250, 100%, 85%);
	--purple-l75: hsl(250, 100%, 81%);
	--purple-l70: hsl(250, 100%, 77%);
	--purple-l65: hsl(250, 100%, 72%);
	--purple-l60: hsl(250, 100%, 66%);
	--purple-l55: hsl(250, 100%, 61%);
	--purple-l50: hsl(250, 100%, 50%);
	--purple-l45: hsl(250, 100%, 45%);
	--purple-l40: hsl(250, 100%, 40%);
	--purple-l35: hsl(250, 100%, 36%);
	--purple-l30: hsl(250, 100%, 31%);
	--purple-l25: hsl(250, 100%, 27%);
	--purple-l20: hsl(250, 100%, 22%);
	--purple-l15: hsl(250, 100%, 17%);
	--purple-l10: hsl(250, 100%, 13%);
	--purple-l05: hsl(250, 100%, 10%);
}

@media screen and (max-width: 1070px) {
	.wrapper {
		grid-template-columns: 1fr 1fr;
		width: calc(100% - 40px);
		text-align: center;
		margin: 20px;
	}

	#big-logo {
		margin: 10px auto;
		left: 0px;
	}

	.span2,
	.span3,
	.span4 {
		grid-column: span 2;
	}

	h1 {
		width: 100%;
		margin: 10px auto;
		font-size: 2.8em;
	}

	h2 {
		font-size: 2.4em;
	}

	p,
	.card p {
		font-size: 1.8em;
	}

	.hero {
		left: 0;
		width: 620px;
	}

	h1,
	h2,
	p {
		text-align: center !important;
	}

	.card {
		padding: 40px;
	}

	.card p,
	.card h2 {
		text-align: left !important;
	}

	.square {
		font-size: 1.6em;
		height: 280px;
		width: 280px;
		margin: 10px;
	}

	.appear1,
	.appear3 {
		align-self: right;
		margin-left: auto;
	}

	.square img {
		height: 100px;
	}

	.grid {
		display: grid;
		grid-template-columns: 1fr 1.4em 2fr;
		gap: 12px;
	}

	.grid p,
	.grid a {
		font-size: 1.4em;
		line-height: 1.4em;
	}

	.grid img {
		height: 1.4em !important;
		margin-top: 4px;
	}

	#top-level-features_description {
		font-size: 1.8em;
		text-align: center;
		width: minmax(80%, 100%);
		margin: 10px auto;
		height: 3em;
	}

	.tagline {
		font-size: 1.2em;
	}
}
