/* Calixto — accessibility and progressive-enhancement fixes */
html:not(.js) .reveal {
  opacity: 1 !important;
  transform: none !important;
}

/* Keep the home page focused; complete catalogs remain on their own pages. */
#servicos .mt-16.grid > a:nth-child(n + 7),
#segmentos .mt-14.grid > a:nth-child(n + 7) {
  display: none;
}

/* Hero technology panel */
.tech-panel-stage {
  perspective: 900px;
  isolation: isolate;
}

.tech-number-cloud {
  position: absolute;
  inset: -3.25rem;
  z-index: 20;
  pointer-events: none;
  transform-style: preserve-3d;
}

.tech-number {
  --jump-x: 0px;
  --jump-z: 70px;
  position: absolute;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 5.3rem;
  padding: .55rem .8rem;
  border: 1px solid rgba(127, 180, 190, .48);
  border-radius: 999px;
  background: rgba(255, 255, 255, .94);
  color: #0f4c5c;
  box-shadow: 0 12px 34px rgba(7, 21, 34, .24), inset 0 1px 0 rgba(255, 255, 255, .9);
  font-size: .74rem;
  font-weight: 800;
  letter-spacing: -.01em;
  white-space: nowrap;
  backdrop-filter: blur(8px);
  animation: tech-number-jump 3.2s cubic-bezier(.2, .8, .2, 1) infinite;
  will-change: transform, opacity;
}

.tech-number--one { left: -4%; top: 28%; --jump-x: -20px; animation-delay: -.3s; }
.tech-number--two { right: -2%; top: 14%; --jump-x: 22px; --jump-z: 92px; animation-delay: -.95s; }
.tech-number--three { right: 12%; bottom: 0; --jump-x: 12px; --jump-z: 58px; animation-delay: -1.65s; }
.tech-number--four { left: -1%; bottom: 15%; --jump-x: -24px; --jump-z: 82px; animation-delay: -2.25s; }
.tech-number--five { right: 1%; top: 47%; --jump-x: 24px; --jump-z: 110px; animation-delay: -2.75s; }

.tech-feature-card {
  z-index: 30;
  top: -1.75rem !important;
  left: -1.25rem !important;
  animation: tech-card-bob 3.8s ease-in-out infinite;
}

.tech-feature-card--secondary {
  top: auto !important;
  left: auto !important;
  animation-delay: -1.7s;
}

@keyframes tech-number-jump {
  0%, 100% { opacity: .72; transform: translate3d(0, 5px, -15px) scale(.92) rotate(-1deg); }
  24% { opacity: 1; transform: translate3d(var(--jump-x), -20px, var(--jump-z)) scale(1.09) rotate(1.5deg); }
  43% { transform: translate3d(0, 2px, 34px) scale(.99) rotate(-.7deg); }
  62% { transform: translate3d(var(--jump-x), -9px, 48px) scale(1.035) rotate(.5deg); }
  78% { transform: translate3d(0, 1px, 8px) scale(.97); }
}

@keyframes tech-card-bob {
  0%, 100% { transform: translateY(0) rotate(-.4deg); }
  50% { transform: translateY(-8px) rotate(.4deg); }
}

@media (max-width: 639px) {
  .tech-number-cloud { inset: -1.25rem; }
  .tech-number { min-width: 4.4rem; padding: .42rem .62rem; font-size: .65rem; }
  .tech-number--one { left: 0; top: 26%; }
  .tech-number--two { right: -1%; top: 18%; }
  .tech-number--three { right: 4%; bottom: -3%; }
  .tech-number--four { left: -1%; bottom: 16%; }
  .tech-number--five { display: none; }
}

@media (prefers-reduced-motion: reduce) {
  .tech-number,
  .tech-feature-card {
    animation: none !important;
  }
}

/* Free-floating numeric burst — intentionally no dashboard or cards. */
.number-burst {
  position: relative;
  min-height: 520px;
  perspective: 980px;
  isolation: isolate;
  transform-style: preserve-3d;
}

.number-burst::before {
  content: "";
  position: absolute;
  inset: 13% 8%;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(78, 142, 156, .3), rgba(15, 76, 92, .06) 46%, transparent 72%);
  filter: blur(14px);
  pointer-events: none;
}

