/*
----------------------------------------
RESET
----------------------------------------
http://meyerweb.com/eric/tools/css/reset/ 
v2.0 | 20110126
License: none (public domain)
*/

html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
b, u, i, center,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, embed, 
figure, figcaption, footer, header, hgroup, 
menu, nav, output, ruby, section, summary,
time, mark, audio, video {
	margin: 0;
	padding: 0;
	border: 0;
	font-size: 100%;
	font: inherit;
	vertical-align: baseline;
}
/* HTML5 display-role reset for older browsers */
article, aside, details, figcaption, figure, 
footer, header, hgroup, menu, nav, section {
	display: block;
}
body {
	line-height: 1;
}
ol, ul {
	list-style: none;
}
blockquote, q {
	quotes: none;
}
blockquote:before, blockquote:after,
q:before, q:after {
	content: '';
	content: none;
}
table {
	border-collapse: collapse;
	border-spacing: 0;
}


/*
----------------------------------------
WINDHAMMER STYLES
----------------------------------------
Global
------------------------------
*/

:root {
	--accent: hsl(30,100%,50%);
	--dark: black;
	--light: white;
}

* {
	box-sizing: border-box;
}

html {
	font-size: 16px;
}

body {
	background: var(--dark);
	color: var(--light);
	font-family: monospace;
	line-height: 1.5;
}

a {
	border-bottom: 1px solid currentColor;
	color: inherit;
	text-decoration: none;
}

a:focus,
a:hover {
	color: var(--accent);
	border-bottom: 1px solid currentColor;
}

table,
tbody,
tr,
td {
	display: block;
}

thead {
	display: none;
}

::-moz-selection {
	color: var(--light);
	background-color: var(--accent);
}
::selection {
	color: var(--light);
	background-color: var(--accent);
}

.aspect-4-3,
.aspect-16-9 {
	display: block;
	position: relative;
}

.aspect-4-3 {
	padding-top: 75%;
}

.aspect-16-9 {
	padding-top: 56.25%;
}

.aspect-4-3 > *,
.aspect-16-9 > * {
	height: 100%;
	left: 0;
	position: absolute;
	top: 0;
	width: 100%;
}

@keyframes pulse {
	0%, 100% { opacity: 0; }
	50% { opacity: 1; }
}

/*
------------------------------
Narrow Screens
------------------------------
*/

.site-header {
	display: flex;
	flex-direction: column;
	justify-content: center;
	min-height: 100vh;
}

.logo {
	margin: 0 auto 0.5em;
	padding-right: 11ch;
	width: 30ch;
}

.logo > svg {
	display: block;
	fill: var(--light);
	height: 100%;
	width: 100%;
}

.intro {
	margin: 0 auto;
	/*padding-right: 2ch;*/
	width: 30ch;
}

.windhammer {
	display: block;
	font-weight: bold;
	letter-spacing: 1ch;
	text-transform: uppercase;
}

.video {
	margin: 0 auto 3em;
	max-width: calc(100vh * 1.777777777777778);
}

caption {
	display: block;
	position: relative;
	text-align: left;
	text-transform: uppercase;
}

/*caption span {
	display: block;
	position: relative;
}

caption span:after {
	content: "ˇ";
	position: absolute;
	right: 0;
}*/

caption,
.competition {
	background: var(--light);
	color: var(--dark);
	margin-top: 0.5em;
	padding: 1.5em 0;
	position: relative;
}

.competition:target:after {
	animation: pulse 1.5s infinite;
	background: var(--accent);
	box-sizing: border-box;
	content: "";
	height: 100%;
	left: 0;
	position: absolute;
	top: 0;
	width: 1ch;
}

caption span,
.competition > td {
	display: block;
	margin-left: auto;
	margin-right: auto;
	width: 30ch;
}

.competition a {
	border-color: var(--light);
}

.competition a:focus,
.competition a:hover {
	border-color: currentColor;
}

.date:after {
	content: "------------------------------";
	display: block;
}

.date time {
	font-weight: bold;
	text-transform: uppercase;
}

.date time:after {
	content: " //////////////////";
	font-weight: normal;
}

.venue,
.song,
.finish,
.note {
	padding-left: 8ch;
	position: relative;
}

.venue:before,
.song:before,
.finish:before,
.note:before {
	content: attr(class);
	display: block;
	font-weight: normal;
	position: absolute;
	left: 0;
	text-align: right;
	text-transform: uppercase;
	top: 0;
	width: 6ch;
}

.venue,
.music,
.finish,
.note {
	margin-top: 1.5em;
}

.music ol {
	counter-reset: start-from 0; /* Initiate a counter */
}

.song:before {
	counter-increment: start-from; /* Increment the counter by 1 */
	content: "Rnd" counter(start-from);  /* Use the counter as content */
}

.song a:after {
	color: var(--accent);
	content: " Video";
	text-transform: uppercase;
	white-space: nowrap;
}

.artist {
	font-style: italic;
}

.finish {
	text-transform: uppercase;
}

.site-footer {
	margin: 3em auto 6em;
	width: 30ch;
}


/*
------------------------------
Medium Screens
------------------------------
*/

@media screen and (min-width: 28em) {

	.site-header,
	.main {
		width: 44ch;
		margin: 0 auto;
	}

	.logo,
	.intro,
	.competition > td {
		width: 40ch;
	}

	.logo {
		padding-right: 21ch;
	}

	caption {
		padding-left: 2ch;
		padding-right: 2ch;
		width: 100%;
	}

	caption span {
		width: auto;
	}

	.date:after {
		content: "----------------------------------------";
	}

	.date time:after {
		content: " ////////////////////////////";
	}

	.site-footer {
		padding: 0 2ch;
		width: 44ch;
	}

}


/*
------------------------------
Large Screens
------------------------------
*/

@media screen and (min-width: 60em) {

	.site-header {
		padding-left: 1ch;
		width: 59ch;
	}

	.logo {
		padding-right: 40ch;
		width: 59ch;
	}

	.intro {
		width: 100%;
	}

	.windhammer {
		display: inline;
	}

	@supports (display: grid) {
	
		.main,
		.site-footer {
			width: calc(88ch + 0.5em);
		}

		.competitions tbody {
			display: grid;
			grid-gap: 0.5em;
			grid-template-columns: 44ch 44ch;
			margin: 0.5em auto 0 auto;
			width: auto;
		}

		.competition {
			margin: 0;
		}

	}

}


/*
------------------------------
Extra Large Screens
------------------------------
*/

@media screen and (min-width: 82em) {

	@supports (display: grid) {

		.main,
		.site-footer {
			width: calc(132ch + 1em);
		}

		.competitions tbody {
			grid-template-columns: 44ch 44ch 44ch;
		}

	}

}