/* =====================================================================
   Orbunio · COMPONENTES · v1 · 2026-10-10 (fase 3)
   ---------------------------------------------------------------------
   Se carga DESPUÉS de tokens/orbunio.css:
     <link rel="stylesheet" href="tokens/orbunio.css">
     <link rel="stylesheet" href="componentes/componentes.css">
   Las piezas, con su código para copiar, están en componentes/galeria.html.
   Lo que se mueve o se abre (pestañas, menús, diálogos, avisos flotantes,
   menú del móvil, estelas y gráficos declarativos) lo hace motor/componentes.js.
   Reglas de marca: DESIGN.md. Si algo de aquí choca con DESIGN.md, manda DESIGN.md.
   ===================================================================== */

/* ---------- Iconos de línea (24 px, trazo 1.75) ---------- */
.orb-icono { width: 24px; height: 24px; flex: none; fill: none; stroke: currentColor; stroke-width: 1.75; stroke-linecap: round; stroke-linejoin: round; }

/* =====================================================================
   01 · BOTONES: todo el botón (variantes, tamaños, carga) vive en los tokens,
   para que cualquier página lo tenga aunque no cargue este archivo.
   Aquí solo queda el enlace de acción con flecha.
   ===================================================================== */
/* enlace de acción: texto + flecha que avanza */
.orb-enlace { display: inline-flex; align-items: center; gap: 6px; font: 500 var(--orb-ui)/var(--orb-ui-lh) var(--orb-font-text); color: var(--orb-ink); text-decoration: underline; text-underline-offset: 4px; text-decoration-thickness: 1px; background: none; border: 0; padding: 0; cursor: pointer; }
.orb-enlace .orb-icono { width: 18px; height: 18px; transition: transform var(--orb-dur-feedback) var(--orb-ease); }
.orb-enlace:hover .orb-icono { transform: translateX(3px); }

/* =====================================================================
   02 · CAMPOS (el campo en sí, .orb-input, vive en los tokens)
   ===================================================================== */

.orb-campo { display: grid; gap: 8px; align-content: start; }
.orb-campo > label, .orb-campo > .cab > label, .orb-grupo > legend, .orb-campo .etiqueta { font: 500 14px/20px var(--orb-font-text); color: var(--orb-ink); }
.orb-campo .cab { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; }
.orb-campo .cab small { font: 400 12px/18px var(--orb-font-mono); color: var(--orb-muted); letter-spacing: 0; }
.orb-campo .ayuda { font: 400 13px/18px var(--orb-font-text); color: var(--orb-muted); }
.orb-campo.error .ayuda { color: var(--orb-danger); }
.orb-campo .opcional { font-weight: 400; color: var(--orb-muted); }

/* =====================================================================
   03 · SELECCIÓN: lista, casillas, opciones, opciones en píldora e interruptor
   ===================================================================== */

.orb-select { position: relative; }
.orb-select select { appearance: none; -webkit-appearance: none; padding-right: 42px; cursor: pointer; }
.orb-select::after { content: ""; position: absolute; right: 17px; top: 50%; width: 7px; height: 7px; border-right: 1.75px solid currentColor; border-bottom: 1.75px solid currentColor; transform: translateY(-70%) rotate(45deg); pointer-events: none; color: var(--orb-muted); }
/* La lista propia (componentes.js cambia el <select> por un botón y esta lista; el select queda escondido) */
.orb-select .orb-lista-nativa { position: absolute; inset: 0; width: 100%; height: 100%; opacity: 0; pointer-events: none; }
.orb-lista-boton { display: flex; align-items: center; gap: 10px; width: 100%; padding-right: 42px; text-align: left; cursor: pointer; color: var(--orb-ink); }
.orb-lista-boton .valor { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.orb-lista-boton[aria-expanded="true"] { border-color: var(--orb-ink); box-shadow: 0 0 0 3px color-mix(in srgb, var(--orb-ink) 12%, transparent); }
.orb-select::after { transition: transform var(--orb-dur-feedback) var(--orb-ease); }
.orb-select.abierta::after { transform: translateY(-25%) rotate(-135deg); }
.orb-lista-panel { position: absolute; top: calc(100% + 6px); left: 0; z-index: 60; margin: 0; box-sizing: border-box; min-width: 100%; max-height: 320px; overflow: auto; overscroll-behavior: contain; padding: 4px; border: var(--orb-rail) solid var(--orb-hair); border-radius: var(--orb-r-card); background: var(--orb-surface); color: var(--orb-ink); box-shadow: var(--orb-shadow-overlay); }
.orb-lista-panel[popover] { position: fixed; inset: auto; }
.orb-lista-panel.arriba:not([popover]) { top: auto; bottom: calc(100% + 6px); }
.orb-lista-panel[hidden] { display: none; }
.orb-lista-panel:popover-open, .orb-lista-panel:not([popover]):not([hidden]) { animation: orb-lista-entra 140ms var(--orb-ease-reveal); }
.orb-lista-panel.arriba { transform-origin: bottom center; }
@keyframes orb-lista-entra { from { opacity: 0; transform: translateY(-4px) scale(.98); } }
.orb-lista-panel .opcion { display: flex; align-items: center; gap: 10px; min-height: 36px; padding: 6px 10px; border-radius: var(--orb-r-media); font: 400 15px/22px var(--orb-font-text); cursor: pointer; user-select: none; }
.orb-lista-panel .opcion.activa { background: var(--orb-soft); }
.orb-lista-panel .opcion[aria-selected="true"] { font-weight: 500; }
.orb-lista-panel .marca { width: 16px; height: 16px; margin-left: auto; flex: none; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; visibility: hidden; }
.orb-lista-panel .opcion[aria-selected="true"] .marca { visibility: visible; }
.orb-lista-panel .opcion[aria-disabled="true"] { color: var(--orb-faint); cursor: default; }
.orb-lista-panel .grupo { padding: 10px 10px 4px; font: 500 12px/16px var(--orb-font-text); color: var(--orb-muted); }
.orb-lista-panel .grupo:first-child { padding-top: 6px; }
.orb-lista-boton .punto, .orb-lista-panel .punto { width: 10px; height: 10px; border-radius: 50%; flex: none; background: #F5F4F0; box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--orb-ink) 16%, transparent); }
.punto.cian { background: var(--orb-agent-cian); } .punto.lila { background: var(--orb-agent-lila); } .punto.ambar { background: var(--orb-agent-ambar); }
.punto.menta { background: var(--orb-agent-menta); } .punto.coral { background: var(--orb-agent-coral); }
@media (prefers-reduced-motion: reduce) { .orb-select::after { transition: none; } }
.orb-grupo { border: 0; padding: 0; margin: 0; display: grid; gap: 10px; }
.orb-grupo > legend { padding: 0; margin-bottom: 6px; }
.orb-casilla, .orb-opcion, .orb-interruptor { display: inline-flex; align-items: center; gap: 10px; font: 400 15px/22px var(--orb-font-text); color: var(--orb-ink); cursor: pointer; }
.orb-casilla input, .orb-opcion input, .orb-interruptor input { appearance: none; -webkit-appearance: none; margin: 0; flex: none; cursor: pointer; border: 1px solid var(--orb-line); background: var(--orb-btn-sec); box-shadow: var(--orb-btn-sombra-suave); transition: background var(--orb-dur-feedback) var(--orb-ease), border-color var(--orb-dur-feedback) var(--orb-ease), box-shadow var(--orb-dur-feedback) var(--orb-ease); }
.orb-casilla input:hover, .orb-opcion input:hover, .orb-interruptor input:hover { border-color: color-mix(in srgb, var(--orb-ink) 28%, var(--orb-line)); }
.orb-casilla input { width: 18px; height: 18px; border-radius: var(--orb-r-mini); display: grid; place-items: center; }
.orb-casilla input::after { content: ""; width: 9px; height: 5px; border-left: 2px solid var(--orb-on-action); border-bottom: 2px solid var(--orb-on-action); transform: translateY(-1px) rotate(-45deg) scale(.6); opacity: 0; transition: opacity var(--orb-dur-feedback) var(--orb-ease), transform var(--orb-dur-feedback) var(--orb-ease); }
.orb-opcion input { width: 18px; height: 18px; border-radius: 50%; display: grid; place-items: center; }
.orb-opcion input::after { content: ""; width: 6px; height: 6px; border-radius: 50%; background: var(--orb-on-action); transform: scale(.4); opacity: 0; transition: opacity var(--orb-dur-feedback) var(--orb-ease), transform var(--orb-dur-feedback) var(--orb-ease); }
.orb-casilla input:checked, .orb-opcion input:checked { background: var(--orb-action); border-color: var(--orb-action); box-shadow: inset 0 1px 0 rgb(255 255 255 / .16); }
.orb-casilla input:checked::after { opacity: 1; transform: translateY(-1px) rotate(-45deg) scale(1); }
.orb-opcion input:checked::after { opacity: 1; transform: scale(1); }
.orb-interruptor input { width: 38px; height: 22px; border-radius: var(--orb-r-pill); position: relative; background: var(--orb-soft); }
.orb-interruptor input::before { content: ""; position: absolute; top: 2px; left: 2px; width: 16px; height: 16px; border-radius: 50%; background: var(--orb-btn-sec); box-shadow: 0 1px 2px rgb(25 25 25 / .24); transition: transform var(--orb-dur-state) var(--orb-ease); }
.orb-interruptor input:checked { background: var(--orb-action); border-color: var(--orb-action); }
.orb-interruptor input:checked::before { transform: translateX(16px); background: var(--orb-on-action); }
.orb-casilla input:focus-visible, .orb-opcion input:focus-visible, .orb-interruptor input:focus-visible { outline: none; border-color: var(--orb-ink); box-shadow: 0 0 0 3px color-mix(in srgb, var(--orb-ink) 12%, transparent); }
/* opciones en píldora: una sola elección, a la vista (formularios cortos) */
.orb-opciones { display: flex; flex-wrap: wrap; gap: 8px; border: 0; margin: 0; padding: 0; }
.orb-opciones legend { font: 500 14px/20px var(--orb-font-text); color: var(--orb-ink); padding: 0; margin-bottom: 10px; }
.orb-opciones label { position: relative; cursor: pointer; }
.orb-opciones input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.orb-opciones span { display: inline-flex; align-items: center; height: 36px; padding: 0 14px; border-radius: var(--orb-r-pill); border: 1px solid var(--orb-line); background: var(--orb-btn-sec); box-shadow: var(--orb-btn-sombra-suave); font: 500 14px/1 var(--orb-font-text); color: var(--orb-ink); transition: background var(--orb-dur-feedback) var(--orb-ease), color var(--orb-dur-feedback) var(--orb-ease), border-color var(--orb-dur-feedback) var(--orb-ease); }
.orb-opciones label:hover span { border-color: color-mix(in srgb, var(--orb-ink) 28%, var(--orb-line)); }
.orb-opciones input:checked + span { background: var(--orb-action); border-color: var(--orb-action); color: var(--orb-on-action); box-shadow: inset 0 1px 0 rgb(255 255 255 / .16), 0 1px 2px color-mix(in srgb, var(--orb-action) 24%, transparent); }
.orb-opciones input:focus-visible + span { box-shadow: 0 0 0 3px color-mix(in srgb, var(--orb-ink) 12%, transparent); }

/* =====================================================================
   04 · CHIPS, ESTADOS Y CONTADOR
   ===================================================================== */
.orb-estado { display: inline-flex; align-items: center; gap: 6px; padding: 2px 10px; border-radius: var(--orb-r-pill); font: 500 var(--orb-micro)/var(--orb-micro-lh) var(--orb-font-text); background: var(--orb-soft); color: var(--orb-ink); white-space: nowrap; }
.orb-estado::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: currentColor; }
.orb-estado.activo   { background: var(--orb-menta-surface); color: var(--orb-menta-ink); }
.orb-estado.revision { background: var(--orb-ambar-surface); color: var(--orb-ambar-ink); }
.orb-estado.error    { background: var(--orb-coral-surface); color: var(--orb-coral-ink); }
.orb-estado.pausa::before { background: transparent; border: 1.5px solid currentColor; width: 7px; height: 7px; box-sizing: border-box; }
.orb-contador { display: inline-grid; place-items: center; min-width: 20px; height: 20px; padding: 0 6px; border-radius: var(--orb-r-pill); background: var(--orb-ink); color: var(--orb-canvas); font: 600 11px/1 var(--orb-font-text); letter-spacing: 0; font-variant-numeric: tabular-nums; }

/* =====================================================================
   05 · PESTAÑAS (riel en píldora)
   ===================================================================== */
.orb-pestanas .riel { display: inline-flex; gap: 2px; padding: 4px; border-radius: var(--orb-r-pill); background: var(--orb-soft); max-width: 100%; overflow-x: auto; scrollbar-width: none; }
.orb-pestanas [role="tab"] { border: 0; background: transparent; color: var(--orb-muted); font: 500 14px/20px var(--orb-font-text); padding: 8px 16px; border-radius: var(--orb-r-pill); white-space: nowrap; transition: background var(--orb-dur-state) var(--orb-ease), color var(--orb-dur-state) var(--orb-ease); }
.orb-pestanas [role="tab"]:hover { color: var(--orb-ink); }
.orb-pestanas [role="tab"][aria-selected="true"] { background: var(--orb-canvas); color: var(--orb-ink); box-shadow: var(--orb-shadow-card); }
.orb-pestanas [role="tabpanel"] { padding-top: 24px; }

/* =====================================================================
   06 · AVISOS (sin franja de color en el borde: el tono va en la superficie)
   ===================================================================== */
.orb-aviso { display: grid; grid-template-columns: 24px 1fr auto; gap: 14px; align-items: start; padding: 16px 20px; border-radius: var(--orb-r-media); background: var(--orb-surface); border: var(--orb-rail) solid var(--orb-hair); color: var(--orb-ink); }
.orb-aviso b { display: block; font: 600 15px/22px var(--orb-font-text); }
.orb-aviso p { font: 400 14px/20px var(--orb-font-text); color: var(--orb-muted); margin-top: 2px; }
.orb-aviso > .orb-icono { margin-top: -1px; }
.orb-aviso > :last-child:not(div) { align-self: center; }
.orb-aviso.exito    { background: var(--orb-menta-surface); } .orb-aviso.exito > .orb-icono { color: var(--orb-menta-ink); }
.orb-aviso.atencion { background: var(--orb-ambar-surface); } .orb-aviso.atencion > .orb-icono { color: var(--orb-ambar-ink); }
.orb-aviso.error    { background: var(--orb-coral-surface); } .orb-aviso.error > .orb-icono { color: var(--orb-coral-ink); }
.orb-aviso:not(:has(> :nth-child(3))) { grid-template-columns: 24px 1fr; }

/* =====================================================================
   07 · NOTIFICACIONES FLOTANTES (motor: OrbunioComponentes.notificar)
   ===================================================================== */
.orb-notificaciones { position: fixed; right: 24px; bottom: 24px; z-index: 60; display: grid; gap: 8px; width: min(400px, calc(100vw - 32px)); pointer-events: none; }
.orb-notificacion { display: flex; align-items: center; gap: 16px; padding: 12px 12px 12px 18px; border-radius: var(--orb-r-media); background: var(--orb-invert-bg); color: var(--orb-invert-ink); box-shadow: var(--orb-shadow-overlay); font: 500 15px/22px var(--orb-font-text); pointer-events: auto; animation: orb-entrar var(--orb-dur-reveal) var(--orb-ease-reveal); }
.orb-notificacion > span { flex: 1; }
.orb-notificacion .orb-enlace { color: inherit; font-size: 15px; }
.orb-notificacion .cerrar { width: 32px; height: 32px; display: grid; place-items: center; border: 0; border-radius: var(--orb-r-control); background: transparent; color: inherit; opacity: .7; }
.orb-notificacion .cerrar:hover { opacity: 1; }
.orb-notificacion.sale { opacity: 0; transform: translateY(6px); transition: opacity var(--orb-dur-state) var(--orb-ease), transform var(--orb-dur-state) var(--orb-ease); }
@keyframes orb-entrar { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: none; } }

/* =====================================================================
   08 · DIÁLOGO (dialog nativo; motor: data-orb-abrir="id")
   ===================================================================== */
.orb-dialogo { width: min(480px, calc(100vw - 32px)); padding: 32px; border: var(--orb-rail) solid var(--orb-hair); border-radius: var(--orb-r-panel); background: var(--orb-surface); color: var(--orb-ink); box-shadow: var(--orb-shadow-overlay); }
.orb-dialogo::backdrop { background: rgb(25 25 25 / .42); }
.orb-dialogo h2 { font: 500 var(--orb-h4)/var(--orb-h4-lh) var(--orb-font-text); margin-bottom: 8px; }
.orb-dialogo p { color: var(--orb-muted); font: 400 16px/24px var(--orb-font-text); }
.orb-dialogo .orb-acciones { justify-content: flex-end; margin-top: 28px; }
.orb-dialogo[open] { animation: orb-entrar var(--orb-dur-state) var(--orb-ease-reveal); }

/* =====================================================================
   09 · MENÚ DESPLEGABLE (capa flotante; motor: data-orb-desplegable)
   ===================================================================== */
