




.crx-scroll-progress {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 2px;
  background: var(--dark);
  z-index: 9999;
  transform: scaleX(0);
  transform-origin: left;
  will-change: transform;
  pointer-events: none;
}

.crx-scroll-progress::after {
  display: none;
}




[data-reveal] {
  opacity: 0;
  transform: translateY(20px);
  transition: opacity 0.8s cubic-bezier(0.22, 1, 0.36, 1),
              transform 0.8s cubic-bezier(0.22, 1, 0.36, 1);
}

[data-reveal].crx-revealed {
  opacity: 1;
  transform: translateY(0);
}

[data-reveal="left"] {
  opacity: 0;
  transform: translateX(-30px);
  transition: opacity 0.8s cubic-bezier(0.22, 1, 0.36, 1),
              transform 0.8s cubic-bezier(0.22, 1, 0.36, 1);
}

[data-reveal="left"].crx-revealed {
  opacity: 1;
  transform: translateX(0);
}

[data-reveal="right"] {
  opacity: 0;
  transform: translateX(30px);
  transition: opacity 0.8s cubic-bezier(0.22, 1, 0.36, 1),
              transform 0.8s cubic-bezier(0.22, 1, 0.36, 1);
}

[data-reveal="right"].crx-revealed {
  opacity: 1;
  transform: translateX(0);
}

[data-reveal="scale"] {
  opacity: 0;
  transform: scale(0.88);
  transition: opacity 0.7s cubic-bezier(0.22, 1, 0.36, 1),
              transform 0.7s cubic-bezier(0.22, 1, 0.36, 1);
}

[data-reveal="scale"].crx-revealed {
  opacity: 1;
  transform: scale(1);
}

[data-reveal="clip"] {
  opacity: 1;
  clip-path: inset(100% 0 0 0);
  transition: clip-path 0.85s cubic-bezier(0.22, 1, 0.36, 1);
}

[data-reveal="clip"].crx-revealed {
  clip-path: inset(0% 0 0 0);
}

[data-delay="1"] { transition-delay: 0.08s; }
[data-delay="2"] { transition-delay: 0.16s; }
[data-delay="3"] { transition-delay: 0.24s; }
[data-delay="4"] { transition-delay: 0.32s; }
[data-delay="5"] { transition-delay: 0.42s; }
[data-delay="6"] { transition-delay: 0.54s; }
[data-delay="7"] { transition-delay: 0.66s; }
[data-delay="8"] { transition-delay: 0.80s; }




.crx-split-text {
  overflow: visible;
}

.crx-word-wrapper {
  display: inline-block;
  overflow: hidden;
  vertical-align: bottom;
  margin-right: 0.22em;
}

.crx-word {
  display: inline-block;
  transform: translateY(110%);
  opacity: 0;
  transition: transform 0.7s cubic-bezier(0.22, 1, 0.36, 1),
              opacity 0.5s ease;
}

.crx-hero-loaded .crx-word {
  transform: translateY(0);
  opacity: 1;
}

.crx-word-wrapper .crx-word {
  transition-delay: calc(var(--word-index, 0) * 0.07s + 0.2s);
}

.crx-new-hero-subtitle {
  opacity: 0;
  transform: translateY(16px);
  transition: opacity 0.7s ease 0.7s, transform 0.7s ease 0.7s;
}

.crx-hero-loaded .crx-new-hero-subtitle {
  opacity: 1;
  transform: translateY(0);
}

.crx-new-hero-buttons {
  opacity: 0;
  transform: translateY(12px);
  transition: opacity 0.6s ease 0.95s, transform 0.6s ease 0.95s;
}

.crx-hero-loaded .crx-new-hero-buttons {
  opacity: 1;
  transform: translateY(0);
}




.crx-navbar {
  transition: background 0.4s ease, backdrop-filter 0.4s ease,
              box-shadow 0.4s ease, padding 0.3s ease;
}

.crx-navbar.crx-glass {
  background: rgba(255, 255, 255, 0.85) !important;
  backdrop-filter: blur(20px) saturate(180%);
  -webkit-backdrop-filter: blur(20px) saturate(180%);
  box-shadow: 0 1px 0 rgba(0, 0, 0, 0.06);
  border-bottom: none;
}

.crx-nav-link {
  position: relative;
}

