@import 'animations';
@import 'breakpoints';
@import 'colors';
@import 'fonts';
@import 'mixins';

* {
	font-family: Montserrat, sans-serif;
	box-sizing: border-box;
	margin: 0;
	padding: 0;
}

body {
	background: $background;
	color: $text-color;
	display: flex;
	flex-direction: column;
	min-height: 100vh;
}

h1, h2, h3, h4, h5, h6, p, ul {
	margin-top: 0.5em;
	padding: 0 0.5rem;

	&:last-child {
		margin-bottom: 0.5em;
	}
}

h1, h2, h3, h4, h5, h6 {
	@include heading;
}

h1, footer {
	padding-bottom: 0.2em;
	@include hline(250px, 4px, $primary-1, $primary-2, $primary-3);
}

a:not(.nav-logo) {
	text-decoration: none;
	color: $highlight-1;
	text-shadow: -1px 1px 0 $background, 0 1px 0 $background, 1px 1px 0 $background;
	@include hline(10em, 2px, $highlight-1, $highlight-2, $highlight-3);

	&:hover, &:focus {
		animation: cycle-link-background 2s steps(4) infinite 0ms;
	}
}

main {
	width: 100%;
	max-width: $large;
	margin: 0 auto;

	flex-grow: 1;
}

footer {
	background-position: right top;
	font-size: 0.9em;
	color: $text-darker;

	width: 100%;
	max-width: $large;
	margin: 0 auto;
	padding: 0.5em;

	display: flex;
	align-items: center;
	flex-direction: column;

	@media screen and (min-width: $small) {
		flex-direction: row;

		& > :first-child {
			margin-left: auto;
		}
	}
}

figure {
	margin: 1rem 0;

	img, video {
		max-width: 100%;
		display: block;
		margin: 0 auto;

		&.invert {
			filter: invert(100%);
		}

		&.fill {
			background: $fill-color;
			padding: 0.5em;
		}
	}

	figcaption {
		display: none;
	}
}

ul, ol {
	padding-left: 1.5em;

	li {
		padding: 0.2em 0;

	}
}

iframe {
	border: none;

	width: 100%;
	height: 100vh;
	display: block;
	margin: 1rem 0;

	&.aspect-178 {
		height: 56.25vw;
		max-height: $large * 0.5625;
	}
}

table {
	border-collapse: collapse;
	margin: 1rem 0;

	thead th {
		@include heading;
		font-weight: bold;
		white-space: nowrap;
	}

	thead tr, {
		@include hline(10em, 2px, $primary-1, $primary-2, $primary-3)
	}

	tr:not(:last-child) {
		border-bottom: 1px solid $primary-3;
	}

	td, th {
		padding: 0.2em 0.5em;
		text-align: left;
	}
}

.nav {
	display: flex;
	flex-flow: column wrap;
	justify-content: flex-end;

	&.nav-main {
		max-width: $large;
		margin: 0 auto;
		padding: 0.5em;
	}

	hr {
		margin: 0.5em 40%;
	}

	.nav-logo {
		@include heading;
		text-decoration: none;
		color: $text-color;

		margin: 0 auto;

		img {
			width: 48px;
			display: inline-block;
			margin-right: 1em;
			vertical-align: middle;
		}

		@media screen and (min-width: $small) {
			margin-left: 0;
		}
	}

	.nav-link {
		align-self: center;
		margin: 0 0.5em;
		padding: 0.5em 0;
		background-position: center bottom 0.4em;
		color: $text-color;
		font-family: Orbitron,Montserrat,sans-serif;

		&.nav-link-active {
			color: $highlight-1;
		}
	}

	@media screen and (min-width: $small) {
		flex-direction: row;

		hr {
			margin: 0 0.5em;
			align-self: center;
		}
	}
}

.date {
	font-style: italic;
}

.overflow-x-auto {
	overflow-x: auto;
}
