:root {
  --yellow: #ffca00;
  --silver: #b2b2b2;
  --white: #ffffff;
  --black: #000000;
  --ink: #101010;
  --muted: #737373;
  --line: rgba(0, 0, 0, 0.12);
  --line-dark: rgba(255, 255, 255, 0.12);
  --astro-blue: #111429;
  --astro-violet: #5f4bff;
  --astro-glow: #9287ff;
  --container: min(1320px, calc(100% - 48px));
  --radius: 28px;
}

* {
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
}

body {
  margin: 0;
  font-family: "KoHo", system-ui, sans-serif;
  color: var(--ink);
  background: var(--white);
  overflow-x: hidden;
}

body.menu-open {
  overflow: hidden;
}

a {
  color: inherit;
  text-decoration: none;
}

img {
  display: block;
  max-width: 100%;
}

.container {
  width: var(--container);
  margin: 0 auto;
}

.site-noise {
  position: fixed;
  inset: 0;
  pointer-events: none;
  opacity: .035;
  z-index: 999;
  background-image:
    radial-gradient(circle at 20% 20%, rgba(255,255,255,.9) 0 0.5px, transparent .6px),
    radial-gradient(circle at 70% 40%, rgba(255,255,255,.7) 0 0.5px, transparent .6px);
  background-size: 8px 8px, 11px 11px;
  mix-blend-mode: overlay;
}

/* Header */
.site-header {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  z-index: 50;
  transition: background .3s ease, border-color .3s ease, backdrop-filter .3s ease;
}

.site-header.scrolled {
  background: rgba(0, 0, 0, 0.78);
  backdrop-filter: blur(18px);
  border-bottom: 1px solid rgba(255, 255, 255, .08);
}

.nav-wrap {
  height: 84px;
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.brand-logo {
  width: 152px;
  height: 42px;
  object-fit: contain;
}

.main-nav {
  display: flex;
  align-items: center;
  gap: 32px;
  color: rgba(255,255,255,.82);
  font-size: 14px;
  letter-spacing: .08em;
}

.main-nav a {
  transition: color .25s ease;
}

.main-nav a:hover {
  color: var(--yellow);
}

.nav-cta {
  padding: 13px 18px;
  border: 1px solid rgba(255,255,255,.24);
  border-radius: 999px;
}

.menu-toggle {
  display: none;
  border: 0;
  background: transparent;
  width: 44px;
  height: 44px;
  position: relative;
  cursor: pointer;
}

.menu-toggle span {
  width: 26px;
  height: 1px;
  background: white;
  position: absolute;
  left: 9px;
  transition: .3s ease;
}

.menu-toggle span:first-child { top: 17px; }
.menu-toggle span:last-child { top: 25px; }

.menu-toggle[aria-expanded="true"] span:first-child {
  top: 21px;
  transform: rotate(45deg);
}
.menu-toggle[aria-expanded="true"] span:last-child {
  top: 21px;
  transform: rotate(-45deg);
}

/* Shared */
.section {
  padding: 130px 0;
}

.section-dark,
.section-black {
  background: var(--black);
  color: var(--white);
}

.section-light {
  background: #f5f5f2;
}

.eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  margin: 0 0 22px;
  color: rgba(255,255,255,.62);
  font-size: 13px;
  font-weight: 600;
  letter-spacing: .16em;
}

.eyebrow-dark {
  color: rgba(0,0,0,.54);
}

.eyebrow-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--yellow);
  box-shadow: 0 0 20px rgba(255,202,0,.8);
}

.section-heading h2,
.hero h1,
.astro-copy h2,
.cta-section h2 {
  margin: 0;
  font-weight: 500;
  letter-spacing: -.045em;
  line-height: .98;
}

.section-heading h2 {
  font-size: clamp(48px, 6.6vw, 96px);
}

.section-number {
  display: block;
  margin-bottom: 30px;
  color: rgba(0,0,0,.35);
  font-size: 14px;
  letter-spacing: .12em;
}

.section-number-dark {
  color: rgba(255,255,255,.3);
}

.heading-row {
  display: grid;
  grid-template-columns: 1.5fr .7fr;
  align-items: end;
  gap: 64px;
  margin-bottom: 74px;
}

.heading-side-copy {
  margin: 0 0 8px;
  max-width: 420px;
  color: rgba(255,255,255,.55);
  line-height: 1.75;
  font-size: 17px;
}

.dark-copy {
  color: rgba(0,0,0,.55);
}

.btn {
  min-height: 54px;
  padding: 0 24px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
  font-size: 14px;
  font-weight: 600;
  letter-spacing: .04em;
  transition: transform .25s ease, border-color .25s ease, background .25s ease;
}

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

.btn-primary {
  background: var(--yellow);
  color: #000;
}

.btn-ghost {
  color: white;
  border: 1px solid rgba(255,255,255,.28);
}

.btn-ghost:hover {
  border-color: var(--yellow);
}

/* Hero */
.hero {
  min-height: 100svh;
  position: relative;
  overflow: hidden;
  display: flex;
  align-items: center;
  padding: 140px 0 80px;
}

.hero::before {
  content: "";
  position: absolute;
  width: 70vw;
  height: 70vw;
  right: -22vw;
  top: -30vw;
  background: radial-gradient(circle, rgba(255,202,0,.12), transparent 66%);
  pointer-events: none;
}

.hero-grid {
  display: grid;
  grid-template-columns: 1.02fr .98fr;
  align-items: center;
  gap: 30px;
}

.hero h1 {
  font-size: clamp(58px, 7.5vw, 116px);
  max-width: 860px;
}

.hero h1 span {
  display: block;
  color: var(--yellow);
  font-size: .53em;
  margin-top: 18px;
  letter-spacing: -.025em;
  line-height: 1.02;
}

.hero-lead {
  max-width: 670px;
  margin: 34px 0 0;
  color: rgba(255,255,255,.62);
  font-size: clamp(18px, 1.7vw, 25px);
  line-height: 1.55;
}

.hero-actions {
  display: flex;
  gap: 14px;
  margin-top: 36px;
  flex-wrap: wrap;
}

.hero-metrics {
  margin-top: 72px;
  padding-top: 26px;
  border-top: 1px solid rgba(255,255,255,.12);
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
  max-width: 720px;
}

.hero-metrics div {
  display: flex;
  flex-direction: column;
  gap: 5px;
}

.hero-metrics strong {
  color: white;
  font-size: 20px;
  font-weight: 500;
}

.hero-metrics span {
  color: rgba(255,255,255,.38);
  font-size: 12px;
  line-height: 1.45;
}

.hero-visual {
  min-height: 650px;
  position: relative;
  display: grid;
  place-items: center;
}

.orbit {
  position: absolute;
  border: 1px solid rgba(255,255,255,.08);
  border-radius: 50%;
}

.orbit-a {
  width: 600px;
  height: 600px;
}

.orbit-b {
  width: 760px;
  height: 370px;
  transform: rotate(-18deg);
}

.optic-lens {
  width: min(580px, 45vw);
  aspect-ratio: 1;
  border-radius: 50%;
  position: relative;
  animation: floatLens 6s ease-in-out infinite;
  filter: drop-shadow(0 35px 60px rgba(0,0,0,.42));
}

.lens-map {
  width: 100%;
  height: 100%;
}

.lens-ui {
  position: absolute;
  color: white;
  background: rgba(12,12,12,.55);
  border: 1px solid rgba(255,255,255,.12);
  backdrop-filter: blur(12px);
  border-radius: 16px;
  padding: 13px 16px;
}

.lens-ui-top {
  top: 14%;
  left: 6%;
}

.lens-ui-bottom {
  bottom: 12%;
  right: 4%;
  display: flex;
  align-items: center;
  gap: 12px;
}

.ui-kicker {
  display: block;
  font-size: 9px;
  letter-spacing: .16em;
  color: rgba(255,255,255,.44);
  margin-bottom: 4px;
}

.lens-ui strong {
  font-size: 14px;
  letter-spacing: .14em;
  font-weight: 600;
}

.lens-ui-bottom span:first-child {
  font-size: 10px;
  letter-spacing: .12em;
}

.pulse {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--yellow);
  box-shadow: 0 0 0 0 rgba(255,202,0,.65);
  animation: pulse 1.8s infinite;
}

.visual-caption {
  position: absolute;
  left: 8%;
  bottom: 2%;
  right: 8%;
  display: flex;
  justify-content: space-between;
  color: rgba(255,255,255,.32);
  font-size: 11px;
  letter-spacing: .1em;
  text-transform: uppercase;
}

.scroll-cue {
  position: absolute;
  left: 50%;
  bottom: 24px;
  transform: translateX(-50%);
  color: rgba(255,255,255,.34);
  font-size: 10px;
  letter-spacing: .16em;
  display: flex;
  align-items: center;
  gap: 10px;
}

.scroll-cue span {
  width: 28px;
  height: 1px;
  background: var(--yellow);
}

@keyframes floatLens {
  0%, 100% { transform: translateY(0) rotate(-2deg); }
  50% { transform: translateY(-16px) rotate(1.5deg); }
}

@keyframes pulse {
  0% { box-shadow: 0 0 0 0 rgba(255,202,0,.55); }
  70% { box-shadow: 0 0 0 12px rgba(255,202,0,0); }
  100% { box-shadow: 0 0 0 0 rgba(255,202,0,0); }
}

/* Emporio */
.split-layout {
  display: grid;
  grid-template-columns: .95fr 1.05fr;
  gap: 100px;
}

.section-copy {
  padding-top: 86px;
}

.big-copy {
  font-size: clamp(28px, 3.1vw, 46px);
  line-height: 1.2;
  letter-spacing: -.025em;
  margin: 0 0 38px;
}

.section-copy > p:not(.big-copy) {
  max-width: 670px;
  color: rgba(0,0,0,.57);
  font-size: 18px;
  line-height: 1.7;
}

.feature-list {
  margin-top: 70px;
  border-top: 1px solid var(--line);
}

.feature-item {
  display: grid;
  grid-template-columns: 70px 1fr;
  gap: 10px;
  padding: 30px 0;
  border-bottom: 1px solid var(--line);
}

.feature-item > span {
  color: rgba(0,0,0,.35);
  font-size: 13px;
}

.feature-item strong {
  font-size: 20px;
  font-weight: 600;
}

.feature-item p {
  margin: 8px 0 0;
  color: rgba(0,0,0,.52);
  line-height: 1.6;
}

/* Technology */
.section-black {
  position: relative;
  overflow: hidden;
}

.section-black::after {
  content: "";
  position: absolute;
  width: 60vw;
  height: 60vw;
  left: -36vw;
  bottom: -30vw;
  background: radial-gradient(circle, rgba(255,202,0,.08), transparent 64%);
}

.tech-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 18px;
  position: relative;
  z-index: 1;
}

.tech-card {
  min-height: 460px;
  padding: 30px;
  border-radius: var(--radius);
  border: 1px solid var(--line-dark);
  background:
    linear-gradient(145deg, rgba(255,255,255,.055), rgba(255,255,255,.015));
  display: flex;
  flex-direction: column;
  transition: transform .3s ease, border-color .3s ease;
}

