* {
  margin: 0;
  padding: 0;
  font-family: sans-serif;
}

html,
body {
  min-height: 100%;
  min-width: 100%;
  cursor: none;
}

h1 {
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  font-weight: bold;
}

.container {
  width: 100%;
  height: 100%;
  background: #1f1f1f;
}

.menu ul {
  display: inline-flex;
  margin: 50px;
}

.menu ul li {
  list-style: none;
  margin: 0 20px;
  color: #b2b1b1;
  cursor: pointer;
}

.logo:hover {
  cursor: none;
}

.logo img {
  width: 30px;
  margin-top: -20px;
  margin-right: 48px;
}

.contact {
  top: 40px;
  right: 80px;
  position: absolute;
  text-decoration: none;
  color: #fff;
  border: 2px solid transparent;
  border-radius: 20px;
  background-image: linear-gradient(#42455a, #42455a),
    radial-gradient(circle at top left, #ff232d, #2b8dff);
  background-origin: border-box;
  background-clip: content-box, border-box;
}

.contact span {
  display: block;
  padding: 8px 22px;
}

.contact:hover {
  transition: all 0.6s ease;
  transform: scale(1.05);
}

.banner {
  color: #fff;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  font-size: 3rem;
}

.row-1,
.row-2 {
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-size: 2rem;
  margin-bottom: 45px;
}

.picture-gauche {
  float: left;
  padding: 0 150px;
}

.text-gauche {
  float: left;
  padding: 0 150px;
}

.picture-gauche img {
  width: 500px;
  height: 500px;
  margin-top: 20px;
  transform-style: preserve-3d;
  animation: anim 4s linear infinite;
}

@keyframes anim {
  0% {
    transform: rotate3d(0, 0, 0, 0deg);
  }
  50% {
    transform: rotate3d(0, 0, 1, -15deg);
  }
}

.text-droite {
  float: right;
  padding: 0 150px;
}

.picture-droite {
  float: right;
  padding: 0 150px;
}

.picture-droite img {
  width: 500px;
  height: 500px;
  margin-top: 20px;
  transform-style: preserve-3d;
  animation: animate 4s linear infinite;
}

@keyframes animate {
  0% {
    transform: rotate3d(0, 0, 0, 0deg);
  }
  50% {
    transform: rotate3d(0, 5, 1, 25deg);
  }
}

.picture-gauche:hover img {
  transform: scale(1.05);
  animation: none;
}

.picture-droite:hover img {
  transform: scale(1.05);
  animation: none;
}

.bubbles {
  position: relative;
  display: flex;
}

.bubbles span {
  position: relative;
  width: 5px;
  height: 5px;
  background: #ff232d;
  margin: 0 4px;
  border-radius: 50%;
  box-shadow: 0 0 0 5px #f18c8c, 0 0 5px #ff232d, 0 0 5px #ff232d;
  animation: pop 15s linear infinite;
  animation-duration: calc(150s / var(--i));
}

.bubbles span:nth-child(even) {
  background: #2b8dff;
  box-shadow: 0 0 0 5px #8cacf1, 0 0 5px #2b8dff, 0 0 5px #2b8dff;
}

@keyframes pop {
  0% {
    transform: translateY(100vh) scale(0);
  }
  100% {
    transform: translateY(-300vh) scale(0.3);
  }
}

.circle {
  height: 24px;
  width: 24px;
  border-radius: 24px;
  background-color: black;
  position: fixed;
  top: 0;
  left: 0;
  pointer-events: none;
  z-index: 99999999; /* so that it stays on top of all other elements */
}

@media (max-width: 360px) {
  .logo {
    display: none;
  }
}

@media (max-width: 1400px) {
  html,
  body {
    cursor: default;
  }

  h1 {
    font-size: 45px;
  }

  .title {
    margin-bottom: 50px;
  }
  .circle {
    display: none;
  }
  .row-1 {
    flex-direction: column;
    margin-bottom: 100px;
  }
  .row-2 {
    flex-direction: column-reverse;
    margin-bottom: 100px;
  }
  .picture-droite img,
  .picture-gauche img {
    width: 200px;
    height: 200px;
  }
  .picture-droite,
  .picture-gauche,
  .text-droite,
  .text-gauche {
    padding: 0 30px;
  }
}
