@import url(/styles/index.css);

/* 
- Mobile:
- Small: (1/8, 6/8, 1/8)
- Medium: (1/10, 1/10, 6/10, 2/10)
- Large: (1/12, 2/12, 6/12, 3/12)
*/

.mainContainer {
  width: 100%;
  overflow: hidden;
}

.heroContainer {
  position: relative;
  display: flex;
  background-color: var(--medium-blue);
}

.developer {
  display: grid;
  width: 126rem;
  height: 72rem;
  background-color: var(--medium-blue);
  grid-template-rows: repeat(4, 18rem);
  grid-template-columns: repeat(7, 18rem);
  user-select: none;
}

.xlDiv {
  width: 18rem;
  height: 18rem;
}

.lgAdjustmentDivContainer {
  display: none;
}

@media (min-device-width: 1500px) {
  .lgAdjustmentDivContainer {
    display: block;
  }
}

.xlAdjustmentDivContainer {
  display: none;
}

@media (min-device-width: 1800px) {
  .xlAdjustmentDivContainer {
    display: block;
  }
}

.gridDiv {
  background-color: var(--off-white);
  /* background-image: var(--back-grain);
    background-size: 35rem auto; */
  overflow: hidden;
  position: relative;
  overflow: hidden;
  border: 0.025rem solid var(--medium-blue);
  transform-style: preserve-3d;
  transform: perspective(10rem);
  transition: transform 0.4s cubic-bezier(0.03, 0.98, 0.52, 0.99);
}

.aboutDiv {
  width: 18rem;
  height: 18rem;
}

.gridDiv h1 {
  font-size: 30rem;
  font-weight: 700;
  color: var(--medium-blue);
  transform: translateZ(5rem);
}

.gridDiv .gridText {
  font-size: 1.2rem;
  padding: 0.5rem 1rem;
  color: var(--medium-blue);
  opacity: 0;
  animation: gridTextLoad 0.3s ease-out 4.3s forwards;
}

@keyframes gridTextLoad {
  0% {
    opacity: 0;
  }
  100% {
    opacity: 75%;
  }
}

#d2 {
  position: relative;
  left: 2rem;
  bottom: 8rem;
}

#d3 {
  position: relative;
  left: 2rem;
  bottom: 26.5rem;
}

#e3 {
  position: relative;
  left: 4.5rem;
  bottom: 44rem;
}

.gridDiv:nth-child(4) .gridText {
  position: absolute;
  top: 13rem;
  right: 1.9rem;
}

.gridDiv:nth-child(6) {
  display: flex;
  justify-content: center;
  align-items: center;
}

.gridDiv:nth-child(18) .gridText {
  position: absolute;
  left: 2.5rem;
  top: 6.6rem;
}

.gridSquareText {
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.smoothTransition {
  transition: 0.3s;
}

.bulletContainer {
  display: flex;
  justify-content: center;
  align-items: center;
  background-color: var(--off-white);
  width: 18rem;
  height: 36rem;
  overflow: hidden;
  background-size: 35rem auto;
  border: 0.025rem solid var(--medium-blue);
  /* background-image: var(--back-grain);
    background-size: 37rem auto; */
}

.pageBullets {
  position: fixed;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1.75rem;
  z-index: 999;
  transition: all 0.3s ease-out;
  animation: bulletsLoad 0.5s ease-out 3.8s forwards;
  opacity: 0;
  transform: translateX(-3rem);
}

@keyframes bulletsLoad {
  0% {
    transform: translateX(-3rem);
  }
  33% {
    opacity: 0;
  }
  100% {
    transform: translateX(0);
    opacity: 100;
  }
}

.activeBullet {
  width: 1.5rem;
  height: 1.5rem;
  background-color: var(--medium-blue);
  rotate: -90deg;
  border: 0.1rem solid var(--off-white);
  transition: all 0.3s ease-out;
}

.non-actBullet {
  width: 1.1rem;
  height: 1.1rem;
  border: 0.1rem solid var(--medium-blue);
  background-color: var(--off-white);
  rotate: 45deg;
  transition: all 0.3s ease-out;
}

.bullet:hover {
  scale: 1.3;
  cursor: pointer;
  transition: all 0.2s ease;
}

#v11 {
  position: relative;
  right: 0.5rem;
  bottom: 7.75rem;
}

#e12 {
  position: relative;
  bottom: 17rem;
}

