:root {
  --wfx-bg: #07111d;
  --wfx-surface: rgba(10, 18, 33, 0.72);
  --wfx-surface-strong: rgba(12, 24, 42, 0.88);
  --wfx-line: rgba(255, 255, 255, 0.08);
  --wfx-text-soft: rgba(238, 245, 255, 0.82);
  --wfx-accent: #8cff6a;
  --wfx-accent-soft: #1d8ef0;
  --wfx-scroll-ratio: 0;
  --wfx-pointer-x: 0%;
  --wfx-pointer-y: 0%;
}

body.wilmes-wp-effects {
  overflow-x: clip;
}

.wfx-liquid-layer {
  position: fixed;
  inset: -12%;
  pointer-events: none;
  z-index: 0;
}

.wfx-liquid-layer--a {
  background:
    radial-gradient(circle at calc(18% + var(--wfx-pointer-x) * 0.2) 12%, color-mix(in srgb, var(--wfx-accent) 24%, transparent), transparent 26%),
    radial-gradient(circle at 82% calc(16% + var(--wfx-scroll-ratio) * 32%), color-mix(in srgb, var(--wfx-accent-soft) 26%, transparent), transparent 28%),
    conic-gradient(from calc(180deg + var(--wfx-scroll-ratio) * 140deg) at 50% 50%, transparent 0deg, color-mix(in srgb, var(--wfx-accent-soft) 10%, transparent) 70deg, transparent 150deg, color-mix(in srgb, var(--wfx-accent) 8%, transparent) 240deg, transparent 320deg);
  filter: blur(34px) saturate(116%);
  opacity: 0.72;
  animation: wfx-liquid-flow 24s linear infinite;
}

.wfx-liquid-layer--b {
  background:
    linear-gradient(115deg, transparent 0%, rgba(255, 255, 255, 0.026) 32%, transparent 55%),
    radial-gradient(circle at 50% 0%, rgba(255, 255, 255, 0.06), transparent 58%);
  mask-image: linear-gradient(180deg, rgba(0, 0, 0, 0.82), transparent 88%);
  opacity: 0.64;
  animation: wfx-liquid-scan 18s ease-in-out infinite;
}

body.wilmes-wp-effects #page-container,
body.wilmes-wp-effects .emk-shell,
body.wilmes-wp-effects .svx-page,
body.wilmes-wp-effects .egw-shell,
body.wilmes-wp-effects main {
  position: relative;
  z-index: 1;
}

body.wilmes-wp-effects [data-wfx-reveal] {
  opacity: 0;
  transform: translate3d(0, 22px, 0) scale(0.992);
  transition:
    opacity 420ms cubic-bezier(0.16, 1, 0.3, 1),
    transform 520ms cubic-bezier(0.16, 1, 0.3, 1);
  will-change: transform, opacity;
}

body.wilmes-wp-effects [data-wfx-reveal].is-visible {
  opacity: 1;
  transform: translate3d(0, 0, 0) scale(1);
}

body.wilmes-wp-effects .wfx-window,
body.wilmes-wp-effects .emk-faq__item,
body.wilmes-wp-effects .et_pb_toggle,
body.wilmes-wp-effects .et_pb_blurb_content,
body.wilmes-wp-effects .et_pb_promo,
body.wilmes-wp-effects .et_pb_pricing,
body.wilmes-wp-effects .svx-card,
body.wilmes-wp-effects .svx-contact,
body.wilmes-wp-effects .svx-quote,
body.wilmes-wp-effects .svx-step,
body.wilmes-wp-effects .egw-card,
body.wilmes-wp-effects .egw-panel {
  position: relative;
  overflow: hidden;
  border: 1px solid var(--wfx-line);
  box-shadow: 0 28px 70px rgba(2, 6, 16, 0.18);
  transform:
    perspective(1400px)
    rotateX(var(--wfx-tilt-x, 0deg))
    rotateY(var(--wfx-tilt-y, 0deg))
    translate3d(0, 0, 0);
  transform-style: preserve-3d;
  transition:
    transform 240ms cubic-bezier(0.16, 1, 0.3, 1),
    box-shadow 240ms ease,
    border-color 240ms ease;
}

