html {
  box-sizing: border-box;
}
html *,
html *:before,
html *:after {
  box-sizing: inherit;
}

body {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 100vw;
  height: 100vh;
  overflow: hidden;
  font-size: 62.5%;
  background-color: #121212;
  font-family: Arial, Helvetica, sans-serif;
  margin: 0;
  padding: 0;
}

.solar-system {
  position: relative;
  width: 100%;
  max-width: 700px;
  padding-top: 100%;
  right: 0;
  bottom: 0;
  transition: all 1.5s ease 0s;
}

.solar-system.top-pos {
    bottom: -45%;
	transition: all 1.5s ease 0s;
}
.solar-system.bot-pos {
    bottom: 45%;
	transition: all 1.5s ease 0s;
}
.solar-system.right-pos {
    right: 50%;
	transition: all 1.5s ease 0s;
}
.solar-system.left-pos {
    right: -50%;
	transition: all 1.5s ease 0s;
}

@media (min-width: 700px) {
  .solar-system {
    padding-top: 700px;
  }
}


/*** ORBITS ***/

.orbit {
  position: absolute;
  top: 50%;
  left: 50%;
  border: 2px dotted rgb(84 84 84 / 15%);
  border-radius: 100%;
  transform: translate(-50%, -50%);
}
.orbit-sun {
    width: calc(50%);
    height: calc(50%);
	border: 1px dotted #ff6600;
    background: #ffcc00;
}
.orbit-sun:before {
    content: "";
    background: #ff660017;
    width: 99%;
    height: 99%;
    display: block;
    margin-left: 0.5%;
    margin-top: 0.5%;
    border-radius: 100%;
    box-shadow: 0 0 10em 5em #ff66006b, 0 0 100px 50px #ff66006b inset, 0 0 10px 5px #ffcc00f2;
}
.orbit.orbit-sun:after {
    content: "SUN";
    color: #ffa200;
    top: 50%;
    position: absolute;
    left: -3.5em;
	transition: left 1s ease 0s;
}
.solar-system.right-pos .orbit-sun:after {
    left: calc(3.5em + 350px);
	transition: left 1s ease 0s;
}
.orbit-mercury {
	width: calc(100%);
    height: calc(100%);
	transform: translate(-50%, -50%);
}
.orbit-venus {
	width: calc(150%);
    height: calc(150%);
	transform: translate(-50%, -50%);
}
.orbit-earth {
	width: calc(200%);
    height: calc(200%);
	/* transform: translate(-50%, -50%) rotate(-10deg) !important; */
}
.orbit-earth:after {
    content: "";
    border: 2px solid red;
    width: 1em;
    height: 1em;
    display: block;
    position: relative;
    border-color: #54cbeb #54cbeb transparent transparent;
    transform: rotate(-50deg);
    border-width: 2px 2px 0 0;
    top: 52.75%;
    left: -0.5em; 	
	-webkit-animation: blinker 2s linear infinite; 	
	        animation: blinker 2s linear infinite;
}
.orbit-mars {
	width: calc(280%);
    height: calc(280%);
	transform: translate(-50%, -50%);
}
.orbit-asteroids {
	width: calc(380%);
    height: calc(380%);
	transform: translate(-50%, -50%) rotate(0deg);
}



/*** PLANETS ***/

.planet {
  position: absolute;
  top: 50%;
  border-radius: 100%;
  opacity: 0;
  transform: translateY(-50%);
  transition: opacity 0s ease 0s;
}
.planet-mercury {
    left: -6px;
    width: 10px;
    height: 10px;
    transition-duration: 1s;
	background: #bcc1c9;
}
.planet-venus {
    left: -8px;
    width: 14px;
    height: 14px;
    transition-duration: 2s;
    background: #ec5f24
}
.planet-earth {
    left: -13px;
    width: 24px;
    height: 24px;
	transition-duration: 3s;
	z-index: 1;
}
.planet-mars {
    left: -9px;
    width: 18px;
    height: 18px;
    transition-duration: 4s;
    background: #d83e3c;
}
.planet-asteroids {
    left: -40px;
    width: calc(100% + 80px);
    height: 1700px;
	transition: all 5s ease 0s;
}
.planet-mercury:before {
    content: "MERCURY";
    color: #bcc1c9;
    margin-left: 15px;
    top: 0px;
    position: absolute;
    height: 10px;
    line-height: 10px;
}
.planet-venus:before {
    content: "VENUS";
    color: #ec5f24;
    margin-left: 21px;
    top: 1px;
    position: absolute;
    height: 14px;
    line-height: 14px;
}
.planet-earth:before {
    content: "EARTH";
    color: #54cbeb;
    margin-left: 29px;
    top: 1px;
    position: absolute;
    height: 24px;
    line-height: 24px;
}
.planet-mars:before {
    content: "MARS";
    color: #d83e3c;
    margin-left: 23px;
    top: 1px;
    position: absolute;
    height: 18px;
    line-height: 18px;
}
.planet-asteroids:before, .planet-asteroids:after {
    content: "ASTEROID BELT";
    color: #666666;
    margin-left: 8em;
    top: 36.75%;
    position: absolute;
}
.planet-asteroids:after {
    right: 8em;
}
.planet-asteroids img + img {
    position: absolute;
    right: 0;
    transform: rotate(180deg);
}
.planet-mars:after, .planet-venus:after, .planet-mercury:after, .planet-earth:after {
    content: "";
    background: linear-gradient(105deg, rgba(0,0,0,1), rgba(0,0,0,0.6), transparent, transparent);
    display: block;
    width: 100%;
    height: 100%;
    border-radius: 100%;
    box-shadow: 0 0 3px 2px #ffffff26;
	opacity: 0.8;
	position: absolute;
    top: 0;
    left: 0;
}
.planet-earth:after {
    box-shadow: 0 0 5px 3px #54cbeb5c;
}
.planet img {
    width: 100%;
}