.crx-nav-link::after {
  content: '';
  position: absolute;
  bottom: -4px;
  left: 0;
  width: 0%;
  height: 2px;
  background: var(--primary);
  transition: width 0.3s cubic-bezier(0.22, 1, 0.36, 1);
}

.crx-nav-link:hover::after,
.crx-nav-link.crx-active::after {
  width: 100%;
}

@keyframes crx-brand-pulse {
  0%   { letter-spacing: 0.05em; opacity: 0; }
  60%  { letter-spacing: 0.12em; opacity: 1; }
  100% { letter-spacing: 0.05em; opacity: 1; }
}

.crx-logo-text {
  animation: crx-brand-pulse 0.9s cubic-bezier(0.22, 1, 0.36, 1) 0.1s both;
}




.crx-btn-primary,
.crx-new-btn-solid {
  position: relative;
  overflow: hidden;
  transition: transform 0.25s cubic-bezier(0.22, 1, 0.36, 1),
              box-shadow 0.25s ease,
              background 0.25s ease,
              border-color 0.25s ease;
}

.crx-btn-primary::after,
.crx-new-btn-solid::after {
  content: '';
  position: absolute;
  top: 0;
  left: -100%;
  width: 60%;
  height: 100%;
  background: linear-gradient(
    105deg,
    transparent 20%,
    rgba(255, 255, 255, 0.22) 50%,
    transparent 80%
  );
  transition: left 0.5s ease;
  pointer-events: none;
}

.crx-btn-primary:hover::after,
.crx-new-btn-solid:hover::after {
  left: 160%;
}

.crx-btn-primary:hover,
.crx-new-btn-solid:hover {
  box-shadow: 0 8px 28px rgba(6, 148, 148, 0.4),
              0 0 0 1px rgba(6, 148, 148, 0.3);
  transform: translateY(-3px);
}

.crx-btn-primary:active,
.crx-new-btn-solid:active {
  transform: translateY(-1px);
  box-shadow: 0 4px 16px rgba(6, 148, 148, 0.3);
}




.crx-cursor-dot {
  position: fixed;
  width: 8px;
  height: 8px;
  background: var(--primary);
  border-radius: 50%;
  pointer-events: none;
  z-index: 10000;
  transform: translate(-50%, -50%);
  transition: transform 0.05s linear, background 0.2s ease, width 0.2s ease, height 0.2s ease;
  mix-blend-mode: normal;
}

.crx-cursor-ring {
  position: fixed;
  width: 32px;
  height: 32px;
  border: 1.5px solid rgba(6, 148, 148, 0.6);
  border-radius: 50%;
  pointer-events: none;
  z-index: 9999;
  transform: translate(-50%, -50%);
  transition: transform 0.12s cubic-bezier(0.22, 1, 0.36, 1),
              width 0.3s ease, height 0.3s ease,
              border-color 0.3s ease,
              opacity 0.3s ease;
}

body.crx-cursor-hover .crx-cursor-dot {
  width: 12px;
  height: 12px;
  background: var(--accent);
}

body.crx-cursor-hover .crx-cursor-ring {
  width: 52px;
  height: 52px;
  border-color: rgba(255, 105, 180, 0.45);
}

@media (hover: none) {
  .crx-cursor-dot,
  .crx-cursor-ring {
    display: none;
  }
}




.crx-history-masonry {
  perspective: 800px;
}

.crx-history-photo {
  opacity: 0;
  transform: translateY(48px) scale(0.96);
  transition: opacity 0.7s cubic-bezier(0.22, 1, 0.36, 1),
              transform 0.7s cubic-bezier(0.22, 1, 0.36, 1);
  will-change: transform, opacity;
}

.crx-history-photo.crx-revealed {
  opacity: 1;
  transform: translateY(0) scale(1);
}

.crx-history-photo:hover {
  transform: translateY(-6px) scale(1.02) !important;
  box-shadow: 0 20px 50px rgba(0, 0, 0, 0.22);
  z-index: 5;
  transition: transform 0.35s cubic-bezier(0.22, 1, 0.36, 1),
              box-shadow 0.35s ease !important;
}

