:root {
  --nx-hero-pan-duration: 18s;
  --nx-scan-duration: 5.6s;
  --nx-signal-opacity: 0.82;
}

.nx-motion-subtle {
  --nx-hero-pan-duration: 28s;
  --nx-scan-duration: 8s;
  --nx-signal-opacity: 0.58;
}

.nx-motion-strong {
  --nx-hero-pan-duration: 12s;
  --nx-scan-duration: 3.8s;
  --nx-signal-opacity: 0.96;
}

.nx-hero__media {
  inset: -2.5%;
  animation: nx-hero-camera var(--nx-hero-pan-duration) ease-in-out infinite alternate;
  will-change: transform;
}

.nx-hero__shade {
  z-index: 1;
}

.nx-hero__content {
  z-index: 3;
}

.nx-hero__motion {
  position: absolute;
  inset: var(--nx-header-height) 0 0 48%;
  z-index: 2;
  overflow: hidden;
  opacity: var(--nx-signal-opacity);
  pointer-events: none;
}

.nx-vision-scan {
  position: absolute;
  top: 0;
  bottom: 0;
  left: 4%;
  width: 1px;
  background: rgba(91, 234, 211, 0.72);
  box-shadow: 0 0 18px rgba(91, 234, 211, 0.8), 0 0 60px rgba(91, 234, 211, 0.24);
  animation: nx-vision-scan var(--nx-scan-duration) ease-in-out infinite;
}

.nx-vision-scan::after {
  position: absolute;
  top: 0;
  left: -4px;
  width: 9px;
  height: 42px;
  content: "";
  background: rgba(121, 240, 220, 0.9);
  box-shadow: 0 0 22px rgba(91, 234, 211, 0.86);
  animation: nx-scan-head 2.8s linear infinite;
}

.nx-vision-target {
  position: absolute;
  top: 28%;
  left: 28%;
  width: 230px;
  height: 142px;
  border: 1px solid rgba(101, 231, 211, 0.62);
  animation: nx-target-drift 6s ease-in-out infinite alternate;
}

.nx-vision-target::before,
.nx-vision-target::after {
  position: absolute;
  content: "";
  background: rgba(101, 231, 211, 0.7);
}

.nx-vision-target::before {
  top: 50%;
  right: 10%;
  left: 10%;
  height: 1px;
}

.nx-vision-target::after {
  top: 10%;
  bottom: 10%;
  left: 50%;
  width: 1px;
}

.nx-vision-target > span {
  position: absolute;
  width: 18px;
  height: 18px;
  border-color: #7cebd8;
  border-style: solid;
}

.nx-vision-target > span:nth-child(1) {
  top: -3px;
  left: -3px;
  border-width: 2px 0 0 2px;
}

.nx-vision-target > span:nth-child(2) {
  top: -3px;
  right: -3px;
  border-width: 2px 2px 0 0;
}

.nx-vision-target > span:nth-child(3) {
  right: -3px;
  bottom: -3px;
  border-width: 0 2px 2px 0;
}

.nx-vision-target > span:nth-child(4) {
  bottom: -3px;
  left: -3px;
  border-width: 0 0 2px 2px;
}

.nx-vision-target b,
.nx-vision-target small {
  position: absolute;
  left: 0;
  color: #a4f4e4;
  font-weight: 800;
}

.nx-vision-target b {
  bottom: -25px;
  font-size: 10px;
}

.nx-vision-target small {
  bottom: -40px;
  color: rgba(255, 255, 255, 0.52);
  font-size: 8px;
}

.nx-data-node {
  position: absolute;
  display: grid;
  grid-template-columns: 18px minmax(0, 1fr);
  gap: 3px 9px;
  width: 152px;
  padding: 11px 12px;
  border: 1px solid rgba(106, 226, 207, 0.34);
  border-radius: 4px;
  color: #fff;
  background: rgba(7, 28, 38, 0.74);
  backdrop-filter: blur(5px);
  animation: nx-data-signal 4.8s ease-in-out infinite;
}

.nx-data-node i {
  grid-row: 1 / 3;
  align-self: center;
  width: 9px;
  height: 9px;
  border: 2px solid #71e6d2;
  border-radius: 50%;
  box-shadow: 0 0 0 5px rgba(89, 226, 202, 0.1);
}

.nx-data-node span {
  color: rgba(255, 255, 255, 0.56);
  font-size: 8px;
  font-weight: 800;
}