.burst-number {
  --leap-x: 0px;
  --leap-y: -24px;
  position: absolute;
  z-index: 2;
  color: #fff;
  font-weight: 800;
  line-height: 1;
  letter-spacing: -.055em;
  white-space: nowrap;
  text-shadow: 0 0 18px rgba(127, 180, 190, .62), 0 18px 36px rgba(0, 0, 0, .34);
  animation: number-leap 4.2s cubic-bezier(.18, .78, .22, 1) infinite;
  will-change: transform, opacity, filter;
}

.burst-number--01 { left: 12%; top: 31%; font-size: clamp(2.5rem, 4.6vw, 4.5rem); --leap-x: -26px; animation-delay: -.25s; }
.burst-number--02 { right: 4%; top: 12%; color: #afd3d9; font-size: clamp(1.8rem, 3vw, 3rem); --leap-x: 30px; animation-delay: -.7s; }
.burst-number--03 { right: 17%; bottom: 8%; color: #25d366; font-size: clamp(2.1rem, 3.8vw, 3.8rem); --leap-x: 22px; animation-delay: -1.15s; }
.burst-number--04 { left: 0; bottom: 18%; color: #7fb4be; font-size: clamp(1.35rem, 2.2vw, 2.2rem); --leap-x: -32px; animation-delay: -1.6s; }
.burst-number--05 { right: -4%; top: 49%; font-size: clamp(1.2rem, 2vw, 2rem); --leap-x: 34px; animation-delay: -2.05s; }
.burst-number--06 { left: 39%; top: 4%; color: #7fb4be; font-size: clamp(1rem, 1.7vw, 1.7rem); --leap-y: -32px; animation-delay: -2.5s; }
.burst-number--07 { left: 8%; top: 62%; color: #afd3d9; font-size: clamp(1.15rem, 2vw, 2rem); --leap-x: -20px; animation-delay: -2.95s; }
.burst-number--08 { right: 28%; top: 40%; font-size: clamp(1rem, 1.8vw, 1.8rem); --leap-x: 16px; animation-delay: -3.4s; }
.burst-number--09 { left: 34%; bottom: 1%; color: #7fb4be; font-size: clamp(1.35rem, 2.4vw, 2.4rem); --leap-y: 20px; animation-delay: -3.85s; }
.burst-number--10 { right: 2%; bottom: 31%; color: #afd3d9; font-size: clamp(1.05rem, 1.9vw, 1.9rem); --leap-x: 28px; animation-delay: -4.15s; }

@keyframes number-leap {
  0%, 100% {
    opacity: .18;
    filter: blur(3px);
    transform: translate3d(0, 18px, -160px) scale(.55) rotate(-2deg);
  }
  18% {
    opacity: 1;
    filter: blur(0);
    transform: translate3d(var(--leap-x), var(--leap-y), 130px) scale(1.18) rotate(1.2deg);
  }
  34% {
    opacity: .92;
    transform: translate3d(0, 4px, 34px) scale(.97) rotate(-.5deg);
  }
  52% {
    opacity: 1;
    transform: translate3d(var(--leap-x), -12px, 82px) scale(1.07) rotate(.5deg);
  }
  72% {
    opacity: .76;
    transform: translate3d(0, 2px, 12px) scale(.9);
  }
}

@media (max-width: 639px) {
  .number-burst { min-height: 350px; margin-top: 1rem; }
  .burst-number--01 { left: 9%; top: 31%; }
  .burst-number--02 { right: 3%; top: 10%; }
  .burst-number--03 { right: 12%; bottom: 7%; }
  .burst-number--04 { left: 1%; bottom: 18%; }
  .burst-number--05 { right: -1%; top: 48%; }
  .burst-number--06 { left: 36%; top: 2%; }
  .burst-number--07 { left: 5%; top: 60%; }
  .burst-number--08 { right: 23%; top: 42%; }
  .burst-number--09,
  .burst-number--10 { display: none; }
}

@media (prefers-reduced-motion: reduce) {
  .burst-number {
    animation: none !important;
    opacity: .86;
    filter: none;
    transform: none;
  }
}
