* {
	 margin: 0;
	 padding: 0;
}
 html {
	 height: 100%;
}
 article, aside, details, figcaption, figure, footer, header, hgroup, main, nav, section, summary {
	 display: block;
}
 body {
	 font: 12px/18px 'Montserrat', 'Mada', Arial, sans-serif;
	 height: 100%;
	 background-color: #8fd0ba;
}
 body.overlayed {
	 position: fixed;
	 top: 0;
	 left: 0;
	 width: 100%;
	 height: 100%;
	 overflow: hidden;
	 z-index: 99;
}
 .wrapper {
	 width: 100%;
	 min-width: 1000px;
	 min-height: 100%;
	 height: auto !important;
	 height: 100%;
	 display: flex;
	 flex-direction: column;
}
/* Header -----------------------------------------------------------------------------*/
 .header {
	 height: 150px;
	 background: #FFE680;
}
/* Contest -----------------------------------------------------------------------------*/
/* .contest-day .live-video {
	 position: absolute;
}
 */
 .contest-day .footer {
	 box-sizing: border-box;
}
 .contest-day .footer .links {
	 flex: 1;
	 display: flex;
}
 .contest-day .footer .links .source {
	 flex-basis: 20em;
	 display: flex;
	 position: relative;
	 top: 12px;
	 border-radius: 3px;
	 left: -2em;
}
 .contest-day .footer .links .source:hover {
	 background-color: rgba(255,255,255,.1);
	 cursor: pointer;
}
 .contest-day .footer .links .source.youtube::before {
	 left: 0;
}
 .contest-day .footer .links .source.youtube #youtubeSource {
}
 .contest-day .footer .links .source.twitch #twitchSource {
}
 .contest-day .footer .links .source.twitch::before {
	 left: 50%;
}
 .contest-day .footer .links .source::before {
	 content: "";
	 display: block;
	 position: absolute;
	 width: 50%;
	 height: 100%;
	 background-color: #d83f5c;
	 z-index: 1;
	 border-radius: 3px;
	 transition: all 0.2s;
}
 .contest-day .footer .links .source span {
	 font-size: 1.2em;
	 color: #fff;
	 display: block;
	 width: 50%;
	 text-align: center;
	 padding-top: 1.4em;
	 z-index: 2;
	 text-transform: uppercase;
	 font-weight: 600;
}
 .contest-day .footer .links .lang {
	 display: flex;
	 position: relative;
	 max-height: 100%;
	 transition: all 0.2s;
}
 .contest-day .footer .links .lang div {
	 display: flex;
	 transition: all 0.2s;
}
 .contest-day .footer .links .lang span {
	 display: block;
	 font-size: 1.2em;
	 margin: 1.6em 0.3em 0 0.3em;
	 border-radius: 1.25em;
	 width: 2.5em;
	 height: 2.5em;
	 text-align: center;
	 box-sizing: border-box;
	 padding-top: 0.6em;
	 color: #fff;
	 cursor: pointer;
	 transition: all 0.2s;
}
 .contest-day .footer .links .lang span#splitLang-youtube, .contest-day .footer .links .lang span#splitLang-twitch {
	 width: 4.5em;
}
 .contest-day .footer .links .lang span#mirrorLang-youtube, .contest-day .footer .links .lang span#mirrorLang-twitch {
	 width: 14.5em;
}
 .contest-day .footer .links .lang span:hover {
	 background-color: rgba(255,255,255,.1);
}
 .contest-day .footer .links .lang span.selected {
	 background-color: #d83f5c;
	 cursor: default;
}
 .contest-day .footer .links .lang .hidden {
	 max-width: 0em;
	 opacity: 0;
	 overflow: hidden;
}
 .contest-day .footer .links .lang .showed {
	 max-width: 500em;
	 opacity: 1;
	 transition-delay: 0.3s;
}
 .wrapper.contest-day .footer a {
	/* background-size: contain;
	 background-repeat: no-repeat;
	 height: 55px;
	 top: 14px;
	 margin: 0 1.2em;
	 */
}
 .contest-day .footer a.icpc-2018 {
	 width: 40px;
}
 .contest-day .footer a.acm-icpc {
	/* width: 65px;
	 margin: 0 1em 0 2.8em;
	 top: 11px;
	 */
}
 .contest-day .footer a.icpc-live {
	/* width: 70px;
	 top: 17px;
	 */
}
/* Middle -----------------------------------------------------------------------------*/
 .announce {
	 position: absolute;
	 bottom: 1rem;
	 left: 2rem;
	 font-size: 3rem;
	 line-height: 3rem;
	 display: flex;
	 color: #fff1d2;
}
 .content {
	/*background-color: #a42544;
	*/
	 position: relative;
	 width: 100%;
	 height: 100%;
	 flex: 1;
	 display: flex;
	 flex-direction: column;
	 justify-content: center;
	 overflow: hidden;
	 z-index: 1;
}
 .content .full-height {
	 flex-basis: 100vh;
}
 .content .title-page {
	/* flex-basis: 100vh;
	*/
	 display: flex;
	 flex-direction: column;
	 background: url("img/background4.png") no-repeat center top;
	 background-size: cover;
	 background-color: #90d1bb;
	 z-index: 100;
	 overflow: hidden;
	 position: relative;
}
 .content .title-page .live-video {
	/* height: 100%;*/
	 width: 100%;
}
 .content .title-page .live-video iframe {
	 background-color: #47253b;
}
 .content .title-page span {
	 display: block;
}
 .content .title-page .title {
	 text-align: center;
	 text-shadow: -2px 0 0 #47253b;

}
 .content .title-page .large-title {
	 color: #f7a6a0;
	/* line-height: 16em;*/
	 line-height: 20vh;
	 font-weight: 800;
	 position: absolute;
	 top: 5%;
	 left: 5%;
	 text-align: center;
	 background-image: url("img/panda.png");
	 background-repeat: no-repeat;
	 background-position: top center;
	 background-size: 90px;
	 text-align: center;
}
 .content .title-page .panda-logo {
	 display: block;
	 height: 3em;
	 width: 100%;
	/* font-size: 1.8em;*/
	 font-size: 2vh;
	 letter-spacing: 0.75em;
	 line-height: 2.5em;
	/* padding-left: 1.1em;*/
	 padding-top: 3em;
	 font-weight: 100;
}
 .content .title-page .large-title span {
	 display: block;
	 text-transform: uppercase;
	 cursor: default;
	 transition: all 0.5s;
	 text-shadow: 2px 2px 0 #47253b, 3px 3px 0 #47253b, 4px 4px 0 #47253b, 5px 5px 0 #47253b, 6px 6px 0 #47253b, 7px 7px 0 #47253b, 8px 8px 0 #47253b, 9px 9px 0 #47253b, 10px 10px 0 #47253b, 11px 11px 0 #47253b, 12px 12px 0 #47253b, 13px 13px 0 #47253b, 14px 14px 0 #47253b, 15px 15px 0 #47253b, 16px 16px 0 #47253b, 17px 17px 0 #47253b, 18px 18px 0 #47253b, 19px 19px 0 #47253b;
}
 .content .title-page .large-title:hover span {
	 color: #c7334b;
	 text-shadow: 2px 2px 0 #47253b, 3px 3px 0 #47253b, 4px 4px 0 #47253b, 5px 5px 0 #47253b, 6px 6px 0 #47253b, 7px 7px 0 #47253b, 8px 8px 0 #47253b, 9px 9px 0 #47253b, 10px 10px 0 #47253b, 11px 11px 0 #47253b, 12px 12px 0 #47253b, 13px 13px 0 #47253b, 14px 14px 0 #47253b, 15px 15px 0 #47253b, 16px 16px 0 #47253b, 17px 17px 0 #47253b, 18px 18px 0 #47253b, 19px 19px 0 #47253b, 20px 20px 0 #47253b, 21px 21px 0 #47253b, 22px 22px 0 #47253b, 23px 23px 0 #47253b, 24px 24px 0 #47253b, 25px 25px 0 #47253b, 26px 26px 0 #47253b, 27px 27px 0 #47253b, 28px 28px 0 #47253b, 29px 29px 0 #47253b, 30px 30px 0 #47253b, 31px 31px 0 #47253b, 32px 32px 0 #47253b, 33px 33px 0 #47253b, 34px 34px 0 #47253b, 35px 35px 0 #47253b, 36px 36px 0 #47253b, 37px 37px 0 #47253b, 38px 38px 0 #47253b, 39px 39px 0 #47253b, 40px 40px 0 #47253b;
}
 .content .title-page .large-title .month {
	/* font-size: 9.1em;
	*/
	 font-size: 10.5vh;
	/* padding-left: 0.2em;
	*/
	 margin-top: -0.3em;
}
 .content .title-page .large-title .num {
	/* font-size: 25em;
	*/
	 font-size: 29vh;
	 color: #fff;
}
 .content .title-page .large-title .time {
	/* font-size: 6.5em;
	*/
	 font-size: 7vh;
	/* padding-left: 0.3em;
	*/
}
 .content .title-page .large-title a {
	 margin-top: -11em;
	 position: relative;
	 display: inline-block;
	 line-height: 0.8em;
	 color: #47253b;
	 text-decoration: none;
	 top: -3em;
	/* font-size: 2em;
	*/
	 font-size: 3vh;
	/* margin-left: 1.5em;
	*/
	 border-bottom: 6px solid #c7334b;
	 transition: all 0.2s;
}
 .content .title-page .large-title a:hover {
	 color: #fff;
	 border-bottom: 8px solid #47253b;
}
 .archive-page {
	/* padding: 0 5%;
	*/
	 position: relative;
	 display: flex;
	 flex-direction: row;
	 justify-content: stretch;
	 border-bottom: 8px solid #c7334b;
	 background-color: #a42544;
}
 .archive-page.finals-default {
	 background-size: cover;
}
 .archive-page.finals-2015 {
	 background-repeat: repeat;
}
 .archive-page .title {
	 position: relative;
	 text-align: center;
	 color: #fff;
	 line-height: 3em;
	 padding: 2vh 3em;
	 display: flex;
	 flex-direction: column;
	 justify-content: flex-end;
	 text-align: left;
	 flex-basis: 30vh;
	 background-size: 80% auto;
	 background-position: 50% 10%;
}
 .archive-page .title h1 {
	 color: #000;
}
 .archive-page .title h2 {
	 line-height: 1.5em;
	 color: #000;
}
 .archive-page .playlist {
	 width: 100%;
	/* height: 100%;
	*/
	 position: relative;
	/* flex: 1;
	*/
	 display: flex;
	 overflow: hidden;
	/* padding-bottom: 5vh;
	*/
}
 .archive-page .playlist iframe {
	 position: absolute;
	 height: 100%;
	 width: 100%;
}
/*Mobile*/
 @media only screen and (max-device-width: 480px) {

         .archive-page .title {
		background-size: auto 80%;
		background-position: 90% 50%;
         }
	 .content .title-page {
		 background: url("img/mob_bg.png") no-repeat top center;
		 background-size: cover;
		 flex-basis: 90vh;
	}
	 .content .footer .tram {
		/* display: none;
		 */
		 background-size: 143% auto;
	}
	 .footer .tiles {
		 flex-grow: 0.5;
		 border-bottom: 1rem solid #fff8de;
	}
	 .footer .tiles a {
		 top: 2rem;
	}
	 .footer .tiles #subscribe {
		 font-size: 4rem;
		 padding: 4rem;
		 border-radius: 0.5rem;
		 top: 5.5rem;
	}
	 .content .large-title {
		 left: 0 !important;
		 width: 100%;
	}
	 .content .middle {
		 flex: 0.9;
	}
	 .content .archive-page.finals-2018 .title {
		 background-size: 60% auto;
		 background-position: 120% 40%;
	}
	 .content .archive-page.finals-2018 {
		 background-position: 0 -150px;
		 background-size: auto;
		 background-repeat: no-repeat;
	}
	 .content .footer {
		/* flex-flow: row wrap;
		 justify-content: center;
		 font-size: 2em;
		 */
	}
	 .content .footer a {
		 margin-top: 2em;
	}
	 .content .footer .links {
		 width: 100%;
		 flex-basis: 100%;
		 flex-flow: row wrap;
		 justify-content: center;
	}
	 .content .footer .links #sourceToggle {
		 width: 100%;
		 flex-basis: 100%;
		 left: 0;
		 margin-top: 1em;
	}
	 .content .footer .links .lang span {
		 padding-top: 0.85em;
	}
	 .content .footer .links #langsToggle {
		 height: 300px;
		 margin-top: 3em;
	}
	 .content .footer .links #langsToggle div {
		 flex-flow: row wrap;
		 justify-content: center;
	}
	 .content .footer .links #mirrorLang-youtube, .content .footer .links #mirrorLang-twitch {
		 width: 50%;
		 flex-basis: 50%;
	}
	 .content .footer .links #sourceToggle span {
		 padding-bottom: 1.4em;
	}
	 .footer .game {
		 display: none !important;
	}
	 .content .polls {
		 font-size: 3em;
		 padding: 5vh;
		 line-height: 2em;
	}
	 .content .polls #teamsList.expanded {
		 max-height: 1000em;
	}
	 .content .polls #teamsList .list li {
		 display: block;
	}
	 .content .polls #teamsList .list li .hashtag {
		 display: block;
	}
	 .content .archive-page {
		 flex-direction: column;
	}
	 .content .archive-page .title {
		 flex-basis: 15vh;
		 font-size: 2em;
	}
	 .content .archive-page .playlist {
		 height: 85vh;
	}
	 .archive-page.finals-2016 .title {
		 background-size: 40% auto;
		 background-position: right center;
	}
}
/*Screen height < 900px*/
/* @media (max-height: 2000px) {
	 .content .title-page .panda-logo {
		 font-size: 2vh;
	}
	 .content .title-page .large-title {
		 line-height: 20vh;
	}
	 .content .title-page .large-title .month {
		 font-size: 10.5vh;
	}
	 .content .title-page .large-title .num {
		 font-size: 28vh;
	}
	 .content .title-page .large-title .time {
		 font-size: 7vh;
	}
	 .content .title-page .large-title a {
		 font-size: 3vh;
	}
}
 */
