.elementor-142975 .elementor-element.elementor-element-f4a54dc{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;}.elementor-142975 .elementor-element.elementor-element-5432526{--display:flex;--flex-direction:row;--container-widget-width:initial;--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--gap:0px 0px;--row-gap:0px;--column-gap:0px;}.elementor-142975 .elementor-element.elementor-element-56bfccf{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;}.elementor-142975 .elementor-element.elementor-element-c41b878{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;}.elementor-142975 .elementor-element.elementor-element-0e9aa7b{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;}.elementor-142975 .elementor-element.elementor-element-b7538d3{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;}.elementor-142975 .elementor-element.elementor-element-2a22201{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;}@media(min-width:768px){.elementor-142975 .elementor-element.elementor-element-56bfccf{--width:50%;}.elementor-142975 .elementor-element.elementor-element-c41b878{--width:50%;}}/* Start custom CSS *//* =========================================================
   ZAPP Background Layer (Subtle Bands + Slow Drift)
   - HTML widget: <div class="zapp-bg-layer"></div>
   - Lightweight, GPU-friendly animation
   ========================================================= */

.zapp-bg-layer{
  position: fixed;
  inset: 0;
  z-index: -1;
  pointer-events: none;
  overflow: hidden;

  background:
    radial-gradient(1100px 650px at 18% 16%, rgba(120,165,255,0.16), transparent 58%),
    radial-gradient(950px 560px at 85% 14%, rgba(150,190,255,0.13), transparent 58%),
    linear-gradient(180deg, #ffffff 0%, #f4f8ff 42%, #ecf3ff 100%);
}

/* Layers */
.zapp-bg-layer::before,
.zapp-bg-layer::after{
  content:"";
  position: absolute;
  inset: -25%;
  will-change: transform;
}

/* bands + streaks */
.zapp-bg-layer::before{
  opacity: 0.70;
  transform: rotate(-10deg) translate3d(0,0,0);
  background:
    /* subtle big bands */
    linear-gradient(120deg,
      transparent 0%,
      transparent 24%,
      rgba(79,123,255,0.08) 28%,
      rgba(255,255,255,0.30) 33%,
      rgba(79,123,255,0.06) 38%,
      transparent 45%,
      transparent 100%
    ),
    linear-gradient(120deg,
      transparent 0%,
      transparent 58%,
      rgba(79,123,255,0.06) 62%,
      rgba(255,255,255,0.26) 66%,
      rgba(79,123,255,0.05) 70%,
      transparent 76%,
      transparent 100%
    ),

    /* thin streaks */
    repeating-linear-gradient(
      120deg,
      rgba(255,255,255,0.00) 0px,
      rgba(255,255,255,0.00) 34px,
      rgba(255,255,255,0.20) 36px,
      rgba(255,255,255,0.20) 37px,
      rgba(255,255,255,0.00) 54px
    ),

    /* faint blue streaks */
    repeating-linear-gradient(
      120deg,
      rgba(79,123,255,0.00) 0px,
      rgba(79,123,255,0.00) 70px,
      rgba(79,123,255,0.12) 72px,
      rgba(79,123,255,0.12) 73px,
      rgba(79,123,255,0.00) 92px
    );

  filter: blur(10px);

  /* slow drift */
  animation: zappBgDriftA 18s ease-in-out infinite;
}

/* sparkles */
.zapp-bg-layer::after{
  opacity: 0.35;
  background:
    radial-gradient(circle at 72% 22%, rgba(255,215,120,0.40) 0 1.7px, transparent 3px),
    radial-gradient(circle at 67% 28%, rgba(255,255,255,0.45) 0 1.4px, transparent 3px),
    radial-gradient(circle at 34% 66%, rgba(79,123,255,0.22) 0 1.2px, transparent 3px),
    radial-gradient(circle at 18% 42%, rgba(255,255,255,0.35) 0 1.2px, transparent 3px),
    radial-gradient(circle at 86% 54%, rgba(255,255,255,0.35) 0 1.1px, transparent 3px);

  /* different drift so it feels alive */
  animation: zappBgDriftB 22s ease-in-out infinite;
}

/* Drift keyframes (very subtle movement) */
@keyframes zappBgDriftA{
  0%   { transform: rotate(-10deg) translate3d(0px, 0px, 0); }
  50%  { transform: rotate(-10deg) translate3d(-18px, 14px, 0); }
  100% { transform: rotate(-10deg) translate3d(0px, 0px, 0); }
}
@keyframes zappBgDriftB{
  0%   { transform: translate3d(0px, 0px, 0); }
  50%  { transform: translate3d(16px, -10px, 0); }
  100% { transform: translate3d(0px, 0px, 0); }
}

/* Mobile: lighter + slightly faster blur reduction */
@media (max-width: 767px){
  .zapp-bg-layer::before{ opacity: 0.55; filter: blur(8px); }
  .zapp-bg-layer::after{ opacity: 0.25; }
}

/* Accessibility: if user prefers reduced motion, stop animation */
@media (prefers-reduced-motion: reduce){
  .zapp-bg-layer::before,
  .zapp-bg-layer::after{
    animation: none !important;
  }
}/* End custom CSS */