html, body {
	font-family: Tahoma, Geneva, sans-serif;
	font-size: 15px;
	line-height: 1.5
}

body {
	margin: 0;
	background-color: #f1f1f1;
}

a {
    color: inherit
}

a {
    background-color: transparent;
    -webkit-text-decoration-skip: objects
}

a:active,a:hover {
    outline-width: 0
}

h1, h2, h3, h4, h5, h6 {
	font-family: Georgia, serif;
	font-weight: 400;
	margin: 10px 0;
	color: #000;
}

h1 {
	font-size: 36px;
	text-shadow: 0 4px 8px rgba(0, 0, 0, 0.2), 0 6px 20px rgba(0, 0, 0, 0.19);
	color: #4CAF50 !important;
	text-align: center;
}

h2 {
	font-size: 30px;
	border-bottom: 6px solid #4CAF50;
	padding-left: 0.25em;
}

h3 {
	font-size: 24px;
}

h4 {
	font-size: 20px;
	font-style: italic;
}

h5 {
	font-size: 18px;
}

h6 {
	font-size: 16px;
}

article, aside, details, figcaption, figure, footer, header, main, menu, nav, section, summary {
	display: block;
}

img  {
	max-width: 100%;
	height: auto;
}

header {
	min-height: 100vh;
	text-align: center;
	background-color: #fff;
	box-shadow: 0 2px 5px 0 rgba(0,0,0,0.16), 0 2px 10px 0 rgba(0,0,0,0.12);
}

h2 + a[href='#top'] {
	float: right; 
	top: -71px; 
	display: block; 
	margin: 20px 0.5em; 
	vertical-align: middle; 
	position: relative;
	text-decoration: none;
}

h2 + a[href='#top']::before {
	content: "\f077";
	font: normal normal normal 14px/1 FontAwesome;
	font-size: inherit;
	text-rendering: auto;
	-webkit-font-smoothing: antialiased;
}

section {
	background-color: #f1f1f1;
}

section h1 {
	margin-bottom: -100vh;
	margin-top: 100vh;
}

time {
	font-style: italic;
}

label {
	width: 30%;
	padding: 3px;
	font-weight: bold;
	display: inline-block;
	float: left;
	clear: left;
}

label.error {
	border-left: 6px solid #f44336;
	padding-left: 0.5em;
}

form input, form textarea, form button {
	width: calc(100% - 2em);
	margin: 0 1em;
	display: inline-block;
}

button:hover {
	color: #000!important;
	background-color: #ccc!important;
}
	
form input.error, form textarea.error {
	margin-bottom: 0;
}
	
form textarea + span {
	margin-bottom: 1em;
}
	
span.error {
	margin-left: 2em;
	width: 90%;
	display: inline-block;
	color: #f44336;
	font-size: small;
}
	
span.error + label {
	margin-top: 1em;
}
	
form input[type='submit'], form button {
    border: none;
	display: inline-block;
	outline: 0;
	padding: 8px 16px;
	vertical-align: middle;
	overflow: hidden;
	text-decoration: none;
	text-align: center;
	cursor: pointer;
	white-space: nowrap;
	color: #fff;
	background-color: #4CAF50;
	width: calc(100% - 1.5em);
}
	
.grecaptcha-badge {
	margin: 1em auto;
	display: none;
}
			
header a {
	text-decoration: none;
}
	
header h4 {
	border-bottom: 6px solid #4CAF50;
}
	
nav {
	overflow-y: auto;
	overflow-x: hidden;
	min-height: calc(100vh - 420px);
}
	
nav a {
    width: 100%;
	display: block;
	padding: 8px 16px;
	text-align: left;
	border: none;
	outline: none;
	white-space: normal;
	float: none;
	vertical-align: middle;
	overflow: hidden;
}
	
nav a[href='#top'] {
	display: none;
}
	
nav .social a {
	display: inline-block;
	font: normal normal normal 14px/1 FontAwesome;
	font-size: x-large;
	text-rendering: auto;
	-webkit-font-smoothing: antialiased;
	width: auto;
	padding: 10px 5px;
}
		
nav .social a:first-of-type::before {
	content: "\f169";
}
			
nav .social a:last-of-type::before {
	content: "\f08c";
}
	
nav > a, nav > .dropdown > a {
	border-bottom: 6px solid #fff;
	font-size: 18px;
}
	
