html {
  scroll-behavior: smooth;
}

body {
  --eh-motion-x: 0px;
  --eh-motion-y: 0px;
  --eh-tilt-x: 0deg;
  --eh-tilt-y: 0deg;
  --eh-parallax: 0px;
}

body::before {
  content: "";
  position: fixed;
  inset: 0;
  z-index: 20;
  pointer-events: none;
  background:
    radial-gradient(circle at var(--eh-cursor-x, 50%) var(--eh-cursor-y, 35%), rgba(118, 198, 160, 0.16), transparent 19rem),
    radial-gradient(circle at calc(var(--eh-cursor-x, 50%) + 14rem) calc(var(--eh-cursor-y, 35%) + 8rem), rgba(250, 214, 140, 0.08), transparent 16rem);
  opacity: var(--eh-cursor-opacity, 0);
  transition: opacity 260ms ease;
  mix-blend-mode: screen;
}

.eh-reveal {
  opacity: 0;
  transform: translate3d(0, 26px, 0);
  transition:
    opacity 720ms cubic-bezier(0.22, 1, 0.36, 1),
    transform 720ms cubic-bezier(0.22, 1, 0.36, 1);
  transition-delay: var(--eh-reveal-delay, 0ms);
  will-change: opacity, transform;
}

.eh-reveal.is-visible {
  opacity: 1;
  transform: translate3d(0, 0, 0);
}

.eh-reveal[data-eh-motion="hero"] {
  transform: translate3d(0, 34px, 0) scale(0.985);
}

.eh-reveal[data-eh-motion="hero"].is-visible {
  transform: translate3d(0, 0, 0) scale(1);
}

.eh-depth {
  transform:
    perspective(1100px)
    rotateX(var(--eh-tilt-x))
    rotateY(var(--eh-tilt-y))
    translate3d(var(--eh-motion-x), var(--eh-motion-y), 0);
  transition:
    transform 280ms ease,
    box-shadow 280ms ease,
    border-color 280ms ease,
    background 280ms ease;
  will-change: transform;
}

.eh-reveal.eh-depth {
  transform:
    perspective(1100px)
    rotateX(var(--eh-tilt-x))
    rotateY(var(--eh-tilt-y))
    translate3d(var(--eh-motion-x), calc(var(--eh-motion-y) + 26px), 0);
}

.eh-reveal.eh-depth.is-visible {
  transform:
    perspective(1100px)
    rotateX(var(--eh-tilt-x))
    rotateY(var(--eh-tilt-y))
    translate3d(var(--eh-motion-x), var(--eh-motion-y), 0);
}

.eh-depth:hover {
  box-shadow: 0 26px 70px rgba(6, 30, 24, 0.18);
}

.eh-parallax {
  transform: translate3d(0, var(--eh-parallax), 0);
  will-change: transform;
}

.eh-float {
  animation: ehFloat 7s ease-in-out infinite;
}

.eh-float:nth-child(2n) {
  animation-duration: 8.5s;
  animation-delay: -1.2s;
}

.eh-float:nth-child(3n) {
  animation-duration: 9.5s;
  animation-delay: -2.4s;
}

.eh-magnetic {
  transform: translate3d(var(--eh-button-x), var(--eh-button-y), 0);
  transition:
    transform 180ms ease,
    box-shadow 220ms ease,
    filter 220ms ease;
  will-change: transform;
}

.eh-magnetic:hover {
  filter: saturate(1.08);
}

.eh-ambient {
  position: relative;
  overflow: hidden;
}

.eh-ambient::after {
  content: "";
  position: absolute;
  inset: -35%;
  pointer-events: none;
  background:
    radial-gradient(circle at 18% 22%, rgba(255, 255, 255, 0.16), transparent 22%),
    radial-gradient(circle at 80% 72%, rgba(119, 198, 160, 0.18), transparent 26%);
  opacity: 0;
  transform: translate3d(var(--eh-motion-x), var(--eh-motion-y), 0);
  transition: opacity 320ms ease;
}

.eh-ambient:hover::after {
  opacity: 1;
}

