.vs-line-mask { display: block; overflow: clip; padding-block: .08em; margin-block: -.08em; }
.vs-line-inner { display: block; }
.elementor .vs-hero > .e-con,
.elementor .vs-hero > .elementor-widget { position:relative; z-index:2; }
.elementor .vs-hero::before {
  content:'';
  position:absolute;
  inset:-6vh 0 auto auto;
  width:min(1120px,76vw);
  height:min(820px,84vh);
  border:0;
  z-index:0;
  pointer-events:none;
  opacity:.68;
  background:
    linear-gradient(132deg,transparent 0 14%,rgba(227,6,19,.46) 14.2% 14.65%,transparent 14.9% 100%),
    linear-gradient(28deg,transparent 0 26%,rgba(227,6,19,.56) 26.2% 26.65%,transparent 26.9% 100%),
    linear-gradient(68deg,transparent 0 43%,rgba(227,6,19,.5) 43.2% 43.65%,transparent 43.9% 100%),
    linear-gradient(154deg,transparent 0 58%,rgba(227,6,19,.46) 58.2% 58.65%,transparent 58.9% 100%),
    linear-gradient(110deg,transparent 0 72%,rgba(227,6,19,.42) 72.2% 72.65%,transparent 72.9% 100%),
    radial-gradient(circle at 76% 18%,rgba(227,6,19,.55),transparent 18%),
    radial-gradient(circle at 47% 64%,rgba(180,0,12,.48),transparent 23%),
    radial-gradient(circle at 86% 72%,rgba(227,6,19,.28),transparent 24%);
  filter:drop-shadow(0 0 34px rgba(227,6,19,.2));
  transform-origin:62% 46%;
  transform:rotate(-2deg);
}
.elementor .vs-hero::after {
  content:'';
  position:absolute;
  inset:0;
  z-index:1;
  pointer-events:none;
  background:
    linear-gradient(105deg,transparent 0 38%,rgba(227,6,19,.1) 39%,transparent 41% 100%),
    linear-gradient(18deg,transparent 0 56%,rgba(255,255,255,.045) 57%,transparent 58.5% 100%);
  opacity:.44;
  transform:translateX(-18%);
}
@media (prefers-reduced-motion:no-preference) {
  .elementor .vs-hero::before { animation:vs-mesh-drift 12s ease-in-out infinite alternate; }
  .elementor .vs-hero::after { animation:vs-signal-sweep 7.5s ease-in-out infinite; }
  @keyframes vs-mesh-drift {
    0% { opacity:.74; transform:translate3d(0,0,0) rotate(-2deg) scale(1); }
    50% { opacity:.96; transform:translate3d(-34px,22px,0) rotate(1.5deg) scale(1.05); }
    100% { opacity:.82; transform:translate3d(18px,-16px,0) rotate(-.8deg) scale(1.02); }
  }
  @keyframes vs-signal-sweep {
    0%,28% {opacity:0;transform:translateX(-38%);}
    48% {opacity:.58;}
    72%,100% {opacity:0;transform:translateX(42%);}
  }
}
@media (min-width:881px) and (prefers-reduced-motion: no-preference) {
  .elementor > .vs-stack-section {
    position:sticky;
    top:var(--vs-stack-top,0px);
    z-index:var(--vs-stack-order,1);
    isolation:isolate;
    box-shadow:0 -28px 70px rgba(0,0,0,.2), inset 0 1px 0 rgba(255,255,255,.1);
  }
  .vs-footer { position:relative; z-index:8; }
}
@media (prefers-reduced-motion: no-preference) {
  .vs-reveal-pending .vs-line-inner { transform: translateY(115%); }
  .vs-reveal-visible .vs-line-inner { animation: vs-line-enter .75s cubic-bezier(.2,.7,.2,1) both; animation-delay: calc(var(--line-index) * 95ms); }
  @keyframes vs-line-enter { from { transform: translateY(115%); } to { transform: translateY(0); } }
}
.vs-reels-track { scroll-behavior: smooth; scrollbar-width: thin; scrollbar-color: #c0c0c0 transparent; }
@media (prefers-reduced-motion: reduce) { .vs-reels-track { scroll-behavior: auto; } }
@media (prefers-reduced-motion: no-preference) {
  .elementor .vs-entrance.animated.fadeInUp {
    animation-name: vs-section-enter;
    animation-duration: 760ms;
    animation-timing-function: cubic-bezier(.22,1,.36,1);
    animation-fill-mode: backwards;
  }
  .elementor .vs-entrance.animated.fadeIn { animation-duration: 760ms; }
  .vs-reveal-visible .vs-line-inner { animation-timing-function:cubic-bezier(.16,1,.3,1); }
  @keyframes vs-section-enter {
    from { opacity: 0; transform: translate3d(0,34px,0); }
    to { opacity: 1; transform: translate3d(0,0,0); }
  }
}
@media (min-width:768px) and (prefers-reduced-motion: no-preference) {
  .vs-hero > .vs-scroll-scene > .elementor-widget-container,
  .vs-hero > .vs-scroll-scene > .elementor-wrapper {
    transform:scale(calc(.94 + var(--vs-scroll-progress,0) * .06));
    transform-origin:center center;
    border-radius:calc(24px - var(--vs-scroll-progress,0) * 16px);
    overflow:hidden;
  }
  .vs-project.vs-scroll-scene {
    clip-path:inset(0 calc((1 - var(--vs-scroll-progress,0)) * 2%) calc((1 - var(--vs-scroll-progress,0)) * 4%) round 8px);
  }
}
@media (prefers-reduced-motion: reduce) {
  .elementor .vs-entrance.elementor-invisible { visibility: visible; }
  .elementor .vs-entrance.animated { animation: none; }
}
