@import url('https://fonts.googleapis.com/css2?family=Jost:wght@200;300&display=swap');

:root {
  --border-gray-light: rgba(235, 235, 235, 0.3);
  --border-gray-dark: rgba(105, 105, 105, 0.8);

  --button-background-color: rgba(255, 255, 255, .1);
  --button-hover-background-color: rgba(235, 235, 235, .5);
}

body {
  font-family: 'Jost', serif;
  font-size: calc(1em + .5vh);
  font-weight: lighter;
  background-attachment: fixed;
  background-image: url('../img/navigator.png');
  background-position: center;
  background-size: cover;
}

h1 {
  align-items: center;
  bottom: 1.765%;
  color: white;
  display: flex;
  font-weight: 300;
  justify-content: center;
  left: 25%;
  letter-spacing: .235ch;
  margin-top: -3.35%;
  padding-left: .45ch;
  right: 25%;
}

.navigator-nav {
  align-content: space-around;
  align-items: stretch;
  border: 1px solid rgba(235, 235, 235, 0.3);
  border-radius: 8px;
  box-shadow: 0 5px 18px rgba(0, 0, 0, 0.3);
  display: flex;
  flex-flow: row wrap;
  justify-content: space-around;
  height: 30vw;
  margin: 17.35vh auto;
  position: relative;
  width: 30vw;
}

.navigator-nav::after,
.navigator-nav::before,
.navigator-nav > button::after,
.navigator-nav > a::after,
.navigator-nav > button::before,
.navigator-nav > a::before {
  background-color: white;
  box-shadow: 0 0 13px 1px rgba(0, 0, 0, .2);
  content: '';
  opacity: .3;
  position: absolute;
  transition-duration: .5s;
  transition-timing-function: ease-in-out;
}

.navigator-nav::after {
  bottom: -15%;
  left: 49.75%;
  right: 49.75%;
  top: -15%;
  transform-origin: center;
}

.navigator-nav::before {
  bottom: 49.65%;
  left: -15%;
  right: -15%;
  top: 49.65%;
  transform-origin: center;
}

.navigator-nav:hover::after {
  width: 3px;
}

.navigator-nav:hover::before {
  height: 3px;
}

.navigator-nav:hover::after,
.navigator-nav:hover::before {
  opacity: .5;
  transform: scale(.375) rotateZ(90deg);
}

.navigator-nav > button, .navigator-nav > a {
  background-color: var(--button-background-color);
  border: 1px solid var(--border-gray-dark);
  border-radius: 8px;
  height: 45%;
  transition-duration: .3s;
  width: 45%;
}

.navigator-nav > button::after, .navigator-nav > a::after {
  height: 32%;
  width: 0;
  z-index: -1;
}

.navigator-nav > button:hover::after, .navigator-nav > a:hover::after {
  opacity: 1;
  width: 1px;
  transition-delay: .125s;
}

.navigator-nav > button::before, .navigator-nav > a::before {
  border-radius: 100%;
  height: 5%;
  opacity: 0;
  width: 5%;
}

.navigator-nav > button:hover::before, .navigator-nav > a:hover::before {
  opacity: 1;
}

.navigator-nav > button:first-child:after, .navigator-nav > a:first-child:after,
.navigator-nav > button:nth-child(2):after, .navigator-nav > a:nth-child(2):after {
  bottom: 90%;
}

.navigator-nav > button:nth-child(3):after, .navigator-nav > a:nth-child(3):after,
.navigator-nav > button:last-child:after, .navigator-nav > a:last-child:after {
  top: 90%;
}

.navigator-nav > button:first-child:before, .navigator-nav > a:first-child:before,
.navigator-nav > button:nth-child(2):before, .navigator-nav > a:nth-child(2):before {
  bottom: 120%;
}

.navigator-nav > button:nth-child(3):before, .navigator-nav > a:nth-child(3):before,
.navigator-nav > button:last-child:before, .navigator-nav > a:last-child:before {
  top: 120%;
}

