/* Autoalojado desde @fontsource (Archivo Variable + JetBrains Mono).
   Solo lo usa tools/build-dist.ps1; con `npm run build` Vite genera el CSS
   equivalente a partir de los imports de src/main.js. No editar a mano. */
@font-face{font-family:Archivo Variable;font-style:normal;font-display:swap;font-weight:100 900;font-stretch:62% 125%;src:url(/assets/fonts/archivo-vietnamese-wdth-normal-rJmnGBSt.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Archivo Variable;font-style:normal;font-display:swap;font-weight:100 900;font-stretch:62% 125%;src:url(/assets/fonts/archivo-latin-ext-wdth-normal-7khWdh9v.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Archivo Variable;font-style:normal;font-display:swap;font-weight:100 900;font-stretch:62% 125%;src:url(/assets/fonts/archivo-latin-wdth-normal-DY7AcnAa.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:400;src:url(data:font/woff2;base64,d09GMgABAAAAAASIABAAAAAACQQAAAQuAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGhwbHhwoBmA/U1RBVF4AdBEICoRkhAALIAABNgIkAzoEIAWFAAeBFAwHG2oHKJ6DceNW4lJEFHn9tEOE37LNsvkjHr7f739rn3u+OSrSxLQytE91Dw2PYtNVq3Qaw/vJ7fUBMdOj/u2ImB98cT5WUx9F13ZKt06mU7tG1sAYcM26yCRX4f/0904bmwq8hwkUUMTRX61pa9C3xlpAGYw1vOu8C2SBZZFlld7DAW82RJWmwYMI1AJCKBNCIASqdZGFmtPSNQRhMpR0EKjWTwm6z6sJ+4jqhxjovTinVdRpZaQjaQzAYjI8NgAKDJCokgunCn9oUQE8VZd/F//+v6P4F1U9gLr58yNI/dJX9BAshEoJbTDogz7ocKoUsPvES8UK/aQIUQgpGgECBVLkOEV6iASTYgNAPKdNXayhDPL7IJuAZnEYSZ0eOLc9i5Rv5/+lEi3sW/kfnCf/+fTe0sxS7CKLx5erRJkKOixEqQaoqrvx5HN4iz4VhX0gS6DjFIWUzn/fIXJRVFY1NFRVNVeFt+SYmrK6vCU6eJsnKnJj5HTESMTQZOTI3Y/tzr3rUcOsiRy/ciP50s3Mycgxmhz9GMXhjzVH30ut796NHP0UUa31/Zoa6vCH6iPvdIM0IRANaT60FablmZlZd+UKNFy9NrvnFGxb5NC2CRxR0/rIyF/WNn+35sv9r+tHVhkseuWGKkCPPh96+GXt8Lc/Sh24ujfjf+tNw1lZWreiPuHb/PSpyjdv2rf/++ZE5TSKjFdZxYsBvr1sEHl5STuHZqYR7jGYGvGBBdjcaB5bODY1GAxMjsd0wDMIzXAXODRd74DxNMtO4YuYHclgLQRzp9KlUmxptCwv9bYgvWGD2xBW7r9413fdJu+mxzvzAUYeeONQvZP4kgfqZle4jhH/MWh+UbxgtJdrLdXLymNL53PRU0D3Q6FcXTfGqGcul6vrqhgLGAVSv+IVIfZOHpu+mlLqSlnj903j8mazXDsba/wbxhS/4Oubh1c5/uXDgt4j5KtnGEy5BIJHo0ur+jD+r2qCkuP1aRVM8EpUoRYSJyqNRA38uwDvHBNo0AejO2Z+ZYLLal1QiFyFh1EDQOgSCSCpjwwKU8yDbIjroEwne0G5Qca49cYp4AlqtQNZfWTQoFb1tRpFYAmRD+HXTkV4uQhG2bg4OKmyoypAsUGtWgQXyFxYrkpODeUxvGqIZA61erXo0sFG1UBGuPgpuon8RNUG2DhovAjZCBuZwtXrU3mQGki9+pm0eVZAXoWxLWTQoYHBPrJR4WunNxIFbCHfkTyPK+sqxjxDmGArZvf79JGJ3GwEqjwc7a7NIrl/7bJ7Nzu4+n1Ow6shEPnUrtVo7cnd5Wi5qCUbBIQbNKCP95FMCSZylEV5VCiiMqqiOmrKZ/I/C0gI1fyuulVcM2E1r4MhtcV/fbCD+HwEvVzH1dGNAzFE0FTbKzyQz3gootrNbN2a4PuG0j0JOgE=) format("woff2"),url(data:font/woff;base64,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) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/fonts/jetbrains-mono-cyrillic-400-normal-BEIGL1Tu.woff2) format("woff2"),url(/assets/fonts/jetbrains-mono-cyrillic-400-normal-ugxPyKxw.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/fonts/jetbrains-mono-greek-400-normal-C190GLew.woff2) format("woff2"),url(/assets/fonts/jetbrains-mono-greek-400-normal-B9oWc5Lo.woff) format("woff");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:400;src:url(data:font/woff2;base64,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) format("woff2"),url(/assets/fonts/jetbrains-mono-vietnamese-400-normal-CqNFfHCs.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/fonts/jetbrains-mono-latin-ext-400-normal-Bc8Ftmh3.woff2) format("woff2"),url(/assets/fonts/jetbrains-mono-latin-ext-400-normal-fXTG6kC5.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/fonts/jetbrains-mono-latin-400-normal-V6pRDFza.woff2) format("woff2"),url(/assets/fonts/jetbrains-mono-latin-400-normal-6-qcROiO.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
/* ===== tokens.css ===== */
:root {
  /* Superficies */
  --bg: #05070a;
  --bg-alt: #070a0f;
  --surface: rgba(255, 255, 255, 0.022);
  --surface-hover: rgba(255, 255, 255, 0.045);
  --line: rgba(255, 255, 255, 0.075);
  --line-strong: rgba(255, 255, 255, 0.16);

  /* Texto */
  --text: #e9eff6;
  --text-dim: #93a2b2;
  --text-faint: #5c6a79;

  /* Acentos de marca */
  --cyan: #4ee8ff;
  --cyan-deep: #12b8d8;
  --lime: #c9ff4d;

  /* Tipografía */
  --font-sans: 'Archivo Variable', system-ui, -apple-system, 'Segoe UI', sans-serif;
  --font-mono: 'JetBrains Mono', ui-monospace, 'SFMono-Regular', 'Consolas', monospace;
  --wide: 112%;
  --wider: 125%;

  /* Medidas */
  --max: 1220px;
  --gutter: clamp(1.25rem, 4vw, 3rem);
  --radius: 4px;
  --ease: cubic-bezier(0.22, 1, 0.36, 1);
}

/* ===== base.css ===== */
*,
*::before,
*::after { box-sizing: border-box; }

* { margin: 0; padding: 0; }

html {
  scroll-padding-top: 6rem;
  -webkit-text-size-adjust: 100%;
}

/* La activa main.js tras el primer frame (ver comentario allí). */
html.smooth { scroll-behavior: smooth; }

body {
  background: var(--bg);
  color: var(--text);
  font-family: var(--font-sans);
  font-size: clamp(0.95rem, 0.9rem + 0.2vw, 1.0625rem);
  font-weight: 300;
  line-height: 1.65;
  letter-spacing: 0.005em;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  overflow-x: hidden;
}

body.is-locked { overflow: hidden; }

/* Viñeteado sutil sobre todo el sitio. */
body::after {
  content: '';
  position: fixed;
  inset: 0;
  z-index: 100;
  pointer-events: none;
  background: radial-gradient(ellipse at 50% 0%, transparent 55%, rgba(0, 0, 0, 0.45) 100%);
  mix-blend-mode: multiply;
}

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

a {
  color: inherit;
  text-decoration: none;
  transition: color 0.25s var(--ease);
}

button,
input,
select,
textarea { font: inherit; color: inherit; }

button { background: none; border: none; cursor: pointer; }

ul,
ol { list-style: none; }

::selection { background: var(--cyan); color: #04070a; }

:focus-visible {
  outline: 2px solid var(--cyan);
  outline-offset: 3px;
  border-radius: 2px;
}

/* ── Tipografía ─────────────────────────────────────────────── */
h1,
h2 {
  font-weight: 600;
  font-stretch: var(--wide);
  line-height: 1.02;
  letter-spacing: -0.025em;
  text-wrap: balance;
}

h3,
h4 {
  font-weight: 500;
  line-height: 1.2;
  letter-spacing: -0.015em;
  text-wrap: balance;
}

.mono {
  font-family: var(--font-mono);
  font-size: 0.6875rem;
  font-weight: 400;
  letter-spacing: 0.18em;
  text-transform: uppercase;
}

/* Rótulo de sección. Va con .mono pero lo sobreescribe: más cuerpo, más peso y
   menos tracking que el resto de textos monoespaciados, porque a 11px y 0.18em
   costaba leerlo. El tope de 0.9375rem lo mantiene por debajo del texto que
   encabeza incluso en su contexto más ajustado (.pilar__text, 1.0625rem). */
.label {
  color: var(--cyan);
  margin-bottom: 1.5rem;
  font-size: clamp(0.8125rem, 0.76rem + 0.24vw, 0.9375rem);
  font-weight: 500;
  letter-spacing: 0.14em;
}

.lead {
  font-size: clamp(1.0625rem, 1rem + 0.4vw, 1.25rem);
  color: var(--text-dim);
  line-height: 1.7;
  max-width: 54ch;
}

.accent { color: var(--lime); }

/* Sólo para lectores de pantalla (p. ej. el nombre real del logotipo tipográfico). */
.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  overflow: hidden;
  clip: rect(0 0 0 0);
  clip-path: inset(50%);
  white-space: nowrap;
  border: 0;
}

.skip-link {
  position: absolute;
  top: -100px;
  left: 1rem;
  z-index: 200;
  padding: 0.75rem 1.25rem;
  background: var(--cyan);
  color: #04070a;
  font-family: var(--font-mono);
  font-size: 0.75rem;
  transition: top 0.2s var(--ease);
}

.skip-link:focus { top: 1rem; }

/* ── Barra de progreso de lectura ───────────────────────────── */
.progress {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 90;
  height: 1px;
  background: transparent;
}

.progress span {
  display: block;
  height: 100%;
  width: 0;
  background: linear-gradient(90deg, var(--cyan-deep), var(--cyan));
  box-shadow: 0 0 10px rgba(78, 232, 255, 0.6);
  transition: width 0.1s linear;
}

/* ── Animación de entrada ───────────────────────────────────── */
/* Sólo se oculta si hay JS: sin él el contenido debe verse siempre. */
.js .reveal {
  opacity: 0;
  transform: translateY(24px);
  transition: opacity 0.85s var(--ease), transform 0.85s var(--ease);
  transition-delay: calc(var(--reveal-delay, 0) * 90ms);
}

.js .reveal.is-visible {
  opacity: 1;
  transform: none;
}

@media (prefers-reduced-motion: reduce) {
  html.smooth { scroll-behavior: auto; }

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

  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
}

/* ===== layout.css ===== */
.container {
  width: 100%;
  max-width: var(--max);
  margin-inline: auto;
  padding-inline: var(--gutter);
}

/* ── Header ─────────────────────────────────────────────────── */
.header {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 80;
  border-bottom: 1px solid transparent;
  transition: background 0.35s var(--ease), border-color 0.35s var(--ease);
}

.header.is-stuck {
  background: rgba(5, 7, 10, 0.72);
  backdrop-filter: blur(14px) saturate(140%);
  -webkit-backdrop-filter: blur(14px) saturate(140%);
  border-bottom-color: var(--line);
}

.header__inner {
  max-width: var(--max);
  margin-inline: auto;
  padding: 1.1rem var(--gutter);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 2rem;
}

.logo {
  display: inline-flex;
  align-items: center;
  flex-shrink: 0;
}

.logo__img {
  height: 36px;
  width: auto;
  transition: opacity 0.25s var(--ease);
}

.logo:hover .logo__img { opacity: 0.85; }

@media (min-width: 900px) {
  .logo__img { height: 42px; }
}

/* ── Navegación de escritorio ───────────────────────────────── */
.nav { display: none; }

@media (min-width: 900px) {
  .nav { display: block; }
}

.nav__list {
  display: flex;
  gap: 2.25rem;
}

.nav__list a {
  position: relative;
  font-size: 0.875rem;
  font-weight: 400;
  color: var(--text-dim);
  padding-block: 0.25rem;
}

.nav__list a::after {
  content: '';
  position: absolute;
  left: 0;
  bottom: 0;
  width: 0;
  height: 1px;
  background: var(--cyan);
  transition: width 0.35s var(--ease);
}

.nav__list a:hover,
.nav__list a.is-active { color: var(--text); }

.nav__list a:hover::after,
.nav__list a.is-active::after { width: 100%; }

.header__actions {
  display: flex;
  align-items: center;
  gap: 1rem;
}

.header__actions .btn--sm { display: none; }

@media (min-width: 900px) {
  .header__actions .btn--sm { display: inline-flex; }
}

/* ── Botón de menú ──────────────────────────────────────────── */
.burger {
  display: inline-flex;
  align-items: center;
  gap: 0.6rem;
  padding: 0.4rem 0;
  color: var(--text-dim);
  transition: color 0.25s var(--ease);
}

.burger:hover { color: var(--text); }

@media (min-width: 900px) {
  .burger { display: none; }
}

.burger__label {
  font-family: var(--font-mono);
  font-size: 0.6875rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
}

.burger__lines {
  display: grid;
  gap: 5px;
  width: 20px;
}

.burger__lines i {
  height: 1px;
  background: currentColor;
  transition: transform 0.35s var(--ease), opacity 0.25s var(--ease);
}

.burger[aria-expanded='true'] .burger__lines i:first-child {
  transform: translateY(3px) rotate(45deg);
}

.burger[aria-expanded='true'] .burger__lines i:last-child {
  transform: translateY(-3px) rotate(-45deg);
}

/* ── Menú móvil ─────────────────────────────────────────────── */
.menu {
  position: fixed;
  inset: 0;
  z-index: 79;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 6rem var(--gutter) 3rem;
  background: rgba(5, 7, 10, 0.97);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  opacity: 0;
  transition: opacity 0.35s var(--ease);
}

.menu[hidden] { display: none; }
.menu.is-open { opacity: 1; }

.menu__nav {
  display: grid;
  gap: 0.25rem;
}

.menu__nav a {
  display: flex;
  align-items: baseline;
  gap: 1rem;
  padding: 1rem 0;
  border-bottom: 1px solid var(--line);
  font-size: clamp(1.5rem, 7vw, 2.25rem);
  font-weight: 400;
  letter-spacing: -0.02em;
  transition: color 0.25s var(--ease), padding-left 0.35s var(--ease);
}

.menu__nav a:hover {
  color: var(--cyan);
  padding-left: 0.5rem;
}

.menu__idx {
  font-family: var(--font-mono);
  font-size: 0.6875rem;
  color: var(--text-faint);
  letter-spacing: 0.1em;
}

.menu__foot {
  margin-top: 2.5rem;
  color: var(--text-faint);
}

/* ── Secciones ──────────────────────────────────────────────── */
.section {
  position: relative;
  padding-block: clamp(5rem, 11vw, 9rem);
  border-top: 1px solid var(--line);
}

.section--alt { background: var(--bg-alt); }

.section__head { margin-bottom: clamp(3rem, 6vw, 4.5rem); }

.section__title { font-size: clamp(2rem, 1.3rem + 3.4vw, 3.5rem); }

.section__note {
  color: var(--text-dim);
  max-width: 46ch;
  font-size: 0.9375rem;
}

.section__head--split {
  display: grid;
  gap: 2rem;
  align-items: end;
}

@media (min-width: 900px) {
  .section__head--split {
    grid-template-columns: 1.15fr 1fr;
    gap: 4rem;
  }

  .section__head--split .section__note { padding-bottom: 0.5rem; }
}

/* ── Footer ─────────────────────────────────────────────────── */
.footer {
  border-top: 1px solid var(--line);
  padding-block: clamp(3rem, 6vw, 4.5rem);
}

.footer__inner {
  display: grid;
  gap: 2.5rem;
}

@media (min-width: 900px) {
  .footer__inner {
    grid-template-columns: 1fr auto;
    align-items: start;
    gap: 3rem;
  }
}

.footer__logo {
  height: 72px;
  width: auto;
  margin-bottom: 1.1rem;
}

.footer__brand p { color: var(--text-faint); }

.footer__nav {
  display: flex;
  flex-wrap: wrap;
  gap: 1.5rem;
}

.footer__nav a {
  font-size: 0.875rem;
  color: var(--text-dim);
}

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

.footer__meta {
  grid-column: 1 / -1;
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: 1rem;
  padding-top: 2rem;
  border-top: 1px solid var(--line);
  color: var(--text-faint);
}

.footer__meta a:hover { color: var(--cyan); }

/* ===== components.css ===== */
/* ── Botones ────────────────────────────────────────────────── */
.btn {
  --btn-fg: var(--text);
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  gap: 1.75rem;
  padding: 0.95rem 1.4rem;
  border: 1px solid var(--line-strong);
  border-radius: var(--radius);
  color: var(--btn-fg);
  font-size: 0.875rem;
  font-weight: 500;
  letter-spacing: 0.01em;
  overflow: hidden;
  transition: border-color 0.3s var(--ease), color 0.3s var(--ease),
    background 0.3s var(--ease), transform 0.3s var(--ease);
}

.btn__icon {
  font-size: 0.9375rem;
  transition: transform 0.35s var(--ease);
}

.btn:hover { transform: translateY(-2px); }
.btn:hover .btn__icon { transform: translate(3px, -1px); }

.btn--primary {
  background: var(--cyan);
  border-color: var(--cyan);
  color: #04070a;
}

.btn--primary:hover {
  background: #7cf0ff;
  border-color: #7cf0ff;
  box-shadow: 0 8px 30px -12px rgba(78, 232, 255, 0.7);
}

.btn--ghost {
  background: transparent;
  border-color: var(--line-strong);
}

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

.btn--sm {
  padding: 0.6rem 1rem;
  gap: 0.9rem;
  font-size: 0.8125rem;
}

.btn--block {
  width: 100%;
  justify-content: space-between;
}

/* ── Tarjetas ───────────────────────────────────────────────── */
/* El gap de 1px sobre el fondo --line dibuja las separaciones sin bordes dobles. */
.cards {
  display: grid;
  gap: 1px;
  background: var(--line);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  overflow: hidden;
}

@media (min-width: 780px) {
  .cards { grid-template-columns: repeat(3, 1fr); }
}

.card {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 1rem;
  padding: clamp(1.75rem, 3vw, 2.5rem);
  background: var(--bg-alt);
  transition: background 0.4s var(--ease);
}

.card::before {
  content: '';
  position: absolute;
  inset-inline: 0;
  top: 0;
  height: 1px;
  background: var(--cyan);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 0.5s var(--ease);
}

.card:hover { background: var(--surface-hover); }
.card:hover::before { transform: scaleX(1); }

.card__head {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  padding-bottom: 1.75rem;
  color: var(--cyan);
}

.card__head::after {
  content: '';
  flex: 1;
  height: 1px;
  background: var(--line);
}

.card__title {
  font-size: clamp(1.125rem, 1rem + 0.5vw, 1.375rem);
  line-height: 1.25;
}

.card__text {
  color: var(--text-dim);
  font-size: 0.9375rem;
  flex: 1;
}

.tags {
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem;
  margin-top: 0.75rem;
}

.tags li {
  padding: 0.35rem 0.65rem;
  border: 1px solid var(--line);
  border-radius: 2px;
  color: var(--text-faint);
  font-size: 0.625rem;
  transition: border-color 0.3s var(--ease), color 0.3s var(--ease);
}

.card:hover .tags li {
  border-color: var(--line-strong);
  color: var(--text-dim);
}

/* ── Misión y visión ────────────────────────────────────────── */
.pilares {
  display: grid;
  gap: 1.5rem;
  align-content: start;
}

.pilar {
  padding: 1.5rem 1.75rem;
  border-left: 1px solid var(--cyan);
  background: linear-gradient(90deg, rgba(78, 232, 255, 0.05), transparent 70%);
}

.pilar__text {
  font-size: 1.0625rem;
  font-weight: 400;
  letter-spacing: -0.01em;
  line-height: 1.6;
}

.pilar .label { margin-bottom: 1rem; }

.pilar--vision {
  border-left-color: var(--lime);
  background: linear-gradient(90deg, rgba(201, 255, 77, 0.05), transparent 70%);
}

.pilar--vision .label { color: var(--lime); }

/* ── Frentes de trabajo ─────────────────────────────────────── */
.frentes {
  display: grid;
  gap: 1px;
  margin-top: clamp(3rem, 6vw, 4.5rem);
  background: var(--line);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  overflow: hidden;
}

@media (min-width: 640px) {
  .frentes { grid-template-columns: repeat(2, 1fr); }
}

@media (min-width: 1000px) {
  .frentes { grid-template-columns: repeat(3, 1fr); }
}

.frente {
  display: flex;
  align-items: baseline;
  gap: 1rem;
  padding: 1.5rem 1.4rem;
  background: var(--bg);
  transition: background 0.4s var(--ease);
}

.frente:hover { background: var(--surface-hover); }

.frente__idx {
  color: var(--text-faint);
  transition: color 0.3s var(--ease);
}

.frente:hover .frente__idx { color: var(--cyan); }

.frente__name {
  font-size: 1rem;
  font-weight: 400;
  color: var(--text-dim);
  transition: color 0.3s var(--ease);
}

.frente:hover .frente__name { color: var(--text); }

/* ── Banda de llamada a la acción ───────────────────────────── */
.cta-band {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 1.75rem;
  margin-top: clamp(3rem, 5vw, 4rem);
  padding: clamp(1.75rem, 4vw, 2.75rem);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: linear-gradient(120deg, rgba(78, 232, 255, 0.06), transparent 55%), var(--surface);
}

.cta-band p {
  font-size: clamp(1.125rem, 1rem + 0.8vw, 1.625rem);
  font-weight: 500;
  font-stretch: var(--wide);
  letter-spacing: -0.02em;
  max-width: 24ch;
}

/* ── Formulario ─────────────────────────────────────────────── */
.form {
  display: grid;
  gap: 1.25rem;
  padding: clamp(1.5rem, 3vw, 2.25rem);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: var(--surface);
}

/* Honeypot de Netlify: fuera de pantalla, nunca visible para personas. */
.form__hp {
  position: absolute;
  left: -9999px;
}

.form__row {
  display: grid;
  gap: 1.25rem;
}

@media (min-width: 560px) {
  .form__row { grid-template-columns: 1fr 1fr; }
}

.field {
  display: grid;
  gap: 0.5rem;
}

.field label { color: var(--text-faint); }

.field input,
.field select,
.field textarea {
  width: 100%;
  padding: 0.8rem 0.9rem;
  border: 1px solid var(--line);
  border-radius: 2px;
  background: rgba(0, 0, 0, 0.25);
  font-size: 0.9375rem;
  font-weight: 300;
  transition: border-color 0.25s var(--ease), background 0.25s var(--ease);
}

.field textarea {
  resize: vertical;
  min-height: 7rem;
}

/* Flecha del select dibujada con gradientes: evita depender de una imagen. */
.field select {
  appearance: none;
  background-image:
    linear-gradient(45deg, transparent 50%, var(--text-dim) 50%),
    linear-gradient(135deg, var(--text-dim) 50%, transparent 50%);
  background-position: calc(100% - 18px) 52%, calc(100% - 13px) 52%;
  background-size: 5px 5px, 5px 5px;
  background-repeat: no-repeat;
  cursor: pointer;
}

.field select option {
  background: var(--bg-alt);
  color: var(--text);
}

.field input::placeholder,
.field textarea::placeholder { color: var(--text-faint); }

.field input:hover,
.field select:hover,
.field textarea:hover { border-color: var(--line-strong); }

.field input:focus,
.field select:focus,
.field textarea:focus {
  outline: none;
  border-color: var(--cyan);
  background: rgba(78, 232, 255, 0.04);
}

.form__status {
  min-height: 1.2rem;
  font-family: var(--font-mono);
  font-size: 0.6875rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--text-faint);
}

.form__status.is-ok { color: var(--lime); }
.form__status.is-error { color: #ff7a7a; }

/* ===== sections.css ===== */
/* ── Hero ───────────────────────────────────────────────────── */
.hero {
  position: relative;
  min-height: 100svh;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding-block: 9rem 3rem;
  overflow: hidden;
  isolation: isolate;
}

/* Retícula de fondo, desvanecida hacia los bordes con una máscara radial. */
.hero::before {
  content: '';
  position: absolute;
  inset: 0;
  z-index: -2;
  background-image:
    linear-gradient(var(--line) 1px, transparent 1px),
    linear-gradient(90deg, var(--line) 1px, transparent 1px);
  background-size: 84px 84px;
  mask-image: radial-gradient(ellipse 90% 70% at 50% 45%, #000 20%, transparent 78%);
  -webkit-mask-image: radial-gradient(ellipse 90% 70% at 50% 45%, #000 20%, transparent 78%);
  opacity: 0.7;
}

.hero__radar {
  position: absolute;
  z-index: -1;
  top: 50%;
  right: -14%;
  translate: 0 -50%;
  width: min(760px, 88vw);
  aspect-ratio: 1;
  opacity: 0.5;
}

@media (min-width: 1000px) {
  .hero__radar {
    right: -6%;
    opacity: 0.72;
  }
}

.hero__glow {
  position: absolute;
  z-index: -2;
  top: 45%;
  right: 5%;
  width: 40rem;
  height: 40rem;
  translate: 0 -50%;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(18, 184, 216, 0.13), transparent 62%);
  filter: blur(30px);
  pointer-events: none;
}

.hero__inner {
  flex: 1;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 0.65rem;
  font-family: var(--font-mono);
  font-size: 0.6875rem;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--cyan);
  margin-bottom: 2rem;
}

.eyebrow__dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--cyan);
  box-shadow: 0 0 rgba(78, 232, 255, 0.6);
  animation: pulse 2.6s infinite;
}

@keyframes pulse {
  0% { box-shadow: 0 0 rgba(78, 232, 255, 0.55); }
  70% { box-shadow: 0 0 0 9px rgba(78, 232, 255, 0); }
  100% { box-shadow: 0 0 rgba(78, 232, 255, 0); }
}

.hero__title {
  font-size: clamp(2.2rem, 1rem + 5.2vw, 4.75rem);
  letter-spacing: -0.032em;
  max-width: 18ch;
}

.hero__lead {
  margin-top: 1.75rem;
  max-width: 44ch;
  color: var(--text-dim);
  font-size: clamp(1rem, 0.95rem + 0.35vw, 1.1875rem);
}

.hero__cta {
  display: flex;
  flex-wrap: wrap;
  gap: 0.85rem;
  margin-top: 2.75rem;
}

.hero__tag {
  position: absolute;
  left: var(--gutter);
  bottom: 1.5rem;
  color: var(--text-faint);
  font-size: 0.625rem;
  letter-spacing: 0.28em;
}

@media (max-width: 899px) {
  .hero__tag { display: none; }
}

.quicklinks {
  display: grid;
  gap: 1px;
  margin-top: clamp(3rem, 7vw, 5rem);
  background: var(--line);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  overflow: hidden;
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
}

@media (min-width: 780px) {
  .quicklinks { grid-template-columns: repeat(3, 1fr); }
}

.quicklinks a {
  display: flex;
  align-items: center;
  gap: 1rem;
  padding: 1.25rem 1.4rem;
  background: rgba(7, 10, 15, 0.72);
  color: var(--text-dim);
  transition: background 0.35s var(--ease), color 0.35s var(--ease);
}

.quicklinks a:hover {
  background: var(--surface-hover);
  color: var(--text);
}

.quicklinks__name {
  flex: 1;
  font-size: 0.9375rem;
}

.quicklinks__arrow {
  color: var(--text-faint);
  transition: transform 0.35s var(--ease), color 0.35s var(--ease);
}

.quicklinks a:hover .quicklinks__arrow {
  color: var(--lime);
  transform: translate(3px, -3px);
}

/* ── Misión ─────────────────────────────────────────────────── */
.mision {
  display: grid;
  gap: 2.5rem;
}

@media (min-width: 900px) {
  .mision {
    grid-template-columns: 1.4fr 1fr;
    gap: 4rem;
  }
}

.mision__text {
  display: grid;
  gap: 1.5rem;
  align-content: start;
}

.mision__body {
  color: var(--text-dim);
  max-width: 58ch;
}

/* ── Pasos (impacto) ────────────────────────────────────────── */
.steps {
  display: grid;
  gap: 1px;
  background: var(--line);
  border-block: 1px solid var(--line);
}

@media (min-width: 700px) {
  .steps { grid-template-columns: repeat(2, 1fr); }
}

@media (min-width: 1040px) {
  .steps { grid-template-columns: repeat(4, 1fr); }
}

.step {
  display: grid;
  align-content: start;
  gap: 0.75rem;
  padding: clamp(1.75rem, 3vw, 2.25rem) clamp(1.25rem, 2.5vw, 1.75rem);
  background: var(--bg);
  transition: background 0.4s var(--ease);
}

.step:hover { background: var(--surface); }

.step__idx {
  color: var(--text-faint);
  transition: color 0.3s var(--ease);
}

.step:hover .step__idx { color: var(--lime); }

.step__title {
  font-size: 1.25rem;
  font-weight: 400;
}

.step p {
  color: var(--text-dim);
  font-size: 0.9375rem;
}

/* ── Visitas técnicas ───────────────────────────────────────── */
.visitas {
  display: grid;
  gap: 3rem;
}

@media (min-width: 900px) {
  .visitas {
    grid-template-columns: 1fr 1fr;
    gap: 5rem;
    align-items: center;
  }
}

.visitas__intro .label { margin-bottom: 1.5rem; }
.visitas__intro .section__note { margin-block: 1.75rem 2.25rem; }

.timeline {
  display: grid;
  border-left: 1px solid var(--line);
}

.timeline li {
  position: relative;
  display: flex;
  align-items: baseline;
  gap: 1.25rem;
  padding: 1.4rem 0 1.4rem 2rem;
  font-size: 1.0625rem;
  font-weight: 300;
  color: var(--text-dim);
  transition: color 0.3s var(--ease), padding-left 0.4s var(--ease);
}

.timeline li::before {
  content: '';
  position: absolute;
  left: -4px;
  top: 2rem;
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--bg-alt);
  border: 1px solid var(--line-strong);
  transition: background 0.3s var(--ease), border-color 0.3s var(--ease);
}

.timeline li:hover {
  color: var(--text);
  padding-left: 2.4rem;
}

.timeline li:hover::before {
  background: var(--cyan);
  border-color: var(--cyan);
  box-shadow: 0 0 12px rgba(78, 232, 255, 0.7);
}

.timeline__idx { color: var(--text-faint); }

/* ── Aliados ────────────────────────────────────────────────── */
.benefits {
  display: grid;
  gap: 1px;
  background: var(--line);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  overflow: hidden;
}

@media (min-width: 700px) {
  .benefits { grid-template-columns: repeat(2, 1fr); }
}

.benefit {
  display: grid;
  align-content: start;
  gap: 0.75rem;
  padding: clamp(1.75rem, 3.5vw, 2.75rem);
  background: var(--bg);
  transition: background 0.4s var(--ease);
}

.benefit:hover { background: var(--surface); }

.benefit h3 {
  font-size: 1.25rem;
  font-weight: 400;
}

.benefit p {
  color: var(--text-dim);
  font-size: 0.9375rem;
  max-width: 44ch;
}

/* ── Contacto ───────────────────────────────────────────────── */
.contacto {
  display: grid;
  gap: 3rem;
}

@media (min-width: 900px) {
  .contacto {
    grid-template-columns: 1fr 1.1fr;
    gap: 4.5rem;
    align-items: start;
  }
}

.datos {
  display: grid;
  gap: 1.75rem;
  margin-top: 2.75rem;
}

.datos dt {
  color: var(--text-faint);
  margin-bottom: 0.5rem;
}

.datos dd {
  font-size: 1rem;
  line-height: 1.6;
}

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

.datos__social {
  display: flex;
  gap: 1.5rem;
  flex-wrap: wrap;
}

