/* ═══════════════════════════════════════════════════════════════════════════
   AIMA · assets/aima-movil-2.css — LA DEMO MÓVIL NUEVA · el chasis
   ───────────────────────────────────────────────────────────────────────────
   26/10/2026 · Bratney: «una adaptación mucho más visual, de menos texto o
   más desplegable, con más animaciones, partiendo de la estética AIMA; y que
   cuando quiera sumar información ya tenga las dos versiones listas».

   QUÉ ES. La segunda generación de la versión de móvil. La primera
   (aima-app-movil.js) tapaba la página con una pantalla negra y su propio
   texto, escrito aparte: cada dato vivía dos veces y el del móvil se quedaba
   viejo (en Desarrolladores seguía diciendo «12 funciones» y «Plan Hobby»).
   Esta no escribe nada: coge LA MISMA página de ordenador y la vuelve a
   montar para el pulgar. Si mañana se añade una ficha, una regla o una
   entrada del laboratorio en el HTML de siempre, el móvil la enseña sola.

   CÓMO SE ENGANCHA (en cada página que la estrene):
     1 · <html … data-movil="nombre">
     2 · el lector de vista de la cabeza pone html.m2 cuando la vista es la
         de móvil (≤ 600 px y dedo, la regla de siempre de AIMAVista)
     3 · esta hoja y la de la página, con media="(max-width:600px),
         (max-height:600px)" para que en el ordenador no frenen el pintado,
         y un guion de una línea que, con html.m2, les pone media="all": la
         página montada para el pulgar no puede quedarse sin su hoja porque
         el teléfono se gire o el plegable se abra
     4 · aima-movil-2.js + assets/movil/nombre.js, inyectados solo con m2
   TODO va bajo `html.m2`: sin esa clase, esta hoja no toca nada.

   LA ESTÉTICA: la de Packs (skill estilo-aima). Blanco de fondo; Anton en
   mayúsculas para el titular, Cormorant de complemento, Montserrat para leer
   y pulsar; un solo rojo, de acento; marcadores con el cuadrado imperfecto;
   iconos sin rojo.
   EL RENDIMIENTO, primero: nada de backdrop-filter (fue el lag del
   portafolio el 21/10), solo se anima transform y opacity, y los bucles
   corren únicamente mientras se ven (--m2-juega).
   ═══════════════════════════════════════════════════════════════════════════ */

/* ── 0 · LAS FICHAS DE DISEÑO ─────────────────────────────────────────────── */
html.m2{
  --m2-tinta:#0B0B0D; --m2-t1:#2A2A2E; --m2-t2:#56565C; --m2-t3:#6B6B70; /* t3 más oscuro que en escritorio: 4,9:1 sobre blanco y 4,5:1 sobre hueso, letra pequeña en pantalla pequeña */
  --m2-papel:#FFFFFF; --m2-hueso:#F2F2F0; --m2-hueso-2:#E9E9E5;
  --m2-filete:#E2E2DE; --m2-filete-2:#EDEDEA; --m2-trazo:#C9C9C4;
  --m2-rojo:#C1272D; --m2-rojo-claro:#EC5A60; --m2-rojo-velo:#F8E9E9;
  --m2-f-anton:'Anton','AIMA Anton',Impact,'Arial Narrow',sans-serif;
  --m2-f-corm:'Cormorant Garamond','AIMA Cormorant',Garamond,'Times New Roman',serif;
  --m2-f-mont:'Montserrat',system-ui,-apple-system,'Segoe UI',sans-serif;
  --m2-f-mono:ui-monospace,'SF Mono',SFMono-Regular,Menlo,Consolas,monospace;
  --m2-ease:cubic-bezier(.22,1,.36,1);
  --m2-rebote:cubic-bezier(.34,1.56,.64,1);
  --m2-facet:polygon(10% 16%,92% 0%,100% 55%,96% 92%,0% 96%);
  --m2-lado:18px;            /* margen lateral de todo */
  --m2-riel:46px;            /* alto de la barra de capítulos */
  --head-h:56px;             /* la cabecera de la casa, más baja en móvil */
  --cabecera:56px;
  /* lo que queda tapado arriba: cabecera + barra de capítulos. Se cuenta la
     cabecera aunque esté apartada, porque vuelve en cuanto se sube un poco
     (el tabulador hacia atrás sube) y lo enfocado no puede quedar debajo. */
  scroll-padding-top:calc(var(--head-h) + var(--m2-riel) + 14px);
  scroll-padding-bottom:24px;
  -webkit-text-size-adjust:100%;
  background:var(--m2-papel);
}
/* 🔴 Nada de variables que cambien con html.m2-sube (la cabecera que se va y
   vuelve) ni con otra clase de <html> que cambie con el scroll: una variable
   que cambia en <html> la heredan TODOS los elementos y el navegador recalcula
   la página entera (7.500 elementos, 40 ms en un ordenador, el triple en un
   móvil) cada vez que la cabecera se aparta. Lo que dependa de la cabecera
   va en su propia regla html.m2.m2-sube <selector>, que solo toca a ese. */