.tech-card:hover {
  transform: translateY(-7px);
  border-color: rgba(255,202,0,.45);
}

.tech-index {
  color: rgba(255,255,255,.28);
  font-size: 12px;
  letter-spacing: .1em;
}

.tech-icon {
  width: 150px;
  height: 150px;
  margin: auto;
  border-radius: 50%;
  position: relative;
  display: grid;
  place-items: center;
}

.tech-icon::before,
.tech-icon::after {
  content: "";
  position: absolute;
  inset: 20%;
  border-radius: 50%;
  border: 1px solid rgba(255,255,255,.18);
}

.tech-icon::after {
  inset: 35%;
  background: radial-gradient(circle, rgba(255,202,0,.7), rgba(255,202,0,.06) 60%, transparent 70%);
  border: none;
}

.tech-icon-grid {
  background:
    linear-gradient(rgba(255,255,255,.05) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.05) 1px, transparent 1px);
  background-size: 16px 16px;
}

.tech-icon-scan::before {
  inset: 12%;
  border-style: dashed;
  animation: spin 10s linear infinite;
}

.tech-icon-map {
  background:
    radial-gradient(circle at 45% 45%, rgba(255,202,0,.45), transparent 25%),
    radial-gradient(circle at center, rgba(255,255,255,.08), transparent 65%);
}

@keyframes spin {
  to { transform: rotate(360deg); }
}

.tech-card h3 {
  margin: 0 0 14px;
  font-size: 24px;
  font-weight: 500;
}

.tech-card p {
  margin: 0;
  color: rgba(255,255,255,.5);
  line-height: 1.7;
}

/* Solutions */
.solution-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 20px;
}

.solution-card {
  min-height: 420px;
  padding: 34px;
  border-radius: var(--radius);
  border: 1px solid var(--line);
  background: rgba(255,255,255,.6);
  display: flex;
  flex-direction: column;
  transition: transform .3s ease, background .3s ease, color .3s ease;
}

.solution-card:hover {
  transform: translateY(-6px);
  background: #000;
  color: white;
}

.solution-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding-bottom: 24px;
  border-bottom: 1px solid currentColor;
  opacity: .42;
  font-size: 12px;
  letter-spacing: .14em;
}

.solution-card h3 {
  margin: 56px 0 18px;
  max-width: 460px;
  font-size: clamp(34px, 3.5vw, 54px);
  font-weight: 500;
  line-height: 1.05;
  letter-spacing: -.03em;
}

.solution-card p {
  margin: 0;
  max-width: 550px;
  color: rgba(0,0,0,.55);
  line-height: 1.65;
}

.solution-card:hover p {
  color: rgba(255,255,255,.56);
}

.solution-card a {
  margin-top: auto;
  padding-top: 34px;
  font-weight: 600;
  font-size: 14px;
}

