@import url("./assets/fonts/xpect-fonts.css");

:root {
  --font-heading: "Sora", "Montserrat", Arial, sans-serif;
  --font-body: "Manrope", "Montserrat", Arial, sans-serif;
  --font-mono: "JetBrains Mono", "Consolas", monospace;
  --bg: #1a1a1a;
  --surface: #0f141b;
  --surface-2: #151d27;
  --line: rgba(0, 132, 225, 0.22);
  --text: #e9f3ff;
  --muted: #9cb2c9;
  --cyan: #0084e1;
  --cyan-soft: #0084e1;
  --amber: #fa9b11;
  --page-max: 1320px;
  --page-gutter: clamp(0.8rem, 2vw, 2rem);
  --topbar-height: 76px;
  --deck-gap: clamp(0.55rem, 1.2vh, 1rem);
  --stage-height: max(340px, calc(100svh - var(--topbar-height) - (var(--deck-gap) * 2)));
  --page-shell: min(var(--page-max), calc(100% - (var(--page-gutter) * 2)));
  --morph-a: rgba(0, 132, 225, 0.26);
  --morph-b: rgba(250, 155, 17, 0.13);
  --morph-c: rgba(0, 132, 225, 0.14);
  --ease-premium: cubic-bezier(0.22, 1, 0.36, 1);
}

* {
  box-sizing: border-box;
}

html {
  height: 100%;
  font-size: 15px;
  scroll-behavior: auto;
}

body {
  min-height: 100%;
  margin: 0;
  font-family: var(--font-body);
  color: var(--text);
  overflow-x: hidden;
  overflow-y: auto;
  background: #1a1a1a;
}

::selection {
  background: rgba(0, 132, 225, 0.38);
  color: #fff;
}

body::after {
  content: "";
  position: fixed;
  inset: -22vh -22vw;
  pointer-events: none;
  z-index: -5;
  background:
    radial-gradient(circle at 12% 22%, rgba(0, 132, 225, 0.14), transparent 36%),
    radial-gradient(circle at 88% 86%, rgba(250, 155, 17, 0.09), transparent 31%),
    linear-gradient(180deg, #1a1a1a 0%, #161616 46%, #1a1a1a 100%);
  background-repeat: repeat;
  will-change: transform;
}

body::before {
  content: "";
  position: fixed;
  inset: 0;
  pointer-events: none;
  z-index: -4;
  opacity: 0.08;
  background-image:
    radial-gradient(rgba(0, 132, 225, 0.14) 0.6px, transparent 0.6px),
    radial-gradient(rgba(250, 155, 17, 0.09) 0.6px, transparent 0.6px);
  background-position: 0 0, 16px 14px;
  background-size: 28px 28px;
}

.skip-link {
  position: absolute;
  left: -999px;
  top: 0.6rem;
  z-index: 120;
  border-radius: 999px;
  padding: 0.5rem 0.9rem;
  background: #061219;
  color: #fa9b11;
  border: 1px solid rgba(0, 132, 225, 0.66);
  text-decoration: none;
  font-family: var(--font-heading);
  font-size: 0.74rem;
  letter-spacing: 0.06em;
}

.skip-link:focus-visible {
  left: 0.75rem;
}

a:focus-visible,
button:focus-visible,
select:focus-visible,
input:focus-visible,
textarea:focus-visible {
  outline: 2px solid rgba(250, 155, 17, 0.9);
  outline-offset: 2px;
}

.background-morph {
  position: fixed;
  inset: -18vh -18vw;
  z-index: -3;
  pointer-events: none;
  overflow: hidden;
  will-change: transform;
}

.background-morph::before,
.background-morph::after {
  content: "";
  position: absolute;
  border-radius: 44% 56% 64% 36% / 48% 35% 65% 52%;
  filter: blur(42px);
  opacity: 0.92;
  transition: background 0.8s ease, transform 0.8s ease, opacity 0.8s ease;
}

.background-morph::before {
  width: min(44vw, 620px);
  height: min(44vw, 620px);
  left: -14vw;
  top: 8vh;
  background: radial-gradient(circle at 40% 38%, var(--morph-a) 0%, transparent 72%);
  animation: morphFloatA 18s ease-in-out infinite alternate;
}

.background-morph::after {
  width: min(42vw, 560px);
  height: min(42vw, 560px);
  right: -12vw;
  bottom: -8vh;
  background: radial-gradient(circle at 58% 54%, var(--morph-b) 0%, var(--morph-c) 43%, transparent 76%);
  animation: morphFloatB 20s ease-in-out infinite alternate;
}

body[data-active-page="soluciones"],
body[data-active-page="productos"] {
  --morph-a: rgba(0, 132, 225, 0.3);
  --morph-b: rgba(250, 155, 17, 0.14);
  --morph-c: rgba(0, 132, 225, 0.17);
}

body[data-active-page="noticias"] {
  --morph-a: rgba(0, 132, 225, 0.26);
  --morph-b: rgba(250, 155, 17, 0.16);
  --morph-c: rgba(0, 132, 225, 0.14);
}

body[data-active-page="arquitectura"] {
  --morph-a: rgba(0, 132, 225, 0.34);
  --morph-b: rgba(250, 155, 17, 0.18);
  --morph-c: rgba(0, 132, 225, 0.17);
}

body[data-active-page="performance"] {
  --morph-a: rgba(0, 132, 225, 0.3);
  --morph-b: rgba(0, 132, 225, 0.14);
  --morph-c: rgba(250, 155, 17, 0.16);
}

body[data-active-page="industrias"] {
  --morph-a: rgba(0, 132, 225, 0.34);
  --morph-b: rgba(0, 132, 225, 0.2);
  --morph-c: rgba(250, 155, 17, 0.12);
}

body[data-active-page="contacto"] {
  --morph-a: rgba(0, 132, 225, 0.36);
  --morph-b: rgba(250, 155, 17, 0.22);
  --morph-c: rgba(0, 132, 225, 0.14);
}

body[data-active-page="tryit"] {
  --morph-a: rgba(0, 132, 225, 0.28);
  --morph-b: rgba(250, 155, 17, 0.18);
  --morph-c: rgba(0, 132, 225, 0.19);
}

.background-grid {
  position: fixed;
  inset: -18vh -18vw;
  z-index: -2;
  background-image:
    linear-gradient(var(--line) 1px, transparent 1px),
    linear-gradient(90deg, var(--line) 1px, transparent 1px);
  background-size: clamp(28px, 2.6vw, 40px) clamp(28px, 2.6vw, 40px);
  background-repeat: repeat;
  opacity: 0.18;
  pointer-events: none;
  will-change: transform;
  transform: translate3d(0, 0, 0);
}

.circuit-overlay {
  position: fixed;
  left: -14vw;
  top: -14vh;
  width: 128vw;
  height: 128vh;
  z-index: -1;
  pointer-events: none;
  opacity: 0.54;
  mix-blend-mode: screen;
  will-change: transform;
}

.circuit-layer {
  will-change: transform;
}

.circuit-layer-slow {
  animation: circuitDriftSlow 20s ease-in-out infinite alternate;
}

.circuit-layer-fast {
  animation: circuitDriftFast 14s ease-in-out infinite alternate;
}

.circuit-trace {
  fill: none;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
  opacity: 0.9;
  filter: drop-shadow(0 0 8px rgba(0, 132, 225, 0.34));
  stroke-dasharray: 130 520;
  animation: circuitDash 12s linear infinite;
}

.circuit-trace-thin {
  stroke-width: 1.4;
  opacity: 0.66;
}

.circuit-nodes circle {
  fill: rgba(0, 132, 225, 0.29);
  stroke: rgba(0, 132, 225, 0.86);
  stroke-width: 1;
}

.topbar {
  position: sticky;
  top: 0;
  z-index: 40;
  backdrop-filter: blur(10px);
  background: rgba(26, 26, 26, 0.92);
  border-bottom: 1px solid var(--line);
}

body.is-plant-scene .topbar {
  z-index: 90;
  background: #1a1a1a;
  backdrop-filter: none;
}

.site-preloader {
  position: fixed;
  inset: 0;
  z-index: 100;
  display: grid;
  place-items: center;
  background:
    radial-gradient(circle at 20% 16%, rgba(0, 132, 225, 0.24), transparent 36%),
    linear-gradient(160deg, rgba(6, 10, 15, 0.95), rgba(7, 13, 20, 0.97));
  transition: opacity 0.7s var(--ease-premium), visibility 0.7s var(--ease-premium);
}

.site-preloader.is-hidden {
  opacity: 0;
  visibility: hidden;
}

.preloader-inner {
  width: min(440px, 86vw);
  text-align: center;
}

.preloader-inner h2 {
  margin-top: 0.55rem;
  font-size: clamp(1.2rem, 2.5vw, 1.7rem);
}

.preloader-kicker {
  margin: 0;
  color: #fa9b11;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  font-size: 0.7rem;
  font-family: var(--font-mono);
}

.preloader-bar {
  margin-top: 0.85rem;
  height: 8px;
  border-radius: 999px;
  border: 1px solid rgba(0, 132, 225, 0.54);
  overflow: hidden;
  background: rgba(11, 20, 29, 0.75);
}

.preloader-bar span {
  display: block;
  height: 100%;
  width: 0;
  border-radius: inherit;
  background: linear-gradient(90deg, #0084e1 0%, #0084e1 58%, #fa9b11 100%);
}

#smooth-wrapper {
  position: relative;
  overflow: hidden;
}

#smooth-content {
  will-change: transform;
}

body.is-plant-scene #smooth-wrapper {
  overflow: visible;
}

body.is-plant-scene #smooth-content {
  will-change: auto;
}

.topbar-inner,
main,
.deck-page {
  width: 100%;
}

.topbar-inner {
  width: var(--page-shell);
  margin-inline: auto;
}

.topbar-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 0.8rem 0;
}

.brand {
  display: inline-flex;
  align-items: center;
  gap: 0.65rem;
  text-decoration: none;
  color: inherit;
  min-width: fit-content;
}

.brand-icon {
  height: 40px;
  width: auto;
  display: block;
  flex: 0 0 auto;
  object-fit: contain;
  object-position: left center;
}

.brand-lockup {
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 0.12rem;
  min-width: 0;
}

.brand-title {
  margin: 0;
  font-family: var(--font-heading);
  letter-spacing: 0.08em;
  font-weight: 700;
  font-size: 1rem;
  line-height: 1;
  color: #fff;
  white-space: nowrap;
}

.brand-subtitle {
  margin: 0;
  color: var(--amber);
  font-size: 0.7rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  line-height: 1;
  white-space: nowrap;
}

.topnav {
  display: flex;
  align-items: center;
  gap: clamp(0.45rem, 1.5vw, 1rem);
}

.topnav a {
  color: var(--muted);
  text-decoration: none;
  font-size: clamp(0.73rem, 0.8vw, 0.9rem);
  letter-spacing: 0.05em;
  text-transform: uppercase;
  transition: color 0.2s ease, text-shadow 0.2s ease;
  white-space: nowrap;
}

.topnav a:hover,
.topnav a.is-active {
  color: var(--cyan);
  text-shadow: 0 0 12px rgba(0, 132, 225, 0.54);
}

.lang-control {
  display: inline-flex;
  align-items: center;
}

.lang-select {
  border: 1px solid rgba(255, 255, 255, 0.18);
  background: rgba(8, 15, 24, 0.92);
  color: #fa9b11;
  border-radius: 999px;
  padding: 0.35rem 0.55rem;
  font-family: var(--font-heading);
  font-size: 0.68rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  outline: none;
}

.lang-select:focus {
  border-color: rgba(0, 132, 225, 0.84);
  box-shadow: 0 0 0 1px rgba(0, 132, 225, 0.54);
}

.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  overflow: hidden;
  border: 0;
  clip: rect(0, 0, 0, 0);
}

.hidden {
  display: none !important;
}

.cta-mini {
  border: 1px solid rgba(0, 132, 225, 0.55);
  border-radius: 999px;
  padding: 0.5rem 0.9rem;
  color: var(--text) !important;
}

.nav-toggle {
  display: none;
  background: transparent;
  border: 0;
  cursor: pointer;
}

.nav-toggle span {
  display: block;
  width: 23px;
  height: 2px;
  background: var(--text);
  margin: 5px 0;
}

.deck {
  position: relative;
  min-height: calc(100svh - var(--topbar-height));
  padding: var(--deck-gap) 0;
  display: grid;
  gap: var(--deck-gap);
}

.deck.is-gsap-enhanced {
  scroll-snap-type: none;
}

.deck-page {
  position: relative;
  isolation: isolate;
  width: var(--page-shell);
  margin-inline: auto;
  min-height: var(--stage-height);
  max-height: var(--stage-height);
  overflow-y: auto;
  overflow-x: clip;
  scrollbar-width: thin;
  opacity: 0.9;
  filter: saturate(0.9) brightness(0.94);
  transform: translate3d(0, 14px, 0) scale(0.99);
  transition: opacity 0.6s ease, transform 0.6s ease, filter 0.6s ease, box-shadow 0.6s ease;
}

.deck-page[id] {
  scroll-margin-top: calc(var(--topbar-height) + var(--deck-gap));
}

.gsap-active .deck-page {
  transition: box-shadow 0.35s ease, border-color 0.35s ease;
}

.deck-page.is-page-active {
  opacity: 1;
  filter: none;
  transform: translate3d(0, 0, 0) scale(1);
}

#productos.deck-page,
#noticias.deck-page {
  max-height: none;
  height: auto;
  overflow: visible;
}

.deck-page::-webkit-scrollbar {
  width: 8px;
}

.deck-page::-webkit-scrollbar-track {
  background: rgba(6, 12, 18, 0.42);
}

.deck-page::-webkit-scrollbar-thumb {
  background: rgba(0, 132, 225, 0.38);
  border-radius: 999px;
}

.parallax-layer {
  --parallax-y: 0px;
  will-change: transform;
  transition: transform 0.18s linear;
  transform: translate3d(0, var(--parallax-y), 0);
}

.gsap-active .parallax-layer {
  transition: none;
  transform: none;
}

.gsap-active .hero-image.parallax-layer {
  scale: 1.08;
  transform-origin: center;
}

.gsap-active .circuit-layer,
.gsap-active .circuit-trace {
  animation: none;
}

.hero-image.parallax-layer {
  transform: translate3d(0, var(--parallax-y), 0) scale(1.06);
}

.hero {
  position: relative;
  display: flex;
  align-items: center;
  overflow: hidden;
  min-height: var(--stage-height);
  max-height: var(--stage-height);
  border: 1px solid var(--line);
  border-radius: 18px;
  isolation: isolate;
  box-shadow: 0 24px 56px rgba(4, 12, 20, 0.42);
}

.hero-image {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transform: translate3d(0, var(--parallax-y, 0px), 0) scale(1.08);
  transform-origin: center;
}

.hero-overlay {
  position: absolute;
  inset: 0;
  background:
    linear-gradient(125deg, rgba(6, 12, 18, 0.95) 0%, rgba(7, 12, 18, 0.5) 44%, rgba(5, 10, 16, 0.9) 100%);
}

.hero-detection {
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
}

.detect-grid {
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(rgba(0, 132, 225, 0.11) 1px, transparent 1px),
    linear-gradient(90deg, rgba(0, 132, 225, 0.11) 1px, transparent 1px);
  background-size: 54px 54px;
  mix-blend-mode: screen;
  opacity: 0.28;
  animation: gridDrift 9s linear infinite;
}

.scan-beam {
  position: absolute;
  inset: 0;
  overflow: hidden;
}

.scan-beam::before {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  height: 30%;
  background: linear-gradient(
    180deg,
    rgba(0, 132, 225, 0) 0%,
    rgba(0, 132, 225, 0.26) 48%,
    rgba(0, 132, 225, 0.05) 100%
  );
  animation: scanSweepY 7.5s linear infinite;
}

.scan-beam::after {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  width: 22%;
  background: linear-gradient(
    90deg,
    rgba(0, 132, 225, 0) 0%,
    rgba(0, 132, 225, 0.2) 50%,
    rgba(0, 132, 225, 0) 100%
  );
  animation: scanSweepX 8.3s linear infinite;
}

.bbox-layer {
  position: absolute;
  inset: 0;
}

