html, body {
  margin: 0;
  padding: 0;

  font-family: 'Source Sans Pro';
}

@media (max-width: 640px) {
  html {
    font-size: 2.5vw;
  }
}

@media (max-width: 480px) {
  html {
    font-size: calc(9px + 0.625vw);
  }
}

b {
  font-weight: 600;
}

#content {
	max-width: 1000px;
	margin: 0 auto;
	padding: 2rem;
  margin-top: 5rem;
  margin-bottom: 5rem;
  background: white;
  font-weight: 300;
}

@media (max-width: 1064px) {
  #content {
    margin: 0;
  }
}

a.url {
	font-family: 'Roboto Mono', Mono;
	font-weight: 300;
	font-style: italic;
	font-size: 0.8rem;
}

.latex, .latex * {
	font-family: Playfair Display, serif;
	font-size: 1rem;
}

.latex sub {
	vertical-align: -0.4ex;
	margin-left: -0.1667rem;
	margin-right: -0.125rem;

}

.latex sup {
	font-size: 0.80rem;
	vertical-align: 0.15rem;
	margin-left: -0.36rem;
	margin-right: -0.125rem;
}

.content__name {
  width: 100%;
  text-align: center;
  font-size: 4rem;
}

.content__namepart--first {
  font-weight: 300;
}

.content__namepart--sur {
  font-weight: 600;
}

/***** Contact Links & Subtitles *****/
.contactlinks, .subtitle {
	display: flex;
	justify-content: center;
	align-items: center;
	margin: 0 auto;
}

.subtitle {
  color: #1e90ff;
  font-weight: 400;
  font-variant: small-caps;
  margin-bottom: .5rem;
}

	/* quick links & subtitle parts */
	.quicklink, .subtitle__part {
		flex-shrink: 0;
		white-space: nowrap;
	}

  .quicklink {
    color: black;
    text-decoration: none;
    cursor: pointer;
  }

  .subtitle__part {
    margin: 0 1rem;
  }

	.quicklink:before {
		content: "|";
		display: inline-block;
		flex-shrink: 1;

		width: 3rem;
		text-align: center
	}

	.quicklink:first-child:before,
  .subtitle__part:first-child:before {
		display:none;
	}

	.quicklink:visited {
		color: black;
	}

	.quicklink:hover {
		color: black;
	}

	.quicklink:active {
		color: black;
	}
	/**********/

/********************/

/***** CV Section *****/

.sectionheader {
	display: flex;
}

.sectionheader h1 {
	flex-grow: 0;
	margin-right: 1rem;

	font-size: 2rem;
	font-weight: 700;
}

.sectionheader h1 > em {
	font-size: 2rem;
	font-weight: 700;
	font-style: normal;
	color: #1e90ff;
}

.sectionline {
	position: relative;
	top: 0.6rem;
	flex-grow: 1;
	height: 1rem;
	border-top: black solid 2px;
	border-right: black solid 2px;
	border-top-right-radius: 0.5rem;
	align-self: flex-end;
}

	/* Entry */

	.CV_Entry {
		margin: 0.25rem 1rem 1rem 0;

		text-align: justify;
		font-size: 1.1rem;
	}

	.CV_Entry > p {
		margin-bottom: 0.5rem;
	}

	.CV_Entry > ul {
		margin-left: 0.75rem;
	}

		/* replace list bullet points with sensibly sized ones */
		.CV_Entry li {
			list-style: none;
		}

		.CV_Entry li:before {
			content:"";
			display: inline-block;
			position: relative;
			right: 0.5rem;
			width: 0.25rem;
			height: 0.25rem;
			border-radius: 0.125rem;
			background-color: black;
			margin: 0.2rem -0.125rem;
		}
		/**********/

		/* Header */
		.CV_Entry .entryheader {
			margin-bottom: 0.2rem;
		}

		.entryheader:after {
			content: "";
			display: block;
			clear: both;
		}

		.CV_Entry .organisation {
			float: left;
			clear: left;

			font-size: 1.4rem;
			font-weight: 600;
		}

		.CV_Entry .location {
			float: right;
			clear: right;

			font-size: 1.4rem;
			font-weight: 300;
			font-style: italic;
			color: #1e90ff;
		}

		.CV_Entry .title {
			float: left;
			clear: left;

			font-size: 1.2rem;
			font-weight: 300;
			font-variant: small-caps;
		}

		.CV_Entry .title > .uncap { /* use to escape smallcaps */
			font-variant: normal;
		}

		.CV_Entry .dates {
			float: right;
			clear: right;

			font-size: 1.2rem;
			font-weight: 300;
			font-style: italic;
		}

		/**********/

		/* Content */
			/* Modules list */
			#modules {
				display: flex;
				justify-content: space-around;
				flex-wrap: wrap;
			}

			#modules:last-child:after { /* force last item to align left, if the row is underfull */
				content:"";
				height: 0; /* don't show if pseudo element is on its own row */
				width: 14rem;
				padding-left: 2rem;
			}

			#modules span {
				width: 14rem;
				padding-left: 2rem;
        overflow: visible;
        white-space: nowrap;
			}

			#modules > span:before { /* use right arrow as list marker */
				content: " \2192  ";
			}
			/**********/

			/* Description list */
			ul.descriptionlist > li {
				list-style: none;
				display: flex;
				flex-wrap: nowrap;
			}

			ul.descriptionlist > li > h4 {
				text-align: right;
				width: 5rem;
				margin-right: 1rem;
				flex-grow: 0;
				flex-shrink: 0;

				font-weight: 600;
			}

			ul.descriptionlist > li > .description {
				flex-grow: 1;
			}

			ul.descriptionlist > li > .description.parts {
				display: flex;
				flex-wrap: wrap;
				justify-content: space-between;
			}

			ul.descriptionlist > li > .description.parts > span {
				margin-right: 1rem;
			}

			ul.descriptionlist > li:before {
				content: none;
				display: none;
			}

			/**********/

/********************/