.navigator-nav > button:first-child:after, .navigator-nav > a:first-child:after,
.navigator-nav > button:nth-child(3):after, .navigator-nav > a:nth-child(3):after {
  left: -6%;
  transform-origin: left;
}

.navigator-nav > button:nth-child(2):after, .navigator-nav > a:nth-child(2):after,
.navigator-nav > button:last-child:after, .navigator-nav > a:last-child:after {
  right: -6%;
  transform-origin: right;
}

.navigator-nav > button:first-child:before, .navigator-nav > a:first-child:before,
.navigator-nav > button:nth-child(3):before, .navigator-nav > a:nth-child(3):before {
  left: -24.5%;
  transform-origin: left;
}

.navigator-nav > button:nth-child(2):before, .navigator-nav > a:nth-child(2):before,
.navigator-nav > button:last-child:before, .navigator-nav > a:last-child:before {
  right: -24.5%;
  transform-origin: right;
}

.navigator-nav > button:first-child:after, .navigator-nav > a:first-child:after,
.navigator-nav > button:last-child:after, .navigator-nav > a:last-child:after {
  transform: scale(0) rotateZ(-45deg);
}

.navigator-nav > button:nth-child(2):after, .navigator-nav > a:nth-child(2):after,
.navigator-nav > button:nth-child(3):after, .navigator-nav > a:nth-child(3):after {
  transform: scale(0) rotateZ(45deg);
}

.navigator-nav > button:first-child:hover:after, .navigator-nav > a:first-child:hover:after,
.navigator-nav > button:last-child:hover:after, .navigator-nav > a:last-child:hover:after {
  transform: scale(1.35) rotateZ(-45deg);
}

.navigator-nav > button:nth-child(2):hover:after, .navigator-nav > a:nth-child(2):hover:after,
.navigator-nav > button:nth-child(3):hover:after, .navigator-nav > a:nth-child(3):hover:after {
  transform: scale(1.35) rotateZ(45deg);
}


.navigator-nav > button:hover, .navigator-nav > a:hover {
  border-color: var(--button-hover-background-color);
  box-shadow: 0 0 3px var(--border-gray-dark), inset 0 0 5px var(--border-gray-dark);
}

.navigator-nav-alt {
  border-radius: 100%;
  transform: rotateZ(45deg);
}

.navigator-nav-alt > button, .navigator-nav-alt > a {
  border-radius: 100%;
  transform: rotateZ(-45deg);
}

.navigator-nav > button, .navigator-nav > a,
.navigator-nav-alt > button, .navigator-nav-alt > a {
  position: relative;
}

.navigator-nav [class^="option"],
.navigator-nav-alt [class^="option"] {
  border-radius: 5px;
  opacity: 1;
  z-index: -1;
}

nav {
  z-index: 2;
}

[class^="option"] {
  align-items: center;
  bottom: 0;
  color: white;
  display: flex;
  justify-content: center;
  left: 0;
  letter-spacing: 1ch;
  opacity: 1;
  padding: 0 0 0 8px;
  position: absolute;
  right: 0;
  text-transform: uppercase;
  top: 0;
  transition-duration: .735s;
}

.option-1 {
  background-color: #433C4295;
}

.navigator-nav > button:hover .option-1,
.navigator-nav-alt > button:hover .option-1 {
  background-color: #433C42;
  transition-duration: 1.5s;
}

.option-2 {
  background-color: #3C404395;
}

.navigator-nav > button:hover .option-2,
.navigator-nav-alt > button:hover .option-2 {
  background-color:  #3C4043;
  transition-duration: 1.5s;
}

.option-3 {
  background-color: #3C433E95;
}

.navigator-nav > button:hover .option-3,
.navigator-nav-alt > button:hover .option-3 {
  background-color:  #3C433E;
  transition-duration: 1.5s;
}

.option-4 {
  background-color: #43423C95;
}

.navigator-nav > button:hover .option-4,
.navigator-nav-alt > button:hover .option-4 {
  background-color:  #43423C;
  transition-duration: 1.5s;
}

.option-display {
  transition: all 2s ease-in-out;
}