.bbox {
  position: absolute;
  border: 2px solid var(--box-color, #3fe08f);
  border-radius: 4px;
  background:
    linear-gradient(var(--box-color, #3fe08f), var(--box-color, #3fe08f)) left top / 14px 2px no-repeat,
    linear-gradient(var(--box-color, #3fe08f), var(--box-color, #3fe08f)) left top / 2px 14px no-repeat,
    linear-gradient(var(--box-color, #3fe08f), var(--box-color, #3fe08f)) right top / 14px 2px no-repeat,
    linear-gradient(var(--box-color, #3fe08f), var(--box-color, #3fe08f)) right top / 2px 14px no-repeat,
    linear-gradient(var(--box-color, #3fe08f), var(--box-color, #3fe08f)) left bottom / 14px 2px no-repeat,
    linear-gradient(var(--box-color, #3fe08f), var(--box-color, #3fe08f)) left bottom / 2px 14px no-repeat,
    linear-gradient(var(--box-color, #3fe08f), var(--box-color, #3fe08f)) right bottom / 14px 2px no-repeat,
    linear-gradient(var(--box-color, #3fe08f), var(--box-color, #3fe08f)) right bottom / 2px 14px no-repeat,
    linear-gradient(135deg, var(--box-bg-a, rgba(63, 224, 143, 0.14)) 0%, var(--box-bg-b, rgba(63, 224, 143, 0.03)) 100%);
  box-shadow: 0 0 18px var(--box-glow, rgba(63, 224, 143, 0.35));
  opacity: 0;
  transform: scale(0.9);
  transform-origin: center;
  transition:
    left 0.45s ease,
    top 0.45s ease,
    width 0.45s ease,
    height 0.45s ease,
    opacity 0.22s ease,
    transform 0.22s ease,
    border-color 0.22s ease,
    box-shadow 0.22s ease;
}

.bbox.is-active {
  opacity: 0.62;
  transform: scale(1);
}

.bbox::before {
  content: attr(data-label);
  position: absolute;
  left: -2px;
  top: -1.5rem;
  display: inline-flex;
  align-items: center;
  padding: 0.18rem 0.42rem;
  font-family: var(--font-heading);
  font-size: clamp(0.46rem, 0.7vw, 0.6rem);
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  white-space: nowrap;
  color: var(--box-color, #3fe08f);
  border: 1px solid color-mix(in srgb, var(--box-color, #3fe08f), #000 30%);
  background: rgba(3, 15, 21, 0.93);
  text-shadow: 0 0 9px color-mix(in srgb, var(--box-color, #3fe08f), transparent 45%);
}

.bbox--ok {
  --box-color: #39dc85;
  --box-glow: rgba(57, 220, 133, 0.34);
  --box-bg-a: rgba(57, 220, 133, 0.14);
  --box-bg-b: rgba(57, 220, 133, 0.03);
}

.bbox--warning {
  --box-color: #ffd24d;
  --box-glow: rgba(255, 210, 77, 0.36);
  --box-bg-a: rgba(255, 210, 77, 0.15);
  --box-bg-b: rgba(255, 210, 77, 0.03);
}

.bbox--defect {
  --box-color: #ff5b67;
  --box-glow: rgba(255, 91, 103, 0.42);
  --box-bg-a: rgba(255, 91, 103, 0.16);
  --box-bg-b: rgba(255, 91, 103, 0.03);
}

.hero-telemetry {
  position: absolute;
  right: clamp(0.6rem, 1.6vw, 1rem);
  bottom: clamp(0.6rem, 1.6vw, 1rem);
  padding: 0.45rem 0.6rem;
  border: 1px solid rgba(0, 132, 225, 0.43);
  border-radius: 10px;
  background: rgba(4, 14, 22, 0.65);
  font-family: var(--font-heading);
  text-transform: uppercase;
  letter-spacing: 0.08em;
  font-size: 0.58rem;
  color: #fa9b11;
}

.hero-telemetry p {
  margin: 0.2rem 0;
}

.engine-status {
  position: absolute;
  left: clamp(0.7rem, 2vw, 1.2rem);
  bottom: clamp(0.7rem, 1.8vw, 1.1rem);
  width: clamp(150px, 20vw, 240px);
  padding: 0.35rem 0.45rem;
  border: 1px solid rgba(250, 155, 17, 0.38);
  border-radius: 10px;
  background: rgba(24, 17, 7, 0.55);
}

.engine-label {
  margin: 0 0 0.32rem;
  font-family: var(--font-heading);
  text-transform: uppercase;
  letter-spacing: 0.1em;
  font-size: 0.58rem;
  color: #fa9b11;
}

.engine-track {
  position: relative;
  width: 100%;
  height: 7px;
  border-radius: 999px;
  overflow: hidden;
  border: 1px solid rgba(250, 155, 17, 0.5);
  background: rgba(29, 27, 18, 0.85);
}

.engine-track span {
  display: block;
  width: 50%;
  height: 100%;
  border-radius: inherit;
  background: linear-gradient(90deg, #fa9b11 0%, #fa9b11 55%, #fa9b11 100%);
  box-shadow: 0 0 10px rgba(250, 155, 17, 0.55);
  transition: width 0.7s ease;
}

.engine-track::after {
  content: "";
  position: absolute;
  inset: 0;
  transform: translateX(-100%);
  background: linear-gradient(90deg, transparent 0%, rgba(255, 255, 255, 0.6) 50%, transparent 100%);
  animation: engineShine 2s linear infinite;
}

.hero-content {
  position: relative;
  z-index: 3;
  padding: clamp(1.2rem, 4vw, 3.5rem);
  max-width: clamp(420px, 52vw, 780px);
  min-height: 100%;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: flex-start;
}

.headline-zone {
  position: relative;
  display: inline-block;
}

.kicker,
.eyebrow,
.detail-tag,
.kpi-label {
  text-transform: uppercase;
  letter-spacing: 0.14em;
  font-size: 0.74rem;
  color: var(--amber);
}

h1,
h2,
h3,
h4 {
  margin: 0;
  font-family: var(--font-heading);
  line-height: 1.08;
}

h1 {
  margin-top: 0.55rem;
  font-size: clamp(1.7rem, 4.2vw, 3.4rem);
  text-transform: uppercase;
  letter-spacing: 0.04em;
  text-shadow: 0 0 22px rgba(0, 132, 225, 0.38);
}

.hero-copy {
  max-width: 65ch;
  color: #d3e4f6;
  line-height: 1.52;
  font-size: clamp(0.92rem, 1.2vw, 1.05rem);
}

.hero-model-status {
  margin-top: 0.65rem;
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem;
}

.status-chip {
  display: inline-flex;
  align-items: center;
  padding: 0.32rem 0.55rem;
  border-radius: 999px;
  font-size: 0.66rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #fa9b11;
  border: 1px solid rgba(0, 132, 225, 0.42);
  background: rgba(6, 16, 24, 0.52);
}

.hero-live-grid {
  margin-top: 0.75rem;
  display: grid;
  gap: 0.5rem;
  grid-template-columns: 1.25fr 0.95fr;
}

.hero-event-stream,
.hero-live-counters article {
  border: 1px solid rgba(0, 132, 225, 0.26);
  border-radius: 12px;
  background: rgba(7, 15, 24, 0.58);
}

.hero-event-stream {
  padding: 0.52rem 0.6rem;
  min-height: 112px;
}

.stream-title {
  margin: 0 0 0.45rem;
  font-family: var(--font-mono);
  font-size: 0.62rem;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: #fa9b11;
}

#heroEventList {
  margin: 0;
  padding: 0;
  list-style: none;
  display: grid;
  gap: 0.26rem;
}

#heroEventList li {
  font-size: 0.7rem;
  color: #d2e7fa;
  line-height: 1.22;
}

.hero-live-counters {
  display: grid;
  gap: 0.6rem;
}

.hero-live-counters article {
  padding: 0.5rem 0.58rem;
}

.hero-live-counters span {
  display: block;
  color: var(--muted);
  font-size: 0.62rem;
  text-transform: uppercase;
  letter-spacing: 0.08em;
}

.hero-live-counters strong {
  display: block;
  margin-top: 0.16rem;
  color: #fa9b11;
  font-size: 1.06rem;
}

.hero-actions {
  margin-top: 1.15rem;
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
}

.hero-actions-primary {
  margin-top: 0.85rem;
}

.hero-actions-secondary {
  margin-top: 0.85rem;
}

.hero-actions .btn {
  max-width: 100%;
  text-align: center;
  white-space: normal;
}

.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  text-decoration: none;
  border-radius: 999px;
  padding: 0.7rem 1rem;
  font-family: var(--font-heading);
  font-size: clamp(0.68rem, 0.8vw, 0.8rem);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  transition: transform 0.2s ease, box-shadow 0.2s ease, background 0.2s ease;
}

.btn:hover {
  transform: translateY(-1px);
}

.btn-primary {
  color: #1a1a1a;
  background: var(--cyan);
  box-shadow: 0 8px 24px rgba(0, 132, 225, 0.32);
}

.btn-ghost {
  color: var(--text);
  border: 1px solid rgba(250, 155, 17, 0.5);
  background: rgba(250, 155, 17, 0.08);
}

.btn-link {
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  color: #fa9b11;
  padding-inline: 0.15rem;
  text-decoration: underline;
  text-underline-offset: 0.22rem;
}

.btn-link:hover {
  transform: none;
  color: #fa9b11;
}

.trust-strip {
  margin-top: 0.8rem;
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem;
}

.trust-strip span {
  font-size: 0.65rem;
  text-transform: uppercase;
  letter-spacing: 0.09em;
  color: #fa9b11;
  border: 1px solid rgba(0, 132, 225, 0.34);
  border-radius: 999px;
  padding: 0.28rem 0.5rem;
  background: rgba(8, 16, 23, 0.56);
}

.hero-stats {
  margin-top: 1.4rem;
  display: flex;
  gap: 0.8rem;
  flex-wrap: wrap;
}

.hero-stats div {
  border: 1px solid rgba(0, 132, 225, 0.42);
  background: rgba(7, 15, 24, 0.6);
  border-radius: 10px;
  padding: 0.6rem 0.8rem;
  min-width: 150px;
}

.hero-stats span {
  color: var(--muted);
  text-transform: uppercase;
  font-size: 0.72rem;
  letter-spacing: 0.1em;
}

.hero-stats strong {
  display: block;
  margin-top: 0.2rem;
  font-size: 1.2rem;
}

.spatial-launch.section {
  width: var(--page-shell);
  margin-inline: auto;
  justify-content: center;
  background: #1a1a1a;
  border: 1px solid #0084e1;
  box-shadow: none;
  scroll-margin-top: calc(var(--topbar-height) + 0.5rem);
}

.spatial-launch-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.25fr) minmax(220px, 0.85fr);
  gap: clamp(1rem, 2.6vw, 2.2rem);
  align-items: center;
}

.spatial-launch-media {
  min-width: 0;
}

.spatial-launch-frame {
  position: relative;
  width: 100%;
  aspect-ratio: 16 / 9;
  border-radius: 12px;
  overflow: hidden;
  background: #1a1a1a;
  border: 1px solid #0084e1;
}

.spatial-launch-video {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  display: block;
  object-fit: contain;
  background: #1a1a1a;
}

.spatial-launch-controls {
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem;
  margin-top: 0.6rem;
}

.spatial-launch-controls button {
  font-family: var(--font-heading);
  font-size: 0.68rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #fa9b11;
  background: #1a1a1a;
  border: 1px solid #0084e1;
  border-radius: 999px;
  padding: 0.42rem 0.8rem;
  cursor: pointer;
}

.spatial-launch-controls button:hover {
  border-color: #fa9b11;
}

.spatial-launch-copy {
  display: grid;
  align-content: center;
  gap: 0.75rem;
  min-width: 0;
}

.spatial-launch-label {
  margin: 0;
  color: #fa9b11;
  font-family: var(--font-heading);
  font-size: 0.74rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

.spatial-launch h2 {
  text-transform: none;
  letter-spacing: 0;
  line-height: 1.12;
  font-size: clamp(1.7rem, 3vw, 2.7rem);
}

.spatial-launch-actions {
  display: flex;
  flex-wrap: wrap;
  margin-top: 0.35rem;
}

.spatial-launch-actions .btn {
  max-width: 100%;
  text-align: center;
  white-space: normal;
}

.product-card-actions {
  margin-top: auto;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.45rem 0.75rem;
}

.product-card-actions .product-card-cta {
  margin-top: 0;
}

.spatial-watch-link,
.module-poster-watch {
  font-family: var(--font-heading);
  font-size: 0.64rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #0084e1;
  text-decoration: underline;
  text-underline-offset: 0.16rem;
}

.spatial-watch-link:hover,
.module-poster-watch:hover {
  color: #fa9b11;
}

.module-poster-watch {
  position: absolute;
  left: 0.6rem;
  bottom: 0.55rem;
  z-index: 2;
  padding: 0.28rem 0.55rem;
  border-radius: 999px;
  border: 1px solid #0084e1;
  background: #1a1a1a;
  text-decoration: none;
  color: #fa9b11;
}

.module-poster-watch[hidden] {
  display: none !important;
}

@media (max-width: 980px) {
  .spatial-launch-grid {
    grid-template-columns: 1fr;
  }

  .spatial-launch-frame {
    width: min(100%, calc((100svh - var(--topbar-height) - var(--cookie-banner-height, 0px) - 11rem) * 16 / 9));
    margin-inline: auto;
  }

  body.has-mobile-cta .spatial-launch {
    padding-bottom: calc(var(--cookie-banner-height, 0px) + 1.4rem);
  }
}

@media (max-width: 767px) {
  .spatial-launch-frame {
    aspect-ratio: 9 / 16;
    width: min(100%, calc((100svh - var(--topbar-height) - var(--cookie-banner-height, 0px) - 11rem) * 9 / 16));
  }
}

.section {
  margin-top: 0;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: clamp(0.45rem, 1.1vh, 0.85rem);
  padding: clamp(1rem, 2.7vw, 1.8rem);
  border-radius: 16px;
  border: 1px solid rgba(0, 132, 225, 0.22);
  background: linear-gradient(155deg, rgba(10, 16, 24, 0.62), rgba(7, 13, 20, 0.38));
  box-shadow: 0 18px 42px rgba(4, 11, 18, 0.35);
}

#soluciones.section,
#productos.section,
#performance.section,
#industrias.section,
#noticias.section,
#tryit.section {
  justify-content: flex-start;
  padding-top: clamp(1.25rem, 3.1vw, 2.3rem);
}

#soluciones.section h2,
#productos.section h2,
#performance.section h2,
#industrias.section h2,
#noticias.section h2,
#tryit.section h2 {
  position: relative;
  z-index: 3;
}

#soluciones .section-copy,
#productos .section-copy,
#performance .section-copy,
#industrias .section-copy,
#noticias .section-copy,
#tryit .section-copy,
#performance .performance-note {
  position: relative;
  z-index: 3;
}

.panel {
  border: 1px solid var(--line);
  border-radius: 16px;
  background: linear-gradient(180deg, rgba(15, 22, 32, 0.92) 0%, rgba(14, 21, 30, 0.72) 100%);
}

.section h2 {
  font-size: clamp(1.3rem, 3vw, 2.2rem);
  text-transform: uppercase;
}

.section-copy {
  color: var(--muted);
  line-height: 1.55;
  max-width: 74ch;
}

.section-microcopy {
  margin: 0.15rem 0 0;
  max-width: 62ch;
  color: #d7c49a;
  font-size: 0.92rem;
  line-height: 1.45;
  position: relative;
  z-index: 3;
}

.section-bridge {
  position: relative;
  width: min(var(--page-shell), calc(100% - (var(--page-gutter) * 2)));
  margin: 0 auto;
  height: 28px;
  display: grid;
  place-items: center;
  opacity: 0.62;
}

.section-bridge::before {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  top: 50%;
  height: 1px;
  transform: translateY(-50%);
  background: linear-gradient(90deg, transparent 0%, rgba(0, 132, 225, 0.48) 36%, rgba(250, 155, 17, 0.36) 64%, transparent 100%);
}

.section-bridge span {
  position: relative;
  z-index: 1;
  font-family: var(--font-mono);
  font-size: 0.64rem;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: #fa9b11;
  background: rgba(8, 12, 18, 0.9);
  padding: 0.08rem 0.5rem;
  border-radius: 999px;
}

.workflow-strip {
  margin-top: 0.8rem;
  border: 1px solid rgba(0, 132, 225, 0.29);
  border-radius: 14px;
  background: linear-gradient(145deg, rgba(10, 16, 24, 0.68), rgba(8, 14, 21, 0.5));
  padding: 0.75rem;
}

.workflow-title {
  margin: 0 0 0.55rem;
  font-family: var(--font-mono);
  color: #fa9b11;
  font-size: 0.7rem;
  text-transform: uppercase;
  letter-spacing: 0.1em;
}

.workflow-track {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0.6rem;
  position: relative;
}

.workflow-track::before {
  content: "";
  position: absolute;
  left: 0.45rem;
  right: 0.45rem;
  top: 1rem;
  height: 1px;
  background: linear-gradient(90deg, rgba(0, 132, 225, 0.46), rgba(250, 155, 17, 0.36));
}

.workflow-step {
  position: relative;
  z-index: 1;
  border: 1px solid rgba(0, 132, 225, 0.26);
  border-radius: 10px;
  padding: 0.6rem;
  background: rgba(9, 16, 24, 0.74);
  transition: border-color 0.28s var(--ease-premium), transform 0.28s var(--ease-premium), box-shadow 0.28s var(--ease-premium);
}

.workflow-step span {
  display: inline-flex;
  width: 1.45rem;
  height: 1.45rem;
  border-radius: 999px;
  align-items: center;
  justify-content: center;
  border: 1px solid rgba(0, 132, 225, 0.54);
  font-family: var(--font-mono);
  font-size: 0.62rem;
  color: #fa9b11;
  background: rgba(6, 15, 22, 0.86);
}

.workflow-step h3 {
  margin-top: 0.5rem;
  font-size: 0.88rem;
}

.workflow-step p {
  margin: 0.3rem 0 0;
  color: #b8cde0;
  font-size: 0.78rem;
  line-height: 1.35;
}

.workflow-step.is-active {
  border-color: rgba(250, 155, 17, 0.7);
  box-shadow: 0 0 0 1px rgba(250, 155, 17, 0.22), 0 12px 20px rgba(4, 14, 22, 0.33);
  transform: translateY(-2px);
}

.module-layout {
  margin-top: clamp(0.95rem, 1.8vh, 1.5rem);
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 1rem;
  flex: 1 1 auto;
  min-height: 0;
  align-items: start;
  position: relative;
  z-index: 0;
  isolation: isolate;
  transform: none;
}

.product-grid {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 0.65rem;
  position: relative;
  z-index: 0;
}

.product-card {
  border: 1px solid rgba(0, 132, 225, 0.34);
  background: #1a1a1a;
  color: var(--muted);
  border-radius: 14px;
  padding: 0.72rem 0.7rem 0.8rem;
  text-align: left;
  display: grid;
  gap: 0.42rem;
  min-height: 168px;
  font-family: var(--font-body);
  cursor: pointer;
  transition: border-color 0.25s var(--ease-premium), transform 0.25s var(--ease-premium), box-shadow 0.25s var(--ease-premium), color 0.25s ease;
}

.product-card:hover,
.product-card:focus-visible {
  transform: translateY(-4px);
  border-color: rgba(0, 132, 225, 0.7);
  box-shadow: 0 12px 24px rgba(4, 16, 26, 0.35);
  color: var(--text);
}

.product-card.is-active {
  color: var(--text);
  border-color: var(--cyan);
  box-shadow: 0 0 20px rgba(0, 132, 225, 0.19), 0 10px 22px rgba(4, 16, 26, 0.28);
}

.product-card-media {
  position: relative;
  height: 52px;
  display: grid;
  place-items: center;
  background: #1a1a1a;
  background-image: none;
}

.product-card-logo {
  width: min(100%, 168px);
  height: auto;
  max-height: 40px;
  object-fit: contain;
  display: block;
  background: #1a1a1a;
  background-image: none;
  mix-blend-mode: normal;
}

.product-card-logo[hidden],
.product-card-wordmark[hidden] {
  display: none !important;
}

.product-card-wordmark {
  font-family: var(--font-heading);
  font-size: 0.78rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #d7ecff;
}

.product-card h3 {
  margin: 0;
  font-family: var(--font-heading);
  font-size: 0.78rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: inherit;
}

.product-card p {
  margin: 0;
  font-size: 0.74rem;
  line-height: 1.32;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.product-card-cta {
  margin-top: auto;
  font-family: var(--font-heading);
  font-size: 0.64rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--amber);
}

.module-picker {
  display: grid;
  gap: 0.55rem;
  align-content: start;
}

.module-tab {
  border: 1px solid rgba(0, 132, 225, 0.36);
  background: rgba(11, 17, 25, 0.7);
  color: var(--muted);
  border-radius: 12px;
  padding: 0.9rem 0.8rem;
  text-align: center;
  display: flex;
  justify-content: center;
  align-items: center;
  min-height: 64px;
  font-family: var(--font-heading);
  font-size: 0.82rem;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  cursor: pointer;
  transition: border-color 0.25s ease, color 0.25s ease, transform 0.25s ease;
}

.module-tab-logo {
  width: min(100%, clamp(120px, 78%, 210px));
  height: auto;
  max-height: 38px;
  object-fit: contain;
  object-position: center;
  display: block;
  margin-inline: auto;
}

.module-tab-text {
  font-size: 0.78rem;
}

.module-tab:hover {
  transform: translateX(3px);
}

.module-tab.active {
  color: var(--text);
  border-color: var(--cyan);
  box-shadow: 0 0 20px rgba(0, 132, 225, 0.22);
}

.module-detail {
  border: 1px solid rgba(250, 155, 17, 0.24);
  border-radius: 14px;
  padding: 1rem;
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  grid-auto-rows: auto;
  gap: 0.9rem;
  background: linear-gradient(140deg, rgba(10, 16, 24, 0.76) 0%, rgba(13, 22, 34, 0.88) 100%);
  align-items: start;
  min-height: 0;
  overflow: visible;
  position: relative;
  z-index: 0;
}

.module-detail-copy {
  display: grid;
  gap: 0.45rem;
}

.module-detail-separator {
  height: 1px;
  width: 100%;
  background: linear-gradient(90deg, rgba(0, 132, 225, 0.54), rgba(250, 155, 17, 0.42), rgba(0, 132, 225, 0.24));
  box-shadow: 0 0 12px rgba(0, 132, 225, 0.24);
}

.module-media-row {
  display: grid;
  grid-template-columns: minmax(280px, 0.9fr) minmax(360px, 1.1fr);
  gap: 0.95rem;
  align-items: stretch;
  min-height: 0;
}

.module-visuals {
  display: grid;
  gap: 0.7rem;
  min-width: 0;
}

.module-poster {
  position: relative;
  margin: 0;
  aspect-ratio: 16 / 9;
  border: 1px solid rgba(0, 132, 225, 0.34);
  border-radius: 12px;
  overflow: hidden;
  background: #10151c;
}

.module-poster picture,
.product-app-visual picture {
  display: block;
  width: 100%;
  height: 100%;
}

.industry-card picture,
.industry-photo picture {
  display: block;
  width: 100%;
  height: 100%;
}

.module-poster img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
}

.module-poster img[hidden],
.module-poster-fallback[hidden] {
  display: none;
}

.module-poster-fallback {
  position: absolute;
  inset: 0;
  display: grid;
  place-content: center;
  gap: 0.28rem;
  text-align: center;
  background:
    radial-gradient(circle at 22% 18%, rgba(0, 132, 225, 0.32), transparent 46%),
    radial-gradient(circle at 84% 78%, rgba(250, 155, 17, 0.24), transparent 48%),
    linear-gradient(145deg, #1a1a1a 0%, #121820 58%, #0c141c 100%);
}

.module-poster-fallback[data-module="detect"] {
  background:
    radial-gradient(circle at 24% 20%, rgba(0, 132, 225, 0.36), transparent 44%),
    radial-gradient(circle at 80% 76%, rgba(120, 210, 140, 0.18), transparent 46%),
    linear-gradient(145deg, #1a1a1a 0%, #121820 58%, #0c141c 100%);
}

.module-poster-fallback[data-module="gauge"] {
  background:
    radial-gradient(circle at 30% 20%, rgba(250, 155, 17, 0.34), transparent 46%),
    radial-gradient(circle at 78% 80%, rgba(0, 132, 225, 0.22), transparent 48%),
    linear-gradient(145deg, #1a1a1a 0%, #17140e 58%, #0c141c 100%);
}

.module-poster-fallback[data-module="guard"],
.module-poster-fallback[data-module="access"] {
  background:
    radial-gradient(circle at 24% 18%, rgba(0, 132, 225, 0.28), transparent 44%),
    radial-gradient(circle at 82% 78%, rgba(200, 70, 70, 0.2), transparent 48%),
    linear-gradient(145deg, #1a1a1a 0%, #161018 58%, #0c141c 100%);
}

.module-poster-fallback[data-module="spatial"] {
  background:
    radial-gradient(circle at 18% 24%, rgba(0, 132, 225, 0.32), transparent 42%),
    radial-gradient(circle at 86% 18%, rgba(250, 155, 17, 0.26), transparent 40%),
    linear-gradient(145deg, #1a1a1a 0%, #101820 58%, #0c141c 100%);
}

.module-poster-fallback[data-module="school"] {
  background:
    radial-gradient(circle at 28% 22%, rgba(0, 132, 225, 0.28), transparent 44%),
    radial-gradient(circle at 74% 72%, rgba(250, 155, 17, 0.18), transparent 46%),
    linear-gradient(145deg, #1a1a1a 0%, #141820 58%, #0c141c 100%);
}

.module-poster-kicker {
  font-family: var(--font-mono);
  font-size: 0.68rem;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: #fa9b11;
}

.module-poster-fallback strong {
  font-family: var(--font-heading);
  font-size: 1.15rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.module-video-wrap {
  width: 100%;
  aspect-ratio: 16 / 9;
  display: flex;
  align-items: stretch;
  justify-content: flex-end;
  max-width: 760px;
}

.module-video-wrap[hidden] {
  display: none;
}

.module-video-frame {
  position: relative;
  width: 100%;
  height: 100%;
  border: 1px solid rgba(0, 132, 225, 0.34);
  border-radius: 12px;
  overflow: hidden;
  background: linear-gradient(140deg, rgba(7, 13, 20, 0.9), rgba(12, 20, 30, 0.82));
}

.module-video-frame video {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
  background: #04080d;
}

.product-apps {
  display: grid;
  gap: 0.65rem;
  position: relative;
  z-index: 0;
  inset: auto;
  width: 100%;
  transform: none;
  float: none;
}

.product-apps[hidden] {
  display: none;
}

.product-apps h4 {
  margin: 0;
  font-size: 0.78rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: #fa9b11;
}

.product-apps-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 32rem));
  gap: 0.7rem;
  justify-content: start;
  position: relative;
  z-index: 0;
}

.product-app-card {
  border: 1px solid rgba(250, 155, 17, 0.28);
  border-radius: 12px;
  padding: 0.75rem;
  background: #0b0f14;
  display: grid;
  gap: 0.45rem;
  position: relative;
  z-index: 0;
  inset: auto;
  transform: none;
  cursor: pointer;
  text-align: left;
  color: inherit;
  font: inherit;
  width: 100%;
  transition: border-color 0.25s ease, box-shadow 0.25s ease;
}

.product-app-card:hover,
.product-app-card:focus-within,
.product-app-card:focus-visible {
  transform: none;
  border-color: rgba(0, 132, 225, 0.55);
  box-shadow: 0 10px 22px rgba(4, 16, 26, 0.32);
  outline: none;
}

.product-app-card.is-active {
  border-color: var(--cyan);
}

.product-app-visual {
  position: relative;
  aspect-ratio: 16 / 9;
  border-radius: 8px;
  overflow: hidden;
  border: 1px solid rgba(0, 132, 225, 0.22);
  background: #10151c;
  background-image: none;
}

.product-app-visual img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.product-app-visual img[hidden] {
  display: none;
}

.product-app-card h5 {
  margin: 0;
  font-size: 0.92rem;
}

.product-app-kicker {
  margin: 0;
  font-family: var(--font-mono);
  font-size: 0.62rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--amber);
}

.product-app-card p {
  margin: 0;
  color: #c6d8ea;
  font-size: 0.8rem;
  line-height: 1.4;
}

.product-app-actions {
  display: none;
}

.news-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.85rem;
  position: relative;
  z-index: 2;
}

.news-card {
  border: 1px solid rgba(0, 132, 225, 0.26);
  border-radius: 14px;
  padding: 0.95rem 0.95rem 1rem;
  background: linear-gradient(155deg, rgba(10, 16, 24, 0.86), rgba(7, 13, 20, 0.72));
  display: grid;
  gap: 0.45rem;
  align-content: start;
  transition: transform 0.25s var(--ease-premium), border-color 0.25s ease, box-shadow 0.25s ease;
}

.news-card:hover,
.news-card:focus-within {
  transform: translateY(-4px);
  border-color: rgba(0, 132, 225, 0.6);
  box-shadow: 0 12px 24px rgba(4, 16, 26, 0.32);
}

.news-card time {
  font-family: var(--font-mono);
  font-size: 0.68rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #fa9b11;
}

.news-card h3 {
  margin: 0;
  font-size: 1rem;
  line-height: 1.25;
}

.news-card p {
  margin: 0;
  color: var(--muted);
  font-size: 0.86rem;
  line-height: 1.45;
}

.news-card.is-collapsed p {
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.news-toggle {
  justify-self: start;
  border: 0;
  background: transparent;
  color: var(--amber);
  font-family: var(--font-heading);
  font-size: 0.72rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  cursor: pointer;
  padding: 0.15rem 0;
}

.module-detail-actions {
  display: flex;
  justify-content: flex-start;
  padding-top: 0.45rem;
}

.module-detail h3 {
  margin-top: 0.4rem;
  font-size: clamp(1.15rem, 2.5vw, 1.5rem);
}

.module-detail p {
  color: #c6d8ea;
}

.chips {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin-bottom: 1rem;
}

.chips span {
  display: inline-flex;
  border: 1px solid rgba(0, 132, 225, 0.36);
  background: rgba(0, 132, 225, 0.1);
  color: #fa9b11;
  padding: 0.35rem 0.58rem;
  border-radius: 999px;
  font-size: 0.75rem;
  letter-spacing: 0.04em;
}

.story-grid {
  display: grid;
  grid-template-columns: 1fr;
  grid-template-rows: repeat(4, minmax(0, 1fr));
  gap: 0.55rem;
  align-content: stretch;
  height: 100%;
}

.story-grid article {
  border: 1px solid rgba(0, 132, 225, 0.24);
  border-radius: 10px;
  padding: 0.45rem 0.58rem;
  background: rgba(7, 14, 21, 0.68);
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.story-label {
  margin: 0;
  font-family: var(--font-mono);
  font-size: 0.64rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #fa9b11;
}

.story-grid article p:last-child {
  margin: 0.22rem 0 0;
  color: #c6d9ea;
  font-size: 0.74rem;
  line-height: 1.25;
}

.performance .section-copy + .section-copy {
  margin-top: 0.5rem;
}

.performance-intro {
  display: grid;
  grid-template-columns: minmax(0, 1.4fr) minmax(280px, 0.95fr);
  gap: 1rem;
  align-items: start;
}

.performance-intro-main {
  min-width: 0;
}

.performance-note {
  margin-top: 0.9rem;
  color: #d6e6f6;
  border-left: 2px solid rgba(250, 155, 17, 0.62);
  padding-left: 0.7rem;
  line-height: 1.5;
}

.brochure-panel {
  margin-top: 0.9rem;
  border: 1px solid rgba(0, 132, 225, 0.26);
  border-radius: 14px;
  padding: 0.82rem;
  background: rgba(8, 15, 24, 0.62);
  display: grid;
  grid-template-columns: minmax(0, 0.9fr) minmax(280px, 1.1fr);
  gap: 0.8rem;
  align-items: center;
}

.brochure-panel h3 {
  margin: 0;
  font-size: 0.98rem;
}

.brochure-panel p {
  margin: 0.3rem 0 0;
  color: #c5d7e8;
  line-height: 1.4;
}

.brochure-links {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  justify-content: flex-end;
}

.brochure-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 34px;
  border: 1px solid rgba(0, 132, 225, 0.41);
  border-radius: 999px;
  padding: 0.45rem 0.72rem;
  color: #fa9b11;
  background: rgba(0, 132, 225, 0.1);
  font-family: var(--font-heading);
  font-size: 0.68rem;
  letter-spacing: 0.06em;
  text-decoration: none;
  text-transform: uppercase;
}

.brochure-link:hover {
  border-color: rgba(250, 155, 17, 0.58);
  color: #fa9b11;
}

.brochure-link.is-primary {
  border-color: rgba(250, 155, 17, 0.5);
  color: #fa9b11;
}

.brochure-link-card {
  width: 100%;
  margin-top: 0.6rem;
}

.why-now {
  margin-top: 0;
  border: 1px solid rgba(250, 155, 17, 0.35);
  border-radius: 12px;
  padding: 0.78rem 0.85rem;
  background: linear-gradient(145deg, rgba(18, 16, 11, 0.42), rgba(8, 14, 21, 0.7));
}

.why-now h3 {
  font-size: 0.98rem;
}

.why-now p {
  margin: 0.36rem 0 0;
  color: #d2dfeb;
  line-height: 1.45;
}

.kpi-grid {
  margin-top: clamp(0.95rem, 1.8vh, 1.4rem);
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  gap: 0.9rem;
  position: relative;
  z-index: 2;
}

.roi-grid {
  margin-top: 1rem;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 0.9rem;
}

.roi-grid article {
  border: 1px solid rgba(0, 132, 225, 0.29);
  border-radius: 13px;
  padding: 0.9rem;
  background: rgba(11, 17, 25, 0.75);
  transition: transform 0.22s ease, border-color 0.22s ease, box-shadow 0.22s ease, background 0.22s ease;
}

.roi-grid article:hover {
  transform: translateY(-3px);
  border-color: rgba(250, 155, 17, 0.55);
  box-shadow: 0 10px 22px rgba(7, 29, 44, 0.35);
  background: rgba(13, 21, 31, 0.86);
}

.kpi-card {
  border: 1px solid rgba(250, 155, 17, 0.24);
  border-radius: 14px;
  padding: 0.95rem;
  background: #0b0f14;
  transition: transform 0.22s ease, border-color 0.22s ease, box-shadow 0.22s ease, background 0.22s ease;
}

.kpi-card:hover {
  transform: translateY(-3px);
  border-color: rgba(0, 132, 225, 0.7);
  box-shadow: 0 10px 28px rgba(7, 29, 44, 0.45), 0 0 0 1px rgba(0, 132, 225, 0.24);
  background: #0b0f14;
}

.kpi-card-head {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 0.65rem;
}

.kpi-subtitle {
  margin: 0;
  color: #fa9b11;
  font-size: 0.73rem;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.kpi-title-row {
  margin-top: 0.45rem;
  display: grid;
  place-items: center;
  width: 100%;
  min-height: 44px;
  background: #1a1a1a;
  background-image: none;
  border-radius: 8px;
}

.kpi-logo {
  width: clamp(180px, 64%, 280px);
  height: auto;
  max-height: 58px;
  object-fit: contain;
  object-position: center;
  border: 0;
  background: #1a1a1a;
  background-image: none;
  padding: 0;
  border-radius: 0;
  box-shadow: none;
  display: block;
  margin-inline: auto;
  justify-self: center;
  mix-blend-mode: normal;
}

.kpi-logo[hidden],
.kpi-module-fallback[hidden] {
  display: none !important;
}

.kpi-module-fallback {
  margin: 0;
  text-align: center;
}

.kpi-card h3,
.roi-grid h3 {
  margin-top: 0;
  font-size: 1.02rem;
}

.kpi-item {
  margin-top: 0.72rem;
  padding: 0.7rem 0.72rem;
  border: 1px solid rgba(0, 132, 225, 0.19);
  border-radius: 12px;
  background: rgba(10, 17, 25, 0.44);
  transition: border-color 0.2s ease, background 0.2s ease, box-shadow 0.2s ease;
}

.kpi-item:hover {
  border-color: rgba(250, 155, 17, 0.58);
  background: rgba(15, 24, 36, 0.68);
  box-shadow: inset 0 0 0 1px rgba(250, 155, 17, 0.18);
}

.kpi-item h4 {
  margin: 0;
  font-size: 0.8rem;
  letter-spacing: 0.03em;
  text-transform: uppercase;
  color: #f4fbff;
}

.kpi-details {
  margin: 0.45rem 0 0 1rem;
  display: grid;
  gap: 0.34rem;
  padding: 0;
}

.kpi-details li {
  color: #bcd0e2;
  line-height: 1.4;
}

.kpi-item-summary {
  margin: 0.4rem 0 0;
  color: #bcd0e2;
  font-size: 0.8rem;
  line-height: 1.35;
  display: none;
}

.kpi-item-toggle {
  margin-top: 0.5rem;
  border: 1px solid rgba(0, 132, 225, 0.41);
  border-radius: 999px;
  background: rgba(8, 17, 26, 0.7);
  color: #fa9b11;
  font-family: var(--font-heading);
  font-size: 0.66rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  padding: 0.38rem 0.6rem;
  cursor: pointer;
  display: none;
}

.kpi-item-toggle:hover {
  border-color: rgba(250, 155, 17, 0.55);
  color: #fa9b11;
}

.content-toggle {
  width: 100%;
  margin-top: 0.72rem;
  border: 1px solid rgba(0, 132, 225, 0.41);
  border-radius: 999px;
  background: rgba(8, 17, 26, 0.76);
  color: #fa9b11;
  font-family: var(--font-heading);
  font-size: 0.68rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  padding: 0.52rem 0.7rem;
  cursor: pointer;
}

.content-toggle:hover {
  border-color: rgba(250, 155, 17, 0.55);
  color: #fa9b11;
}

.content-toggle-wide {
  max-width: 240px;
  margin-inline: auto;
}

.is-mobile-summary .kpi-item.is-collapsible .kpi-details {
  display: none;
}

.is-mobile-summary .kpi-item.is-collapsible .kpi-item-summary,
.is-mobile-summary .kpi-item.is-collapsible .kpi-item-toggle {
  display: block;
}

.is-mobile-summary .kpi-item.is-collapsible.is-open .kpi-details {
  display: grid;
}

.is-mobile-summary .kpi-item.is-collapsible.is-open .kpi-item-summary {
  display: none;
}

.kpi-value {
  margin: 0.45rem 0 0.35rem;
  color: var(--cyan);
  font-weight: 700;
}

.industry-grid {
  margin-top: clamp(0.95rem, 1.8vh, 1.4rem);
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  grid-auto-rows: minmax(150px, 1fr);
  gap: 0.75rem;
  min-height: min(62vh, 650px);
  align-content: stretch;
  position: relative;
  z-index: 2;
}

.industry-card {
  position: relative;
  z-index: 1;
  min-height: 0;
  margin: 0;
  padding: 0.72rem 0.78rem 0.82rem;
  border: 1px solid rgba(250, 155, 17, 0.22);
  border-radius: 14px;
  overflow: hidden;
  background: linear-gradient(155deg, rgba(10, 16, 24, 0.86), rgba(7, 13, 20, 0.72));
  display: grid;
  grid-template-rows: auto auto 1fr;
  align-content: start;
  opacity: 0.72;
  filter: saturate(0.72);
  transition: transform 0.28s ease, border-color 0.28s ease, box-shadow 0.28s ease, background 0.28s ease, opacity 0.28s ease, filter 0.28s ease;
  cursor: pointer;
}

.industry-photo {
  overflow: hidden;
  border-radius: 10px;
  height: clamp(92px, 10.6vw, 132px);
}

.industry-card img,
.industry-photo img {
  width: 100%;
  height: 122%;
  max-height: none;
  opacity: 0.52;
  transform: translate3d(0, var(--photo-y, -8%), 0);
  aspect-ratio: auto;
  object-fit: cover;
  object-position: center;
  border-radius: 0;
  transition: opacity 0.34s ease;
}

.industry-card:hover,
.industry-card:focus-within {
  z-index: 20;
  transform: translateY(-6px);
  border-color: rgba(0, 132, 225, 0.77);
  box-shadow: 0 14px 30px rgba(7, 29, 44, 0.42);
  background: rgba(14, 21, 30, 0.95);
  opacity: 1;
  filter: none;
}

.industry-card:hover img,
.industry-card:focus-within img {
  opacity: 0.98;
}

.industry-card h3,
.industry-card p {
  margin: 0;
  max-width: 100%;
  word-break: break-word;
}

.industry-card h3 {
  margin-top: 0.58rem;
  font-size: 0.92rem;
  line-height: 1.18;
  text-transform: uppercase;
}

.industry-card p {
  margin-top: 0.48rem;
  max-height: none;
  opacity: 0.66;
  overflow: hidden;
  color: var(--muted);
  font-size: 0.84rem;
  line-height: 1.3;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  transition: opacity 0.28s ease;
}

.industry-mini-demo {
  margin-top: 0.5rem;
  border-top: 1px dashed rgba(0, 132, 225, 0.26);
  padding-top: 0.42rem;
  display: grid;
  gap: 0.2rem;
  opacity: 0;
  transform: translateY(4px);
  transition: opacity 0.25s var(--ease-premium), transform 0.25s var(--ease-premium);
}

.industry-mini-demo p {
  margin: 0;
  font-size: 0.72rem;
  line-height: 1.28;
  color: #bcd0e2;
  display: block;
  overflow: visible;
  -webkit-line-clamp: unset;
  -webkit-box-orient: initial;
  opacity: 1;
}

.industry-card:hover p,
.industry-card:focus-within p {
  opacity: 1;
  -webkit-line-clamp: 6;
}

.industry-card:hover .industry-mini-demo,
.industry-card:focus-within .industry-mini-demo {
  opacity: 1;
  transform: translateY(0);
}

.industry-card:focus-visible {
  outline: 2px solid rgba(0, 132, 225, 0.9);
  outline-offset: 2px;
}

.tryout-layout {
  margin-top: 0.9rem;
  display: grid;
  grid-template-columns: 280px minmax(0, 1fr) 300px;
  gap: 0.9rem;
  align-items: stretch;
}

.tryout-controls,
.tryout-readout {
  border: 1px solid rgba(0, 132, 225, 0.29);
  border-radius: 12px;
  background: rgba(8, 14, 22, 0.64);
  padding: 0.72rem;
}

.tryout-controls {
  display: grid;
  gap: 0.55rem;
  align-content: start;
}

.tryout-controls .hero-actions {
  margin-top: 0;
  display: grid;
  gap: 0.55rem;
}

.tryout-controls .btn {
  width: 100%;
}

.tryout-status {
  margin: 0;
  color: #fa9b11;
  font-family: var(--font-mono);
  font-size: 0.7rem;
  letter-spacing: 0.05em;
}

.tryout-hint {
  margin: 0.2rem 0 0;
  color: #9fb8ce;
  font-size: 0.77rem;
  line-height: 1.35;
}

.tryout-stage {
  position: relative;
  border: 1px solid rgba(250, 155, 17, 0.28);
  border-radius: 14px;
  overflow: hidden;
  background:
    radial-gradient(circle at 20% 18%, rgba(0, 132, 225, 0.19), transparent 32%),
    radial-gradient(circle at 82% 76%, rgba(250, 155, 17, 0.14), transparent 28%),
    #03090f;
  aspect-ratio: 16 / 9;
  min-height: 280px;
}

#tryoutVideo,
#tryoutCanvas {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

#tryoutVideo {
  transform: none;
}

#tryoutCanvas {
  pointer-events: none;
}

.tryout-placeholder {
  position: absolute;
  inset: 0;
  display: grid;
  place-items: center;
  gap: 0.35rem;
  padding: 1.1rem;
  text-align: center;
  background: linear-gradient(145deg, rgba(2, 8, 13, 0.42), rgba(2, 8, 13, 0.78));
  transition: opacity 0.25s ease, visibility 0.25s ease;
}

.tryout-stage.is-live .tryout-placeholder {
  opacity: 0;
  visibility: hidden;
}

.tryout-placeholder p {
  margin: 0;
}

.tryout-placeholder-title {
  font-family: var(--font-heading);
  font-size: clamp(1rem, 1.8vw, 1.35rem);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #eff8ff;
}

.tryout-readout h3 {
  font-size: 0.88rem;
}

#tryoutDetections {
  margin: 0.45rem 0 0;
  padding: 0;
  list-style: none;
  display: grid;
  gap: 0.38rem;
}

#tryoutDetections li {
  border: 1px solid rgba(0, 132, 225, 0.26);
  border-radius: 8px;
  background: rgba(9, 16, 24, 0.72);
  padding: 0.38rem 0.44rem;
  color: #c5dbef;
  font-size: 0.77rem;
}

#tryoutDetections .det-empty {
  color: #91a9bf;
}

.roi-grid strong {
  color: var(--amber);
  font-size: 1.2rem;
  font-family: var(--font-heading);
}

.live-board {
  margin: 1rem 0;
  border: 1px solid rgba(0, 132, 225, 0.42);
  border-radius: 12px;
  background: linear-gradient(140deg, rgba(12, 19, 29, 0.9), rgba(7, 15, 23, 0.78));
  padding: 0.9rem;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
  gap: 0.55rem;
}

.live-board div {
  background: rgba(9, 14, 21, 0.72);
  border: 1px solid rgba(0, 132, 225, 0.22);
  border-radius: 10px;
  padding: 0.7rem;
  transition: border-color 0.2s ease, box-shadow 0.2s ease, background 0.2s ease;
}

.live-board div:hover {
  border-color: rgba(250, 155, 17, 0.45);
  background: rgba(12, 19, 27, 0.88);
  box-shadow: inset 0 0 0 1px rgba(250, 155, 17, 0.14);
}

.live-board span {
  display: block;
  color: var(--muted);
  text-transform: uppercase;
  font-size: 0.68rem;
}

.live-board strong {
  font-size: 1.25rem;
}

.board-status {
  grid-column: 1 / -1;
  margin: 0;
  color: #7ef2d4;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  font-size: 0.72rem;
}

.contact {
  padding: 0;
  border: 0;
  background: transparent;
  box-shadow: none;
  display: grid;
  grid-template-rows: minmax(0, 1fr) auto;
  align-content: stretch;
  gap: clamp(0.8rem, 1.6vh, 1.15rem);
}

.contact-panel {
  display: grid;
  align-items: center;
  gap: 1rem;
  grid-template-columns: minmax(0, 1fr);
  border: 1px solid var(--line);
  border-radius: 16px;
  background: linear-gradient(140deg, rgba(12, 18, 26, 0.92), rgba(17, 25, 38, 0.7));
  padding: clamp(1.05rem, 2.5vw, 1.5rem);
  min-height: min(100%, 460px);
}

.contact-cta {
  display: flex;
  flex-direction: column;
  justify-content: center;
  min-height: 100%;
}

.contact-confidence {
  margin-top: 0.85rem;
  display: grid;
  gap: 0.55rem;
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.contact-confidence article {
  border: 1px solid rgba(0, 132, 225, 0.26);
  border-radius: 10px;
  background: rgba(7, 14, 21, 0.62);
  padding: 0.58rem 0.62rem;
}

.contact-confidence h3 {
  font-size: 0.78rem;
}

.contact-confidence p {
  margin: 0.25rem 0 0;
  color: #c8d9e9;
  font-size: 0.77rem;
  line-height: 1.33;
}

.contact-confidence h3:empty,
.contact-confidence p:empty {
  display: none;
}

body.modal-open {
  overflow: hidden;
}

body.modal-open .deck {
  overflow: hidden;
}

.form-modal {
  position: fixed;
  inset: 0;
  z-index: 90;
  display: grid;
  place-items: center;
  padding: 1rem;
}

.form-modal[hidden] {
  display: none;
}

.form-modal-backdrop {
  position: absolute;
  inset: 0;
  border: 0;
  background: rgba(4, 9, 15, 0.68);
  backdrop-filter: blur(4px);
  cursor: pointer;
}

.form-dialog {
  position: relative;
  z-index: 1;
  width: min(760px, 96vw);
  max-height: 92vh;
  overflow-y: auto;
  border: 1px solid rgba(0, 132, 225, 0.41);
  border-radius: 16px;
  padding: 1rem;
  background: linear-gradient(150deg, rgba(11, 18, 27, 0.95), rgba(7, 13, 20, 0.92));
  box-shadow: 0 22px 58px rgba(4, 9, 15, 0.52);
}

.form-close {
  position: absolute;
  top: 0.7rem;
  right: 0.7rem;
  width: 2rem;
  height: 2rem;
  border-radius: 999px;
  border: 1px solid rgba(255, 255, 255, 0.22);
  background: rgba(255, 255, 255, 0.08);
  color: var(--text);
  cursor: pointer;
}

.form-subtitle {
  margin: 0.5rem 0 1rem;
  color: var(--muted);
}

.form-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.7rem;
}

.form-field {
  display: grid;
  gap: 0.35rem;
}

.form-field-full {
  grid-column: 1 / -1;
}

.form-field label {
  font-size: 0.76rem;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: #b3d5ef;
}

.form-field input,
.form-field textarea {
  width: 100%;
  border: 1px solid rgba(0, 132, 225, 0.31);
  border-radius: 10px;
  background: rgba(7, 13, 20, 0.78);
  color: #e7f4ff;
  padding: 0.62rem 0.7rem;
  font: inherit;
}

.form-field textarea {
  resize: vertical;
  min-height: 120px;
}

.netlify-recaptcha-slot {
  margin-top: 0.15rem;
  min-height: 78px;
  display: flex;
  align-items: center;
  justify-content: flex-start;
}

.netlify-recaptcha-slot > div {
  transform-origin: left center;
}

.form-field input:focus,
.form-field textarea:focus {
  outline: none;
  border-color: rgba(250, 155, 17, 0.72);
  box-shadow: 0 0 0 1px rgba(250, 155, 17, 0.34);
}

.form-hint {
  margin: 0 0 0.7rem;
  color: var(--muted);
  font-size: 0.84rem;
}

.field-error {
  min-height: 0;
  margin: 0;
  color: #ff8f8f;
  font-size: 0.78rem;
  line-height: 1.35;
}

.field-error:empty {
  display: none;
}

.form-field input[aria-invalid="true"],
.form-field textarea[aria-invalid="true"] {
  border-color: rgba(250, 155, 17, 0.85);
  box-shadow: 0 0 0 1px rgba(250, 155, 17, 0.35);
}

#infoFormSubmit {
  min-width: 11.5rem;
}

.btn.is-busy {
  cursor: progress;
  opacity: 0.72;
}

.contact-address {
  display: grid;
  gap: 0.15rem;
  margin: 0.85rem 0 0;
  font-style: normal;
}

.contact-cta .contact-address a,
.contact-address a {
  color: #fa9b11;
  text-decoration: none;
}

.footer .contact-address a {
  color: var(--muted);
  margin: 0.15rem 0;
}

.form-status {
  min-height: 1.15rem;
  margin: 0.75rem 0 0;
  font-size: 0.9rem;
}

.form-status.is-success {
  color: #88f4c5;
}

.form-status.is-error {
  color: #ff8f8f;
}

.form-actions {
  margin-top: 0.8rem;
  display: flex;
  justify-content: flex-end;
  gap: 0.6rem;
}

.footer {
  margin: 0;
  border: 1px solid var(--line);
  border-radius: 16px;
  padding: 1rem;
  color: var(--muted);
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0.9rem;
  background: linear-gradient(145deg, rgba(9, 14, 21, 0.84), rgba(7, 12, 19, 0.66));
}

.footer h3,
.footer h4 {
  color: var(--text);
  font-size: 0.96rem;
  text-transform: uppercase;
}

.footer p {
  margin: 0.4rem 0;
  line-height: 1.45;
}

.footer a {
  display: block;
  text-decoration: none;
  color: var(--muted);
  margin: 0.35rem 0;
}

.footer a:hover {
  color: var(--cyan);
}

.footer-note {
  grid-column: 1 / -1;
  padding-top: 0.7rem;
  border-top: 1px dashed rgba(0, 132, 225, 0.24);
}

.reveal {
  opacity: 0.82;
  transition: opacity 0.5s ease, filter 0.5s ease;
}

.gsap-active .reveal {
  opacity: 1;
  filter: none;
}

.reveal.in-view {
  opacity: 1;
  filter: none;
}

@keyframes gridDrift {
  0% {
    transform: translate3d(0, 0, 0);
  }
  100% {
    transform: translate3d(-54px, -54px, 0);
  }
}

@keyframes scanSweepY {
  0% {
    transform: translateY(-105%);
  }
  100% {
    transform: translateY(260%);
  }
}

@keyframes scanSweepX {
  0% {
    transform: translateX(-120%);
  }
  100% {
    transform: translateX(560%);
  }
}

@keyframes engineShine {
  0%,
  35% {
    transform: translateX(-100%);
  }
  65%,
  100% {
    transform: translateX(100%);
  }
}

@keyframes morphFloatA {
  0% {
    transform: translate3d(0, 0, 0) scale(0.96) rotate(0deg);
  }
  100% {
    transform: translate3d(4vw, -3vh, 0) scale(1.08) rotate(18deg);
  }
}

@keyframes morphFloatB {
  0% {
    transform: translate3d(0, 0, 0) scale(0.94) rotate(0deg);
  }
  100% {
    transform: translate3d(-5vw, 3vh, 0) scale(1.09) rotate(-16deg);
  }
}

@keyframes circuitDash {
  0% {
    stroke-dashoffset: 0;
  }
  100% {
    stroke-dashoffset: -760;
  }
}

@keyframes circuitDriftSlow {
  0% {
    transform: translate3d(0, 0, 0);
  }
  100% {
    transform: translate3d(1.2vw, -1.8vh, 0);
  }
}

@keyframes circuitDriftFast {
  0% {
    transform: translate3d(0, 0, 0);
  }
  100% {
    transform: translate3d(2.2vw, -2.6vh, 0);
  }
}

@media (min-width: 1700px) {
  :root {
    --page-max: 1500px;
  }
}

@media (max-width: 1400px) {
  .product-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .news-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 1100px) {
  .module-media-row {
    grid-template-columns: 1fr;
  }

  .module-video-wrap {
    max-width: 100%;
    justify-self: stretch;
  }

  .product-apps-grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 1200px) {
  .topnav {
    gap: 0.58rem;
  }

  .topnav a {
    font-size: 0.75rem;
  }

  .hero-content {
    max-width: clamp(380px, 56vw, 690px);
  }
}

@media (max-width: 980px) {
  :root {
    --deck-gap: clamp(0.45rem, 1vh, 0.8rem);
  }

  .topbar-inner {
    flex-wrap: wrap;
    gap: 0.8rem;
  }

  .brand-icon {
    height: 32px;
  }

  .nav-toggle {
    display: inline-block;
    margin-left: auto;
  }

  .topnav {
    width: 100%;
    display: none;
    flex-wrap: wrap;
    border-top: 1px solid var(--line);
    padding-top: 0.75rem;
  }

  .topnav.open {
    display: flex;
  }

  .deck-page {
    min-height: auto;
    max-height: none;
    overflow: visible;
    opacity: 1;
    filter: none;
    transform: none;
  }

  .section {
    padding: clamp(0.95rem, 3vw, 1.25rem);
    gap: 0.6rem;
  }

  .contact {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
  }

  .contact-panel {
    grid-template-columns: 1fr;
    min-height: auto;
    align-items: start;
  }

  .contact-cta {
    min-height: 0;
  }

  .module-layout {
    grid-template-columns: minmax(0, 1fr);
    min-height: 0;
    z-index: 0;
  }

  .product-grid,
  .news-grid {
    grid-template-columns: 1fr;
  }

  .product-card {
    min-height: 0;
  }

  .workflow-track {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .hero-live-grid {
    grid-template-columns: 1fr;
  }

  .module-detail {
    grid-template-columns: minmax(0, 1fr);
    grid-auto-rows: auto;
    min-height: 0;
  }

  .module-media-row {
    grid-template-columns: 1fr;
    min-height: auto;
  }

  .module-video-wrap {
    max-width: 100%;
    justify-self: stretch;
  }

  .module-video-frame {
    aspect-ratio: 16 / 9;
    height: auto;
    max-height: none;
  }

  .story-grid {
    height: auto;
    grid-template-rows: repeat(4, minmax(0, auto));
  }

  .module-detail-actions .btn {
    width: 100%;
  }

  .module-tab-logo {
    width: min(100%, clamp(116px, 72%, 180px));
    max-height: 34px;
  }

  .kpi-grid {
    grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
  }

  .performance-intro {
    grid-template-columns: 1fr;
    gap: 0.8rem;
  }

  .brochure-panel {
    grid-template-columns: 1fr;
  }

  .brochure-links {
    justify-content: flex-start;
  }

  .industry-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.8rem;
    min-height: auto;
  }

  .industry-card {
    opacity: 1;
    filter: none;
  }

  .tryout-layout {
    grid-template-columns: 1fr;
  }

  .contact-confidence {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .footer {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 760px) {
  .deck {
    gap: clamp(0.5rem, 1.25vh, 0.85rem);
  }

  .hero {
    min-height: calc(100svh - var(--topbar-height) - (var(--deck-gap) * 2));
    max-height: none;
    overflow: hidden;
  }

  .hero-content {
    max-width: 100%;
    min-height: 0;
    justify-content: flex-start;
    padding: clamp(0.95rem, 3.8vw, 1.3rem);
    padding-right: clamp(1rem, 3vw, 2rem);
    padding-top: clamp(1.2rem, 7vh, 3.1rem);
  }

  .hero-copy {
    max-width: 52ch;
    margin-top: 0.65rem;
  }

  .hero-detection,
  .hero-live-grid,
  .trust-strip {
    display: none;
  }

  .hero-model-status {
    display: flex;
    gap: 0.28rem;
  }

  .status-chip {
    font-size: 0.6rem;
  }

  .workflow-track {
    grid-template-columns: 1fr;
  }

  .story-grid {
    grid-template-columns: 1fr;
  }

  .contact-panel {
    padding: 0.9rem;
  }

  .bbox {
    border-width: 1.5px;
    background-size:
      10px 1.5px,
      1.5px 10px,
      10px 1.5px,
      1.5px 10px,
      10px 1.5px,
      1.5px 10px,
      10px 1.5px,
      1.5px 10px,
      auto;
  }

  .bbox::before {
    top: -1.25rem;
  }

  .kpi-card-head {
    flex-direction: column;
    align-items: flex-start;
    gap: 0.25rem;
  }

  .kpi-subtitle {
    font-size: 0.66rem;
  }

  .kpi-logo {
    width: min(100%, clamp(150px, 56vw, 260px));
    max-height: 50px;
  }

  .industry-card {
    min-height: 0;
  }

  .industry-photo {
    height: 112px;
  }

  .industry-card img,
  .industry-photo img {
    height: 122%;
    opacity: 0.62;
  }

  .industry-card h3 {
    margin-top: 0.54rem;
  }

  .industry-card p {
    margin-top: 0.45rem;
    opacity: 0.76;
    -webkit-line-clamp: 4;
  }

  .industry-mini-demo p {
    font-size: 0.68rem;
  }
}

@media (max-width: 640px) {
  .kpi-grid,
  .roi-grid,
  .industry-grid,
  .live-board {
    grid-template-columns: 1fr;
  }

  .form-grid {
    grid-template-columns: 1fr;
  }

  .netlify-recaptcha-slot {
    overflow-x: auto;
    padding-bottom: 0.2rem;
  }

  .form-actions {
    flex-direction: column;
  }

  h1 {
    font-size: clamp(1.8rem, 9vw, 3rem);
  }

  .hero-copy {
    font-size: 0.92rem;
  }

  .hero-content .kicker {
    font-size: 0.62rem;
    letter-spacing: 0.1em;
  }

  .hero-actions {
    flex-direction: column;
    align-items: stretch;
  }

  .btn {
    width: 100%;
  }

  .brochure-link {
    width: 100%;
  }

  .hero-stats div {
    min-width: 126px;
    flex: 1;
  }

  .footer {
    grid-template-columns: 1fr;
  }

  .contact-confidence {
    grid-template-columns: 1fr;
  }

  .contact-panel {
    gap: 0.75rem;
  }

  .contact-cta .hero-actions {
    flex-direction: column;
    align-items: stretch;
  }

  .tryout-stage {
    min-height: 220px;
  }
}

.scan-points {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.85rem 1.1rem;
  margin: 0.15rem 0 0.1rem;
  padding: 0;
  list-style: none;
  position: relative;
  z-index: 3;
}

.scan-points li {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 0.7rem;
  align-items: center;
  padding-top: 0.7rem;
  border-top: 1px solid rgba(0, 132, 225, 0.38);
}

.scan-points svg {
  width: 22px;
  height: 22px;
  color: #0084e1;
}

.scan-points p {
  margin: 0;
  font-family: var(--font-heading);
  font-size: 0.98rem;
  font-weight: 600;
  line-height: 1.3;
  letter-spacing: -0.02em;
  color: #e9f3ff;
  text-wrap: balance;
}

.suite-apps {
  margin: 0;
  padding-top: 0.35rem;
  border-top: 1px solid rgba(0, 132, 225, 0.28);
}

.suite-apps span {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  color: #fa9b11;
  font-family: var(--font-heading);
  font-size: 0.8rem;
  letter-spacing: 0.03em;
  line-height: 1.3;
}

.suite-apps span::before {
  content: "";
  width: 0.45rem;
  height: 1px;
  background: #0084e1;
  flex: 0 0 auto;
}

body.is-suite-motion .suite-step:not(.is-shown) {
  opacity: 0;
  transform: translate3d(0, 16px, 0);
  pointer-events: none;
}

body.is-suite-motion .suite-step.is-shown {
  opacity: 1;
  transform: none;
  pointer-events: auto;
  transition:
    opacity 0.5s cubic-bezier(0.16, 1, 0.3, 1),
    transform 0.5s cubic-bezier(0.16, 1, 0.3, 1),
    border-color 0.25s var(--ease-premium),
    box-shadow 0.25s var(--ease-premium),
    color 0.25s ease;
}

body.is-suite-motion .suite-step .suite-apps {
  opacity: 0;
  transform: translate3d(0, 6px, 0);
}

body.is-suite-motion .suite-step.is-shown .suite-apps {
  opacity: 1;
  transform: none;
  transition: opacity 0.4s ease 0.16s, transform 0.4s ease 0.16s;
}

.line-journey {
  width: 100%;
  background: #1a1a1a;
  border-top: 1px solid rgba(0, 132, 225, 0.28);
  border-bottom: 1px solid rgba(0, 132, 225, 0.28);
  color: #e9f3ff;
}

.line-journey.is-line-sticky {
  height: 190vh;
}

.line-pin {
  width: var(--page-shell);
  margin-inline: auto;
  min-height: calc(100svh - var(--topbar-height));
  max-height: calc(100svh - var(--topbar-height));
  padding: 1rem 0 0.85rem;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 0.9rem;
  overflow: hidden;
  z-index: 1;
  background: #1a1a1a;
}

.line-journey.is-line-sticky .line-pin {
  position: sticky;
  top: var(--topbar-height);
}

.line-head h2 {
  margin: 0;
  font-size: clamp(1.55rem, 3vw, 2.35rem);
  letter-spacing: -0.03em;
  text-transform: uppercase;
  text-wrap: balance;
  max-width: 18ch;
}

.line-lead {
  margin: 0.45rem 0 0;
  max-width: 42ch;
  color: #c5d4e4;
  font-size: 1rem;
  line-height: 1.45;
}

.line-layout {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0.85rem;
  align-items: stretch;
  min-height: 0;
}

.line-cards {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0.85rem;
}

.line-card {
  --arrive: 1;
  margin: 0;
  opacity: var(--arrive);
  transform: translate3d(0, calc((1 - var(--arrive)) * 14px), 0);
  border-top: 1px solid rgba(0, 132, 225, 0.4);
  padding: 0.55rem 0 0.1rem;
}

.line-card p {
  margin: 0;
  font-family: var(--font-heading);
  font-size: clamp(1rem, 1.35vw, 1.18rem);
  font-weight: 600;
  line-height: 1.25;
  letter-spacing: -0.02em;
  color: #e9f3ff;
  text-wrap: balance;
}

.line-stage {
  position: relative;
  height: clamp(240px, 40vh, 360px);
  min-height: 280px;
  border-radius: 16px;
  background:
    radial-gradient(circle at 58% 42%, rgba(0, 132, 225, 0.08), transparent 28%),
    #141414;
  overflow: hidden;
}

.line-scene {
  position: absolute;
  inset: 0 0 14px;
}

.line-belt {
  position: absolute;
  left: 0;
  right: 0;
  top: 48%;
  height: 64px;
  border-top: 1px solid rgba(0, 132, 225, 0.5);
  border-bottom: 1px solid rgba(250, 155, 17, 0.38);
  background: linear-gradient(180deg, rgba(0, 132, 225, 0.06), rgba(255, 255, 255, 0.03) 42%, rgba(0, 0, 0, 0.28));
  overflow: hidden;
}

.line-belt::before,
.line-belt::after {
  content: "";
  position: absolute;
  top: 50%;
  width: 12px;
  height: 12px;
  margin-top: -6px;
  border-radius: 50%;
  border: 1px solid rgba(0, 132, 225, 0.7);
  background: #1a1a1a;
  z-index: 1;
}

.line-belt::before { left: 10px; }
.line-belt::after { right: 10px; }

.line-texture {
  position: absolute;
  top: 0;
  bottom: 0;
  left: -20%;
  width: 160%;
  background-image: repeating-linear-gradient(
    -62deg,
    transparent 0 16px,
    rgba(0, 132, 225, 0.2) 16px 17px
  );
  transform: translate3d(0, 0, 0);
  opacity: 0.85;
}

.line-items {
  position: absolute;
  left: 0;
  right: 0;
  top: 30%;
  height: 168px;
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  padding: 0 7% 28px 8%;
}

.line-journey.is-line-placed .line-items {
  display: block;
  top: calc(48% + 64px - 98px);
  height: 112px;
  right: 0;
  left: 0;
  padding: 0;
}

.line-item {
  position: relative;
  color: #d5e4f2;
  width: max-content;
}

.line-journey.is-line-placed .line-item {
  position: absolute;
  top: auto;
  bottom: 6px;
  left: 0;
  transform: translate3d(var(--x, 0px), var(--y, 0px), 0);
}

.line-item[data-divert] {
  color: #fa9b11;
}

.line-journey:not(.is-line-placed) .line-item[data-divert] {
  transform: translate3d(16px, 62px, 0);
}

.line-shape {
  display: block;
  width: auto;
  height: 78px;
}

.line-item[data-kind="carton"] .line-shape {
  height: 66px;
}

.line-item[data-kind="jug"] .line-shape {
  height: 74px;
}

.line-check {
  position: absolute;
  width: 22px;
  height: 22px;
  right: -10px;
  top: -6px;
  color: #0084e1;
  opacity: 1;
  transform: scale(1);
}

.is-line-motion .line-check {
  opacity: 0;
  transform: scale(0.72);
  transition: opacity 0.18s linear, transform 0.28s cubic-bezier(0.16, 1, 0.3, 1);
}

.is-line-motion .line-item.is-checked .line-check {
  opacity: 1;
  transform: scale(1);
}

.line-gate {
  position: absolute;
  top: 8%;
  bottom: 16%;
  left: var(--gate, 58%);
  width: 92px;
  transform: translateX(-50%);
  z-index: 3;
  pointer-events: none;
}

.line-mark {
  position: absolute;
  top: 0;
  left: 50%;
  width: 46px;
  height: 40px;
  transform: translateX(-50%);
  display: grid;
  place-items: center;
  background: #1a1a1a;
  border: 1px solid rgba(0, 132, 225, 0.45);
  border-radius: 8px;
  box-shadow: 0 8px 18px rgba(0, 0, 0, 0.28);
}

.line-mark img {
  width: 30px;
  height: auto;
  display: block;
}

.line-gate-window {
  position: absolute;
  left: 10px;
  right: 10px;
  top: 48px;
  bottom: 8px;
  overflow: hidden;
  border-left: 1px solid rgba(0, 132, 225, 0.55);
  border-right: 1px solid rgba(0, 132, 225, 0.55);
  background: linear-gradient(180deg, rgba(0, 132, 225, 0.05), transparent 30%);
}

.line-scan {
  position: absolute;
  left: 8%;
  right: 8%;
  top: 42%;
  height: 2px;
  background: linear-gradient(90deg, transparent, #0084e1, transparent);
  opacity: 0.4;
  transform: translate3d(0, 0, 0);
}

.is-line-motion .line-scan {
  opacity: 0;
}

.is-line-motion .line-stage.is-scanning .line-scan {
  opacity: 0.95;
  animation: lineScan 1.05s linear infinite;
}

@keyframes lineScan {
  from { transform: translate3d(0, -28px, 0); }
  to { transform: translate3d(0, 28px, 0); }
}

.line-chute {
  position: absolute;
  left: var(--gate, 58%);
  top: 62%;
  width: 26%;
  height: 2px;
  background: linear-gradient(90deg, rgba(250, 155, 17, 0.15), rgba(250, 155, 17, 0.9));
  transform: rotate(22deg);
  transform-origin: left center;
  z-index: 1;
}

.line-divert-label {
  position: absolute;
  left: calc(var(--gate, 58%) + 8%);
  top: 76%;
  margin: 0;
  max-width: 12rem;
  color: #fa9b11;
  font-family: var(--font-heading);
  font-size: 0.8rem;
  letter-spacing: 0.06em;
  line-height: 1.25;
  text-transform: uppercase;
  opacity: 1;
}

.is-line-motion .line-divert-label {
  opacity: var(--label, 0);
  transform: translate3d(0, calc((1 - var(--label, 0)) * 8px), 0);
}

.line-progress {
  position: absolute;
  left: 12px;
  right: 12px;
  bottom: 8px;
  height: 2px;
  background: rgba(0, 132, 225, 0.18);
  border-radius: 999px;
  overflow: hidden;
}

.line-progress span {
  display: block;
  height: 100%;
  width: 100%;
  background: #0084e1;
  transform-origin: left center;
  transform: scaleX(1);
}

.is-line-motion .line-progress span {
  transform: scaleX(var(--line-p, 0));
}

.is-line-motion .line-item,
.is-line-motion .line-texture {
  will-change: transform;
}

@media (max-width: 980px) {
  .scan-points {
    grid-template-columns: 1fr;
    gap: 0.65rem;
  }

  .line-pin {
    min-height: 0;
    max-height: none;
    height: auto;
    overflow: visible;
    padding: 1.15rem 0 1.25rem;
  }

  .line-journey.is-line-sticky {
    height: auto;
  }

  .line-journey.is-line-sticky .line-pin {
    position: relative;
    top: auto;
  }

  .line-layout {
    grid-template-columns: 1fr;
  }

  .line-cards {
    grid-template-columns: 1fr 1fr;
  }

  .line-stage {
    order: -1;
    height: 300px;
    min-height: 280px;
  }

  .line-head h2 {
    max-width: 20ch;
  }
}

@media (max-width: 640px) {
  .line-cards {
    grid-template-columns: 1fr;
    gap: 0.4rem;
  }

  .line-card p {
    font-size: 0.98rem;
  }

  .line-stage {
    height: 286px;
  }

  .line-divert-label {
    font-size: 0.75rem;
    letter-spacing: 0.04em;
  }
}

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation: none !important;
    transition-duration: 0.01ms !important;
  }

  body.is-suite-motion:not(.is-belt-motion):not(.is-belt-mobile) .suite-step,
  body.is-suite-motion:not(.is-belt-motion):not(.is-belt-mobile) .suite-step .suite-apps,
  body:not(.is-belt-motion):not(.is-belt-mobile) .is-line-motion .line-card,
  body:not(.is-belt-motion):not(.is-belt-mobile) .is-line-motion .line-check,
  body:not(.is-belt-motion):not(.is-belt-mobile) .is-line-motion .line-divert-label {
    opacity: 1 !important;
    pointer-events: auto;
  }

  body:not(.is-belt-motion):not(.is-belt-mobile) .is-line-motion .line-card {
    transform: none !important;
  }

  .is-line-motion .line-scan {
    opacity: 0.45 !important;
  }

  .product-card:hover,
  .product-card:focus-visible,
  .product-app-card:hover,
  .product-app-card:focus-within,
  .news-card:hover,
  .news-card:focus-within,
  .industry-card:hover,
  .industry-card:focus-within {
    transform: none;
  }
}

@media (max-height: 900px), (max-width: 980px) {
  .hero {
    align-items: flex-start;
  }

  .hero-content {
    justify-content: flex-start;
    padding-top: 1rem;
  }
}

@media (max-width: 1280px) and (min-width: 981px) {
  .topbar-inner {
    flex-wrap: wrap;
    row-gap: 0.45rem;
  }

  .topnav {
    flex-wrap: wrap;
    justify-content: flex-end;
    row-gap: 0.35rem;
  }
}

.cookie-banner {
  position: fixed;
  left: 0.75rem;
  right: 0.75rem;
  bottom: 0.75rem;
  z-index: 55;
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem 1rem;
  align-items: center;
  justify-content: space-between;
  width: auto;
  max-width: 960px;
  margin-inline: auto;
  padding: 0.85rem 1rem;
  border-radius: 16px;
  border: 1px solid rgba(0, 132, 225, 0.45);
  background: rgba(26, 26, 26, 0.96);
  box-shadow: 0 16px 40px rgba(0, 0, 0, 0.35);
}

.cookie-banner[hidden] {
  display: none !important;
}

.cookie-banner-title {
  margin: 0 0 0.25rem;
  font-family: var(--font-heading);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #fa9b11;
  font-size: 0.78rem;
}

.cookie-banner-copy p:last-child {
  margin: 0;
  color: #d3e4f6;
  line-height: 1.45;
  max-width: 62ch;
}

.cookie-banner-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  align-items: center;
}

.cookie-banner-actions .btn {
  width: auto;
}

.cookie-privacy {
  color: #fa9b11;
  font-size: 0.78rem;
}

.mobile-audit-cta {
  display: none;
}

.mobile-audit-cta[hidden] {
  display: none !important;
}

body.has-cookie-banner .deck,
body.doc-page.has-cookie-banner {
  padding-bottom: calc(var(--cookie-banner-height, 0px) + 0.8rem);
}

@media (max-width: 980px) {
  body.has-mobile-cta .mobile-audit-cta {
    display: flex;
    position: fixed;
    z-index: 50;
    left: 0.75rem;
    right: 0.75rem;
    bottom: calc(var(--cookie-banner-height, 0px) + 0.55rem);
    width: auto;
    min-height: 2.9rem;
  }

  body.has-mobile-cta .deck {
    padding-bottom: calc(var(--cookie-banner-height, 0px) + 5rem);
  }
}

@media (max-width: 640px) {
  .cookie-banner {
    left: 0.5rem;
    right: 0.5rem;
    width: auto;
    bottom: 0.45rem;
    padding: 0.55rem 0.65rem;
    gap: 0.4rem 0.55rem;
  }

  .cookie-banner-title {
    margin-bottom: 0.1rem;
  }

  .cookie-banner-copy p:last-child {
    font-size: 0.78rem;
    line-height: 1.3;
  }

  .cookie-banner-actions {
    width: 100%;
  }

  .cookie-banner-actions .btn {
    flex: 1 1 6.5rem;
    width: auto;
    padding: 0.45rem 0.55rem;
    font-size: 0.62rem;
  }
}

@media (max-width: 360px) {
  h1 {
    font-size: 1.42rem;
    letter-spacing: 0.02em;
  }

  .hero-content {
    padding-top: 0.7rem;
  }

  .status-chip {
    padding: 0.2rem 0.4rem;
  }
}

.home-block.deck-page {
  min-height: 0;
  min-width: 0;
  max-width: 100%;
  max-height: none;
  height: auto;
  overflow: visible;
  opacity: 1;
  filter: none;
  transform: none;
  justify-content: flex-start;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  padding: clamp(4.25rem, 9vh, 7rem) 0;
  gap: 0.85rem;
}

.home-block .product-grid {
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: clamp(0.9rem, 1.6vw, 1.35rem);
  margin-top: clamp(1.6rem, 3.5vh, 2.6rem);
}

.home-block .product-card {
  min-height: 0;
  padding: 1.15rem 1rem 1.15rem;
  gap: 0.85rem;
  cursor: default;
  align-content: start;
}

.home-block .product-card:hover,
.home-block .product-card:focus-within {
  transform: translateY(-3px);
}

.product-card-link {
  display: grid;
  color: inherit;
  text-decoration: none;
}

.product-card-link:focus-visible,
a.suite-apps:focus-visible {
  outline: 2px solid #0084e1;
  outline-offset: 4px;
}

a.suite-apps {
  text-decoration: none;
  width: fit-content;
}

.home-block .section-microcopy {
  max-width: 36ch;
  margin-top: 0.85rem;
}

.industry-strip {
  width: 100%;
  max-width: 100%;
  min-width: 0;
  margin-top: clamp(1.5rem, 3vh, 2.25rem);
  min-height: 0;
  grid-template-columns: none;
  grid-auto-flow: column;
  grid-auto-columns: minmax(140px, 1fr);
  grid-auto-rows: auto;
  align-content: start;
  gap: 0.9rem;
  overflow-x: auto;
  overscroll-behavior-x: contain;
  padding-bottom: 0.35rem;
  scroll-snap-type: x proximity;
  scrollbar-width: thin;
}

.industry-strip .industry-card {
  min-width: 140px;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  opacity: 1;
  filter: none;
  cursor: default;
  grid-template-rows: auto auto;
  scroll-snap-align: start;
}

.industry-strip .industry-card:hover,
.industry-strip .industry-card:focus-within {
  transform: none;
  border: 0;
  box-shadow: none;
  background: transparent;
}

.industry-strip .industry-photo {
  height: 96px;
}

.industry-strip .industry-photo img {
  height: 118%;
  opacity: 0.88;
}

.industry-strip .industry-card h3 {
  margin-top: 0.65rem;
  font-size: 0.78rem;
  letter-spacing: 0.04em;
  line-height: 1.25;
}

.recursos-row {
  margin-top: clamp(1.4rem, 3vh, 2rem);
  display: grid;
  gap: 1.15rem;
  max-width: 68rem;
}

.recursos-row .brochure-links {
  justify-content: flex-start;
}

.news-row {
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem 1.5rem;
}

.news-title {
  margin: 0;
  max-width: 28ch;
  color: #d5e3f1;
  font-size: 0.95rem;
  line-height: 1.35;
}

#contacto.home-block {
  display: flex;
  padding-block: clamp(4.5rem, 12vh, 8.5rem);
}

.audit-cta {
  display: grid;
  gap: 1.15rem;
  justify-items: start;
  max-width: 34rem;
}

.audit-cta h2 {
  max-width: 28ch;
  font-size: clamp(1.35rem, 2.4vw, 1.85rem);
  line-height: 1.25;
  letter-spacing: -0.02em;
  text-transform: none;
  text-wrap: balance;
}

main.deck > .footer {
  width: var(--page-shell);
  margin: 0.5rem auto clamp(1.25rem, 4vh, 2.25rem);
}

.belt-world {
  width: 100%;
  min-width: 0;
  max-width: 100%;
}

.belt-pin {
  position: relative;
  background: #1a1a1a;
}

.belt-inspector {
  display: flex;
  justify-content: center;
  padding: 0.65rem 0 0.35rem;
}

.belt-inspector img {
  height: 54px;
  width: auto;
  display: block;
}

.belt-scan {
  position: absolute;
  left: 50%;
  top: 3.4rem;
  bottom: 4.4rem;
  width: 2px;
  background: linear-gradient(#0084e1, rgba(0, 132, 225, 0.15));
  box-shadow: 0 0 16px rgba(0, 132, 225, 0.65);
  opacity: 0;
  transform: translateX(-50%) scaleY(0.15);
  transform-origin: top center;
  pointer-events: none;
}

.belt-pin.is-scanning .belt-scan {
  opacity: 0.9;
  transform: translateX(-50%) scaleY(1);
}

.belt-track {
  display: block;
}

.belt-rail {
  position: relative;
  height: 3.25rem;
  overflow: hidden;
  background: #141414;
  border-top: 1px solid rgba(0, 132, 225, 0.45);
}

.belt-texture {
  height: 100%;
  width: 160%;
  background-image: repeating-linear-gradient(
    -62deg,
    transparent 0 16px,
    rgba(0, 132, 225, 0.28) 16px 17px
  );
  transform: translate3d(0, 0, 0);
}

.suite-foundation {
  display: flex;
  justify-content: center;
  margin: 1.15rem 0 0;
}

.suite-foundation img {
  height: 46px;
  width: auto;
  max-width: min(100%, 280px);
  object-fit: contain;
  background: #1a1a1a;
}

.spatial-mark {
  height: 40px;
  width: auto;
}

.belt-station .product-card-media {
  height: auto;
  min-height: 72px;
}

.belt-station .product-card-logo {
  max-height: 54px;
  width: auto;
  max-width: 100%;
}

body.is-belt-motion:not(.is-smooth) #smooth-content,
body.is-belt-mobile #smooth-content {
  transform: none;
  will-change: auto;
}

body.is-belt-motion .belt-pin {
  width: 100%;
  max-width: 100%;
  height: calc(100svh - var(--topbar-height));
  overflow: hidden;
}

body.is-belt-motion .belt-inspector {
  position: absolute;
  z-index: 7;
  inset: 0;
  display: flex;
  justify-content: center;
  align-items: flex-start;
  padding: 0.35rem 0 0;
  pointer-events: none;
}

body.is-belt-motion .belt-track {
  display: flex;
  position: relative;
  height: calc(100% - 3.25rem);
  width: 100%;
  max-width: 100%;
  min-width: 0;
  will-change: transform;
}

body.is-belt-motion .belt-station {
  flex: 0 0 100%;
  width: 100%;
  min-width: 0;
  max-width: 100%;
  height: 100%;
  min-height: 0;
  max-height: none;
  overflow: hidden;
  margin: 0;
  opacity: 1;
  filter: none;
  transform: none;
}

body.is-belt-motion .belt-station.hero {
  min-height: 0;
  max-height: none;
  height: 100%;
  border: 0;
  border-radius: 0;
  box-shadow: none;
}

body.is-belt-motion .belt-station.hero .hero-content {
  display: grid;
  grid-template-columns: minmax(0, 34vw) minmax(240px, 26vw);
  justify-content: space-between;
  align-content: start;
  column-gap: 2rem;
  row-gap: 0.45rem;
  width: calc(100% - 8vw);
  max-width: none;
  min-height: 0;
  max-height: none;
  margin-inline: 4vw;
  padding: 1.15rem 0 40%;
}

body.is-belt-motion .belt-station.hero .kicker { grid-column: 1; grid-row: 1; }
body.is-belt-motion .belt-station.hero .headline-zone { grid-column: 1; grid-row: 2; }
body.is-belt-motion .belt-station.hero .hero-actions-primary { grid-column: 1; grid-row: 3; }
body.is-belt-motion .belt-station.hero .hero-copy { grid-column: 1; grid-row: 4; max-width: 42ch; }
body.is-belt-motion .belt-station.hero .hero-actions-secondary { grid-column: 1; grid-row: 5; }

body.is-belt-motion .belt-station.hero .hero-model-status { grid-column: 2; grid-row: 1; align-self: end; }
body.is-belt-motion .belt-station.hero .hero-live-grid { grid-column: 2; grid-row: 2 / span 2; margin-top: 0; }
body.is-belt-motion .belt-station.hero .trust-strip { grid-column: 2; grid-row: 4; margin-top: 0; }
body.is-belt-motion .belt-station.hero .hero-stats { grid-column: 2; grid-row: 5; margin-top: 0; }

body.is-belt-motion .belt-station.hero h1 {
  font-size: clamp(2.05rem, 3.15vw, 3.15rem);
  text-transform: none;
  letter-spacing: -0.04em;
  line-height: 0.98;
  text-shadow: none;
  max-width: 100%;
}

body.is-belt-motion .belt-station.hero .hero-actions,
body.is-belt-motion .belt-station.hero .hero-actions-primary,
body.is-belt-motion .belt-station.hero .hero-actions-secondary,
body.is-belt-motion .belt-station.hero .hero-live-grid,
body.is-belt-motion .belt-station.hero .trust-strip,
body.is-belt-motion .belt-station.hero .hero-stats {
  margin-top: 0.5rem;
}

body.is-belt-motion .belt-station.hero .hero-event-stream {
  min-height: 0;
  padding-block: 0.4rem;
}

body.is-belt-motion .belt-station.section,
body.is-belt-motion .spatial-launch.belt-station {
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  width: 100%;
  justify-content: flex-start;
  padding: 2.2rem 5.5vw 38%;
}

body.is-belt-motion .belt-messages {
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  gap: 1.35rem;
  padding: 2.4rem 6vw 38%;
  background: transparent;
}

body.is-belt-motion .belt-messages .line-cards {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

body.is-belt-motion .belt-station.is-under-scan {
  outline: 1px solid rgba(0, 132, 225, 0.0);
}

body.is-belt-motion .belt-rail {
  position: absolute;
  left: -6%;
  right: -6%;
  bottom: 0;
  height: 36%;
  z-index: 4;
  perspective: 980px;
  background: transparent;
  border: 0;
  pointer-events: none;
}

body.is-belt-motion .belt-deck {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 86%;
  transform: rotateX(66deg);
  transform-origin: center bottom;
  background: linear-gradient(180deg, #1c1c1c 0%, #101010 28%, #0c0c0c 100%);
  border-top: 1px solid rgba(250, 155, 17, 0.72);
  box-shadow: 0 -28px 48px rgba(0, 0, 0, 0.45);
  overflow: hidden;
}

body.is-belt-motion .belt-rollers {
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  width: 5200px;
  z-index: 1;
}

body.is-belt-motion .roller {
  position: absolute;
  top: 6%;
  bottom: 8%;
  width: 16px;
  border-radius: 10px;
  background: linear-gradient(90deg, #0a0a0a 0%, #3c3c3c 38%, #141414 62%, #2a2a2a 100%);
  box-shadow: inset -2px 0 0 rgba(0, 132, 225, 0.35), 0 8px 10px rgba(0, 0, 0, 0.35);
}

body.is-belt-motion .roller:nth-child(4n) {
  box-shadow: inset -2px 0 0 rgba(250, 155, 17, 0.7), 0 8px 10px rgba(0, 0, 0, 0.35);
}

body.is-belt-motion .belt-surface {
  position: absolute;
  left: 3%;
  right: 3%;
  top: 22%;
  bottom: 6%;
  overflow: hidden;
  z-index: 2;
  background: #141414;
  border-top: 1px solid rgba(0, 132, 225, 0.45);
  box-shadow: inset 0 18px 24px rgba(0, 0, 0, 0.35);
}

body.is-belt-motion .belt-texture {
  width: 260%;
  height: 100%;
  opacity: 0.95;
  background-image: repeating-linear-gradient(
    90deg,
    rgba(233, 243, 255, 0.05) 0 2px,
    transparent 2px 22px,
    rgba(0, 132, 225, 0.16) 22px 23px,
    transparent 23px 46px
  );
}

.scene-bg,
.scene-haze,
.scene-objects,
.belt-inspector,
.scene-progress {
  pointer-events: none;
}

body:not(.is-belt-motion):not(.is-belt-mobile) .scene-bg,
body:not(.is-belt-motion):not(.is-belt-mobile) .scene-haze,
body:not(.is-belt-motion):not(.is-belt-mobile) .scene-objects,
body:not(.is-belt-motion):not(.is-belt-mobile) .scene-progress,
body:not(.is-belt-motion):not(.is-belt-mobile) .scene-wipe,
body:not(.is-belt-motion):not(.is-belt-mobile) .gantry-beam,
body:not(.is-belt-motion):not(.is-belt-mobile) .gantry-post,
body:not(.is-belt-motion):not(.is-belt-mobile) .light-cone,
body:not(.is-belt-motion):not(.is-belt-mobile) .gantry-led {
  display: none;
}

.scene-bg {
  position: absolute;
  inset: 0 auto 0 0;
  width: 190%;
  z-index: 0;
  overflow: hidden;
}

.scene-grid {
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(rgba(0, 132, 225, 0.14) 1px, transparent 1px),
    linear-gradient(90deg, rgba(0, 132, 225, 0.14) 1px, transparent 1px);
  background-size: 72px 72px;
  mask-image: linear-gradient(180deg, rgba(0, 0, 0, 0.2), #000 40%, transparent 78%);
}

.scene-plant {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 18%;
  width: 100%;
  height: 46%;
  filter: blur(1.4px);
}

.scene-plant path:first-child {
  fill: rgba(0, 132, 225, 0.16);
}

.scene-plant path:last-child {
  fill: rgba(250, 155, 17, 0.1);
}

.scene-haze {
  position: absolute;
  left: 0;
  bottom: 0;
  height: 44%;
  width: 170%;
  z-index: 5;
  background:
    radial-gradient(circle at 18% 70%, rgba(0, 132, 225, 0.16), transparent 22%),
    radial-gradient(circle at 70% 40%, rgba(250, 155, 17, 0.1), transparent 18%);
}

.particle {
  position: absolute;
  width: 3px;
  height: 3px;
  border-radius: 50%;
  background: #e9f3ff;
  box-shadow: 0 0 8px rgba(0, 132, 225, 0.85);
}

.particle:nth-child(3n) {
  width: 2px;
  height: 2px;
  background: #fa9b11;
  box-shadow: 0 0 8px rgba(250, 155, 17, 0.7);
}

.scene-objects {
  position: absolute;
  inset: 0;
  z-index: 6;
  overflow: hidden;
}

.specimen {
  position: absolute;
  left: 0;
  bottom: 5%;
  width: 156px;
  height: 196px;
  display: grid;
  align-items: end;
  justify-items: center;
  transform-origin: center bottom;
}

.specimen::after {
  content: "";
  position: absolute;
  left: 22%;
  right: 22%;
  bottom: 4px;
  height: 10px;
  border-radius: 50%;
  background: rgba(0, 0, 0, 0.55);
  filter: blur(5px);
}

.specimen svg {
  width: 128px;
  height: 156px;
  display: block;
  position: relative;
  z-index: 1;
}

.specimen-bbox {
  position: absolute;
  inset: 10px 8px 22px;
  border: 1px solid #0084e1;
  opacity: var(--sweep, 0);
  transform: scale(calc(0.94 + var(--sweep, 0) * 0.06));
  box-shadow: 0 16px 28px rgba(0, 8, 16, 0.32);
  z-index: 2;
}

.specimen-sweep {
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  height: 2px;
  background: #0084e1;
  box-shadow: 0 0 12px rgba(0, 132, 225, 0.9);
  opacity: var(--sweep, 0);
  transform: translate3d(0, calc(var(--sweep, 0) * 140px), 0);
}

.specimen-bbox::before,
.specimen-bbox::after {
  content: "";
  position: absolute;
  width: 10px;
  height: 10px;
  border: 1px solid #fa9b11;
}

.specimen-bbox::before {
  top: -1px;
  left: -1px;
  border-right: 0;
  border-bottom: 0;
}

.specimen-bbox::after {
  right: -1px;
  bottom: -1px;
  border-left: 0;
  border-top: 0;
}

.specimen-chip {
  position: absolute;
  left: 6px;
  top: -18px;
  display: grid;
  gap: 0.05rem;
  min-width: 92px;
  padding: 0.32rem 0.42rem 0.36rem;
  background: #1a1a1a;
  border: 1px solid rgba(0, 132, 225, 0.75);
  color: #e9f3ff;
  font-family: var(--font-mono);
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.specimen-chip i {
  font-style: normal;
  font-size: 11px;
  letter-spacing: 0.12em;
  color: #8ec8f5;
}

.specimen-chip b {
  font-size: 0.68rem;
  font-weight: 700;
  color: #fa9b11;
}

.specimen-chip small {
  font-size: 11px;
  letter-spacing: 0.01em;
  text-transform: none;
  color: #d7ecff;
}

body.is-belt-motion .gantry {
  position: absolute;
  left: 50%;
  bottom: 19%;
  width: min(260px, 24vw);
  height: 46%;
  transform: translateX(-50%);
}

body.is-belt-motion .gantry-head {
  position: absolute;
  top: 0;
  left: 50%;
  z-index: 2;
  display: grid;
  place-items: center;
  width: 78px;
  height: 78px;
  transform: translateX(-50%);
  background: #1a1a1a;
  border: 1px solid rgba(0, 132, 225, 0.85);
  border-radius: 6px;
  box-shadow: 0 16px 32px rgba(0, 0, 0, 0.45);
}

body.is-belt-motion .gantry-head img {
  height: 46px;
  width: auto;
}

.gantry-led {
  position: absolute;
  right: 7px;
  bottom: 7px;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: #fa9b11;
  box-shadow: 0 0 8px rgba(250, 155, 17, 0.85);
}

body.is-belt-motion .gantry-beam {
  position: absolute;
  top: 38px;
  left: -28%;
  right: -28%;
  height: 2px;
  background: linear-gradient(90deg, transparent, #0084e1 18%, #fa9b11 50%, #0084e1 82%, transparent);
}

body.is-belt-motion .gantry-post {
  position: absolute;
  top: 38px;
  bottom: 18%;
  width: 1px;
  background: linear-gradient(#0084e1, rgba(0, 132, 225, 0.05));
}

body.is-belt-motion .gantry-post-a { left: 0; }
body.is-belt-motion .gantry-post-b { right: 0; }

body.is-belt-motion .light-cone {
  position: absolute;
  left: 10%;
  right: 10%;
  top: 82px;
  bottom: 0;
  transform: scaleY(calc(0.78 + 0.22 * var(--scan, 0)));
  transform-origin: top center;
  opacity: calc(0.34 + 0.66 * var(--scan, 0));
  background: linear-gradient(180deg, rgba(0, 132, 225, 0.42), rgba(0, 132, 225, 0.02) 78%);
  clip-path: polygon(42% 0, 58% 0, 100% 100%, 0 100%);
}

body.is-belt-motion .belt-scan {
  top: auto;
  bottom: 10%;
  left: 6%;
  width: 88%;
  height: 2px;
  opacity: var(--scan, 0);
  transform: scaleX(calc(0.2 + 0.8 * var(--scan, 0)));
  transform-origin: center;
  background: #0084e1;
  box-shadow: 0 0 16px rgba(0, 132, 225, 0.85);
}

.scene-wipe {
  position: absolute;
  top: 0;
  bottom: 36%;
  left: 0;
  width: 22%;
  z-index: 3;
  pointer-events: none;
  background: linear-gradient(90deg, transparent, rgba(0, 132, 225, 0.22), rgba(250, 155, 17, 0.12), transparent);
  opacity: 0;
  transform-origin: left center;
}

.scene-progress {
  position: absolute;
  left: 4vw;
  right: 4vw;
  bottom: calc(36% + 0.85rem);
  z-index: 8;
  display: flex;
  align-items: center;
  gap: 0.9rem;
}

#sceneIndex,
#sceneCoord,
#sceneStation {
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: #fa9b11;
}

#sceneStation {
  max-width: 22ch;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

#sceneCoord {
  color: #8ec8f5;
  font-variant-numeric: tabular-nums;
}

.scene-progress-track {
  flex: 1;
  height: 1px;
  background: rgba(0, 132, 225, 0.35);
  overflow: hidden;
}

#sceneProgressFill {
  display: block;
  height: 100%;
  width: 100%;
  background: #0084e1;
  transform: scaleX(0);
  transform-origin: left center;
}

body.is-belt-motion .belt-track {
  z-index: 2;
}

body.is-belt-motion #heroTitle {
  overflow: visible;
  letter-spacing: -0.04em;
}

body.is-belt-motion .hero-word {
  display: inline-block;
  overflow: hidden;
  vertical-align: top;
  line-height: 1.05;
  transform: translate3d(0, calc((1 - var(--reveal, 1)) * 115%), 0);
  opacity: var(--reveal, 1);
}

body.is-belt-motion .line-mask {
  display: block;
  overflow: hidden;
  padding-bottom: 0.08em;
}

body.is-belt-motion .line-mask-inner {
  display: block;
  transform: translate3d(0, calc((1 - var(--reveal, 1)) * 110%), 0);
  opacity: var(--reveal, 1);
}

body.is-belt-motion .belt-station.section h2,
body.is-belt-motion .belt-messages h2,
body.is-belt-motion .spatial-launch h2 {
  font-size: clamp(2.15rem, 4vw, 4.15rem);
  letter-spacing: -0.04em;
  text-transform: none;
  line-height: 0.98;
  max-width: 16ch;
}

body.is-belt-motion .line-card {
  overflow: hidden;
}

body.is-belt-motion .line-card p {
  transform: translate3d(calc((1 - var(--arrive, 1)) * 36px), calc((1 - var(--arrive, 1)) * 80%), 0);
  opacity: var(--arrive, 1);
}

body.is-belt-motion.is-suite-motion .suite-step,
body.is-belt-motion.is-suite-motion .suite-step.is-shown,
body.is-belt-motion.is-suite-motion .suite-step:not(.is-shown) {
  opacity: calc(0.16 + 0.84 * var(--rise, 0));
  transform: translate3d(calc((1 - var(--rise, 0)) * 28px), calc((1 - var(--rise, 0)) * 36px), 0);
  pointer-events: auto;
  transition: border-color 0.25s var(--ease-premium), box-shadow 0.25s var(--ease-premium), color 0.25s ease;
}

body.is-belt-motion.is-suite-motion .suite-step:hover,
body.is-belt-motion.is-suite-motion .suite-step:focus-within {
  transform: translate3d(calc((1 - var(--rise, 0)) * 28px), calc((1 - var(--rise, 0)) * 36px - 4px), 0);
}

body.is-belt-motion .hero-telemetry,
body.is-belt-motion .engine-status {
  bottom: calc(36% + 0.7rem);
}

body.is-belt-motion .hero-image {
  opacity: 0.28;
}

body.is-belt-motion .hero-overlay {
  background:
    linear-gradient(180deg, rgba(26, 26, 26, 0.35) 0%, rgba(26, 26, 26, 0.55) 46%, #1a1a1a 78%);
}

body.is-belt-mobile .scene-bg,
body.is-belt-mobile .scene-haze {
  display: none;
}

body.is-belt-mobile .scene-objects {
  position: fixed;
  left: 0;
  right: 0;
  bottom: 3.4rem;
  height: 150px;
  z-index: 6;
}

body.is-belt-mobile .specimen {
  left: 50%;
  bottom: 0;
}

body.is-belt-mobile .scene-progress {
  position: fixed;
  left: 1rem;
  right: 1rem;
  bottom: 3.35rem;
  z-index: 7;
}

body.is-belt-mobile .belt-rail {
  perspective: 500px;
}

body.is-belt-mobile .belt-deck {
  height: 100%;
  transform: rotateX(52deg);
  transform-origin: center bottom;
}

body.is-belt-mobile .gantry {
  position: relative;
  display: flex;
  justify-content: center;
  width: 100%;
  height: 58px;
}

body.is-belt-mobile .gantry-head {
  position: relative;
  width: 48px;
  height: 48px;
  display: grid;
  place-items: center;
}

body.is-belt-mobile .gantry-head img {
  height: 34px;
  width: auto;
}

body.is-belt-mobile .light-cone,
body.is-belt-mobile .gantry-beam,
body.is-belt-mobile .gantry-post {
  display: none;
}

body.is-belt-motion .spatial-launch-frame {
  max-height: min(42vh, 360px);
}

body.is-belt-motion .home-block .product-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

body.is-belt-motion .industry-strip {
  display: grid;
  grid-auto-flow: row;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  grid-template-rows: auto auto;
  grid-auto-columns: auto;
  grid-auto-rows: auto;
  min-height: 0;
  overflow: hidden;
}

body.is-belt-motion .industry-card {
  opacity: 1;
  filter: none;
}

body.is-belt-motion .industry-strip .industry-photo {
  height: 86px;
}

body.is-belt-mobile .belt-pin {
  padding-top: 4.75rem;
}

body.is-belt-mobile .belt-inspector {
  position: fixed;
  top: var(--topbar-height);
  left: 0;
  right: 0;
  z-index: 6;
  background: rgba(26, 26, 26, 0.96);
  border-bottom: 1px solid rgba(0, 132, 225, 0.35);
}

body.is-belt-mobile .belt-scan {
  top: auto;
  bottom: 0;
  height: 2px;
  width: 42%;
  transform: translateX(-50%) scaleX(0.2);
  transform-origin: center;
  background: #0084e1;
}

body.is-belt-mobile .belt-pin.is-scanning .belt-scan {
  opacity: 0.95;
  transform: translateX(-50%) scaleX(1);
}

body.is-belt-mobile {
  padding-bottom: 3.25rem;
}

body.is-belt-mobile .belt-rail {
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 6;
}

body.is-belt-stacked .belt-scan {
  display: none;
}

body.is-belt-stacked .belt-rail {
  display: none;
}

/* No-JS and any path that never pins: a quiet vertical stack, not a broken frame. */
body:not(.is-belt-motion):not(.is-belt-mobile) .belt-pin {
  height: auto;
  overflow: visible;
  background: transparent;
}

body:not(.is-belt-motion):not(.is-belt-mobile) .belt-inspector {
  position: sticky;
  top: var(--topbar-height);
  z-index: 6;
  background: rgba(26, 26, 26, 0.96);
  border-bottom: 1px solid rgba(0, 132, 225, 0.4);
}

body:not(.is-belt-motion):not(.is-belt-mobile) .belt-scan {
  display: none;
}

body:not(.is-belt-motion):not(.is-belt-mobile) .belt-rail {
  position: sticky;
  bottom: 0;
  z-index: 5;
}

body:not(.is-belt-motion):not(.is-belt-mobile) .belt-station.hero {
  width: 100%;
  border-radius: 0;
  border-inline: 0;
}

body:not(.is-belt-motion):not(.is-belt-mobile) .belt-station.section,
body:not(.is-belt-motion):not(.is-belt-mobile) .spatial-launch.belt-station,
body:not(.is-belt-motion):not(.is-belt-mobile) .belt-messages {
  width: min(1120px, calc(100% - 3rem));
  margin-inline: auto;
  margin-top: clamp(3.25rem, 8vh, 5.5rem);
  padding: clamp(0.5rem, 1vh, 1rem) 0 clamp(1rem, 2vh, 1.5rem);
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  height: auto;
}

body:not(.is-belt-motion):not(.is-belt-mobile) .belt-messages .line-head {
  max-width: 36rem;
}

body:not(.is-belt-motion):not(.is-belt-mobile) .home-block .product-grid,
body:not(.is-belt-motion):not(.is-belt-mobile) .industry-strip {
  display: grid;
  grid-auto-flow: row;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  grid-auto-columns: auto;
  min-height: 0;
  overflow: visible;
}

body:not(.is-belt-motion):not(.is-belt-mobile) .industry-card {
  opacity: 1;
  filter: none;
}

body:not(.is-belt-motion):not(.is-belt-mobile) .industry-strip .industry-photo {
  height: 96px;
}

@media (max-width: 800px) {
  body:not(.is-belt-motion):not(.is-belt-mobile) .belt-messages .line-cards,
  body:not(.is-belt-motion):not(.is-belt-mobile) .home-block .product-grid,
  body:not(.is-belt-motion):not(.is-belt-mobile) .industry-strip {
    grid-template-columns: 1fr 1fr;
  }
}

@media (max-width: 980px) {
  .home-block.deck-page {
    padding-block: clamp(2.75rem, 9vw, 4rem);
  }

  .home-block .product-grid {
    grid-template-columns: 1fr;
    gap: 0.85rem;
  }

  .industry-strip {
    grid-auto-columns: minmax(148px, 58%);
  }

  .industry-strip .industry-photo {
    height: 84px;
  }

  .news-row {
    display: grid;
    gap: 0.55rem;
  }

  #contacto.home-block {
    padding-block: clamp(3rem, 10vw, 4.5rem);
  }
}

body.is-plant-scene #hero {
  width: min(var(--page-max), calc(100% - (var(--page-gutter) * 2)));
  margin-inline: auto;
}

.plant-track {
  position: relative;
  height: 720vh;
  background: #1a1a1a;
}

.plant-pin {
  position: relative;
  height: 100svh;
  overflow: hidden;
  background: #1a1a1a;
  isolation: isolate;
  z-index: 1;
}

body.is-plant-scene #plantPin {
  z-index: 1 !important;
}

#plantCanvas {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  display: block;
}

.plant-grade {
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  background:
    linear-gradient(90deg, rgba(26, 26, 26, 0.72) 0%, rgba(26, 26, 26, 0.28) 32%, rgba(26, 26, 26, 0.02) 58%, rgba(26, 26, 26, 0.18) 100%),
    linear-gradient(180deg, rgba(26, 26, 26, 0.15), transparent 14%, transparent 78%, rgba(26, 26, 26, 0.4));
}

.plant-beams,
.plant-trace {
  position: absolute;
  left: 0;
  right: 0;
  top: var(--topbar-height);
  bottom: 0;
  z-index: 1;
  width: 100%;
  height: auto;
  pointer-events: none;
  overflow: hidden;
}

.plant-beams span {
  position: absolute;
  top: 0;
  width: 11%;
  height: 100%;
  background: linear-gradient(180deg, transparent, rgba(0, 132, 225, 0.14), transparent 72%);
  transform: translate3d(calc(var(--beam, 0) * var(--shift, 1) * 7vw), 0, 0) rotate(16deg);
  opacity: 0.55;
}

.plant-beams span:nth-child(1) { left: 52%; --shift: 0.45; }
.plant-beams span:nth-child(2) { left: 64%; --shift: 1; width: 7%; background: linear-gradient(180deg, transparent, rgba(250, 155, 17, 0.1), transparent 70%); }
.plant-beams span:nth-child(3) { left: 76%; --shift: 1.2; }
.plant-beams span:nth-child(4) { left: 88%; --shift: 0.6; width: 6%; }

.plant-trace-glow,
.plant-trace-line {
  fill: none;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.plant-trace-glow {
  stroke: rgba(0, 132, 225, 0.28);
  stroke-width: 8;
}

.plant-trace-line {
  stroke: #0084e1;
  stroke-width: 1.5;
}

.plant-spot {
  position: absolute;
  z-index: 2;
  left: 22%;
  top: calc(var(--topbar-height) + 18vh);
  width: 360px;
  height: 360px;
  margin: -180px 0 0 -180px;
  border-radius: 50%;
  pointer-events: none;
  background: radial-gradient(circle, rgba(0, 132, 225, 0.14), transparent 68%);
  mix-blend-mode: normal;
}

.plant-shots {
  position: absolute;
  inset: 0;
  z-index: 3;
  perspective: 1400px;
}

.plant-shot,
body.is-plant-scene:not(.is-belt-motion) .plant-shot.belt-station.section,
body.is-plant-scene:not(.is-belt-motion) .plant-shot.belt-messages,
body.is-plant-scene:not(.is-belt-motion) .plant-shot.spatial-launch.belt-station {
  --mask: 1;
  --tilt: 1;
  position: absolute;
  inset: 0;
  left: 0;
  right: 0;
  top: 0;
  bottom: 0;
  width: 100%;
  max-width: none;
  min-width: 0;
  height: 100%;
  margin: 0;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  padding: calc(var(--topbar-height) + 2.5vh) 0 9vh 4.2vw;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  opacity: 0;
  pointer-events: none;
  transform-origin: 10% 70%;
  transform: rotateX(calc((1 - var(--tilt, 1)) * 6deg));
}

.plant-shot::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  bottom: 0;
  width: min(620px, 52vw);
  background: linear-gradient(90deg, rgba(26, 26, 26, 0.94) 0%, rgba(26, 26, 26, 0.88) 58%, rgba(26, 26, 26, 0.45) 82%, rgba(26, 26, 26, 0) 100%);
  pointer-events: none;
}

.plant-shot > * {
  position: relative;
  z-index: 1;
  width: min(460px, 42vw);
  min-width: 420px;
  max-width: 460px;
}

.plant-shot.is-on {
  pointer-events: none;
}

.plant-shot.is-on a,
.plant-shot.is-on button {
  pointer-events: auto;
}

.plant-shot h2 {
  position: relative;
  margin: 0 0 0.55rem;
  max-width: 18ch;
  font-family: var(--font-heading);
  font-size: clamp(2rem, 3vw, 3.05rem);
  font-weight: 600;
  letter-spacing: -0.04em;
  line-height: 1.02;
  color: #f4f7fb;
  text-transform: none;
}

.plant-shot h2::before {
  content: "";
  position: absolute;
  left: 0;
  bottom: 100%;
  width: calc(80px + var(--mask, 0) * 180px);
  height: 64px;
  background: radial-gradient(ellipse at 30% 100%, rgba(0, 132, 225, 0.28), transparent 70%);
  filter: blur(8px);
  pointer-events: none;
  opacity: calc(0.15 + var(--mask, 0) * 0.7);
}

.plant-shot h2 .gen-word {
  --p: clamp(0, calc(var(--mask, 1) * var(--n, 1) - var(--w, 0)), 1);
  display: inline-block;
  opacity: var(--p);
  filter: blur(calc((1 - var(--p)) * 6px));
  transform: translateY(calc((1 - var(--p)) * 0.3em));
}

.plant-shot .line-lead,
.plant-shot .section-microcopy {
  margin: 0 0 1.1rem;
  max-width: 34ch;
  color: #9cb2c9;
  font-size: 1.02rem;
}

body.is-plant-scene .plant-shot .line-cards {
  grid-template-columns: 1fr;
  max-width: 28rem;
  gap: 0.7rem;
}

body.is-plant-scene .plant-shot .line-head,
body.is-plant-scene .plant-shot.home-block,
body.is-plant-scene #lanzamiento-spatial .spatial-launch-grid,
body.is-plant-scene #contacto .audit-cta {
  width: min(460px, 42vw);
  min-width: 420px;
  max-width: 460px;
}

body.is-plant-scene #lanzamiento-spatial .spatial-launch-grid {
  grid-template-columns: 1fr;
  gap: 0.8rem;
}

body.is-plant-scene #lanzamiento-spatial .spatial-launch-frame {
  width: 100%;
  max-height: 168px;
}

body.is-plant-scene:not(.is-plant-fallback) .plant-shot .product-grid {
  grid-template-columns: 1fr;
  width: 460px;
  min-width: 420px;
  max-width: 460px;
  position: relative;
  min-height: 228px;
}

body.is-plant-scene:not(.is-belt-motion) .plant-shot.belt-station > * {
  width: 460px;
  min-width: 420px;
  max-width: 460px;
  flex: 0 0 auto;
}

body.is-plant-scene:not(.is-plant-fallback) #productos .product-card {
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  width: 100%;
  min-height: 210px;
  display: grid;
  align-content: start;
  opacity: 0;
  pointer-events: none;
  background: rgba(18, 18, 18, 0.94);
  border: 1px solid rgba(0, 132, 225, 0.42);
  transform: perspective(900px) translate3d(28px, 12px, 0) rotateX(var(--rx, 0deg)) rotateY(var(--ry, 0deg));
}

body.is-plant-scene:not(.is-plant-fallback) #productos .product-card.is-suite {
  opacity: var(--suite, 0);
  pointer-events: auto;
  overflow: visible;
  transform: perspective(900px) translate3d(0, calc((1 - var(--suite, 0)) * 16px), 0) rotateX(var(--rx, 0deg)) rotateY(var(--ry, 0deg));
}

body.is-plant-scene #productos .suite-apps,
body.is-plant-scene #productos .product-card-wordmark {
  white-space: normal;
  max-width: 100%;
}

body.is-plant-scene:not(.is-plant-fallback) #productos .product-card.is-suite-out {
  opacity: calc(1 - var(--suite, 0));
  transform: perspective(900px) translate3d(calc(var(--suite, 0) * -32px), calc(var(--suite, 0) * -16px), 0);
}

body.is-plant-scene .industry-card,
body.is-plant-scene .industry-card:hover,
body.is-plant-scene .industry-card:focus-within {
  transform: perspective(900px) rotateX(var(--rx, 0deg)) rotateY(var(--ry, 0deg));
}

body.is-plant-scene .suite-foundation {
  width: 100%;
  max-width: none;
  margin-top: 0.15rem;
  padding-top: 0.75rem;
  border-top: 1px solid rgba(0, 132, 225, 0.28);
}

body.is-plant-scene .suite-foundation img {
  width: 210px;
  max-width: 100%;
  height: auto;
  display: block;
}

body.is-plant-scene:not(.is-belt-motion) .plant-shot .industry-strip {
  display: grid;
  grid-auto-flow: row;
  grid-template-columns: 1fr 1fr;
  grid-auto-columns: auto;
  gap: 0.55rem;
  width: 460px;
  min-width: 420px;
  max-width: 460px;
  overflow: visible;
}

body.is-plant-scene .industry-strip .industry-photo {
  height: 56px;
}

body.is-plant-scene .industry-card {
  opacity: 1;
  filter: none;
  padding: 0.45rem 0.5rem 0.55rem;
  background: rgba(16, 16, 16, 0.88);
}

body.is-plant-scene .industry-strip .industry-photo img {
  filter: grayscale(1) contrast(1.15);
}

body.is-plant-scene .industry-strip .industry-card h3 {
  font-size: 0.95rem;
}

body.is-plant-scene #contacto.plant-shot {
  align-items: flex-start;
  justify-content: flex-end;
}

body.is-plant-scene #contacto .audit-cta h2 {
  font-size: clamp(1.4rem, 2vw, 1.75rem);
  max-width: 32ch;
  line-height: 1.28;
}

.plant-rail {
  position: absolute;
  z-index: 3;
  left: 6vw;
  right: 6vw;
  bottom: 3.2vh;
  display: flex;
  align-items: center;
  gap: 0.8rem;
  color: #9cb2c9;
  font-family: var(--font-mono);
  font-size: 0.68rem;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  pointer-events: none;
}

.plant-rail-track {
  flex: 1;
  height: 1px;
  background: rgba(0, 132, 225, 0.35);
}

#plantFill {
  display: block;
  height: 100%;
  width: 100%;
  background: #0084e1;
  transform: scaleX(0);
  transform-origin: left center;
}

#plantIndex {
  color: #fa9b11;
}

#plantName {
  display: inline-grid;
  min-width: 9ch;
  perspective: 420px;
}

