:root, html, body {
	font-size: 16px;/* Media query can't use calc, have to set base REM value here. Should be okay since this is desktop only. */
}
html,body {
	background-color: #fff;

	color: #333;
	font-family: 'Montserrat', sans-serif;

	width: 100%;
	min-height: 100vh;
	max-height:100vh;
	margin: 0;
	padding: 0;

	display: flex;
	display: -webkit-flex;
	align-items: center;
	-webkit-align-items: center;
	-moz-align-items: center;
	justify-content: center;
	-webkit-justify-content: center;
	-moz-justify-content: center;
	flex-direction: column;
	-webkit-flex-direction: column;
	-moz-flex-direction: column;
}

button {
	background-color: transparent;

	padding: 0;
	border: 0;
	outline: 0;

	cursor: pointer;

	color: inherit;
	font-family: inherit;
}









#main {
	/*
	min-width: calc(602px + 14rem);
	min-height: calc(430px + 10rem);
	*/
	width: 100vw;
	min-height: calc(430px + 10rem);
	margin: auto 0;

	box-sizing: border-box;
	-webkit-box-sizing: border-box;

	flex-shrink: 0;
	-webkit-flex-shrink: 0;
	-moz-flex-shrink: 0;
	flex-grow: 0;
	-webkit-flex-grow: 0;
	-moz-flex-grow: 0;

	display: flex;
	display: -webkit-flex;
	flex-direction: column;
	-webkit-flex-direction: column;
	-moz-flex-direction: column;
	justify-content: center;
	-webkit-justify-content: center;
	-moz-justify-content: center;
}

#main.short,
body.jsresize #main.short {
	width: auto;
}
body.jsresize #main {
	width: 100%;
}

footer {
	width: 100%;
	padding: .15rem 0;

	position: relative;
	bottom: 0;
	left: 0;

	font-size: 0.688rem;
	color: #888;

	flex-shrink: 0;
	-webkit-flex-shrink: 0;
	-moz-flex-shrink: 0;
	flex-grow: 0;
	-webkit-flex-grow: 0;
	-moz-flex-grow: 0;

	display: flex;
	display: -webkit-flex;
	align-items: center;
	-webkit-align-items: center;
	-moz-align-items: center;
}
footer > * {
	margin: 0 .5rem;
}
footer a {
	color: #888;
	text-decoration: none;
}
footer a:hover {
	text-decoration: underline;
}









.row {
	min-width: calc(602px + 14rem);
	min-height: calc(258px + 6rem);

	overflow: hidden;

	flex-shrink: 1;
	-webkit-flex-shrink: 1;
	-moz-flex-shrink: 1;

	display: flex;
	display: -webkit-flex;

	position: relative;
	top: 0;
	left: 0;
	z-index: 30;
}









#videoNav,
.sidebar {
	/*min-width: 10rem;*/
	width: 270px;
	border-bottom: 1px solid #e1e1e1;

	display: flex;
	display: -webkit-flex;
	flex-direction: column;
	-webkit-flex-direction: column;

	position: relative;
	top: 0;
	left: 0;
	z-index: 30;
}

#videoNav > header {
	background-color: #333;

	color: #fff;
	text-align: center;

	height: 88px;
	padding: 1rem;

	box-sizing: border-box;
	-webkit-box-sizing: border-box;

	display: flex;
	display: -webkit-flex;
	align-items: center;
	-webkit-align-items: center;
	-moz-align-items: center;
	justify-content: center;
	-webkit-justify-content: center;
	-moz-justify-content: center;
}
#videoNav > header .content {
	width: 100%;
}
#videoNav > header h1,
#videoNav > header h2 {
	text-align: center;
	color: #fff;
	font-family: 'Fugaz One', cursive;
	font-weight: 400;
	line-height: 1.2em;
	font-size: 5rem;
	white-space: nowrap !important;

	margin: 0;
	padding: 0;
}
#videoNav > header h2 {
	font-family: 'Montserrat', sans-serif;
	font-size: .9rem;
	letter-spacing: 1px;
}