.crx-history-overlay {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 50%;
  background: linear-gradient(to top, rgba(6, 148, 148, 0.85) 0%, transparent 100%);
  display: flex;
  align-items: flex-end;
  padding: 1rem 1.25rem;
  opacity: 0;
  transform: translateY(20px);
  transition: opacity 0.35s ease, transform 0.35s cubic-bezier(0.22, 1, 0.36, 1);
}

.crx-history-photo:hover .crx-history-overlay {
  opacity: 1;
  transform: translateY(0);
}

.crx-history-year {
  color: #fff;
  font-size: 1.25rem;
  font-weight: 700;
  letter-spacing: 2px;
  text-transform: uppercase;
}




.crx-stat-item strong,
[data-counter] {
  display: inline-block;
  transition: transform 0.3s ease;
}

.crx-stat-item:hover strong {
  transform: scale(1.08);
  color: var(--primary);
  transition: transform 0.3s ease, color 0.3s ease;
}




.crx-section-badge {
  display: inline-flex;
  align-items: center;
  gap: 0.4em;
  opacity: 0;
  transform: translateY(10px);
  transition: opacity 0.5s ease, transform 0.5s ease;
}



.crx-section-badge.crx-revealed {
  opacity: 1;
  transform: translateY(0);
}

.crx-section-title {
  opacity: 0;
  transform: translateY(20px);
  transition: opacity 0.65s cubic-bezier(0.22, 1, 0.36, 1) 0.1s,
              transform 0.65s cubic-bezier(0.22, 1, 0.36, 1) 0.1s;
}

.crx-section-title.crx-revealed {
  opacity: 1;
  transform: translateY(0);
}

.crx-section-subtitle {
  opacity: 0;
  transform: translateY(16px);
  transition: opacity 0.6s ease 0.2s, transform 0.6s ease 0.2s;
}

.crx-section-subtitle.crx-revealed {
  opacity: 1;
  transform: translateY(0);
}




.crx-mentor-photo img {
  filter: blur(8px) brightness(0.6);
  transform: scale(2.65) translateY(5%);
  transition: filter 1.2s cubic-bezier(0.22, 1, 0.36, 1),
              transform 1.4s cubic-bezier(0.22, 1, 0.36, 1);
}

.crx-mentor-photo.crx-revealed img {
  filter: brightness(0.75);
  transform: scale(2.8) translateY(5%);
}

.crx-mentor-text {
  opacity: 0;
  transform: translateX(40px);
  transition: opacity 0.9s cubic-bezier(0.22, 1, 0.36, 1) 0.3s,
              transform 0.9s cubic-bezier(0.22, 1, 0.36, 1) 0.3s;
}

.crx-mentor-text.crx-revealed {
  opacity: 1;
  transform: translateX(0);
}

.crx-mentor-text span[style*="border-radius: 50px"] {
  opacity: 0;
  transform: translateY(10px) scale(0.9);
  transition: opacity 0.5s ease, transform 0.5s cubic-bezier(0.22, 1, 0.36, 1);
}

.crx-mentor-text.crx-revealed span[style*="border-radius: 50px"]:nth-child(1) {
  opacity: 1; transform: translateY(0) scale(1); transition-delay: 0.6s;
}
.crx-mentor-text.crx-revealed span[style*="border-radius: 50px"]:nth-child(2) {
  opacity: 1; transform: translateY(0) scale(1); transition-delay: 0.72s;
}
.crx-mentor-text.crx-revealed span[style*="border-radius: 50px"]:nth-child(3) {
  opacity: 1; transform: translateY(0) scale(1); transition-delay: 0.84s;
}




.crx-home-feature-card,
.crx-feature-card,
.crx-info-card {
  will-change: transform;
  transition: transform 0.4s cubic-bezier(0.22, 1, 0.36, 1),
              box-shadow 0.4s ease,
              border-color 0.4s ease;
}

.crx-tilt {
  transform: perspective(600px)
    rotateX(calc(var(--rx, 0) * 1deg))
    rotateY(calc(var(--ry, 0) * 1deg))
    translateZ(0);
}


@media (max-width: 960px) {
  .circular-card {
    opacity: 0;
    transition: opacity 0.6s ease, transform 0.6s cubic-bezier(0.22, 1, 0.36, 1);
  }

  .circular-card.crx-revealed {
    opacity: 1;
  }
}