nav > a:hover, nav > .dropdown:hover > a, nav .social a:hover, nav a.active {
	background-color: transparent;
	box-shadow: none;
	color: #4CAF50;
	border-color: #4CAF50 !important;
}
	
nav > .dropdown > .dropdown-content {
	cursor: auto;
	color: #000;
	background-color: #f1f1f1;
	display: none;
	min-width: 160px;
	margin: 0;
	padding: 0;
	box-shadow: 0 2px 5px 0 rgba(0,0,0,0.16), 0 2px 10px 0 rgba(0,0,0,0.12);
}
	
nav > .dropdown:hover > .dropdown-content {
	display: block;
}
	
nav .dropdown .dropdown-content a:hover {
	color: #fff;
	background-color: #4CAF50;
}

nav .dropdown > a::before {
	content: "\f0da\0020\0020";
	font: normal normal normal 14px/1 FontAwesome;
	font-size: inherit;
	text-rendering: auto;
	-webkit-font-smoothing: antialiased;
}
	
nav .dropdown:hover > a::before {
	content: "\f0d7\0020\0020";
	font: normal normal normal 14px/1 FontAwesome;
	font-size: inherit;
	text-rendering: auto;
	-webkit-font-smoothing: antialiased;
}

nav .lang a {
	display: inline;
	padding: 0;
}

nav .lang a:not(:last-child)::after {
	content: ' |';
	color: #000;
	font-weight: normal;
}

nav .lang a.current {
	font-weight: bold;
}

.heading.active {
	position: fixed;
	top: 0;
	width: 100%;
	z-index: 1;
}

.heading.active h2 {
	background-color: #fff;
	margin-top: 0;
}
			
.content {
	overflow-y: auto;
	overflow-x: hidden;
	min-height: calc(100vh - 134px);
	position: relative;
}
	
.content .entry, .content .entry div {
	padding: 0 0 1em 1em;
}
	
article div h3, .entry h4, .entry p {
	margin: 0;
}
	
.entry > h4, .entry p {
	padding-left: 1em;
}
		
#education .entry {
	padding-bottom: 2em;
}
	
#work .entry h4 + p, #education .entry h4 + p {
	padding-left: 2em;
}
	
#cv article, #portfolio section, #contact form {
	background-color: #fff;
	box-shadow: 0 2px 5px 0 rgba(0,0,0,0.16), 0 2px 10px 0 rgba(0,0,0,0.12);
	min-height: 100vh;
	margin-top: 100vh;
}
	
#portfolio article {
	padding-left: 1em;
}
	
#portfolio article h3 {
	display: inline;
}
	
#portfolio article img, #portfolio #science #perform img {
	display: block;
	margin: 0.2em auto;
}
	
#portfolio article p {
	padding: 1em;
	margin: 0;
}
	
#education .entry p, 
#portfolio #science img, 
#portfolio #science p:first-of-type, 
#portfolio #design #flyer .slideshow .badge {
	display: none;
}
	
#portfolio #design #flyer .slideshow {
	padding: 0 1em 0 0;
}
	
#portfolio #design #flyer .slideshow .prev, #portfolio #design #flyer .slideshow .next {
	float: left;
	margin-top: 80px;
	display: block;
	font-size: 18pt;
}
	
#portfolio #design #flyer .slideshow .next {
	float: right;
}
	
#portfolio #design #flyer img {
	text-align: center;
}

#contact .content {
	width: 100%;
}

#contact #sent span {
	text-align: center;
	font-size: x-large;
	display: block;
}
	
.slideshow {
	text-align: center;
	color: #4CAF50;
	user-select: none;
}
	
.slideshow span {
	cursor: pointer;
	margin: 0 0.2em;
}
	
.slideshow .badge {
	display: inline-block;
	height: 13px;
	width: 13px;
	padding: 0;
	border: 1px solid #4CAF50;
	border-radius: 50%;
	background-color: transparent;
}
	
.slideshow .badge.active {
	background-color: #4CAF50;
}