/* Astro */
.astro-section {
  min-height: 920px;
  position: relative;
  overflow: hidden;
  display: flex;
  align-items: center;
  color: white;
  background:
    radial-gradient(circle at 77% 48%, rgba(95,75,255,.30), transparent 26%),
    radial-gradient(circle at 75% 50%, rgba(24,34,74,.75), transparent 42%),
    linear-gradient(135deg, #04050a 0%, #090b18 50%, #050509 100%);
}

.astro-stars {
  position: absolute;
  inset: 0;
  opacity: .55;
  background-image:
    radial-gradient(circle at 12% 18%, rgba(255,255,255,.85) 0 1px, transparent 1.2px),
    radial-gradient(circle at 45% 25%, rgba(255,255,255,.55) 0 1px, transparent 1.2px),
    radial-gradient(circle at 71% 11%, rgba(255,255,255,.7) 0 1px, transparent 1.2px),
    radial-gradient(circle at 84% 64%, rgba(255,255,255,.65) 0 1px, transparent 1.2px),
    radial-gradient(circle at 28% 76%, rgba(255,255,255,.55) 0 1px, transparent 1.2px);
}

.astro-grid {
  position: relative;
  z-index: 2;
  display: grid;
  grid-template-columns: .9fr 1.1fr;
  gap: 50px;
  align-items: center;
}

.astro-kicker {
  color: var(--astro-glow);
  font-size: 13px;
  font-weight: 600;
  letter-spacing: .16em;
}

.astro-copy h2 {
  margin-top: 18px;
  font-size: clamp(58px, 7vw, 112px);
}

.astro-copy > p:not(.astro-kicker) {
  max-width: 650px;
  margin: 30px 0 0;
  color: rgba(255,255,255,.58);
  font-size: 18px;
  line-height: 1.7;
}

.astro-products {
  margin: 34px 0;
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.astro-products span {
  border: 1px solid rgba(255,255,255,.16);
  border-radius: 999px;
  padding: 10px 14px;
  font-size: 11px;
  letter-spacing: .13em;
  color: rgba(255,255,255,.66);
}

.btn-astro {
  border: 1px solid rgba(146,135,255,.4);
  background: linear-gradient(135deg, rgba(95,75,255,.32), rgba(255,255,255,.05));
  color: white;
}

.astro-visual {
  position: relative;
  min-height: 650px;
  display: grid;
  place-items: center;
}

.astro-orb {
  width: min(470px, 42vw);
  aspect-ratio: 1;
  position: relative;
  display: grid;
  place-items: center;
}

.astro-core {
  width: 52%;
  height: 52%;
  border-radius: 50%;
  background:
    radial-gradient(circle at 35% 30%, #f3f1ff, #9287ff 15%, #4e42cb 42%, #0b1027 73%);
  box-shadow:
    0 0 70px rgba(146,135,255,.55),
    0 0 170px rgba(95,75,255,.22);
}

.astro-ring {
  position: absolute;
  border-radius: 50%;
  border: 1px solid rgba(255,255,255,.18);
}

.astro-ring-a {
  width: 74%;
  height: 74%;
  transform: rotate(22deg) scaleY(.62);
}

.astro-ring-b {
  width: 98%;
  height: 98%;
  border-color: rgba(146,135,255,.22);
  transform: rotate(-26deg) scaleY(.48);
}

.astro-ring-c {
  width: 120%;
  height: 120%;
  border-style: dashed;
  border-color: rgba(255,255,255,.08);
  animation: spin 18s linear infinite;
}

.astro-label {
  position: absolute;
  padding: 12px 14px;
  background: rgba(9,11,24,.42);
  border: 1px solid rgba(255,255,255,.12);
  backdrop-filter: blur(14px);
  border-radius: 14px;
}

.astro-label small {
  display: block;
  color: rgba(255,255,255,.4);
  font-size: 8px;
  letter-spacing: .14em;
}

.astro-label strong {
  display: block;
  margin-top: 4px;
  font-size: 12px;
  letter-spacing: .12em;
}

.astro-label-a {
  top: 26%;
  left: 4%;
}

.astro-label-b {
  right: 2%;
  bottom: 26%;
}

/* Ecosystem */
.ecosystem-section {
  background: white;
}

.ecosystem-flow {
  display: grid;
  grid-template-columns: 1fr auto 1fr auto 1fr auto 1fr;
  gap: 22px;
  align-items: center;
  margin-top: 90px;
}

.eco-step {
  min-height: 190px;
  padding: 26px;
  border-top: 2px solid #000;
  background: #f6f6f3;
}

.eco-step span {
  color: rgba(0,0,0,.35);
  font-size: 12px;
}

.eco-step strong {
  display: block;
  margin-top: 36px;
  font-size: 22px;
}

.eco-step p {
  margin: 10px 0 0;
  color: rgba(0,0,0,.5);
  line-height: 1.5;
}

.eco-arrow {
  font-size: 28px;
  color: var(--yellow);
}

/* CTA */
.cta-section {
  padding: 110px 0;
  background: var(--yellow);
  color: #000;
}

.cta-wrap {
  display: grid;
  grid-template-columns: 1.3fr .7fr;
  gap: 50px;
  align-items: end;
}

.cta-section .eyebrow {
  color: rgba(0,0,0,.58);
}

.cta-section h2 {
  max-width: 920px;
  font-size: clamp(48px, 6.2vw, 94px);
}

.cta-actions {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 10px;
}

.cta-section .btn-primary {
  background: #000;
  color: white;
}

.cta-section .btn-ghost {
  color: #000;
  border-color: rgba(0,0,0,.28);
}

/* Footer */
.site-footer {
  padding: 70px 0 30px;
  background: #000;
  color: white;
}

.footer-grid {
  display: grid;
  grid-template-columns: 1.2fr .6fr .7fr;
  gap: 40px;
  align-items: start;
}

.footer-logo {
  width: 150px;
  margin-bottom: 20px;
}

.site-footer p,
.footer-meta {
  color: rgba(255,255,255,.42);
  font-size: 13px;
  line-height: 1.6;
}

.footer-links {
  display: grid;
  gap: 12px;
  font-size: 14px;
}

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

.footer-meta {
  display: grid;
  gap: 8px;
  text-align: right;
}

/* Reveal */
.reveal {
  opacity: 0;
  transform: translateY(26px);
  transition: opacity .8s ease, transform .8s ease;
}

.reveal.is-visible {
  opacity: 1;
  transform: translateY(0);
}

.reveal-delay {
  transition-delay: .14s;
}

/* Responsive */
@media (max-width: 1080px) {
  :root {
    --container: min(100% - 36px, 980px);
  }

  .hero-grid,
  .split-layout,
  .astro-grid,
  .cta-wrap {
    grid-template-columns: 1fr;
  }

  .hero {
    padding-top: 130px;
  }

  .hero-visual {
    min-height: 570px;
    margin-top: 40px;
  }

  .optic-lens {
    width: min(620px, 75vw);
  }

  .section-copy {
    padding-top: 0;
  }

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

  .tech-card {
    min-height: 330px;
  }

  .heading-row {
    grid-template-columns: 1fr;
    align-items: start;
  }

  .astro-visual {
    min-height: 560px;
  }

  .astro-orb {
    width: min(500px, 66vw);
  }

  .ecosystem-flow {
    grid-template-columns: 1fr;
  }

  .eco-arrow {
    transform: rotate(90deg);
    justify-self: center;
  }

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

  .footer-meta {
    text-align: left;
  }
}

@media (max-width: 760px) {
  :root {
    --container: calc(100% - 28px);
    --radius: 22px;
  }

  .section {
    padding: 90px 0;
  }

  .nav-wrap {
    height: 72px;
  }

  .brand-logo {
    width: 128px;
  }

  .menu-toggle {
    display: block;
  }

  .main-nav {
    position: fixed;
    top: 0;
    right: 0;
    width: 100%;
    height: 100svh;
    padding: 120px 28px 40px;
    background: rgba(0,0,0,.96);
    backdrop-filter: blur(18px);
    flex-direction: column;
    align-items: flex-start;
    gap: 24px;
    font-size: 22px;
    transform: translateX(100%);
    transition: transform .35s ease;
  }

  .main-nav.open {
    transform: translateX(0);
  }

  .nav-cta {
    margin-top: 12px;
  }

  .hero {
    padding-top: 112px;
  }

  .hero h1 {
    font-size: clamp(48px, 15vw, 74px);
  }

  .hero h1 span {
    font-size: .47em;
  }

  .hero-lead {
    font-size: 18px;
  }

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

  .hero-metrics {
    grid-template-columns: 1fr;
    gap: 20px;
    margin-top: 52px;
  }

  .hero-visual {
    min-height: 420px;
  }

  .orbit-a {
    width: 390px;
    height: 390px;
  }

  .orbit-b {
    width: 450px;
    height: 250px;
  }

  .optic-lens {
    width: min(390px, 92vw);
  }

  .lens-ui {
    padding: 10px 12px;
  }

  .visual-caption,
  .scroll-cue {
    display: none;
  }

  .section-heading h2,
  .astro-copy h2,
  .cta-section h2 {
    font-size: clamp(46px, 13vw, 70px);
  }

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

  .solution-card {
    min-height: 370px;
  }

  .astro-section {
    min-height: auto;
    padding: 100px 0;
  }

  .astro-orb {
    width: min(360px, 82vw);
  }

  .astro-label-a {
    left: 0;
  }

  .astro-label-b {
    right: 0;
  }

  .cta-actions {
    margin-top: 30px;
  }

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

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    scroll-behavior: auto !important;
    animation: none !important;
    transition: none !important;
  }

  .reveal {
    opacity: 1;
    transform: none;
  }
}


/* Hero v2: lente con rotación tridimensional y lectura fija alrededor. */
.logo-fallback { color:#fff; font-size:24px; font-weight:700; letter-spacing:.08em; font-style:italic; }
.brand-logo[hidden], .footer-logo[hidden] { display:none; }
.hero { background:radial-gradient(ellipse at 77% 43%,#101a24 0,#05090e 37%,#000 72%); }
.hero::before { inset:0; width:auto; height:auto; background:
    linear-gradient(rgba(255,255,255,.025) 1px,transparent 1px),
    linear-gradient(90deg,rgba(255,255,255,.025) 1px,transparent 1px);
  background-size:68px 68px; opacity:.58; mask-image:linear-gradient(90deg,transparent 20%,#000 100%); }
.hero-grid { position:relative; z-index:1; grid-template-columns:minmax(0,1.02fr) minmax(0,.98fr); }
.hero-copy { position:relative; z-index:3; }
.hero h1 { font-size:clamp(54px,6.8vw,104px); }
.hero-visual { min-height:640px; perspective:1050px; isolation:isolate; }
.hero-visual::before { content:""; position:absolute; width:78%; aspect-ratio:1; border-radius:50%; background:#ffca00; filter:blur(110px); opacity:.095; }
.optic-halo { position:absolute; border:1px solid rgba(255,255,255,.12); border-radius:50%; pointer-events:none; }
.halo-one { width:min(610px,52vw); aspect-ratio:1; }
.halo-two { width:min(710px,61vw); height:min(300px,25vw); border-color:rgba(255,202,0,.23); transform:rotate(-23deg); }
.optic-axis { position:absolute; background:linear-gradient(90deg,transparent,rgba(255,255,255,.14),transparent); pointer-events:none; }
.axis-horizontal { width:96%; height:1px; }
.axis-vertical { width:1px; height:86%; background:linear-gradient(transparent,rgba(255,255,255,.14),transparent); }
.optic-stage { width:min(560px,43vw); aspect-ratio:1; position:relative; transform-style:preserve-3d; animation:lensFloat 6s ease-in-out infinite; filter:drop-shadow(0 45px 55px rgba(0,0,0,.7)); }
.optic-lens { width:100%; height:100%; position:relative; border-radius:50%; transform-style:preserve-3d; animation:lensTurn 17s linear infinite; filter:none; }
.lens-face { position:absolute; inset:0; border-radius:50%; overflow:hidden; backface-visibility:hidden; box-shadow:inset 0 0 30px rgba(255,255,255,.16),inset -22px -18px 55px rgba(3,13,22,.62),0 0 18px rgba(255,255,255,.1); }
.lens-front { transform:translateZ(5px); background:radial-gradient(circle at 35% 23%,rgba(200,238,255,.3),rgba(5,16,29,.88) 66%); border:2px solid rgba(218,246,255,.6); }
.lens-back { transform:rotateY(180deg) translateZ(5px); border:2px solid rgba(218,246,255,.56); background:radial-gradient(circle at 30% 22%,rgba(221,249,255,.38),rgba(15,42,57,.66) 35%,rgba(3,12,22,.94) 72%); }
.lens-back::after { content:""; position:absolute; inset:12%; border:1px solid rgba(220,242,255,.16); border-radius:50%; }
.lens-map { width:100%; height:100%; display:block; }
.glass-sheen,.back-sheen { position:absolute; inset:5%; border-radius:50%; pointer-events:none; background:linear-gradient(120deg,transparent 11%,rgba(255,255,255,.08) 21%,transparent 31%,transparent 76%,rgba(255,255,255,.04) 83%,transparent 90%); }
.back-sheen { inset:0; background:linear-gradient(125deg,transparent 30%,rgba(255,255,255,.19) 47%,transparent 56%); }
.hud { position:absolute; z-index:3; display:flex; flex-direction:column; gap:4px; padding:12px 15px; background:rgba(3,10,17,.74); border:1px solid rgba(209,235,249,.22); backdrop-filter:blur(12px); border-radius:3px; box-shadow:0 12px 30px rgba(0,0,0,.23); pointer-events:none; }
.hud span { font-size:11px; color:#a6b5bf; letter-spacing:.14em; }
.hud strong { font-size:14px; color:#fff; letter-spacing:.1em; font-weight:600; }
.hud-top { left:0; top:13%; border-left:2px solid var(--yellow); }
.hud-side { right:0; bottom:18%; border-right:2px solid var(--yellow); text-align:right; }
.map-caption { position:absolute; bottom:2%; left:7%; right:7%; text-align:center; font-size:12px; color:rgba(255,255,255,.62); letter-spacing:.08em; }
@keyframes lensTurn { from { transform:rotateX(-9deg) rotateY(0deg); } to { transform:rotateX(-9deg) rotateY(360deg); } }
@keyframes lensFloat { 0%,100% { transform:translateY(0); } 50% { transform:translateY(-13px); } }
.hero-visual:hover .optic-lens,.hero-visual:focus-within .optic-lens { animation-play-state:paused; }
@media (max-width:1080px) { .hero-grid { grid-template-columns:1fr; } .optic-stage { width:min(560px,70vw); } .halo-one { width:min(610px,78vw); } .halo-two { width:min(710px,86vw); height:min(300px,36vw); } }
@media (max-width:760px) { .hero { padding-top:105px; } .hero-visual { min-height:390px; margin-top:20px; } .optic-stage { width:min(350px,78vw); } .halo-one { width:88vw; } .halo-two { width:96vw; height:40vw; } .hud { padding:8px 9px; } .hud span { font-size:9px; } .hud strong { font-size:10px; } .hud-top { top:7%; left:0; } .hud-side { bottom:11%; right:0; } .map-caption { bottom:0; font-size:10px; line-height:1.3; } .scroll-cue { display:none; } .hero-metrics { grid-template-columns:repeat(3,1fr); gap:8px; } .hero-metrics strong { font-size:16px; } .hero-metrics span { font-size:11px; } }
@media (max-width:380px) { .hud-side { bottom:8%; } .hero-visual { min-height:350px; } .hero-metrics { grid-template-columns:1fr; } }
@media (prefers-reduced-motion:reduce) { .optic-lens { animation:none!important; transform:rotateX(-9deg) rotateY(-12deg); } .optic-stage { animation:none!important; } }


/* Extensiones solicitadas: logo fiel, catálogo y Engine IA. */
.brand-logo{width:176px;height:auto;max-height:48px}.footer-logo{width:176px;height:auto;max-height:50px}
.main-nav{gap:22px}
.astro-section{display:block;min-height:0;padding-top:95px;scroll-margin-top:75px}
.astro-grid{min-height:710px}
.menu-toggle{z-index:60}
.lens-back{background:radial-gradient(circle at 30% 22%,rgba(221,249,255,.27),rgba(15,42,57,.42) 35%,rgba(3,12,22,.88) 72%)}
.lens-back .lens-map{transform:scaleX(-1);opacity:.94}
.lens-back .back-sheen{background:linear-gradient(120deg,transparent 15%,rgba(255,255,255,.23) 40%,transparent 60%);mix-blend-mode:screen}
.engine-shell{margin-top:100px;min-height:460px;display:grid;grid-template-columns:.78fr 1.22fr;gap:40px;align-items:center;padding:45px;border:1px solid rgba(255,255,255,.13);border-radius:28px;background:radial-gradient(circle at 70% 40%,rgba(255,202,0,.085),transparent 48%),#0b0e12;overflow:hidden}
.engine-kicker{font-size:13px;color:var(--yellow);letter-spacing:.14em;font-weight:600}.engine-copy h3{font-size:clamp(36px,4vw,62px);font-weight:500;line-height:1;margin:20px 0;letter-spacing:-.04em}.engine-copy>p:not(.engine-kicker){font-size:17px;line-height:1.65;color:rgba(255,255,255,.64)}
.engine-modules{display:flex;flex-wrap:wrap;gap:8px;margin-top:26px}.engine-modules span{border:1px solid rgba(255,202,0,.42);padding:8px 11px;border-radius:999px;color:var(--yellow);font-size:12px;letter-spacing:.12em}.engine-copy .engine-footnote{font-size:13px!important;color:rgba(255,255,255,.42)!important}
.engine-scene{height:400px;position:relative;display:grid;place-items:center;perspective:900px}.engine-scene::before{content:"";position:absolute;inset:4%;background:radial-gradient(circle,rgba(255,202,0,.1),transparent 64%);filter:blur(24px)}
.engine-stack{width:min(490px,90%);height:230px;position:relative;transform-style:preserve-3d;transform:rotateX(55deg) rotateZ(-28deg);animation:engineHover 7s ease-in-out infinite alternate}
.engine-plane{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:6px;border:1px solid rgba(255,202,0,.6);border-radius:18px;background:linear-gradient(135deg,rgba(255,202,0,.17),rgba(18,23,30,.94) 48%,rgba(5,8,13,.98));box-shadow:0 10px 30px rgba(0,0,0,.45),inset 0 0 25px rgba(255,202,0,.07);backface-visibility:visible;text-align:center}
.engine-plane span{align-self:flex-start;margin-left:22px;position:absolute;top:18px;color:var(--yellow);font-size:13px;letter-spacing:.15em}.engine-plane strong{font-size:clamp(18px,2.4vw,30px);letter-spacing:.13em;font-weight:600}.engine-plane small{font-size:12px;letter-spacing:.15em;color:rgba(255,255,255,.6)}
.engine-input{transform:translateZ(-70px);border-color:rgba(178,178,178,.5)}.engine-core{transform:translateZ(13px);border-color:var(--yellow);box-shadow:0 0 42px rgba(255,202,0,.2),0 14px 30px rgba(0,0,0,.7)}.engine-output{transform:translateZ(96px);background:linear-gradient(145deg,rgba(255,255,255,.23),rgba(5,16,30,.91) 65%);border-color:rgba(225,247,255,.75)}
.engine-scan{position:absolute;width:76%;height:1px;bottom:25px;background:linear-gradient(90deg,transparent,var(--yellow),transparent);opacity:.48}@keyframes engineHover{to{transform:translateY(-12px) rotateX(55deg) rotateZ(-28deg)}}
.portfolio-section{padding:130px 0;background:#f5f5f2;color:#111;scroll-margin-top:80px}.portfolio-intro{display:grid;grid-template-columns:1.3fr .7fr;gap:48px;align-items:end}.portfolio-index{display:block;margin-bottom:28px;color:#777;font-size:13px;letter-spacing:.17em}.portfolio-intro h2{font-weight:500;font-size:clamp(42px,6vw,86px);line-height:1;letter-spacing:-.05em;margin:0}.portfolio-intro>p{font-size:17px;line-height:1.7;color:#555;max-width:470px}.portfolio-controls{display:flex;gap:8px;flex-wrap:wrap;margin:58px 0 20px}.filter-button{border:1px solid #c7c7c4;background:transparent;border-radius:999px;padding:11px 17px;cursor:pointer;color:#272727;font:600 14px KoHo,system-ui,sans-serif}.filter-button.active,.filter-button:hover{background:#000;color:#fff;border-color:#000}
.product-explorer{display:grid;grid-template-columns:minmax(220px,.34fr) minmax(0,.66fr);min-height:535px;background:#fff;border:1px solid #dfdfdc;border-radius:24px;overflow:hidden}.product-list{max-height:650px;overflow-y:auto;border-right:1px solid #e4e4e0;padding:12px}.product-item{display:block;width:100%;text-align:left;padding:14px 16px;border:0;border-radius:11px;background:transparent;cursor:pointer;color:#111;font:600 15px KoHo,system-ui,sans-serif}.product-item span{display:block;font:400 12px KoHo,system-ui,sans-serif;color:#727272;margin-top:3px}.product-item:hover,.product-item.active{background:#111;color:#fff}.product-item.active span,.product-item:hover span{color:#bdbdbd}
.product-detail{padding:34px;display:grid;grid-template-columns:minmax(0,1fr) minmax(240px,.9fr);gap:30px;align-items:center}.product-visual{background:#101418;border-radius:20px;padding:24px;min-height:310px;display:grid;place-content:center}.product-visual img{width:100%;border-radius:20%;max-width:412px}.product-visual small{display:block;margin-top:20px;color:#9a9ea6;font-size:12px;letter-spacing:.08em}.product-info .product-type{font-size:12px;letter-spacing:.16em;color:#777}.product-info h3{font-size:clamp(30px,3.1vw,48px);line-height:1.04;letter-spacing:-.04em;margin:13px 0 10px;font-weight:600}.product-subtitle{font-size:18px;color:#555;margin:0 0 22px}.product-info dl{margin:0}.product-info dt{font-weight:700;font-size:12px;letter-spacing:.12em;margin:20px 0 5px}.product-info dd{margin:0;font-size:15px;line-height:1.55;color:#555}.product-modules{font-size:12px;letter-spacing:.1em;line-height:1.6;color:#775c00;margin-top:20px}
.astro-catalog{position:relative;z-index:3;padding-bottom:110px}.astro-catalog-heading{display:grid;grid-template-columns:1fr .6fr;gap:40px;align-items:end;border-top:1px solid rgba(255,255,255,.14);padding-top:55px}.astro-catalog-heading h3{font-size:clamp(34px,4vw,60px);font-weight:500;line-height:1.03;letter-spacing:-.04em;margin:10px 0 0}.astro-catalog-heading>p{font-size:16px;line-height:1.6;color:rgba(255,255,255,.6)}.astro-explorer{display:grid;grid-template-columns:250px 1fr;gap:20px;margin-top:38px}.astro-product-list{display:flex;flex-direction:column;gap:8px}.astro-product-list button{padding:16px 18px;text-align:left;border:1px solid rgba(255,255,255,.18);background:rgba(255,255,255,.045);color:#fff;border-radius:10px;font:600 15px KoHo,system-ui,sans-serif;letter-spacing:.1em;cursor:pointer}.astro-product-list button.active,.astro-product-list button:hover{background:#5f4bff;border-color:#9c90ff}.astro-product-detail{min-height:385px;display:grid;grid-template-columns:.85fr 1.15fr;gap:32px;align-items:center;border:1px solid rgba(255,255,255,.18);border-radius:22px;padding:30px;background:rgba(5,7,22,.62)}.astro-map{min-height:300px;display:grid;place-items:center;border-radius:18px;background:radial-gradient(circle at center,rgba(101,84,255,.25),rgba(12,17,42,.95) 65%);overflow:hidden}.astro-map svg{width:100%;max-width:340px;height:auto;filter:drop-shadow(0 12px 35px rgba(133,104,255,.35))}.astro-text .product-type{font-size:12px;letter-spacing:.14em;color:#a7a0ff}.astro-text h4{font-size:clamp(32px,3.5vw,56px);line-height:1;margin:12px 0;font-weight:500}.astro-text .product-subtitle{color:#c9c3ff}.astro-text p{font-size:16px;color:rgba(255,255,255,.72);line-height:1.6}.astro-tech{color:#bdb2ff!important;font-size:13px!important;letter-spacing:.06em}.astro-note{font-size:12px!important;color:rgba(255,255,255,.45)!important}
@media(max-width:1080px){.engine-shell,.portfolio-intro,.astro-catalog-heading{grid-template-columns:1fr}.engine-scene{min-height:410px}.product-detail{grid-template-columns:1fr}.product-visual{min-height:220px}.astro-explorer{grid-template-columns:190px 1fr}.astro-product-detail{grid-template-columns:1fr}}
@media(max-width:1050px){.menu-toggle{display:block}.main-nav{position:fixed;top:0;right:0;width:100%;height:100svh;padding:120px 28px 40px;background:rgba(0,0,0,.96);backdrop-filter:blur(18px);flex-direction:column;align-items:flex-start;gap:24px;font-size:22px;transform:translateX(100%);transition:transform .35s ease}.main-nav.open{transform:translateX(0)}.nav-cta{margin-top:12px}}
@media(max-width:760px){.brand-logo{width:143px}.main-nav{gap:22px}.engine-shell{margin-top:65px;padding:24px}.engine-scene{height:320px;min-height:320px}.engine-stack{height:170px;width:86%;transform:rotateX(56deg) rotateZ(-28deg)}.engine-plane strong{font-size:15px}.engine-plane small{font-size:9px}.engine-plane span{top:10px;margin-left:12px}.portfolio-section{padding:90px 0}.portfolio-controls{margin-top:38px;flex-wrap:nowrap;overflow-x:auto;padding-bottom:8px}.filter-button{flex:0 0 auto}.product-explorer{grid-template-columns:1fr}.product-list{max-height:none;display:flex;overflow-x:auto;border-right:0;border-bottom:1px solid #e4e4e0}.product-item{flex:0 0 170px}.product-detail{padding:18px;gap:20px}.astro-explorer{grid-template-columns:1fr}.astro-product-list{flex-direction:row;overflow-x:auto}.astro-product-list button{flex:0 0 auto}.astro-product-detail{padding:18px}.astro-map{min-height:225px}.astro-catalog{padding-bottom:75px}}
@media(prefers-reduced-motion:reduce){.engine-stack{animation:none!important}}


/* Actualización visual y técnica según las fuentes oficiales de marca. */
.lens-front .lens-map,.lens-back .lens-map{object-fit:cover;object-position:center;background:#101827}
.tech-card{overflow:hidden}.tech-media{height:200px;margin:25px -12px 20px;border-radius:18px;overflow:hidden;background:#0d101b;position:relative;display:grid;place-items:center}
.tech-media img{width:100%;height:100%;object-fit:cover}.tech-machine img{object-fit:contain;background:#12151a}.tech-person img{object-position:53% 45%}
.tech-media small{position:absolute;bottom:9px;left:10px;padding:5px 8px;border-radius:5px;background:rgba(0,0,0,.74);color:#fff;font-size:10px;letter-spacing:.09em}
.engine-shell{grid-template-columns:1fr 1fr}.engine-module-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:25px}
.engine-module-grid div{border-top:1px solid rgba(255,202,0,.35);padding-top:9px}.engine-module-grid strong{display:block;color:#ffca00;font-size:14px;letter-spacing:.11em}.engine-module-grid span{font-size:13px;line-height:1.45;color:#ccc;display:block;margin-top:5px}
.engine-scene.engine-ecosystem{height:460px;min-height:440px;perspective:900px;isolation:isolate}.engine-ecosystem:before{content:"";position:absolute;width:370px;height:370px;background:radial-gradient(circle,rgba(255,202,0,.14),transparent 65%);border-radius:50%}
.engine-orbit-ring{width:330px;height:330px;position:absolute;border:2px solid rgba(255,202,0,.45);border-radius:50%;transform:rotateX(58deg) rotateZ(-22deg);box-shadow:0 0 35px rgba(255,202,0,.18),inset 0 0 30px rgba(255,202,0,.1);animation:orbitFloat 7s ease-in-out infinite alternate}
.engine-orbit-ring:after{content:"";position:absolute;inset:45px;border:1px dashed rgba(255,202,0,.4);border-radius:50%}
.engine-hub{width:180px;height:180px;position:absolute;border-radius:50%;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;background:radial-gradient(circle at 37% 24%,#555044,#201a0f 50%,#090b10);border:2px solid #ffca00;box-shadow:0 0 40px rgba(255,202,0,.3),inset 0 0 25px rgba(255,202,0,.18);transform:rotateY(-17deg) rotateX(10deg);z-index:5}
.engine-hub small{font-size:13px;font-weight:700;letter-spacing:.09em;color:#fff}.engine-hub strong{font-size:23px;color:#fff;line-height:1.1}.engine-hub em{font-style:normal;color:#ffca00}
.engine-node{position:absolute;width:92px;min-height:66px;display:grid;place-items:center;border:1px solid rgba(255,202,0,.7);border-radius:12px;background:linear-gradient(145deg,#28241c,#0b0e14);color:#ffca00;font-size:13px;font-weight:700;letter-spacing:.1em;box-shadow:0 12px 20px rgba(0,0,0,.4),0 0 18px rgba(255,202,0,.12);transform:rotateY(-17deg) rotateX(10deg);z-index:8}
.engine-node-1{left:8%;top:12%}.engine-node-2{right:8%;top:12%}.engine-node-3{right:0;top:43%}.engine-node-4{right:10%;bottom:9%}.engine-node-5{left:10%;bottom:9%}.engine-node-6{left:0;top:43%}
@keyframes orbitFloat{to{transform:translateY(-9px) rotateX(58deg) rotateZ(18deg)}}
.engine-comparison{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:22px}.engine-comparison figure{margin:0;padding:20px;background:#0b1018;border:1px solid rgba(255,255,255,.12);border-radius:18px;text-align:center}.engine-comparison img{height:155px;width:155px;object-fit:cover;border-radius:50%;margin:auto}.engine-comparison figcaption{font-size:12px;letter-spacing:.08em;color:#bcbcbc;margin-top:12px}
.product-visual img{border-radius:12px;width:100%;max-width:420px;max-height:270px;object-fit:contain}.astro-map img{width:100%;height:310px;object-fit:contain}.astro-benefits{padding-left:20px;color:#cbc9e9;font-size:14px;line-height:1.5}.astro-benefits li+li{margin-top:6px}
.offices-section{background:#0a0a0a;color:#fff;padding:105px 0;scroll-margin-top:75px}.offices-section h2{font-size:clamp(42px,6vw,80px);font-weight:500;line-height:1;letter-spacing:-.04em;margin:0 0 45px}.offices-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.office-card{border:1px solid rgba(255,255,255,.18);border-top:3px solid #ffca00;border-radius:14px;padding:30px;background:#121212;min-height:260px}.office-card span{font-size:12px;letter-spacing:.14em;color:#ffca00}.office-card h3{font-size:clamp(24px,2.5vw,36px);font-weight:500;margin:28px 0}.office-card a{display:block;font-size:20px;margin:12px 0;color:#fff}.office-card a:hover{color:#ffca00}.office-card p{color:#aaa;margin:27px 0 5px}
@media(max-width:1080px){.engine-shell{grid-template-columns:1fr}.engine-ecosystem{order:-1}}
@media(max-width:760px){.tech-media{height:220px}.engine-comparison{grid-template-columns:1fr}.engine-comparison figure{display:flex;align-items:center;gap:20px;text-align:left}.engine-comparison img{height:94px;width:94px;margin:0}.engine-module-grid{grid-template-columns:1fr}.engine-scene.engine-ecosystem{height:380px;min-height:380px}.engine-orbit-ring{width:240px;height:240px}.engine-hub{width:134px;height:134px}.engine-hub strong{font-size:18px}.engine-node{width:69px;min-height:49px;font-size:10px}.engine-node-1{left:3%;top:9%}.engine-node-2{right:3%;top:9%}.engine-node-3{right:0;top:44%}.engine-node-4{right:5%;bottom:7%}.engine-node-5{left:5%;bottom:7%}.engine-node-6{left:0;top:44%}.offices-grid{grid-template-columns:1fr}.offices-section{padding:85px 0}}
@media(prefers-reduced-motion:reduce){.engine-orbit-ring{animation:none}}

/* Acabado visual premium: alta definición, órbitas 3D y fondos técnicos. */
.section-light,
.portfolio-section,
.ecosystem-section{
  background-color:#f2f2ee;
  background-image:
    radial-gradient(circle at 88% 8%,rgba(255,202,0,.22),transparent 24%),
    radial-gradient(circle at 7% 78%,rgba(178,178,178,.22),transparent 28%),
    linear-gradient(rgba(0,0,0,.025) 1px,transparent 1px),
    linear-gradient(90deg,rgba(0,0,0,.025) 1px,transparent 1px),
    linear-gradient(145deg,#fafaf7 0%,#efefeb 62%,#f8f8f5 100%);
  background-size:auto,auto,44px 44px,44px 44px,auto;
}
.section-light .container,
.portfolio-section .container,
.ecosystem-section .container{position:relative;z-index:1}
.solution-card,
.eco-step{background:linear-gradient(145deg,rgba(255,255,255,.92),rgba(242,242,236,.78));box-shadow:0 22px 55px rgba(25,25,20,.07);backdrop-filter:blur(10px)}
.product-explorer{background:rgba(255,255,255,.82);box-shadow:0 30px 80px rgba(20,20,16,.1);backdrop-filter:blur(14px)}

.engine-shell{overflow:hidden;background:radial-gradient(circle at 72% 45%,rgba(255,202,0,.12),transparent 36%),linear-gradient(145deg,rgba(21,24,31,.98),rgba(5,7,11,.98));box-shadow:inset 0 1px rgba(255,255,255,.08),0 35px 90px rgba(0,0,0,.32)}
.engine-scene.engine-ecosystem{height:520px;min-height:500px;overflow:visible;perspective:1100px}
.engine-scene.engine-ecosystem::before{inset:-8%;width:auto;height:auto;background:radial-gradient(circle,rgba(255,202,0,.12),transparent 58%);filter:blur(14px)}
.engine-universe{position:relative;width:min(560px,100%);aspect-ratio:1;transform-style:preserve-3d;perspective:1050px;isolation:isolate}
.engine-universe::before{content:"";position:absolute;inset:12%;border-radius:50%;background:radial-gradient(circle,rgba(255,202,0,.11),rgba(255,202,0,.025) 40%,transparent 67%);filter:blur(18px)}
.engine-star-cloud{position:absolute;inset:0;border-radius:50%;opacity:.85;background-image:radial-gradient(circle at 12% 31%,#fff 0 1px,transparent 1.4px),radial-gradient(circle at 72% 18%,rgba(255,202,0,.9) 0 1px,transparent 1.5px),radial-gradient(circle at 84% 69%,#fff 0 1px,transparent 1.4px),radial-gradient(circle at 31% 81%,rgba(255,255,255,.75) 0 1px,transparent 1.4px),radial-gradient(circle at 44% 13%,rgba(255,255,255,.58) 0 1px,transparent 1.4px);filter:drop-shadow(0 0 5px rgba(255,255,255,.65));animation:engineStars 10s ease-in-out infinite alternate}
.engine-orbit-path{position:absolute;left:50%;top:50%;border:1px solid rgba(255,202,0,.29);border-radius:50%;box-shadow:0 0 18px rgba(255,202,0,.055),inset 0 0 14px rgba(255,202,0,.035);transform-origin:center;pointer-events:none}
.engine-path-a{width:88%;height:39%;transform:translate(-50%,-50%) rotate(-10deg)}
.engine-path-b{width:77%;height:48%;border-style:dashed;border-color:rgba(174,219,255,.23);transform:translate(-50%,-50%) rotate(18deg)}
.engine-path-c{width:68%;height:57%;border-color:rgba(195,170,255,.19);transform:translate(-50%,-50%) rotate(-28deg)}
.engine-sun{position:absolute;left:50%;top:50%;z-index:8;width:180px;aspect-ratio:1;border-radius:50%;transform:translate(-50%,-50%) rotateX(-3deg);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;background:radial-gradient(circle at 32% 25%,#fffbe4 0 3%,#ffe98a 8%,#ffca00 29%,#9a6900 62%,#171105 82%);border:1px solid rgba(255,239,169,.9);box-shadow:0 0 22px rgba(255,202,0,.72),0 0 80px rgba(255,202,0,.30),0 0 150px rgba(255,202,0,.12),inset -20px -22px 45px rgba(36,21,0,.75);overflow:visible}
.engine-sun::before{content:"";position:absolute;inset:4%;border-radius:50%;background:repeating-radial-gradient(circle at 37% 31%,rgba(255,255,255,.18) 0 2px,transparent 3px 13px);mix-blend-mode:overlay;animation:engineSurface 16s linear infinite}
.engine-sun-glow{position:absolute;inset:-18%;border:1px solid rgba(255,202,0,.33);border-radius:50%;animation:enginePulse 3.4s ease-in-out infinite}
.engine-sun small,.engine-sun strong{position:relative;z-index:2;text-shadow:0 2px 12px rgba(0,0,0,.62)}
.engine-sun small{font-size:12px;color:#1b1400;font-weight:800;letter-spacing:.12em}
.engine-sun strong{font-size:23px;color:#070707;line-height:1.05;letter-spacing:-.02em}
.engine-sun em{font-style:normal;color:#fff}
.engine-planet{position:absolute;left:50%;top:50%;z-index:4;min-width:82px;display:flex;flex-direction:column;align-items:center;gap:6px;will-change:transform,opacity;transform-style:preserve-3d;pointer-events:none}
.engine-planet i{position:relative;display:block;width:47px;aspect-ratio:1;border-radius:50%;background:radial-gradient(circle at 31% 27%,#fff 0 5%,var(--planet) 18%,color-mix(in srgb,var(--planet),#05060a 58%) 68%,#030405 100%);box-shadow:0 7px 16px rgba(0,0,0,.5),0 0 19px color-mix(in srgb,var(--planet),transparent 57%),inset -8px -9px 13px rgba(0,0,0,.55)}
.engine-planet i::after{content:"";position:absolute;inset:18% 10%;border-top:1px solid rgba(255,255,255,.5);border-radius:50%;transform:rotate(-22deg)}
.engine-planet strong{padding:6px 9px;border:1px solid color-mix(in srgb,var(--planet),transparent 50%);border-radius:999px;background:rgba(4,6,10,.76);box-shadow:0 8px 18px rgba(0,0,0,.32);backdrop-filter:blur(8px);color:#fff;font-size:10px;line-height:1;letter-spacing:.12em}
@keyframes engineStars{to{opacity:.48;transform:scale(1.035) rotate(1deg)}}
@keyframes engineSurface{to{transform:rotate(360deg)}}
@keyframes enginePulse{0%,100%{transform:scale(.94);opacity:.38}50%{transform:scale(1.08);opacity:.82}}

.engine-comparison figure{position:relative;overflow:hidden;background:radial-gradient(circle at 50% 38%,rgba(43,61,111,.35),transparent 52%),linear-gradient(145deg,#111722,#05070b);box-shadow:inset 0 1px rgba(255,255,255,.07),0 18px 40px rgba(0,0,0,.25)}
.engine-comparison figure::after{content:"";position:absolute;inset:10px;border:1px solid rgba(255,255,255,.055);border-radius:12px;pointer-events:none}
.engine-comparison img{height:190px;width:190px;image-rendering:auto;filter:drop-shadow(0 16px 23px rgba(0,0,0,.38))}

.astro-section{background:radial-gradient(circle at 77% 37%,rgba(104,74,255,.38),transparent 21%),radial-gradient(circle at 73% 44%,rgba(25,42,105,.75),transparent 40%),radial-gradient(circle at 20% 90%,rgba(79,34,142,.26),transparent 32%),linear-gradient(135deg,#02030a 0%,#080a1b 48%,#03030b 100%)}
.astro-stars{opacity:.8;background-size:310px 270px,390px 330px,470px 420px,360px 390px,520px 480px;animation:astroStarsDrift 28s linear infinite}
.astro-visual{min-height:690px;--astro-rx:0deg;--astro-ry:0deg;perspective:1200px}
.astro-universe{position:relative;width:min(660px,100%);aspect-ratio:1;transform-style:preserve-3d;isolation:isolate}
.astro-nebula{position:absolute;inset:5%;border-radius:50%;background:conic-gradient(from 40deg,transparent,rgba(146,135,255,.18),transparent 32%,rgba(69,191,255,.1),transparent 61%,rgba(182,79,255,.13),transparent);filter:blur(31px);animation:astroNebula 18s linear infinite}
.astro-planet-shell{position:absolute;left:50%;top:50%;z-index:6;width:48%;aspect-ratio:1;transform:translate(-50%,-50%) rotateX(var(--astro-rx)) rotateY(var(--astro-ry));transition:transform .2s ease-out;transform-style:preserve-3d;filter:drop-shadow(0 35px 38px rgba(0,0,0,.58))}
.astro-planet{position:absolute;inset:0;border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;overflow:hidden;background:radial-gradient(circle at 34% 26%,#eef6ff 0 2%,#a6abff 7%,#6155e8 23%,#282561 51%,#0b102c 73%,#02040d 100%);box-shadow:0 0 36px rgba(146,135,255,.65),0 0 130px rgba(82,61,232,.34),inset -38px -28px 60px rgba(0,0,0,.72);animation:astroPlanetFloat 7s ease-in-out infinite}
.astro-planet::before{content:"";position:absolute;inset:-15%;border-radius:44%;background:repeating-linear-gradient(165deg,transparent 0 18px,rgba(183,202,255,.085) 21px,transparent 27px),radial-gradient(ellipse at 65% 60%,rgba(123,82,255,.25),transparent 42%);mix-blend-mode:screen;animation:astroSurface 20s linear infinite}
.astro-planet::after{content:"";position:absolute;inset:-10%;border-radius:50%;border:1px solid rgba(197,212,255,.55);box-shadow:inset 15px 10px 33px rgba(255,255,255,.12),0 0 25px rgba(137,120,255,.28)}
.astro-planet-light{position:absolute;left:18%;top:12%;width:22%;height:11%;border-radius:50%;background:rgba(255,255,255,.5);filter:blur(14px);transform:rotate(-28deg)}
.astro-planet small,.astro-planet strong{position:relative;z-index:3;text-shadow:0 3px 20px rgba(0,0,0,.8)}
.astro-planet small{font-size:10px;letter-spacing:.22em;color:rgba(255,255,255,.7)}
.astro-planet strong{font-size:clamp(38px,5vw,68px);line-height:1;color:#fff;letter-spacing:.13em}
.astro-orbit{position:absolute;left:50%;top:50%;z-index:4;border:1px solid rgba(190,201,255,.25);border-radius:50%;pointer-events:none}
.orbit-one{width:79%;height:33%;transform:translate(-50%,-50%) rotate(-18deg);box-shadow:0 0 22px rgba(135,118,255,.1)}
.orbit-two{width:92%;height:48%;border-color:rgba(128,190,255,.17);border-style:dashed;transform:translate(-50%,-50%) rotate(25deg);animation:astroOrbitPulse 8s ease-in-out infinite alternate}
.orbit-three{width:70%;height:62%;border-color:rgba(210,183,255,.18);transform:translate(-50%,-50%) rotate(-42deg)}
.astro-virtue{position:absolute;z-index:8;min-width:142px;padding:11px 14px 11px 31px;border:1px solid rgba(181,192,255,.24);border-radius:14px;background:linear-gradient(135deg,rgba(26,29,59,.78),rgba(7,9,24,.62));box-shadow:0 15px 38px rgba(0,0,0,.34),inset 0 1px rgba(255,255,255,.08);backdrop-filter:blur(15px);color:#fff}
.astro-virtue::before{content:"";position:absolute;left:13px;top:50%;width:8px;aspect-ratio:1;border-radius:50%;background:#9c8eff;box-shadow:0 0 13px #8d7cff;transform:translateY(-50%)}
.astro-virtue small{display:block;color:rgba(222,225,255,.56);font-size:8px;letter-spacing:.15em}
.astro-virtue strong{display:block;margin-top:4px;font-size:11px;letter-spacing:.11em}
.virtue-one{left:1%;top:24%;animation:virtueFloatA 6.5s ease-in-out infinite}
.virtue-two{right:0;top:19%;animation:virtueFloatB 7.2s ease-in-out -1.7s infinite}
.virtue-three{left:5%;bottom:21%;animation:virtueFloatB 7.8s ease-in-out -3s infinite}
.virtue-four{right:2%;bottom:17%;animation:virtueFloatA 6.9s ease-in-out -4.2s infinite}
@keyframes astroStarsDrift{to{background-position:140px 70px,-110px 90px,80px -130px,-70px -90px,120px 110px}}
@keyframes astroNebula{to{transform:rotate(360deg)}}
@keyframes astroSurface{to{transform:translateX(12%) rotate(360deg)}}
@keyframes astroPlanetFloat{0%,100%{transform:translateY(0) rotateZ(-1deg)}50%{transform:translateY(-12px) rotateZ(1deg)}}
@keyframes astroOrbitPulse{to{transform:translate(-50%,-50%) rotate(39deg) scale(1.03);opacity:.52}}
@keyframes virtueFloatA{0%,100%{transform:translate3d(0,0,20px)}50%{transform:translate3d(10px,-13px,55px)}}
@keyframes virtueFloatB{0%,100%{transform:translate3d(0,0,35px)}50%{transform:translate3d(-11px,11px,70px)}}

.astro-map{position:relative;min-height:390px;display:grid;place-items:center;perspective:1050px;isolation:isolate;overflow:hidden;background:radial-gradient(circle at 50% 50%,rgba(116,96,255,.20),transparent 47%),linear-gradient(145deg,rgba(17,20,45,.88),rgba(3,5,14,.94));border:1px solid rgba(166,174,255,.14);border-radius:24px}
.astro-map::before{content:"";position:absolute;width:72%;aspect-ratio:1;border-radius:50%;background:radial-gradient(circle,rgba(117,91,255,.16),transparent 67%);filter:blur(12px)}
.astro-map-ring{position:absolute;z-index:1;width:76%;height:32%;border:1px solid rgba(174,184,255,.18);border-radius:50%;pointer-events:none}
.astro-map-ring.ring-a{transform:rotate(-18deg)}
.astro-map-ring.ring-b{width:88%;height:41%;border-style:dashed;transform:rotate(27deg);animation:mapRingPulse 7s ease-in-out infinite alternate}
.astro-map img{position:relative;z-index:2;width:92%;height:340px;max-height:none;object-fit:contain;border-radius:18px;filter:drop-shadow(0 24px 25px rgba(0,0,0,.47));transform:rotateX(2deg) rotateY(-4deg) translateZ(22px);animation:astroMapFloat 6.5s ease-in-out infinite}
.astro-map-kids-eye img{width:91%;height:326px;object-fit:cover}
.astro-map-kids-eye- img{object-fit:contain}
@keyframes astroMapFloat{0%,100%{transform:rotateX(2deg) rotateY(-4deg) translate3d(0,0,22px)}50%{transform:rotateX(-1deg) rotateY(4deg) translate3d(0,-8px,34px)}}
@keyframes mapRingPulse{to{transform:rotate(40deg) scale(1.04);opacity:.48}}

@media(max-width:1080px){
  .engine-scene.engine-ecosystem{order:-1;height:500px;min-height:500px}
  .engine-universe{width:min(590px,96%)}
  .astro-universe{width:min(660px,94vw)}
}
@media(max-width:760px){
  .engine-scene.engine-ecosystem{height:410px;min-height:410px}
  .engine-universe{width:100%}
  .engine-sun{width:125px}
  .engine-sun small{font-size:9px}.engine-sun strong{font-size:17px}
  .engine-planet{min-width:60px;gap:4px}.engine-planet i{width:34px}.engine-planet strong{padding:5px 7px;font-size:8px}
  .engine-comparison img{height:106px;width:106px}
  .astro-visual{min-height:530px}
  .astro-planet-shell{width:48%}
  .astro-planet small{font-size:7px}.astro-planet strong{font-size:30px}
  .astro-virtue{min-width:110px;padding:9px 10px 9px 25px}.astro-virtue small{font-size:6px}.astro-virtue strong{font-size:8px}.astro-virtue::before{left:10px;width:6px}
  .virtue-one{left:0;top:22%}.virtue-two{right:0;top:16%}.virtue-three{left:1%;bottom:18%}.virtue-four{right:1%;bottom:14%}
  .astro-map{min-height:320px}.astro-map img{height:285px}.astro-map-kids-eye img{height:270px}
}
@media(prefers-reduced-motion:reduce){
  .engine-star-cloud,.engine-sun::before,.engine-sun-glow,.astro-stars,.astro-nebula,.astro-planet,.orbit-two,.astro-virtue,.astro-map-ring,.astro-map img{animation:none!important}
  .astro-planet-shell{transform:translate(-50%,-50%)}
}


/* Production performance */
#tecnologia,
#soluciones,
#emporium,
#astro,
.ecosystem-section,
#contacto,
#oficinas {
  content-visibility: auto;
  contain-intrinsic-size: auto 900px;
}

/* Refinamiento visual v2: profundidad de marca y nuevas visuales ópticas. */
.lens-front .lens-map,
.lens-back .lens-map{
  object-fit:contain;
  padding:5%;
  background:radial-gradient(circle at 48% 46%,rgba(73,180,219,.14),transparent 55%);
  filter:contrast(1.06) saturate(1.08) drop-shadow(0 24px 24px rgba(0,0,0,.42));
}
.lens-face{background:radial-gradient(circle at 35% 24%,rgba(210,242,255,.21),rgba(8,21,33,.72) 55%,rgba(2,7,12,.94) 78%)}
.tech-digital img{object-fit:cover;filter:saturate(1.07) contrast(1.04)}

#emporio.section-light,
#soluciones.section-light{
  position:relative;
  isolation:isolate;
  overflow:hidden;
}
#emporio.section-light{
  background:
    radial-gradient(ellipse at 91% 23%,rgba(255,202,0,.25),transparent 26%),
    radial-gradient(ellipse at 8% 78%,rgba(128,157,168,.18),transparent 31%),
    linear-gradient(118deg,rgba(255,255,255,.96),rgba(237,240,238,.90) 54%,rgba(250,248,236,.95));
}
#emporio.section-light::before{
  content:"";
  position:absolute;
  width:760px;
  height:390px;
  right:-230px;
  top:18%;
  border:1px solid rgba(20,30,35,.11);
  border-radius:50%;
  transform:rotate(-22deg);
  box-shadow:0 0 0 42px rgba(255,255,255,.22),0 0 0 43px rgba(20,30,35,.055),0 0 0 102px rgba(255,255,255,.13),0 0 0 103px rgba(20,30,35,.035);
  pointer-events:none;
}
#emporio.section-light::after{
  content:"EMPORIO  ·  PRECISIÓN  ·  FREE FORM";
  position:absolute;
  right:4vw;
  bottom:34px;
  color:rgba(15,22,25,.16);
  font-size:10px;
  font-weight:700;
  letter-spacing:.26em;
}

#soluciones.section-light{
  background:
    radial-gradient(circle at 9% 12%,rgba(255,202,0,.30),transparent 18%),
    radial-gradient(circle at 88% 82%,rgba(118,145,153,.19),transparent 25%),
    linear-gradient(150deg,#f8f8f5 0%,#e8eceb 52%,#faf9f1 100%);
}
#soluciones.section-light::before{
  content:"";
  position:absolute;
  inset:0;
  opacity:.55;
  background-image:linear-gradient(rgba(20,29,32,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(20,29,32,.045) 1px,transparent 1px);
  background-size:68px 68px;
  -webkit-mask-image:linear-gradient(120deg,#000,transparent 72%);
  mask-image:linear-gradient(120deg,#000,transparent 72%);
  pointer-events:none;
}
#soluciones.section-light::after{
  content:"";
  position:absolute;
  left:-12%;
  bottom:-235px;
  width:68%;
  height:370px;
  border:74px solid rgba(255,202,0,.12);
  border-radius:50%;
  transform:rotate(9deg);
  pointer-events:none;
}
#soluciones .solution-card{
  border-color:rgba(30,38,40,.10);
  background:linear-gradient(145deg,rgba(255,255,255,.92),rgba(246,246,240,.67));
  box-shadow:0 24px 65px rgba(31,39,39,.09),inset 0 1px rgba(255,255,255,.92);
}

.portfolio-section{
  position:relative;
  isolation:isolate;
  overflow:hidden;
  color:#fff;
  background:
    radial-gradient(circle at 82% 14%,rgba(255,202,0,.24),transparent 21%),
    radial-gradient(circle at 12% 82%,rgba(255,202,0,.09),transparent 26%),
    linear-gradient(135deg,#171816 0%,#070807 53%,#11120f 100%);
}
.portfolio-section::before{
  content:"";
  position:absolute;
  inset:-18%;
  background:repeating-radial-gradient(ellipse at 76% 42%,transparent 0 55px,rgba(255,202,0,.105) 56px 57px,transparent 58px 92px);
  transform:rotate(-13deg);
  pointer-events:none;
}
.portfolio-section::after{
  content:"";
  position:absolute;
  inset:0;
  opacity:.24;
  background-image:linear-gradient(rgba(255,255,255,.04) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.04) 1px,transparent 1px);
  background-size:54px 54px;
  pointer-events:none;
}
.portfolio-section .portfolio-index{color:#ffca00}
.portfolio-section .eyebrow-dark{color:rgba(255,255,255,.58)}
.portfolio-section .portfolio-intro>p{color:rgba(255,255,255,.67)}
.portfolio-section .filter-button{border-color:rgba(255,255,255,.24);color:#fff;background:rgba(255,255,255,.035);backdrop-filter:blur(8px)}
.portfolio-section .filter-button.active,
.portfolio-section .filter-button:hover{background:#ffca00;border-color:#ffca00;color:#090909}
.portfolio-section .product-explorer{position:relative;z-index:2;background:rgba(250,250,247,.96);color:#111;box-shadow:0 35px 95px rgba(0,0,0,.46),0 0 0 1px rgba(255,202,0,.13)}

.engine-comparison figure{isolation:isolate}
.engine-comparison img{
  position:relative;
  z-index:1;
  transform:scale(1.14);
  clip-path:circle(43% at 50% 52%);
  border:0;
  background:#0b1018;
}
.engine-comparison figcaption{position:relative;z-index:3}

.astro-map-kids-eye-{
  background:radial-gradient(circle at 50% 43%,rgba(58,208,255,.20),transparent 36%),linear-gradient(145deg,#151943,#050713 72%);
}
.astro-map-kids-eye- img{width:96%;height:350px;object-fit:cover;object-position:center;border-radius:20px}
.astro-map-kids-eye-::after{
  content:"ZONA ÓPTICA CENTRAL  ·  DESENFOQUE PERIFÉRICO";
  position:absolute;
  z-index:4;
  left:50%;
  bottom:18px;
  transform:translateX(-50%);
  width:max-content;
  max-width:82%;
  padding:8px 12px;
  border:1px solid rgba(117,225,255,.28);
  border-radius:999px;
  background:rgba(3,6,19,.74);
  color:#e5faff;
  font-size:9px;
  font-weight:700;
  letter-spacing:.11em;
  text-align:center;
  backdrop-filter:blur(10px);
}

@media(max-width:760px){
  #emporio.section-light::before{right:-510px;opacity:.68}
  #soluciones.section-light::after{left:-35%;width:120%}
  .portfolio-section::before{inset:-4% -80%}
  .engine-comparison img{transform:scale(1.1)}
  .astro-map-kids-eye- img{height:285px}
  .astro-map-kids-eye-::after{bottom:13px;font-size:8px;line-height:1.3}
}

/* Refinamiento v3: volumen óptico, Engine protagonista y catálogo limpio. */
.optic-lens{animation-duration:20s}
.lens-front{transform:translateZ(22px)}
.lens-back{transform:rotateY(180deg) translateZ(22px)}
.lens-depth{position:absolute;inset:1.2%;border-radius:50%;border:2px solid rgba(205,241,255,.24);background:radial-gradient(circle at 38% 29%,rgba(205,241,255,.055),rgba(14,46,61,.10) 58%,rgba(1,8,13,.28) 78%);box-shadow:inset 0 0 22px rgba(187,232,255,.08),0 0 12px rgba(84,198,237,.08);backface-visibility:visible;pointer-events:none}
.lens-depth-1{transform:translateZ(-15px)}.lens-depth-2{transform:translateZ(-8px)}.lens-depth-3{transform:translateZ(0)}.lens-depth-4{transform:translateZ(8px)}.lens-depth-5{transform:translateZ(15px)}
.lens-face{box-shadow:inset 0 0 34px rgba(255,255,255,.20),inset -26px -21px 58px rgba(3,13,22,.56),0 0 20px rgba(185,232,255,.18)}
.lens-front::after,.lens-back::before{content:"";position:absolute;inset:2.5%;border-radius:50%;border:5px solid rgba(193,235,250,.12);box-shadow:inset 9px 0 15px rgba(255,255,255,.11),inset -12px 0 20px rgba(0,8,16,.35);pointer-events:none}

.engine-shell-featured{min-height:670px;margin-top:76px;padding:56px;grid-template-columns:minmax(330px,.82fr) minmax(520px,1.18fr);align-items:center;border-color:rgba(255,202,0,.20);background:radial-gradient(circle at 73% 48%,rgba(255,202,0,.17),transparent 35%),linear-gradient(145deg,#171a20,#05070b 72%)}
.engine-shell-featured .engine-copy h3{font-size:clamp(40px,5.2vw,76px);line-height:.94}
.engine-shell-featured .engine-copy>p:not(.engine-kicker){font-size:17px;line-height:1.72;max-width:580px}
.engine-shell-featured .engine-scene.engine-ecosystem{height:600px;min-height:600px}
.engine-shell-featured .engine-universe{width:min(660px,100%)}
.engine-shell-featured .engine-sun{width:210px}.engine-shell-featured .engine-sun strong{font-size:28px}.engine-shell-featured .engine-planet i{width:55px}

.product-visual{position:relative;isolation:isolate;overflow:hidden;min-height:390px;background:radial-gradient(circle at 50% 46%,rgba(61,102,134,.27),transparent 39%),linear-gradient(145deg,#141a20,#06080b)}
.product-visual::before,.product-visual::after{content:"";position:absolute;left:50%;top:50%;border:1px solid rgba(255,202,0,.18);border-radius:50%;transform:translate(-50%,-50%) rotate(-18deg);pointer-events:none}
.product-visual::before{width:86%;height:38%}.product-visual::after{width:72%;height:72%;border-color:rgba(188,226,244,.12);transform:translate(-50%,-50%) rotate(27deg)}
.product-visual img{position:relative;z-index:2;width:min(330px,88%);height:min(330px,28vw);min-height:280px;aspect-ratio:1;max-width:none;max-height:none;border-radius:50%;object-fit:cover;object-position:center;background:#d9deea;box-shadow:0 24px 52px rgba(0,0,0,.52),0 0 0 1px rgba(208,239,255,.22),0 0 45px rgba(67,163,210,.13)}

.astro-brand-logo,.astro-catalog-logo{display:block;object-fit:cover;object-position:center;mix-blend-mode:screen;filter:drop-shadow(0 0 18px rgba(132,117,255,.28));-webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)}
.astro-brand-logo{width:min(390px,82%);height:auto;margin:0 0 25px -5px}.astro-catalog-logo{width:245px;height:106px;margin:0 0 18px -18px}

@media(max-width:1080px){.engine-shell-featured{grid-template-columns:1fr;padding:42px;min-height:0}.engine-shell-featured .engine-scene.engine-ecosystem{height:560px;min-height:560px;order:0}.product-visual img{height:330px}}
@media(max-width:760px){.lens-front{transform:translateZ(16px)}.lens-back{transform:rotateY(180deg) translateZ(16px)}.lens-depth-1{transform:translateZ(-11px)}.lens-depth-2{transform:translateZ(-5px)}.lens-depth-4{transform:translateZ(5px)}.lens-depth-5{transform:translateZ(11px)}.engine-shell-featured{margin-top:52px;padding:25px 18px}.engine-shell-featured .engine-copy h3{font-size:42px}.engine-shell-featured .engine-scene.engine-ecosystem{height:430px;min-height:430px}.engine-shell-featured .engine-sun{width:140px}.engine-shell-featured .engine-sun strong{font-size:18px}.product-visual{min-height:310px}.product-visual img{width:250px;height:250px;min-height:250px}.astro-brand-logo{width:300px;margin-bottom:18px}.astro-catalog-logo{width:210px;height:92px;margin-left:-13px}}

.astro-planet-wordmark{position:relative;z-index:3;width:68%;height:auto;object-fit:contain;filter:drop-shadow(0 4px 18px rgba(0,0,0,.72)) drop-shadow(0 0 10px rgba(255,255,255,.16))}

/* Aviso de preapertura · Emporio Venezuela */
.launch-modal{position:fixed;inset:0;z-index:9999;display:grid;place-items:center;padding:24px;opacity:1;visibility:visible;transition:opacity .25s ease,visibility .25s ease}
.launch-modal.is-closed{opacity:0;visibility:hidden;pointer-events:none}
.launch-backdrop{position:absolute;inset:0;background:rgba(0,0,0,.82);backdrop-filter:blur(16px)}
.launch-panel{position:relative;width:min(680px,100%);padding:clamp(30px,6vw,58px);border:1px solid rgba(255,202,0,.35);border-radius:28px;background:radial-gradient(circle at 82% 0,rgba(255,202,0,.18),transparent 34%),#111;color:#fff;box-shadow:0 34px 110px rgba(0,0,0,.66)}
.launch-panel::before{content:"";position:absolute;left:clamp(30px,6vw,58px);right:clamp(30px,6vw,58px);top:0;height:3px;background:linear-gradient(90deg,#ffca00,transparent)}
.launch-logo{display:block;width:min(260px,68%);height:auto;margin-bottom:30px}
.launch-kicker{margin:0 0 10px;color:#ffca00;font-size:.78rem;font-weight:800;letter-spacing:.16em}
.launch-panel h2{max-width:560px;margin:0;font-size:clamp(2.2rem,7vw,4.7rem);line-height:.94;letter-spacing:-.045em}
.launch-panel>p:not(.launch-kicker){max-width:540px;margin:24px 0 0;color:#c4c4c4;font-size:1.05rem;line-height:1.65}
.launch-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:32px}
.launch-close{position:absolute;right:18px;top:16px;width:44px;height:44px;border:1px solid #454545;border-radius:50%;background:#1a1a1a;color:#fff;font-size:1.8rem;line-height:1;cursor:pointer}
.launch-close:hover,.launch-close:focus-visible{border-color:#ffca00;color:#ffca00}
body.launch-open{overflow:hidden}
@media(max-width:620px){.launch-modal{padding:14px}.launch-panel{padding:34px 24px}.launch-panel::before{left:24px;right:24px}.launch-actions{display:grid}.launch-actions .btn{width:100%;text-align:center}.launch-close{right:12px;top:10px}}

/* Red nacional de ópticas · captación de preapertura */
.network-section{position:relative;padding:clamp(90px,11vw,150px) 0;background:radial-gradient(circle at 8% 12%,rgba(255,202,0,.10),transparent 31rem),linear-gradient(180deg,#080808,#111);border-top:1px solid #252525;border-bottom:1px solid #252525;overflow:hidden;color:#fff;scroll-margin-top:96px}
.network-section::after{content:"VENEZUELA";position:absolute;right:-.05em;bottom:-.18em;color:rgba(255,255,255,.025);font-size:clamp(6rem,18vw,17rem);font-weight:800;letter-spacing:-.07em;pointer-events:none}
.network-grid{position:relative;z-index:1;display:grid;grid-template-columns:minmax(0,1fr) minmax(380px,.82fr);gap:clamp(45px,8vw,120px);align-items:center}
.network-copy h2{max-width:760px;margin:18px 0 24px;font-size:clamp(2.6rem,6vw,5.8rem);line-height:.96;letter-spacing:-.055em;color:#fff;-webkit-text-fill-color:#fff}
.network-copy>p:not(.eyebrow){max-width:680px;color:#aaa;font-size:1.1rem;line-height:1.75}
.network-points{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;margin-top:38px;border:1px solid #343434;background:#343434}
.network-points span{min-height:108px;padding:18px;background:#101010;color:#d3d3d3;display:flex;flex-direction:column;justify-content:space-between;gap:20px;font-size:.92rem}
.network-points strong{color:#ffca00;font-size:.76rem;letter-spacing:.14em}
.network-form{padding:clamp(25px,4vw,42px);border:1px solid rgba(255,202,0,.35);border-radius:24px;background:linear-gradient(145deg,rgba(255,202,0,.07),transparent 35%),rgba(18,18,18,.96);box-shadow:0 28px 80px rgba(0,0,0,.38)}
.form-heading{display:flex;flex-direction:column;gap:8px;margin-bottom:28px;padding-bottom:22px;border-bottom:1px solid #373737}
.form-heading span{color:#ffca00;font-size:.74rem;font-weight:800;letter-spacing:.16em}
.form-heading strong{font-size:1.55rem;color:#fff;-webkit-text-fill-color:#fff}
.network-form label{display:block;margin:17px 0 8px;font-weight:700;color:#f2f2f2}
.network-form input{width:100%;min-height:54px;padding:0 15px;border:1px solid #4b4b4b;border-radius:10px;background:#111;color:#fff;font:inherit;outline:none}
.network-form input:focus{border-color:#ffca00;box-shadow:0 0 0 3px rgba(255,202,0,.12)}
.network-form-row{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.network-form .btn{width:100%;margin-top:24px;border:0}
.network-form-note{margin:14px 0 0;color:#797979;font-size:.78rem;line-height:1.5}
@media(max-width:920px){.network-grid{grid-template-columns:1fr}.network-points{max-width:680px}.network-form{max-width:680px}}
@media(max-width:620px){.network-section{padding:82px 0}.network-points{grid-template-columns:1fr}.network-points span{min-height:76px;flex-direction:row;align-items:center}.network-form-row{grid-template-columns:1fr}.network-copy h2{font-size:clamp(2.5rem,13vw,4rem)}}

/* Ecosistema digital · EMPORIUM HUB + EMPORIO OS */
.platforms-section{position:relative;overflow:hidden;background:radial-gradient(circle at 12% 8%,rgba(255,202,0,.11),transparent 29%),radial-gradient(circle at 88% 86%,rgba(65,87,117,.18),transparent 31%),#050505;border-top:1px solid #232323;border-bottom:1px solid #232323;scroll-margin-top:96px}
.platforms-section::before{content:"";position:absolute;inset:0;pointer-events:none;opacity:.16;background-image:linear-gradient(rgba(255,255,255,.10) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.10) 1px,transparent 1px);background-size:64px 64px;mask-image:linear-gradient(to bottom,transparent,#000 18%,#000 82%,transparent)}
.platforms-heading{position:relative;max-width:880px;margin-bottom:48px}
.platforms-heading h2{color:#fff;-webkit-text-fill-color:#fff}
.platforms-heading>p:last-child{max-width:720px;color:#a8a8a8;font-size:18px;line-height:1.75}
.platform-grid{position:relative;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}
.platform-card{position:relative;display:flex;min-height:620px;flex-direction:column;padding:40px;overflow:hidden;border:1px solid #393939;border-radius:28px;background:linear-gradient(145deg,rgba(24,24,24,.96),rgba(8,8,8,.98));box-shadow:0 30px 80px rgba(0,0,0,.34),inset 0 1px 0 rgba(255,255,255,.04)}
.platform-card::after{content:"";position:absolute;inset:auto -20% -45% 28%;height:70%;border-radius:50%;background:rgba(255,255,255,.035);filter:blur(2px);pointer-events:none}
.platform-card-client{border-color:rgba(255,202,0,.52);background:linear-gradient(145deg,rgba(40,34,8,.72),rgba(10,10,10,.98) 54%)}
.platform-card-internal{background:linear-gradient(145deg,rgba(22,27,34,.94),rgba(8,8,8,.99) 58%)}
.platform-card-top{position:relative;z-index:1;display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:52px}
.platform-index{color:#858585;font-size:11px;font-weight:700;letter-spacing:.18em}
.platform-status{display:inline-flex;align-items:center;gap:8px;padding:8px 11px;border:1px solid #404040;border-radius:999px;color:#9e9e9e;font-size:10px;font-weight:700;letter-spacing:.11em;text-transform:uppercase}
.platform-status i{width:7px;height:7px;border-radius:50%;background:#7b7b7b;box-shadow:0 0 0 4px rgba(123,123,123,.10)}
.platform-status-live{color:#e3cf69;border-color:rgba(255,202,0,.35);background:rgba(255,202,0,.05)}
.platform-status-live i{background:#ffca00;box-shadow:0 0 0 4px rgba(255,202,0,.13),0 0 14px rgba(255,202,0,.55)}
.platform-lockup{position:relative;z-index:1;display:flex;align-items:center;gap:14px;margin-bottom:24px}
.platform-lockup strong{color:#fff;font-size:31px;font-style:italic;letter-spacing:-.04em}
.platform-lockup span{display:inline-flex;align-items:center;height:31px;padding:0 11px;border:1px solid #ffca00;border-radius:8px;color:#ffca00;font-size:11px;font-weight:900;letter-spacing:.17em}
.platform-card h3{position:relative;z-index:1;max-width:520px;margin:0 0 16px;color:#fff;font-size:31px;line-height:1.12;letter-spacing:-.035em}
.platform-card>p{position:relative;z-index:1;max-width:560px;margin:0;color:#aaa;font-size:15px;line-height:1.7}
.platform-features{position:relative;z-index:1;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0;margin:32px 0 38px;padding:0;border-top:1px solid #333;list-style:none}
.platform-features li{position:relative;padding:17px 12px 17px 22px;border-bottom:1px solid #2a2a2a;color:#d7d7d7;font-size:12px;line-height:1.4}
.platform-features li::before{content:"";position:absolute;top:22px;left:2px;width:7px;height:7px;border:1px solid #ffca00;transform:rotate(45deg)}
.platform-actions{position:relative;z-index:1;display:flex;flex-direction:column;align-items:flex-start;gap:13px;margin-top:auto}
.platform-actions .btn{width:100%;text-align:center}
.platform-actions small{color:#747474;font-size:11px;line-height:1.45}
.platform-private-button[disabled]{cursor:not-allowed;opacity:.72;color:#bababa;border-color:#3d3d3d;background:rgba(255,255,255,.02)}
.platform-private-button{color:#fff;border-color:#4a4a4a;background:rgba(255,255,255,.03)}
@media(max-width:900px){.platform-grid{grid-template-columns:1fr}.platform-card{min-height:auto}}
@media(max-width:600px){.platforms-heading{margin-bottom:30px}.platforms-heading>p:last-child{font-size:15px}.platform-card{padding:27px 22px;border-radius:22px}.platform-card-top{align-items:flex-start;flex-direction:column;margin-bottom:36px}.platform-lockup strong{font-size:27px}.platform-card h3{font-size:27px}.platform-features{grid-template-columns:1fr;margin:26px 0 30px}.platform-actions .btn{padding-left:16px;padding-right:16px;font-size:12px}}

/* Accesos visibles al ecosistema desde el inicio */
.ecosystem-access{position:relative;padding:28px 0;background:#0b0b0b;border-top:1px solid #242424;border-bottom:1px solid #242424;color:#fff}
.ecosystem-access-inner{display:grid;grid-template-columns:minmax(230px,.65fr) minmax(0,1.35fr);gap:28px;align-items:center}
.ecosystem-access-copy span{display:block;margin-bottom:7px;color:#ffca00;font-size:.72rem;font-weight:800;letter-spacing:.17em}
.ecosystem-access-copy strong{font-size:clamp(1.15rem,2vw,1.55rem);line-height:1.2}
.ecosystem-access-links{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.ecosystem-access-link{display:grid;grid-template-columns:1fr auto;grid-template-rows:auto auto;align-items:center;min-height:86px;padding:16px 18px;border:1px solid #3b3b3b;border-radius:16px;background:#111;color:#fff;text-decoration:none;transition:transform .2s ease,border-color .2s ease,background .2s ease}
.ecosystem-access-link:hover,.ecosystem-access-link:focus-visible{transform:translateY(-2px);border-color:#ffca00;background:#151505}
.ecosystem-access-link small{color:#8d8d8d;font-size:.64rem;font-weight:800;letter-spacing:.13em}
.ecosystem-access-link b{font-size:1rem;letter-spacing:.02em}
.ecosystem-access-link i{grid-column:2;grid-row:1/3;color:#ffca00;font-size:1.25rem;font-style:normal}
.ecosystem-access-hub{border-color:rgba(255,202,0,.42)}
@media(max-width:760px){.ecosystem-access{padding:22px 0}.ecosystem-access-inner{grid-template-columns:1fr;gap:16px}.ecosystem-access-links{grid-template-columns:1fr}.ecosystem-access-link{min-height:76px}}

.hero-apps-caption{margin:14px 0 0;color:#b2b2b2;font-size:12px;line-height:1.6;letter-spacing:.08em}