/* Los bucles (planos, luces, pulsos) leen esto: parados fuera de la vista. */
html.m2 .m2-vivo{--m2-juega:running}

/* ── 1 · LA BASE ───────────────────────────────────────────────────────────── */
html.m2 body{
  background:var(--m2-papel);color:var(--m2-t1);
  font:400 15px/1.62 var(--m2-f-mont);
  overflow-x:clip;-webkit-tap-highlight-color:transparent;
}
/* clip y no hidden: hidden convierte al <body> en caja con scroll propio y
   entonces nada «pegajoso» (la pila de reglas) se pega a la pantalla. */
html.m2 main{container-type:inline-size;padding-top:var(--head-h)}
html.m2.m2-con-riel main{padding-top:calc(var(--head-h) + var(--m2-riel))}   /* el hueco de la barra, cuando la hay */
html.m2 .caja{width:auto;margin-inline:var(--m2-lado)}
html.m2 .seccion{padding-block:58px 66px}
html.m2 :focus-visible{outline:2px solid var(--m2-tinta);outline-offset:3px}
/* un capítulo al que se llega por la barra recibe el foco (para que el
   tabulador siga desde allí), pero no se le pinta el anillo: no se pulsa */
html.m2 [tabindex="-1"]:focus{outline:none}
html.m2 button{-webkit-tap-highlight-color:transparent}

/* lo que solo es para el lector de pantalla (la cifra de verdad de un contador) */
html.m2 .m2-sr{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;
  overflow:hidden!important;clip:rect(0 0 0 0)!important;white-space:nowrap!important;border:0!important}

/* El revelado de escritorio (data-revela) no manda aquí: lo hace .m2-r */
html.m2.js [data-revela]{opacity:1;transform:none;transition:none}

/* El telón de la web, corto y en claro (en la app vieja era negro) */
html.m2 #boot{background:var(--m2-papel)!important;transition:opacity .45s var(--m2-ease),visibility .45s!important}
html.m2 #boot img{display:block!important}

/* ── 2 · LA CABECERA: sólida, más baja, se va al bajar y vuelve al subir ── */
html.m2 .site-head{transition:transform .38s var(--m2-ease);will-change:transform}
html.m2 .brandbar{height:var(--head-h);background:var(--m2-papel)!important;
  -webkit-backdrop-filter:none!important;backdrop-filter:none!important}
html.m2 .brandbar-in{padding-left:calc(16px + env(safe-area-inset-left));padding-right:calc(8px + env(safe-area-inset-right))}
html.m2 .brandbar .social{display:none}
/* el pulgar necesita 44 px: el menú y la cuenta crecen (el dibujo, no) */
html.m2 .menu-btn{width:44px!important;height:44px!important}
html.m2 .brandbar-in .aima-yo{width:44px!important;height:44px!important}
html.m2 .brand svg.mark{width:23px;height:31px}
html.m2 .brand svg.word{width:66px;height:20px}
html.m2.m2-sube .site-head{transform:translateY(-100%)}
/* el menú a pantalla completa, sin desenfoque (es lo que más pesa en un móvil) */
html.m2 #mmenu{background:var(--m2-papel)!important;-webkit-backdrop-filter:none!important;backdrop-filter:none!important}
html.m2 .mmenu-close{top:9px!important;right:10px!important}