body.wilmes-wp-effects .wfx-window::before,
body.wilmes-wp-effects .emk-faq__item::before,
body.wilmes-wp-effects .et_pb_toggle::before,
body.wilmes-wp-effects .et_pb_blurb_content::before,
body.wilmes-wp-effects .et_pb_promo::before,
body.wilmes-wp-effects .et_pb_pricing::before,
body.wilmes-wp-effects .svx-card::before,
body.wilmes-wp-effects .svx-contact::before,
body.wilmes-wp-effects .svx-quote::before,
body.wilmes-wp-effects .svx-step::before,
body.wilmes-wp-effects .egw-card::before,
body.wilmes-wp-effects .egw-panel::before {
  content: "";
  position: absolute;
  inset: 1px;
  pointer-events: none;
  border-radius: inherit;
  background: radial-gradient(circle at var(--wfx-glow-x, 50%) var(--wfx-glow-y, 24%), color-mix(in srgb, var(--wfx-accent) 16%, transparent), transparent 36%);
  opacity: 0;
  transition: opacity 240ms ease;
}

body.wilmes-wp-effects .wfx-window:hover::before,
body.wilmes-wp-effects .wfx-window:focus-within::before,
body.wilmes-wp-effects .emk-faq__item:hover::before,
body.wilmes-wp-effects .et_pb_toggle:hover::before,
body.wilmes-wp-effects .et_pb_blurb_content:hover::before,
body.wilmes-wp-effects .et_pb_promo:hover::before,
body.wilmes-wp-effects .et_pb_pricing:hover::before {
body.wilmes-wp-effects .svx-card:hover::before,
body.wilmes-wp-effects .svx-contact:hover::before,
body.wilmes-wp-effects .svx-quote:hover::before,
body.wilmes-wp-effects .svx-step:hover::before,
  opacity: 1;
}

body.wilmes-wp-effects .et_pb_section,
body.wilmes-wp-effects .et_pb_row,
body.wilmes-wp-effects .et_pb_module,
body.wilmes-wp-effects .et_pb_toggle,
body.wilmes-wp-effects .et_pb_promo,
body.wilmes-wp-effects .et_pb_pricing,
body.wilmes-wp-effects .svx-card,
body.wilmes-wp-effects .svx-contact,
body.wilmes-wp-effects .svx-quote,
body.wilmes-wp-effects .svx-step,
body.wilmes-wp-effects .emk-panel,
body.wilmes-wp-effects .emk-card,
body.wilmes-wp-effects .egw-panel,
body.wilmes-wp-effects .egw-card {
  transition:
    box-shadow 240ms ease,
    border-color 240ms ease,
    transform 240ms cubic-bezier(0.16, 1, 0.3, 1);
}

body.wilmes-wp-effects .et_pb_section:hover,
body.wilmes-wp-effects .et_pb_row:hover,
body.wilmes-wp-effects .et_pb_toggle:hover,
body.wilmes-wp-effects .et_pb_promo:hover,
body.wilmes-wp-effects .et_pb_pricing:hover,
body.wilmes-wp-effects .svx-card:hover,
body.wilmes-wp-effects .svx-contact:hover,
body.wilmes-wp-effects .svx-quote:hover,
body.wilmes-wp-effects .svx-step:hover,
body.wilmes-wp-effects .emk-panel:hover,
body.wilmes-wp-effects .emk-card:hover,
body.wilmes-wp-effects .egw-panel:hover,
body.wilmes-wp-effects .egw-card:hover {
  box-shadow: 0 28px 84px rgba(3, 8, 18, 0.22);
  border-color: color-mix(in srgb, var(--wfx-accent-soft) 26%, rgba(255, 255, 255, 0.12));
}