.planet-asteroids img {
    width: initial;
}



/*** SELECTED DAYS ***/

.new-year-line, .winter-solstice-line, .spring-equinox-line, .summer-solstice-line, .autumn-equinox-line {
    width: 12em;
    border-bottom: 2px dotted white;
    position: absolute;
    left: -13.35em;
    top: 50%;
    z-index: -1;
    color: white;
    margin-top: -13px;
    margin-left: -50%;
    height: 14px;
	line-height: 1em;
}
.new-year-line:after, .winter-solstice-line:after, .spring-equinox-line:after, .summer-solstice-line:after, .autumn-equinox-line:after {
    content: "";
    width: 28px;
    height: 28px;
    display: block;
    float: right;
    position: absolute;
    background: #ffffff00;
    right: -28px;
    top: -1px;
    border: 2px dotted #fff;
    border-radius: 100%;
}

.winter-solstice-line {
	margin-top: 120px;
    left: -12.05em;
}
.spring-equinox-line {
    top: -47.25%;
    left: 58.35%;
}
.summer-solstice-line {
  top: 30.35%;
  left: 178.75%;
}
.autumn-equinox-line {
	top: 148.5%;
  left: 97.5%;
}

#cronoNewYear, #cronoWinterSolstice, #cronoSpringEquinox, #cronoSummerSolstice, #cronoAutumnEquinox {
    left: 0;
    position: absolute;
    color: #fff;
    width: 100%;
    bottom: -17px;
	font-size: 1.1em;
}
#cronoNewYear span, #cronoWinterSolstice span , #cronoSpringEquinox span, #cronoSummerSolstice span, #cronoAutumnEquinox span {
	font-size: 0.75em;
	color: #666;
}



/*** WARNING ***/

#warning {
    position: fixed;
    left: 2em;
    bottom: 2em;
    background: rgb(0 0 0 / 0.75);
    height: 5em;
    width: 45em;
    font-size: 1.35em;
    color: #ffa200;
    z-index: 3;
    text-transform: uppercase;
    padding: 0;
    text-align: center;
    display: flex;
    justify-content: center;
    align-items: center;
}
#warning:before {
	content: " ! ";
	z-index: 2;
	font-size: 1.9em;
	margin-left: 1.15em;
	color: #ffa200;
	font-weight: bold;
	margin-top: 5px;
}
#warning:after {
	content: "";
	background: #ffa200;
	position: absolute;
	left: 0;
	width: 5em;
	height: 5em;
	z-index: 0;
}
#warning p {
    display: block !important;
    float: left;
    width: 100%;
    margin: 0 !important;
    padding-left: 2.5em;
}
#warning p:before {
	content: "";
	position: absolute;
	z-index: 1;
	border: 1.75em solid transparent;
	border-bottom: 2.85em solid #040404;
	left: 0.775em;
	top: -0.75em;
}
#reload {
    background: rgb(255 162 0);
    border: 0;
    border-radius: 1px;
    padding: 0.5em 0.75em;
    margin-left: 1.5em;
	cursor: pointer;
	outline: none;
}
#reload:hover {
    background: #54cbeb;
}



/* ARROWS */
.arrows {
    position: fixed;
    left: 0;
    top: 0px;
    width: 100vw;
    height: 100vh;
}

.arrows span {
    background: #ffffff;
    padding: 0.5em !important;
    position: absolute;
    cursor: pointer;
    margin: 1em;
    width: 3em;
    height: 3em;
    border-radius: 2px;
    text-align: center;
    line-height: 2em;
    opacity: 0.05;
	box-shadow: 0 0 3px -2px #000;
	transition: all 0.4s ease 0s;
}
.arrows span:hover {
	opacity: 0.9;
}
.arrows span:before {
    content: "";
    border: 4px solid #121212;
    width: 1.35em;
    height: 1.35em;
    float: left;
    border-left-width: 0;
    border-bottom-width: 0;
    transform: rotate(-45deg);
    margin-left: 0.3em;
    margin-top: 0.6em;
    border-radius: 3px;
}

.arrows span#down:before {
	transform: rotate(135deg);
    margin-top: 0;
}
.arrows span#right:before {
	transform: rotate(45deg);
    margin-left: 0.1em;
    margin-top: 0.35em;
}
.arrows span#left:before {
	transform: rotate(-135deg);
    margin-top: 0.3em;
    margin-left: 0.5em;
}

.arrows span#up, .arrows span#down {
	left: calc(50% - 2.5em);
}
.arrows span#down {
	bottom: 0;
}
.arrows span#right, .arrows span#left {
	bottom: calc(50% - 2.5em);
}
.arrows span#right {
	left: calc(100% - 5em);
}

.arrows span.active {
	opacity: 0.9;
}


/* ANIMATIONS */

@-webkit-keyframes blinker {
	0%   { opacity:0;   top:52.85%;}
	40%  { opacity:1;   top:51%;   }
	50%  { opacity:0;   top:51%;   }
	60%  { opacity:1;   top:51%; }
	100% { opacity:0;   top:48.25%;}
}

@keyframes blinker {
	0%   { opacity:0;   top:52.85%;}
	40%  { opacity:1;   top:51%;   }
	50%  { opacity:0;   top:51%;   }
	60%  { opacity:1;   top:51%; }
	100% { opacity:0;   top:48.25%;}
}
@-webkit-keyframes spin {
	from {transform: rotate(0deg) }
	to {transform: rotate(-360deg);}
}
@keyframes spin {
	from {transform: rotate(0deg) }
	to {transform: rotate(-360deg);}
}