:root {
	--fg: black;
	--bg: white;
	--subtle: gray;
	--link: dodgerblue;
	--rainbow: linear-gradient(90deg, rgba(222,30,34,1) 0%, rgba(238,138,0,1) 20%, rgba(248,224,0,1) 40%, rgba(38,124,60,1) 60%, rgba(43,66,145,1) 80%, rgba(110,42,133,1) 100%);
	--content-margin: 0;
}

html {
	overflow-y: scroll;
	scroll-behavior: smooth;
}

body {
	font-family: "Intrepid";
	background-color: var(--bg);
	color: var(--fg);
}

noscript {
	position: fixed;
	box-sizing: border-box;
	width: 100vw;
	height: 100vh;
	text-align: center;
	background-color: var(--bg);
	z-index: 999;
	font-size: 1.2em;
	padding: 2em;
}

header {
	padding: 0 1em;
	text-align: center;
}

header a {
	vertical-align: top;
}

header img {
	padding-top: 0.25em;
	max-height: 6em;
	max-width: 100%;
}

nav {
	position: sticky;
	top: 0;
	background: var(--rainbow);
}

nav ul {
	display: flex;
	list-style: none;
	margin: 0;
	padding: 0;
}

nav li {
	display: block;
	flex-grow: 1;
	flex-basis: 0;
	text-align: center;
}

nav a {
	display: block;
	color: white;
	text-decoration: none;
	padding: 0.375em 0.5em;
	border: 4px solid transparent;
	background-color: transparent;
	background-clip: padding-box;
}

.enableTransitions nav a {
	transition-property: background-color, color;
	transition-duration: 0.2s;
}

nav a.selected {
	background-color: var(--bg);
}

nav a[href="#schedule"].selected {color: #ec7a05;}
nav a[href="#info"].selected {color: #8fae1e;}
nav a[href="#map"].selected {color: #353e8f;}

nav a svg {margin-bottom: 0.25em;}

.hasHover nav a:not(.selected):hover {
    background-color: #ffffff33;
}

h1, h2 {margin-bottom: 0.5em;}

main {
	box-sizing: border-box;
	margin: 0 var(--content-margin);
}

main > section {
	margin: 1.5em;
	scroll-margin-top: 100vh;
}

#eventOver {
	border: 1px solid #b22222;
    background: #ffcbcb;
    padding: 0.5em 0.75em;
    border-radius: 0.5em;
}

#eventOver svg {
	color: #b22222;
}

#sponsors {text-align: center;}

#sponsors h2 {
	text-align: center;
	color: var(--subtle);
	font-weight: normal;
	font-style: italic;
}

#sponsors img {
	box-sizing: border-box;
	vertical-align: middle;
	max-width: 100%;
}

#sponsors img[src="res/red-venus.png"] {
	max-height: 11em;
	margin-top: -0.5em;
}

#sponsors img[src="res/rhit.png"] {
	padding: 1em 0;
	max-height: 10em;
}

#sponsors img[src="res/isu.png"] {
	max-height: 4.5em;
}

#schedule ol {
	padding: 0;
	margin: 1em 0.5em;
	list-style-type: none;
}

#schedule li {
	color: white;
	padding: 0.5em 0.75em;
	border-radius: 0.5em;
}

#schedule li .eventDesc {
	font-style: italic;
	font-size: small;
}

#schedule section:nth-child(1) li {background-color: rgb(222, 30, 34);}
#schedule section:nth-child(2) li {background-color: rgb(238, 138, 0);}
#schedule section:nth-child(3) li {background-color: rgb(38, 124, 60);}

#schedule li:not(:last-child) {margin-bottom: 0.5em;}

#schedule li h2 {
	font-size: 1em;
	margin: 0;
	font-weight: normal;
}

.detailsGroup details {border-bottom: 2px solid var(--subtle);}
.detailsGroup details:first-child {border-top: 2px solid var(--subtle);}

.detailsGroup summary {
	font-size: 1.2em;
	font-weight: bold;
	cursor: pointer;
	color: var(--link);
	padding: 0.5rem;
}

.detailsGroup summary + div {margin-left: 1.75em;}
.detailsGroup summary + div p {margin-top: 0.5rem;}

#vendorDetails p {margin-bottom: 0;}

#vendorDetails img {
	display: block;
	margin: 0 auto;
	max-width: 100%;
}

#foodTrucks img {
	display: block;
	max-width: min(11em, 100%);
	margin: 0.5em auto 1em;
}

#foodTrucks details::after {
	content: "";
	display: block;
	clear: both;
}

#map img {
	display: block;
	margin: 0 auto;
	max-width: 100%;
	max-height: calc(100vh - 8px - 4.25em);
}

hr {
	border-width: 2px 0 0 0;
	border-style: solid;
	border-color: var(--subtle);
}

footer {
	margin: 1em 0.75em;
	text-align: center;
}

footer img {
	display: block;
	margin: 0.5em auto;
	max-height: 3em;
	max-width: 100%;
}

@media (min-width: 425px) {
	#foodTrucks img {
		float: right;
		margin: 0 0 1em 1em;
	}
}

@media (min-width: 576px) {
	:root {--content-margin: 10%;}
}

@media (min-width: 768px) {
	:root {--content-margin: 20%;}
}
