:root {
	--main-hue: 175;
	--main-bg-1: hsla(var(--main-hue), 50%, 40%, 1);
	--main-bg-2: hsla(var(--main-hue), 50%, 20%, 1);
	--main-bg-3: hsla(var(--main-hue), 50%, 7%, 1);
	--bezier: all 0.2s cubic-bezier(0.1, -2.2, 1, 2.2);
	--bezier-min: cubic-bezier(0.1, -2.2, 1, 2.2);
	--demo-project-border-radius: 1em;
}

* {
	box-sizing: border-box;
}

html {
	font-family: "Roboto", sans-serif;
	font-weight: 300;
	color: white;
	font-size: 1em;
	text-align: center;
	line-height: 1.6em;
	letter-spacing: 0.05em;
	background-color: black;
}

button {
	font-family: "Roboto", sans-serif;
}

b {
	font-weight: 700;
}

p {
	margin: 0;
	margin-top: 9px;
}

p:first-child {
	margin-top: 0;
}

body {
	background: #3f3f3f;
	background: radial-gradient(
		circle,
		var(--main-bg-1, gray),
		var(--main-bg-2, gray) 16em,
		var(--main-bg-3, black)
	);
	background-attachment: fixed;
	position: relative;
}

html,
body {
	/* height: 100%; */
	/* width: 100%; */
	margin: 0;
	padding: 0;
	/* display: initial; */
}

a {
	color: white;
}

.main {
	width: 90%;
	text-align: center;
	margin: 0 auto;
}

@media all and (min-width: 41em) {
	.main {
		width: 38em;
	}
}

header {
	padding: 2em 0;
}

header, footer {
	background-color: rgba(0,0,0,0.07);
}

header {
	letter-spacing: 0.2em;
	font-size: 1.8em;
	padding-top: 2.4em;
}

header a {
	text-decoration: none;
	color: white;
}

.iamgrid_logo {
	width: 4.4em;
}

.iamgrid_logo_black {
	display: none;
}

a {
	color: rgba(255, 255, 255, 0.7);
	transition: var(--bezier);
}

a:hover {
	color: rgba(255, 255, 255, 0.5);
}

.main section {
	padding: 4em 0;
	border-bottom: 1px solid rgba(255, 255, 255, 0.12);
}

.main section:last-child {
	border-bottom: 0;
}

.main section h1 {
	margin: 0;
	font-size: 0.8em;
	letter-spacing: 1.4em;
	margin-right: -1.4em;
	text-transform: uppercase;
	font-weight: normal;
	color: rgba(255, 255, 255, 0.6);
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 0 0 0.6em 0;
}

@media all and (min-width: 41em) {
	.main section h1 {
		margin-right: 0;
	}
	.main section h1::before,
	.main section h1::after {
		content: "";
		padding: 0 2em;
		width: 25px;
		height: 15px;
		background-image: url("assets/iamgrid_h1_dots.svg");
		background-repeat: no-repeat;
		background-position: center center;
		opacity: 0.3;
	}
	.main section h1 span {
		transform: translateX(0.7em);
	}
}

.main section h2 {
	font-size: 0.8em;
	font-weight: normal;
	color: rgba(255, 255, 255, 0.6);
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 0.6em 0 0 0;
}

.about__photo {
	width: 120px;
	height: 120px;
}

.about__photo-wrapper {
	padding-top: 1em;
}

.portfolio-radioset {
	display: grid;
	grid-template-columns: repeat(2, auto);
	justify-content: center;
	padding-bottom: 0.4em;
}

.portfolio-radioset button {
	display: block;
	width: 11em;
	background-color: rgba(255, 255, 255, 0.12);
	color: #ffffffa0;
	padding: 0.4em 0;
	border: 0;
	border-right: 1px solid #ffffff60;
	border-left: 1px solid #ffffff60;
	cursor: pointer;
	font-size: 0.8em;
	transition: all 0.25s;
}

.portfolio-radioset button:hover {
	color: #ffffffc0;
	background-color: rgba(255, 255, 255, 0.25);
}

.portfolio-radioset button:first-child {
	border-left-width: 0;
	border-radius: 4px 0 0 4px;
}

.portfolio-radioset button:last-child {
	border-right-width: 0;
	border-left: 1px solid #ffffff60;
	border-radius: 0 4px 4px 0;
}

.portfolio-radioset button[aria-checked='true'] {
	background-color: rgba(255, 255, 255, 0.5);
	color: white;
	cursor: default;
}

.portfolio-radioset button[aria-checked='true']:hover {
	background-color: rgba(255, 255, 255, 0.5);
}

.jump-to {
	font-size: 0.8em;
	color: rgba(255, 255, 255, 0.6);
}

.jump-to a {
	text-decoration: underline;
	font-weight: bold;
	cursor: pointer;
}

.milestones .portfolio-radioset {
	margin-top: 1em;
}