@media screen and (min-width: 768px) and (orientation: landscape) {	
	h2 + a[href='#top'] {
		display: none;
	}
	
	header {
		background: #fff url(../images/grosche.jpg) center/cover no-repeat;
		overflow: hidden;
	}
		
	header img { 
		display: none; 
	}
	
	header h1, header h3, header h4 {
		margin-left: 10vw;
		width: 33vw;
	}

	header h1 {
		background-color: rgba(255, 255, 255, 0.75);
		height: 100vh;
		margin-top: 0;
		padding-top: 25vh;
	}
		
	header h3 {
		margin-top: -66vh;
	}
	
	header .bottom {
		transform: rotateX(180deg);
		position: absolute;
		bottom: 0;
		width: 100%;
		z-index: 1;
	}
	
	header .bottom a {
		transform: rotateX(180deg);;
	}
		
	header .bottom .dropdown:hover > a::before {
		content: "\f0d8\0020\0020";
	}
					
	header .top {
		top: 0;
		position: fixed;
		width: 100%;
		z-index: 1;
	}
		
	nav {
		color: #fff;
		background-color: #000;
		border-bottom: 6px solid #4CAF50;
		width: 100%;
		overflow: hidden;
		height: auto;
		min-height: auto;
	}
		
	nav .dropdown-hover {
		position: static;
		float: left;
		display: inline-block;
		cursor: pointer;
	}
		
	nav .dropdown-hover:hover .dropdown-content {
		display: block;
		z-index: 1
	}
		
	nav a {
		float: left;
		width: auto;
		cursor: pointer;
	}
		
	nav a[href='#top'], nav .social {
		display: inline-block;
		font: normal normal normal 14px/1 FontAwesome;
		font-size: x-large;
		text-rendering: auto;
		-webkit-font-smoothing: antialiased;
		float: right;
	}
		
	nav a[href='#top'] {
		visibility: hidden;
	}
		
	.bottom nav a[href='#top'], .top nav .social {
		display: none;
	}
		
	.top nav a[href='#top'], .bottom nav .social {
		display: inline-block;
		margin: 0 10px;
	}
		
	nav a[href='#top']::after {
		content: "\f015";
		visibility: visible;
	}
		
	nav .social a:first-of-type::before {
		content: "\f168";
	}
					
	nav .social a:last-of-type::before {
		content: "\f0e1";
	}
		
	nav > a, nav > .dropdown > a {
		border-bottom: 0;
	}
		
	nav > .dropdown > .dropdown-content {
		top: 100%;
		background-color: #fff;
		position: absolute;
	}
		
	nav > .dropdown > .portfolio.dropdown-content {
		left: 9em;
	}
		
	nav .dropdown-content a {
		float: none;
	}
	
	nav .lang {
		float: right;
	}
	
	.top nav .lang {
		margin-right: -5em;
	}
	
	nav .lang a {
		background-color: #fff;
		color: #000;
		font-weight: bold;
		border-radius: 10px;
		padding: 5px;
		margin: 5px;
	}
	
	.top nav .lang a:last-of-type {
		margin-right: -2em;
	}

	nav .lang a.current {
		display: none;
	}
	
	nav .lang a:not(:last-child)::after {
		content: none;
	}
	
	section h1 {
		padding-top: 60px;
		margin: 0 10px;
	}
		
	#education .entry p, 
	#portfolio #science p:first-of-type {
		display: block;
	}

	#education .entry {
		padding: 0 0 1em 1em;
	}

	#cv, #portfolio, #contact {
		clear: left;
	}
	
	#cv article {
		width: calc((100vw - 80px)/3);
		float: left;
		min-height: calc(100vh - 125px);
		height: auto;
		margin: 0 10px;
	}
		
	#cv article .content, #portfolio h1 + section .content, #portfolio h1 + section + section .content {
		position:relative;
		min-height: calc(100vh - 200px);
		padding: 0 0.5em;
	}
		
	#portfolio section .content {
		position:relative;
		min-height: calc(100vh - 210px);
		padding: 0 0.5em;
	}
		
	#portfolio h1 + section, #portfolio h1 + section + section {
		width: calc((100vw - 60px)/2);
		min-height: calc(100vh - 130px);
		float: left;
		margin: 10px 10px 15vh 10px;
	}
		
	#portfolio section {
		width: calc((100vw - 60px)/2);
		min-height: calc(100vh - 70px);
		float: left;
		margin: 10px 10px 15vh 10px;
	}
		
	#contact {
		margin-bottom: 5vh;
	}
		
	#contact form {
		margin: 10px 10px 0 10px;
		padding: 1em;
		min-height: calc(100vh - 134px - 8vh);
		height: auto;
	}

	#contact .content {
		position: static;
		min-height: auto;
	}
	
	label {
		width: 30%;
		padding: 3px;
	}
		
	form input, form textarea, form button {
		width: 60%;
		margin: 3px;
	}
		
	form input[type='submit'], form button {
		width: calc(90% + 1em);
	}
		
	span.error {
		margin-left: calc(30% + 3em);
	}
		
	.overlay {
		width: 100vw;
		height: 100vh;
		background-color: rgba(0,0,0,0.5);
		position: fixed;
		top: 0;
		left: 0;
	}
		
	.overlay .content {
		display: block; 
		width: auto; 
		height: auto; 
		max-width: 90vw;
		max-height: calc(90vh - 70px);
		position: absolute; 
		border: 10px solid rgb(255, 255, 255); 
		box-shadow: 0 2px 5px 0 rgba(0,0,0,0.16), 0 2px 10px 0 rgba(0,0,0,0.12);
		background-color: #000;
	}
		
	.overlay .close {
		display: inline-block;
		position: absolute; 
		width: 30px; 
		height: 30px; 
		margin: 0 -15px 0 0; 
		padding: 0;
		border: none;
		border-radius: 50%;
		outline: 0;
		text-align: center;
		vertical-align: middle;
		overflow: hidden;
		color: #fff;
		background-color: #000;
		font-size: x-large;
		font: normal normal normal 14px/1 FontAwesome;
		text-rendering: auto;
		-webkit-font-smoothing: antialiased;
		cursor: pointer;
		white-space: nowrap;
	}
		
	.overlay .close::before {
		content: "\f00d";
	}
	
	.heading.active {
		position: static;
	}
}

