#menuchk, #menu * {
	-webkit-user-select: none;
	-moz-user-select: none;
	-o-user-select: none;
	-ms-user-select: none;
	    user-select: none;
}

/*//////////// TRIGGER /////////////*/

#menuchk {
	display:none
}

#menuchk~label {
	font-size:calc(3vmin + 0.75rem);
	z-index:6100;
	position:fixed;
	right:1em;
	top:1em;
	display:block;
	padding:1em;
	border-radius:100%;
	background:#2e69fd;
	cursor:pointer;
  -webkit-transition: all 0.33s;
  transition: all 0.33s;

}

#menuchk:checked~label {
	background:#2e69fd;
}

#menuchk~label>div,
#menuchk~label>div:after,
#menuchk~label>div:before {
	position:absolute;
	width:0;
	height:0;
	padding:0.05em 0.6em;
	border-radius:0.08em;
	background:currentColor;
  -webkit-transition: all 0.33s;
  transition: all 0.33s;
}

#menuchk~label>div {
  left:calc(50% - 0.6em);
  top:calc(50% - 0.05em);
	background:rgba(0,0,0,0);
	-webkit-transform:rotate(90deg);
	        transform:rotate(90deg);
}

#menuchk~label>div:after,
#menuchk~label>div:before {
	content:'';
	display:block;
	left:0;
	top:0;
}

#menuchk:checked~label>div:before,
#menuchk:checked~label>div:after {
	background:#ffffff;
}

#menuchk:checked~label>div:before {
  -webkit-transform:translateY(-0.4em) rotate(0deg);
          transform:translateY(-0.4em) rotate(0deg);
}

#menuchk:checked~label>div:after {
  -webkit-transform:translateY(0.4em) rotate(0deg);
          transform:translateY(0.4em) rotate(0deg);
}

#menuchk~label>div:before {
  -webkit-transform:translateY(0) rotate(-45deg);
          transform:translateY(0) rotate(-45deg);
}

#menuchk~label>div:after {
  -webkit-transform:translateY(0) rotate(45deg);
          transform:translateY(0) rotate(45deg);
}

#menuchk:checked~label>div {
  background:#ffffff;
	-webkit-transform:rotate(0deg);
	        transform:rotate(0deg);
}

/*//////////// MENU /////////////*/

#menu {
	z-index:6000;
	position:fixed;
	-webkit-box-sizing:border-box;
	        box-sizing:border-box;
	top:0;
	left:0;
	width:100vw;
	height:100vh;
	padding:calc(14vmin + 3.5rem) calc(6vmin + 1.5rem) 18vh;
	overflow:hidden;
	background:#ffffff;
	color:currentColor;
}

#menu > div {
  width:100%;
	height:100%;
}

#menu * {
	color:inherit;
	outline:none !important;
}

#menu>span {
	pointer-events:none;
	z-index:100;
	position:absolute;
	top:-10vh;
	left:-8vh;
	display:block;
	overflow:hidden;
	width:120vh;
	height:120vh;
	text-align:center;
	font-size:42vh;
	line-height:35vh;
	-webkit-transform:rotate(-90deg);
	        transform:rotate(-90deg);
	opacity:0.2;
}

#menu ul {
	z-index:120;
	position:relative;
	top:0;
	right:0;
	width:100%;
	height:100%;
	text-align:right;
	display:-webkit-box;
	display:-ms-flexbox;
	display:flex;
	-webkit-box-orient:vertical;
	-webkit-box-direction:normal;
	    -ms-flex-direction:column;
	        flex-direction:column;
	-webkit-box-pack:justify;
	    -ms-flex-pack:justify;
	        justify-content:space-between;
}

#flags {
  margin-top: 10px;
  width:100%;
	height:5em !important;
	display:-webkit-box;
	display:-ms-flexbox;
	display:flex;
  -webkit-box-pack:end;
      -ms-flex-pack:end;
          justify-content:flex-end;
	-webkit-box-align:bottom;
	    -ms-flex-align:bottom;
	        align-items:bottom;
}

#menu li {
	font-size:4.5vh !important;
}

#menu li a {
	position:relative;
	font-size:inherit !important;
	line-height:inherit !important;
}

#menu li a:before {
	content:'';
	display:block;
	position:absolute;
	left:-1em;
	top:14vh;
	height:100%;
	margin-top:-14vh;
	background:#ffffff;
	opacity:0.66;
	-webkit-transform:skew(-30deg);
	        transform:skew(-30deg);
	width:0;
	-webkit-transition:all 0.5s;
	transition:all 0.5s;
}

#menu li:hover a:before {
	width:12em;
}

/*//////////// ANIMATION /////////////*/

#menuchk~label~#menu {
  -webkit-animation:menu-in 0.33s;
          animation:menu-in 0.33s;
}

#menuchk:checked~label~#menu {
	display:none;
}

@-webkit-keyframes menu-in{
	0% {
		display:block;
		-webkit-transform:skew(45deg) translateX(100vw) translateY(-25vh) scale(0.5);
		        transform:skew(45deg) translateX(100vw) translateY(-25vh) scale(0.5);
		opacity:0;
	}
	100 % {
		display:block;
		-webkit-transform:initial;
		        transform:initial;
		opacity:1;
	}
}

@keyframes menu-in{
	0% {
		display:block;
		-webkit-transform:skew(45deg) translateX(100vw) translateY(-25vh) scale(0.5);
		        transform:skew(45deg) translateX(100vw) translateY(-25vh) scale(0.5);
		opacity:0;
	}
	100 % {
		display:block;
		-webkit-transform:initial;
		        transform:initial;
		opacity:1;
	}
}
