/* StarVision motion-only layer.
   It intentionally avoids theme, color, layout, and CMS logic changes. */

:root {
  --sv-ease-out: cubic-bezier(.16, 1, .3, 1);
  --sv-ease-spring: cubic-bezier(.2, .9, .22, 1);
}

html.sv-motion-ready [data-sv-reveal],
html.sv-motion-ready [data-rv] {
  --sv-reveal-x: 0px;
  --sv-reveal-y: 28px;
  --sv-reveal-scale: 1;
  opacity: 0;
  transform:
    translate3d(var(--sv-reveal-x), var(--sv-reveal-y), 0)
    scale(var(--sv-reveal-scale));
  filter: blur(6px);
  transition:
    opacity 860ms var(--sv-ease-out),
    transform 860ms var(--sv-ease-out),
    filter 860ms var(--sv-ease-out);
  transition-delay: var(--sv-delay, 0ms);
  will-change: opacity, transform, filter;
}

html.sv-motion-ready [data-sv-reveal="left"] {
  --sv-reveal-x: -38px;
  --sv-reveal-y: 0px;
}

html.sv-motion-ready [data-sv-reveal="right"] {
  --sv-reveal-x: 38px;
  --sv-reveal-y: 0px;
}

html.sv-motion-ready [data-sv-reveal="zoom"] {
  --sv-reveal-y: 18px;
  --sv-reveal-scale: .965;
}

html.sv-motion-ready [data-sv-reveal="card"] {
  --sv-reveal-y: 34px;
  --sv-reveal-scale: .982;
}

html.sv-motion-ready [data-sv-reveal].sv-in-view,
html.sv-motion-ready [data-rv].sv-in-view,
html.sv-motion-ready [data-rv].in {
  --sv-reveal-x: 0px;
  --sv-reveal-y: 0px;
  --sv-reveal-scale: 1;
  opacity: 1;
  transform: translate3d(0, 0, 0) scale(1);
  filter: blur(0);
}

html.sv-motion-ready [data-sv-image] {
  --sv-image-scale: 1.055;
  --sv-parallax-y: 0px;
  clip-path: inset(0 0 9% 0 round 2px);
  transform: translate3d(0, var(--sv-parallax-y), 0) scale(var(--sv-image-scale));
  opacity: .92;
  transition:
    clip-path 1100ms var(--sv-ease-out),
    opacity 980ms var(--sv-ease-out),
    transform 1300ms var(--sv-ease-out);
  will-change: clip-path, opacity, transform;
}

html.sv-motion-ready [data-sv-image].sv-in-view {
  --sv-image-scale: 1;
  clip-path: inset(0 0 0 0 round 2px);
  opacity: 1;
}

html.sv-motion-ready [data-sv-parallax] {
  transition:
    clip-path 1100ms var(--sv-ease-out),
    opacity 980ms var(--sv-ease-out),
    transform 220ms linear;
}

html.sv-motion-ready [data-sv-stagger] > * {
  opacity: 0;
  transform: translate3d(0, 24px, 0) scale(.985);
  filter: blur(4px);
  transition:
    opacity 780ms var(--sv-ease-out),
    transform 780ms var(--sv-ease-out),
    filter 780ms var(--sv-ease-out);
  transition-delay: calc(var(--sv-child, 0) * 92ms);
  will-change: opacity, transform, filter;
}

html.sv-motion-ready [data-sv-stagger].sv-in-view > * {
  opacity: 1;
  transform: translate3d(0, 0, 0) scale(1);
  filter: blur(0);
}

[data-sv-spotlight] {
  --sv-lift: 0px;
  --sv-tilt-x: 0deg;
  --sv-tilt-y: 0deg;
  --sv-tilt-z: 0deg;
  position: relative;
  overflow: hidden;
  transform:
    perspective(900px)
    translate3d(
      var(--sv-reveal-x, 0px),
      calc(var(--sv-reveal-y, 0px) + var(--sv-lift)),
      0
    )
    scale(var(--sv-reveal-scale, 1))
    rotateX(var(--sv-tilt-x))
    rotateY(var(--sv-tilt-y))
    rotateZ(var(--sv-tilt-z));
  transform-style: preserve-3d;
  transition:
    transform 680ms var(--sv-ease-spring),
    box-shadow 680ms var(--sv-ease-spring),
    border-color 680ms var(--sv-ease-spring);
  will-change: transform;
}