#videoNav > ul {
	background-color: #fff;

	list-style: none;

	height: 0;
	max-height: 100%;
	margin: 0;
	padding: 0;

	overflow: auto;

	flex-grow: 1;
	-webkit-flex-grow: 1;
	-moz-flex-grow: 1;
	flex-shrink: 1;
	-webkit-flex-shrink: 1;
	-moz-flex-shrink: 1;

	display: flex;
	display: -webkit-flex;
	flex-direction: column;
	-webkit-flex-direction: column;

	position: relative;
	top: 0;
	left: 0;
}

#videoNav > ul li > button,
.videoItem {
	text-align: left;

	width: 100%;
	padding: .5rem .5rem .5rem 0;
	margin: 0;

	box-sizing: border-box;
	-webkit-box-sizing: border-box;

	flex-basis: 3rem;
	-webkit-flex-basis: 3rem;
	-moz-flex-basis: 3rem;
	flex-shrink: 0;
	-webkit-flex-shrink: 0;
	-moz-flex-shrink: 0;

	display: flex;
	display: -webkit-flex;
	align-items: center;
	-webkit-align-items: center;
	-moz-align-items: center;
}
#videoNav > ul li > button:hover,
.videoItem:hover {
	background-color: #e1e1e1;
}

#videoNav > ul li .title,
.videoItem .title {
	overflow: hidden;
	text-overflow: ellipsis;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;

	font-weight: 500;
	font-size: .85rem;
}

#videoNav > ul li .thumb,
.videoItem .thumb {
	width: 5rem;
	margin-right: .5rem;

	box-sizing: border-box;
	-webkit-box-sizing: border-box;

	position: relative;
	top: 0;
	left: 0;

	flex-shrink: 0;
	-webkit-flex-shrink: 0;
	-moz-flex-shrink: 0;
}
#videoNav > ul li .thumb .img,
.videoItem .thumb .img {
	width: 100%;
	padding-top: 56.25%;

	background-size: cover;
	background-position: center center;
	background-repeat: no-repeat;

	position: relative;
	top: 0;
	left: 0;
	z-index: 10;
}
#videoNav > ul li .thumb .overlay,
.videoItem .thumb .overlay {
	position: absolute;
	top: 0;
	left: 0;
	z-index: 20;

	width: 100%;
	height: 100%;

	background-color: rgba(0, 0, 0, .5);

	color: #fff;

	display: flex;
	display: -webkit-flex;
	align-items: center;
	-webkit-align-items: center;
	-moz-align-items: center;
	justify-content: center;
	-webkit-justify-content: center;
	-moz-justify-content: center;
}
#videoNav > ul li .thumb .overlay .fas,
.videoItem .thumb .overlay .fas {
	font-size: 1.5rem;
}









.videoContainer {
	background-color: #e1e1e1;

	border-bottom: 1px solid #e1e1e1;
}









.sponsors {
	display: flex;
	display: -webkit-flex;
	justify-content: space-around;
	-webkit-justify-content: space-around;
	-moz-justify-content: space-around;

	position: relative;
	top: 0;
	left: 0;
	z-index: 20;

	overflow: hidden;
}
.sponsors.left,
.sponsors.right {
	min-height: calc(258px + 6rem);

	flex-direction: column;
	-webkit-flex-direction: column;
	-moz-flex-direction: column;
}

.sponsors.top,
.sponsors.bottom {
	min-width: calc(602px + 14rem);
	min-height: calc(86px + 2rem);
}

.sponsor {
	flex-shrink: 0;
	-webkit-flex-shrink: 0;
	-moz-flex-shrink: 0;

	width: calc(86px + 2rem);
	height: calc(86px + 2rem);
	/*width: 86px;
	height: 86px;*/
	/*border-radius: .5rem;*/
	/*margin: 1rem;*/
	max-width: 100%;
	padding: 1rem;

	box-sizing: border-box;
	-webkit-box-sizing: border-box;

	background-color: #fff;

	position: relative;
	top: 0;
	left: 0;

	transition: all .3s ease-out;
	-webkit-transition: all .3s ease-out;
	-moz-transition: all .3s ease-out;
	transition-property: opacity, transform;
	-webkit-transition-property: opacity, -webkit-transform;
	-moz-transition-property: opacity, -moz-transform;
}
.sponsor.hidden {
	opacity: 0;
	pointer-events: none;

	display: none;
}