/* ── 3 · LA BARRA DE CAPÍTULOS ─────────────────────────────────────────────
   La monta aima-movil-2.js con el sumario de la propia página (el mismo
   <nav>, movido): nada que mantener en dos sitios. */
html.m2 .m2-riel{position:fixed;left:0;right:0;top:var(--head-h);z-index:99;height:var(--m2-riel);
  background:var(--m2-papel);border-bottom:1px solid var(--m2-filete);
  transition:transform .38s var(--m2-ease);will-change:transform}
html.m2.m2-sube .m2-riel{transform:translateY(calc(-1 * var(--head-h)))}
html.m2 .m2-riel-p{position:absolute;left:0;right:0;bottom:-1px;height:2px;
  background:var(--m2-tinta);transform:scaleX(0);transform-origin:0 50%;will-change:transform}
html.m2 .m2-riel .sumario{margin:0!important;border:0!important;height:100%}
html.m2 .m2-riel ol{display:flex!important;gap:6px;height:100%;align-items:center;margin:0;
  overflow-x:auto;overflow-y:hidden;overscroll-behavior-x:contain;scrollbar-width:none;
  padding:0 var(--m2-lado);list-style:none;scroll-padding-inline:var(--m2-lado)}
html.m2 .m2-riel ol::-webkit-scrollbar{display:none}
html.m2 .m2-riel li{flex:none}
html.m2 .m2-riel a{display:flex!important;flex-direction:row!important;align-items:center;gap:7px;
  height:32px;padding:0 13px 0 11px!important;border:1px solid var(--m2-filete)!important;
  border-left:1px solid var(--m2-filete)!important;border-top:1px solid var(--m2-filete)!important;
  border-radius:999px;background:var(--m2-papel);text-decoration:none;white-space:nowrap;
  transition:background-color .3s,border-color .3s,color .3s}