@media screen and (min-width: 1440px) {
	header {
		width: 400px;
		background: #fff;
		position: fixed;
		top: 0
	}
		
	header img {
		display: block;
	}
		
	header h1, header h3, header h4 {
		margin: 10px 0;
		padding: 0;
		width: 100%;
		height: auto;
	}
		
	header .bottom, header .top {
		transform: none;
		position: relative;
	}
		
	header nav {
		color: inherit;
		background-color: inherit;
		border: 0;
	}
		
	nav a[href='#top'] {
		display: none !important;
	}
		
	nav a {
		transform: none !important;
		width: 100%;
		float: none;
	}
		
	nav > a, nav > .dropdown > a {
		border-bottom: 6px solid #fff;
		font-size: 18px;
	}
		
	nav > .dropdown > .dropdown-content  {
	    position: absolute;
		width: 100%;
		left: unset !important;
		top: unset !important;
	}
		
	nav .dropdown:hover > a::before {
		content: "\f0d7\0020\0020" !important;
	}
		
	nav .social, nav .lang {
		position: fixed;
		bottom: 0;
		left: 0;
	}
	
	nav .social {
		width: 400px;
		display: inline-block !important;
	}
		
	nav .social a {
		display: inline-block;
		font: normal normal normal 14px/1 FontAwesome;
		font-size: x-large;
		text-rendering: auto;
		-webkit-font-smoothing: antialiased;
		width: auto;
		padding: 10px 5px;
	}
		
	nav .social a:first-of-type::before {
		content: "\f169";
	}
					
	nav .social a:last-of-type::before {
		content: "\f08c";
	}
	
	nav .lang {
		margin: 0.5em;
		min-width: 3em;
	}
	
	nav .lang a {
		width: auto;
		display: inline-block;
		padding: 0;
		margin: 0;
		font-weight: normal;
	}
	
	nav .lang a.current {
		display: inline-block;
	}
	
	nav .lang a:not(:last-child)::after {
		content: ' |';
	}
	
	section {
		margin: 20px 20px 20px 420px;
		box-shadow: 0 2px 5px 0 rgba(0,0,0,0.16), 0 2px 10px 0 rgba(0,0,0,0.12);
		background-color: #fff;
		padding: 10px;
		height: auto !important;
		min-height: auto !important;
	}
		
	section h1 {
		padding: 0;
		text-align: left;
		margin: 0;
	}
		
	section > article, section > section, section > form {
		box-shadow: none !important;
		height: auto !important;
		min-height: auto !important;
		margin: 0 !important;
		clear: left !important;
		float: none !important;
	}
	
	section > article, section > section {
		display: inline;
		width: 100% !important;
	}
	
	section > form {
		width: calc(100% - 2em) !important;
	}
	
	.content {
		height: auto !important;
		min-height: auto !important;
	}
		
	.entry time, .entry h4 {
	    float: left;
		line-height: 40px;
	}
		
	.entry h3, .entry h4 {
		margin-right: 10px;
		padding: 0;
		float: left;
		max-width: calc(100vw - 720px);
	}
		
	.entry time {
		width: 220px;
	}
		
	.entry p, .entry div {
		clear: left;
		padding-left: 20px !important;
	}
		
	.entry time ~ p {
		padding-left: 250px !important;
	}
		
	.entry p br, .entry p br::after {
		content: " ";
	}
		
	#work h4 {
		display: none;
	}
		
	#portfolio article {
		padding: 0;
	}
		
	#portfolio article img {
		display: block;
		margin: 0.2em 0;
		max-width: 200px;
		float: left;
		clear: left;
		margin-right: 1em;
	}
		
	#portfolio article p {
		padding: 0;
		max-width: calc(100vw - 720px - 1.5em);
		float: left;
	}
		
	#portfolio article h3 {
		display: inline-block;
		float: left;
		margin: 10px 0.2em 10px 0;
	}
		
	#portfolio article time {
		display: block;
		padding: 19px 0 15px 0;
	}
		
	#portfolio #science h3 {
		display: block;
	}
		
	#portfolio #science img, #portfolio #science p:first-of-type, #portfolio #design {
		display: inline-block !important;
		padding: 0 0 1em 0;
	}
		
	#portfolio #science #perform img {
		margin-right: 1em;
	}
		
	#portfolio #design #flyer .slideshow, #portfolio #design #flyer br, #contact .heading {
		display: none;
	}
		
	#portfolio #design #flyer img:last-of-type {
		display: block !important;
		clear: none;
	}
	
	.overlay .content {
		max-width: 75vw;
		max-height: 75vh;
	}
		
	.overlay .close {
		margin: 0; 
	}
}

