/* Portada fluida: todos los acabados quedan limitados al hero. */
.hero--fluid {
  background: radial-gradient(ellipse at 77% 47%, #083653 0%, transparent 45%),
    radial-gradient(ellipse at 48% 100%, #07304d80, transparent 52%),
    linear-gradient(115deg, #020c18, #03182b 70%, #06233b);
}
.hero--fluid .hero-grid-lines { opacity: .045; mask-image: radial-gradient(ellipse at 75% 45%, #000, transparent 65%); }
.hero--fluid .hero-identity-stage { height: auto; min-height: 0; }
.hero--fluid .hero-visual-shell {
  width: min(650px, 100%); min-height: 0; aspect-ratio: 1; transform: none;
  border: 0 !important; background: transparent !important;
}
.hero--fluid .hero-visual-shell::after {
  display: block; inset: 8%; width: auto; height: auto; border: 0;
  background: radial-gradient(circle 120px at var(--energy-x,50%) var(--energy-y,50%), #8ee9ff22, transparent 75%) !important;
  opacity: 0; filter: blur(12px);
}
.hero--fluid .hero-visual-shell.has-science-motion:hover::after { opacity: 1; }
.hero--fluid .hero-visual-shell:not(:hover)::after { opacity: 0; }
.hero--fluid .hero-code-globe {
  width: 100%; filter: drop-shadow(0 0 22px #209eff24);
  animation: code-globe-drift 30s ease-in-out infinite alternate;
}
.hero--fluid .code-globe-core { stroke: #77dbff65; stroke-width: .85; fill-opacity: .65; }
.hero--fluid .code-globe-grid { stroke: #97e1ff26; stroke-width: .65; }
.hero--fluid .code-globe-land { fill: url(#asc-land-dots); stroke: #81d9fa32; stroke-width: .65; }
.hero--fluid .code-globe-routes { stroke: #87e8ff8c; stroke-width: 1; stroke-dasharray: 2 12; }
.hero--fluid .code-globe-nodes circle { stroke-width: 1.5; }
.hero--fluid .hero-visual-glow {
  position: absolute; inset: 15%; width: auto; height: auto; border-radius: 50%;
  transform: none; opacity: .65; filter: blur(25px);
  background: radial-gradient(circle, #29bbff40, #178dce15 45%, transparent 70%) !important;
  animation: asc-fluid-breathe 7s ease-in-out infinite alternate;
}
.hero--fluid .hero-visual-rings {
  inset: 7%; border-radius: 50%; border: 1px solid #71cffa18;
  background: none; transform: rotate(-22deg) scaleY(.86); box-shadow: none;
}
.hero--fluid .hero-tech-orbit {
  inset: 4%; border: 1px solid #88ddff25; border-radius: 50%;
  transform: rotate(-28deg) scaleY(.63); box-shadow: none;
  animation: none;
}
.hero--fluid .hero-tech-orbit::before { inset: -8%; border: 1px solid #88ddff0f; }
.hero--fluid .hero-tech-orbit::after { inset: 8%; border: 0; }
.hero--fluid .hero-tech-scan { display: none; }
.hero--fluid .hero-orbit-trail {
  position: absolute; inset: 9%; z-index: 3; border-radius: 50%; pointer-events: none;
  background: conic-gradient(from 15deg, transparent 0deg 270deg, #7de5ff05 295deg, #7de5ffb3 330deg, transparent 333deg);
  mask-image: radial-gradient(circle, transparent 69.2%, #000 69.5% 69.9%, transparent 70.2%);
  animation: asc-fluid-orbit 24s linear infinite;
}
.hero--fluid .hero-orbit-trail::after {
  content: ''; position: absolute; width: 7px; height: 7px; border-radius: 50%;
  left: 50%; top: 0; background: #bcefff; box-shadow: 0 0 18px #51d4ff;
}
.hero--fluid .hero-tech-particles { inset: 5%; opacity: .65; animation: hero-particles 9s ease-in-out infinite alternate; }
.hero--fluid .hero-identity-logo {
  left: 50%; top: 48%; width: 43% !important;
  filter: drop-shadow(0 0 14px #8be3ff80) drop-shadow(0 16px 25px #000b) !important;
}
.hero--fluid .hero-country {
  display: flex; width: auto; height: auto; min-width: 0; gap: 10px; padding: 9px 17px 9px 9px;
  border: 0; border-radius: 50px;
  background: linear-gradient(100deg, #0b304ce6, #08243bb8 60%, #08243b00);
  box-shadow: none; backdrop-filter: blur(8px);
  animation: hero-country-float 8s ease-in-out infinite;
}
.hero--fluid .hero-country img {
  width: 30px; height: 30px; border-radius: 50%; object-fit: cover;
  box-shadow: 0 0 0 4px #8cddff09, 0 0 0 1px #b3e9ff33;
}
.hero--fluid .hero-country-cn img { object-position: left center; }
.hero--fluid .hero-country > span { display: grid; gap: 5px; }
.hero--fluid .hero-country strong { font: 500 .82rem/1.1 Outfit, sans-serif; }
.hero--fluid .hero-country small { font: 400 .57rem/1.2 Outfit, sans-serif; letter-spacing: .055em; text-transform: none; color: #9abecf; }
.hero--fluid .hero-country-pe { left: 3%; top: 56%; animation-delay: -1s; }
.hero--fluid .hero-country-ca { left: 11%; top: 17%; animation-delay: -3s; }
.hero--fluid .hero-country-es { left: auto; right: 0; top: 23%; animation-delay: -5s; }
.hero--fluid .hero-country-cn { left: auto; right: -1%; top: 61%; animation-delay: -2s; }
.hero--fluid .hero-country-br { left: 38%; top: auto; bottom: 11%; animation-delay: -6s; }
.hero--fluid .hero-network-caption {
  position: absolute; bottom: 0; left: 0; right: 0; display: flex; align-items: center; justify-content: center;
  gap: 8px; color: #b6d5e2; font: 400 .68rem/1.4 Outfit, sans-serif; letter-spacing: .03em;
}
.hero--fluid .hero-network-caption i { width: 5px; height: 5px; border-radius: 50%; background: #70e3e7; box-shadow: 0 0 9px #70e3e788; }
.hero--fluid .hero-network-caption > span { margin-left: 6px; padding-left: 14px; border-left: 1px solid #9edaff33; color: #688fa7; font-size: .48rem; letter-spacing: .12em; }
@keyframes asc-fluid-breathe { to { opacity: .9; transform: scale(1.09); } }
@keyframes asc-fluid-orbit { to { transform: rotate(360deg); } }
@media (min-width: 1001px) {
  .hero--fluid .hero-grid { grid-template-columns: 1fr 1fr; min-height: 660px; align-items: center; }
  .hero--fluid .hero-copy { padding: 78px 0 65px; }
}
@media (max-width: 1000px) {
  .hero--fluid .hero-visual-shell { width: min(590px, 100%); min-height: 0; }
}
@media (max-width: 760px) {
  .hero--fluid .hero-identity-stage { margin-top: 18px; margin-bottom: 25px; height: auto; }
  .hero--fluid .hero-visual-shell { width: min(490px, 100%); aspect-ratio: 1; }
  .hero--fluid .hero-country { padding: 6px 10px 6px 6px; gap: 7px; }
  .hero--fluid .hero-country img { width: 25px; height: 25px; }
  .hero--fluid .hero-country strong { font-size: .72rem; }
  .hero--fluid .hero-country small { font-size: .5rem; }
  .hero--fluid .hero-country-pe { left: 0; }
  .hero--fluid .hero-country-ca { left: 5%; top: 15%; }
  .hero--fluid .hero-country-es { right: 0; top: 22%; }
  .hero--fluid .hero-country-cn { right: 0; }
  .hero--fluid .hero-country-br { left: 37%; bottom: 10%; }
  .hero--fluid .hero-network-caption { font-size: .6rem; }
  .hero--fluid .hero-network-caption > span { font-size: .42rem; padding-left: 9px; }
}
@media (prefers-reduced-motion: reduce) {
  .hero--fluid *, .hero--fluid *::before, .hero--fluid *::after { animation: none !important; transition: none !important; }
  .hero--fluid .hero-visual-shell::after { display: none; }
}