.mobileDiv {
  display: none;
}

#l13 {
  position: relative;
  bottom: 9.25rem;
}

#e21Copy {
  position: relative;
  left: 0.5rem;
  bottom: 4.5rem;
}

.gridDiv:nth-child(20) {
  display: flex;
  justify-content: center;
  align-items: center;
}

#o20 {
  position: relative;
  right: 9rem;
  bottom: 51.25rem;
}

#p20 {
  position: relative;
  left: 7rem;
  bottom: 16rem;
}

#e21 {
  position: relative;
  left: 0.5rem;
  bottom: 4.5rem;
}

#r22 {
  position: relative;
  left: 4rem;
  bottom: 15rem;
}

.gridDivSpecial {
  grid-area: 4 / 1 / 4 / 3;
  display: flex;
  background-color: var(--medium-blue);
  overflow: visible;
}

.gridDiv:nth-child(34) {
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.gridDiv:nth-child(34) .gridText {
  padding: 0.5rem 1rem 0.5rem;
}

.heroAlignDiv {
  position: relative;
  width: 18rem;
  height: 18rem;
  display: flex;
  justify-content: center;
}

.heroAlignDiv:nth-child(3) {
  position: relative;
  width: 18rem;
  height: 18rem;
  display: flex;
  justify-content: center;
  align-items: center;
}

.paper__plane {
  width: 7.6rem;
  height: 9.8rem;
}

.accentLine {
  background-color: var(--off-white);
  opacity: 25%;
  width: 0.025rem;
}

.heroAccent01 {
  position: absolute;
  top: 54rem;
  left: 7rem;
  height: 128.6rem;
  z-index: 3;
}

.heroAccent02 {
  position: absolute;
  top: 54rem;
  left: 18rem;
  height: 129.6rem;
  z-index: 3;
}

@media (max-device-width: 600px) {
  .heroContainer {
    height: 78.6rem;
    border-bottom: 0.025rem solid rgba(235, 236, 240, 0.25);
  }

  .heroLeft {
    display: none;
  }

  .developer {
    display: grid;
    width: 39.3rem;
    grid-template-rows: repeat(6, 13.1rem);
    grid-template-columns: repeat(3, 13.1rem);
  }

  .gridDiv:nth-child(3),
  .gridDiv:nth-child(5),
  .gridDiv:nth-child(6),
  .gridDiv:nth-child(7),
  .gridDiv:nth-child(15),
  .gridDiv:nth-child(16),
  .gridDiv:nth-child(17),
  .gridDiv:nth-child(18),
  .gridDiv:nth-child(19),
  .gridDiv:nth-child(20),
  .gridDiv:nth-child(24),
  .desktopDiv {
    display: none;
  }

  .mobileDiv {
    display: flex;
  }

  .gridDiv h1 {
    font-size: 20rem;
  }

  #d2 {
    left: 2.4rem;
    bottom: 5rem;
  }

  #d3 {
    left: 2.3rem;
    bottom: 17rem;
  }

  #e3 {
    left: 4rem;
    bottom: 28.25rem;
  }

  /* nth does not work across multiple containers */
  .gridDiv:nth-child(5) .gridText {
    position: absolute;
    top: 10rem;
    right: 1rem;
  }

  #v11 {
    right: 0;
    left: 0.5rem;
    bottom: 3.75rem;
  }

  #e12 {
    bottom: 11.5rem;
  }

  #l13 {
    bottom: -1rem;
  }

  #e21Copy {
    position: relative;
    left: 0.5rem;
    bottom: 3.5rem;
  }

  #o20 {
    position: relative;
    right: 6rem;
    bottom: 33.75rem;
  }

  #p20 {
    position: relative;
    left: 5rem;
    bottom: 11.5rem;
  }

  #e21 {
    bottom: 2rem;
  }

  #r22 {
    left: 3rem;
    bottom: 6.5rem;
  }

  .gridDivSpecial {
    display: none;
  }

  .gridDiv:nth-child(13) {
    display: flex;
    justify-content: center;
    align-items: center;
  }

  .gridDivSpecial:nth-child(28) {
    display: none;
  }

  .accentLine {
    top: 78.6rem;
    height: 150rem;
  }

  .heroAccent01 {
    left: 2.5rem;
  }

  .heroAccent02 {
    left: initial;
    right: 2.5rem;
  }
}
