body {
  opacity: 0;
  transition: opacity 0.7s cubic-bezier(0.22, 1, 0.36, 1);
}

body.page-ready {
  opacity: 1;
}

section {
  position: relative;
}

section::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.06), rgba(255, 255, 255, 0));
  opacity: 0.35;
  pointer-events: none;
}

.card,
.feature-item,
.service-item,
.team-member,
.testimonial-item,
.pricing-card,
.faq-item,
.info-item,
.contact-form-wrapper,
.faq-card {
  position: relative;
  transition:
    transform 0.45s cubic-bezier(0.22, 1, 0.36, 1),
    box-shadow 0.45s cubic-bezier(0.22, 1, 0.36, 1),
    border-color 0.45s cubic-bezier(0.22, 1, 0.36, 1);
  box-shadow: 0 20px 50px rgba(15, 23, 42, 0.08);
}

.card::after,
.feature-item::after,
.service-item::after,
.team-member::after,
.testimonial-item::after,
.pricing-card::after,
.faq-item::after,
.info-item::after,
.contact-form-wrapper::after,
.faq-card::after {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;
  padding: 1px;
  background: linear-gradient(135deg, rgba(255, 255, 255, 0.45), rgba(56, 189, 248, 0.25), rgba(99, 102, 241, 0.18));
  -webkit-mask:
    linear-gradient(#fff 0 0) content-box,
    linear-gradient(#fff 0 0);
  -webkit-mask-composite: xor;
  mask-composite: exclude;
  opacity: 0;
  transition: opacity 0.45s cubic-bezier(0.22, 1, 0.36, 1);
  pointer-events: none;
}

.card:hover,
.feature-item:hover,
.service-item:hover,
.team-member:hover,
.testimonial-item:hover,
.pricing-card:hover,
.faq-item:hover,
.info-item:hover,
.contact-form-wrapper:hover,
.faq-card:hover {
  transform: translateY(-8px) scale(1.02);
  box-shadow: 0 28px 70px rgba(59, 130, 246, 0.16), 0 0 35px rgba(168, 85, 247, 0.12);
}

.card:hover::after,
.feature-item:hover::after,
.service-item:hover::after,
.team-member:hover::after,
.testimonial-item:hover::after,
.pricing-card:hover::after,
.faq-item:hover::after,
.info-item:hover::after,
.contact-form-wrapper:hover::after,
.faq-card:hover::after {
  opacity: 1;
}

a,
button,
.btn,
.btn-getstarted,
.action-btn,
.submit-btn {
  transition:
    transform 0.35s cubic-bezier(0.22, 1, 0.36, 1),
    box-shadow 0.35s cubic-bezier(0.22, 1, 0.36, 1),
    opacity 0.35s cubic-bezier(0.22, 1, 0.36, 1);
}

a:hover,
button:hover,
.btn:hover,
.btn-getstarted:hover,
.action-btn:hover,
.submit-btn:hover {
  transform: translateY(-2px) scale(1.05);
  box-shadow: 0 16px 40px rgba(59, 130, 246, 0.18);
}

img {
  transition:
    transform 0.6s cubic-bezier(0.22, 1, 0.36, 1),
    filter 0.6s cubic-bezier(0.22, 1, 0.36, 1);
}

img:hover {
  transform: scale(1.02);
  filter: brightness(1.02);
}

.text-reveal {
  overflow: hidden;
}
