:root {
  --text-drop-grey-color: #999999;
}

.contact-page {
  margin: 0;
  min-height: 100vh;
  font-family: 'Lora', serif;
  background: radial-gradient(circle at 20% 20%, rgba(76, 242, 255, 0.08), transparent 40%),
    radial-gradient(circle at 80% 0%, rgba(139, 92, 246, 0.08), transparent 35%),
    #05050c;
  color: #ffffff;
  line-height: 1.6;
  overflow-x: hidden;
}

.contact-page .menu__bg {
  position: absolute;
  inset: 0;
  opacity: 0;
  background: rgba(5, 5, 12, 0.92);
  transition: opacity 0.35s ease;
}

.contact-page .menu__bg.menu__bg--active {
  opacity: 1;
}

.contact-page main {
  width: min(1200px, 100% - 4rem);
  margin: 0 auto;
  padding: 7rem 0 4rem;
  display: flex;
  flex-direction: column;
  gap: 4rem;
}

.preview {
  display: grid;
  place-items: center;
  margin-top: 6rem;
}

.preview img {
  width: min(960px, 92vw);
  border-radius: 32px;
  border: 1px solid rgba(255, 255, 255, 0.08);
  box-shadow: 0 30px 90px rgba(0, 0, 0, 0.55);
}

/* Start Screen */

.contact-page .start {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0 1rem;
  height: 100dvh;
}

.contact-page .start::after {
  content: '';
  position: absolute;
  top: 25%;
  right: 20%;
  z-index: -1;
  width: 300px;
  height: 300px;
  border-radius: 50%;
  transform: rotate(-25deg);
  background: radial-gradient(circle, rgba(6, 255, 255, 1) 33%, rgba(3, 239, 255, 1) 54%, rgba(0, 219, 255, 1) 75%, rgba(0, 203, 244, 1) 83%, rgba(0, 162, 215, 1) 98%, rgba(0, 158, 212, 1) 100%);
  filter: blur(150px);
}

.contact-page .start__box {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  max-width: 575px;
  text-align: center;
}

.contact-page .start__heading {
  margin: 30px 0 0;
  color: white;
  font-size: clamp(2.7rem, 8vw, 5.5rem);
  line-height: 1.1;
  font-weight: 500;
}

.contact-page .start__text {
  margin: 30px 0 0;
  font-size: 1.25rem;
  line-height: 1.45;
  font-weight: 500;
  font-family: 'Poppins', sans-serif;
  color: var(--text-drop-grey-color);
  text-transform: lowercase;
}

@keyframes scroll {
  0%,
  100% {
    opacity: 0.25;
    transform: translateY(0);
  }

  50% {
    opacity: 0.5;
    transform: translateY(10px);
  }
}

.contact-page .scroll-marker {
  position: absolute;
  top: calc(100% + 80px);
  left: calc(50% - 10px);
  width: 20px;
  animation: scroll 2.5s ease infinite;
}

.contact-page .scroll-marker img {
  display: block;
  width: 100%;
  height: auto;
}

/* Text Drop */

.contact-page .text-drop {
  position: relative;
  overflow: hidden;
  padding: 5.75rem 0 12rem;
  perspective: 2000px;
}

.contact-page .text-drop::after {
  content: '';
  position: absolute;
  top: 40%;
  left: 5%;
  z-index: -1;
  width: 300px;
  height: 300px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(6, 255, 255, 1) 33%, rgba(3, 239, 255, 1) 54%, rgba(0, 219, 255, 1) 75%, rgba(0, 203, 244, 1) 83%, rgba(0, 162, 215, 1) 98%, rgba(0, 158, 212, 1) 100%);
  filter: blur(160px);
}

.contact-page .text-drop::before {
  content: '';
  position: absolute;
  top: 20%;
  right: 15%;
  z-index: -1;
  width: 175px;
  height: 175px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(6, 255, 255, 1) 33%, rgba(3, 239, 255, 1) 54%, rgba(0, 219, 255, 1) 75%, rgba(0, 203, 244, 1) 83%, rgba(0, 162, 215, 1) 98%, rgba(0, 158, 212, 1) 100%);
  filter: blur(100px);
}

.contact-page .text-drop__line {
  display: block;
  text-align: center;
  width: 100%;
  font-size: clamp(2.2rem, 8.5vw, 5.4rem);
  line-height: 1.3;
  font-weight: 500;
  white-space: nowrap;
  color: white;
  transform-origin: 50% 0;
  will-change: transform;
  backface-visibility: hidden;
  transform: rotateX(-120deg);
  mix-blend-mode: difference;
  transform-style: preserve-3d;
}

/* Contact Section */

