@import url('https://fonts.googleapis.com/css2?family=Oswald:wght@200..700&family=Poiret+One&family=Raleway:ital,wght@0,100..900;1,100..900&family=MonteCarlo&display=swap');

:root {
	--Black:#000;
	--Gold:#84640c;
	--Gold_Light:#d5b14a;
	--Red:#9c0000;
	--Header_Height:64px;
	--Scroll_Pct:0;
	--Hero_Logo_Width:164px;
}

* {
	box-sizing:border-box;
	position:relative;
	color:#ddd;
}

html {
	margin:0;
	padding:0;
	background:#000;
}

body {
	margin:0;
	padding:0;
	background:#000;
	width:100%;
	min-height:100vh;
	overflow-x:hidden;
	color:#fff;
	font-size:12pt;
	font-family:"Raleway", Arial, Helvetica, sans-serif;
	text-align:center;
}

body.promo-active {
	--Scroll_Pct:1;
}

h1, h2, h3, h4, h5, h6 {

}
h1 {font-size:3rem;}
h2 {font-size:2.5rem;}
h3 {font-size:2rem;}
h4 {font-size:1.75rem;}
h5 {font-size:1.5rem;}
h6 {font-size:1rem;}


/* Fixed ambient background layers */

#vegas-bg {
	width:100%;
	height:100%;
	position:fixed;
	left:0;
	bottom:0;
	object-fit:cover;
	z-index:0;
	pointer-events:none;
	transform:translateY(360px);
}

#bg-video {
	width:120%;
	height:auto;
	position:fixed;
	left:-10%;
	top:-10%;
	object-fit:cover;
	z-index:1;
	mix-blend-mode:screen;
	opacity:0.66;
	pointer-events:none;
}

#bg-video, #vegas-bg {
	filter:saturate(0) sepia(100%) hue-rotate(310deg) saturate(300%) brightness(50%);
}

/* Header */

#site-header-bg {
	position:fixed;
	left:0;
	top:0;
	width:100%;
	height:var(--Header_Height);
	z-index:30;
	background:rgba(0,0,0,0.82);
	backdrop-filter:blur(8px);
	-webkit-backdrop-filter:blur(8px);
	border-bottom:1px solid rgba(213,177,74,0.35);
	box-shadow:0 10px 30px rgba(0,0,0,0.35);
	opacity:var(--Scroll_Pct);
	transform:translateY(calc(-12px + (12px * var(--Scroll_Pct))));
	pointer-events:none;
}

#site-header {
	position:fixed;
	left:0;
	top:0;
	width:100%;
	height:var(--Header_Height);
	z-index:50;
	pointer-events:none;
}

#main-nav {
	height:100%;
	display:flex;
	align-items:center;
	justify-content:flex-end;
	padding:0 32px;
	font-family:"Oswald", sans-serif;
	font-size:1rem;
	letter-spacing:0.18em;
	text-transform:uppercase;
	pointer-events:none;
}

#navbar {
	position:relative;
	width:100%;
	height:100%;
	pointer-events:none;
}

#main-nav > ul,
#navbar > ul {
	display:flex;
	align-items:center;
	justify-content:flex-end;
	gap:1.75rem;
	width:100%;
	height:100%;
	margin:0;
	padding:0;
	list-style:none;
	pointer-events:auto;
}

#main-nav a {
	color:#d5b14a;
	text-decoration:none;
	text-shadow:0 2px 8px rgba(0,0,0,0.9);
	transition:color 0.2s ease, text-shadow 0.2s ease;
}

#main-nav a:hover,
#main-nav a:focus {
	color:#fff;
	text-shadow:0 0 14px rgba(213,177,74,0.7);
}

#navbar li.single,
#navbar li.parent {
	position:relative;
	display:flex;
	align-items:center;
	height:100%;
}

#navbar > ul > li > a {
	display:inline-flex;
	align-items:center;
	height:100%;
}

#navbar li.parent > a::after {
	content:"";
	width:0.42rem;
	height:0.42rem;
	margin-left:0.55rem;
	border-right:1px solid currentColor;
	border-bottom:1px solid currentColor;
	transform:translateY(-0.15rem) rotate(45deg);
	opacity:0.78;
}

#navbar li.parent.children-expanded > a {
	color:#fff;
	text-shadow:0 0 14px rgba(213,177,74,0.7);
}

#navbar li.parent.children-expanded > ul.children {
	display:block;
}

