.rc-spatial {
  --rc-spatial-x: 0;
  --rc-spatial-y: 0;
  inset: 0;
  opacity: 0;
  overflow: hidden;
  pointer-events: none;
  position: fixed;
  transition: opacity 2.4s ease;
  z-index: 0;
}

.rc-theme-dark .rc-spatial { opacity: .52; }
.rc-theme-light .rc-spatial { opacity: .24; }

/* Decorative artwork can never become a click or touch target. */
.rc-spatial,
.rc-spatial * {
  pointer-events: none !important;
  touch-action: none !important;
  user-select: none !important;
}

/* Raise only known content regions; never rewrite arbitrary body children. */
body:has(> .rc-spatial) :where(.site-content, main, .elementor-location-single, .elementor-location-archive, footer, .elementor-location-footer) {
  position: relative;
  z-index: 1;
}

/* Never let background stacking alter or cover the fixed Elementor header. */
body:has(> .rc-spatial) .elementor-location-header {
  visibility: visible !important;
  z-index: 10000 !important;
}

body:has(> .rc-spatial) .rc-header {
  display: flex !important;
  inset: 0 0 auto !important;
  opacity: 1 !important;
  position: fixed !important;
  visibility: visible !important;
  z-index: 10001 !important;
}

.admin-bar:has(> .rc-spatial) .rc-header {
  top: 32px !important;
}

@media (max-width: 782px) {
  .admin-bar:has(> .rc-spatial) .rc-header { top: 46px !important; }
}

body:has(> .rc-spatial) :where(.site, .site-content, main, .elementor-location-single, .elementor-location-archive, [class*="rc-"][class*="-page"]) {
  background-color: transparent !important;
  background-image: none !important;
}

body:has(> .rc-spatial) main :where(.elementor, .e-con, .e-con-inner, .elementor-section, .elementor-section-wrap, .elementor-column, .elementor-column-wrap, .elementor-widget-wrap, [class*="rc-"][class*="-section"], [class*="rc-"][class*="-hero"]) {
  background-color: transparent !important;
}
.rc-spatial__layer { inset: -8%; position: absolute; will-change: transform; }
.rc-spatial__layer--far { transform: translate(calc(var(--rc-spatial-x) * -3px), calc(var(--rc-spatial-y) * -3px)); }
.rc-spatial__layer--mid { transform: translate(calc(var(--rc-spatial-x) * -8px), calc(var(--rc-spatial-y) * -8px)); }
.rc-spatial__layer--near { transform: translate(calc(var(--rc-spatial-x) * -14px), calc(var(--rc-spatial-y) * -14px)); }

.rc-spatial__line-stream {
  animation: rc-spatial-fall 80s linear infinite;
  height: 200%;
  left: 0;
  position: absolute;
  top: -100%;
  width: 100%;
  will-change: transform;
}

.rc-spatial__lines {
  display: block;
  fill: none;
  height: 50%;
  opacity: .32;
  stroke: #606063;
  stroke-width: .65;
  vector-effect: non-scaling-stroke;
  width: 100%;
}

.rc-spatial__lines path:nth-child(2) { opacity: .25; }
.rc-spatial__lines ellipse { opacity: .16; }
.rc-spatial__lines path:last-child { opacity: .1; }
.rc-theme-light .rc-spatial__lines { opacity: .24; stroke: #464648; }
.rc-theme-light .rc-spatial__object { filter: contrast(.72); opacity: .18; }

.rc-spatial__object { display: block; position: absolute; will-change: transform; }
.rc-spatial__object--sphere {
  aspect-ratio: 1;
  background: radial-gradient(circle at 31% 27%, #606063 0, #2e2e2e 18%, #161515 54%, #0e0e0e 78%);
  border: 1px solid rgb(125 126 129 / .08);
  border-radius: 50%;
  box-shadow: inset -18px -20px 34px rgb(0 0 0 / .72), 0 22px 50px rgb(0 0 0 / .24);
  opacity: .52;
}

.rc-spatial__object--poly {
  background: linear-gradient(145deg, rgb(96 96 99 / .42), rgb(22 21 21 / .12) 47%, rgb(46 46 46 / .48));
  clip-path: polygon(50% 0, 93% 25%, 83% 77%, 44% 100%, 4% 70%, 12% 20%);
  opacity: .42;
}

.rc-spatial__object--poly::after {
  background: linear-gradient(35deg, transparent 49.6%, rgb(170 171 172 / .18) 50%, transparent 50.8%), linear-gradient(145deg, transparent 49.6%, rgb(170 171 172 / .13) 50%, transparent 50.8%);
  content: '';
  inset: 0;
  position: absolute;
}

.rc-spatial__object--plane {
  background: linear-gradient(130deg, rgb(125 126 129 / .16), rgb(22 21 21 / .02));
  border: 1px solid rgb(96 96 99 / .18);
  opacity: .32;
  transform: skewY(-18deg) rotate(12deg);
}

.rc-spatial__object--one { animation: rc-float-one 41s ease-in-out infinite alternate; height: clamp(82px, 11vw, 180px); right: 10%; top: 16%; }
.rc-spatial__object--two { animation: rc-float-two 47s ease-in-out -13s infinite alternate; height: clamp(100px, 15vw, 230px); right: 25%; top: 42%; width: clamp(88px, 13vw, 200px); }
.rc-spatial__object--three { animation: rc-float-three 32s ease-in-out -7s infinite alternate; height: clamp(24px, 3vw, 50px); right: 43%; top: 17%; }
.rc-spatial__object--four { animation: rc-float-four 58s ease-in-out -22s infinite alternate; bottom: -10%; height: 42vh; right: -5%; width: 28vw; }
.rc-spatial__object--five { animation: rc-float-five 25s ease-in-out -4s infinite alternate; bottom: 17%; height: clamp(18px, 2vw, 34px); right: 12%; }

.rc-spatial-scrolled .rc-spatial { opacity: .22; }
.rc-spatial-paused .rc-spatial * { animation-play-state: paused !important; }

@keyframes rc-spatial-fall { from { transform: translate3d(0, 0, 0); } to { transform: translate3d(0, 50%, 0); } }
@keyframes rc-float-one { to { transform: translate3d(-4vw, 6vh, 0) rotate(8deg) scale(.93); } }
@keyframes rc-float-two { to { transform: translate3d(5vw, -5vh, 0) rotate(-13deg) scale(1.06); } }
@keyframes rc-float-three { to { transform: translate3d(-2vw, 4vh, 0) scale(1.12); } }
@keyframes rc-float-four { to { transform: translate3d(-4vw, -3vh, 0) skewY(-14deg) rotate(8deg); } }
@keyframes rc-float-five { to { transform: translate3d(2vw, -6vh, 0) scale(.82); } }

@media (max-width: 767px), (hover: none) {
  .rc-spatial__layer--far, .rc-spatial__layer--mid, .rc-spatial__layer--near { transform: none; }
  .rc-spatial__object--two, .rc-spatial__object--five { display: none; }
  .rc-spatial__lines { opacity: .32; }
}

@media (prefers-reduced-motion: reduce) {
  .rc-spatial { transition: none; }
  .rc-spatial *, .rc-spatial *::before, .rc-spatial *::after { animation: none !important; }
  .rc-spatial__layer { transform: none !important; }
}