[data-sv-spotlight]::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  z-index: 0;
  opacity: 0;
  background: radial-gradient(
    360px circle at var(--sv-mx, 50%) var(--sv-my, 50%),
    rgba(255, 255, 255, .24),
    rgba(255, 255, 255, 0) 48%
  );
  mix-blend-mode: soft-light;
  transition: opacity 360ms ease;
}

[data-sv-spotlight]::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  z-index: 0;
  opacity: 0;
  background:
    linear-gradient(
      120deg,
      rgba(255, 255, 255, 0) 20%,
      rgba(255, 255, 255, .18) 48%,
      rgba(255, 255, 255, 0) 76%
    );
  transform: translateX(-120%) skewX(-16deg);
  transition:
    opacity 420ms ease,
    transform 900ms var(--sv-ease-out);
}

[data-sv-spotlight] > * {
  position: relative;
  z-index: 1;
}

[data-sv-spotlight]:hover::after {
  opacity: 1;
}

[data-sv-spotlight]:hover::before {
  opacity: .85;
  transform: translateX(120%) skewX(-16deg);
}

[data-sv-magnetic] {
  --sv-magnetic-x: 0px;
  --sv-magnetic-y: 0px;
  transform: translate3d(var(--sv-magnetic-x), var(--sv-magnetic-y), 0);
  transition:
    transform 380ms var(--sv-ease-spring),
    opacity 260ms ease,
    color 260ms ease,
    background-color 260ms ease,
    border-color 260ms ease;
  will-change: transform;
}

[data-sv-shine] {
  position: relative;
  overflow: hidden;
  isolation: isolate;
}

[data-sv-shine]::after {
  content: "";
  position: absolute;
  top: -20%;
  bottom: -20%;
  left: -40%;
  width: 38%;
  pointer-events: none;
  z-index: 0;
  opacity: 0;
  background: linear-gradient(
    90deg,
    rgba(255, 255, 255, 0),
    rgba(255, 255, 255, .34),
    rgba(255, 255, 255, 0)
  );
  transform: translateX(-120%) skewX(-18deg);
  transition:
    opacity 260ms ease,
    transform 760ms var(--sv-ease-out);
}

[data-sv-shine]:hover::after {
  opacity: .72;
  transform: translateX(390%) skewX(-18deg);
}

@media (hover: hover) and (pointer: fine) {
  html.sv-motion-ready [data-sv-spotlight]:hover {
    --sv-lift: -7px;
  }

  html.sv-motion-ready .s-prod-card:hover .s-prod-card__thumb-bg,
  html.sv-motion-ready .s-svc-card:hover .s-svc-thumb,
  html.sv-motion-ready .ip-prod-card:hover img,
  html.sv-motion-ready .ip-news-card:hover img,
  html.sv-motion-ready .ip-svc-card:hover img {
    --sv-image-scale: 1.045;
  }

  html.sv-motion-ready .s-news-card:hover .s-news-card__title,
  html.sv-motion-ready .ip-news-card:hover h3,
  html.sv-motion-ready .ip-news-card:hover .ip-news-title {
    transform: translate3d(6px, 0, 0);
  }
}

.sv-page-loaded .s-hero__slide.active .s-hero__label,
.sv-page-loaded .s-hero__slide.active .s-hero__h1,
.sv-page-loaded .s-hero__slide.active .s-hero__rule,
.sv-page-loaded .s-hero__slide.active .s-hero__cta {
  transition-timing-function: var(--sv-ease-out);
}

.s-news-card__title,
.ip-news-card h3,
.ip-news-title {
  transition:
    transform 420ms var(--sv-ease-out),
    color 260ms ease;
}

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: .001ms !important;
    animation-iteration-count: 1 !important;
    scroll-behavior: auto !important;
    transition-duration: .001ms !important;
  }

  [data-sv-reveal],
  [data-rv],
  [data-sv-image],
  [data-sv-stagger] > * {
    opacity: 1 !important;
    transform: none !important;
    filter: none !important;
    clip-path: none !important;
  }
}