.contact-section {
  position: relative;
  background: linear-gradient(145deg, rgba(6, 37, 48, 0.35), rgba(32, 20, 58, 0.4));
  border: 1px solid rgba(255, 255, 255, 0.05);
  border-radius: 28px;
  padding: 2.5rem;
  box-shadow: 0 20px 55px rgba(0, 0, 0, 0.55);
  font-family: 'Space Grotesk', 'Inter', sans-serif;
}

.contact-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 2rem;
  align-items: start;
}

.contact-heading {
  margin: 0 0 0.5rem;
  font-size: clamp(2rem, 4vw, 2.6rem);
  line-height: 1.2;
}

.contact-lede {
  margin: 0 0 1.5rem;
  color: #c7c8d9;
  font-size: 1rem;
}

.contact-locations {
  margin: 0 0 1.5rem;
  color: #a6a7c3;
  font-size: 0.95rem;
  line-height: 1.5;
}

.contact-locations a {
  color: #4cf2ff;
  text-decoration: none;
}

.contact-locations a:hover {
  text-decoration: underline;
}

.contact-info {
  display: flex;
  flex-direction: column;
  gap: 0.9rem;
}

.contact-info a,
.contact-info span {
  color: #f7f7ff;
  text-decoration: none;
  font-weight: 600;
  letter-spacing: 0.02em;
}

.contact-info small {
  display: block;
  color: #a6a7c3;
  font-weight: 500;
}

.contact-form {
  display: grid;
  gap: 1rem;
}

.contact-form label {
  display: block;
  font-size: 0.95rem;
  margin-bottom: 0.35rem;
  color: #d9d9e8;
}

.contact-form input,
.contact-form select,
.contact-form textarea {
  width: 100%;
  padding: 0.9rem 1rem;
  border-radius: 14px;
  border: 1px solid rgba(255, 255, 255, 0.12);
  background: rgba(8, 8, 16, 0.75);
  color: #f7f7ff;
  font-family: inherit;
  font-size: 1rem;
  outline: none;
  transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.contact-form input:focus,
.contact-form select:focus,
.contact-form textarea:focus {
  border-color: #4cf2ff;
  box-shadow: 0 0 0 3px rgba(76, 242, 255, 0.15);
}

.contact-form textarea {
  min-height: 140px;
  resize: vertical;
}

.contact-form button {
  padding: 1rem 1.2rem;
  border-radius: 14px;
  border: none;
  background: linear-gradient(135deg, #4cf2ff, #8b5cf6);
  color: #05050c;
  font-weight: 700;
  letter-spacing: 0.05em;
  cursor: pointer;
  transition: transform 0.15s ease, box-shadow 0.2s ease;
}

.contact-form button:hover {
  transform: translateY(-2px);
  box-shadow: 0 15px 45px rgba(0, 0, 0, 0.35);
}

.contact-form button:active {
  transform: translateY(0);
}

.contact-form__status {
  min-height: 1.2rem;
  font-size: 0.9rem;
  color: #4cf2ff;
  margin: 0;
}

.contact-form__status--error {
  color: #ff7b7b;
}

@media screen and (max-width: 1024px) {
  .contact-page .text-drop {
    padding: 5.75rem 0 15rem;
  }

  .contact-page .text-drop__line {
    font-size: clamp(2.3rem, 13.75vw, 5rem);
    line-height: 1.4;
  }

  .contact-page .text-drop__img-box {
    max-width: 40vw;
  }

  .contact-page .text-drop__img-box:nth-child(1) {
    top: 25%;
  }
}

@media screen and (max-width: 768px) {
  .contact-page .start::after {
    width: 200px;
    height: 200px;
    filter: blur(100px);
  }

  .contact-page .text-drop::after {
    width: 200px;
    height: 200px;
    filter: blur(110px);
  }

  .contact-page .text-drop::before {
    width: 120px;
    height: 120px;
    filter: blur(75px);
  }
}

@media screen and (max-width: 575px) {
  .contact-page main {
    width: calc(100% - 1.5rem);
    padding: 5rem 0 3rem;
  }

  .contact-page .start::after {
    width: 125px;
    height: 125px;
    filter: blur(75px);
  }

  .contact-page .text-drop::after {
    top: 50%;
    width: 125px;
    height: 125px;
    filter: blur(75px);
  }

  .contact-page .text-drop::before {
    width: 100px;
    height: 100px;
    filter: blur(75px);
  }

  .contact-page .start__heading {
    font-size: 2.5rem;
  }

  .contact-page .start__text {
    font-size: 1rem;
  }
}

@media screen and (min-height: 900px) {
  .contact-page .text-drop {
    padding: 5.75rem 0 30rem;
  }
}
