body {
	font-family: 'Roboto', sans-serif;
	background: url("background.png") no-repeat top center fixed;
	background-size: cover;
	background-color: #bbb;
}

main {
	margin: 50px auto;
	max-width: 900px;
	
	display: flex;
	flex-direction: column;
}

footer {
	margin: 75px auto 25px auto;
	max-width: 900px;
}

nav#quick-links {
	position: fixed;
	right: 0;
	top: 300px;
	padding: 20px;
	background: #ccc;
	border-radius: 15px 0 0 15px;
}

#quick-links h1 {
	margin: 0 0 5px; 
	font-size: 18px;
	font-weight: 700;
	text-transform: uppercase;
	color: #777;
}

#quick-links ul + h1 {
	margin-top: 10px;
}

#quick-links ul {
	margin: 0;
	padding: 0;
}

#quick-links li {
	font-weight: 400;
	text-align: right;
}

#quick-links a {
	text-decoration: none;
	color: #05c;
}

section {
	overflow: auto;
	margin: 0 20px 75px 20px;
	padding: 20px;
	background-color: #d8d8d8;
}

h1 {
	margin: 0 20px 20px 20px;
	font-family: 'Roboto', sans-serif;
	font-size: 3em;
	font-weight: 300;
	letter-spacing: 1px;
	text-align: center;
	color: #eee;
}

h2, h3, h4, h5, h6 {
	font-family: 'Roboto Condensed', sans-serif;
	color: #222;
}

h2 {
	margin: 0 20px 5px 20px;
	font-size: 3em;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 1px;
	color: #dcdcdc;
}

h2 span.clarifier {
	padding-left: 5px;
	font-size: 0.5em;
	color: #ccc;
}

div.clarified-heading {
	display: flex;
	justify-content: space-between;
	align-items: flex-end;
}

div.clarified-heading h2 + p {
	margin: 0 20px 5px;
	font-family: 'Roboto Condensed', sans-serif;
	font-size: 1.8em;
	font-weight: 400;
	color: #ccc;
}

h4 {
	margin: 20px 0 0 20px;
	font-size: 1.15em;
	font-weight: 300;
}

p, li {
	margin: 0;
	padding: 0;
	font-size: 1.3em;
	font-weight: 300;
	line-height: 1.6em;
	color: #333;
}

dl {
	margin: 0;
}

dt {
	margin: 30px 0 5px;
	font-size: 1.4em;
	font-weight: 400;
	color: #333;
}

dt:nth-child(1) {
	margin-top: 0;
}

dd {
	margin-left: 20px;
}

dd table {
	width: auto;
	margin: 0 0 10px 10px;
	float: right;
}

dd thead th {
	padding: 0 0 3px;
	font-size: 1.3em;
}

dd table td {
	padding: 3px 10px;
	border: 1px solid black;
	font-size: 1.3em;
	font-weight: 300;
}

p + p {
	margin-top: 1em;
}

p + div.table-area {
	margin-top: 10px;
}

p + table {
	margin-top: 10px;
}

dl + p {
	margin-top: 40px;
}

p.h1-detail {
	margin: -20px 0 40px;
	font-size: 1.5em;
	font-weight: 500;
	text-align: center;
	text-transform: uppercase;
	letter-spacing: 5px;
	color: #ccc;
}

.no-wrap {
	white-space: nowrap;
}

.left-aligned {
	text-align: left;
}

.center-aligned {
	text-align: center;
}

.right-aligned {
	text-align: right;
}

div.table-area {
	background: #eee;
	padding: 10px;
	width: 100%;
}

table {
	width: 100%;
	padding: 50px;
	table-layout: auto;
	border-collapse: collapse;
}

th {
	padding: 0 0 10px 0;
	font-size: 2em;
	font-family: 'Roboto Condensed', sans-serif;
	font-weight: 400;
	letter-spacing: 1px;
	color: #16f;
}

th.subheader {
	font-size: 1.3em;
	font-weight: 400;
	color: #333;
}

th.subheader.round-header {
	font-size: 1.1em;
	font-family: 'Roboto', sans-serif;
	font-weight: 500;
	font-variant-numeric: tabular-nums;
	letter-spacing: 1px;
}

td {
	padding: 5px 0;
	text-align: center;
}

td p {
	margin: auto;
	font-size: 15px;
	text-align: right;
}

td p:nth-child(1) {
	font-size: 20px;
	font-weight: 700;
}

.week-results .splash-over-text {
	font-family: Carter One;
}

div.main-website-link {
	display: flex;
	flex-direction: column;
	align-items: flex-end;
}