#navbar ul.children {
	position:absolute;
	top:100%;
	left:0;
	display:none;
	width:max-content;
	min-width:240px;
	max-width:min(320px, calc(100vw - 32px));
	margin:0;
	padding:0.55rem 0;
	list-style:none;
	background:rgba(0,0,0,0.9);
	border:1px solid rgba(213,177,74,0.36);
	box-shadow:0 18px 36px rgba(0,0,0,0.55);
	z-index:60;
	pointer-events:auto;
}

#navbar li.li-split-after > ul.children,
#navbar li.li-split-before > ul.children,
#navbar li.li-split-before ~ li.parent > ul.children {
	left:auto;
	right:0;
}

#navbar ul.children::before {
	content:"";
	position:absolute;
	left:0;
	top:-10px;
	width:100%;
	height:10px;
}

#navbar li.child {
	display:block;
	width:100%;
	margin:0;
	padding:0;
	text-align:left;
}

#navbar li.child a {
	display:block;
	width:100%;
	height:auto;
	padding:0.7rem 1rem;
	color:#eee;
	font-size:0.78rem;
	line-height:1.25;
	letter-spacing:0.08em;
	text-shadow:none;
	white-space:normal;
}

#navbar li.child a:hover,
#navbar li.child a:focus {
	color:#fff;
	background:rgba(213,177,74,0.18);
	text-shadow:none;
}

/* Fixed animated brand layer */

#brand-layer {
	position:fixed;
	left:0;
	top:0;
	width:100%;
	height:100vh;
	z-index:40;
	pointer-events:none;
}

#logo-symbol {
	position:absolute;
	left:calc((50vw * (1 - var(--Scroll_Pct))) + (-20px * var(--Scroll_Pct)));
	top:calc((calc(var(--Header_Height) + 2.5vh) * (1 - var(--Scroll_Pct))) + (8px * var(--Scroll_Pct)));
	transform:
		translateX(calc(-50% * (1 - var(--Scroll_Pct))))
		scale(calc(1 - (0.66 * var(--Scroll_Pct))));
	transform-origin:top center;
	will-change:left, top, transform;
}

#main-logo {
	width:var(--Hero_Logo_Width);
	height:auto;
	display:block;
}

#logo-wordmark {
	position:absolute;
	left: calc((50vw * (1 - var(--Scroll_Pct))) + (118px * var(--Scroll_Pct)));
	top:calc((calc(var(--Header_Height) + 7vh + 170px) * (1 - var(--Scroll_Pct))) + (18px * var(--Scroll_Pct)));
	transform:
		translateX(calc(-50% * (1 - var(--Scroll_Pct))))
		scale(calc(1 - (0.60 * var(--Scroll_Pct))));
	transform-origin:top left;
	will-change:left, top, transform;
}

#logo-text {
	font-family:"Oswald", sans-serif;
	text-transform:uppercase;
	font-size:3rem;
	letter-spacing:0.35em;
	text-align:center;
	line-height:2rem;
	white-space:nowrap;
	text-shadow:0 0 20px rgba(0,0,0,0.9);
}

#logo-text small {
	font-size:1.25rem;
}

.headline, #headline {
	position:relative;
    font-weight: 500;
    color: #b09350;
}
#headline {
    text-align: center;
	margin: 0 0 3rem 0;
}

/* Sections */

section {
	position:relative;
	width:100%;
	min-height:100vh;
	z-index:20;
}

#brand-spacer {
	width:520px;
	height:365px;
	max-width:90vw;
	flex:0 0 auto;
}

#event-info {
	position:relative;
	z-index:22;
}

#event-info h2 {
	font-size:1.6rem;
	line-height:1.35;
	margin:0 0 1.5rem 0;
	text-shadow:2px 2px 5px #000;
	font-weight:normal;
}



.info-panels {
	gap:3rem;
	padding-left:3rem;
	padding-right:3rem;
}
.info-panel {
	position:relative;
	flex:1;
	background-color:#222;
	border:1px solid #444;
	cursor:pointer;
}
.info-panel-frame {
	position:relative;
	border-bottom:1px solid #444;
	overflow:hidden;
	
}
.info-panel-frame img {
	object-fit:cover;
	transition:0.4s ease-in-out;
	filter: saturate(0) sepia(25%);
}
.info-panel:hover .info-panel-frame img {
	transform:scale(105%);
	filter:saturate(100%);
}