.orb-desplegable { position: relative; display: inline-block; }
.orb-menu { position: absolute; top: calc(100% + 8px); left: 0; z-index: 40; min-width: 220px; padding: 6px; border-radius: var(--orb-r-card); background: var(--orb-surface); border: var(--orb-rail) solid var(--orb-hair); box-shadow: var(--orb-shadow-overlay); display: grid; gap: 2px; }
.orb-desplegable.derecha .orb-menu { left: auto; right: 0; }
.orb-menu [role="menuitem"] { display: flex; align-items: center; gap: 10px; width: 100%; padding: 8px 10px; border: 0; border-radius: var(--orb-r-media); background: transparent; color: var(--orb-ink); font: 500 15px/22px var(--orb-font-text); text-align: left; text-decoration: none; }
.orb-menu [role="menuitem"] .orb-icono { width: 18px; height: 18px; color: var(--orb-muted); }
.orb-menu [role="menuitem"]:hover, .orb-menu [role="menuitem"]:focus-visible { background: var(--orb-soft); outline: none; }
.orb-menu [role="menuitem"].peligro, .orb-menu [role="menuitem"].peligro .orb-icono { color: var(--orb-danger); }
.orb-menu hr { border: 0; border-top: var(--orb-rail) solid var(--orb-hair); margin: 4px 6px; }
.orb-menu[hidden] { display: none; }

/* =====================================================================
   10 · TABLA (filas comparables; con agentes a la izquierda)
   ===================================================================== */

.orb-tabla-marco { overflow-x: auto; border-block: var(--orb-rail) solid var(--orb-hair); }
.orb-tabla-marco.tarjeta { border: var(--orb-rail) solid var(--orb-line); border-radius: var(--orb-r-card); }
.orb-tabla { width: 100%; border-collapse: collapse; font: 400 15px/22px var(--orb-font-text); }
.orb-tabla th { text-align: left; padding: 16px 20px; font: 500 14px/20px var(--orb-font-text); color: var(--orb-muted); white-space: nowrap; }
.orb-tabla td { padding: 14px 20px; border-top: var(--orb-rail) solid var(--orb-hair); vertical-align: middle; color: var(--orb-muted); }
.orb-tabla th:first-child, .orb-tabla td:first-child { padding-left: 24px; }
.orb-tabla th:last-child, .orb-tabla td:last-child { padding-right: 24px; }
.orb-tabla tbody tr { transition: background var(--orb-dur-feedback) var(--orb-ease); }
.orb-tabla tbody tr:hover { background: color-mix(in srgb, var(--orb-soft) 45%, transparent); }
.orb-tabla .num { text-align: right; font-variant-numeric: tabular-nums; }
.orb-tabla .mono { font: 400 13px/22px var(--orb-font-mono); letter-spacing: 0; white-space: nowrap; }
.orb-tabla td .orb-meta { display: block; }
/* una persona o un agente: cara a la izquierda, sin fondo; nombre y una línea debajo */
.orb-persona { display: flex; align-items: center; gap: 10px; min-width: 0; }
.orb-persona .orb-agente { font-size: 76px; margin: -18px -14px -18px -18px; }
.orb-persona b { display: block; font: 500 15px/20px var(--orb-font-text); color: var(--orb-ink); white-space: nowrap; }
.orb-persona span { display: block; font: 400 13px/18px var(--orb-font-text); color: var(--orb-muted); white-space: nowrap; }

/* =====================================================================
   11 · PROGRESO Y PASOS
   ===================================================================== */
.orb-progreso { display: grid; gap: 8px; }
.orb-progreso .cab { display: flex; justify-content: space-between; gap: 16px; font: 500 15px/22px var(--orb-font-text); }
.orb-progreso .cab span:last-child { font-variant-numeric: tabular-nums; color: var(--orb-muted); }
.orb-progreso .pista { height: 8px; border-radius: var(--orb-r-pill); background: var(--orb-soft); overflow: hidden; }
.orb-progreso .pista i { display: block; height: 100%; border-radius: inherit; background: var(--orb-ink); transition: width var(--orb-dur-state) var(--orb-ease); }
.orb-pasos { list-style: none; margin: 0; padding: 0; display: grid; grid-auto-flow: column; grid-auto-columns: 1fr; counter-reset: paso; }
.orb-pasos li { position: relative; display: grid; gap: 8px; justify-items: start; padding-right: 12px; font: 500 15px/22px var(--orb-font-text); color: var(--orb-muted); counter-increment: paso; }
.orb-pasos li::before { content: counter(paso); width: 28px; height: 28px; border-radius: 50%; display: grid; place-items: center; border: 1px solid var(--orb-control); background: var(--orb-canvas); color: var(--orb-muted); font: 500 13px/1 var(--orb-font-text); position: relative; z-index: 1; }
.orb-pasos li::after { content: ""; position: absolute; top: 14px; left: 28px; right: 0; border-top: 1px dashed var(--orb-line); }
.orb-pasos li:last-child::after { display: none; }
.orb-pasos li.hecho { color: var(--orb-ink); }
.orb-pasos li.hecho::before { content: "✓"; background: var(--orb-action); border-color: var(--orb-action); color: var(--orb-on-action); }
.orb-pasos li.hecho::after { border-top: 1.5px solid var(--orb-ink); }
.orb-pasos li[aria-current="step"] { color: var(--orb-ink); }
.orb-pasos li[aria-current="step"]::before { border: 2px solid var(--orb-ink); color: var(--orb-ink); }

/* =====================================================================
   12 · VACÍO Y CARGA
   ===================================================================== */
.orb-vacio { display: grid; justify-items: center; text-align: center; gap: 12px; padding: 48px 24px; }
.orb-vacio .orb-agente { font-size: 132px; margin-bottom: 4px; }
.orb-vacio h3 { font: 500 var(--orb-h4)/var(--orb-h4-lh) var(--orb-font-text); }
.orb-vacio p { color: var(--orb-muted); font: 400 16px/24px var(--orb-font-text); max-width: 40ch; margin-bottom: 12px; }
.orb-cargando-bloque { display: grid; justify-items: center; gap: 16px; padding: 40px 24px; color: var(--orb-ink); font: 500 15px/22px var(--orb-font-text); }
.orb-cargando-bloque .orb-isotipo { font-size: 72px; }
.orb-esqueleto { display: grid; gap: 10px; }
.orb-esqueleto i { display: block; height: 14px; border-radius: var(--orb-r-mini); background: var(--orb-soft); animation: orb-respirar 1.6s var(--orb-ease) infinite; }
.orb-esqueleto i:nth-child(2) { width: 82%; animation-delay: .1s; } .orb-esqueleto i:nth-child(3) { width: 64%; animation-delay: .2s; }
@keyframes orb-respirar { 0%, 100% { opacity: 1; } 50% { opacity: .45; } }

/* =====================================================================
   UTILIDADES DE COMPOSICIÓN
   ===================================================================== */
.orb-acciones { display: flex; gap: 12px; flex-wrap: wrap; align-items: center; }
.orb-pila { display: grid; gap: 20px; align-content: start; }
/* objetos sueltos de una interfaz (tarjetas): aquí sí hay hueco */
.orb-rejilla { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 24px; }
/* textura de portada y cierre: cuadrícula de 120 px cruzada por diagonales que se desvanece */
.orb-textura { position: absolute; inset: 0; pointer-events: none;
  background-image:
    linear-gradient(var(--orb-hair) var(--orb-rail), transparent var(--orb-rail)),
    linear-gradient(90deg, var(--orb-hair) var(--orb-rail), transparent var(--orb-rail)),
    linear-gradient(45deg, transparent calc(50% - .4px), var(--orb-hair) calc(50% - .4px) calc(50% + .4px), transparent calc(50% + .4px)),
    linear-gradient(-45deg, transparent calc(50% - .4px), var(--orb-hair) calc(50% - .4px) calc(50% + .4px), transparent calc(50% + .4px));
  background-size: 120px 120px; background-position: center -1px; }