@media print {
	h1, h2, h3, h4, h5, .heading {
		page-break-after: avoid;
		page-break-inside:avoid;
		text-shadow: none;
	}

	h1+p, h2+p, h3+p, #portfolio article p {
		page-break-before: avoid;
	}

	table, figure, #cv article, #portfolio article, #portfolio article p {
		page-break-inside: avoid;
	}

	header, header img, #cv article, #portfolio section, .content {
		height: auto;
		min-height: auto;
		position: static;
	}
	
	header, #cv article, #portfolio section {
		box-shadow: none;
	}
	
	section h1, #cv article, #portfolio section {
		margin: 10px;
		text-align: left;
	}
	
	#portfolio h1, #pokerbot, #webdesign, #science, #bachelorthesis, #film, #youarespecial, #kompetenzfeststellung  {
		page-break-before: always;
	}
		
	nav, #cv h1, form, h2 + a[href='#top'], .slideshow, #science img { 
		display: none !important; 
	}
	
	header a, header h4 {
		width: calc(100% - 8cm);
	}
	
	header img {
		width: 7cm;
		float: right;
		padding: 1em;
	}
	
	p, .slideshow + .content article {
		display: block !important;
	}
	
	#cv .content {
		display: table;
	}
	
	#cv .entry {
		display: table-row;
	}
	
	#cv .entry p, #science p {
		padding-bottom: 1em !important;
	}
	
	#cv .entry time, #miscellaneous h3 {
		display: table-cell;
		padding: 0 1em;
	}
	
	.content article img, #portfolio article h3, #portfolio article p, #science p {
		float: left;
		clear: left;
	}
	
	#portfolio article img {
		display: block;
		margin: 0.2em 0;
		max-width: 4cm;
		float: left;
		clear: left;
		margin-right: 1em;
	}
	
	#portfolio article p {
		padding: 0;
		max-width: calc(100vw - 6cm);
	}
	
	#portfolio article img ~ p, #portfolio article a ~ p {
		clear: none;
	}
	
	#science p {
		clear: left !important;
	}
	
	#portfolio article h3 {
		display: inline-block;
		float: left;
		margin: 10px 0.2em 10px 0;
	}
	
	#portfolio article time {
		display: block;
		padding: 19px 0 15px 0;
		float: left;
	}
	
		#contact {
		display: none;
	}
		
	.heading.active {
		position: static;
	}
}