.nx-data-node strong {
  color: #b2f4e7;
  font-size: 11px;
}

.nx-data-node--vision {
  top: 17%;
  right: 7%;
}

.nx-data-node--mes {
  top: 52%;
  right: 13%;
  animation-delay: -1.6s;
}

.nx-data-node--factory {
  right: 5%;
  bottom: 13%;
  animation-delay: -3.2s;
}

.nx-kicker b {
  font-size: inherit;
  font-weight: inherit;
}

[data-site-field="hero.title"],
[data-site-field="hero.highlight"],
[data-site-field="hero.lead"],
[data-site-field="intro.title"],
[data-site-field="contact.address"],
[data-site-field="contact.lab"] {
  white-space: pre-line;
}

.nx-managed-notice {
  color: #17343f;
  background: #e7f5f2;
  border-bottom: 1px solid #c8dfdb;
}

.nx-managed-notice > .nx-shell {
  display: grid;
  grid-template-columns: 90px minmax(0, 1fr) auto 36px;
  gap: 22px;
  align-items: center;
  min-height: 84px;
  padding-top: 13px;
  padding-bottom: 13px;
}

.nx-managed-notice > .nx-shell > span {
  color: #087f7b;
  font-size: 10px;
  font-weight: 850;
}

.nx-managed-notice strong {
  display: block;
  font-size: 14px;
}

.nx-managed-notice p {
  margin: 5px 0 0;
  color: #637780;
  font-size: 12px;
  line-height: 1.6;
}

.nx-managed-notice a {
  padding-bottom: 3px;
  border-bottom: 1px solid #4b7978;
  color: #185654;
  font-size: 11px;
  font-weight: 800;
}

.nx-managed-notice button {
  display: grid;
  width: 34px;
  height: 34px;
  padding: 0;
  border: 0;
  border-radius: 4px;
  place-items: center;
  color: #45656c;
  background: rgba(255, 255, 255, 0.68);
  font-size: 22px;
  cursor: pointer;
}

.nx-motion-off .nx-hero__media {
  animation: none;
  transform: scale(1.03);
}

.nx-motion-off .nx-hero__motion {
  display: none;
}

@keyframes nx-hero-camera {
  0% { transform: scale(1.04) translate3d(-0.6%, 0, 0); }
  100% { transform: scale(1.1) translate3d(1.2%, -0.8%, 0); }
}

@keyframes nx-vision-scan {
  0%, 8% { transform: translateX(0); opacity: 0; }
  18%, 78% { opacity: 1; }
  92%, 100% { transform: translateX(42vw); opacity: 0; }
}

@keyframes nx-scan-head {
  0% { transform: translateY(-42px); }
  100% { transform: translateY(calc(100svh - var(--nx-header-height))); }
}

@keyframes nx-target-drift {
  0% { transform: translate3d(-10px, 6px, 0); opacity: 0.58; }
  100% { transform: translate3d(14px, -8px, 0); opacity: 1; }
}

@keyframes nx-data-signal {
  0%, 100% { transform: translateY(0); opacity: 0.55; }
  50% { transform: translateY(-5px); opacity: 1; }
}

@media (max-width: 1100px) {
  .nx-hero__motion {
    left: 54%;
  }

  .nx-data-node {
    width: 138px;
  }
}

@media (max-width: 720px) {
  .nx-hero__media {
    inset: -1.5%;
  }

  .nx-hero__motion {
    inset: var(--nx-header-height) 0 0 0;
    opacity: 0.42;
  }

  .nx-vision-target,
  .nx-data-node {
    display: none;
  }

  .nx-vision-scan {
    left: 0;
  }

  .nx-managed-notice > .nx-shell {
    grid-template-columns: 1fr 34px;
    gap: 10px 16px;
    padding-top: 16px;
    padding-bottom: 16px;
  }

  .nx-managed-notice > .nx-shell > span {
    grid-column: 1;
  }

  .nx-managed-notice > .nx-shell > div {
    grid-column: 1;
  }

  .nx-managed-notice a {
    grid-column: 1;
    justify-self: start;
  }

  .nx-managed-notice button {
    grid-row: 1;
    grid-column: 2;
  }
}

@media (prefers-reduced-motion: reduce) {
  .nx-hero__media,
  .nx-vision-scan,
  .nx-vision-scan::after,
  .nx-vision-target,
  .nx-data-node {
    animation: none !important;
  }

  .nx-hero__motion {
    display: none;
  }
}