#plantName span {
  grid-area: 1 / 1;
  transform-origin: center bottom;
  backface-visibility: hidden;
}

#plantName .flip-out {
  opacity: calc(1 - var(--flip, 1));
  transform: rotateX(calc(var(--flip, 1) * -76deg));
}

#plantName .flip-in {
  opacity: var(--flip, 1);
  transform: rotateX(calc((1 - var(--flip, 1)) * 76deg));
}

.plant-hud {
  position: absolute;
  inset: 0;
  z-index: 3;
  pointer-events: none;
}

.hud-box,
.hud-ocr,
.hud-cloud {
  position: absolute;
  left: 0;
  top: 0;
}

.hud-box {
  width: 168px;
  height: 220px;
  border: 1px solid rgba(0, 132, 225, 0.85);
  box-shadow: 0 0 24px rgba(0, 132, 225, 0.18);
}

.hud-box i {
  position: absolute;
  width: 10px;
  height: 10px;
  border: 1.5px solid #0084e1;
}

.hud-box i:nth-child(1) { top: -1px; left: -1px; border-right: 0; border-bottom: 0; }
.hud-box i:nth-child(2) { top: -1px; right: -1px; border-left: 0; border-bottom: 0; }
.hud-box i:nth-child(3) { bottom: -1px; left: -1px; border-right: 0; border-top: 0; }
.hud-box i:nth-child(4) { bottom: -1px; right: -1px; border-left: 0; border-top: 0; }