.orb-textura::after { content: ""; position: absolute; inset: 0; background: radial-gradient(ellipse at 50% 45%, transparent 20%, var(--orb-canvas) 72%); }
/* celda de ilustración: diagonales a trazos 4/4 */
.orb-rayado { position: relative; background: var(--orb-surface); }
.orb-rayado::before { content: ""; position: absolute; inset: 0; pointer-events: none; background: repeating-linear-gradient(45deg, var(--orb-line) 0 var(--orb-rail), transparent var(--orb-rail) 9px); -webkit-mask: repeating-linear-gradient(-45deg, #000 0 4px, transparent 4px 8px); mask: repeating-linear-gradient(-45deg, #000 0 4px, transparent 4px 8px); opacity: .7; }
.orb-rayado > * { position: relative; }
/* estelas declarativas (motor/componentes.js dibuja <svg data-orb-estela>) */
svg[data-orb-estela] { display: block; width: 100%; height: auto; overflow: visible; color: var(--orb-ink); }
/* <separadores> · generado por herramientas/separadores.js: no lo edites a mano */
/* <hr class="orb-separador">: el punto grande en el centro y, hacia los lados, más pequeños y más
   transparentes. Variantes: .izquierda y .derecha (el grande en ese lado), .parejo (todos pequeños,
   de lado a lado), .largo (más puntos, para anchos grandes) y data-agente="cian…" para su tinta. */
.orb-separador { --sep: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='635' height='12' viewBox='0 0 635 12'%3E%3Ccircle cx='5.2' cy='6' r='0.6' fill-opacity='0.06'/%3E%3Ccircle cx='18.2' cy='6' r='0.62' fill-opacity='0.08'/%3E%3Ccircle cx='31.2' cy='6' r='0.66' fill-opacity='0.11'/%3E%3Ccircle cx='44.2' cy='6' r='0.7' fill-opacity='0.15'/%3E%3Ccircle cx='57.2' cy='6' r='0.76' fill-opacity='0.18'/%3E%3Ccircle cx='70.2' cy='6' r='0.82' fill-opacity='0.21'/%3E%3Ccircle cx='83.2' cy='6' r='0.89' fill-opacity='0.25'/%3E%3Ccircle cx='96.2' cy='6' r='0.96' fill-opacity='0.29'/%3E%3Ccircle cx='109.2' cy='6' r='1.04' fill-opacity='0.33'/%3E%3Ccircle cx='122.2' cy='6' r='1.13' fill-opacity='0.36'/%3E%3Ccircle cx='135.2' cy='6' r='1.22' fill-opacity='0.4'/%3E%3Ccircle cx='148.2' cy='6' r='1.31' fill-opacity='0.44'/%3E%3Ccircle cx='161.2' cy='6' r='1.41' fill-opacity='0.48'/%3E%3Ccircle cx='174.2' cy='6' r='1.52' fill-opacity='0.52'/%3E%3Ccircle cx='187.2' cy='6' r='1.62' fill-opacity='0.57'/%3E%3Ccircle cx='200.2' cy='6' r='1.74' fill-opacity='0.61'/%3E%3Ccircle cx='213.2' cy='6' r='1.85' fill-opacity='0.65'/%3E%3Ccircle cx='226.2' cy='6' r='1.97' fill-opacity='0.69'/%3E%3Ccircle cx='239.2' cy='6' r='2.09' fill-opacity='0.74'/%3E%3Ccircle cx='252.2' cy='6' r='2.22' fill-opacity='0.78'/%3E%3Ccircle cx='265.2' cy='6' r='2.35' fill-opacity='0.82'/%3E%3Ccircle cx='278.2' cy='6' r='2.48' fill-opacity='0.87'/%3E%3Ccircle cx='291.2' cy='6' r='2.62' fill-opacity='0.91'/%3E%3Ccircle cx='304.2' cy='6' r='2.76' fill-opacity='0.96'/%3E%3Ccircle cx='317.2' cy='6' r='4.2'/%3E%3Ccircle cx='330.2' cy='6' r='2.76' fill-opacity='0.96'/%3E%3Ccircle cx='343.2' cy='6' r='2.62' fill-opacity='0.91'/%3E%3Ccircle cx='356.2' cy='6' r='2.48' fill-opacity='0.87'/%3E%3Ccircle cx='369.2' cy='6' r='2.35' fill-opacity='0.82'/%3E%3Ccircle cx='382.2' cy='6' r='2.22' fill-opacity='0.78'/%3E%3Ccircle cx='395.2' cy='6' r='2.09' fill-opacity='0.74'/%3E%3Ccircle cx='408.2' cy='6' r='1.97' fill-opacity='0.69'/%3E%3Ccircle cx='421.2' cy='6' r='1.85' fill-opacity='0.65'/%3E%3Ccircle cx='434.2' cy='6' r='1.74' fill-opacity='0.61'/%3E%3Ccircle cx='447.2' cy='6' r='1.62' fill-opacity='0.57'/%3E%3Ccircle cx='460.2' cy='6' r='1.52' fill-opacity='0.52'/%3E%3Ccircle cx='473.2' cy='6' r='1.41' fill-opacity='0.48'/%3E%3Ccircle cx='486.2' cy='6' r='1.31' fill-opacity='0.44'/%3E%3Ccircle cx='499.2' cy='6' r='1.22' fill-opacity='0.4'/%3E%3Ccircle cx='512.2' cy='6' r='1.13' fill-opacity='0.36'/%3E%3Ccircle cx='525.2' cy='6' r='1.04' fill-opacity='0.33'/%3E%3Ccircle cx='538.2' cy='6' r='0.96' fill-opacity='0.29'/%3E%3Ccircle cx='551.2' cy='6' r='0.89' fill-opacity='0.25'/%3E%3Ccircle cx='564.2' cy='6' r='0.82' fill-opacity='0.21'/%3E%3Ccircle cx='577.2' cy='6' r='0.76' fill-opacity='0.18'/%3E%3Ccircle cx='590.2' cy='6' r='0.7' fill-opacity='0.15'/%3E%3Ccircle cx='603.2' cy='6' r='0.66' fill-opacity='0.11'/%3E%3Ccircle cx='616.2' cy='6' r='0.62' fill-opacity='0.08'/%3E%3Ccircle cx='629.2' cy='6' r='0.6' fill-opacity='0.06'/%3E%3C/svg%3E"); --sep-ancho: 635px; --sep-pos: center;
  display: block; width: 100%; height: 12px; margin: var(--orb-s8) 0; padding: 0; border: 0; flex: none;
  color: var(--orb-ink); background: currentColor;
  -webkit-mask: var(--sep) var(--sep-pos) / min(100%, var(--sep-ancho)) auto no-repeat;
          mask: var(--sep) var(--sep-pos) / min(100%, var(--sep-ancho)) auto no-repeat;
  -webkit-print-color-adjust: exact; print-color-adjust: exact; }
.orb-separador.largo { --sep: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='1181' height='12' viewBox='0 0 1181 12'%3E%3Ccircle cx='5.2' cy='6' r='0.6' fill-opacity='0.06'/%3E%3Ccircle cx='18.2' cy='6' r='0.61' fill-opacity='0.07'/%3E%3Ccircle cx='31.2' cy='6' r='0.62' fill-opacity='0.09'/%3E%3Ccircle cx='44.2' cy='6' r='0.64' fill-opacity='0.1'/%3E%3Ccircle cx='57.2' cy='6' r='0.66' fill-opacity='0.12'/%3E%3Ccircle cx='70.2' cy='6' r='0.69' fill-opacity='0.14'/%3E%3Ccircle cx='83.2' cy='6' r='0.71' fill-opacity='0.15'/%3E%3Ccircle cx='96.2' cy='6' r='0.74' fill-opacity='0.17'/%3E%3Ccircle cx='109.2' cy='6' r='0.77' fill-opacity='0.19'/%3E%3Ccircle cx='122.2' cy='6' r='0.81' fill-opacity='0.21'/%3E%3Ccircle cx='135.2' cy='6' r='0.84' fill-opacity='0.23'/%3E%3Ccircle cx='148.2' cy='6' r='0.88' fill-opacity='0.25'/%3E%3Ccircle cx='161.2' cy='6' r='0.92' fill-opacity='0.27'/%3E%3Ccircle cx='174.2' cy='6' r='0.96' fill-opacity='0.29'/%3E%3Ccircle cx='187.2' cy='6' r='1' fill-opacity='0.31'/%3E%3Ccircle cx='200.2' cy='6' r='1.04' fill-opacity='0.33'/%3E%3Ccircle cx='213.2' cy='6' r='1.09' fill-opacity='0.35'/%3E%3Ccircle cx='226.2' cy='6' r='1.13' fill-opacity='0.37'/%3E%3Ccircle cx='239.2' cy='6' r='1.18' fill-opacity='0.39'/%3E%3Ccircle cx='252.2' cy='6' r='1.23' fill-opacity='0.41'/%3E%3Ccircle cx='265.2' cy='6' r='1.28' fill-opacity='0.43'/%3E%3Ccircle cx='278.2' cy='6' r='1.33' fill-opacity='0.45'/%3E%3Ccircle cx='291.2' cy='6' r='1.39' fill-opacity='0.47'/%3E%3Ccircle cx='304.2' cy='6' r='1.44' fill-opacity='0.49'/%3E%3Ccircle cx='317.2' cy='6' r='1.5' fill-opacity='0.52'/%3E%3Ccircle cx='330.2' cy='6' r='1.55' fill-opacity='0.54'/%3E%3Ccircle cx='343.2' cy='6' r='1.61' fill-opacity='0.56'/%3E%3Ccircle cx='356.2' cy='6' r='1.67' fill-opacity='0.58'/%3E%3Ccircle cx='369.2' cy='6' r='1.73' fill-opacity='0.6'/%3E%3Ccircle cx='382.2' cy='6' r='1.79' fill-opacity='0.63'/%3E%3Ccircle cx='395.2' cy='6' r='1.85' fill-opacity='0.65'/%3E%3Ccircle cx='408.2' cy='6' r='1.92' fill-opacity='0.67'/%3E%3Ccircle cx='421.2' cy='6' r='1.98' fill-opacity='0.7'/%3E%3Ccircle cx='434.2' cy='6' r='2.04' fill-opacity='0.72'/%3E%3Ccircle cx='447.2' cy='6' r='2.11' fill-opacity='0.74'/%3E%3Ccircle cx='460.2' cy='6' r='2.18' fill-opacity='0.76'/%3E%3Ccircle cx='473.2' cy='6' r='2.25' fill-opacity='0.79'/%3E%3Ccircle cx='486.2' cy='6' r='2.31' fill-opacity='0.81'/%3E%3Ccircle cx='499.2' cy='6' r='2.38' fill-opacity='0.83'/%3E%3Ccircle cx='512.2' cy='6' r='2.46' fill-opacity='0.86'/%3E%3Ccircle cx='525.2' cy='6' r='2.53' fill-opacity='0.88'/%3E%3Ccircle cx='538.2' cy='6' r='2.6' fill-opacity='0.9'/%3E%3Ccircle cx='551.2' cy='6' r='2.67' fill-opacity='0.93'/%3E%3Ccircle cx='564.2' cy='6' r='2.75' fill-opacity='0.95'/%3E%3Ccircle cx='577.2' cy='6' r='2.82' fill-opacity='0.98'/%3E%3Ccircle cx='590.2' cy='6' r='4.2'/%3E%3Ccircle cx='603.2' cy='6' r='2.82' fill-opacity='0.98'/%3E%3Ccircle cx='616.2' cy='6' r='2.75' fill-opacity='0.95'/%3E%3Ccircle cx='629.2' cy='6' r='2.67' fill-opacity='0.93'/%3E%3Ccircle cx='642.2' cy='6' r='2.6' fill-opacity='0.9'/%3E%3Ccircle cx='655.2' cy='6' r='2.53' fill-opacity='0.88'/%3E%3Ccircle cx='668.2' cy='6' r='2.46' fill-opacity='0.86'/%3E%3Ccircle cx='681.2' cy='6' r='2.38' fill-opacity='0.83'/%3E%3Ccircle cx='694.2' cy='6' r='2.31' fill-opacity='0.81'/%3E%3Ccircle cx='707.2' cy='6' r='2.25' fill-opacity='0.79'/%3E%3Ccircle cx='720.2' cy='6' r='2.18' fill-opacity='0.76'/%3E%3Ccircle cx='733.2' cy='6' r='2.11' fill-opacity='0.74'/%3E%3Ccircle cx='746.2' cy='6' r='2.04' fill-opacity='0.72'/%3E%3Ccircle cx='759.2' cy='6' r='1.98' fill-opacity='0.7'/%3E%3Ccircle cx='772.2' cy='6' r='1.92' fill-opacity='0.67'/%3E%3Ccircle cx='785.2' cy='6' r='1.85' fill-opacity='0.65'/%3E%3Ccircle cx='798.2' cy='6' r='1.79' fill-opacity='0.63'/%3E%3Ccircle cx='811.2' cy='6' r='1.73' fill-opacity='0.6'/%3E%3Ccircle cx='824.2' cy='6' r='1.67' fill-opacity='0.58'/%3E%3Ccircle cx='837.2' cy='6' r='1.61' fill-opacity='0.56'/%3E%3Ccircle cx='850.2' cy='6' r='1.55' fill-opacity='0.54'/%3E%3Ccircle cx='863.2' cy='6' r='1.5' fill-opacity='0.52'/%3E%3Ccircle cx='876.2' cy='6' r='1.44' fill-opacity='0.49'/%3E%3Ccircle cx='889.2' cy='6' r='1.39' fill-opacity='0.47'/%3E%3Ccircle cx='902.2' cy='6' r='1.33' fill-opacity='0.45'/%3E%3Ccircle cx='915.2' cy='6' r='1.28' fill-opacity='0.43'/%3E%3Ccircle cx='928.2' cy='6' r='1.23' fill-opacity='0.41'/%3E%3Ccircle cx='941.2' cy='6' r='1.18' fill-opacity='0.39'/%3E%3Ccircle cx='954.2' cy='6' r='1.13' fill-opacity='0.37'/%3E%3Ccircle cx='967.2' cy='6' r='1.09' fill-opacity='0.35'/%3E%3Ccircle cx='980.2' cy='6' r='1.04' fill-opacity='0.33'/%3E%3Ccircle cx='993.2' cy='6' r='1' fill-opacity='0.31'/%3E%3Ccircle cx='1006.2' cy='6' r='0.96' fill-opacity='0.29'/%3E%3Ccircle cx='1019.2' cy='6' r='0.92' fill-opacity='0.27'/%3E%3Ccircle cx='1032.2' cy='6' r='0.88' fill-opacity='0.25'/%3E%3Ccircle cx='1045.2' cy='6' r='0.84' fill-opacity='0.23'/%3E%3Ccircle cx='1058.2' cy='6' r='0.81' fill-opacity='0.21'/%3E%3Ccircle cx='1071.2' cy='6' r='0.77' fill-opacity='0.19'/%3E%3Ccircle cx='1084.2' cy='6' r='0.74' fill-opacity='0.17'/%3E%3Ccircle cx='1097.2' cy='6' r='0.71' fill-opacity='0.15'/%3E%3Ccircle cx='1110.2' cy='6' r='0.69' fill-opacity='0.14'/%3E%3Ccircle cx='1123.2' cy='6' r='0.66' fill-opacity='0.12'/%3E%3Ccircle cx='1136.2' cy='6' r='0.64' fill-opacity='0.1'/%3E%3Ccircle cx='1149.2' cy='6' r='0.62' fill-opacity='0.09'/%3E%3Ccircle cx='1162.2' cy='6' r='0.61' fill-opacity='0.07'/%3E%3Ccircle cx='1175.2' cy='6' r='0.6' fill-opacity='0.06'/%3E%3C/svg%3E"); --sep-ancho: 1181px; }
.orb-separador.izquierda { --sep: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='635' height='12' viewBox='0 0 635 12'%3E%3Ccircle cx='5.2' cy='6' r='4.2'/%3E%3Ccircle cx='18.2' cy='6' r='2.83' fill-opacity='0.98'/%3E%3Ccircle cx='31.2' cy='6' r='2.76' fill-opacity='0.96'/%3E%3Ccircle cx='44.2' cy='6' r='2.69' fill-opacity='0.93'/%3E%3Ccircle cx='57.2' cy='6' r='2.62' fill-opacity='0.91'/%3E%3Ccircle cx='70.2' cy='6' r='2.55' fill-opacity='0.89'/%3E%3Ccircle cx='83.2' cy='6' r='2.48' fill-opacity='0.87'/%3E%3Ccircle cx='96.2' cy='6' r='2.42' fill-opacity='0.84'/%3E%3Ccircle cx='109.2' cy='6' r='2.35' fill-opacity='0.82'/%3E%3Ccircle cx='122.2' cy='6' r='2.28' fill-opacity='0.8'/%3E%3Ccircle cx='135.2' cy='6' r='2.22' fill-opacity='0.78'/%3E%3Ccircle cx='148.2' cy='6' r='2.16' fill-opacity='0.76'/%3E%3Ccircle cx='161.2' cy='6' r='2.09' fill-opacity='0.74'/%3E%3Ccircle cx='174.2' cy='6' r='2.03' fill-opacity='0.71'/%3E%3Ccircle cx='187.2' cy='6' r='1.97' fill-opacity='0.69'/%3E%3Ccircle cx='200.2' cy='6' r='1.91' fill-opacity='0.67'/%3E%3Ccircle cx='213.2' cy='6' r='1.85' fill-opacity='0.65'/%3E%3Ccircle cx='226.2' cy='6' r='1.79' fill-opacity='0.63'/%3E%3Ccircle cx='239.2' cy='6' r='1.74' fill-opacity='0.61'/%3E%3Ccircle cx='252.2' cy='6' r='1.68' fill-opacity='0.59'/%3E%3Ccircle cx='265.2' cy='6' r='1.62' fill-opacity='0.57'/%3E%3Ccircle cx='278.2' cy='6' r='1.57' fill-opacity='0.55'/%3E%3Ccircle cx='291.2' cy='6' r='1.52' fill-opacity='0.52'/%3E%3Ccircle cx='304.2' cy='6' r='1.46' fill-opacity='0.5'/%3E%3Ccircle cx='317.2' cy='6' r='1.41' fill-opacity='0.48'/%3E%3Ccircle cx='330.2' cy='6' r='1.36' fill-opacity='0.46'/%3E%3Ccircle cx='343.2' cy='6' r='1.31' fill-opacity='0.44'/%3E%3Ccircle cx='356.2' cy='6' r='1.27' fill-opacity='0.42'/%3E%3Ccircle cx='369.2' cy='6' r='1.22' fill-opacity='0.4'/%3E%3Ccircle cx='382.2' cy='6' r='1.17' fill-opacity='0.38'/%3E%3Ccircle cx='395.2' cy='6' r='1.13' fill-opacity='0.36'/%3E%3Ccircle cx='408.2' cy='6' r='1.08' fill-opacity='0.34'/%3E%3Ccircle cx='421.2' cy='6' r='1.04' fill-opacity='0.33'/%3E%3Ccircle cx='434.2' cy='6' r='1' fill-opacity='0.31'/%3E%3Ccircle cx='447.2' cy='6' r='0.96' fill-opacity='0.29'/%3E%3Ccircle cx='460.2' cy='6' r='0.92' fill-opacity='0.27'/%3E%3Ccircle cx='473.2' cy='6' r='0.89' fill-opacity='0.25'/%3E%3Ccircle cx='486.2' cy='6' r='0.85' fill-opacity='0.23'/%3E%3Ccircle cx='499.2' cy='6' r='0.82' fill-opacity='0.21'/%3E%3Ccircle cx='512.2' cy='6' r='0.79' fill-opacity='0.2'/%3E%3Ccircle cx='525.2' cy='6' r='0.76' fill-opacity='0.18'/%3E%3Ccircle cx='538.2' cy='6' r='0.73' fill-opacity='0.16'/%3E%3Ccircle cx='551.2' cy='6' r='0.7' fill-opacity='0.15'/%3E%3Ccircle cx='564.2' cy='6' r='0.68' fill-opacity='0.13'/%3E%3Ccircle cx='577.2' cy='6' r='0.66' fill-opacity='0.11'/%3E%3Ccircle cx='590.2' cy='6' r='0.64' fill-opacity='0.1'/%3E%3Ccircle cx='603.2' cy='6' r='0.62' fill-opacity='0.08'/%3E%3Ccircle cx='616.2' cy='6' r='0.61' fill-opacity='0.07'/%3E%3Ccircle cx='629.2' cy='6' r='0.6' fill-opacity='0.06'/%3E%3C/svg%3E"); --sep-ancho: 635px; --sep-pos: left center; }
.orb-separador.izquierda.largo { --sep: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='1181' height='12' viewBox='0 0 1181 12'%3E%3Ccircle cx='5.2' cy='6' r='4.2'/%3E%3Ccircle cx='18.2' cy='6' r='2.86' fill-opacity='0.99'/%3E%3Ccircle cx='31.2' cy='6' r='2.82' fill-opacity='0.98'/%3E%3Ccircle cx='44.2' cy='6' r='2.79' fill-opacity='0.96'/%3E%3Ccircle cx='57.2' cy='6' r='2.75' fill-opacity='0.95'/%3E%3Ccircle cx='70.2' cy='6' r='2.71' fill-opacity='0.94'/%3E%3Ccircle cx='83.2' cy='6' r='2.67' fill-opacity='0.93'/%3E%3Ccircle cx='96.2' cy='6' r='2.64' fill-opacity='0.92'/%3E%3Ccircle cx='109.2' cy='6' r='2.6' fill-opacity='0.9'/%3E%3Ccircle cx='122.2' cy='6' r='2.56' fill-opacity='0.89'/%3E%3Ccircle cx='135.2' cy='6' r='2.53' fill-opacity='0.88'/%3E%3Ccircle cx='148.2' cy='6' r='2.49' fill-opacity='0.87'/%3E%3Ccircle cx='161.2' cy='6' r='2.46' fill-opacity='0.86'/%3E%3Ccircle cx='174.2' cy='6' r='2.42' fill-opacity='0.85'/%3E%3Ccircle cx='187.2' cy='6' r='2.38' fill-opacity='0.83'/%3E%3Ccircle cx='200.2' cy='6' r='2.35' fill-opacity='0.82'/%3E%3Ccircle cx='213.2' cy='6' r='2.31' fill-opacity='0.81'/%3E%3Ccircle cx='226.2' cy='6' r='2.28' fill-opacity='0.8'/%3E%3Ccircle cx='239.2' cy='6' r='2.25' fill-opacity='0.79'/%3E%3Ccircle cx='252.2' cy='6' r='2.21' fill-opacity='0.78'/%3E%3Ccircle cx='265.2' cy='6' r='2.18' fill-opacity='0.76'/%3E%3Ccircle cx='278.2' cy='6' r='2.14' fill-opacity='0.75'/%3E%3Ccircle cx='291.2' cy='6' r='2.11' fill-opacity='0.74'/%3E%3Ccircle cx='304.2' cy='6' r='2.08' fill-opacity='0.73'/%3E%3Ccircle cx='317.2' cy='6' r='2.04' fill-opacity='0.72'/%3E%3Ccircle cx='330.2' cy='6' r='2.01' fill-opacity='0.71'/%3E%3Ccircle cx='343.2' cy='6' r='1.98' fill-opacity='0.7'/%3E%3Ccircle cx='356.2' cy='6' r='1.95' fill-opacity='0.68'/%3E%3Ccircle cx='369.2' cy='6' r='1.92' fill-opacity='0.67'/%3E%3Ccircle cx='382.2' cy='6' r='1.88' fill-opacity='0.66'/%3E%3Ccircle cx='395.2' cy='6' r='1.85' fill-opacity='0.65'/%3E%3Ccircle cx='408.2' cy='6' r='1.82' fill-opacity='0.64'/%3E%3Ccircle cx='421.2' cy='6' r='1.79' fill-opacity='0.63'/%3E%3Ccircle cx='434.2' cy='6' r='1.76' fill-opacity='0.62'/%3E%3Ccircle cx='447.2' cy='6' r='1.73' fill-opacity='0.6'/%3E%3Ccircle cx='460.2' cy='6' r='1.7' fill-opacity='0.59'/%3E%3Ccircle cx='473.2' cy='6' r='1.67' fill-opacity='0.58'/%3E%3Ccircle cx='486.2' cy='6' r='1.64' fill-opacity='0.57'/%3E%3Ccircle cx='499.2' cy='6' r='1.61' fill-opacity='0.56'/%3E%3Ccircle cx='512.2' cy='6' r='1.58' fill-opacity='0.55'/%3E%3Ccircle cx='525.2' cy='6' r='1.55' fill-opacity='0.54'/%3E%3Ccircle cx='538.2' cy='6' r='1.52' fill-opacity='0.53'/%3E%3Ccircle cx='551.2' cy='6' r='1.5' fill-opacity='0.52'/%3E%3Ccircle cx='564.2' cy='6' r='1.47' fill-opacity='0.51'/%3E%3Ccircle cx='577.2' cy='6' r='1.44' fill-opacity='0.49'/%3E%3Ccircle cx='590.2' cy='6' r='1.41' fill-opacity='0.48'/%3E%3Ccircle cx='603.2' cy='6' r='1.39' fill-opacity='0.47'/%3E%3Ccircle cx='616.2' cy='6' r='1.36' fill-opacity='0.46'/%3E%3Ccircle cx='629.2' cy='6' r='1.33' fill-opacity='0.45'/%3E%3Ccircle cx='642.2' cy='6' r='1.31' fill-opacity='0.44'/%3E%3Ccircle cx='655.2' cy='6' r='1.28' fill-opacity='0.43'/%3E%3Ccircle cx='668.2' cy='6' r='1.26' fill-opacity='0.42'/%3E%3Ccircle cx='681.2' cy='6' r='1.23' fill-opacity='0.41'/%3E%3Ccircle cx='694.2' cy='6' r='1.21' fill-opacity='0.4'/%3E%3Ccircle cx='707.2' cy='6' r='1.18' fill-opacity='0.39'/%3E%3Ccircle cx='720.2' cy='6' r='1.16' fill-opacity='0.38'/%3E%3Ccircle cx='733.2' cy='6' r='1.13' fill-opacity='0.37'/%3E%3Ccircle cx='746.2' cy='6' r='1.11' fill-opacity='0.36'/%3E%3Ccircle cx='759.2' cy='6' r='1.09' fill-opacity='0.35'/%3E%3Ccircle cx='772.2' cy='6' r='1.06' fill-opacity='0.34'/%3E%3Ccircle cx='785.2' cy='6' r='1.04' fill-opacity='0.33'/%3E%3Ccircle cx='798.2' cy='6' r='1.02' fill-opacity='0.32'/%3E%3Ccircle cx='811.2' cy='6' r='1' fill-opacity='0.31'/%3E%3Ccircle cx='824.2' cy='6' r='0.98' fill-opacity='0.3'/%3E%3Ccircle cx='837.2' cy='6' r='0.96' fill-opacity='0.29'/%3E%3Ccircle cx='850.2' cy='6' r='0.94' fill-opacity='0.28'/%3E%3Ccircle cx='863.2' cy='6' r='0.92' fill-opacity='0.27'/%3E%3Ccircle cx='876.2' cy='6' r='0.9' fill-opacity='0.26'/%3E%3Ccircle cx='889.2' cy='6' r='0.88' fill-opacity='0.25'/%3E%3Ccircle cx='902.2' cy='6' r='0.86' fill-opacity='0.24'/%3E%3Ccircle cx='915.2' cy='6' r='0.84' fill-opacity='0.23'/%3E%3Ccircle cx='928.2' cy='6' r='0.82' fill-opacity='0.22'/%3E%3Ccircle cx='941.2' cy='6' r='0.81' fill-opacity='0.21'/%3E%3Ccircle cx='954.2' cy='6' r='0.79' fill-opacity='0.2'/%3E%3Ccircle cx='967.2' cy='6' r='0.77' fill-opacity='0.19'/%3E%3Ccircle cx='980.2' cy='6' r='0.76' fill-opacity='0.18'/%3E%3Ccircle cx='993.2' cy='6' r='0.74' fill-opacity='0.17'/%3E%3Ccircle cx='1006.2' cy='6' r='0.73' fill-opacity='0.16'/%3E%3Ccircle cx='1019.2' cy='6' r='0.71' fill-opacity='0.15'/%3E%3Ccircle cx='1032.2' cy='6' r='0.7' fill-opacity='0.14'/%3E%3Ccircle cx='1045.2' cy='6' r='0.69' fill-opacity='0.14'/%3E%3Ccircle cx='1058.2' cy='6' r='0.67' fill-opacity='0.13'/%3E%3Ccircle cx='1071.2' cy='6' r='0.66' fill-opacity='0.12'/%3E%3Ccircle cx='1084.2' cy='6' r='0.65' fill-opacity='0.11'/%3E%3Ccircle cx='1097.2' cy='6' r='0.64' fill-opacity='0.1'/%3E%3Ccircle cx='1110.2' cy='6' r='0.63' fill-opacity='0.09'/%3E%3Ccircle cx='1123.2' cy='6' r='0.62' fill-opacity='0.09'/%3E%3Ccircle cx='1136.2' cy='6' r='0.61' fill-opacity='0.08'/%3E%3Ccircle cx='1149.2' cy='6' r='0.61' fill-opacity='0.07'/%3E%3Ccircle cx='1162.2' cy='6' r='0.6' fill-opacity='0.07'/%3E%3Ccircle cx='1175.2' cy='6' r='0.6' fill-opacity='0.06'/%3E%3C/svg%3E"); --sep-ancho: 1181px; }
.orb-separador.derecha { --sep: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='635' height='12' viewBox='0 0 635 12'%3E%3Ccircle cx='629.2' cy='6' r='4.2'/%3E%3Ccircle cx='616.2' cy='6' r='2.83' fill-opacity='0.98'/%3E%3Ccircle cx='603.2' cy='6' r='2.76' fill-opacity='0.96'/%3E%3Ccircle cx='590.2' cy='6' r='2.69' fill-opacity='0.93'/%3E%3Ccircle cx='577.2' cy='6' r='2.62' fill-opacity='0.91'/%3E%3Ccircle cx='564.2' cy='6' r='2.55' fill-opacity='0.89'/%3E%3Ccircle cx='551.2' cy='6' r='2.48' fill-opacity='0.87'/%3E%3Ccircle cx='538.2' cy='6' r='2.42' fill-opacity='0.84'/%3E%3Ccircle cx='525.2' cy='6' r='2.35' fill-opacity='0.82'/%3E%3Ccircle cx='512.2' cy='6' r='2.28' fill-opacity='0.8'/%3E%3Ccircle cx='499.2' cy='6' r='2.22' fill-opacity='0.78'/%3E%3Ccircle cx='486.2' cy='6' r='2.16' fill-opacity='0.76'/%3E%3Ccircle cx='473.2' cy='6' r='2.09' fill-opacity='0.74'/%3E%3Ccircle cx='460.2' cy='6' r='2.03' fill-opacity='0.71'/%3E%3Ccircle cx='447.2' cy='6' r='1.97' fill-opacity='0.69'/%3E%3Ccircle cx='434.2' cy='6' r='1.91' fill-opacity='0.67'/%3E%3Ccircle cx='421.2' cy='6' r='1.85' fill-opacity='0.65'/%3E%3Ccircle cx='408.2' cy='6' r='1.79' fill-opacity='0.63'/%3E%3Ccircle cx='395.2' cy='6' r='1.74' fill-opacity='0.61'/%3E%3Ccircle cx='382.2' cy='6' r='1.68' fill-opacity='0.59'/%3E%3Ccircle cx='369.2' cy='6' r='1.62' fill-opacity='0.57'/%3E%3Ccircle cx='356.2' cy='6' r='1.57' fill-opacity='0.55'/%3E%3Ccircle cx='343.2' cy='6' r='1.52' fill-opacity='0.52'/%3E%3Ccircle cx='330.2' cy='6' r='1.46' fill-opacity='0.5'/%3E%3Ccircle cx='317.2' cy='6' r='1.41' fill-opacity='0.48'/%3E%3Ccircle cx='304.2' cy='6' r='1.36' fill-opacity='0.46'/%3E%3Ccircle cx='291.2' cy='6' r='1.31' fill-opacity='0.44'/%3E%3Ccircle cx='278.2' cy='6' r='1.27' fill-opacity='0.42'/%3E%3Ccircle cx='265.2' cy='6' r='1.22' fill-opacity='0.4'/%3E%3Ccircle cx='252.2' cy='6' r='1.17' fill-opacity='0.38'/%3E%3Ccircle cx='239.2' cy='6' r='1.13' fill-opacity='0.36'/%3E%3Ccircle cx='226.2' cy='6' r='1.08' fill-opacity='0.34'/%3E%3Ccircle cx='213.2' cy='6' r='1.04' fill-opacity='0.33'/%3E%3Ccircle cx='200.2' cy='6' r='1' fill-opacity='0.31'/%3E%3Ccircle cx='187.2' cy='6' r='0.96' fill-opacity='0.29'/%3E%3Ccircle cx='174.2' cy='6' r='0.92' fill-opacity='0.27'/%3E%3Ccircle cx='161.2' cy='6' r='0.89' fill-opacity='0.25'/%3E%3Ccircle cx='148.2' cy='6' r='0.85' fill-opacity='0.23'/%3E%3Ccircle cx='135.2' cy='6' r='0.82' fill-opacity='0.21'/%3E%3Ccircle cx='122.2' cy='6' r='0.79' fill-opacity='0.2'/%3E%3Ccircle cx='109.2' cy='6' r='0.76' fill-opacity='0.18'/%3E%3Ccircle cx='96.2' cy='6' r='0.73' fill-opacity='0.16'/%3E%3Ccircle cx='83.2' cy='6' r='0.7' fill-opacity='0.15'/%3E%3Ccircle cx='70.2' cy='6' r='0.68' fill-opacity='0.13'/%3E%3Ccircle cx='57.2' cy='6' r='0.66' fill-opacity='0.11'/%3E%3Ccircle cx='44.2' cy='6' r='0.64' fill-opacity='0.1'/%3E%3Ccircle cx='31.2' cy='6' r='0.62' fill-opacity='0.08'/%3E%3Ccircle cx='18.2' cy='6' r='0.61' fill-opacity='0.07'/%3E%3Ccircle cx='5.2' cy='6' r='0.6' fill-opacity='0.06'/%3E%3C/svg%3E"); --sep-ancho: 635px; --sep-pos: right center; }
.orb-separador.derecha.largo { --sep: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='1181' height='12' viewBox='0 0 1181 12'%3E%3Ccircle cx='1175.2' cy='6' r='4.2'/%3E%3Ccircle cx='1162.2' cy='6' r='2.86' fill-opacity='0.99'/%3E%3Ccircle cx='1149.2' cy='6' r='2.82' fill-opacity='0.98'/%3E%3Ccircle cx='1136.2' cy='6' r='2.79' fill-opacity='0.96'/%3E%3Ccircle cx='1123.2' cy='6' r='2.75' fill-opacity='0.95'/%3E%3Ccircle cx='1110.2' cy='6' r='2.71' fill-opacity='0.94'/%3E%3Ccircle cx='1097.2' cy='6' r='2.67' fill-opacity='0.93'/%3E%3Ccircle cx='1084.2' cy='6' r='2.64' fill-opacity='0.92'/%3E%3Ccircle cx='1071.2' cy='6' r='2.6' fill-opacity='0.9'/%3E%3Ccircle cx='1058.2' cy='6' r='2.56' fill-opacity='0.89'/%3E%3Ccircle cx='1045.2' cy='6' r='2.53' fill-opacity='0.88'/%3E%3Ccircle cx='1032.2' cy='6' r='2.49' fill-opacity='0.87'/%3E%3Ccircle cx='1019.2' cy='6' r='2.46' fill-opacity='0.86'/%3E%3Ccircle cx='1006.2' cy='6' r='2.42' fill-opacity='0.85'/%3E%3Ccircle cx='993.2' cy='6' r='2.38' fill-opacity='0.83'/%3E%3Ccircle cx='980.2' cy='6' r='2.35' fill-opacity='0.82'/%3E%3Ccircle cx='967.2' cy='6' r='2.31' fill-opacity='0.81'/%3E%3Ccircle cx='954.2' cy='6' r='2.28' fill-opacity='0.8'/%3E%3Ccircle cx='941.2' cy='6' r='2.25' fill-opacity='0.79'/%3E%3Ccircle cx='928.2' cy='6' r='2.21' fill-opacity='0.78'/%3E%3Ccircle cx='915.2' cy='6' r='2.18' fill-opacity='0.76'/%3E%3Ccircle cx='902.2' cy='6' r='2.14' fill-opacity='0.75'/%3E%3Ccircle cx='889.2' cy='6' r='2.11' fill-opacity='0.74'/%3E%3Ccircle cx='876.2' cy='6' r='2.08' fill-opacity='0.73'/%3E%3Ccircle cx='863.2' cy='6' r='2.04' fill-opacity='0.72'/%3E%3Ccircle cx='850.2' cy='6' r='2.01' fill-opacity='0.71'/%3E%3Ccircle cx='837.2' cy='6' r='1.98' fill-opacity='0.7'/%3E%3Ccircle cx='824.2' cy='6' r='1.95' fill-opacity='0.68'/%3E%3Ccircle cx='811.2' cy='6' r='1.92' fill-opacity='0.67'/%3E%3Ccircle cx='798.2' cy='6' r='1.88' fill-opacity='0.66'/%3E%3Ccircle cx='785.2' cy='6' r='1.85' fill-opacity='0.65'/%3E%3Ccircle cx='772.2' cy='6' r='1.82' fill-opacity='0.64'/%3E%3Ccircle cx='759.2' cy='6' r='1.79' fill-opacity='0.63'/%3E%3Ccircle cx='746.2' cy='6' r='1.76' fill-opacity='0.62'/%3E%3Ccircle cx='733.2' cy='6' r='1.73' fill-opacity='0.6'/%3E%3Ccircle cx='720.2' cy='6' r='1.7' fill-opacity='0.59'/%3E%3Ccircle cx='707.2' cy='6' r='1.67' fill-opacity='0.58'/%3E%3Ccircle cx='694.2' cy='6' r='1.64' fill-opacity='0.57'/%3E%3Ccircle cx='681.2' cy='6' r='1.61' fill-opacity='0.56'/%3E%3Ccircle cx='668.2' cy='6' r='1.58' fill-opacity='0.55'/%3E%3Ccircle cx='655.2' cy='6' r='1.55' fill-opacity='0.54'/%3E%3Ccircle cx='642.2' cy='6' r='1.52' fill-opacity='0.53'/%3E%3Ccircle cx='629.2' cy='6' r='1.5' fill-opacity='0.52'/%3E%3Ccircle cx='616.2' cy='6' r='1.47' fill-opacity='0.51'/%3E%3Ccircle cx='603.2' cy='6' r='1.44' fill-opacity='0.49'/%3E%3Ccircle cx='590.2' cy='6' r='1.41' fill-opacity='0.48'/%3E%3Ccircle cx='577.2' cy='6' r='1.39' fill-opacity='0.47'/%3E%3Ccircle cx='564.2' cy='6' r='1.36' fill-opacity='0.46'/%3E%3Ccircle cx='551.2' cy='6' r='1.33' fill-opacity='0.45'/%3E%3Ccircle cx='538.2' cy='6' r='1.31' fill-opacity='0.44'/%3E%3Ccircle cx='525.2' cy='6' r='1.28' fill-opacity='0.43'/%3E%3Ccircle cx='512.2' cy='6' r='1.26' fill-opacity='0.42'/%3E%3Ccircle cx='499.2' cy='6' r='1.23' fill-opacity='0.41'/%3E%3Ccircle cx='486.2' cy='6' r='1.21' fill-opacity='0.4'/%3E%3Ccircle cx='473.2' cy='6' r='1.18' fill-opacity='0.39'/%3E%3Ccircle cx='460.2' cy='6' r='1.16' fill-opacity='0.38'/%3E%3Ccircle cx='447.2' cy='6' r='1.13' fill-opacity='0.37'/%3E%3Ccircle cx='434.2' cy='6' r='1.11' fill-opacity='0.36'/%3E%3Ccircle cx='421.2' cy='6' r='1.09' fill-opacity='0.35'/%3E%3Ccircle cx='408.2' cy='6' r='1.06' fill-opacity='0.34'/%3E%3Ccircle cx='395.2' cy='6' r='1.04' fill-opacity='0.33'/%3E%3Ccircle cx='382.2' cy='6' r='1.02' fill-opacity='0.32'/%3E%3Ccircle cx='369.2' cy='6' r='1' fill-opacity='0.31'/%3E%3Ccircle cx='356.2' cy='6' r='0.98' fill-opacity='0.3'/%3E%3Ccircle cx='343.2' cy='6' r='0.96' fill-opacity='0.29'/%3E%3Ccircle cx='330.2' cy='6' r='0.94' fill-opacity='0.28'/%3E%3Ccircle cx='317.2' cy='6' r='0.92' fill-opacity='0.27'/%3E%3Ccircle cx='304.2' cy='6' r='0.9' fill-opacity='0.26'/%3E%3Ccircle cx='291.2' cy='6' r='0.88' fill-opacity='0.25'/%3E%3Ccircle cx='278.2' cy='6' r='0.86' fill-opacity='0.24'/%3E%3Ccircle cx='265.2' cy='6' r='0.84' fill-opacity='0.23'/%3E%3Ccircle cx='252.2' cy='6' r='0.82' fill-opacity='0.22'/%3E%3Ccircle cx='239.2' cy='6' r='0.81' fill-opacity='0.21'/%3E%3Ccircle cx='226.2' cy='6' r='0.79' fill-opacity='0.2'/%3E%3Ccircle cx='213.2' cy='6' r='0.77' fill-opacity='0.19'/%3E%3Ccircle cx='200.2' cy='6' r='0.76' fill-opacity='0.18'/%3E%3Ccircle cx='187.2' cy='6' r='0.74' fill-opacity='0.17'/%3E%3Ccircle cx='174.2' cy='6' r='0.73' fill-opacity='0.16'/%3E%3Ccircle cx='161.2' cy='6' r='0.71' fill-opacity='0.15'/%3E%3Ccircle cx='148.2' cy='6' r='0.7' fill-opacity='0.14'/%3E%3Ccircle cx='135.2' cy='6' r='0.69' fill-opacity='0.14'/%3E%3Ccircle cx='122.2' cy='6' r='0.67' fill-opacity='0.13'/%3E%3Ccircle cx='109.2' cy='6' r='0.66' fill-opacity='0.12'/%3E%3Ccircle cx='96.2' cy='6' r='0.65' fill-opacity='0.11'/%3E%3Ccircle cx='83.2' cy='6' r='0.64' fill-opacity='0.1'/%3E%3Ccircle cx='70.2' cy='6' r='0.63' fill-opacity='0.09'/%3E%3Ccircle cx='57.2' cy='6' r='0.62' fill-opacity='0.09'/%3E%3Ccircle cx='44.2' cy='6' r='0.61' fill-opacity='0.08'/%3E%3Ccircle cx='31.2' cy='6' r='0.61' fill-opacity='0.07'/%3E%3Ccircle cx='18.2' cy='6' r='0.6' fill-opacity='0.07'/%3E%3Ccircle cx='5.2' cy='6' r='0.6' fill-opacity='0.06'/%3E%3C/svg%3E"); --sep-ancho: 1181px; }
.orb-separador.parejo { background: color-mix(in srgb, currentColor 42%, transparent);
  -webkit-mask: radial-gradient(circle, #000 1.1px, transparent 1.7px) left center / 10px 12px;
          mask: radial-gradient(circle, #000 1.1px, transparent 1.7px) left center / 10px 12px;
  -webkit-mask-repeat: space no-repeat; mask-repeat: space no-repeat; }
@media (max-width: 639px) {
  .orb-separador, .orb-separador.largo { --sep: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='349' height='12' viewBox='0 0 349 12'%3E%3Ccircle cx='5.2' cy='6' r='0.6' fill-opacity='0.06'/%3E%3Ccircle cx='18.2' cy='6' r='0.65' fill-opacity='0.11'/%3E%3Ccircle cx='31.2' cy='6' r='0.74' fill-opacity='0.17'/%3E%3Ccircle cx='44.2' cy='6' r='0.85' fill-opacity='0.23'/%3E%3Ccircle cx='57.2' cy='6' r='0.99' fill-opacity='0.3'/%3E%3Ccircle cx='70.2' cy='6' r='1.15' fill-opacity='0.37'/%3E%3Ccircle cx='83.2' cy='6' r='1.32' fill-opacity='0.45'/%3E%3Ccircle cx='96.2' cy='6' r='1.51' fill-opacity='0.52'/%3E%3Ccircle cx='109.2' cy='6' r='1.71' fill-opacity='0.6'/%3E%3Ccircle cx='122.2' cy='6' r='1.92' fill-opacity='0.68'/%3E%3Ccircle cx='135.2' cy='6' r='2.15' fill-opacity='0.76'/%3E%3Ccircle cx='148.2' cy='6' r='2.39' fill-opacity='0.84'/%3E%3Ccircle cx='161.2' cy='6' r='2.64' fill-opacity='0.92'/%3E%3Ccircle cx='174.2' cy='6' r='4.2'/%3E%3Ccircle cx='187.2' cy='6' r='2.64' fill-opacity='0.92'/%3E%3Ccircle cx='200.2' cy='6' r='2.39' fill-opacity='0.84'/%3E%3Ccircle cx='213.2' cy='6' r='2.15' fill-opacity='0.76'/%3E%3Ccircle cx='226.2' cy='6' r='1.92' fill-opacity='0.68'/%3E%3Ccircle cx='239.2' cy='6' r='1.71' fill-opacity='0.6'/%3E%3Ccircle cx='252.2' cy='6' r='1.51' fill-opacity='0.52'/%3E%3Ccircle cx='265.2' cy='6' r='1.32' fill-opacity='0.45'/%3E%3Ccircle cx='278.2' cy='6' r='1.15' fill-opacity='0.37'/%3E%3Ccircle cx='291.2' cy='6' r='0.99' fill-opacity='0.3'/%3E%3Ccircle cx='304.2' cy='6' r='0.85' fill-opacity='0.23'/%3E%3Ccircle cx='317.2' cy='6' r='0.74' fill-opacity='0.17'/%3E%3Ccircle cx='330.2' cy='6' r='0.65' fill-opacity='0.11'/%3E%3Ccircle cx='343.2' cy='6' r='0.6' fill-opacity='0.06'/%3E%3C/svg%3E"); --sep-ancho: 349px; }
  .orb-separador.izquierda, .orb-separador.izquierda.largo { --sep: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='349' height='12' viewBox='0 0 349 12'%3E%3Ccircle cx='5.2' cy='6' r='4.2'/%3E%3Ccircle cx='18.2' cy='6' r='2.77' fill-opacity='0.96'/%3E%3Ccircle cx='31.2' cy='6' r='2.64' fill-opacity='0.92'/%3E%3Ccircle cx='44.2' cy='6' r='2.51' fill-opacity='0.88'/%3E%3Ccircle cx='57.2' cy='6' r='2.39' fill-opacity='0.84'/%3E%3Ccircle cx='70.2' cy='6' r='2.27' fill-opacity='0.8'/%3E%3Ccircle cx='83.2' cy='6' r='2.15' fill-opacity='0.76'/%3E%3Ccircle cx='96.2' cy='6' r='2.04' fill-opacity='0.72'/%3E%3Ccircle cx='109.2' cy='6' r='1.92' fill-opacity='0.68'/%3E%3Ccircle cx='122.2' cy='6' r='1.82' fill-opacity='0.64'/%3E%3Ccircle cx='135.2' cy='6' r='1.71' fill-opacity='0.6'/%3E%3Ccircle cx='148.2' cy='6' r='1.61' fill-opacity='0.56'/%3E%3Ccircle cx='161.2' cy='6' r='1.51' fill-opacity='0.52'/%3E%3Ccircle cx='174.2' cy='6' r='1.41' fill-opacity='0.48'/%3E%3Ccircle cx='187.2' cy='6' r='1.32' fill-opacity='0.45'/%3E%3Ccircle cx='200.2' cy='6' r='1.23' fill-opacity='0.41'/%3E%3Ccircle cx='213.2' cy='6' r='1.15' fill-opacity='0.37'/%3E%3Ccircle cx='226.2' cy='6' r='1.07' fill-opacity='0.34'/%3E%3Ccircle cx='239.2' cy='6' r='0.99' fill-opacity='0.3'/%3E%3Ccircle cx='252.2' cy='6' r='0.92' fill-opacity='0.27'/%3E%3Ccircle cx='265.2' cy='6' r='0.85' fill-opacity='0.23'/%3E%3Ccircle cx='278.2' cy='6' r='0.79' fill-opacity='0.2'/%3E%3Ccircle cx='291.2' cy='6' r='0.74' fill-opacity='0.17'/%3E%3Ccircle cx='304.2' cy='6' r='0.69' fill-opacity='0.14'/%3E%3Ccircle cx='317.2' cy='6' r='0.65' fill-opacity='0.11'/%3E%3Ccircle cx='330.2' cy='6' r='0.62' fill-opacity='0.08'/%3E%3Ccircle cx='343.2' cy='6' r='0.6' fill-opacity='0.06'/%3E%3C/svg%3E"); --sep-ancho: 349px; }
  .orb-separador.derecha, .orb-separador.derecha.largo { --sep: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='349' height='12' viewBox='0 0 349 12'%3E%3Ccircle cx='343.2' cy='6' r='4.2'/%3E%3Ccircle cx='330.2' cy='6' r='2.77' fill-opacity='0.96'/%3E%3Ccircle cx='317.2' cy='6' r='2.64' fill-opacity='0.92'/%3E%3Ccircle cx='304.2' cy='6' r='2.51' fill-opacity='0.88'/%3E%3Ccircle cx='291.2' cy='6' r='2.39' fill-opacity='0.84'/%3E%3Ccircle cx='278.2' cy='6' r='2.27' fill-opacity='0.8'/%3E%3Ccircle cx='265.2' cy='6' r='2.15' fill-opacity='0.76'/%3E%3Ccircle cx='252.2' cy='6' r='2.04' fill-opacity='0.72'/%3E%3Ccircle cx='239.2' cy='6' r='1.92' fill-opacity='0.68'/%3E%3Ccircle cx='226.2' cy='6' r='1.82' fill-opacity='0.64'/%3E%3Ccircle cx='213.2' cy='6' r='1.71' fill-opacity='0.6'/%3E%3Ccircle cx='200.2' cy='6' r='1.61' fill-opacity='0.56'/%3E%3Ccircle cx='187.2' cy='6' r='1.51' fill-opacity='0.52'/%3E%3Ccircle cx='174.2' cy='6' r='1.41' fill-opacity='0.48'/%3E%3Ccircle cx='161.2' cy='6' r='1.32' fill-opacity='0.45'/%3E%3Ccircle cx='148.2' cy='6' r='1.23' fill-opacity='0.41'/%3E%3Ccircle cx='135.2' cy='6' r='1.15' fill-opacity='0.37'/%3E%3Ccircle cx='122.2' cy='6' r='1.07' fill-opacity='0.34'/%3E%3Ccircle cx='109.2' cy='6' r='0.99' fill-opacity='0.3'/%3E%3Ccircle cx='96.2' cy='6' r='0.92' fill-opacity='0.27'/%3E%3Ccircle cx='83.2' cy='6' r='0.85' fill-opacity='0.23'/%3E%3Ccircle cx='70.2' cy='6' r='0.79' fill-opacity='0.2'/%3E%3Ccircle cx='57.2' cy='6' r='0.74' fill-opacity='0.17'/%3E%3Ccircle cx='44.2' cy='6' r='0.69' fill-opacity='0.14'/%3E%3Ccircle cx='31.2' cy='6' r='0.65' fill-opacity='0.11'/%3E%3Ccircle cx='18.2' cy='6' r='0.62' fill-opacity='0.08'/%3E%3Ccircle cx='5.2' cy='6' r='0.6' fill-opacity='0.06'/%3E%3C/svg%3E"); --sep-ancho: 349px; }
}
.orb-separador[data-agente="cian"]  { color: var(--orb-cian-ink); }
.orb-separador[data-agente="lila"]  { color: var(--orb-lila-ink); }
.orb-separador[data-agente="ambar"] { color: var(--orb-ambar-ink); }
.orb-separador[data-agente="menta"] { color: var(--orb-menta-ink); }
.orb-separador[data-agente="coral"] { color: var(--orb-coral-ink); }
.orb-separador.suave { color: var(--orb-muted); }
@media print {
  .orb-separador, .orb-separador.largo { -webkit-mask: none; mask: none; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23191919' width='635' height='12' viewBox='0 0 635 12'%3E%3Ccircle cx='5.2' cy='6' r='0.6' fill-opacity='0.06'/%3E%3Ccircle cx='18.2' cy='6' r='0.62' fill-opacity='0.08'/%3E%3Ccircle cx='31.2' cy='6' r='0.66' fill-opacity='0.11'/%3E%3Ccircle cx='44.2' cy='6' r='0.7' fill-opacity='0.15'/%3E%3Ccircle cx='57.2' cy='6' r='0.76' fill-opacity='0.18'/%3E%3Ccircle cx='70.2' cy='6' r='0.82' fill-opacity='0.21'/%3E%3Ccircle cx='83.2' cy='6' r='0.89' fill-opacity='0.25'/%3E%3Ccircle cx='96.2' cy='6' r='0.96' fill-opacity='0.29'/%3E%3Ccircle cx='109.2' cy='6' r='1.04' fill-opacity='0.33'/%3E%3Ccircle cx='122.2' cy='6' r='1.13' fill-opacity='0.36'/%3E%3Ccircle cx='135.2' cy='6' r='1.22' fill-opacity='0.4'/%3E%3Ccircle cx='148.2' cy='6' r='1.31' fill-opacity='0.44'/%3E%3Ccircle cx='161.2' cy='6' r='1.41' fill-opacity='0.48'/%3E%3Ccircle cx='174.2' cy='6' r='1.52' fill-opacity='0.52'/%3E%3Ccircle cx='187.2' cy='6' r='1.62' fill-opacity='0.57'/%3E%3Ccircle cx='200.2' cy='6' r='1.74' fill-opacity='0.61'/%3E%3Ccircle cx='213.2' cy='6' r='1.85' fill-opacity='0.65'/%3E%3Ccircle cx='226.2' cy='6' r='1.97' fill-opacity='0.69'/%3E%3Ccircle cx='239.2' cy='6' r='2.09' fill-opacity='0.74'/%3E%3Ccircle cx='252.2' cy='6' r='2.22' fill-opacity='0.78'/%3E%3Ccircle cx='265.2' cy='6' r='2.35' fill-opacity='0.82'/%3E%3Ccircle cx='278.2' cy='6' r='2.48' fill-opacity='0.87'/%3E%3Ccircle cx='291.2' cy='6' r='2.62' fill-opacity='0.91'/%3E%3Ccircle cx='304.2' cy='6' r='2.76' fill-opacity='0.96'/%3E%3Ccircle cx='317.2' cy='6' r='4.2'/%3E%3Ccircle cx='330.2' cy='6' r='2.76' fill-opacity='0.96'/%3E%3Ccircle cx='343.2' cy='6' r='2.62' fill-opacity='0.91'/%3E%3Ccircle cx='356.2' cy='6' r='2.48' fill-opacity='0.87'/%3E%3Ccircle cx='369.2' cy='6' r='2.35' fill-opacity='0.82'/%3E%3Ccircle cx='382.2' cy='6' r='2.22' fill-opacity='0.78'/%3E%3Ccircle cx='395.2' cy='6' r='2.09' fill-opacity='0.74'/%3E%3Ccircle cx='408.2' cy='6' r='1.97' fill-opacity='0.69'/%3E%3Ccircle cx='421.2' cy='6' r='1.85' fill-opacity='0.65'/%3E%3Ccircle cx='434.2' cy='6' r='1.74' fill-opacity='0.61'/%3E%3Ccircle cx='447.2' cy='6' r='1.62' fill-opacity='0.57'/%3E%3Ccircle cx='460.2' cy='6' r='1.52' fill-opacity='0.52'/%3E%3Ccircle cx='473.2' cy='6' r='1.41' fill-opacity='0.48'/%3E%3Ccircle cx='486.2' cy='6' r='1.31' fill-opacity='0.44'/%3E%3Ccircle cx='499.2' cy='6' r='1.22' fill-opacity='0.4'/%3E%3Ccircle cx='512.2' cy='6' r='1.13' fill-opacity='0.36'/%3E%3Ccircle cx='525.2' cy='6' r='1.04' fill-opacity='0.33'/%3E%3Ccircle cx='538.2' cy='6' r='0.96' fill-opacity='0.29'/%3E%3Ccircle cx='551.2' cy='6' r='0.89' fill-opacity='0.25'/%3E%3Ccircle cx='564.2' cy='6' r='0.82' fill-opacity='0.21'/%3E%3Ccircle cx='577.2' cy='6' r='0.76' fill-opacity='0.18'/%3E%3Ccircle cx='590.2' cy='6' r='0.7' fill-opacity='0.15'/%3E%3Ccircle cx='603.2' cy='6' r='0.66' fill-opacity='0.11'/%3E%3Ccircle cx='616.2' cy='6' r='0.62' fill-opacity='0.08'/%3E%3Ccircle cx='629.2' cy='6' r='0.6' fill-opacity='0.06'/%3E%3C/svg%3E") center / min(100%, 635px) auto no-repeat; }
  .orb-separador.izquierda, .orb-separador.izquierda.largo { background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23191919' width='635' height='12' viewBox='0 0 635 12'%3E%3Ccircle cx='5.2' cy='6' r='4.2'/%3E%3Ccircle cx='18.2' cy='6' r='2.83' fill-opacity='0.98'/%3E%3Ccircle cx='31.2' cy='6' r='2.76' fill-opacity='0.96'/%3E%3Ccircle cx='44.2' cy='6' r='2.69' fill-opacity='0.93'/%3E%3Ccircle cx='57.2' cy='6' r='2.62' fill-opacity='0.91'/%3E%3Ccircle cx='70.2' cy='6' r='2.55' fill-opacity='0.89'/%3E%3Ccircle cx='83.2' cy='6' r='2.48' fill-opacity='0.87'/%3E%3Ccircle cx='96.2' cy='6' r='2.42' fill-opacity='0.84'/%3E%3Ccircle cx='109.2' cy='6' r='2.35' fill-opacity='0.82'/%3E%3Ccircle cx='122.2' cy='6' r='2.28' fill-opacity='0.8'/%3E%3Ccircle cx='135.2' cy='6' r='2.22' fill-opacity='0.78'/%3E%3Ccircle cx='148.2' cy='6' r='2.16' fill-opacity='0.76'/%3E%3Ccircle cx='161.2' cy='6' r='2.09' fill-opacity='0.74'/%3E%3Ccircle cx='174.2' cy='6' r='2.03' fill-opacity='0.71'/%3E%3Ccircle cx='187.2' cy='6' r='1.97' fill-opacity='0.69'/%3E%3Ccircle cx='200.2' cy='6' r='1.91' fill-opacity='0.67'/%3E%3Ccircle cx='213.2' cy='6' r='1.85' fill-opacity='0.65'/%3E%3Ccircle cx='226.2' cy='6' r='1.79' fill-opacity='0.63'/%3E%3Ccircle cx='239.2' cy='6' r='1.74' fill-opacity='0.61'/%3E%3Ccircle cx='252.2' cy='6' r='1.68' fill-opacity='0.59'/%3E%3Ccircle cx='265.2' cy='6' r='1.62' fill-opacity='0.57'/%3E%3Ccircle cx='278.2' cy='6' r='1.57' fill-opacity='0.55'/%3E%3Ccircle cx='291.2' cy='6' r='1.52' fill-opacity='0.52'/%3E%3Ccircle cx='304.2' cy='6' r='1.46' fill-opacity='0.5'/%3E%3Ccircle cx='317.2' cy='6' r='1.41' fill-opacity='0.48'/%3E%3Ccircle cx='330.2' cy='6' r='1.36' fill-opacity='0.46'/%3E%3Ccircle cx='343.2' cy='6' r='1.31' fill-opacity='0.44'/%3E%3Ccircle cx='356.2' cy='6' r='1.27' fill-opacity='0.42'/%3E%3Ccircle cx='369.2' cy='6' r='1.22' fill-opacity='0.4'/%3E%3Ccircle cx='382.2' cy='6' r='1.17' fill-opacity='0.38'/%3E%3Ccircle cx='395.2' cy='6' r='1.13' fill-opacity='0.36'/%3E%3Ccircle cx='408.2' cy='6' r='1.08' fill-opacity='0.34'/%3E%3Ccircle cx='421.2' cy='6' r='1.04' fill-opacity='0.33'/%3E%3Ccircle cx='434.2' cy='6' r='1' fill-opacity='0.31'/%3E%3Ccircle cx='447.2' cy='6' r='0.96' fill-opacity='0.29'/%3E%3Ccircle cx='460.2' cy='6' r='0.92' fill-opacity='0.27'/%3E%3Ccircle cx='473.2' cy='6' r='0.89' fill-opacity='0.25'/%3E%3Ccircle cx='486.2' cy='6' r='0.85' fill-opacity='0.23'/%3E%3Ccircle cx='499.2' cy='6' r='0.82' fill-opacity='0.21'/%3E%3Ccircle cx='512.2' cy='6' r='0.79' fill-opacity='0.2'/%3E%3Ccircle cx='525.2' cy='6' r='0.76' fill-opacity='0.18'/%3E%3Ccircle cx='538.2' cy='6' r='0.73' fill-opacity='0.16'/%3E%3Ccircle cx='551.2' cy='6' r='0.7' fill-opacity='0.15'/%3E%3Ccircle cx='564.2' cy='6' r='0.68' fill-opacity='0.13'/%3E%3Ccircle cx='577.2' cy='6' r='0.66' fill-opacity='0.11'/%3E%3Ccircle cx='590.2' cy='6' r='0.64' fill-opacity='0.1'/%3E%3Ccircle cx='603.2' cy='6' r='0.62' fill-opacity='0.08'/%3E%3Ccircle cx='616.2' cy='6' r='0.61' fill-opacity='0.07'/%3E%3Ccircle cx='629.2' cy='6' r='0.6' fill-opacity='0.06'/%3E%3C/svg%3E") left center / min(100%, 635px) auto no-repeat; }
  .orb-separador.derecha, .orb-separador.derecha.largo { background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23191919' width='635' height='12' viewBox='0 0 635 12'%3E%3Ccircle cx='629.2' cy='6' r='4.2'/%3E%3Ccircle cx='616.2' cy='6' r='2.83' fill-opacity='0.98'/%3E%3Ccircle cx='603.2' cy='6' r='2.76' fill-opacity='0.96'/%3E%3Ccircle cx='590.2' cy='6' r='2.69' fill-opacity='0.93'/%3E%3Ccircle cx='577.2' cy='6' r='2.62' fill-opacity='0.91'/%3E%3Ccircle cx='564.2' cy='6' r='2.55' fill-opacity='0.89'/%3E%3Ccircle cx='551.2' cy='6' r='2.48' fill-opacity='0.87'/%3E%3Ccircle cx='538.2' cy='6' r='2.42' fill-opacity='0.84'/%3E%3Ccircle cx='525.2' cy='6' r='2.35' fill-opacity='0.82'/%3E%3Ccircle cx='512.2' cy='6' r='2.28' fill-opacity='0.8'/%3E%3Ccircle cx='499.2' cy='6' r='2.22' fill-opacity='0.78'/%3E%3Ccircle cx='486.2' cy='6' r='2.16' fill-opacity='0.76'/%3E%3Ccircle cx='473.2' cy='6' r='2.09' fill-opacity='0.74'/%3E%3Ccircle cx='460.2' cy='6' r='2.03' fill-opacity='0.71'/%3E%3Ccircle cx='447.2' cy='6' r='1.97' fill-opacity='0.69'/%3E%3Ccircle cx='434.2' cy='6' r='1.91' fill-opacity='0.67'/%3E%3Ccircle cx='421.2' cy='6' r='1.85' fill-opacity='0.65'/%3E%3Ccircle cx='408.2' cy='6' r='1.79' fill-opacity='0.63'/%3E%3Ccircle cx='395.2' cy='6' r='1.74' fill-opacity='0.61'/%3E%3Ccircle cx='382.2' cy='6' r='1.68' fill-opacity='0.59'/%3E%3Ccircle cx='369.2' cy='6' r='1.62' fill-opacity='0.57'/%3E%3Ccircle cx='356.2' cy='6' r='1.57' fill-opacity='0.55'/%3E%3Ccircle cx='343.2' cy='6' r='1.52' fill-opacity='0.52'/%3E%3Ccircle cx='330.2' cy='6' r='1.46' fill-opacity='0.5'/%3E%3Ccircle cx='317.2' cy='6' r='1.41' fill-opacity='0.48'/%3E%3Ccircle cx='304.2' cy='6' r='1.36' fill-opacity='0.46'/%3E%3Ccircle cx='291.2' cy='6' r='1.31' fill-opacity='0.44'/%3E%3Ccircle cx='278.2' cy='6' r='1.27' fill-opacity='0.42'/%3E%3Ccircle cx='265.2' cy='6' r='1.22' fill-opacity='0.4'/%3E%3Ccircle cx='252.2' cy='6' r='1.17' fill-opacity='0.38'/%3E%3Ccircle cx='239.2' cy='6' r='1.13' fill-opacity='0.36'/%3E%3Ccircle cx='226.2' cy='6' r='1.08' fill-opacity='0.34'/%3E%3Ccircle cx='213.2' cy='6' r='1.04' fill-opacity='0.33'/%3E%3Ccircle cx='200.2' cy='6' r='1' fill-opacity='0.31'/%3E%3Ccircle cx='187.2' cy='6' r='0.96' fill-opacity='0.29'/%3E%3Ccircle cx='174.2' cy='6' r='0.92' fill-opacity='0.27'/%3E%3Ccircle cx='161.2' cy='6' r='0.89' fill-opacity='0.25'/%3E%3Ccircle cx='148.2' cy='6' r='0.85' fill-opacity='0.23'/%3E%3Ccircle cx='135.2' cy='6' r='0.82' fill-opacity='0.21'/%3E%3Ccircle cx='122.2' cy='6' r='0.79' fill-opacity='0.2'/%3E%3Ccircle cx='109.2' cy='6' r='0.76' fill-opacity='0.18'/%3E%3Ccircle cx='96.2' cy='6' r='0.73' fill-opacity='0.16'/%3E%3Ccircle cx='83.2' cy='6' r='0.7' fill-opacity='0.15'/%3E%3Ccircle cx='70.2' cy='6' r='0.68' fill-opacity='0.13'/%3E%3Ccircle cx='57.2' cy='6' r='0.66' fill-opacity='0.11'/%3E%3Ccircle cx='44.2' cy='6' r='0.64' fill-opacity='0.1'/%3E%3Ccircle cx='31.2' cy='6' r='0.62' fill-opacity='0.08'/%3E%3Ccircle cx='18.2' cy='6' r='0.61' fill-opacity='0.07'/%3E%3Ccircle cx='5.2' cy='6' r='0.6' fill-opacity='0.06'/%3E%3C/svg%3E") right center / min(100%, 635px) auto no-repeat; }
  .orb-separador.parejo { background: radial-gradient(circle, rgb(25 25 25 / .42) 1.1px, transparent 1.7px) left center / 10px 12px; background-repeat: space no-repeat; }
}
/* </separadores> */

/* =====================================================================
   13 · BARRA DE NAVEGACIÓN (se adapta a su ancho, no al de la ventana)
   ===================================================================== */
.orb-nav { container-type: inline-size; position: relative; background: var(--orb-canvas); border-bottom: var(--orb-rail) solid var(--orb-hair); }
.orb-nav .fila { display: flex; align-items: center; justify-content: space-between; gap: 24px; height: 80px; padding: 0 32px; }
.orb-nav .orb-logo { font-size: 36px; }
.orb-nav .enlaces { display: flex; gap: 28px; font: 700 16px/24px var(--orb-font-text); }
.orb-nav .enlaces a, .orb-nav .movil a { color: var(--orb-ink); text-decoration: none; }
.orb-nav .enlaces a:hover { text-decoration: underline; text-underline-offset: 6px; text-decoration-thickness: 1px; }
.orb-nav .enlaces a[aria-current="page"] { text-decoration: underline; text-underline-offset: 6px; text-decoration-thickness: 1.5px; }
.orb-nav .abrir-menu { display: none; }
.orb-nav .movil { display: grid; padding: 8px 20px 24px; border-top: var(--orb-rail) solid var(--orb-hair); }
.orb-nav .movil a { font: 700 18px/24px var(--orb-font-text); padding: 14px 0; border-bottom: var(--orb-rail) solid var(--orb-hair); }
.orb-nav .movil .orb-button { margin-top: 20px; }
.orb-nav .movil[hidden] { display: none; }
@container (max-width: 820px) {
  .orb-nav .fila { padding: 0 20px; height: 68px; }
  .orb-nav .orb-logo { font-size: 30px; }
  .orb-nav .enlaces, .orb-nav .fila > .orb-acciones > .orb-button:not(.abrir-menu) { display: none; }
  .orb-nav .abrir-menu { display: inline-flex; }
}

/* =====================================================================
   14 · PORTADA (hero)
   ===================================================================== */
.orb-portada { container-type: inline-size; position: relative; overflow: hidden; border-bottom: var(--orb-rail) solid var(--orb-hair); }
.orb-portada .contenido { position: relative; padding: 120px 32px 96px; text-align: center; }
.orb-portada h1 { max-width: 16ch; margin: 0 auto 20px; text-wrap: balance; }
.orb-portada .orb-lede { max-width: 72ch; margin: 0 auto 32px; }
.orb-portada .orb-acciones { justify-content: center; }
.orb-pildora { display: inline-flex; align-items: center; gap: 10px; border: var(--orb-rail) solid var(--orb-line); border-radius: var(--orb-r-pill); padding: 4px 12px 4px 4px; background: var(--orb-surface); font: 500 14px/20px var(--orb-font-text); margin-bottom: 28px; color: var(--orb-ink); text-decoration: none; }
.orb-portada.con-agente .contenido { display: grid; grid-template-columns: 7fr 5fr; gap: 32px; align-items: center; text-align: left; padding: 96px 32px 80px 48px; }
.orb-portada.con-agente h1, .orb-portada.con-agente .orb-lede { margin-left: 0; }
.orb-portada.con-agente .orb-acciones { justify-content: flex-start; }
.orb-portada.con-agente .orb-agente { font-size: min(380px, 34cqw); justify-self: center; }
@container (max-width: 760px) {
  .orb-portada .contenido { padding: 64px 20px 56px; }
  .orb-portada h1 { font-size: 44px; line-height: 50px; }
  .orb-portada.con-agente .contenido { grid-template-columns: 1fr; padding: 56px 20px; text-align: left; }
  .orb-portada.con-agente .orb-agente { font-size: 220px; order: -1; justify-self: start; }
}

/* =====================================================================
   14b · EL EQUIPO (portada: los seis agentes encima del titular, siguiendo el cursor)
   ===================================================================== */
/* <div class="orb-equipo">: los seis agentes enteros, uno al lado de otro, muy juntos pero sin taparse
   (el mismo hueco entre todos, medido con la silueta de cada uno). Van en data-modo="sigue": sus ojos
   siguen al cursor por la página. Entran una vez, de uno en uno.
   Variante .redondos: caras en círculos que se montan un poco (con .cara.centro se puede poner el logo en medio). */
.orb-equipo { --agente: 140px; --hueco: 7; display: flex; justify-content: center; align-items: center; margin: -12px auto 12px; }
.orb-equipo .cara { --izq: 20; --der: 20; position: relative; flex: none; margin: 0 calc(var(--agente) * (var(--hueco) / 2 - var(--der)) / 100) 0 calc(var(--agente) * (var(--hueco) / 2 - var(--izq)) / 100); transition: transform var(--orb-dur-feedback) var(--orb-ease); animation: orb-cara-entra 520ms var(--orb-ease-reveal) backwards; animation-delay: calc(var(--i, 0) * 70ms + 120ms); }
.orb-equipo .cara:first-child { margin-left: 0; }
.orb-equipo .cara:last-child { margin-right: 0; }
/* lo que sobra a cada lado de cada silueta, en % de su caja */
.orb-equipo .cara:has(> [data-orb-agente="blanco"]) { --izq: 22;   --der: 21.3; }
.orb-equipo .cara:has(> [data-orb-agente="cian"])   { --izq: 23.2; --der: 20.2; }
.orb-equipo .cara:has(> [data-orb-agente="lila"])   { --izq: 16.2; --der: 19.1; }
.orb-equipo .cara:has(> [data-orb-agente="ambar"])  { --izq: 20.6; --der: 23.1; }
.orb-equipo .cara:has(> [data-orb-agente="menta"])  { --izq: 29.5; --der: 26.5; }
.orb-equipo .cara:has(> [data-orb-agente="coral"])  { --izq: 16.9; --der: 16.6; }
.orb-equipo .cara .orb-agente { display: block; font-size: var(--agente); }
.orb-equipo .cara:hover { transform: translateY(-4px); }
@keyframes orb-cara-entra { from { opacity: 0; transform: translateY(10px) scale(.86); } }
/* variante: caras redondas que se montan un poco */
.orb-equipo.redondos { --cara: 84px; --centro: 108px; --monta: 14px; margin: 0 auto 36px; }
.orb-equipo.redondos .cara { width: var(--cara); height: var(--cara); margin: 0 0 0 calc(var(--monta) * -1); border-radius: 50%; overflow: hidden; background: var(--orb-surface); box-shadow: 0 0 0 3px var(--orb-canvas); }
.orb-equipo.redondos .cara:first-child { margin-left: 0; }
.orb-equipo.redondos .cara:has(> [data-orb-agente="cian"])  { background: var(--orb-cian-surface); }
.orb-equipo.redondos .cara:has(> [data-orb-agente="lila"])  { background: var(--orb-lila-surface); }
.orb-equipo.redondos .cara:has(> [data-orb-agente="ambar"]) { background: var(--orb-ambar-surface); }
.orb-equipo.redondos .cara:has(> [data-orb-agente="menta"]) { background: var(--orb-menta-surface); }
.orb-equipo.redondos .cara:has(> [data-orb-agente="coral"]) { background: var(--orb-coral-surface); }
.orb-equipo.redondos .cara .orb-agente { position: absolute; left: 50%; top: 50%; translate: -50% -42%; font-size: calc(var(--cara) * 1.9); }
.orb-equipo.redondos .cara.centro { z-index: 1; width: var(--centro); height: var(--centro); display: grid; place-items: center; background: var(--orb-ink); color: var(--orb-canvas); }
.orb-equipo.redondos .cara.centro .orb-isotipo { font-size: calc(var(--centro) * .62); }
@media (max-width: 767px) {
  .orb-equipo { --agente: 84px; margin: -8px auto 8px; }
  .orb-equipo.redondos { --cara: 54px; --centro: 70px; --monta: 10px; margin-bottom: 28px; }
  .orb-equipo.redondos .cara { box-shadow: 0 0 0 2px var(--orb-canvas); }
}

/* =====================================================================
   15 · CABECERA DE SECCIÓN
   ===================================================================== */
.orb-seccion-cab { display: grid; gap: 16px; padding: 0 32px 48px; }
.orb-seccion-cab h2 { max-width: 18ch; text-wrap: balance; }
.orb-seccion-cab.centrada { justify-items: center; text-align: center; }

/* =====================================================================
   16 · CELDAS CON ILUSTRACIÓN
   ===================================================================== */
.orb-cells > .orb-celda-ilus { padding: 0; display: grid; grid-template-rows: auto 1fr; }
.orb-celda-ilus .ilus { min-height: 200px; display: grid; place-items: center; border-bottom: var(--orb-rail) solid var(--orb-hair); padding: 24px; }
.orb-celda-ilus .ilus .orb-agente { font-size: 120px; }
.orb-celda-ilus .texto { padding: 24px 32px 32px; }
.orb-celda-ilus h3 { font: 500 var(--orb-sub)/var(--orb-sub-lh) var(--orb-font-text); margin-bottom: 6px; }
.orb-celda-ilus p { color: var(--orb-muted); font: 400 16px/24px var(--orb-font-text); }

/* =====================================================================
   17 · RECORRIDO (proceso en pasos, con estela que los une)
   ===================================================================== */
.orb-recorrido { container-type: inline-size; position: relative; padding-top: 32px; }
.orb-recorrido .estela { padding: 0 12.5%; margin-bottom: -18px; position: relative; z-index: 1; }
.orb-recorrido .orb-cells > div { padding-top: 40px; }
.orb-recorrido .n { display: block; font: 400 var(--orb-h3)/var(--orb-h3-lh) var(--orb-font-display); letter-spacing: var(--orb-tracking); color: var(--orb-faint); margin-bottom: 12px; }
.orb-recorrido h3 { font: 500 18px/26px var(--orb-font-text); margin-bottom: 6px; }
.orb-recorrido p { color: var(--orb-muted); font: 400 15px/22px var(--orb-font-text); }
@media (max-width: 767px) { .orb-recorrido .estela { display: none; } }

/* =====================================================================
   18 · ANTES Y DESPUÉS
   ===================================================================== */
.orb-comparar > div { padding: 32px; }
.orb-comparar h3 { font: 500 var(--orb-sub)/var(--orb-sub-lh) var(--orb-font-text); margin: 10px 0 16px; }
.orb-comparar ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.orb-comparar li { display: grid; grid-template-columns: 20px 1fr; gap: 10px; font: 400 16px/24px var(--orb-font-text); }
.orb-comparar li .orb-icono { width: 20px; height: 20px; margin-top: 2px; }
.orb-comparar .antes li { color: var(--orb-muted); }
.orb-comparar .despues { background: var(--orb-surface); }

/* =====================================================================
   19 · ACORDEÓN (preguntas frecuentes y todo lo que se pliega)
   ===================================================================== */

/* <div class="orb-acordeon"> <details name="faq"><summary><span class="n">01</span><span class="q">…</span><span class="signo"></span></summary><div class="respuesta">…</div></details> … */
.orb-acordeon, .orb-preguntas { border-top: var(--orb-rail) solid var(--orb-hair); interpolate-size: allow-keywords; }
.orb-acordeon details { border-bottom: var(--orb-rail) solid var(--orb-hair); transition: background-color var(--orb-dur-state) var(--orb-ease); }
.orb-acordeon details[open] { background: var(--orb-surface); }
.orb-acordeon summary { list-style: none; display: grid; grid-template-columns: 40px 1fr 36px; gap: 16px; align-items: center; padding: 22px 32px; cursor: pointer; font: 500 18px/26px var(--orb-font-text); color: var(--orb-ink); }
.orb-acordeon summary::-webkit-details-marker { display: none; }
.orb-acordeon summary:focus-visible { outline: 2px solid var(--orb-focus); outline-offset: -4px; border-radius: var(--orb-r-control); }
.orb-acordeon .n { font: 400 13px/26px var(--orb-font-mono); letter-spacing: 0; color: var(--orb-faint); transition: color var(--orb-dur-state) var(--orb-ease); }
.orb-acordeon details[open] .n { color: var(--orb-ink); }
.orb-acordeon .signo { position: relative; width: 36px; height: 36px; border-radius: 50%; border: 1px solid var(--orb-line); background: var(--orb-btn-sec); box-shadow: var(--orb-btn-sombra-suave); transition: background var(--orb-dur-state) var(--orb-ease), border-color var(--orb-dur-state) var(--orb-ease); }
.orb-acordeon .signo::before, .orb-acordeon .signo::after { content: ""; position: absolute; left: 50%; top: 50%; width: 12px; height: 1.75px; margin: -.875px 0 0 -6px; border-radius: 2px; background: var(--orb-ink); transition: transform var(--orb-dur-state) var(--orb-ease), background var(--orb-dur-state) var(--orb-ease); }
.orb-acordeon .signo::after { transform: rotate(90deg); }
.orb-acordeon summary:hover .signo { border-color: color-mix(in srgb, var(--orb-ink) 28%, var(--orb-line)); }
.orb-acordeon details[open] .signo { background: var(--orb-action); border-color: var(--orb-action); box-shadow: inset 0 1px 0 rgb(255 255 255 / .16); }
.orb-acordeon details[open] .signo::before, .orb-acordeon details[open] .signo::after { background: var(--orb-on-action); }
.orb-acordeon details[open] .signo::after { transform: rotate(0deg); }
.orb-acordeon .respuesta { padding: 0 84px 26px 88px; color: var(--orb-muted); font: 400 16px/26px var(--orb-font-text); }
.orb-acordeon .respuesta p { max-width: 64ch; }
.orb-acordeon details::details-content { block-size: 0; overflow: hidden; transition: block-size 320ms var(--orb-ease-reveal), content-visibility 320ms allow-discrete; }
.orb-acordeon details[open]::details-content { block-size: auto; }
@media (max-width: 639px) {
  .orb-acordeon summary { grid-template-columns: 1fr 32px; padding: 18px 20px; font-size: 16px; line-height: 24px; }
  .orb-acordeon .n { display: none; }
  .orb-acordeon .signo { width: 32px; height: 32px; }
  .orb-acordeon .respuesta { padding: 0 20px 22px; }
}

/* =====================================================================
   20 · HERRAMIENTAS (de otros, en gris)
   ===================================================================== */
.orb-herramientas { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; }
.orb-herramientas span { padding: 8px 16px; border: var(--orb-rail) solid var(--orb-line); border-radius: var(--orb-r-control); font: 600 14px/20px var(--orb-font-text); color: var(--orb-faint); background: var(--orb-canvas); filter: grayscale(1); }

/* =====================================================================
   21 · BANDA DE CIERRE (la única invertida: lleva el tema contrario)
   ===================================================================== */
.orb-cierre { position: relative; overflow: hidden; background: var(--orb-canvas); color: var(--orb-ink); text-align: center; padding: 140px 32px; }
.orb-cierre > *:not(.orb-textura) { position: relative; }
.orb-cierre .orb-isotipo { font-size: 180px; display: block; margin: 0 auto 32px; }
.orb-cierre h2 { max-width: 16ch; margin: 0 auto 20px; text-wrap: balance; }
.orb-cierre .orb-lede { margin: 0 auto 32px; }
.orb-cierre .orb-acciones { justify-content: center; }

/* =====================================================================
   22 · PIE DE PÁGINA
   ===================================================================== */
.orb-pie { container-type: inline-size; background: var(--orb-canvas); color: var(--orb-ink); }
.orb-pie .columnas { display: grid; grid-template-columns: 2fr repeat(3, 1fr); gap: 32px; padding: 56px 32px 40px; }
.orb-pie .orb-logo { font-size: 36px; color: inherit; }
.orb-pie .marca p { color: var(--orb-muted); font: 400 15px/22px var(--orb-font-text); margin-top: 16px; max-width: 32ch; }
.orb-pie h3 { font: 400 12px/18px var(--orb-font-mono); letter-spacing: .04em; text-transform: uppercase; color: var(--orb-muted); margin-bottom: 14px; }
.orb-pie ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.orb-pie ul a { color: var(--orb-ink); text-decoration: none; font: 500 15px/22px var(--orb-font-text); }
.orb-pie ul a:hover { text-decoration: underline; text-underline-offset: 4px; }
.orb-pie .legal { display: flex; justify-content: space-between; gap: 16px; flex-wrap: wrap; padding: 20px 32px; border-top: var(--orb-rail) solid var(--orb-hair); font: 400 14px/20px var(--orb-font-text); color: var(--orb-muted); }
.orb-pie .legal a { color: var(--orb-muted); }
@container (max-width: 760px) { .orb-pie .columnas { grid-template-columns: 1fr 1fr; padding: 40px 20px 32px; } .orb-pie .marca { grid-column: 1 / -1; } .orb-pie .legal { padding: 20px; } }

/* =====================================================================
   23 · FORMULARIO Y CONTACTO
   ===================================================================== */

.orb-formulario { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.orb-formulario .entero, .orb-formulario .orb-aviso { grid-column: 1 / -1; }
@media (max-width: 639px) { .orb-formulario { grid-template-columns: 1fr; } }
/* sección de contacto: lo que pasa después a la izquierda, el formulario en su panel a la derecha */
.orb-contacto { display: grid; grid-template-columns: 5fr 7fr; gap: clamp(40px, 6vw, 80px); align-items: center; padding-inline: clamp(20px, 5vw, 64px); }
.orb-contacto .lado { width: 100%; max-width: 440px; justify-self: center; }
.orb-contacto .lado h2 { margin: 14px 0 16px; text-wrap: balance; }
.orb-contacto .lado .orb-lede { margin-bottom: 28px; }
/* lo que pasa después: tres pasos juntos en una caja, unidos por una línea de puntos */
.orb-contacto .despues { padding: 22px 24px 4px; border: var(--orb-rail) solid var(--orb-hair); border-radius: var(--orb-r-card); background: var(--orb-surface); }
.orb-contacto .despues > .orb-label { display: block; margin-bottom: 16px; }
.orb-contacto .despues ol { list-style: none; margin: 0; padding: 0; counter-reset: paso; }
.orb-contacto .despues li { position: relative; display: grid; grid-template-columns: 32px 1fr; column-gap: 14px; padding-bottom: 18px; counter-increment: paso; }
.orb-contacto .despues li::before { content: counter(paso); grid-row: span 2; width: 32px; height: 32px; border-radius: 50%; display: grid; place-items: center; border: var(--orb-rail) solid var(--orb-line); background: var(--orb-canvas); font: 500 13px/1 var(--orb-font-text); color: var(--orb-ink); position: relative; z-index: 1; }
.orb-contacto .despues li:first-child::before { background: var(--orb-ink); border-color: var(--orb-ink); color: var(--orb-canvas); }
.orb-contacto .despues li:not(:last-child)::after { content: ""; position: absolute; left: 15px; top: 36px; bottom: 2px; width: 2px; background: radial-gradient(circle, var(--orb-control) 0.9px, transparent 1.3px) center top / 2px 6px repeat-y; }
.orb-contacto .despues b { font: 500 15px/22px var(--orb-font-text); color: var(--orb-ink); padding-top: 5px; }
.orb-contacto .despues span { font: 400 14px/20px var(--orb-font-text); color: var(--orb-muted); }
.orb-contacto .panel { background: var(--orb-surface); border: var(--orb-rail) solid var(--orb-hair); border-radius: var(--orb-r-panel); box-shadow: var(--orb-shadow-card); padding: 32px; }
.orb-contacto .panel .pie-form { display: grid; gap: 14px; }
.orb-contacto .listo { display: grid; justify-items: center; text-align: center; gap: 10px; padding: 24px 8px; }
.orb-contacto .listo .orb-agente { font-size: 150px; margin: -16px 0 -12px; }
.orb-contacto .listo h3 { font: 500 var(--orb-h4)/var(--orb-h4-lh) var(--orb-font-text); }
.orb-contacto .listo p { color: var(--orb-muted); max-width: 38ch; font: 400 15px/22px var(--orb-font-text); margin-bottom: 8px; }
@media (max-width: 899px) { .orb-contacto { grid-template-columns: 1fr; gap: 32px; } .orb-contacto .lado { max-width: 560px; justify-self: start; } }
@media (max-width: 639px) { .orb-contacto .panel { padding: 20px; } }

/* =====================================================================
   24 · CITA (solo citas reales, con permiso)
   ===================================================================== */
.orb-cita { margin: 0; display: grid; gap: 24px; }
.orb-cita blockquote { margin: 0; font: 400 var(--orb-h3)/var(--orb-h3-lh) var(--orb-font-display); letter-spacing: var(--orb-tracking); max-width: 30ch; text-wrap: balance; }
.orb-cita figcaption { display: flex; align-items: center; gap: 12px; font: 400 15px/22px var(--orb-font-text); color: var(--orb-muted); }
.orb-cita figcaption b { color: var(--orb-ink); font-weight: 600; display: block; }
.orb-cita .inicial { width: 44px; height: 44px; border-radius: 50%; display: grid; place-items: center; background: var(--orb-soft); color: var(--orb-ink); font: 600 15px/1 var(--orb-font-text); }

/* =====================================================================
   25 · LISTA DE PROCESOS (app)
   ===================================================================== */
.orb-procesos { border-top: var(--orb-rail) solid var(--orb-hair); }
.orb-proceso { display: grid; grid-template-columns: minmax(0, 2.4fr) minmax(0, 1.4fr) minmax(0, 1fr) minmax(0, .9fr) 40px; gap: 16px; align-items: center; padding: 14px 16px; border-bottom: var(--orb-rail) solid var(--orb-hair); font: 400 15px/22px var(--orb-font-text); }
.orb-proceso.cab { font: 400 12px/18px var(--orb-font-mono); letter-spacing: .04em; text-transform: uppercase; color: var(--orb-muted); padding-block: 10px; }
.orb-proceso .nombre b { display: block; font-weight: 500; }
.orb-proceso .nombre span { color: var(--orb-muted); font-size: 14px; }
.orb-proceso .agente { display: flex; align-items: center; gap: 8px; min-width: 0; }
.orb-proceso .agente .orb-agente { font-size: 32px; }
.orb-proceso .cuando { color: var(--orb-muted); font-size: 14px; }
.orb-proceso:not(.cab):hover { background: var(--orb-surface); }
@media (max-width: 767px) {
  .orb-proceso { grid-template-columns: 1fr auto; row-gap: 6px; }
  .orb-proceso.cab { display: none; }
  .orb-proceso .agente { grid-column: 1; }
  .orb-proceso .cuando { display: none; }
  .orb-proceso .orb-desplegable { grid-row: 1; grid-column: 2; }
  .orb-proceso > :nth-child(3), .orb-proceso .orb-desplegable { justify-self: end; }
}

/* =====================================================================
   26 · TARJETA DE AGENTE
   ===================================================================== */
.orb-tarjeta-agente { display: grid; gap: 4px; justify-items: start; background: var(--orb-surface); border: var(--orb-rail) solid var(--orb-hair); border-radius: var(--orb-r-card); box-shadow: var(--orb-shadow-card); padding: 24px; transition: box-shadow var(--orb-dur-state) var(--orb-ease); }
.orb-tarjeta-agente:hover { box-shadow: var(--orb-shadow-overlay); }
.orb-tarjeta-agente .orb-agente { font-size: 112px; margin: -8px 0 4px -10px; }
.orb-tarjeta-agente h3 { font: 500 var(--orb-sub)/var(--orb-sub-lh) var(--orb-font-text); }
.orb-tarjeta-agente p { color: var(--orb-muted); font: 400 15px/22px var(--orb-font-text); margin-bottom: 12px; }
.orb-tarjeta-agente .pie-tarjeta .orb-meta, .orb-tarjeta-agente .pie-tarjeta .orb-button { white-space: nowrap; }
.orb-tarjeta-agente .pie-tarjeta { display: flex; justify-content: space-between; align-items: center; gap: 12px; width: 100%; margin-top: 12px; padding-top: 16px; border-top: var(--orb-rail) solid var(--orb-hair); }

/* =====================================================================
   27 · MÉTRICA (solo con un dato real y su fuente)
   ===================================================================== */
.orb-metrica { display: grid; gap: 6px; align-content: start; }
.orb-metrica .valor { font: 400 var(--orb-h1)/var(--orb-h1-lh) var(--orb-font-display); letter-spacing: var(--orb-tracking); font-variant-numeric: tabular-nums; }
.orb-metrica .valor small { font: 400 var(--orb-h4)/1 var(--orb-font-display); color: var(--orb-muted); margin-left: 4px; }
.orb-metrica .fuente { font: 400 13px/18px var(--orb-font-text); color: var(--orb-muted); margin-top: 6px; }

/* =====================================================================
   28-29 · GRÁFICOS (motor: <figure class="orb-grafico" data-orb-grafico='{…}'>)
   ===================================================================== */

/* En una tarjeta: arriba el título y la cifra del periodo; debajo, el gráfico dibujado al ancho real.
   Base gris y un solo acento (tinta, o la de un agente con "agente"). Al pasar el ratón, cada dato
   dice su valor. Las barras crecen y la línea se dibuja una sola vez, al verse. */
.orb-grafico { --acento: var(--orb-ink); margin: 0; display: grid; gap: 20px; padding: 22px 24px 14px; background: var(--orb-surface); border: var(--orb-rail) solid var(--orb-hair); border-radius: var(--orb-r-card); }
.orb-grafico figcaption { display: flex; justify-content: space-between; align-items: flex-start; gap: 12px 24px; flex-wrap: wrap; }
.orb-grafico .titulo { display: grid; gap: 2px; }
.orb-grafico .titulo b { font: 500 15px/22px var(--orb-font-text); color: var(--orb-ink); }
.orb-grafico .titulo span { font: 400 13px/18px var(--orb-font-text); color: var(--orb-muted); }
.orb-grafico .cifra { display: flex; align-items: center; gap: 10px; }
.orb-grafico .cifra strong { font: 400 32px/1 var(--orb-font-display); letter-spacing: var(--orb-tracking); color: var(--orb-ink); }
.orb-grafico .leyenda { display: flex; flex-wrap: wrap; gap: 6px 16px; margin-top: -8px; font: 400 13px/18px var(--orb-font-text); color: var(--orb-muted); }
.orb-grafico .leyenda i { display: inline-block; width: 16px; border-top: 2px solid var(--acento); vertical-align: middle; margin: -2px 6px 0 0; }
.orb-grafico .leyenda i.antes { border-top-style: dashed; border-color: var(--orb-faint); }
.orb-grafico .lienzo { position: relative; min-height: 240px; touch-action: pan-y; }
.orb-grafico svg { display: block; overflow: visible; }
.orb-grafico .eje { font: 400 11px var(--orb-font-mono); fill: var(--orb-muted); letter-spacing: 0; }
.orb-grafico .rejilla { stroke: var(--orb-hair); stroke-width: 1; stroke-dasharray: 3 4; }
.orb-grafico .base { stroke: var(--orb-line); stroke-width: 1; }
.orb-grafico .barra { fill: color-mix(in srgb, var(--orb-ink) 11%, transparent); transition: fill var(--orb-dur-feedback) var(--orb-ease); }
.orb-grafico .barra.encima { fill: color-mix(in srgb, var(--orb-ink) 24%, transparent); }
.orb-grafico .barra.destacada { fill: var(--acento); }
.orb-grafico .pildora rect { fill: var(--acento); }
.orb-grafico .pildora text { font: 600 12px var(--orb-font-text); fill: var(--orb-surface); letter-spacing: 0; }
.orb-grafico .trazo { fill: none; stroke: var(--acento); stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.orb-grafico .anterior { fill: none; stroke: var(--orb-faint); stroke-width: 1.5; stroke-dasharray: 4 4; }
.orb-grafico .final { fill: var(--acento); stroke: var(--orb-surface); stroke-width: 3; }
.orb-grafico .guia { stroke: var(--orb-line); stroke-width: 1; }
.orb-grafico .marca { fill: var(--orb-surface); stroke: var(--acento); stroke-width: 2; }
.orb-grafico .punta { position: absolute; left: 0; top: -8px; z-index: 2; display: flex; gap: 8px; align-items: baseline; padding: 6px 10px; border-radius: var(--orb-r-media); background: var(--orb-invert-bg); color: var(--orb-invert-ink); font: 400 12px/16px var(--orb-font-text); white-space: nowrap; pointer-events: none; box-shadow: var(--orb-shadow-overlay); }
.orb-grafico .punta b { font-weight: 600; }
.orb-grafico .punta span { opacity: .72; }
.orb-grafico .punta[hidden] { display: none; }
.orb-grafico.espera .barra, .orb-grafico.espera .pildora, .orb-grafico.espera .trazo, .orb-grafico.espera .area, .orb-grafico.espera .final { opacity: 0; }
.orb-grafico.entra .barra { transform-box: fill-box; transform-origin: bottom; animation: orb-barra-crece 640ms var(--orb-ease-reveal) both; animation-delay: calc(var(--i, 0) * 45ms); }
.orb-grafico.entra .pildora, .orb-grafico.entra .final { animation: orb-aparece 360ms var(--orb-ease) 560ms both; }
.orb-grafico.entra .trazo { stroke-dasharray: 1; animation: orb-trazo 900ms var(--orb-ease-reveal) both; }
.orb-grafico.entra .area { animation: orb-aparece 700ms var(--orb-ease) 300ms both; }
@keyframes orb-barra-crece { from { transform: scaleY(0); } }
@keyframes orb-trazo { from { stroke-dashoffset: 1; } to { stroke-dashoffset: 0; } }
@keyframes orb-aparece { from { opacity: 0; } }

/* =====================================================================
   30 · REGISTRO DE ACTIVIDAD
   ===================================================================== */
.orb-registro { list-style: none; margin: 0; padding: 0; border-top: var(--orb-rail) solid var(--orb-hair); }
.orb-registro li { display: grid; grid-template-columns: 64px 12px 1fr; gap: 12px; align-items: baseline; padding: 12px 0; border-bottom: var(--orb-rail) solid var(--orb-hair); font: 400 15px/22px var(--orb-font-text); }
.orb-registro time { font: 400 13px/22px var(--orb-font-mono); letter-spacing: 0; color: var(--orb-muted); }
.orb-registro .punto { width: 8px; height: 8px; border-radius: 50%; background: var(--orb-faint); transform: translateY(-1px); }
.orb-registro .punto.cian { background: var(--orb-agent-cian); } .orb-registro .punto.lila { background: var(--orb-agent-lila); } .orb-registro .punto.ambar { background: var(--orb-agent-ambar); } .orb-registro .punto.menta { background: var(--orb-agent-menta); } .orb-registro .punto.coral { background: var(--orb-agent-coral); } .orb-registro .punto.nucleo { background: var(--orb-ink); }
.orb-registro b { font-weight: 600; }
.orb-registro .orb-meta { display: block; }

/* =====================================================================
   35 · FLUJO DE AGENTES (tarjetas unidas por una línea con flecha)
   ===================================================================== */
/* <ol class="orb-flujo">: nodo, conector, nodo… Cada nodo dice qué es (disparador, agente,
   resultado), quién y qué hace. Un pulso recorre las líneas en orden, como el trabajo pasando
   de uno a otro (solo transform y opacidad; se para con movimiento reducido). */
.orb-flujo { list-style: none; margin: 0; padding: 0; display: grid; grid-auto-flow: column; grid-auto-columns: minmax(0, 1fr) minmax(28px, 56px); align-items: center; }
.orb-flujo .nodo { display: grid; justify-items: center; align-content: start; gap: 2px; height: 100%; box-sizing: border-box; padding: 14px 12px 18px; text-align: center; background: var(--orb-surface); border: var(--orb-rail) solid var(--orb-hair); border-radius: var(--orb-r-card); }
.orb-flujo .tipo { font: 500 11px/16px var(--orb-font-mono); letter-spacing: .04em; text-transform: uppercase; color: var(--orb-muted); }
.orb-flujo .nodo .orb-agente { font-size: 76px; margin: -2px 0 -6px; }
.orb-flujo .evento { width: 50px; height: 50px; margin: 10px 0 8px; border-radius: 50%; display: grid; place-items: center; background: var(--orb-canvas); border: var(--orb-rail) solid var(--orb-line); color: var(--orb-ink); }
.orb-flujo .evento.fin { background: var(--orb-ink); border-color: var(--orb-ink); color: var(--orb-canvas); }
.orb-flujo .nodo b { font: 500 15px/22px var(--orb-font-text); color: var(--orb-ink); }
.orb-flujo .nodo small { font: 400 13px/18px var(--orb-font-text); color: var(--orb-muted); }
.orb-flujo .conector { position: relative; height: 2px; margin: 0 6px; container-type: inline-size; }
.orb-flujo .conector::before { content: ""; position: absolute; inset: 0 2px 0 0; border-radius: 1px; background: var(--orb-line); }
.orb-flujo .conector::after { content: ""; position: absolute; right: 1px; top: 50%; width: 6px; height: 6px; border-top: 2px solid var(--orb-line); border-right: 2px solid var(--orb-line); transform: translateY(-50%) rotate(45deg); }
.orb-flujo .conector i { position: absolute; left: 0; top: -2px; width: 6px; height: 6px; border-radius: 50%; background: var(--orb-ink); opacity: 0; animation: orb-flujo-pulso 3.6s var(--orb-ease) infinite; }
.orb-flujo .conector:nth-child(4) i { animation-delay: 1.2s; }
.orb-flujo .conector:nth-child(6) i { animation-delay: 2.4s; }
.orb-flujo .conector:nth-child(8) i { animation-delay: 3.6s; }
@keyframes orb-flujo-pulso {
  0%        { transform: translateX(0); opacity: 0; }
  4%        { opacity: 1; }
  22%       { transform: translateX(calc(100cqw - 10px)); opacity: 1; }
  27%, 100% { transform: translateX(calc(100cqw - 10px)); opacity: 0; }
}
@media (max-width: 767px) {
  .orb-flujo { grid-auto-flow: row; grid-auto-columns: auto; grid-auto-rows: auto 44px; justify-items: center; }
  .orb-flujo .nodo { width: 100%; max-width: 320px; }
  .orb-flujo .conector { width: 36px; margin: 0; transform: rotate(90deg); }
}

/* =====================================================================
   36 · ÓRBITA DE AGENTES (portada; motor: data-orb-orbita)
   ===================================================================== */
.orb-orbita { position: relative; width: 100%; max-width: 480px; aspect-ratio: 1; container-type: inline-size; margin: 0 auto; }
.orb-orbita > svg { position: absolute; inset: 0; width: 100%; height: 100%; overflow: visible; color: var(--orb-ink); }
.orb-orbita .orb-isotipo { position: absolute; left: 50%; top: 50%; translate: -50% -50%; font-size: 58cqw; }

@media (prefers-reduced-motion: reduce) {
  .orb-esqueleto i { animation: none; }
}

/* =====================================================================
   ESTADOS CON BORDE (tablas) Y "TRABAJANDO" CON ORBE
   ===================================================================== */
.orb-estado.borde { background: transparent; border: 1px solid var(--orb-line); color: var(--orb-ink); padding: 1px 10px; }
.orb-estado.borde.activo::before { background: var(--orb-menta-ink); }
.orb-estado.borde.revision::before { background: var(--orb-ambar-ink); }
.orb-estado.borde.error::before { background: var(--orb-coral-ink); }
.orb-trabajando { display: inline-flex; align-items: center; gap: 6px; font: 500 12px/18px var(--orb-font-text); color: var(--orb-ink); white-space: nowrap; }

/* =====================================================================
   ORBES PENSANDO (motor/orbes.js): cuando un agente está trabajando
   ===================================================================== */
.orb-orbe { display: inline-block; vertical-align: middle; flex: none; line-height: 0; }

/* =====================================================================
   CHAT DE AGENTES: un canal donde los agentes avisan lo que hacen
   ===================================================================== */
.orb-chat { background: var(--orb-surface); border: var(--orb-rail) solid var(--orb-line); border-radius: var(--orb-r-card); box-shadow: var(--orb-shadow-card); overflow: hidden; max-width: 520px; }
.orb-chat .cab { display: flex; justify-content: space-between; align-items: center; gap: 16px; padding: 14px 20px; border-bottom: var(--orb-rail) solid var(--orb-hair); }
.orb-chat .canal { font: 500 15px/22px var(--orb-font-mono); letter-spacing: 0; color: var(--orb-ink); }
.orb-chat .canal i { font-style: normal; color: var(--orb-muted); margin-right: 6px; }
.orb-chat .caras { display: flex; align-items: center; }
.orb-chat .cara, .orb-chat .caras .mas { position: relative; width: 32px; height: 32px; border-radius: 50%; display: grid; place-items: center; overflow: hidden; background: var(--orb-canvas); box-shadow: 0 0 0 2px var(--orb-surface); margin-left: -8px; }
.orb-chat .cara:first-child { margin-left: 0; }
.orb-chat .cara .orb-agente { position: absolute; left: 50%; top: 50%; translate: -50% -50%; font-size: 64px; }
.orb-chat .caras .mas { background: var(--orb-soft); font: 600 11px/1 var(--orb-font-text); color: var(--orb-muted); }
.orb-chat .mensajes { list-style: none; margin: 0; padding: 10px 0 14px; }
.orb-chat .mensaje { display: grid; grid-template-columns: 40px 1fr; gap: 12px; padding: 10px 20px; }
.orb-chat .mensaje > .orb-agente { font-size: 60px; margin: -12px 0 0 -10px; }
.orb-chat .quien { display: flex; align-items: baseline; gap: 8px; margin-bottom: 2px; }
.orb-chat .quien b { font: 600 15px/22px var(--orb-font-text); color: var(--orb-ink); }
.orb-chat .quien time { font: 400 12px/22px var(--orb-font-mono); letter-spacing: 0; color: var(--orb-muted); }
.orb-chat .mensaje p { font: 400 15px/22px var(--orb-font-text); color: color-mix(in srgb, var(--orb-ink) 78%, var(--orb-surface)); max-width: none; }
.orb-chat .mensaje p + p { margin-top: 4px; }
.orb-chat .escribiendo .quien { align-items: center; gap: 8px; font: 400 14px/22px var(--orb-font-text); color: var(--orb-muted); margin-top: 6px; }

/* =====================================================================
   FONDOS ANIMADOS (motor/fondos.js) · fase 4, guía de movimiento
   ===================================================================== */
/* El canvas va dentro de un bloque con position: relative, detrás del contenido.
   .hueco-centro / .hueco-izquierda apagan los puntos donde va el texto. */
.orb-fondo { position: absolute; inset: 0; width: 100%; height: 100%; display: block; pointer-events: none; }
/* .hueco-centro, .hueco-izquierda y .hueco-derecha: el motor borra esa zona en el propio lienzo
   (con una máscara CSS no saldría al imprimir ni al guardar como PDF). */
.orb-con-fondo { position: relative; isolation: isolate; }
.orb-con-fondo > :not(.orb-fondo, .orb-textura) { position: relative; z-index: 1; }
.orb-con-fondo > .orb-fondo { position: absolute; inset: 0; z-index: 0; }

/* Barra de navegación fija arriba (webs largas). Fondo sólido: nada de desenfoque. */
.orb-nav.fija { position: sticky; top: 0; z-index: 30; }

/* Aparecer al hacer scroll: [data-orb-revelar] en un bloque y sus hijos entran uno a uno (motor/componentes.js) */

/* =====================================================================
   ESQUELETO DE APP (fase 4, guía de apps): barra lateral + barra de arriba + contenido
   <div class="orb-app"> <aside class="lateral">…</aside> <div class="velo" hidden></div>
   <div class="principal"> <header class="barra-app">…</header> <main class="contenido-app">…</main> </div></div>
   En el móvil la barra lateral se abre por encima (botón .abrir-lateral; motor/componentes.js).
   ===================================================================== */
.orb-app { min-height: 100vh; display: grid; grid-template-columns: 252px minmax(0, 1fr); background: var(--orb-canvas); }
.orb-app .lateral { position: sticky; top: 0; height: 100vh; display: flex; flex-direction: column; gap: 22px; padding: 18px 14px; border-right: var(--orb-rail) solid var(--orb-hair); background: var(--orb-canvas); overflow-y: auto; }
.orb-app .lateral > .orb-logo { font-size: 30px; padding: 6px 8px; }
.orb-app .grupo-menu { display: grid; gap: 2px; }
.orb-app .grupo-menu > .orb-label { padding: 0 10px 6px; }
.orb-app .grupo-menu a { display: flex; align-items: center; gap: 10px; padding: 8px 10px; border-radius: var(--orb-r-media); font: 500 15px/22px var(--orb-font-text); color: var(--orb-muted); text-decoration: none; transition: background var(--orb-dur-feedback) var(--orb-ease), color var(--orb-dur-feedback) var(--orb-ease); }
.orb-app .grupo-menu a .orb-icono { width: 18px; height: 18px; }
.orb-app .grupo-menu a:hover { background: var(--orb-soft); color: var(--orb-ink); }
.orb-app .grupo-menu a[aria-current="page"] { background: var(--orb-surface); color: var(--orb-ink); box-shadow: inset 0 0 0 var(--orb-rail) var(--orb-line); }
.orb-app .grupo-menu .cuenta { margin-left: auto; font: 500 12px/18px var(--orb-font-mono); letter-spacing: 0; color: var(--orb-muted); }
.orb-app .lateral .abajo { margin-top: auto; display: grid; gap: 10px; }
.orb-app .usuario { display: flex; align-items: center; gap: 10px; padding: 8px 10px; border-top: var(--orb-rail) solid var(--orb-hair); padding-top: 14px; }
.orb-app .usuario .inicial { width: 32px; height: 32px; border-radius: 50%; display: grid; place-items: center; background: var(--orb-soft); font: 600 13px/1 var(--orb-font-text); color: var(--orb-ink); flex: none; }
.orb-app .usuario b { display: block; font: 500 14px/20px var(--orb-font-text); }
.orb-app .usuario span { display: block; font: 400 12px/18px var(--orb-font-text); color: var(--orb-muted); }
.orb-app .principal { min-width: 0; display: flex; flex-direction: column; }
.orb-app .barra-app { position: sticky; top: 0; z-index: 20; display: flex; align-items: center; gap: 12px; min-height: 64px; padding: 10px 28px; background: var(--orb-canvas); border-bottom: var(--orb-rail) solid var(--orb-hair); }
.orb-app .barra-app .buscar { flex: 1; max-width: 420px; }
.orb-app .barra-app > .orb-acciones { margin-left: auto; flex-wrap: nowrap; }
.orb-app .abrir-lateral, .orb-app .barra-app > .orb-logo { display: none; }
.orb-app .contenido-app { width: min(1280px, 100%); padding: 28px; display: grid; gap: 24px; align-content: start; }
.orb-app .cab-pagina { display: flex; justify-content: space-between; align-items: flex-end; gap: 12px 24px; flex-wrap: wrap; }
.orb-app .cab-pagina h1 { font: 400 var(--orb-h3)/var(--orb-h3-lh) var(--orb-font-display); letter-spacing: var(--orb-tracking); }
.orb-app .cab-pagina p { color: var(--orb-muted); font: 400 15px/22px var(--orb-font-text); margin-top: 4px; }
.orb-app .rejilla-app { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: 24px; align-items: start; }
.orb-app .rejilla-app > .orb-chat { max-width: none; }
.orb-app .velo { position: fixed; inset: 0; z-index: 50; background: rgb(25 25 25 / .42); }
@media (max-width: 1099px) { .orb-app .rejilla-app { grid-template-columns: minmax(0, 1fr); } }
@media (max-width: 959px) {
  .orb-app { grid-template-columns: minmax(0, 1fr); }
  .orb-app .lateral { position: fixed; z-index: 60; inset: 0 auto 0 0; width: min(300px, 86vw); height: 100%; transform: translateX(-100%); visibility: hidden; transition: transform var(--orb-dur-state) var(--orb-ease), visibility 0s linear var(--orb-dur-state); box-shadow: var(--orb-shadow-overlay); }
  .orb-app.lateral-abierta .lateral { transform: none; visibility: visible; transition: transform var(--orb-dur-state) var(--orb-ease); }
  .orb-app .abrir-lateral { display: inline-flex; }
  .orb-app .barra-app > .orb-logo { display: inline-flex; font-size: 26px; }
  .orb-app .barra-app { padding: 10px 16px; }
  .orb-app .barra-app .buscar { display: none; }
  .orb-app .contenido-app { padding: 20px 16px; }
}
/* Panel: la tarjeta de las apps (un objeto: una lista, un gráfico, un registro) */
.orb-panel { background: var(--orb-surface); border: var(--orb-rail) solid var(--orb-hair); border-radius: var(--orb-r-card); box-shadow: var(--orb-shadow-card); min-width: 0; overflow: hidden; }
.orb-panel > .cab { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 14px 20px; border-bottom: var(--orb-rail) solid var(--orb-hair); }
.orb-panel > .cab h2 { font: 500 16px/24px var(--orb-font-text); letter-spacing: var(--orb-tracking); }
.orb-panel > .cuerpo { padding: 8px 20px 16px; }
.orb-panel > .orb-cells { border-block: 0; }
.orb-panel > .orb-procesos { border-top: 0; }
.orb-panel .orb-proceso:last-child { border-bottom: 0; }
.orb-panel > .orb-registro { border-top: 0; padding: 4px 20px 8px; }
.orb-panel > .orb-registro li:last-child { border-bottom: 0; }

/* =====================================================================
   ESCENAS · ilustraciones de línea (guias/ilustracion.md)
   ===================================================================== */
/* <figure class="orb-escena" data-agente="cian"><svg viewBox="0 0 480 320">…</svg>
   <span class="orb-agente" data-orb-agente="cian" style="--x:30;--y:62;--t:20"></span></figure>
   Trazo de tinta de 2 px (no crece al agrandar), puntas redondas, rellenos planos del propio fondo
   y UN acento: el del agente de la escena. El agente es el de verdad (parpadea y mira), encima del
   dibujo: --x y --y en % de la escena (su centro), --t su tamaño en % del ancho. */
.orb-escena { --acento: var(--orb-cian-ink); --acento-fondo: var(--orb-cian-surface); --acento-vivo: var(--orb-agent-cian); --trazo: 2px;
  position: relative; margin: 0; container-type: inline-size; color: var(--orb-ink); }
.orb-escena > svg { display: block; width: 100%; height: auto; aspect-ratio: 3 / 2; overflow: visible;
  fill: none; stroke: currentColor; stroke-width: var(--trazo); stroke-linecap: round; stroke-linejoin: round; }
.orb-escena > svg * { vector-effect: non-scaling-stroke; }
.orb-escena .f  { fill: var(--orb-canvas); }          /* recorta lo de detrás con el color del fondo */
.orb-escena .s  { fill: var(--orb-surface); }
.orb-escena .sv { fill: var(--orb-soft); }
.orb-escena .sombra { fill: var(--orb-soft); stroke: none; }
.orb-escena .a  { stroke: var(--acento); }
.orb-escena .af { fill: var(--acento-vivo); }          /* el relleno del acento: el color del agente */
.orb-escena .as { fill: var(--acento-fondo); }
.orb-escena .t  { fill: currentColor; stroke: none; }
.orb-escena .fino { stroke-width: calc(var(--trazo) * .65); }
.orb-escena .tenue { stroke: var(--orb-faint); }
.orb-escena .guion { stroke-dasharray: 1 7; }
.orb-escena > .orb-agente { position: absolute; left: calc(var(--x) * 1%); top: calc(var(--y) * 1%); font-size: calc(var(--t) * 1cqi); translate: -50% -50%; }
.orb-escena > figcaption { margin-top: 12px; font: 400 14px/20px var(--orb-font-text); color: var(--orb-muted); }
.orb-escena[data-agente="lila"]  { --acento: var(--orb-lila-ink);  --acento-fondo: var(--orb-lila-surface);  --acento-vivo: var(--orb-agent-lila); }
.orb-escena[data-agente="ambar"] { --acento: var(--orb-ambar-ink); --acento-fondo: var(--orb-ambar-surface); --acento-vivo: var(--orb-agent-ambar); }
.orb-escena[data-agente="menta"] { --acento: var(--orb-menta-ink); --acento-fondo: var(--orb-menta-surface); --acento-vivo: var(--orb-agent-menta); }
.orb-escena[data-agente="coral"] { --acento: var(--orb-coral-ink); --acento-fondo: var(--orb-coral-surface); --acento-vivo: var(--orb-agent-coral); }
.orb-escena[data-agente="blanco"] { --acento: var(--orb-ink); --acento-fondo: var(--orb-soft); --acento-vivo: var(--orb-agent-nucleo); }
.orb-escena.grueso { --trazo: 4px; }                    /* para imágenes de redes (1080 px) */