html.m2 .m2-riel .r{font:italic 600 15px/1 var(--m2-f-corm)!important;color:var(--m2-rojo)!important}
html.m2 .m2-riel .t{font:600 12px/1 var(--m2-f-mont)!important;color:var(--m2-t2)!important;letter-spacing:.01em}
html.m2 .m2-riel a[aria-current="true"]{background:var(--m2-tinta);border-color:var(--m2-tinta)!important}
html.m2 .m2-riel a[aria-current="true"] .t{color:#fff!important}
html.m2 .m2-riel a[aria-current="true"] .r{color:var(--m2-rojo-claro)!important}
/* el índice de la zona técnica (Datos, API de AMI): enlaces sueltos dentro
   del <nav>, con su romano en <i> y el título como texto */
html.m2 .m2-riel .zt-indice{display:flex!important;gap:6px;height:100%;align-items:center;margin:0!important;border:0!important;
  overflow-x:auto;overflow-y:hidden;overscroll-behavior-x:contain;scrollbar-width:none;
  padding:0 var(--m2-lado);scroll-padding-inline:var(--m2-lado)}
html.m2 .m2-riel .zt-indice::-webkit-scrollbar{display:none}
html.m2 .m2-riel .zt-indice a{flex:none;margin:0!important;box-shadow:none!important;
  font:600 12px/1 var(--m2-f-mont)!important;color:var(--m2-t2)!important;letter-spacing:.01em}
html.m2 .m2-riel .zt-indice a i{display:inline!important;margin:0!important;font:italic 600 15px/1 var(--m2-f-corm)!important;color:var(--m2-rojo)!important}
html.m2 .m2-riel .zt-indice a[aria-current="true"]{color:#fff!important}
html.m2 .m2-riel .zt-indice a[aria-current="true"] i{color:var(--m2-rojo-claro)!important}
/* sin capítulos no hay barra: solo el hueco de la cabecera */
html.m2.m2-con-riel.m2-sin-riel main{padding-top:var(--head-h)}

/* ── 4 · LA CABEZA DE CADA CAPÍTULO ────────────────────────────────────────── */
html.m2 .cabeza{display:grid!important;grid-template-columns:auto minmax(0,1fr)!important;
  column-gap:12px;align-items:baseline;margin:0 0 28px!important;max-width:none}
html.m2 .cabeza > *{grid-column:auto!important}
html.m2 .cabeza .versal{grid-column:1 / -1!important;order:-1;display:flex;align-items:center;gap:9px;
  margin:0 0 14px!important;font:600 10.5px/1.3 var(--m2-f-mont)!important;letter-spacing:.26em!important;
  text-transform:uppercase;color:var(--m2-t2)!important}
html.m2 .cabeza .versal::before{content:"";flex:none;width:9px;height:8px;background:var(--m2-rojo);clip-path:var(--m2-facet)}
html.m2 .cabeza__num{grid-column:1!important;margin:0!important;font:italic 500 48px/.8 var(--m2-f-corm)!important;color:var(--m2-rojo)}
html.m2 .cabeza__titulo{grid-column:2!important;font:500 clamp(34px,10.4cqi,44px)/1.02 var(--m2-f-corm)!important;
  letter-spacing:-.012em;color:var(--m2-tinta);text-wrap:balance}
html.m2 .cabeza__titulo em{font-style:italic;color:var(--m2-rojo)}
html.m2 .cabeza__entrada{grid-column:1 / -1!important;margin:16px 0 0!important;max-width:44ch;
  font-size:15px!important;line-height:1.6!important;color:var(--m2-t2)}

/* ── 5 · REVELADO AL LLEGAR ─────────────────────────────────────────────────── */
html.m2 .m2-r{opacity:0;transform:translate3d(0,18px,0);
  transition:opacity .75s var(--m2-ease) var(--m2-d,0s),transform .75s var(--m2-ease) var(--m2-d,0s)}
html.m2 .m2-r.m2-visto{opacity:1;transform:none}
/* lo que el tabulador alcanza se ve ya: si llega a algo que aún está
   entrando (o esperando su turno en la cascada), aparece sin esperar */
html.m2 .m2-r:focus-within{opacity:1!important;transform:none!important;transition:none!important}   /* sin transición: corta la que ya estaba en marcha */

/* ── 6 · LOS BOTONES DE LA CASA EN MÓVIL ───────────────────────────────────── */
html.m2 .m2-mas{display:inline-flex;align-items:center;gap:9px;min-height:40px;padding:0 4px 0 0;
  border:0;background:none;cursor:pointer;font:600 12.5px/1 var(--m2-f-mont);letter-spacing:.02em;
  color:var(--m2-tinta)}
html.m2 .m2-mas i{position:relative;flex:none;width:26px;height:26px;border-radius:50%;
  border:1.5px solid var(--m2-tinta);transition:transform .45s var(--m2-ease),background-color .3s}
html.m2 .m2-mas i::before,html.m2 .m2-mas i::after{content:"";position:absolute;left:50%;top:50%;
  width:10px;height:1.6px;margin:-.8px 0 0 -5px;background:currentColor;transition:transform .45s var(--m2-ease)}
html.m2 .m2-mas i::after{transform:rotate(90deg)}
html.m2 .m2-mas[aria-expanded="true"] i{transform:rotate(135deg);background:var(--m2-tinta);color:#fff}
html.m2 .m2-mas[aria-expanded="true"] i::before,html.m2 .m2-mas[aria-expanded="true"] i::after{background:#fff}

/* ── 7 · EL PLIEGUE (todo lo «desplegable» de la casa) ──────────────────────
   Se anima la fila de la rejilla de 0fr a 1fr: abre a la altura justa sin
   medir nada con JavaScript. */
html.m2 .m2-pliega{display:grid;grid-template-rows:0fr;transition:grid-template-rows .5s var(--m2-ease)}
/* cerrado es visibility:hidden (y no solo transparente): ni el tabulador ni
   el lector de pantalla entran en lo que no se ve. Al cerrar se esconde al
   final del pliegue; al abrir, al principio. */
html.m2 .m2-pliega > .m2-pliega-in{min-height:0;overflow:hidden;opacity:0;visibility:hidden;
  transition:opacity .35s ease,visibility 0s linear .5s}
html.m2 .m2-pliega.m2-abierto{grid-template-rows:1fr}
html.m2 .m2-pliega.m2-abierto > .m2-pliega-in{opacity:1;visibility:visible;transition:opacity .35s ease .08s,visibility 0s linear 0s}

/* el texto corto con «Leer más» */
html.m2 .m2-corta{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:var(--m2-lineas,3);overflow:hidden}
html.m2 .m2-corta.m2-entera{display:block;-webkit-line-clamp:unset;overflow:visible}
html.m2 .m2-leer{display:inline-flex;align-items:center;gap:6px;margin-top:6px;padding:6px 0;border:0;background:none;cursor:pointer;
  font:600 12px/1 var(--m2-f-mont);letter-spacing:.03em;color:var(--m2-tinta);text-decoration:underline;
  text-decoration-color:var(--m2-rojo);text-underline-offset:4px;text-decoration-thickness:1.5px}

/* ── 8 · EL MAZO: tarjetas en fila que se pasan con el dedo ─────────────── */
html.m2 .m2-mazo{display:flex!important;gap:12px;overflow-x:auto;overflow-y:hidden;
  scroll-snap-type:x mandatory;overscroll-behavior-x:contain;scrollbar-width:none;
  margin-inline:calc(-1 * var(--m2-lado));padding:6px var(--m2-lado) 22px;
  scroll-padding-inline:var(--m2-lado);border:0!important;align-items:stretch}
html.m2 .m2-mazo::-webkit-scrollbar{display:none}
html.m2 .m2-mazo:focus-visible{outline-offset:-2px}
html.m2 .m2-mazo > .m2-carta{flex:0 0 min(84%,340px);scroll-snap-align:start;scroll-snap-stop:always;min-width:0}
html.m2 .m2-mazo-pie{display:flex;align-items:center;gap:12px;margin-top:2px;padding-right:64px}
html.m2 .m2-mazo-pie .m2-mazo-flecha{order:-1}
html.m2 .m2-mazo-pie .m2-mazo-flecha + .m2-mazo-flecha{margin-left:-4px}
html.m2 .m2-mazo-n{font:400 15px/1 var(--m2-f-anton);letter-spacing:.04em;color:var(--m2-tinta);min-width:62px;font-variant-numeric:tabular-nums}
html.m2 .m2-mazo-n b{font-weight:400}
html.m2 .m2-mazo-n span{color:var(--m2-t3)}
html.m2 .m2-mazo-barra{position:relative;flex:1;height:2px;background:var(--m2-filete);overflow:hidden}
html.m2 .m2-mazo-barra i{position:absolute;inset:0;background:var(--m2-tinta);transform-origin:0 50%;
  transform:scaleX(var(--m2-mp,.1));transition:transform .25s linear}
html.m2 .m2-mazo-flecha{flex:none;width:38px;height:38px;border-radius:50%;display:grid;place-items:center;
  border:1px solid var(--m2-filete);background:var(--m2-papel);color:var(--m2-tinta);cursor:pointer;
  transition:transform .25s var(--m2-ease),border-color .25s,opacity .25s}
html.m2 .m2-mazo-flecha:active{transform:scale(.9)}
/* la flecha que no lleva a ningún sitio se apaga por dentro (la flecha y
   el borde), no entera: el anillo del foco, si está en ella, se ve entero */
html.m2 .m2-mazo-flecha[disabled],html.m2 .m2-mazo-flecha[aria-disabled="true"]{color:#C4C4C8;border-color:#ECECEE;cursor:default}
html.m2 .m2-mazo-flecha svg{width:16px;height:16px}

/* ── 9 · LAS PESTAÑAS (una tabla de tres columnas, contada en tres toques) ── */
html.m2 .m2-pestanas{position:relative;display:flex;gap:0;padding:4px;margin:0 0 18px;
  background:var(--m2-hueso);border-radius:14px;--i:0;--n:3}
html.m2 .m2-pestanas::before{content:"";position:absolute;top:4px;bottom:4px;left:4px;
  width:calc((100% - 8px) / var(--n));border-radius:10px;background:var(--m2-papel);
  box-shadow:0 1px 0 rgba(11,11,13,.04),0 8px 18px -10px rgba(11,11,13,.35);
  transform:translateX(calc(var(--i) * 100%));transition:transform .45s var(--m2-ease)}
html.m2 .m2-pestana{position:relative;z-index:1;flex:1;min-width:0;display:flex;align-items:center;justify-content:center;gap:7px;
  height:42px;padding:0 6px;border:0;background:none;border-radius:10px;cursor:pointer;
  font:600 12.5px/1.1 var(--m2-f-mont);color:var(--m2-t2);transition:color .3s}
html.m2 .m2-pestana svg{width:16px;height:16px;flex:none}
html.m2 .m2-pestana[aria-selected="true"]{color:var(--m2-tinta)}
html.m2 [data-m2-panel][hidden]{display:none!important}
html.m2 .m2-panel-entra{animation:m2-entra .45s var(--m2-ease) both}
@keyframes m2-entra{from{opacity:0;transform:translate3d(0,10px,0)}to{opacity:1;transform:none}}

/* ── 10 · LA PILA: tarjetas que se quedan arriba y se apilan al bajar ───── */
/* Se pegan bajo lo que tape arriba en cada momento (con la cabecera o sin
   ella) y bajan con ella cuando vuelve. Una hoja más alta que la pantalla
   sube su tope lo justo para leerse entera (--alto lo apunta
   aima-movil-2.js). svh: la pantalla con la barra del navegador puesta. */
html.m2 .m2-pila{position:relative}
html.m2 .m2-pila > .m2-hoja{position:sticky;
  top:min(calc(var(--head-h) + var(--m2-riel) + 12px + var(--i,0) * 9px),calc(100vh - var(--alto,0px) - 14px));
  top:min(calc(var(--head-h) + var(--m2-riel) + 12px + var(--i,0) * 9px),calc(100svh - var(--alto,0px) - 14px));
  transition:top .38s var(--m2-ease)}
html.m2.m2-sube .m2-pila > .m2-hoja{
  top:min(calc(var(--m2-riel) + 12px + var(--i,0) * 9px),calc(100vh - var(--alto,0px) - 14px));
  top:min(calc(var(--m2-riel) + 12px + var(--i,0) * 9px),calc(100svh - var(--alto,0px) - 14px))}

/* ── 11 · LA LÍNEA DE TIEMPO ────────────────────────────────────────────────── */
html.m2 .m2-linea{position:relative;padding-left:30px}
html.m2 .m2-linea::before,html.m2 .m2-linea > .m2-linea-raya{content:"";position:absolute;left:8px;top:8px;bottom:14px;width:1.5px}
html.m2 .m2-linea::before{background:var(--m2-filete)}
html.m2 .m2-linea > .m2-linea-raya{display:block;background:var(--m2-tinta);transform:scaleY(0);transform-origin:50% 0;will-change:transform}
html.m2 .m2-mes{position:relative;margin:26px 0 8px;font:italic 500 25px/1 var(--m2-f-corm);color:var(--m2-rojo)}
html.m2 .m2-linea-raya + .m2-mes{margin-top:0}  /* el primer mes (la raya va antes que todos) */
html.m2 .m2-mes small{margin-left:8px;font:500 10.5px/1 var(--m2-f-mono);font-style:normal;letter-spacing:.06em;color:var(--m2-t3)}
html.m2 .m2-mes::before{content:"";position:absolute;left:-27px;top:50%;width:11px;height:10px;margin-top:-5px;
  background:var(--m2-papel);border:1.5px solid var(--m2-tinta);clip-path:var(--m2-facet)}

/* ── 12 · EL PIE DE LA CASA, EN MÓVIL ─────────────────────────────────────── */
html.m2 #pie{padding:44px 0 calc(34px + env(safe-area-inset-bottom))}
html.m2 #pie .wrap{padding:0 var(--m2-lado)}
html.m2 .pie-cols{grid-template-columns:1fr 1fr!important;gap:28px 18px!important}
html.m2 .pie-col a{padding:3px 0}
html.m2 .pie-base{font-size:11px}

/* ── 12b · AMI, LA BURBUJA: en la portada no tapa nada; sale al empezar a bajar ── */
html.m2 #ami-widget{right:calc(12px + env(safe-area-inset-right))!important;bottom:calc(12px + env(safe-area-inset-bottom))!important}
html.m2 #ami-widget .ami-launch{width:56px;height:56px;transition:transform .6s var(--m2-rebote),opacity .35s,visibility 0s}
/* Solo se aparta si la barra de capítulos está montada (es ella la que la
   vuelve a sacar al bajar): si el motor no llega, la burbuja está como
   siempre. Apartada es visibility:hidden, para que el tabulador no la pise. */
html.m2.m2-con-riel:not(.m2-ami) #ami-widget:not(.ami-open) .ami-launch{transform:translate3d(0,140%,0);opacity:0;pointer-events:none;
  visibility:hidden;transition:transform .6s var(--m2-rebote),opacity .35s,visibility 0s linear .6s}
/* y apartada no se mueve: su vaivén y su aviso rojo esperan a que vuelva */
html.m2.m2-con-riel:not(.m2-ami) #ami-widget:not(.ami-open) .ami-orb,
html.m2.m2-con-riel:not(.m2-ami) #ami-widget:not(.ami-open) .ami-ping::after{animation-play-state:paused}
/* El chat cerrado ya llevaba aria-hidden, pero sus botones y su caja de
   texto se seguían alcanzando con el tabulador, invisibles (axe lo marca en
   toda la web). Aquí, cerrado es visibility:hidden cuando acaba de irse; al
   abrirse se ve al momento, antes de que el chat ponga el foco en la caja. */
html.m2 #ami-widget:not(.ami-open) .ami-panel{visibility:hidden;
  transition:opacity .34s var(--ami-ease,ease),transform .34s var(--ami-ease,ease),visibility 0s linear .34s}

/* ── 13 · EL MARCO DE PRUEBA (?vista=movil en un ordenador) ─────────────────
   Solo para mirar desde la mesa: la página se encierra en 430 px. En un
   teléfono de verdad esto no existe. */
html.m2.m2-marco{background:#E9E9E5}
html.m2.m2-marco body{max-width:430px;margin:0 auto;box-shadow:0 0 0 1px #D6D6D2,0 30px 80px -40px rgba(11,11,13,.45);position:relative}
html.m2.m2-marco .site-head,html.m2.m2-marco .m2-riel{left:50%;right:auto;width:430px;margin-left:-215px}
html.m2.m2-marco #ami-widget{right:calc(50% - 215px + 14px)!important}
/* aima-app-movil.js (que se sigue cargando: de él cuelga AIMAVista) mete,
   con ?vista=movil en pantalla ancha, una hoja para encerrar SU pantalla
   negra: «#app,#appm{width:min(390px,100%)!important; bordes…}». Aquí no hay
   pantalla negra, y #app es una sección de la página: se le devuelve su sitio. */
html.m2 #app{width:auto!important;margin-inline:0!important;border-left:0!important;border-right:0!important}

/* ── 14 · MÁS ANCHO QUE UN TELÉFONO: no se rompe, se centra ─────────────
   El teléfono de lado, un plegable que se abre, un tablet que entra con la
   vista de móvil puesta (app.html la deja escrita): la columna de 600 px. */
@media (min-width:601px){
  html.m2:not(.m2-marco) main,html.m2:not(.m2-marco) #pie .wrap,
  html.m2:not(.m2-marco) .m2-riel .sumario,html.m2:not(.m2-marco) .m2-riel .zt-indice,
  html.m2:not(.m2-marco) .m2-riel .m2-cuadrito{max-width:600px;margin-inline:auto!important}
}

/* ── 15 · QUIETO: el sistema o los Ajustes de la casa piden poco movimiento ── */
html.m2.m2-quieto *,html.m2.m2-quieto *::before,html.m2.m2-quieto *::after{
  animation-duration:.001ms!important;animation-iteration-count:1!important;
  transition-duration:.001ms!important;transition-delay:0s!important}
html.m2.m2-quieto .m2-r{opacity:1;transform:none}
html.m2.m2-quieto .site-head,html.m2.m2-quieto .m2-riel{transition:none}