.hud-box em,
.hud-ocr,
.hud-cloud {
  font-family: var(--font-mono);
  font-style: normal;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  font-size: 0.62rem;
  color: #0084e1;
}

.hud-box em {
  position: absolute;
  left: 8px;
  top: -1.3rem;
}

.hud-ocr,
.hud-cloud {
  display: grid;
  gap: 0.15rem;
  padding: 0.45rem 0.6rem;
  background: rgba(26, 26, 26, 0.82);
  border: 1px solid rgba(0, 132, 225, 0.45);
}

.hud-ocr strong,
.hud-cloud strong {
  color: #f4f7fb;
  font-size: 0.78rem;
  letter-spacing: 0.08em;
}

.hud-ocr span {
  color: #fa9b11;
}

body.is-plant-fallback .plant-track,
body.is-plant-fallback .plant-pin {
  height: auto;
  overflow: visible;
}

body.is-plant-fallback #plantCanvas,
body.is-plant-fallback .plant-grade,
body.is-plant-fallback .plant-hud,
body.is-plant-fallback .plant-rail,
body.is-plant-fallback .plant-beams,
body.is-plant-fallback .plant-trace,
body.is-plant-fallback .plant-spot {
  display: none;
}

body.is-plant-fallback .plant-shot > * {
  transform: none;
  min-width: 0;
  width: auto;
  max-width: none;
}