.eh-page-ready .site-header,
.eh-page-ready .scan-header,
.eh-page-ready .analysis-header,
.eh-page-ready .report-header,
.eh-page-ready .share-header,
.eh-page-ready .product-header,
.eh-page-ready .policy-header {
  animation: ehHeaderDrop 640ms cubic-bezier(0.22, 1, 0.36, 1) both;
}

.eh-page-ready .hero .hero-inner > *,
.eh-page-ready .scan-intro > *,
.eh-page-ready .analysis-hero > *,
.eh-page-ready .report-hero > *,
.eh-page-ready .share-hero > *,
.eh-page-ready .product-content > *,
.eh-page-ready .policy-hero > * {
  animation: ehSoftRise 760ms cubic-bezier(0.22, 1, 0.36, 1) both;
}

.eh-page-ready .hero .hero-inner > *:nth-child(2),
.eh-page-ready .scan-intro > *:nth-child(2),
.eh-page-ready .analysis-hero > *:nth-child(2),
.eh-page-ready .report-hero > *:nth-child(2),
.eh-page-ready .share-hero > *:nth-child(2),
.eh-page-ready .product-content > *:nth-child(2),
.eh-page-ready .policy-hero > *:nth-child(2) {
  animation-delay: 90ms;
}

.eh-page-ready .hero .hero-inner > *:nth-child(3),
.eh-page-ready .scan-intro > *:nth-child(3),
.eh-page-ready .analysis-hero > *:nth-child(3),
.eh-page-ready .report-hero > *:nth-child(3),
.eh-page-ready .share-hero > *:nth-child(3),
.eh-page-ready .product-content > *:nth-child(3),
.eh-page-ready .policy-hero > *:nth-child(3) {
  animation-delay: 170ms;
}

.eh-page-ready .hero .hero-inner > *:nth-child(4),
.eh-page-ready .scan-intro > *:nth-child(4),
.eh-page-ready .analysis-hero > *:nth-child(4),
.eh-page-ready .report-hero > *:nth-child(4),
.eh-page-ready .share-hero > *:nth-child(4),
.eh-page-ready .product-content > *:nth-child(4),
.eh-page-ready .policy-hero > *:nth-child(4) {
  animation-delay: 240ms;
}

@keyframes ehHeaderDrop {
  from {
    opacity: 0;
    transform: translate3d(0, -12px, 0);
  }
  to {
    opacity: 1;
    transform: translate3d(0, 0, 0);
  }
}

@keyframes ehSoftRise {
  from {
    opacity: 0;
    transform: translate3d(0, 22px, 0);
  }
  to {
    opacity: 1;
    transform: translate3d(0, 0, 0);
  }
}

@keyframes ehFloat {
  0%,
  100% {
    transform: translate3d(0, 0, 0);
  }
  50% {
    transform: translate3d(0, -10px, 0);
  }
}

@media (hover: none), (pointer: coarse) {
  body::before {
    display: none;
  }

  .eh-depth,
  .eh-magnetic {
    transform: none !important;
  }
}

@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }

  body::before,
  .eh-ambient::after {
    display: none;
  }

  .eh-reveal,
  .eh-reveal[data-eh-motion="hero"],
  .eh-depth,
  .eh-parallax,
  .eh-magnetic,
  .eh-page-ready .site-header,
  .eh-page-ready .scan-header,
  .eh-page-ready .analysis-header,
  .eh-page-ready .report-header,
  .eh-page-ready .share-header,
  .eh-page-ready .product-header,
  .eh-page-ready .policy-header,
  .eh-page-ready .hero .hero-inner > *,
  .eh-page-ready .scan-intro > *,
  .eh-page-ready .analysis-hero > *,
  .eh-page-ready .report-hero > *,
  .eh-page-ready .share-hero > *,
  .eh-page-ready .product-content > *,
  .eh-page-ready .policy-hero > * {
    animation: none !important;
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
  }
}

/* Package v1.2 QA fix: content must remain visible in full-page screenshots and non-observer browsers. */
.eh-reveal,
.eh-reveal.eh-depth,
.eh-reveal[data-eh-motion="hero"] {
  opacity: 1;
  transform: none;
}

.eh-reveal.is-visible,
.eh-reveal.eh-depth.is-visible,
.eh-reveal[data-eh-motion="hero"].is-visible {
  opacity: 1;
  transform: none;
}