/* @media (max-height: 800px) {
	 .content .title-page .large-title {
		 line-height: 14em;
	}
	 .content .title-page .large-title .month {
		 font-size: 7.37em;
	}
	 .content .title-page .large-title .num {
		 font-size: 22.5em;
	}
	 .content .title-page .large-title .time {
		 font-size: 5.85em;
	}
	 .content .title-page .large-title a {
		 font-size: 1.8em;
	}
}
 */
 div {
	 box-sizing: border-box;
}
 .gameContainer {
	 position: fixed;
	 top: 0;
	 left: 0;
	 width: 100%;
	 height: 100%;
	 z-index: 101;
}
 #closeGame {
	 display: inline-block;
	 font-weight: 800;
	 z-index: 102;
	 position: fixed;
	 top: 20px;
	 right: 5%;
	 cursor: pointer;
	 font-size: 1.5em;
	 color: #fff;
}
 #closeGame:hover {
	 color: #000;
}
 #closeGame.hidden {
	 display: none;
}
 .gameContainer.hidden {
	 display: none;
}
 .middle {
	 flex: 1;
	 position: relative;
	 display: flex;
}
 .first .title .icpc {
	 font-size: 6em;
	 font-weight: 900;
	 letter-spacing: 0.05em;
	 color: #f7a6a0;
	 line-height: 2em;
	 text-transform: uppercase;
}
 .first .title .date {
	 font-size: 3em;
	 font-weight: 600;
	 color: #fff;
	 line-height: 1em;
}
 #gameContainer {
	 position: relative;
	 width: 100%;
	 height: 100%;
	 border: none;
}
 .second {
	 position: absolute;
	 top: 100%;
}
 .polls {
	 padding: 10vh;
	 font-size: 1.2em;
	 font-weight: 300;
	 line-height: 1.6em;
	 background-color: #fff;
}
 .polls h1 {
	 margin-bottom: 1em;
}
 .polls b {
	 font-weight: 400;
	 color: #c7334b;
}
 .polls a {
	 font-weight: 400;
	 display: inline-block;
	 position: relative;
	 text-decoration: none;
	 color: #000;
}
 .polls a:hover {
	 color: #c7334b;
}
 .polls a:hover:after {
	 opacity: 0;
}
 .polls a:after {
	 content: "";
	 position: absolute;
	 width: 100%;
	 height: 3px;
	 background-color: #c7334b;
	 left: 0;
	 bottom: 2px;
	 transition: all 0.2s;
}
 .polls #teamsList .button {
	 width: 100%;
	 text-align: center;
}
 .polls #teamsList {
	 max-height: 2em;
	 overflow: hidden;
	 margin-top: 2em;
	 transition: all 0.2s;
}
 .polls #teamsList.expanded {
	 max-height: 1000em;
}
 .polls #teamsList .list {
	 margin-top: 3em;
}
 .polls #teamsList .list li {
	 display: flex;
	 flex-wrap: nowrap;
	 margin-bottom: 1em;
}
 .polls #teamsList .list li .hashtag {
	 flex-basis: 20% 
}
 .polls #teamsList .showHideTeams {
	 font-weight: 600;
	 display: inline-block;
	 border-bottom: 4px solid #c7334b;
	 line-height: 0.7em;
	 color: #000;
	 transition: all 0.2s;
	 margin-top: 1em;
	 cursor: pointer;
}
 .polls #teamsList .showHideTeams:hover {
	 color: #983145;
}
 .archive {
	 padding: 5%;
	 font-size: 1.5em;
	 font-weight: 300;
	 line-height: 1.6em;
}
 .archive h2 {
	 margin-top: 2em;
}
 .archive a {
	 text-decoration: none;
	 font-weight: 600;
	 display: inline-block;
	 border-bottom: 4px solid #c7334b;
	 line-height: 0.7em;
	 color: #000;
	 transition: all 0.2s;
	 margin-top: 1em;
}
 .archive a:hover {
	 color: #983145;
	 border-bottom: 8px solid #c7334b;
}
/* Footer -----------------------------------------------------------------------------*/
 .footer {
	 position: absolute;
	 display: flex;
	 flex-direction: column;
	 flex-wrap: wrap;
	 justify-content: stretch;
	 bottom: 0;
	 left: 0;
	 width: 100%;
	 height: 100%;
	/* background: url("img/footer.png") no-repeat center bottom;
	 background-size: cover;
	 */
}
 .footer .temp {
	 flex-grow: 9;
}
 .footer .tram {
	 flex-grow: 7;
	/* background: url("img/tram.png") no-repeat bottom center;
	 */
	 background-size: contain;
}
 .footer .tiles {
	/* flex-grow: 3;
	 */
	 background: url("img/tiles.png") no-repeat top center;
	 background-size: cover;
	 padding: 4rem 2rem 3rem 2rem;
	 text-align: right;
	 position: relative;
}
 .footer #subscribe {
	 display: inline-block;
	 position: absolute;
	 padding: 2rem;
	 background-color: #e71a4a;
	 text-align: center;
	 font-size: 1rem;
	 color: #fff;
	 text-decoration: none;
	 line-height: 0.1px;
	 height: auto;
	 margin: 0;
	 top: 4.5rem;
	 left: 2rem;
	 margin: 0 auto;
	 border-radius: 0.2rem;
	 box-shadow: 2px 2px 0 #47253b, 3px 3px 0 #47253b, 4px 4px 0 #47253b, 5px 5px 0 #47253b, 6px 6px 0 #47253b;
	 transition: 0.5s all;
}
 .footer #subscribe:hover {
	 background-color: #ff2c63;
	 box-shadow: 2px 2px 0 #47253b, 3px 3px 0 #47253b, 4px 4px 0 #47253b, 5px 5px 0 #47253b, 6px 6px 0 #47253b, 7px 7px 0 #47253b, 8px 8px 0 #47253b, 9px 9px 0 #47253b, 10px 10px 0 #47253b, 11px 11px 0 #47253b, 12px 12px 0 #47253b, 13px 13px 0 #47253b, 14px 14px 0 #47253b, 15px 15px 0 #47253b, 16px 16px 0 #47253b, 17px 17px 0 #47253b, 18px 18px 0 #47253b, 19px 19px 0 #47253b;
}
 .footer .acm-icpc, .footer .icpc-live, .footer .icpc-2019 {
	 position: relative;
	 display: inline-block;
	 height: 5rem;
}
 .footer .icpc-live {
}
 .footer .acm-icpc {
	 width: 120px;
	 margin: 0;
	/* background: url("img/acm_icpc.png") no-repeat top center;
	 */
	 background: url("img/icpc-logo.svg") no-repeat top center;
	/* background-size: 110% 110%;
	 */
	 background-size: contain;
}
 .footer .icpc-live {
	 width: 120px;
	 margin: 0 1rem 0 0;
	 top: 0.7rem;
	 background: url("img/icpc_live.png") no-repeat top center;
	 background-size: contain;
}
 .footer .icpc-2019 {
	 width: 120px;
	 margin: 0;
	 background: url("img/icpc-2019.png") no-repeat top center;
	 background-size: contain;
}
 .footer a {
	 display: block;
	 position: relative;
	 background-size: cover;
	 margin: 0 2em;
}
 .footer a.icpc-2018 {
	 width: 71px;
	 height: 83px;
	 background-image: url("img/icpc_2018.png");
}
 .footer a.acm-icpc {
}
 .footer a.icpc-live {
	/* width: 106px;
	 height: 62px;
	 background-image: url("img/icpc_live.png");
	 top: 8px;
	 */
}
 .footer .game {
	 font-family: 'VT323', monospace;
	 color: #fff;
	 justify-self: center;
	 flex: 1;
	 font-size: 3em;
	 text-transform: uppercase;
	 padding-top: 0.7em;
}
 .footer .game b {
	 font-weight: 400;
	 cursor: pointer;
	 position: relative;
	 padding: 0 45px;
}
 .footer .game b:before, .footer .game b:after {
	 content: "";
	 display: block;
	 width: 27px;
	 height: 24px;
	 background: url(img/panda_small.png) no-repeat center center;
	 position: absolute;
	 top: 6px;
	 animation: blink 3s infinite;
}
 .footer .game b:after {
	 right: 0;
}
 @keyframes blink {
	 0% {
		opacity: 0
	}
	 49%{
		opacity: 0
	}
	 50% {
		opacity: 1
	}
}
 