body.is-plant-fallback .plant-shot h2 .gen-word {
  opacity: 1;
  filter: none;
  transform: none;
}

body.is-plant-fallback .plant-shot {
  position: relative;
  opacity: 1;
  min-height: 70vh;
  pointer-events: auto;
  display: block;
  padding: 8vh var(--page-gutter);
  background:
    linear-gradient(90deg, rgba(26, 26, 26, 0.92), rgba(26, 26, 26, 0.62)),
    var(--plant-still) center/cover no-repeat;
}

body.is-plant-fallback #linea { --plant-still: url("./film/entry-poster.webp"); }
body.is-plant-fallback #productos { --plant-still: url("./film/entry-poster.webp"); }
body.is-plant-fallback #lanzamiento-spatial { --plant-still: url("./film/entry-poster.webp"); }
body.is-plant-fallback #industrias,
body.is-plant-fallback #contacto,
body.is-plant-fallback #recursos { --plant-still: url("./film/entry-poster.webp"); }

@media (max-width: 800px) {
  .plant-track,
  .plant-pin {
    height: auto;
    overflow: visible;
  }

  #plantCanvas,
  .plant-grade,
  .plant-hud,
  .plant-rail,
  .plant-beams,
  .plant-trace,
  .plant-spot {
    display: none;
  }

  .plant-shot > * {
    transform: none;
    min-width: 0;
    width: auto;
    max-width: none;
  }

  .plant-shot h2 .gen-word {
    opacity: 1;
    filter: none;
    transform: none;
  }

  body.is-plant-scene #productos .product-card,
  body.is-plant-scene #productos .product-card.is-suite,
  body.is-plant-scene #productos .product-card.is-suite-out {
    position: relative;
    opacity: 1;
    pointer-events: auto;
    transform: none;
  }

  .plant-shot {
    position: relative;
    opacity: 1;
    min-height: auto;
    display: block;
    padding: 4.5rem var(--page-gutter);
    pointer-events: auto;
    background:
      linear-gradient(180deg, rgba(26, 26, 26, 0.9), rgba(26, 26, 26, 0.72)),
      var(--plant-still) center/cover no-repeat;
  }

  #linea { --plant-still: url("./film/entry-poster.webp"); }
  #productos { --plant-still: url("./film/entry-poster.webp"); }
  #lanzamiento-spatial { --plant-still: url("./film/entry-poster.webp"); }
  #industrias,
  #contacto,
  #recursos { --plant-still: url("./film/entry-poster.webp"); }

  body.is-plant-scene .industry-strip,
  body.is-plant-scene .plant-shot .line-head,
  body.is-plant-scene .plant-shot.home-block {
    width: auto;
  }
}


/* v19: keep the footer reachable while consent is undecided. */
body.has-cookie-banner{padding-bottom:calc(var(--cookie-banner-height,0px) + 16px)}
.suite-app-link{color:#9fd8ff!important;font-size:15px!important;text-underline-offset:4px}
.suite-base{color:#c3d3df!important;font-size:14px!important;line-height:1.65}
.gauge-page .brand-product{position:relative;display:block;width:160px}
.gauge-page .brand-product img{display:block;width:100px;height:42px;object-fit:contain}
.gauge-page .brand-product-badge{display:block;width:max-content;background:#4bab50;color:white;font:600 10px/1.2 var(--font-heading);padding:1px 5px;margin:-5px 0 0 74px;letter-spacing:.02em}