body.wilmes-wp-effects .wfx-text-glow,
body.wilmes-wp-effects .et_pb_fullwidth_header h1,
body.wilmes-wp-effects .et_pb_slide_title,
body.wilmes-wp-effects .emk-hero h1,
body.wilmes-wp-effects .svx-hero h1,
body.wilmes-wp-effects .egw-hero h1 {
  background:
    linear-gradient(96deg, #f7fbff 0%, color-mix(in srgb, var(--wfx-accent) 46%, #ffffff) 34%, color-mix(in srgb, var(--wfx-accent-soft) 52%, #ffffff) 68%, #f7fbff 100%);
  background-size: 220% 220%;
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  animation: wfx-heading-sheen 11s ease-in-out infinite;
}

body.wilmes-wp-effects .et_pb_toggle {
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.06), transparent 72%),
    var(--wfx-surface);
  backdrop-filter: blur(18px);
}

body.wilmes-wp-effects .et_pb_toggle_title,
body.wilmes-wp-effects .et_pb_toggle_content,
body.wilmes-wp-effects .et_pb_blurb_description,
body.wilmes-wp-effects .et_pb_text_inner,
body.wilmes-wp-effects .et_pb_slide_description,
body.wilmes-wp-effects .emk-faq__item p {
  color: var(--wfx-text-soft);
}

body.wilmes-wp-effects .et_pb_toggle_open {
  border-color: color-mix(in srgb, var(--wfx-accent) 34%, rgba(255, 255, 255, 0.12));
}

body.wilmes-wp-effects .et_pb_toggle_title::before {
  color: var(--wfx-accent);
}

body.wilmes-wp-effects .et_pb_button,
body.wilmes-wp-effects .et_pb_promo_button,
body.wilmes-wp-effects .emk-button {
  box-shadow: 0 18px 40px color-mix(in srgb, var(--wfx-accent-soft) 18%, transparent);
  transition:
    transform 200ms ease,
    box-shadow 200ms ease,
    filter 200ms ease;
}

body.wilmes-wp-effects .et_pb_button:hover,
body.wilmes-wp-effects .et_pb_promo_button:hover,
body.wilmes-wp-effects .emk-button:hover {
  transform: translateY(-2px);
  filter: saturate(1.06);
}

body.wilmes-wp-effects .emk-faq__item summary,
body.wilmes-wp-effects details summary {
  position: relative;
}

body.wilmes-wp-effects .et_pb_section[data-wfx-parallax],
body.wilmes-wp-effects .emk-hero[data-wfx-parallax],
body.wilmes-wp-effects .svx-hero[data-wfx-parallax],
body.wilmes-wp-effects .egw-hero[data-wfx-parallax] {
  will-change: transform;
}

@keyframes wfx-liquid-flow {
  0% {
    transform: translate3d(0, 0, 0) scale(1) rotate(0deg);
  }
  50% {
    transform: translate3d(1.5%, -1.2%, 0) scale(1.04) rotate(8deg);
  }
  100% {
    transform: translate3d(0, 0, 0) scale(1) rotate(0deg);
  }
}

@keyframes wfx-liquid-scan {
  0%,
  100% {
    transform: translate3d(0, 0, 0);
    opacity: 0.52;
  }
  50% {
    transform: translate3d(-1.2%, 2%, 0);
    opacity: 0.8;
  }
}

@keyframes wfx-heading-sheen {
  0%,
  100% {
    background-position: 0% 50%;
  }
  50% {
    background-position: 100% 50%;
  }
}

@media (prefers-reduced-motion: reduce) {
  .wfx-liquid-layer,
  body.wilmes-wp-effects .wfx-text-glow,
  body.wilmes-wp-effects .et_pb_fullwidth_header h1,
  body.wilmes-wp-effects .et_pb_slide_title,
  body.wilmes-wp-effects .emk-hero h1,
  body.wilmes-wp-effects .svx-hero h1,
  body.wilmes-wp-effects .egw-hero h1 {
    animation: none;
  }

  body.wilmes-wp-effects [data-wfx-reveal] {
    opacity: 1;
    transform: none;
    transition: none;
  }

  body.wilmes-wp-effects .wfx-window,
  body.wilmes-wp-effects .emk-faq__item,
  body.wilmes-wp-effects .et_pb_toggle,
  body.wilmes-wp-effects .et_pb_blurb_content,
  body.wilmes-wp-effects .et_pb_promo,
  body.wilmes-wp-effects .et_pb_pricing {
    transform: none;
    transition: none;
  }
}
