/* Utility classes for animations initialized by GSAP */
.reveal-text {
  clip-path: polygon(0 0, 100% 0, 100% 100%, 0% 100%);
}

.reveal-text span {
  display: inline-block;
  transform: translateY(110%);
}

.fade-up {
  opacity: 0;
  transform: translateY(40px);
}

/* Page Transition Overlay */
.page-transition-overlay {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100vh;
  background-color: var(--color-text-primary);
  z-index: 9999;
  transform: scaleY(0);
  transform-origin: bottom;
  pointer-events: none;
}

/* Loading initial state */
body.is-loading .reveal-text span,
body.is-loading .fade-up {
  opacity: 0;
}

/* Magnetic button wrapper */
.magnetic-wrap {
  display: inline-block;
}

/* Parallax image container */
.parallax-container {
  overflow: hidden;
  height: 60vh;
  position: relative;
}

.parallax-container img {
  position: absolute;
  top: -20%;
  left: 0;
  width: 100%;
  height: 140%;
  object-fit: cover;
}