.milestones__view {
	display: none;
}

.milestones__view--active {
	display: block;
}

.milestones__tldr {
	/* font-style: italic; */
	font-weight: bold;
	/* font-size: 0.8em; */
	color: rgba(255, 255, 255, 0.6);
	padding: 0.6em 0;
}

.milestone {
	padding: 9px 0;
}

.milestone__year {
	font-size: 1.2em;
	font-weight: bold;
}

.milestone__event {
	padding-top: 6px;
}

.milestone__event:first-child {
	padding-top: 0;
}

.nospam {
	display: none;
}

.profiles_container {
	text-align: center;
	margin: 1em 0;
}

.profiles_container a {
	display: inline-block;
	background: rgba(255, 255, 255, 0.12);
	border-radius: 0.3em;
	text-decoration: none;
	padding: 0.1em 0.4em;
	margin: 0.4em 0.2em;
	font-size: 0.8em;
	transition: var(--bezier);
}

.profiles_container a:hover {
	background: rgba(255, 255, 255, 0.25);
}

.demo-projects__wrapper {
	padding-top: 1em;
}

.demo-project {
	display: block;
	border: 1px solid #ffffff60;
	/* background-color: #ffffff20; */
	background-color: #00000060;
	transition: border-color 0.2s var(--bezier-min), background-color 0.2s ease-in-out;
	text-decoration: none;
	color: white;
	border-radius: var(--demo-project-border-radius);
	margin-top: 1em;
	box-shadow: 0 0 10px #00000030;
}

.demo-project--coming-soon {
	cursor: default;
	opacity: 0.5;
}

.demo-project:first-child {
	margin-top: 0;
}

.demo-project:hover {
	background-color: #00000090;
	border-color: #ffffff90;
	color: white;
}

.demo-project__thumbnail {
	width: 200px;
	height: 200px;
}

.demo-project__left {
	background-color: black;
}

.demo-project__left, .demo-project__thumbnail {
	border-top-left-radius: var(--demo-project-border-radius);
	border-bottom-left-radius: 0;
	border-top-right-radius: var(--demo-project-border-radius);
	border-bottom-right-radius: 0;
}

.demo-project__right {
	padding: 1.3em 1.5em;
}

.demo-project__title {
	font-size: 1.2em;
	font-weight: bold;
}

.demo-project__description, .demo-project__technologies {
	padding-top: 0.75em;
	font-size: 0.8em;
}

.demo-project__technologies-title {
	color: rgba(255,255,255,0.6);
}

.demo-project__technologies-list {
	font-weight: bold;
}

@media all and (min-width: 41em) {
	.demo-project {
		display: grid;
		grid-template-columns: auto 1fr;
		gap: 1em;
		text-align: left;
		align-items: center;
	}

	.demo-project__thumbnail {
		width: 210px;
		height: 210px;
	}
	
	.demo-project__left, .demo-project__thumbnail {
		border-top-left-radius: var(--demo-project-border-radius);
		border-bottom-left-radius: var(--demo-project-border-radius);
		border-top-right-radius: 0;
		border-bottom-right-radius: 0;
	}
}

.cv__wrapper {
	padding-top: 1em;
}

footer {
	font-size: 0.8em;
	color: rgba(255, 255, 255, 0.6);
	padding: 4em 0;
	/* line-height: 1.9em; */
}

footer section {
	padding-top: 2.5em;
}

footer section:first-child {
	padding-top: 0;
}

footer .iamgrid_logo {
	width: 7em;
	/* display: block; */
	/* opacity: 0.7; */
}

.footer__logo-wrapper a {
	cursor: pointer;
}

.footer__name {
	font-weight: bold;
	color: white;
	font-size: 1.2em;
	padding-bottom: 0.25em;
}

.footer__contact-line1 {
	padding-bottom: 0.25em;
}

/* .footer__occupation {
	color: #ffffffc0;
} */

.footer__email {
	font-weight: bold;
	color: white;
}

@media all and (min-width: 1000px) {
	.footer__proper {
		width: 960px;
		display: grid;
		grid-template-columns: repeat(3, 1fr);
		margin: 0 auto;
		text-align: left;
	}

	footer section {
		padding: 1em 3em;
		border-left: 1px solid rgba(255, 255, 255, 0.12);
		/* border-left: 1px solid #00000070; */
	}

	footer section:first-child {
		border-left: 0;
		padding-top: 1em;
	}
}

.top-link {
	position: fixed;
	bottom: 25px;
	right: 25px;
	background-color: #ffffff60;
	color: white;
	cursor: pointer;
	width: 50px;
	height: 50px;
	text-align: center;
	border-radius: 25px;
	transition: opacity 0.35s ease-in-out;
	display: none;
	opacity: 0;
	align-content: center;
}

.top-link span {
	font-weight: bold;
	display: block;
	line-height: normal;
	transform: translateY(-2px);
	font-size: 18px;
}