/*
.sponsor:hover {
	box-shadow: 2px 2px 5px 0px rgba(0, 0, 0, .3);
}
*/

.sponsor .fas,
.sponsor .icon {
	position: absolute;
	top: 1rem;
	right: 1rem;
	z-index: 20;

	width: 1rem;
	height: 1rem;

	font-size: 1rem;
	color: rgba(51, 51, 51, .3);

	display: flex;
	display: -webkit-flex;
	align-items: center;
	-webkit-align-items: center;
	-moz-align-items: center;
	justify-content: center;
	-webkit-justify-content: center;
	-moz-justify-content: center;

	transition: all .3s ease-out;
	-webkit-transition: all .3s ease-out;
	-moz-transition: all .3s ease-out;
	transition-property: width, height, font-size;
	-webkit-transition-property: width, height, font-size;
	-moz-transition-property: width, height, font-size;
}
.sponsor .icon {
	font-family: 'FontAwesome', 'Font Awesome', 'Font Awesome 5', 'Font Awesome 5 Free', 'Font Awesome 5 Brands', 'Font Awesome 6 Free';
	font-weight: 900;
}
.sponsor:hover .fas,
.sponsor:hover .icon {
	width: calc(100% - 2rem);
	height: calc(100% - 2rem);

	font-size: 3rem;
	color: rgba(51, 51, 51, .7);
}
.sponsor.video .icon:before {
	content: "\f04b";
}
.sponsor.link .icon:before {
	content: "\f35d";
}

.sponsor img.square {
	display: inline;
}

.sponsor img.large {
	display: none;
	max-width: 100%;
}









.share {
	background-color: rgba(0, 0, 0, .7);

	position: absolute;
	top: 0;
	left: 0;
	z-index: 100;

	width:100%;
	height: 88px;
	padding: 0 1rem;

	box-sizing: border-box;
	-webkit-box-sizing: border-box;

	overflow: hidden;

	text-align: center;
	white-space: nowrap;

	transform: translate3d(0, -100%, 0);
	-webkit-transform: translate3d(0, -100%, 0);
	-moz-transform: translate3d(0, -100%, 0);

	transition: all .3s ease-out;
	-webkit-transition: all .3s ease-out;
	-moz-transition: all .3s ease-out;
	transition-property: transform;
	-webkit-transition-property: transform;
	-moz-transition-property: transform;

	display: flex;
	display: -webkit-flex;
	align-items: center;
	-webkit-align-items: center;
	-moz-align-items: center;
	justify-content: center;
	-webkit-justify-content: center;
	-moz-justify-content: center;
}
.share.visible {
	transform: translate3d(0, 0, 0);
	-webkit-transform: translate3d(0, 0, 0);
	-moz-transform: translate3d(0, 0, 0);
}
.videoContainer.loading .share.visible {
	transform: translate3d(0, -100%, 0);
	-webkit-transform: translate3d(0, -100%, 0);
	-moz-transform: translate3d(0, -100%, 0);
}
.share > span {
	flex-shrink: 1;
	-webkit-flex-shrink: 1;
	-moz-flex-shrink: 1;
	flex-grow: 0;
	-webkit-flex-grow: 0;
	-moz-flex-grow: 0;
}
.share > span > img {
	max-width: 100%;
	height: auto;
}
.share .icon {
	width: 3rem;
	height: 3rem;
	margin: 0 .5rem;
	border-radius: 1.75rem;

	flex-shrink: 0;
	-webkit-flex-shrink: 0;
	-moz-flex-shrink: 0;

	/*
	background-color: #ccc;
	*/

	color: #fff;
	font-size: 1.15rem;

	display: flex;
	display: -webkit-flex;
	align-items: center;
	-webkit-align-items: center;
	-moz-align-items: center;
	justify-content: center;
	-webkit-justify-content: center;
	-moz-justify-content: center;

	transition: all .3s ease-out;
	-webkit-transition: all .3s ease-out;
	-moz-transition: all .3s ease-out;
	transition-property: background-color;
	-webkit-transition-property: background-color;
	-moz-transition-property: background-color;
}
.share .icon .fas,
.share .icon .fab {
	font-size: 1.5rem;
}
