/* ================= OPENING ================= */
.opening {
  position: fixed;
  inset: 0;
  z-index: 9999;
  display: grid;
  place-items: center;
  text-align: center;
  background: radial-gradient(circle at 50% 30%, #1a1436 0%, var(--void) 70%);
  transition: 1.1s cubic-bezier(0.77, 0, 0.18, 1);
}
.opening.out {
  transform: translateY(-100%);
  opacity: 0;
  pointer-events: none;
}
.open-ring {
  position: absolute;
  border: 1px solid rgba(167, 139, 250, 0.25);
  border-radius: 50%;
  width: 60vmin;
  height: 60vmin;
  animation: ringSpin 40s linear infinite;
}
.open-ring.r2 {
  width: 78vmin;
  height: 78vmin;
  border-color: rgba(95, 224, 199, 0.16);
  animation-duration: 55s;
  animation-direction: reverse;
}
@keyframes ringSpin {
  to {
    transform: rotate(360deg);
  }
}
.open-inner {
  position: relative;
  z-index: 2;
  padding: 30px;
}
.open-inner > * {
  opacity: 0;
  animation: riseIn 0.9s ease forwards;
}
.open-star {
  font-size: 22px;
  color: var(--champagne);
  animation-delay: 0.1s !important;
}
.open-small {
  font-family: var(--script);
  font-size: 30px;
  color: var(--rose);
  animation-delay: 0.35s !important;
  margin-top: 6px;
}
.open-inner h1 {
  font-family: var(--display);
  font-style: italic;
  font-weight: 400;
  font-size: clamp(46px, 9vw, 96px);
  line-height: 0.95;
  margin: 14px 0;
  animation-delay: 0.6s !important;
}
.open-inner h1 .amp {
  color: var(--teal);
  font-style: normal;
}
.open-inner p {
  color: var(--muted);
  font-size: 13px;
  letter-spacing: 1px;
  animation-delay: 0.9s !important;
}
@keyframes riseIn {
  from {
    opacity: 0;
    transform: translateY(22px);
  }
  to {
    opacity: 1;
    transform: none;
  }
}
.open-btn {
  margin-top: 34px;
  padding: 15px 34px;
  border: 1px solid var(--champagne);
  border-radius: 100px;
  background: transparent;
  color: var(--ivory);
  cursor: pointer;
  letter-spacing: 0.5px;
  transition: 0.35s;
  font-size: 14.5px;
  animation-delay: 1.2s !important;
}
.open-btn:hover {
  background: var(--champagne);
  color: var(--void);
  box-shadow: 0 0 40px rgba(230, 196, 143, 0.35);
}
.open-particle {
  position: absolute;
  border-radius: 50%;
  pointer-events: none;
  background: #fff;
}
@keyframes particleFloat {
  0% {
    transform: translateY(0);
    opacity: 0;
  }
  12% {
    opacity: 0.75;
  }
  88% {
    opacity: 0.75;
  }
  100% {
    transform: translateY(-100vh);
    opacity: 0;
  }
}