.info-panel-content, .info-panel-button-container {
	text-align:left;
	padding:20px;
}
.info-panel-content h3 {
	color:#b09350;
	margin:0 0 0 0;
    font-size:18pt;
    font-weight:500;
    margin-bottom:10px;
}
.info-panel button {
	display:inline-flex;
	padding:10px 25px;
	background-image:linear-gradient(#b09350, #e9d880);
	color:#000;
	text-decoration:none;
	align-items:center;
	justify-content:space-around;
	text-transform:uppercase;
	margin-top:10px;
	width:100%;
	border:none;
	font-weight:500;
	border-radius:3px;
	font-size:12pt;
}




#section-4 .wallpaper {opacity:0.75;}


footer {
	background-image:linear-gradient(#5f0000, black);
	background-size:100%;
	padding:6rem 3rem;
	color:#fff;
	position:relative;
	z-index:2;
	clear:both;
	position:relative;
	border-top:1px solid #5f0000;
	box-shadow:inset 0 0 60px rgba(0,0,0,1);
}
#footer-bg {
	position:absolute;
	left:0; top:0;
	width:100%; height:100%;
	z-index:0;
	mix-blend-mode:screen;
	filter:saturate(0.5);
	opacity:0.5;
	pointer-events:none;
}

#affiliates {
	display:flex;
	flex-direction:row;
	align-items:center;
	justify-content:center;
	gap:3rem;
	flex-wrap:wrap;
	width:100%;
	margin-bottom:3rem;
}

#affiliates img {
	width:120px;
	height:120px;
	object-fit:contain;
	opacity:0.75;
	transition:0.2s ease-in-out;
	background-color:rgba(0,0,0,1);
	border-radius:10px;
	padding:10px;
}

#affiliates img:hover {
	opacity:1;
}

@media (max-width:760px) {

	:root {
		--Header_Height:84px;
		--Hero_Logo_Width:138px;
	}

	#site-header,
	#site-header-bg {
		height:var(--Header_Height);
	}

	#main-nav {
		padding:0 12px;
		font-size:0.72rem;
		letter-spacing:0.12em;
	}

	#main-nav > ul,
	#navbar > ul {
		justify-content:center;
		gap:0.65rem 1rem;
		flex-wrap:wrap;
	}

	#navbar ul.children {
		min-width:210px;
		max-width:calc(100vw - 24px);
	}

	#navbar li.child a {
		font-size:0.72rem;
		padding:0.65rem 0.85rem;
	}

	#logo-text {
		font-size:2.05rem;
		line-height:1.6rem;
		letter-spacing:0.22em;
	}

	#logo-text small {
		font-size:1rem;
	}

	#brand-spacer {
		height:310px;
	}

	#promo-video {
		display:none;
	}

	#event-info h2 {
		font-size:1.25rem;
	}

	#organizers {
		gap:2rem;
	}

	#organizers img {
		width:115px;
	}

	#organizers h3 {
		font-size:1.15rem;
	}

	#affiliates {
		gap:1rem;
	}

	#affiliates img {
		width:82px;
		height:52px;
	}

}

@media (max-width:767px), (max-aspect-ratio:1/1) {

	#promo-video {
		display:none;
	}

}

@media (max-height:760px) and (min-width:761px) {

	#organizers img {
		width:120px;
	}

}

@keyframes shadow-pulse
{
	0% {
		box-shadow: 0 0 0 0 rgba(255,255,255,0.2);
		background-color:rgba(255,255,255,0.3);
	}
	100% {
		box-shadow: 0 0 0 35px rgba(255,255,255,0);
	}
}


#scroll-hint {
	display: flex;
    justify-content: center;
    align-items: center;
	width:40px; height:40px;
	position:absolute;
	left:calc(50% - 20px); bottom:30px;
	cursor:pointer;
	background-color:rgba(255,255,255,0.2);
	border-radius:100%;
	-webkit-border-radius:100%;
	-moz-border-radius:100%;
	animation: shadow-pulse 2s infinite;
	z-index:2;
    border: none;
    background: rgba(255,255,255,0.2);
    padding: 0;
    cursor: pointer;
}
#scroll-hint i {
	font-size:24px !important;
}

#scroll-hint:focus {
    box-shadow: 0 0 0 4px rgba(255,255,255,0.4);
    outline: none;
}

#scroll-hint:hover {
	background-color:rgba(255,255,255,0.5);
	animation:none;
}
#scroll-hint i {
	color:rgba(255,255,255,0.5);
	position:relative;
	top:1px;
	font-size:36px;
	pointer-events: none;
}

#footer-underlay {
	display:none;
	z-index:0;
	background-color:#000;
	position:fixed;
	left:0; bottom:0;
	width:100vw; height:50vh;
}

#hero {
	height:50vh;
	min-height:500px;
}

#main {
	position:relative;
	width:100vw; height:auto;
	min-height:50vh;
	z-index:5;
	background-color:#333;
	padding:3rem;
}

#main .vignette {
	position:absolute;
	left:0; top:0;
	width:100%; height:100%;
	background-image:radial-gradient(#333, #333, #000);
	background-position:fixed;
}