body {
	font-family: serif;
	padding: 0;
	margin: 1em;
}

.content {
	max-width: 60em;
	margin: auto;
}

@media screen {
	body {
		margin: 4em;
	}
}

a {
	text-decoration: none;
	color: black;
}

a.patent {
	font-style: italic;
	font-size: 90%;
	color: black;
}

a:hover {
	border-bottom: 1px dashed black;
}

.header {
	border-bottom: thick solid black;
	display: flex;
	justify-content: space-between;
}

.name {
	font-family: Arial, Helvetica, sans-serif;
	font-size: x-large;
	font-weight: bold;
	display: inline;
	padding: 0;
	margin: 0;
}

.category {
	display: flex;
	justify-content: space-between;
	margin-top: 3em;
}

@media print {
	.category {
		margin-top: 2em;
	}
}

h2 {
	font-family: Arial, Helvetica, sans-serif;
	font-size: x-large;
	padding: 0;
	border: 0;
	margin: 0;
	flex: 3;
}

.details {
	flex: 10;
}

.skills {
	margin-bottom: 1em;
}

h3 {
	font-weight: bold;
	font-size: 100%;
	padding: 0;
	border: 0;
	margin: 0;
}

.skills ul {
	list-style: none;
	margin: 0;
}

li {
	white-space: nowrap;
}

.improvements {
	/* Flex, for slightly older browsers */
	display: flex;
	flex-flow: row wrap;
	justify-content: space-between;
	
	/* Grid; slightly better */
	display: grid;
	grid-template-columns: repeat(3, auto);
	grid-template-rows: repeat(2, auto);
	justify-items: start;
	align-items: start;
	justify-content: space-between;
}

.improvements li {
	flex: 1 0 30%;
}

.languages {
	display: flex;
	justify-content: space-between;
}

.software {
	display: flex;
	flex-flow: row wrap;
	justify-content: space-between;
	
	display: grid;
	grid-template-columns: repeat(5, auto);
	grid-template-rows: repeat(2, auto);
	justify-items: start;
	align-items: start;
	justify-content: space-between;
}

.software li {
	flex: 0 0 17%;
}

.artificial {
	display: flex;
	flex-flow: row wrap;
	justify-content: space-between;
	
	display: grid;
	grid-template-columns: repeat(4, auto);
	grid-template-rows: repeat(1, auto);
	justify-items: start;
	align-items: start;
	justify-content: space-between;
}

.artificial li {
	flex: 0 0 auto;
}


.title {
	font-weight: bold;
}

.year {
	font-weight: bold;
	float: right;
	color: #333;
}

.responsibilities {
	padding-left: 2em;
	padding-top: 0;
	margin-top: 0;
}

.responsibilities li {
	white-space: normal;
	text-wrap: pretty;
	text-wrap: balance;
}

.obsolete {
	display: none;
}

.position {
	margin-bottom: 1em;
}

.courses ul {
	display: flex;
	flex-flow: row wrap;
	justify-content: space-between;
	list-style: none;
	margin: 0;
	
	display: grid;
	grid-template-columns: repeat(3, auto);
	grid-template-rows: repeat(2, auto);
	justify-items: start;
	align-items: start;
	justify-content: space-between;
}

.courses li {
	font-size: 90%;
	flex: 0 0 30%;
}
