/* ===== Premium Effects: Beams, Glow, 3D ===== */

/* Smooth scrolling globally */
html {
  scroll-behavior: smooth;
}

/* Section dividers with animated beam */
.section-beam {
  position: relative;
  overflow: hidden;
}
.section-beam::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 1px;
  background: linear-gradient(90deg,
    transparent 0%,
    rgba(34,197,94,0) 20%,
    rgba(34,197,94,0.6) 50%,
    rgba(34,197,94,0) 80%,
    transparent 100%);
  animation: beam-pulse 4s ease-in-out infinite;
}
@keyframes beam-pulse {
  0%, 100% { opacity: 0.3; transform: translateX(-30%); }
  50% { opacity: 1; transform: translateX(30%); }
}

/* Glow on cards */
.product-card,
.service-card,
.feature-card,
.partner-card {
  position: relative;
  transform-style: preserve-3d;
  transition: box-shadow 0.4s ease, border-color 0.4s ease;
  will-change: transform;
}

.product-card::before,
.service-card::before,
.feature-card::before,
.partner-card::before {
  content: '';
  position: absolute;
  inset: -1px;
  border-radius: inherit;
  padding: 1px;
  background: linear-gradient(135deg,
    rgba(34,197,94,0) 0%,
    rgba(34,197,94,0) 40%,
    rgba(34,197,94,0.6) 50%,
    rgba(34,197,94,0) 60%,
    rgba(34,197,94,0) 100%);
  -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.4s ease;
  pointer-events: none;
  z-index: 1;
}

.product-card:hover::before,
.service-card:hover::before,
.feature-card:hover::before,
.partner-card:hover::before {
  opacity: 1;
}

.product-card:hover,
.service-card:hover,
.feature-card:hover,
.partner-card:hover {
  box-shadow: 0 20px 60px rgba(34,197,94,0.15), 0 0 80px rgba(34,197,94,0.08);
}

/* VanillaTilt glare smoothing */
.product-card .js-tilt-glare,
.service-card .js-tilt-glare,
.feature-card .js-tilt-glare,
.partner-card .js-tilt-glare {
  border-radius: inherit;
}

/* Hero glow orb backgrounds */
.hero {
  position: relative;
  overflow: hidden;
}

.hero::after {
  content: '';
  position: absolute;
  bottom: -200px;
  right: -200px;
  width: 600px;
  height: 600px;
  background: radial-gradient(circle, rgba(34,197,94,0.08) 0%, transparent 70%);
  pointer-events: none;
  z-index: 1;
  animation: orb-float 8s ease-in-out infinite;
}

@keyframes orb-float {
  0%, 100% { transform: translate(0, 0); }
  50% { transform: translate(-50px, -30px); }
}

/* Section glow accents */
section[class*="section"] {
  position: relative;
}

/* Animated gradient text for accents */
.gradient-text {
  background: linear-gradient(120deg, #22c55e 0%, #16a34a 50%, #22c55e 100%);
  background-size: 200% 200%;
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  animation: gradient-shift 4s ease infinite;
}
@keyframes gradient-shift {
  0%, 100% { background-position: 0% 50%; }
  50% { background-position: 100% 50%; }
}

/* Glow pulse for primary CTAs */
.btn--primary {
  position: relative;
  overflow: hidden;
  isolation: isolate;
}

.btn--primary::after {
  content: '';
  position: absolute;
  top: 50%;
  left: 50%;
  width: 0;
  height: 0;
  border-radius: 50%;
  background: rgba(255,255,255,0.3);
  transform: translate(-50%, -50%);
  transition: width 0.6s ease, height 0.6s ease;
  z-index: -1;
}

.btn--primary:hover::after {
  width: 300px;
  height: 300px;
}

/* Image zoom on hover for product cards */
.product-card img,
.product-card__image img {
  transition: transform 0.6s cubic-bezier(0.4, 0, 0.2, 1);
}

.product-card:hover img {
  transform: scale(1.08);
}

/* Floating animation for badges */
.badge,
.product-card__badge {
  animation: badge-float 3s ease-in-out infinite;
}
@keyframes badge-float {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-3px); }
}

/* Smooth reveal for images */
img {
  transition: opacity 0.4s ease;
}

/* Loading state for animations */
.reveal {
  opacity: 0;
}

.reveal.gsap-revealed {
  opacity: 1;
}

/* Header scroll effect */
.header {
  transition: background 0.3s ease, backdrop-filter 0.3s ease, padding 0.3s ease;
}

.header.scrolled {
  background: rgba(10, 10, 10, 0.85);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
}

/* 3D perspective container for hero content */
.hero__content,
.hero__inner {
  perspective: 1000px;
  transform-style: preserve-3d;
}

/* Subtle text glow on important headlines */
.hero h1,
.hero__title {
  text-shadow: 0 0 60px rgba(34,197,94,0.1);
}

/* Disable cursor glow on touch devices */
@media (pointer: coarse) {
  .cursor-glow {
    display: none !important;
  }
}

/* Reduce motion for accessibility */
@media (prefers-reduced-motion: reduce) {
  .hero-3d-canvas,
  .cursor-glow,
  .section-beam::before,
  .hero::after,
  .gradient-text,
  .badge,
  .product-card__badge {
    animation: none !important;
  }
  * {
    transition-duration: 0.01ms !important;
  }
}

/* Performance optimization */
.product-card,
.service-card,
.feature-card {
  contain: layout style;
}