.crx-faq-item {
  opacity: 0;
  transform: translateY(20px);
  transition: opacity 0.55s ease, transform 0.55s cubic-bezier(0.22, 1, 0.36, 1);
}

.crx-faq-item.crx-revealed {
  opacity: 1;
  transform: translateY(0);
}




.crx-cta-strip,
.crx-marquee-section {
  opacity: 0;
  transform: translateY(30px);
  transition: opacity 0.7s ease, transform 0.7s cubic-bezier(0.22, 1, 0.36, 1);
}

.crx-cta-strip.crx-revealed,
.crx-marquee-section.crx-revealed {
  opacity: 1;
  transform: translateY(0);
}




.crx-new-hero-carousel {
  will-change: transform;
}

.crx-new-hero-slide {
  transform: translateY(calc(var(--parallax-offset, 0px)));
  transition: opacity 1s ease-in-out;
}

.crx-new-hero-content {
  will-change: transform;
  transform: translateY(calc(var(--hero-scroll-offset, 0px)));
}




.crx-page-transition {
  position: fixed;
  inset: 0;
  background: var(--dark);
  z-index: 99999;
  pointer-events: none;
  transform: translateY(100%);
  transition: transform 0.5s cubic-bezier(0.77, 0, 0.175, 1);
}

.crx-page-transition.crx-entering {
  transform: translateY(0%);
}

.crx-page-transition.crx-leaving {
  transform: translateY(-100%);
  transition: transform 0.45s cubic-bezier(0.77, 0, 0.175, 1);
}




.crx-contact-card {
  opacity: 0;
  transform: translateY(30px);
  transition: opacity 0.65s ease, transform 0.65s cubic-bezier(0.22, 1, 0.36, 1);
}

.crx-contact-card.crx-revealed {
  opacity: 1;
  transform: translateY(0);
}

.crx-form-input,
.crx-form-textarea,
.crx-form-select,
input[type="text"],
input[type="email"],
input[type="tel"],
textarea,
select {
  transition: border-color 0.3s ease, box-shadow 0.3s ease;
}

.crx-form-input:focus,
.crx-form-textarea:focus,
input[type="text"]:focus,
input[type="email"]:focus,
input[type="tel"]:focus,
textarea:focus {
  border-color: var(--primary) !important;
  box-shadow: 0 0 0 3px rgba(6, 148, 148, 0.12) !important;
  outline: none;
}




.crx-gallery-item {
  opacity: 0;
  transform: scale(0.92) translateY(20px);
  transition: opacity 0.55s ease, transform 0.55s cubic-bezier(0.22, 1, 0.36, 1);
}

.crx-gallery-item.crx-revealed {
  opacity: 1;
  transform: scale(1) translateY(0);
}

.crx-gallery-item:hover {
  transform: scale(1.03) !important;
  z-index: 2;
  transition: transform 0.3s cubic-bezier(0.22, 1, 0.36, 1) !important;
}




#massive-hero-number {
  
  will-change: transform, opacity;
}




@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }

  [data-reveal],
  [data-reveal="left"],
  [data-reveal="right"],
  [data-reveal="scale"],
  [data-reveal="clip"],
  .crx-history-photo,
  .crx-section-badge,
  .crx-section-title,
  .crx-section-subtitle,
  .crx-mentor-photo img,
  .crx-mentor-text,
  .crx-faq-item,
  .crx-contact-card,
  .crx-gallery-item,
  .crx-cta-strip,
  .crx-marquee-section,
  .crx-word,
  .crx-new-hero-subtitle,
  .crx-new-hero-buttons,
  .circular-card {
    opacity: 1 !important;
    transform: none !important;
    clip-path: none !important;
    filter: none !important;
    transition: none !important;
  }

  .crx-mentor-photo img {
    filter: brightness(0.75) !important;
    transform: scale(2.8) translateY(5%) !important;
  }

  .crx-cursor-dot,
  .crx-cursor-ring {
    display: none !important;
  }
}




@media (max-width: 768px) {
  .crx-cursor-dot,
  .crx-cursor-ring {
    display: none;
  }

  [data-reveal],
  [data-reveal="left"],
  [data-reveal="right"] {
    transform: translateY(24px);
  }

  .crx-history-photo:hover {
    transform: none !important;
  }
}