.main-website-link p {
	margin: 0;
	font-size: 18px;
	font-weight: 300;
}

.main-website-link a {
	text-decoration: none;
	color: #dcdcdc;
}

#cobranding-wrapper {
	margin: 30px auto 0;

	display: flex;
	justify-content: center;
	align-items: center;
}

#brand-header {
	display: block;
	width: 500px;
	max-width: 90%;
}

.cobrand-header {
	height: 175px;
	width: auto;
}

#event-header {
	display: block;
	margin: auto auto 20px auto;
	width: 90%;
}

#social-media-links {
	display: flex;
	justify-content: center;
	margin-bottom: 20px;
}

#copyright-notice {
	font-size: 1.25em;
	text-align: center;
	color: #d8d8d8;
}

.fab {
	padding: 20px 15px 10px;
	border-radius: 50%;
	font-size: 30px;
	width: 40px;
	height: 40px;
	text-align: center;
	text-decoration: none;
}

.fab + .fab {
	margin-left: 20px;
}

.fa-facebook {
	color: white;
	background: #3b5998;
}

.fa-instagram {
	color: white;
	/* background: #125688; */
	background: radial-gradient(circle at 30% 107%, #fdf497 0%, #fdf497 5%, #fd5949 45%, #d6249f 60%, #285AEB 90%);
}

.fa-twitter {
	color: white;
	background: #55acee;
}

.fa-youtube {
	color: white;
	background: #bb0000;
}

.advancement-column {
	width: 100px;
}

.placement-column {
	width: 50px;
}

.symbolic-note-column {
	width: 35px;
}

.team-name-column {
	width: 150px;
}

.team-member-lineup-column {
	width: 210px;
}

.match-result-column {
	background: #ccc;
}

.individual-score-column {
	background: #ccc;
}

.vertical-cell {
	position: relative;
}

.vertical-cell-text {
	position: absolute;
	transform: translateX(-50%) rotate(-90deg) translate(+18px);
	font-size: 30px;
	font-weight: 300;
	letter-spacing: 7px;
	text-align: center;
	text-transform: uppercase;
	color: #03a;
}

td.secondary-info-cell {
	color: #444;
}

tr[round-result="advanced"] {
	background-color: #a0c0e8;
}

tr[round-result="advanced"] td.secondary-info-cell {
	background-color: #90b0d8;
}

tr[round-eligibility="ineligible"] p.player-name {
	color: #aaa;
}

tr[round-result="placed"] p.player-name {
	color: #3a0;
}

td p.score {
	font-size: 25px;
	text-align: center;
	color: #333;
}

tr[round-eligibility="ineligible"] td.score p,
tr[round-eligibility="ineligible"] p.score {
	color: #aaa;
}

tr p.hint {
	margin-top: -5px;
	font-size: 10px;
	font-weight: 700;
	text-align: center;
	text-transform: uppercase;
	color: #3a0;
}

td.emoji-cell {
	font-size: 30px;
}

td div.player-portrait-container {
	display: inline-block;
	position: relative;
}

nav.participant-links, nav.tips {
	display: float;
	float: right;
	margin: 0 0 20px 20px;
	max-width: 30%;
	padding: 20px;
	background-color: #eee;
}

nav ul {
	list-style: none;
}

nav.participant-links h2, nav.tips h2, .links-group h2 {
	margin-top: 0;
	font-size: 1.5em;
	font-style: normal;
	font-stretch: normal;
	font-weight: 400;
	text-align: center;
	color: #444;
}

.tips p.hint {
	margin-top: 10px;
	font-style: italic;
}

.tips p.relevant-now {
	font-size: 2em;
	font-weight: 500;
}

.emphasized {
	font-weight: bolder;
}

div.photos-group {
	display: flex;
	flex-direction: row;
	flex-wrap: wrap;
	justify-content: space-between;
	align-items: center;
	margin-top: 20px;
}

.photos-group img {
	flex: 1 1;
	margin: 5px;
	border-radius: 3px;
	padding: 10px;
	background-color: #eee;
	width: 200px;
}

.links-group h2 {
	margin-top: 0;
	font-size: 1.5em;
	font-style: normal;
	font-stretch: normal;
	font-weight: 400;
	text-align: center;
	color: #444;
}

div.links-group {
	display: flex;
	flex-direction: row;
	justify-content: space-between;
	margin-top: 200px;
}

div.links-group > div {
	padding: 20px;
	background-color: #eee;
}

div.links-group > div + div {
	margin-left: 20px;
}

div.participant-info {
	display: flex;
	flex-direction: row;
	justify-content: flex-start;
	align-content: flex-start;
	margin-top: 20px;
}

div.partner-links, div.supporter-links {
	display: flex;
	flex-direction: row;
	justify-content: space-around;
}

div.partner-info, div.supporter-info {
	display: flex;
	flex-direction: column;
	justify-content: flex-start;
	align-content: center;
	width: 30%;
}

.participant-info p, .partner-info p, .supporter-info p {
	font-size: 1.1em;
}

.partner-info p, .supporter-info p {
	margin: 0 auto;
	font-family: 'Roboto Condensed', sans-serif;
	font-size: .95em;
	font-weight: 400;
	text-align: center;
}

.partner-info a, .supporter-info a {
	text-decoration: none;
}

.participant-info img {
	margin: 5px 10px 0 0;
	height: 60px;
	width: 60px;
}

.partner-info img, .supporter-info img {
	margin: 0 auto;
	height: 60px;
	width: 60px;
}

.partner-info > a, .supporter-info > a {
	margin: 0 auto;
}

div.links-group > div {
	width: 50%;
}

span.participant-name {
	font-weight: 700;
}

div.named-group {
	display: flex;
	flex-direction: row;
	justify-content: flex-start;
	align-items: center;
	margin: 20px 0 0 0;
	padding: 20px;
	background-color: #eee;
}

div.placement-lineup {
	display: flex;
	flex-direction: row;
	justify-content: space-around;
	align-items: center;
	flex: 1 0 auto;
	background-color: #eee;
}

div.result-block {
	display: flex;
	flex-direction: column;
	align-content: center;
	margin: 0 20px;
	max-width: 175px;
	text-align: center;
	align-self: flex-start;
}

.placement-lineup h3, .named-group h3 {
	margin: 0 20px 0 0;
	padding: 0;
	align-self: center;
	writing-mode: vertical-lr;
	transform: rotate(180deg);
	font-size: 30px;
	font-weight: 300;
	letter-spacing: 7px;
	text-transform: uppercase;
}

.result-block h4 {
	margin: 0 0 5px 0;
	padding: 0;
	font-size: 35px;
	font-weight: 400;
}

.result-block[place="winner"] h4 {
	margin: 0 0 5px 0;
	height: 65px;
	min-width: 90px;
	padding: 0;
	background: url("crown.png") no-repeat bottom center;
	font-size: 20px;
	line-height: 95px;
}

.result-block[place="empty"] h4 {
	margin: 0 0 5px 0;
	height: 65px;
	padding: 0;
	line-height: 95px;
}

.result-block[place="1"] h4 {
	margin: 0 0 5px 0;
	height: 65px;
	min-width: 90px;
	padding: 0;
	background: url("crown.png") no-repeat bottom center;
	font-weight: 900;
	line-height: 80px;
}

.result-block[place="2"] h4 {
	margin-top: 50px;
}

.result-block[place="3"] h4 {
	margin-top: 75px;
}

.result-block p {
	margin: 0;
	font-family: 'Roboto Condensed', 'Roboto', sans-serif;
	font-size: 1.35em;
}

.result-block p.name {
	position: relative;
	margin-top: 5px;
	font-weight: 400;
	hyphens: auto;
}

.result-block img {
	height: 100px;
	width: 90px;
}

.avatar-collage {
	height: 100px;
	width: 100px;
}

.result-block[place="2"] .avatar-collage {
	height: 125px;
	width: 125px;
}

.result-block[place="1"] .avatar-collage {
	height: 150px;
	width: 150px;
}

.avatar-collage img {
	height: 50%;
	width: auto;
}

.result-block .avatar {
	height: 100px;
	width: auto;
	object-fit: scale-down;
}

.result-block[place="2"] .avatar {
	height: 125px;
}

.result-block[place="1"] .avatar {
	height: 150px;
}

span.winner-name {
	font-weight: 700;
}

.player-portrait-column {
	width: 65px;
}

.total-score-column {
	width: 200px;
}

table.round-results img {
	margin: auto 10px;
	height: 70px;
	width: 63px;
}

table.week-results img {
	height: 80px;
	width: 72px;
}

table.week-results .splash-over-text {
	position: absolute;
	margin: 0;
	padding: 0;
	width: 200px;
	left: -64px;
	bottom: -22px;
	font-size: 28px;
	font-family: 'Bungee', 'Roboto', sans-serif;
	text-align: center;
	text-stroke: 1.5px #eee;
	-webkit-text-stroke: 1.5px #eee;
}

table.week-results .win-ineligible .splash-over-text {
	color: #aaa;
}

table.week-results .winner img {
	margin: -5px 5px -5px -5px;
	border: 5px solid #ffd400;
}

table.week-results .winner .splash-over-text {
	text-stroke: 1.5px #ffd400;
	-webkit-text-stroke: 1.5px #ffd400;
}

table.week-results p {
	margin: 0;
	font-size: 0.9em;
	font-family: 'Roboto Condensed', 'Roboto', sans-serif;
	font-weight: 400;
	text-align: left;
}

table.week-results td.rank {
	transform: translateY(+20px);
	font-size: 1.5em;
}

table.week-results td.rank[rank="3"] {
	font-size: 2.0em;
}

table.week-results td.rank[rank="2"] {
	font-size: 2.5em;
}

table.week-results td.rank[rank="1"] {
	font-size: 3.0em;
}

table.week-results p.player-name {
	margin: 5px 0;
	transform: translateY(+12px);
	font-size: 1.25em;
	font-family: 'Roboto', sans-serif;
	font-weight: 400;
	text-align: center;
}

table.week-results .dense-column p.player-name {
	margin: 0;
	transform: none;
	font-size: 14px;
	font-weight: 700;
}

table.week-results .dense-column p.score {
	margin-top: -5px;
	font-size: 19px;
	font-family: 'Roboto', 'Roboto Condensed', sans-serif;
	font-variant-numeric: tabular-nums;
	text-align: center;
	color: #555;
}

table.week-results p.state-name {
	font-family: 'Roboto', sans-serif;
	font-weight: 900;
	color: #888;
}

table.week-results td.grade {
	padding: 5px 0 0 0;
	display: flex;
	flex-direction: column;
	justify-content: flex-start;
	align-items: center;
}

table.week-results td.grade .undersized-text {
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 1.5px;
}

table.week-results .grade-column {
	width: 80px;
}

table.week-results td.grade .oversized-text {
	margin-top: -15px;
	font-size: 50px;
	font-family: 'Roboto', 'Roboto Condensed', sans-serif;
	font-weight: 500;
	font-variant-numeric: tabular-nums;
}

tr[round-eligibility="ineligible"] p.player-callout {
	font-weight: 500;
	color: #16f;
}

tr[round-eligibility="ineligible"] p.player-callout::before {
	content: "🏆 ";
}

table.round-results td.rank {
	font-size: 25px;
	font-weight: 300;
	color: #444;
}

div.event-block {
	display: flex;
	flex-direction: row;
	justify-content: flex-start;
	align-items: center;
	margin: 20px 0;
	padding: 20px;
	background-color: #eee;
}

.event-block h3 {
	margin: 0;
	padding: 0;
	align-self: center;
	writing-mode: vertical-lr;
	transform: rotate(180deg);
	font-size: 20px;
	font-weight: 300;
	letter-spacing: 3px;
	text-transform: uppercase;
}

.hover-detail {
	display: none;
}

img:hover + .hover-detail {
	display: inherit;
	position: absolute;
	z-index: 10;
	top: 55px;
	transform: translateX(-50%);
	left: 50%;
	padding: 5px 10px;
	background-color: #eee;
	white-space: nowrap;
	text-align: center;
}

.videos-group {
	display: flex;
	flex-direction: column;
	justify-content: center;
	margin-top: 40px;
	padding: 20px;
	background: #eee;
}

.videos-group h3 {
	margin-top: 0;
	font-size: 1.5em;
	font-style: normal;
	font-stretch: normal;
	font-weight: 400;
	text-align: center;
	color: #444;
}

.videos-container {
	display: flex;
	flex-direction: row;
	justify-content: space-between;
}

span[product-feel="towerstorm"] {
	font-weight: bolder;
	color: #db0;
}

span[product-feel="meltdown"] {
	font-weight: bolder;
	color: #e55;
}

span[product-feel="velocity"] {
	font-weight: bolder;
	color: #0b0;
}

@media only screen and (max-width: 800px) {
	.quickly-omittable-cell { display: none; visibility: hidden; }
	div.named-group { flex-direction: column; }
	.named-group h3 { writing-mode: inherit; transform: inherit; margin: 0 0 20px 0; }
}

@media only screen and (max-width: 650px) {
	div.links-group { flex-direction: column; }
	div.links-group > div { width: inherit; }
	div.links-group > div + div { margin: 20px 0 0 0; }
	div.placement-lineup { flex-direction: column; }
	.placement-lineup h3 { writing-mode: inherit; transform: inherit; }
	div.result-block { align-self: center; }
}

@media only screen and (max-width: 550px) {
	.reservedly-omittable-cell { display: none; visibility: hidden; }
}
