/* La Fábrica de magIA: estilos de la web. Colores y medidas del diseño final (handoff de Claude Design). */
:root{
  --noche:#1E2A4A;
  --noche-2:#2C3B63;
  --naranja:#F28C1E;
  --naranja-hondo:#D9730A;
  --naranja-claro:#FFE8CC;
  --cielo:#EEF2FA;
  --papel:#FFFFFF;
  --tinta-suave:#5A6380;
  --verde:#2BA36B;
  --error:#C0392B;
  --crema:#FBF7F0;
  --dorado:#FFD9A8;
  --puerta:#FFC46B;
  --borde-osc:#46557F;
  --r-s:10px; --r-m:18px; --r-l:28px;
  --f: "Lexend", system-ui, -apple-system, "Segoe UI", sans-serif;
}
*{box-sizing:border-box}
[hidden]{display:none!important}
html,body{margin:0}
body{display:flex;flex-direction:column;min-height:100vh;font-family:var(--f);color:var(--noche);background:var(--crema);font-size:16px;line-height:1.5;-webkit-font-smoothing:antialiased}
img{max-width:100%;display:block}
button,input,textarea,select{font:inherit;color:inherit}
:focus-visible{outline:3px solid var(--naranja);outline-offset:3px;border-radius:6px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}

/* Cabecera */
.conexion{white-space:nowrap;display:flex;align-items:center;gap:8px;background:none;border:2px solid var(--noche);border-radius:99px;padding:6px 14px;font-weight:500;font-size:14px;cursor:pointer}
.conexion .dot{width:10px;height:10px;border-radius:50%;background:#B8BFD0}
.conexion.on .dot{background:var(--verde)}
.conexion.demo .dot{background:var(--naranja)}
.conexion.err .dot{background:var(--error)}


/* Estructura */
main{flex:1 0 auto;outline:none}
.fab-in{max-width:920px;margin:0 auto;padding:28px clamp(16px,4vw,40px) 40px}
.guia{display:flex;align-items:flex-end;gap:12px;margin-bottom:24px}
.guia img{width:72px;height:72px;object-fit:cover;flex:none;background:#fff;border-radius:50%;border:2px solid var(--noche)}
.bocadillo{position:relative;background:#fff;border:2px solid var(--noche);border-radius:var(--r-m) var(--r-m) var(--r-m) 4px;padding:12px 18px;font-size:18px;font-weight:500;max-width:60ch}
.bocadillo small{display:block;font-weight:400;font-size:14px;color:var(--tinta-suave);margin-top:2px}
h1{font-size:clamp(34px,6vw,52px);line-height:1.05;font-weight:800;letter-spacing:-.02em;margin:0 0 14px}
h2{font-size:22px;font-weight:600;margin:0 0 12px}
.bloque{margin:0 0 30px}
.nota{font-size:14px;color:var(--tinta-suave);margin:8px 0 0}

/* Botones */
.btn{text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:8px;border:2px solid var(--noche);background:var(--naranja);color:var(--noche);font-weight:600;font-size:18px;padding:13px 26px;border-radius:99px;cursor:pointer;box-shadow:0 4px 0 var(--noche);transition:transform .08s,box-shadow .08s}
.btn:active{transform:translateY(3px);box-shadow:0 1px 0 var(--noche)}
.btn:disabled{background:#E3E7F0;color:#8A92A8;border-color:#C3C9D8;box-shadow:none;cursor:not-allowed}
.btn.sec{background:#fff}
.btn.peq{font-size:15px;padding:8px 16px;box-shadow:0 3px 0 var(--noche)}
.link{display:inline-block;background:none;border:0;color:var(--noche-2);text-decoration:underline;text-underline-offset:3px;cursor:pointer;padding:6px 0;font-weight:500}
.acciones{display:flex;flex-wrap:wrap;align-items:center;gap:14px;justify-content:space-between;margin-top:34px;padding-top:22px;border-top:2px dashed #C9D1E4}


/* Campos */
.campo{display:flex;flex-direction:column;gap:6px;margin-bottom:16px}
.campo label{font-weight:600}
.campo input[type=text],.campo input[type=password],.campo textarea,.campo select{border:2px solid var(--noche);border-radius:var(--r-s);padding:12px 14px;font-size:18px;background:#fff;width:100%}
.campo textarea{min-height:84px;resize:vertical;font-size:16px}
.fila2{display:grid;grid-template-columns:1fr 1fr;gap:20px}
@media (max-width:640px){.fila2{grid-template-columns:1fr}}

/* Foto */
.foto{display:grid;grid-template-columns:220px 1fr;gap:22px;align-items:start}
@media (max-width:640px){.foto{grid-template-columns:1fr}.foto-zona{max-width:240px}}
.foto-zona{aspect-ratio:1;border:3px dashed var(--noche-2);border-radius:var(--r-l);background:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;cursor:pointer;text-align:center;padding:14px;font-weight:600;position:relative;overflow:hidden}
.foto-zona:hover{background:var(--naranja-claro)}
.foto-zona img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.foto-zona .ico{font-size:44px;line-height:1}
.foto-zona .quitar{position:absolute;right:8px;top:8px;z-index:2}
.consent{display:flex;gap:10px;align-items:flex-start;background:#fff;border:2px solid var(--noche);border-radius:var(--r-s);padding:12px 14px;font-size:15px;margin-top:10px}
.consent input{width:22px;height:22px;flex:none;margin-top:1px;accent-color:var(--naranja-hondo)}
.consent.falta{border-color:var(--error);background:#FDF0EE}

/* Opciones */
.chips{display:flex;flex-wrap:wrap;gap:10px}
.chip{border:2px solid var(--noche);background:#fff;border-radius:99px;padding:9px 18px;font-weight:500;font-size:16px;cursor:pointer;display:inline-flex;gap:8px;align-items:center}
.chip[aria-pressed=true]{background:var(--noche);color:#fff}
.chip.num{width:52px;height:52px;padding:0;justify-content:center;font-size:20px;font-weight:600}
.tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px}
.tile{border:2px solid var(--noche);background:#fff;border-radius:var(--r-m);padding:14px 12px 12px;text-align:left;cursor:pointer;display:flex;flex-direction:column;gap:8px;min-height:116px;font-weight:600;font-size:16px;line-height:1.25;transition:transform .12s}
.tile .emo{font-size:34px;line-height:1}
.tile[aria-pressed=true]{background:var(--naranja);box-shadow:0 5px 0 var(--noche);transform:translateY(-3px) rotate(-1deg)}
.tile small{font-weight:400;font-size:13px;color:var(--tinta-suave)}
.tile[aria-pressed=true] small{color:var(--noche)}
.estilos .tile{min-height:150px;padding:0;overflow:hidden}
.estilos .tile .muestra{height:74px;border-bottom:2px solid var(--noche)}
.cuenta{font-size:14px;color:var(--tinta-suave);font-weight:400;margin-left:6px}

/* Resumen y fábrica */
.galeria{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:10px}
.galeria div{aspect-ratio:3/4;border-radius:var(--r-s);border:2px solid var(--noche);background:#fff center/cover no-repeat;display:grid;place-items:center;color:#AEB7D1;font-weight:600}
.aviso{background:#FDF0EE;border:2px solid var(--error);border-radius:var(--r-s);padding:12px 16px;margin:0 0 18px}

/* Lector: libro que se abre y pasa hojas */
.modo-libro .fab-in{max-width:1280px}
.lector-top{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:16px}
.lector-top h1{font-size:clamp(24px,3.4vw,34px);margin:0}
.escenario{position:relative;border-radius:var(--r-l);padding:clamp(18px,3vw,36px) 12px;overflow:hidden;
  background:radial-gradient(ellipse at 50% 35%,#34477A 0,#1E2A4A 62%,#141C33 100%);border:2px solid var(--noche);touch-action:pan-y;scroll-margin-top:calc(var(--alto-cab,90px) + 8px)}
.escenario::before{content:"";position:absolute;inset:0;pointer-events:none;opacity:.7;
  background-image:radial-gradient(1.5px 1.5px at 12% 18%,#fff 50%,transparent 51%),radial-gradient(1px 1px at 28% 72%,#fff 50%,transparent 51%),radial-gradient(2px 2px at 84% 22%,#FFD9A8 50%,transparent 51%),radial-gradient(1px 1px at 66% 86%,#fff 50%,transparent 51%),radial-gradient(1.5px 1.5px at 92% 64%,#fff 50%,transparent 51%),radial-gradient(1px 1px at 6% 88%,#FFD9A8 50%,transparent 51%),radial-gradient(1.5px 1.5px at 46% 8%,#fff 50%,transparent 51%);
  animation:titila 4s ease-in-out infinite alternate}
@keyframes titila{to{opacity:.35}}
.escena-libro{position:relative;margin:0 auto;width:calc(var(--pw) * 2);height:var(--ph)}
.libro3d{position:absolute;inset:0;transition:transform .9s cubic-bezier(.45,.05,.2,1)}
.libro3d.cerrado{transform:translateX(calc(var(--pw) * -.5))}
.libro3d.en-contra{transform:translateX(calc(var(--pw) * .5))}
.hoja3d{position:absolute;left:50%;top:0;width:var(--pw);height:100%;transform-origin:left center;transform-style:preserve-3d;
  transform:perspective(2600px) rotateY(0);transition:transform 1.05s cubic-bezier(.45,.05,.2,1);cursor:pointer}
.hoja3d.girada{transform:perspective(2600px) rotateY(-180deg)}
.sin-anim .libro3d,.sin-anim .hoja3d{transition:none!important}
.hoja3d>.cara{position:absolute;inset:0;backface-visibility:hidden;-webkit-backface-visibility:hidden;box-shadow:0 14px 34px rgba(0,0,0,.35)}
.hoja3d>.cara.dorso{transform:rotateY(180deg)}
.hoja3d>.cara.frente{border-radius:0 6px 6px 0}
.hoja3d>.cara.dorso{border-radius:6px 0 0 6px}
.hoja3d>.cara::after{content:"";position:absolute;inset:0;pointer-events:none}
.hoja3d>.cara.frente::after{background:linear-gradient(90deg,rgba(0,0,0,.22) 0,rgba(0,0,0,.06) 4%,rgba(0,0,0,0) 10%)}
.hoja3d>.cara.dorso::after{background:linear-gradient(270deg,rgba(0,0,0,.22) 0,rgba(0,0,0,.06) 4%,rgba(0,0,0,0) 10%)}
.hoja3d.moviendo>.cara::after{animation:luzhoja 1.05s ease-in-out}
@keyframes luzhoja{50%{background-color:rgba(0,0,0,.12)}}
.cerrado .hoja3d:first-child>.frente{animation:aura 2.2s ease-in-out infinite alternate}
@keyframes aura{from{box-shadow:0 14px 34px rgba(0,0,0,.35),0 0 0 rgba(242,140,30,0)}to{box-shadow:0 14px 34px rgba(0,0,0,.35),0 0 60px rgba(255,200,120,.75)}}
.abrir-libro{position:absolute;left:50%;bottom:calc(var(--ph) * .2);transform:translateX(-50%);z-index:2000;font-size:20px;animation:late 1.6s ease-in-out infinite}
@keyframes late{50%{transform:translateX(-50%) scale(1.06)}}
.chispas{position:absolute;inset:0;pointer-events:none;z-index:3000;overflow:visible}
.chispa{position:absolute;left:50%;top:50%;width:var(--s);height:var(--s);border-radius:50%;background:var(--c);box-shadow:0 0 10px var(--c);
  animation:vuela 1.6s cubic-bezier(.15,.7,.3,1) forwards;animation-delay:var(--d)}
@keyframes vuela{0%{transform:translate(-50%,-50%) scale(.2);opacity:0}15%{opacity:1}100%{transform:translate(calc(-50% + var(--x)),calc(-50% + var(--y))) scale(1);opacity:0}}
.nav-libro{display:flex;align-items:center;justify-content:center;gap:16px;margin:18px 0 6px}
.nav-libro span{min-width:150px;text-align:center;font-weight:600}
.herr{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin:10px 0 20px}
@media (prefers-reduced-motion:reduce){.libro3d,.hoja3d{transition-duration:.01s!important}.chispa,.abrir-libro,.escenario::before,.cerrado .hoja3d:first-child>.frente{animation:none}}

/* Caras del libro (pantalla e impresión). Todo se mide en proporción al ancho de página --pw */
.cara{overflow:hidden;background:#FFFDF7;color:var(--noche)}
.f-ilus img,.f-portada img.fondo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
.f-ilus .estado-ilus,.f-portada .estado-ilus{position:absolute;inset:0;display:grid;place-items:center;background:linear-gradient(160deg,#F4F1FF,#EEF2FA);padding:8%;text-align:center;font-size:calc(var(--pw) * .04)}
.estado-ilus .btn{font-size:calc(var(--pw) * .036)}
.f-texto{display:flex;align-items:center;justify-content:center;
  background:radial-gradient(ellipse at 50% 40%,#FFFEFA 0,#FFF9EC 70%,#F8F0DC 100%)}
.f-texto .txt{width:calc(70% + (1 - var(--kt,1)) * 40%);text-align:center;font-family:"Andika",var(--f);font-size:calc(var(--pw) * .041 * var(--kt,1));line-height:calc(1.62 - (1 - var(--kt,1)) * .4);color:#2A3150}
.f-texto .txt p{margin:0}
.f-texto .orla{display:block;color:var(--naranja);font-size:calc(var(--pw) * .05);margin-bottom:calc(var(--pw) * .04);letter-spacing:.4em}
.f-texto .finmarca{display:block;font-family:"Baloo 2",var(--f);font-weight:800;color:var(--naranja);font-size:calc(var(--pw) * .085);margin-top:calc(var(--pw) * .06)}
.f-texto .folio{position:absolute;left:0;right:0;bottom:calc(var(--pw) * .06);text-align:center;font-family:"Baloo 2",var(--f);font-size:calc(var(--pw) * .03);color:#A49B85}
.f-portada .tt{position:absolute;left:0;right:0;top:0;padding:calc(var(--pw) * .08) calc(var(--pw) * .07) calc(var(--pw) * .16);text-align:center;
  background:linear-gradient(180deg,rgba(255,255,255,.94) 0,rgba(255,255,255,.82) 55%,rgba(255,255,255,0) 100%)}
.f-portada h2{font-family:"Baloo 2",var(--f);font-weight:800;font-size:calc(var(--pw) * .108);line-height:.98;margin:0;color:var(--noche);letter-spacing:-.01em}
.f-portada .tt p{margin:calc(var(--pw) * .025) 0 0;font-family:"Baloo 2",var(--f);font-weight:600;font-size:calc(var(--pw) * .042);color:var(--noche-2)}
.f-portada .logos{position:absolute;left:calc(var(--pw) * .05);right:calc(var(--pw) * .05);bottom:calc(var(--pw) * .05);background:rgba(255,255,255,.95);
  border-radius:calc(var(--pw) * .035);padding:calc(var(--pw) * .02) calc(var(--pw) * .04);display:flex;align-items:center;justify-content:space-between;gap:calc(var(--pw) * .03)}
.f-portada .logos img{height:calc(var(--pw) * .095);width:auto;max-width:34%;object-fit:contain}
.f-portada .logos img.lg-fab{height:calc(var(--pw) * .12)}
/* NUBI se despide en la contraportada con el mensaje final (imagen oficial, no la dibuja la IA) */
.f-contra .bocadillo-fin{position:relative;background:#fff;border:calc(var(--pw) * .008) solid var(--naranja);border-radius:calc(var(--pw) * .05);padding:calc(var(--pw) * .04) calc(var(--pw) * .055);max-width:84%;margin-bottom:calc(var(--pw) * .06)}
.f-contra .bocadillo-fin::after{content:"";position:absolute;left:50%;bottom:calc(var(--pw) * -.058);transform:translateX(-50%);border-left:calc(var(--pw) * .03) solid transparent;border-right:calc(var(--pw) * .03) solid transparent;border-top:calc(var(--pw) * .05) solid var(--naranja)}
.f-contra .bocadillo-fin .msg{margin:0;color:var(--noche);font-size:calc(var(--pw) * .054)}
.f-contra .nubi-despide{height:calc(var(--pw) * .66);width:auto;object-fit:contain}
.f-contra .autor{margin-top:calc(var(--pw) * .035)}
/* Botón pequeño para volver a dibujar una ilustración (solo en pantalla) */
.dibujando-aviso{position:absolute;z-index:3;right:calc(var(--pw) * .03);top:calc(var(--pw) * .03);font:600 calc(var(--pw) * .03)/1 var(--f);color:var(--noche);background:var(--naranja-claro);border:2px solid var(--noche);border-radius:99px;padding:calc(var(--pw) * .014) calc(var(--pw) * .026)}
.f-portada .dibujando-aviso{top:auto;bottom:calc(var(--pw) * .25)}
@media print{.dibujando-aviso{display:none!important}}
.f-contra{background:radial-gradient(ellipse at 50% 30%,#34477A 0,#1E2A4A 65%,#141C33 100%);color:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:0 10%}
.f-contra::before{content:"";position:absolute;inset:0;opacity:.8;background-image:radial-gradient(2px 2px at 14% 16%,#fff 50%,transparent 51%),radial-gradient(1.5px 1.5px at 80% 12%,#FFD9A8 50%,transparent 51%),radial-gradient(1.5px 1.5px at 22% 60%,#fff 50%,transparent 51%),radial-gradient(2px 2px at 88% 48%,#fff 50%,transparent 51%),radial-gradient(1.5px 1.5px at 60% 92%,#FFD9A8 50%,transparent 51%),radial-gradient(1px 1px at 40% 30%,#fff 50%,transparent 51%)}
.f-contra>*{position:relative}
.f-contra .nubi{width:calc(var(--pw) * .34);height:calc(var(--pw) * .34);border-radius:50%;background:#fff;object-fit:contain;border:calc(var(--pw) * .008) solid var(--naranja)}
.f-contra .msg{font-family:"Baloo 2",var(--f);font-weight:700;font-size:calc(var(--pw) * .058);line-height:1.15;margin:calc(var(--pw) * .06) 0 calc(var(--pw) * .03)}
.f-contra .autor{font-size:calc(var(--pw) * .032);opacity:.85;margin:0}

/* Pie */
.pie{border-top:2px solid var(--noche);background:#fff;padding:18px clamp(16px,4vw,40px)}
.pie-in{max-width:1240px;margin:0 auto;display:flex;gap:20px;align-items:center;justify-content:space-between;flex-wrap:wrap;font-size:14px;color:var(--tinta-suave)}
.pie img{height:44px;width:auto}
.pie strong{color:var(--noche)}

/* Ajustes */
dialog{border:2px solid var(--noche);border-radius:var(--r-l);padding:26px;max-width:540px;width:calc(100% - 32px);color:var(--noche)}
dialog::backdrop{background:rgba(30,42,74,.55)}
dialog h2{margin-bottom:6px}
.estado{font-size:14px;padding:10px 12px;border-radius:var(--r-s);background:var(--cielo);margin:10px 0}
.estado.ok{background:#E5F5EC}
.estado.err{background:#FDF0EE}

/* Impresión: A4 apaisado a sangre, dos páginas por hoja */
#imprimir{display:none}
@page{size:297mm 210mm;margin:0}
@media print{
  html,body{background:#fff;margin:0;padding:0}
  body{display:block;min-height:0}
  body>*:not(#imprimir){display:none!important}
  #imprimir{display:block;--pw:148.5mm;--ph:210mm}
  .pliego{width:297mm;height:210mm;display:flex;overflow:hidden;page-break-after:always;break-after:page;page-break-inside:avoid}
  .pliego:last-child{page-break-after:auto;break-after:auto}
  .pliego>.cara{position:relative;width:148.5mm;height:210mm;flex:none}
  .estado-ilus{display:none!important}
  *{-webkit-print-color-adjust:exact;print-color-adjust:exact}
}

/* =====================================================================
   Fase 2 (F6a): la web en cuatro secciones, según el diseño final
   ===================================================================== */
a{color:var(--naranja-hondo)}
.ms{font-family:"Material Symbols Rounded";font-weight:normal;font-style:normal;font-size:24px;line-height:1;display:inline-block;letter-spacing:normal;text-transform:none;white-space:nowrap;direction:ltr;-webkit-font-smoothing:antialiased;flex:none}
.h-display{font-family:"Baloo 2",var(--f);font-weight:800;letter-spacing:-.01em;text-wrap:balance}
.etq{font-size:13px;letter-spacing:.1em;text-transform:uppercase;font-weight:600}
.btn .ms{font-size:22px}
.avatar{border-radius:50%;object-fit:cover;background:#fff;border:3px solid var(--naranja);flex:none}

/* Cabecera fija con las cuatro secciones */
.top{position:sticky;top:0;z-index:50;background:var(--papel);border-bottom:2px solid var(--noche);display:flex;align-items:center;gap:20px;padding:8px clamp(16px,4vw,40px)}
.top .marca{display:block;flex:none;border-radius:8px}
.top .logo{height:56px;width:auto;margin:2px 0}
.menu{display:flex;gap:4px;flex:1;justify-content:center;flex-wrap:wrap}
.menu a{display:flex;align-items:center;gap:8px;border-bottom:3px solid transparent;padding:10px 14px;font-weight:500;font-size:15px;color:var(--noche);text-decoration:none;white-space:nowrap}
.menu a .ms{font-size:22px}
.menu a:hover{border-bottom-color:#F6C48A}
.menu a[aria-current=page]{border-bottom-color:var(--naranja);font-weight:700}
.menu a[aria-current=page] .ms{color:var(--naranja-hondo)}
.menu .l-corto{display:none}
.conexion{padding:5px 14px 5px 6px}
.conexion img{width:30px;height:30px;border-radius:50%;object-fit:cover;background:#fff}
@media (max-width:1060px){
  .menu a{padding:10px 8px;gap:6px}
  .conexion{padding:5px 10px 5px 6px}
  .conexion .txt{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
}
@media (max-width:700px){
  .top{flex-wrap:wrap;gap:4px 12px;padding:6px 12px 0}
  .top .logo{height:40px;margin:0}
  .top .marca{margin-right:auto}
  .menu{order:3;flex:1 0 100%;flex-wrap:nowrap;justify-content:space-between;gap:0;margin:0 -6px}
  .menu a{flex:1 1 0;flex-direction:column;gap:2px;font-size:12px;padding:4px 2px 7px;text-align:center}
  .menu .l-largo{display:none}
  .menu .l-corto{display:inline}
}

/* Bandas de color noche y contenido */
.banda{background:var(--noche);color:#fff}
.seccion{max-width:1240px;margin:0 auto;padding:clamp(36px,5vw,64px) clamp(16px,4vw,40px) 64px}
.h-sec{margin:0 0 6px;font-size:clamp(30px,3.6vw,40px);line-height:1.05}
.sub{margin:0 0 28px;color:var(--tinta-suave);font-size:17px}
.pastilla{align-self:flex-start;display:flex;align-items:center;gap:8px;background:var(--noche-2);border-radius:99px;padding:6px 14px;font-size:14px;color:var(--dorado)}
.pastilla .ms{font-size:18px}
.pastilla .ms.naranja{color:var(--naranja)}

/* Inicio: cabecera grande */
.hero-in{max-width:1240px;margin:0 auto;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,360px),1fr));gap:32px;align-items:center;padding:clamp(28px,5vw,56px) clamp(16px,4vw,40px)}
.hero-txt{display:flex;flex-direction:column;gap:22px}
.hero-h1{margin:0;font-size:clamp(44px,6vw,76px);line-height:.95;color:#fff}
.hero-h1 span{color:var(--naranja)}
.hero-p{margin:0;font-size:19px;line-height:1.55;max-width:36ch;color:#DCE2F0;text-wrap:pretty}
.hero-cta{display:flex;gap:14px;flex-wrap:wrap;align-items:center}
.btn.claro{border-color:#fff;box-shadow:0 4px 0 #fff;font-weight:700;padding:14px 28px}
.btn.claro:active{box-shadow:0 1px 0 #fff}
.btn.claro .ms{font-size:24px}
.link-claro{color:#fff;font-weight:500;font-size:16px;text-decoration:underline;text-underline-offset:4px;padding:8px 4px}
.link-claro:hover{color:var(--dorado)}
.hero-img{width:100%;height:auto;border-radius:24px;border:3px solid #fff;box-shadow:12px 12px 0 var(--naranja)}

/* Inicio: las tres puertas */
.puertas{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr));gap:24px}
.puerta{text-align:left;background:#fff;border:2px solid var(--noche);border-radius:24px;padding:22px;display:flex;flex-direction:column;gap:16px;box-shadow:0 6px 0 var(--noche);transition:transform .15s;color:var(--noche);text-decoration:none}
.puerta:hover{transform:translateY(-4px)}
.puerta .arco{height:190px;border-radius:120px 120px 14px 14px;background:var(--noche);display:flex;align-items:flex-end;justify-content:center;padding-top:28px}
.puerta .hoja{width:58%;height:100%;border-radius:90px 90px 0 0;background:var(--puerta);border:4px solid var(--naranja);border-bottom:0;display:grid;place-items:center}
.puerta .hoja .ms{font-size:64px;color:var(--noche)}
.puerta .etq{color:var(--naranja-hondo);letter-spacing:.08em}
.puerta .tit{font-size:30px;line-height:1.1;margin-top:4px}
.puerta p{margin:6px 0 0;color:var(--tinta-suave);font-size:16px;line-height:1.5}
.puerta .ir{display:flex;align-items:center;gap:6px;font-weight:600;margin-top:auto}
@media (prefers-reduced-motion:reduce){.puerta{transition:none}.puerta:hover{transform:none}}

/* El Almacén (de momento, «muy pronto») */
.almacen-cab{max-width:1240px;margin:0 auto;padding:32px clamp(16px,4vw,40px);display:flex;gap:18px;align-items:center}
.almacen-cab .avatar{width:76px;height:76px}
.almacen-cab h1{margin:0;font-size:clamp(32px,4vw,44px);line-height:1;color:#fff}
.almacen-cab p{margin:6px 0 0;color:#DCE2F0}
.pronto{max-width:1000px;margin:0 auto;padding:40px clamp(16px,4vw,40px) 64px}
.libro-fantasma{aspect-ratio:3/4;border:2px solid var(--noche);border-radius:16px;background:var(--fondo);display:flex;align-items:flex-end;justify-content:flex-end;padding:14px;opacity:.5}
.libro-fantasma .ms{font-size:50px;color:var(--tinta)}
.cinta-pronto{position:absolute;left:50%;top:42%;transform:translate(-50%,-50%) rotate(-4deg);background:var(--naranja);border:2px solid var(--noche);border-radius:99px;padding:8px 24px;font-weight:700;letter-spacing:.08em;box-shadow:0 4px 0 var(--noche);white-space:nowrap}
.pronto .guia{margin:34px 0 8px}

/* El Taller de Encuadernación */
.cab-sec{max-width:1100px;margin:0 auto;padding:28px clamp(16px,4vw,40px) 26px}
.cab-fila{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}
.cab-sec .etq{color:var(--dorado)}
.cab-tit{margin:0;font-size:clamp(28px,3.4vw,38px);line-height:1.1;color:#fff}
.tut-pista{position:relative;padding-top:74px;margin-top:26px;scroll-margin-top:calc(var(--alto-cab,90px) + 12px)}
.tut-nubi{position:absolute;top:0;left:7%;transform:translateX(-50%);transition:left .8s cubic-bezier(.3,.8,.3,1)}
.tut-nubi img{width:62px;height:62px;box-shadow:0 6px 16px rgba(0,0,0,.4)}
.tut-linea{position:absolute;left:7%;right:7%;top:96px;height:4px;background:var(--borde-osc);border-radius:2px}
.tut-linea i{display:block;height:100%;width:0;background:var(--naranja);border-radius:2px;transition:width .8s}
.tut-paradas{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));position:relative}
.parada{background:none;border:0;display:flex;flex-direction:column;align-items:center;gap:6px;cursor:pointer;color:#AEB7D1;padding:0}
.parada b{width:48px;height:48px;border-radius:50%;display:grid;place-items:center;background:var(--noche);border:2px solid var(--borde-osc);color:#AEB7D1;transition:background .3s,border-color .3s}
.parada b .ms{font-size:24px}
.parada>span{font-size:clamp(10px,1.1vw,13px);font-weight:600;text-align:center;line-height:1.2}
.parada.hecha,.parada.actual{color:#fff}
.parada.hecha b{background:var(--naranja-claro);border-color:var(--naranja);color:var(--naranja-hondo)}
.parada.actual b{background:var(--naranja);border-color:var(--naranja);color:var(--noche)}
@media (max-width:560px){
  .tut-pista{padding-top:58px}
  .tut-nubi img{width:48px;height:48px}
  .tut-linea{top:76px}
  .parada b{width:36px;height:36px}
  .parada b .ms{font-size:20px}
  .parada>span{display:none}
}
@media (prefers-reduced-motion:reduce){.tut-nubi,.tut-linea i{transition:none}}
.tut-cuerpo{max-width:1100px;margin:0 auto;padding:32px clamp(16px,4vw,40px) 64px}
.tut-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,380px),1fr));gap:32px;align-items:start}
.tut-foto{aspect-ratio:4/3;border:2px solid var(--noche);border-radius:24px;background:repeating-linear-gradient(-45deg,#fff 0 12px,#F3EEE4 12px 24px);display:grid;place-items:center;position:relative;overflow:hidden}
.tut-foto img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.tut-foto .ms{font-size:110px;color:var(--naranja-hondo)}
.tut-foto .insignia{position:absolute;top:14px;left:14px;z-index:1;background:var(--noche);color:#fff;border-radius:99px;padding:3px 12px;font-size:13px;font-weight:600}
.tut-txt{display:flex;flex-direction:column;gap:18px}
.tut-txt h2{margin:0;font-size:clamp(30px,3.4vw,40px);line-height:1.05;font-weight:800}
.tut-txt .guia{margin:0}
.guia.peq img{width:56px;height:56px}
.guia.peq .bocadillo{font-size:17px;line-height:1.45;padding:12px 16px}
.tut-lista{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:10px}
.tut-lista li{display:flex;gap:12px;align-items:flex-start;font-size:16px;line-height:1.5}
.tut-lista li b{width:28px;height:28px;border-radius:50%;background:var(--naranja);border:2px solid var(--noche);display:grid;place-items:center;font-size:13px;font-weight:700;flex:none}
.necesitas{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.necesitas>strong{font-size:14px;font-weight:600;color:var(--tinta-suave)}
.necesita{display:flex;align-items:center;gap:6px;background:var(--cielo);border-radius:99px;padding:5px 12px;font-size:14px}
.necesita .ms{font-size:18px}
.truco{background:var(--naranja-claro);border-radius:14px;padding:12px 16px;display:flex;gap:10px;font-size:15px;line-height:1.45}
.truco .ms{font-size:22px;color:var(--naranja-hondo)}
.tut-extra{display:flex;gap:12px;flex-wrap:wrap;align-items:center}

/* Pie */
.pie-logos{display:flex;align-items:center;gap:18px}

/* =====================================================================
   F6b: La Fábrica en cinco salas, según el diseño final
   ===================================================================== */
.err-msg{color:var(--error);margin:6px 0 0}
.lbl{font-weight:600}
.chip .ms{font-size:20px}
.chip.num{width:48px;height:48px;font-size:18px}
.chip.num.grande{width:56px;height:56px;font-size:20px}
.tile{min-height:110px;gap:10px}
.tile .ms{font-size:32px}
.estilos .tile{min-height:0;gap:0}
.estilos .tile .muestra-img{display:block;aspect-ratio:4/3;border-bottom:2px solid var(--noche);overflow:hidden;background:var(--naranja-claro)}
.estilos .tile .muestra-img img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .25s}
.estilos .tile:hover .muestra-img img{transform:scale(1.05)}
.estilos .tile .nom{padding:12px 14px}

/* La banda: cinco salas, cinta transportadora y NUBI */
.fab-banda{background:var(--noche);color:#fff;padding:24px clamp(16px,4vw,40px) 30px}
.fb-in{max-width:1100px;margin:0 auto}
.fb-cab{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:22px}
.fb-cab .etq{color:var(--dorado)}
.fb-tit{font-size:clamp(28px,3.4vw,38px);line-height:1.1}
.fb-cab .pastilla{align-self:center;color:#fff}
.fb-cab .pastilla .ms{color:var(--naranja)}
.fb-pista{position:relative;padding-bottom:22px}
.fb-salas{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:clamp(6px,1.2vw,14px)}
.fb-sala{position:relative;height:clamp(130px,15vw,160px);border-radius:16px 16px 6px 6px;background:transparent;border:2px solid #3A4870;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:8px;padding:16px 6px 0;color:#fff;cursor:default;transition:background .4s,border-color .4s,box-shadow .4s}
.fb-sala:disabled{opacity:1;color:#fff}
.fb-ico{width:clamp(40px,5vw,54px);height:clamp(40px,5vw,54px);border-radius:50%;display:grid;place-items:center;background:var(--noche-2);color:#7F8BAE;transition:background .4s,color .4s}
.fb-ico .ms{font-size:clamp(22px,2.8vw,30px)}
.fb-lbl{font-size:clamp(11px,1.2vw,14px);font-weight:600;text-align:center;line-height:1.2;color:#AEB7D1}
.fb-ok{position:absolute;top:8px;right:8px;color:var(--verde);display:none}
.fb-ok .ms{font-size:20px}
.fb-sala.hecha{background:#24335A;border-color:var(--borde-osc)}
.fb-sala.hecha:not(:disabled){cursor:pointer}
.fb-sala.hecha:not(:disabled):hover{border-color:var(--naranja)}
.fb-sala.hecha .fb-ico{background:var(--naranja-claro);color:var(--naranja-hondo)}
.fb-sala.hecha .fb-ok{display:block}
.fb-sala.hecha .fb-lbl,.fb-sala.actual .fb-lbl{color:#fff}
.fb-sala.actual{background:var(--noche-2);border-color:var(--naranja);box-shadow:0 0 34px rgba(242,140,30,.45)}
.fb-sala.actual .fb-ico{background:var(--naranja);color:var(--noche)}
.fb-cinta{height:14px;margin-top:10px;border-radius:7px;background:repeating-linear-gradient(90deg,#46557F 0 18px,#2C3B63 18px 28px);border:2px solid #46557F}
.fb-nubi{position:absolute;bottom:0;left:10%;transform:translateX(-50%);transition:left .8s cubic-bezier(.3,.8,.3,1);pointer-events:none}
.fb-nubi img{width:clamp(58px,7vw,78px);height:clamp(58px,7vw,78px);box-shadow:0 6px 16px rgba(0,0,0,.4)}
.fab-banda.en-marcha .fb-cinta{animation:cinta .9s linear infinite}
@keyframes cinta{to{background-position:28px 0}}
.fab-banda.en-marcha .fb-nubi img{animation:salto .45s ease-in-out infinite alternate}
@keyframes salto{to{transform:translateY(-8px)}}
.fab-banda.en-marcha .fb-sala.actual .fb-ico{animation:late2 1s ease-in-out infinite}
@keyframes late2{50%{transform:scale(1.12)}}
@media (max-width:560px){
  .fb-cab{margin-bottom:16px}
  .fb-sala{height:92px;padding-top:12px}
  .fb-lbl{display:none}
  .fb-ok{top:4px;right:4px}
  .fb-ok .ms{font-size:16px}
}
@media (prefers-reduced-motion:reduce){.fb-nubi,.fb-sala,.fb-ico{transition:none}.fab-banda.en-marcha .fb-cinta,.fab-banda.en-marcha .fb-nubi img,.fab-banda.en-marcha .fb-sala.actual .fb-ico{animation:none}}

/* La puerta de la fábrica (palabra mágica) */
.entrada{display:grid;grid-template-columns:minmax(0,250px) 1fr;gap:clamp(20px,4vw,48px);align-items:center;padding:clamp(8px,3vw,28px) 0}
.entrada-puerta .arco{height:300px;border-radius:130px 130px 14px 14px;background:var(--noche);display:flex;align-items:flex-end;justify-content:center;padding-top:34px;box-shadow:0 6px 0 var(--naranja)}
.entrada-puerta .hoja{width:62%;height:100%;border-radius:100px 100px 0 0;background:var(--puerta);border:4px solid var(--naranja);border-bottom:0;display:grid;place-items:center}
.entrada-puerta .hoja .ms{font-size:72px;color:var(--noche)}
.entrada-txt h1{font-size:clamp(32px,4vw,44px);line-height:1;margin:0 0 18px}
.entrada-txt .guia{margin-bottom:18px}
.entrada-fila{display:flex;gap:12px;flex-wrap:wrap;align-items:center}
.campo .entrada-fila input[type=text]{flex:1 1 220px;width:auto;min-width:0}
@media (max-width:640px){.entrada{grid-template-columns:1fr}.entrada-puerta{display:none}}

/* Sala de Retratos */
.retrato{display:grid;grid-template-columns:minmax(0,260px) 1fr;gap:28px;margin-bottom:24px;align-items:start}
@media (max-width:640px){.retrato{grid-template-columns:1fr}}
#zonaFabrica{scroll-margin-top:calc(var(--alto-cab,90px) + 12px)}
.retrato-datos{display:flex;flex-direction:column;gap:18px}
.retrato-datos .campo{margin:0}
.foto-zona{max-width:260px;border-radius:24px;background:repeating-linear-gradient(-45deg,#fff 0 10px,#F3F0E8 10px 20px)}
.foto-zona:hover{background:var(--naranja-claro)}
.foto-zona .ms{font-size:44px}
.foto-zona small{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;font-weight:400;color:var(--tinta-suave)}

/* La Gran Máquina: ticket, máquina en marcha y cuento terminado */
.ticket{position:relative;background:#fff;border:2px solid var(--noche);border-radius:24px;padding:30px 24px 24px;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr));gap:22px 24px;margin-top:14px}
.ticket-etq{position:absolute;top:-14px;left:24px;background:var(--naranja);border:2px solid var(--noche);border-radius:99px;padding:3px 14px;font-weight:700;font-size:13px;letter-spacing:.06em}
.ticket-fila{display:flex;gap:12px;align-items:flex-start}
.ticket-ico{width:42px;height:42px;border-radius:50%;background:var(--naranja-claro);display:grid;place-items:center;flex:none}
.ticket-ico .ms{font-size:22px;color:var(--naranja-hondo)}
.ticket .k{font-size:13px;color:var(--tinta-suave)}
.ticket .v{font-weight:600;line-height:1.35;overflow-wrap:anywhere;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.ticket-fila>div{min-width:0}
.maquina{background:#fff;border:2px solid var(--noche);border-radius:24px;padding:22px;display:flex;flex-direction:column;gap:10px;margin-bottom:20px}
.progreso{height:14px;border-radius:7px;background:var(--cielo);border:2px solid var(--noche);overflow:hidden;margin-bottom:8px}
.progreso i{display:block;height:100%;background-color:var(--naranja)}
.maquina.en-marcha .progreso i{background-image:linear-gradient(-45deg,rgba(255,255,255,.32) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.32) 50%,rgba(255,255,255,.32) 75%,transparent 75%);background-size:20px 20px;animation:rayas .8s linear infinite}
@keyframes rayas{to{background-position:20px 0}}
.tarea{display:flex;align-items:center;gap:14px;padding:12px 14px;border-radius:12px;border:2px solid #D5DBEA;background:#fff}
.tarea .t-ico .ms{font-size:26px;color:#AEB7D1}
.tarea .t-txt{flex:1;font-weight:500;min-width:0}
.tarea .t-txt small{display:block;font-weight:400;font-size:13px;color:var(--tinta-suave);overflow-wrap:anywhere}
.tarea .t-est{font-size:13px;color:var(--tinta-suave);white-space:nowrap}
.tarea.run{border-color:var(--naranja);background:#FFF6EA}
.tarea.run .t-ico .ms{color:var(--naranja-hondo)}
.tarea.ok{border-color:#BFE5D0}
.tarea.ok .t-ico .ms{color:var(--verde)}
.tarea.err{border-color:var(--error)}
.tarea.err .t-ico .ms{color:var(--error)}
.galeria div{border-radius:12px}
.final{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr));gap:28px;align-items:center;background:var(--noche);color:#fff;border-radius:28px;padding:clamp(20px,4vw,36px);margin-top:12px}
.final-portada{position:relative;aspect-ratio:2/3;width:100%;max-width:240px;justify-self:center;background:var(--naranja-claro);border:3px solid #fff;border-radius:6px 16px 16px 6px;box-shadow:10px 10px 0 var(--naranja);overflow:hidden;display:grid;place-items:center}
.final-portada img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.final-portada>.ms{font-size:80px;color:var(--naranja-hondo)}
.final-portada .tt{position:absolute;left:0;right:0;top:0;padding:18px 16px 44px;text-align:center;background:linear-gradient(180deg,rgba(255,255,255,.94) 0,rgba(255,255,255,.8) 55%,rgba(255,255,255,0) 100%)}
.final-portada .tt span{display:block;font-size:24px;line-height:1;color:var(--noche)}
.final-txt{display:flex;flex-direction:column;gap:14px}
.final-txt .etq{color:var(--dorado)}
.final-txt h2{margin:0;font-size:clamp(32px,4vw,44px);line-height:1;color:#fff}
.final-txt p{margin:0;color:#DCE2F0;font-size:17px;line-height:1.5}
.final-txt .final-aviso{background:rgba(255,232,204,.14);border-radius:12px;padding:10px 14px;font-size:15px}
.final-cta{display:flex;gap:12px;flex-wrap:wrap;margin-top:6px}
.btn.contorno{background:transparent;color:#fff;border-color:#fff;box-shadow:none}
.btn.contorno:active{transform:translateY(2px)}
@media (prefers-reduced-motion:reduce){.maquina.en-marcha .progreso i{animation:none}}

/* Libro */
.lector-top h1{font-family:"Baloo 2",var(--f);font-weight:800;letter-spacing:-.01em}
.abrir-libro .ms,.herr .ms{font-size:22px}
@media (max-width:560px){
  .nav-libro{gap:8px}
  .nav-libro span{min-width:0;flex:1;font-size:14px}
  .nav-libro .btn{white-space:nowrap;padding:8px 12px}
  .abrir-libro{font-size:15px;padding:10px 18px;white-space:nowrap}
}

/* =====================================================================
   F6c: «Así trabaja la fábrica», la animación de Inicio ligada al scroll
   ===================================================================== */
.fx{position:relative;height:340vh;background:#16203B}
.fx-escena{position:sticky;top:var(--alto-cab,88px);height:calc(100vh - var(--alto-cab,88px));height:calc(100svh - var(--alto-cab,88px));overflow:hidden;color:#fff;display:flex;flex-direction:column;justify-content:center;gap:clamp(8px,2.4vh,34px);padding:clamp(10px,2.5vh,24px) clamp(16px,4vw,40px);
  background-color:#16203B;background-image:radial-gradient(1.5px 1.5px at 12% 18%,#fff 50%,transparent 51%),radial-gradient(1px 1px at 28% 72%,#fff 50%,transparent 51%),radial-gradient(2px 2px at 84% 12%,#FFD9A8 50%,transparent 51%),radial-gradient(1px 1px at 66% 36%,#fff 50%,transparent 51%),radial-gradient(1.5px 1.5px at 92% 54%,#fff 50%,transparent 51%),radial-gradient(1.5px 1.5px at 46% 8%,#fff 50%,transparent 51%)}
.fx-cab{max-width:1100px;width:100%;margin:0 auto;display:flex;justify-content:space-between;align-items:flex-end;gap:20px;flex-wrap:wrap}
.fx-txt{max-width:560px}
.fx-txt .etq{color:var(--dorado)}
.fx-tit{margin:4px 0 0;font-size:clamp(26px,min(4vw,6vh),48px);line-height:1.02;color:#fff}
.fx-txt p{margin:8px 0 0;color:#DCE2F0;font-size:17px;line-height:1.5;text-wrap:pretty;min-height:3em}
.fx-puntos{display:flex;gap:8px}
.fx-puntos span{width:10px;height:10px;border-radius:5px;background:#46557F;transition:width .3s,background .3s}
.fx-puntos span.si{background:var(--naranja)}
.fx-puntos span.actual{width:30px}
.fx-planta{max-width:1100px;width:100%;margin:0 auto;position:relative}
.fx-humo{position:absolute;bottom:100%;left:14%;width:0;height:80px;transition:left .5s}
.fx-humo .ms{position:absolute;bottom:0;left:0;font-size:22px;color:var(--puerta);opacity:0}
.fx-salas{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:clamp(6px,1.2vw,14px);align-items:end}
.fx-col{display:flex;flex-direction:column;align-items:center}
.fx-chimenea{width:26%;height:clamp(22px,4vh,40px);background:#2C3B63;border:2px solid #2E3B61;border-bottom:0;border-radius:4px 4px 0 0;align-self:flex-end;margin-right:14%;transition:background .4s,border-color .4s}
.fx-sala{position:relative;width:100%;height:clamp(100px,22vh,220px);border-radius:16px 16px 6px 6px;background:#1A2442;border:2px solid #2E3B61;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;transition:background .4s,box-shadow .4s,border-color .4s;overflow:hidden}
.fx-sala .fx-g1{position:absolute;top:8px;left:8px;font-size:clamp(28px,3.4vw,44px);color:#2E3B61;transition:color .4s}
.fx-sala .fx-g2{position:absolute;top:clamp(30px,3.8vw,46px);left:clamp(30px,3.6vw,44px);font-size:clamp(18px,2.2vw,28px);color:#2E3B61;transition:color .4s}
.fx-ico{width:clamp(44px,5.4vw,64px);height:clamp(44px,5.4vw,64px);border-radius:50%;display:grid;place-items:center;background:#24335A;color:#5C6A93;transition:background .35s,color .35s,transform .35s}
.fx-ico .ms{font-size:clamp(24px,3vw,34px)}
.fx-lbl{font-size:clamp(11px,1.2vw,14px);font-weight:600;text-align:center;line-height:1.2;color:#7F8BAE;padding:0 4px}
.fx-barra{position:absolute;left:0;bottom:0;height:5px;width:0;background:var(--naranja)}
.fx-col.hecha .fx-chimenea{border-color:#46557F}
.fx-col.hecha .fx-sala{background:#24335A;border-color:#46557F}
.fx-col.hecha .fx-g1,.fx-col.hecha .fx-g2{color:#5C6A93}
.fx-col.hecha .fx-ico{background:var(--naranja-claro);color:var(--naranja-hondo)}
.fx-col.hecha .fx-lbl,.fx-col.on .fx-lbl{color:#fff}
.fx-col.on .fx-chimenea{background:var(--naranja);border-color:var(--naranja)}
.fx-col.on .fx-sala{background:#2C3B63;border-color:var(--naranja);box-shadow:0 0 46px rgba(242,140,30,.5),inset 0 0 30px rgba(255,196,107,.18)}
.fx-col.on .fx-g1,.fx-col.on .fx-g2{color:var(--naranja)}
.fx-col.on .fx-ico{background:var(--naranja);color:var(--noche)}
.fx-cinta{position:relative;height:clamp(90px,15vh,120px);margin-top:6px}
.fx-mini{position:absolute;bottom:26px;left:0;width:34px;height:44px;border-radius:3px 7px 7px 3px;border:2px solid var(--noche);opacity:.55;transform:translateX(-50%)}
.fx-libro{position:absolute;bottom:26px;left:10%;width:66px;height:86px;border-radius:4px 10px 10px 4px;background:#fff;border:3px solid #fff;box-shadow:0 8px 18px rgba(0,0,0,.45);display:grid;place-items:center;z-index:2;color:var(--noche);transform:translateX(-50%)}
.fx-libro .ms{font-size:34px}
.fx-nubi{position:absolute;bottom:22px;left:3.5%;width:64px;height:64px;box-shadow:0 6px 16px rgba(0,0,0,.4);z-index:3;transform:translateX(-50%)}
.fx-banda{position:absolute;left:0;right:0;bottom:6px;height:20px;border-radius:10px;border:2px solid #46557F;background-color:#2C3B63;background-image:repeating-linear-gradient(90deg,#46557F 0 18px,transparent 18px 30px)}
.fx-rodillo{position:absolute;bottom:2px;width:28px;height:28px;border-radius:50%;background:var(--noche);border:3px solid #46557F;border-top-color:#AEB7D1}
.fx-rodillo.izq{left:-6px}
.fx-rodillo.der{right:-6px}
.fx-pista{text-align:center;font-size:14px;color:#AEB7D1;display:flex;align-items:center;justify-content:center;gap:6px}
.fx-pista .ms{font-size:20px}
.fx-cta{display:none;justify-content:center}
@media (max-width:560px){
  .fx-lbl{display:none}
  .fx-sala .fx-g2{display:none}
  .fx-txt p{font-size:15px}
  .fx-libro{width:52px;height:68px}
  .fx-libro .ms{font-size:28px}
  .fx-nubi{width:50px;height:50px}
}
/* Con movimiento reducido: sin animación, las cinco fases en una lista */
.fx.quieto{height:auto}
.fx.quieto .fx-escena{position:static;height:auto;padding:clamp(36px,5vw,56px) clamp(16px,4vw,40px);gap:24px}
.fx.quieto .fx-planta,.fx.quieto .fx-pista,.fx.quieto .fx-puntos{display:none}
.fx.quieto .fx-cta{display:flex}
.fx-lista{max-width:1100px;width:100%;margin:0 auto;padding:0;list-style:none;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,190px),1fr));gap:14px}
.fx-lista li{display:flex;gap:12px;align-items:flex-start;background:#24335A;border:2px solid #46557F;border-radius:16px;padding:14px}
.fx-lista li>.ms{font-size:28px;color:var(--naranja);flex:none}
.fx-lista strong{display:block;font-family:"Baloo 2",var(--f);font-weight:800;font-size:19px;line-height:1.1;margin-bottom:4px}
.fx-lista span{color:#DCE2F0;font-size:14px;line-height:1.45}
.fx-lista.sr{width:1px;height:1px;margin:0;padding:0}

/* =====================================================================
   Recursos gráficos del proyecto (ilustraciones, iconos y adornos)
   ===================================================================== */
picture{display:contents}
/* Cabecera: iconos ilustrados de cada sección y del servidor */
.menu a .nav-ico{width:30px;height:30px;object-fit:contain;transition:transform .2s}
.menu a[aria-current=page] .nav-ico{transform:scale(1.15)}
.menu a:hover .nav-ico{transform:scale(1.1) rotate(-4deg)}
.conexion img{width:32px;height:32px;border-radius:0;background:none;object-fit:contain}
.dlg-ico{width:84px;height:auto;margin:0 0 6px}
@media (max-width:700px){.menu a .nav-ico{width:26px;height:26px}}
.cab-icono{width:56px;height:56px;object-fit:contain;flex:none;filter:drop-shadow(0 4px 10px rgba(0,0,0,.35))}
.cab-icono.grande{width:84px;height:84px}
.fb-cab,.cab-fila{gap:14px}
.fb-cab .fb-titulo,.cab-fila .cab-titulo{flex:1;min-width:200px}
/* Bandas con el paisaje nocturno de la fábrica */
.banda.con-fondo{background:linear-gradient(90deg,rgba(30,42,74,.98) 0,rgba(30,42,74,.9) 45%,rgba(30,42,74,.45) 100%),url("../img/r/fondo-noche.jpg") right center/cover no-repeat,var(--noche)}
/* Inicio: chispas en la cabecera, puertas ilustradas y separador */
.hero-in{position:relative}
.hero-chispa{position:absolute;pointer-events:none;animation:titilar 3.2s ease-in-out infinite alternate}
.hero-chispa.c1{width:44px;left:46%;top:12%}
.hero-chispa.c2{width:28px;left:4%;top:8%;animation-delay:-1.1s}
.hero-chispa.c3{width:24px;left:52%;bottom:9%;animation-delay:-2s}
.hero-chispa.c4{width:20px;right:3%;top:6%;animation-delay:-.6s}
@keyframes titilar{from{opacity:.45;transform:scale(.85) rotate(-8deg)}to{opacity:1;transform:scale(1.08) rotate(6deg)}}
@media (max-width:760px){.hero-chispa.c1{left:auto;right:6%;top:3%;width:34px}.hero-chispa.c3{display:none}}
.separador{display:block;width:min(260px,60%);height:auto;margin:2px 0 10px}
.puerta .arco{position:relative;overflow:visible;padding:0;display:block;background:radial-gradient(ellipse at 50% 100%,#2C3B63 0,#1E2A4A 70%)}
.puerta .arco-img{position:absolute;left:50%;bottom:-6px;transform:translateX(-50%);height:118%;width:auto;max-width:108%;object-fit:contain;filter:drop-shadow(0 8px 14px rgba(0,0,0,.35));transition:transform .25s}
.puerta:hover .arco-img{transform:translateX(-50%) scale(1.05)}
.puerta>div:nth-child(2){margin-top:12px}
/* Banda de la fábrica: cada sala con su ilustración y NUBI corriendo por la cinta */
.fb-sala{gap:4px;padding-top:10px}
.fb-sala .fb-ico,.fb-sala.hecha .fb-ico,.fb-sala.actual .fb-ico{width:auto;height:auto;background:none;border-radius:0}
.fb-ico img{display:block;height:clamp(66px,8.6vw,108px);width:auto;max-width:100%;object-fit:contain;filter:grayscale(.85) brightness(.7);opacity:.55;transition:filter .4s,opacity .4s,transform .4s}
.fb-sala.hecha .fb-ico img{filter:none;opacity:1}
.fb-sala.actual .fb-ico img{filter:drop-shadow(0 0 14px rgba(255,196,107,.65));opacity:1;transform:scale(1.06)}
.fb-pista{padding-bottom:30px}
.fb-nubi{bottom:4px}
.fb-nubi img{width:clamp(70px,8.6vw,104px);height:auto;box-shadow:none;border:0;border-radius:0;background:none;filter:drop-shadow(0 6px 10px rgba(0,0,0,.45))}
@media (max-width:560px){.fb-ico img{height:56px}.fb-pista{padding-bottom:26px}}
/* La puerta de la fábrica */
/* Animación de Inicio: ilustraciones de las salas y NUBI corriendo */
.fx-ico{width:auto!important;height:auto!important;background:none!important;border-radius:0}
.fx-ico img{display:block;height:clamp(58px,14vh,150px);width:auto;max-width:92%;margin:0 auto;object-fit:contain;filter:grayscale(.85) brightness(.65);opacity:.5;transition:filter .4s,opacity .4s}
.fx-col.hecha .fx-ico img{filter:none;opacity:1}
.fx-col.on .fx-ico img{filter:drop-shadow(0 0 16px rgba(255,196,107,.7));opacity:1}
.fx-sala{gap:6px}
.fx-sala .fx-g1,.fx-sala .fx-g2{opacity:.8}
.fx-nubi{width:96px;height:auto;border:0;border-radius:0;background:none;box-shadow:none;filter:drop-shadow(0 6px 10px rgba(0,0,0,.45))}
@media (max-width:560px){.fx-nubi{width:72px}}
/* El Almacén, «muy pronto» */
.pronto-escena{position:relative;max-width:520px;margin:0 auto}
.pronto-escena .pronto-img{display:block;width:100%;height:auto;opacity:.9;filter:saturate(.9)}
.pronto-escena .cinta-pronto{top:46%}
/* Encuadernación: NUBI corriendo por la línea y la ilustración de cada paso */
.tut-nubi img{width:auto;height:66px;filter:drop-shadow(0 6px 10px rgba(0,0,0,.45))}
.tut-foto.con-ilus{background:radial-gradient(circle at 50% 45%,#FFF7EA 0,#FCEFD9 70%,#F6E3C4 100%)}
.tut-foto.con-ilus img{position:absolute;inset:4%;width:92%;height:92%;object-fit:contain}
@media (max-width:560px){.tut-nubi img{height:52px}}
/* Cuento terminado: esquinas doradas */
.final{position:relative}
.final-esq{position:absolute;width:clamp(56px,8vw,96px);height:auto;pointer-events:none}
.final-esq.izq{left:10px;bottom:10px}
.final-esq.der{right:10px;bottom:10px}
/* Portada impresa: logo horizontal */
.f-portada .logos img.lg-fab{height:calc(var(--pw) * .085);max-width:38%}
@media (prefers-reduced-motion:reduce){.hero-chispa{animation:none}.portal-escena{transition:none}.puerta .arco-img{transition:none}}

/* =====================================================================
   Inicio: el paisaje nocturno a sangre, NUBI saludando y la fábrica con vida
   ===================================================================== */
.hero-noche{position:relative;overflow:hidden;background:#141C38;color:#fff;min-height:clamp(540px,76vh,720px);display:flex;align-items:center}
.hero-escena{position:absolute;left:0;top:0;width:100%;height:100%;--k:1}
.esc-fondo{position:absolute;inset:0;width:100%;height:100%;display:block;max-width:none}
.hero-velo{position:absolute;inset:0;z-index:1;pointer-events:none;background:linear-gradient(90deg,rgba(20,28,56,.94) 0,rgba(20,28,56,.82) 30%,rgba(20,28,56,.3) 56%,rgba(20,28,56,0) 72%),linear-gradient(0deg,rgba(22,32,59,.55) 0,rgba(22,32,59,0) 22%)}
.hero-noche .hero-in{position:relative;z-index:3;display:block;width:100%}
.hero-noche .hero-txt{max-width:560px}
.hero-noche .hero-chispa{z-index:2}
.hero-noche .hero-chispa.c1{left:45%;top:16%}
.hero-noche .hero-chispa.c4{left:auto;right:4%;top:8%}
.hero-nubi{position:absolute;z-index:2;bottom:3%;left:50%;height:clamp(300px,66%,480px);pointer-events:none}
.hero-nubi img{height:100%;width:auto;display:block;filter:drop-shadow(0 12px 18px rgba(0,0,0,.5));animation:saludo 3.6s ease-in-out infinite;transform-origin:50% 100%}
.hero-nubi::after{content:"";position:absolute;left:12%;right:12%;bottom:-4%;height:9%;border-radius:50%;background:radial-gradient(ellipse at center,rgba(0,0,0,.45) 0,rgba(0,0,0,0) 70%);z-index:-1}
@keyframes saludo{0%,100%{transform:translateY(0) rotate(0)}50%{transform:translateY(-6px) rotate(-1.2deg)}}
/* Luces de las ventanas: cambian como si alguien trabajara dentro */
.esc-luz{position:absolute;border-radius:45%;mix-blend-mode:screen;pointer-events:none;opacity:.45;
  background:radial-gradient(ellipse at center,rgba(255,226,140,.95) 0,rgba(255,176,64,.55) 42%,rgba(255,150,40,0) 70%);animation:trabajo var(--t,4s) ease-in-out var(--d,0s) infinite}
@keyframes trabajo{0%{opacity:.4}14%{opacity:.85}17%{opacity:.15}21%{opacity:.8}46%{opacity:.55}62%{opacity:.95}66%{opacity:.3}72%{opacity:.75}100%{opacity:.4}}
.esc-puerta{opacity:.5;animation:latido 5.5s ease-in-out infinite;background:radial-gradient(ellipse at 50% 60%,rgba(255,230,150,.9) 0,rgba(255,180,70,.45) 45%,rgba(255,160,50,0) 72%)}
@keyframes latido{0%,100%{opacity:.4}50%{opacity:.9}}
.esc-farol{position:absolute;border-radius:50%;mix-blend-mode:screen;pointer-events:none;background:radial-gradient(circle,rgba(255,220,130,.9) 0,rgba(255,170,60,.35) 45%,rgba(255,160,50,0) 70%);animation:vela var(--t,1.6s) ease-in-out var(--d,0s) infinite alternate}
@keyframes vela{0%{opacity:.55;transform:scale(.92)}35%{opacity:.85}60%{opacity:.65;transform:scale(1.06)}100%{opacity:.95;transform:scale(1)}}
/* Humo de las chimeneas */
.esc-humo{position:absolute;width:0;height:0;pointer-events:none}
.esc-humo i{position:absolute;left:calc(-34px * var(--k));bottom:calc(-10px * var(--k));width:calc(68px * var(--k));height:calc(68px * var(--k));border-radius:50%;opacity:0;
  background:radial-gradient(circle at 45% 45%,rgba(226,232,250,.8) 0,rgba(200,210,240,.45) 40%,rgba(190,202,235,0) 70%);filter:blur(calc(5px * var(--k)));animation:humo 7.5s linear infinite;animation-delay:var(--d,0s)}
.esc-humo i:nth-child(2){animation-delay:calc(var(--d,0s) - 1.5s)}
.esc-humo i:nth-child(3){animation-delay:calc(var(--d,0s) - 3s)}
.esc-humo i:nth-child(4){animation-delay:calc(var(--d,0s) - 4.5s)}
.esc-humo i:nth-child(5){animation-delay:calc(var(--d,0s) - 6s)}
@keyframes humo{0%{transform:translate(0,0) scale(.35);opacity:0}8%{opacity:.85}60%{opacity:.45}100%{transform:translate(calc(150px * var(--k)),calc(-230px * var(--k))) scale(3.4);opacity:0}}
@media (max-width:760px){
  .hero-noche{align-items:flex-start;min-height:700px}
  .hero-noche .hero-in{padding-top:28px}
  .hero-velo{background:linear-gradient(180deg,rgba(20,28,56,.94) 0,rgba(20,28,56,.82) 40%,rgba(20,28,56,.15) 66%,rgba(20,28,56,0) 80%)}
  .hero-nubi{left:2%;bottom:2%;height:clamp(220px,34vh,280px)}
  .hero-noche .hero-chispa.c1{left:auto;right:6%;top:3%}
}
@media (prefers-reduced-motion:reduce){.esc-luz,.esc-puerta,.esc-farol,.hero-nubi img{animation:none}.esc-humo{display:none}}
/* Logos de AWS en la cabecera y en el pie */
.aws-cab{height:26px;width:auto;flex:none;margin-left:-4px}
.pie img.pie-aws{height:36px}
@media (max-width:700px){.aws-cab{height:20px}}
/* La cara de NUBI entera dentro de los círculos de los bocadillos */
.guia img{object-fit:contain;padding:3px}
/* Alguien pasa por detrás de dos ventanas de vez en cuando */
.esc-sombra{position:absolute;overflow:hidden;pointer-events:none;border-radius:50% 50% 3% 3% / 30% 30% 3% 3%}
.esc-sombra i{position:absolute;bottom:-8%;left:0;width:46%;height:78%;border-radius:45% 45% 20% 20%;background:rgba(40,24,10,.55);filter:blur(1.5px);transform:translateX(-120%);animation:pasa var(--t,9s) ease-in-out var(--d,0s) infinite}
@keyframes pasa{0%,58%{transform:translateX(-120%)}72%{transform:translateX(60%)}80%{transform:translateX(60%)}96%,100%{transform:translateX(260%)}}
/* Tableta en vertical: NUBI a la derecha, sin tapar el texto */
@media (min-width:761px) and (max-width:1100px){
  .hero-noche .hero-txt{max-width:min(560px,56%)}
  .hero-nubi{left:auto;right:1%;height:clamp(260px,46%,400px)}
}
/* Cabecera en dos filas también en tableta vertical (con el logo de AWS no cabe en una) */
@media (max-width:920px){
  .top{flex-wrap:wrap;gap:4px 12px;padding:6px 16px 0}
  .top .logo{height:44px;margin:0}
  .top .marca{margin-right:auto}
  .menu{order:3;flex:1 0 100%;flex-wrap:nowrap;justify-content:space-around;gap:0}
  .menu a{flex:1 1 0;flex-direction:column;gap:2px;font-size:13px;padding:4px 2px 7px;text-align:center;justify-content:center}
  .conexion .txt{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
}
@media (prefers-reduced-motion:reduce){.esc-sombra{display:none}}

/* =====================================================================
   La puerta de la fábrica: el portal dorado, NUBI y la apertura mágica (v2)
   ===================================================================== */
.modo-portal .fab-in{max-width:none;padding:0}
.portal{position:relative;overflow:hidden;background:#0F1733;color:#fff;min-height:clamp(560px,78vh,760px);display:flex;align-items:center}
.portal-fondo{position:absolute;inset:0;overflow:hidden}
.portal-escena{position:absolute;left:0;top:0;width:100%;height:100%;transform-origin:49.7% 53%;transition:transform 1.8s cubic-bezier(.55,0,.25,1)}
.portal-escena picture,.portal-escena .portal-img{position:absolute;inset:0;width:100%;height:100%;display:block;max-width:none}
/* Brillo sobre la hoja de la puerta (misma caja que en la imagen): respira despacio y se enciende al abrir */
.portal-brillo{position:absolute;left:37.4%;top:26.7%;width:24.7%;height:53.2%;border-radius:50% 50% 3% 3%/30% 30% 3% 3%;mix-blend-mode:screen;pointer-events:none;
  background:radial-gradient(ellipse at 50% 55%,rgba(255,252,230,.95) 0,rgba(255,214,120,.55) 50%,rgba(255,180,60,0) 78%);opacity:.18;animation:respira 3.6s ease-in-out infinite}
@keyframes respira{50%{opacity:.42}}
.portal-destello{position:absolute;inset:0;pointer-events:none;opacity:0;background:radial-gradient(circle at 50% 50%,#FFFBEA 0,#FFE7A6 45%,#FFD27A 100%)}
.portal-chispas{position:absolute;left:50%;top:50%;width:0;height:0;z-index:4;pointer-events:none}
.portal-chispas .chispa{position:absolute;left:0;top:0;width:var(--s);height:var(--s);border-radius:50%;background:var(--c);box-shadow:0 0 12px var(--c);opacity:0;
  animation:vuela 1.6s cubic-bezier(.15,.7,.3,1) forwards;animation-delay:var(--d)}
.portal.abriendo .portal-brillo{animation:none;opacity:1;transition:opacity .4s}
.portal.abriendo .portal-escena{transform:scale(3.4)}
.portal.abriendo .portal-destello{animation:destello 1.9s ease-in forwards}
@keyframes destello{0%,35%{opacity:0}100%{opacity:1}}
.portal.abriendo .portal-in{animation:desvanece .5s ease-in forwards}
@keyframes desvanece{to{opacity:0;transform:translateY(-12px)}}
/* El panel de NUBI */
.portal-in{position:relative;z-index:3;width:100%;max-width:1240px;margin:0 auto;padding:clamp(20px,4vw,40px) clamp(16px,4vw,40px)}
.portal-panel{max-width:440px;background:rgba(15,23,51,.82);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border:2px solid rgba(255,196,107,.5);border-radius:24px;padding:clamp(18px,2.6vw,26px);box-shadow:0 18px 40px rgba(0,0,0,.35)}
.portal-panel h1{font-size:clamp(28px,3.4vw,38px);line-height:1;margin:0 0 16px;color:#fff}
.portal-panel .guia{margin-bottom:16px}
.portal-panel .guia img{border-color:var(--naranja)}
.portal-panel .bocadillo{color:var(--noche)}
.portal-panel .campo label{color:var(--dorado)}
/* El campo de la palabra: texto oscuro sobre blanco (antes heredaba el blanco del portal y no se veía) */
.portal-panel .campo input[type=text]{color:var(--noche);background:#fff;border:2px solid var(--naranja);font-size:18px;font-weight:500;letter-spacing:.02em}
.portal-panel .campo input[type=text]::placeholder{color:#8A93AE;font-weight:400}
.portal-panel .campo input[type=text]:focus{outline:3px solid var(--dorado);outline-offset:2px}
.portal-panel .err-msg{color:#FFB3A6}
.portal-panel .btn.claro{font-size:17px;padding:12px 22px}
.portal-panel .btn.claro:disabled{background:#E3E7F0;color:#5A6380}
@media (max-width:760px){
  /* En el móvil la escena va arriba, con la puerta entera, y el panel debajo */
  .portal{display:block;min-height:0;background:linear-gradient(180deg,#0F1733 0,#162043 100%)}
  .portal-fondo{position:relative;inset:auto;height:auto;aspect-ratio:1672/941}
  .portal-in{padding:14px 16px 22px}
  .portal-panel{max-width:none;padding:16px;background:rgba(15,23,51,.6)}
  .portal-panel h1{font-size:26px;margin-bottom:12px}
  .portal-panel .guia img{width:56px;height:56px}
  .portal-panel .bocadillo{font-size:16px}
  .portal.abriendo .portal-in{animation:none}
  .portal.abriendo .portal-escena{transform:scale(2.6)}
}
@media (prefers-reduced-motion:reduce){.portal-brillo,.portal.abriendo .portal-in,.portal.abriendo .portal-destello,.portal-chispas .chispa{animation:none}.portal-escena{transition:none}.portal.abriendo .portal-escena{transform:none}}
/* La foto: subir o hacer una foto */
.foto-camara{margin-top:10px;width:100%;max-width:260px;justify-content:center}
.foto-camara .ms{font-size:20px}
.dlg-camara{max-width:560px}
.cam-marco{aspect-ratio:1;max-width:400px;margin:0 auto;border-radius:24px;overflow:hidden;background:#111;border:2px solid var(--noche)}
.cam-marco video{width:100%;height:100%;object-fit:cover;transform:scaleX(-1);display:block}

/* =====================================================================
   Salas: «Escríbelo tú» + «O elige una idea», y las pruebas de cada sala
   ===================================================================== */
.campo.libre{margin:0 0 6px;max-width:620px}
.campo.libre label{display:flex;align-items:center;gap:6px}
.campo.libre label .ms{font-size:20px;color:var(--naranja-hondo)}
.campo.libre input[type=text],.campo.libre textarea{border-color:var(--naranja);background:#FFFDF8}
.o-elige{margin:10px 0 10px;font-weight:600;color:var(--tinta-suave)}
.chips .chip.num{width:46px;height:46px}
/* Tarjeta de la prueba */
.prueba{position:relative;background:linear-gradient(180deg,#FFF8EC 0,#fff 60%);border:2px solid var(--noche);border-radius:24px;padding:18px clamp(14px,2.4vw,24px) 12px;margin:0 0 26px;box-shadow:0 5px 0 var(--noche);overflow:hidden}
.prueba .pr-cab{display:flex;gap:14px;align-items:flex-start}
.prueba .pr-ico,.prueba .pr-medalla{flex:none;width:52px;height:52px;border-radius:16px;display:grid;place-items:center;background:var(--noche);color:var(--puerta)}
.prueba .pr-ico .ms,.prueba .pr-medalla .ms{font-size:30px}
.prueba .pr-medalla{background:var(--naranja);color:#fff;border-radius:50%;box-shadow:0 0 0 4px var(--naranja-claro)}
.prueba .etq{color:var(--naranja-hondo)}
.prueba h2{margin:2px 0 4px;font-size:clamp(22px,2.6vw,28px);line-height:1.1}
.prueba p{margin:0;color:var(--tinta-suave);line-height:1.45}
.prueba .pr-juego{margin:14px 0 6px}
.prueba .pr-pie{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;border-top:2px dashed #E2D6C2;margin-top:10px;padding-top:8px}
.prueba .pr-pie .nota{margin:0}
.prueba.hecha{background:#F1FAF4;border-color:var(--verde);box-shadow:0 5px 0 var(--verde)}
.prueba.hecha .pr-ok{display:block;color:var(--verde);font-size:18px;margin:2px 0}
.prueba.hecha .pr-pie{border-top-color:#CBE9D6;justify-content:flex-end}
.prueba-plegada{display:flex;align-items:center;gap:10px;width:100%;margin:0 0 22px;padding:10px 16px;background:#fff;border:2px dashed var(--naranja);border-radius:16px;color:var(--noche);font-weight:600;cursor:pointer;text-align:left}
.prueba-plegada .ms{color:var(--naranja-hondo)}
.prueba-plegada span{flex:1}
.prueba-plegada b{color:var(--naranja-hondo)}
.prueba.exito{background:var(--noche);color:#fff;border-color:var(--naranja);box-shadow:0 5px 0 var(--naranja);text-align:center;padding:28px 18px}
.pr-exito{display:flex;flex-direction:column;align-items:center;gap:8px;position:relative;z-index:1}
.pr-exito>.ms{font-size:64px;color:var(--puerta);animation:salta .7s cubic-bezier(.3,1.6,.5,1)}
.pr-exito strong{font-family:"Baloo 2",var(--f);font-weight:800;font-size:clamp(28px,4vw,40px);line-height:1}
.pr-exito span{color:#DCE2F0;max-width:52ch}
@keyframes salta{from{transform:scale(.2) rotate(-40deg)}to{transform:scale(1) rotate(0)}}
.pr-chispas{position:absolute;left:50%;top:40%;width:0;height:0}
.pr-chispas i{position:absolute;width:10px;height:10px;border-radius:50%;background:var(--puerta);box-shadow:0 0 10px var(--naranja);transform:rotate(var(--a)) translateX(0);animation:estalla 1.2s ease-out var(--d) forwards}
@keyframes estalla{0%{opacity:1;transform:rotate(var(--a)) translateX(0)}100%{opacity:0;transform:rotate(var(--a)) translateX(160px)}}
.pj-msg{min-height:1.4em;margin:8px 0 0!important;font-weight:500;color:var(--noche)!important}
/* 1. Píxeles */
.pj-pixeles{display:grid;grid-template-columns:auto auto;gap:12px 22px;align-items:center;justify-content:start}
.pj-modelo{display:grid;grid-template-columns:repeat(5,16px);gap:2px;padding:8px;background:#fff;border:2px solid var(--noche);border-radius:12px}
.pj-modelo i{width:16px;height:16px;border-radius:3px;background:#F1EADF}
.pj-modelo i.si{background:var(--naranja)}
.pj-lienzo{display:grid;grid-template-columns:repeat(5,44px);gap:4px;padding:8px;background:#fff;border:2px solid var(--noche);border-radius:14px}
.pj-lienzo button{width:44px;height:44px;border-radius:8px;border:2px solid #E2D6C2;background:#FBF7F0;cursor:pointer;padding:0;transition:background .12s,transform .12s}
.pj-lienzo button.si{background:var(--naranja);border-color:var(--naranja-hondo);transform:scale(.94)}
.pj-pixeles .pj-msg{grid-column:1/-1}
/* 2. El viaje del pedido */
.pj-viaje{display:grid;grid-template-columns:minmax(0,340px) minmax(0,1fr);grid-template-rows:auto 1fr;grid-template-areas:'mapa lado' 'mapa info';gap:10px 24px;align-items:start}
.pj-aragon{grid-area:mapa}.pj-viaje-lado{grid-area:lado}.pj-viaje-info{grid-area:info;align-self:end}
.pj-aragon{position:relative;aspect-ratio:400/548;width:100%;background:#EAF4FB;border:2px solid var(--noche);border-radius:16px;overflow:hidden;user-select:none}
.pj-aragon-mapa,.pj-cables{position:absolute;inset:0;width:100%;height:100%}
.pj-cables{pointer-events:none;overflow:visible}
.pj-guia{stroke:var(--noche);stroke-width:1.4;stroke-dasharray:2 3;fill:none;opacity:.55}
.pj-punto{fill:var(--noche)}.pj-ciudad{fill:#fff;stroke:var(--noche);stroke-width:1.6}
.pj-cable{fill:none;stroke:var(--naranja);stroke-width:4.5;stroke-linecap:round;stroke-dasharray:.03 .025}
.pj-cable.nuevo{stroke-dasharray:1;stroke-dashoffset:1;animation:pjCable .9s ease-out forwards}
.pj-cable.roto{stroke:#9AA1B5;stroke-dasharray:.02 .04;opacity:.7}
.pj-cable.envio{stroke:var(--verde);stroke-width:6;stroke-dasharray:.04 .03;animation:pjFluye .6s linear infinite}
@keyframes pjCable{to{stroke-dashoffset:0}}
@keyframes pjFluye{to{stroke-dashoffset:-.07}}
.pj-prov,.pj-rio,.pj-tableta,.pj-cd{position:absolute;transform:translate(-50%,-50%)}
.pj-prov{font-family:"Baloo 2",var(--f);font-weight:800;font-size:clamp(11px,2.6vw,14px);letter-spacing:.12em;text-transform:uppercase;color:var(--noche);opacity:.55;pointer-events:none}
.pj-rio{font-size:12px;font-style:italic;color:#2E7FB0;pointer-events:none}
.pj-tableta{display:flex;flex-direction:column;align-items:center;gap:1px;pointer-events:none}
.pj-tableta .ms{font-size:22px;color:#fff;background:var(--noche);border-radius:10px;padding:5px;box-shadow:0 0 0 3px #fff}
.pj-tableta b{font-size:11px;background:#fff;border-radius:6px;padding:0 5px;color:var(--noche)}
.pj-cd{background:none;border:0;padding:0;cursor:pointer;display:flex;flex-direction:column;align-items:center;width:20%;touch-action:manipulation}
.pj-cd svg{width:100%;height:auto;filter:drop-shadow(0 3px 0 rgba(30,42,74,.25));transition:transform .2s}
.pj-cd:hover svg,.pj-cd:focus-visible svg{transform:translateY(-3px) scale(1.05)}
.pj-cd:focus-visible{outline:3px solid var(--naranja);outline-offset:3px;border-radius:8px}
.pj-cd-nombre{font-size:11px;line-height:1.15;font-weight:600;background:#fff;border:1.5px solid var(--noche);border-radius:8px;padding:2px 6px;margin-top:2px;color:var(--noche);text-align:center}
.ed-cuerpo{fill:var(--noche)}.ed-tejado{fill:#6C7BA8}.ed-puerta{fill:#3A4670}
.ed-luz{fill:#4A5576}
.pj-cd.si .ed-luz{fill:#7CE3A6;animation:pjLuz 1.6s steps(2) infinite}
.pj-cd.si .ed-luz.l1{fill:#FFC46B;animation-delay:.4s}.pj-cd.si .ed-luz.l2{animation-delay:.9s}
.pj-cd.si .pj-cd-nombre{background:var(--naranja-claro);border-color:var(--naranja-hondo)}
.pj-cd.off svg{filter:grayscale(1) brightness(.75)}.pj-cd.off .ed-luz{fill:#2A3150;animation:none}
.pj-cd.off .pj-cd-nombre{background:#E3E5EC;color:#5A6380}
.pj-cd.llega svg{animation:pjLlega .5s ease-in-out infinite alternate}
.pj-rayo{position:absolute;top:-6px;right:-4px}
.pj-rayo .ms{font-size:22px;color:#FFC46B;background:var(--noche);border-radius:50%;padding:3px;animation:pjLuz .5s steps(2) infinite}
@keyframes pjLuz{50%{opacity:.35}}
@keyframes pjLlega{to{transform:scale(1.12)}}
.pj-viaje-lado .pj-msg{min-height:3em}
.pj-cuenta{display:flex;gap:8px}
.pj-cuenta span{width:40px;height:40px;border-radius:12px;display:grid;place-items:center;background:#EEF0F5;color:#9AA1B5;border:2px solid #D9DCE6}
.pj-cuenta span.si{background:var(--naranja-claro);border-color:var(--naranja)}.pj-cuenta span.si .ms{color:var(--naranja-hondo)!important}.pj-cuenta span .ms{font-size:24px}
.pj-cuenta span.off{background:#E3E5EC;color:#5A6380}
.pj-dato{font-size:13px;color:var(--tinta-suave)!important;margin-top:12px!important}
.pj-credito{font-size:11px;color:var(--tinta-suave)!important;opacity:.8}
/* 3. Enseña a la IA */
.pj-ejemplos{text-align:center;max-width:460px;margin:0 auto}
.pj-ejemplos p{color:var(--noche)}
.pj-grande{font-size:64px;line-height:1.1;margin:4px 0!important}
.pj-puntos{display:flex;justify-content:center;gap:6px}
.pj-puntos i{width:12px;height:12px;border-radius:50%;background:#E2D6C2}
.pj-puntos i.si{background:var(--verde)}
.pj-calderos{display:flex;justify-content:center;gap:14px;margin-top:10px;flex-wrap:wrap}
.pj-caldero{display:flex;align-items:center;gap:8px;padding:14px 22px;border-radius:99px 99px 24px 24px;border:2px solid var(--noche);background:var(--noche);color:#fff;font-weight:700;font-size:17px;cursor:pointer;box-shadow:0 4px 0 var(--naranja)}
.pj-caldero .ms{color:var(--puerta)}
.pj-caldero:active{transform:translateY(3px);box-shadow:0 1px 0 var(--naranja)}
/* 4. Del ruido al dibujo */
.pj-ruido{display:flex;flex-direction:column;align-items:flex-start;gap:10px}
.pj-ruido-marco{position:relative;width:min(400px,100%);aspect-ratio:4/3;border:2px solid var(--noche);border-radius:16px;overflow:hidden;background:radial-gradient(circle at 50% 45%,#FFF7EA 0,#FCEFD9 70%)}
.pj-ruido-marco img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.pj-ruido-lienzo{position:absolute;inset:0;width:100%;height:100%;touch-action:none;cursor:crosshair;transition:opacity .45s}
.pj-ruido-lienzo.limpio{opacity:0}
/* 5. Enciende el centro de datos */
.pj-luces{display:flex;align-items:center;gap:10px;margin-bottom:10px}
.pj-luces span{width:46px;height:46px;border-radius:50%;display:grid;place-items:center;background:#E9E3D8;color:#A79F90;transition:all .3s}
.pj-luces span.si{background:var(--naranja);color:#fff;box-shadow:0 0 16px rgba(242,140,30,.7)}
.pj-luces img{width:54px;height:auto;filter:grayscale(1) opacity(.45);transition:filter .4s}
.pj-luces img.si{filter:none drop-shadow(0 0 10px rgba(255,196,107,.9))}
.pj-pregunta{display:flex;align-items:center;gap:8px;font-weight:600;color:var(--noche)!important;font-size:17px}
.pj-pregunta .ms{color:var(--naranja-hondo)}
.pj-opciones{display:flex;flex-direction:column;gap:8px;margin-top:8px;max-width:520px}
.pj-opciones button{text-align:left;padding:11px 16px;border-radius:14px;border:2px solid var(--noche);background:#fff;font-weight:500;cursor:pointer}
.pj-opciones button:hover{background:var(--naranja-claro)}
/* Estrellas de las pruebas en la banda y en el panel final */
.fb-estrella{position:absolute;top:6px;left:8px;color:var(--puerta);display:none}
.fb-estrella .ms{font-size:20px;filter:drop-shadow(0 0 6px rgba(255,196,107,.8))}
.fb-sala.con-estrella .fb-estrella{display:block}
.pr-pastilla .ms{color:var(--puerta)!important}
.final-txt .final-pruebas{color:var(--puerta)!important;font-weight:600;display:flex;align-items:center;gap:2px;flex-wrap:wrap}
.final-pruebas .ms{font-size:22px}
@media (max-width:760px){.pj-viaje{grid-template-columns:minmax(0,1fr);grid-template-areas:'lado' 'mapa' 'info'}.pj-viaje-info{align-self:start}.pj-cd-nombre{font-size:10px;padding:1px 4px}}
@media (max-width:560px){
  .pj-pixeles{grid-template-columns:1fr;justify-items:start}
  .pj-lienzo{grid-template-columns:repeat(5,40px)}.pj-lienzo button{width:40px;height:40px}
  .fb-estrella{top:3px;left:4px}.fb-estrella .ms{font-size:15px}
}
@media (prefers-reduced-motion:reduce){.pr-exito>.ms,.pr-chispas i,.pj-cable,.pj-cd svg,.pj-cd .ed-luz,.pj-rayo .ms{animation:none!important}.pj-cable.nuevo{stroke-dashoffset:0}.pr-chispas{display:none}}

/* Campos «Escríbelo tú»: crecen hacia abajo según se escribe */
textarea.crece{resize:none;overflow:hidden;min-height:0;line-height:1.4;font:inherit;display:block;width:100%}
.campo-medio{max-width:560px}
.tiles.estilos{grid-template-columns:repeat(3,minmax(0,1fr));max-width:760px}
@media (max-width:560px){.tiles.estilos{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* Interruptor de la puerta: retos de IA sí o no */
.interruptor{display:flex;align-items:center;gap:12px;margin-top:16px;cursor:pointer;user-select:none}
.interruptor input{position:absolute;opacity:0;width:1px;height:1px}
.int-pista{flex:none;width:52px;height:30px;border-radius:99px;background:#C9CEDB;border:2px solid var(--noche);position:relative;transition:background .2s}
.int-pista::after{content:"";position:absolute;top:2px;left:2px;width:22px;height:22px;border-radius:50%;background:#fff;border:2px solid var(--noche);transition:transform .2s}
.interruptor input:checked+.int-pista{background:var(--naranja)}
.interruptor input:checked+.int-pista::after{transform:translateX(22px)}
.interruptor input:focus-visible+.int-pista{outline:3px solid var(--naranja);outline-offset:3px}
.int-txt{display:flex;flex-direction:column;line-height:1.3}
.int-txt small{font-size:14px;opacity:.8}

.final-txt .final-guardado{display:flex;align-items:center;gap:6px;color:#BFE8CF!important;font-size:15px!important}
.final-guardado .ms{color:#7CE3A6}

/* ============ El almacén (F9): estanterías en carrusel ============ */
.almacen-cab .almacen-tit{flex:1;min-width:0}
.almacen-cab .avatar{border-radius:50%;background:#fff;border:3px solid var(--naranja);object-fit:contain;flex:none}
.buscador{display:flex;align-items:center;gap:8px;background:#fff;border-radius:99px;padding:6px 18px;min-width:min(380px,100%);color:var(--noche)}
.buscador .ms{font-size:24px;color:var(--noche)}
.buscador input{border:0;outline:0;background:transparent;font:inherit;font-size:17px;padding:8px 0;width:100%;color:var(--noche)}
.buscador:focus-within{box-shadow:0 0 0 3px var(--naranja)}
@media (max-width:820px){.almacen-cab{flex-wrap:wrap}.buscador{flex:1 1 100%}}
.almacen{max-width:1240px;margin:0 auto;padding:28px clamp(16px,4vw,40px) 64px}
.alm-cargando{display:flex;align-items:center;gap:8px;color:var(--tinta-suave);font-size:18px}
.alm-cargando .ms{animation:pjLuz 1s steps(2) infinite}
.alm-chips{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:28px}
.alm-chips .cuenta{margin-left:4px}
.alm-chips .chip[aria-pressed=true] .cuenta{color:inherit;opacity:.8}
.estante{margin-bottom:40px}
.estante-cab{display:flex;align-items:center;gap:14px;margin-bottom:14px}
.estante-cab h2{margin:0;font-size:clamp(22px,2.6vw,30px);line-height:1.1}
.estante-cab p{margin:2px 0 0;color:var(--tinta-suave)}
.estante-cab>div:nth-child(2){flex:1;min-width:0}
.estante-ico{width:54px;height:54px;flex:none;border-radius:14px;background:var(--naranja-claro);border:2px solid var(--noche);display:grid;place-items:center}
.estante-ico .ms{font-size:28px;color:var(--naranja-hondo)}
.estante-flechas{display:flex;gap:8px;flex:none}
.estante-flechas .btn{width:46px;height:46px;padding:0;border-radius:50%;display:grid;place-items:center}
.estante-flechas .btn .ms{font-size:28px;margin:0}
.estante-flechas .btn:disabled{opacity:.35;cursor:default}
.estante.sin-flechas .estante-flechas{visibility:hidden}
.estante-pista{display:grid;grid-auto-flow:column;grid-auto-columns:calc((100% - 3 * 20px) / 4);gap:20px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;padding:4px 4px 14px;scrollbar-width:none;overscroll-behavior-x:contain}
.estante-pista::-webkit-scrollbar{display:none}
.estante-pista:focus-visible{outline:3px solid var(--naranja);outline-offset:4px;border-radius:12px}
.estante-tabla{height:12px;border-radius:6px;background:var(--noche);box-shadow:0 4px 0 rgba(30,42,74,.25);margin-top:2px}
@media (max-width:1000px){.estante-pista{grid-auto-columns:calc((100% - 2 * 18px) / 3);gap:18px}}
@media (max-width:640px){.estante-pista{grid-auto-columns:62%;gap:14px}.estante-flechas{display:none}}
.libro-card{scroll-snap-align:start;background:#fff;border:2px solid var(--noche);border-radius:16px;overflow:hidden;display:flex;flex-direction:column;box-shadow:0 4px 0 var(--noche)}
.libro-tapa{position:relative;display:block;aspect-ratio:2/3;width:100%;padding:0;border:0;border-bottom:2px solid var(--noche);background:var(--naranja-claro);cursor:pointer;overflow:hidden}
.libro-tapa img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .3s}
.libro-tapa:hover img{transform:scale(1.04)}
.libro-tapa>.ms{font-size:64px;color:var(--naranja-hondo)}
.libro-tt{position:absolute;left:0;right:0;top:0;padding:14px 14px 34px;text-align:left;font-family:"Baloo 2",var(--f);font-weight:800;font-size:clamp(17px,1.7vw,21px);line-height:1.1;color:var(--noche);background:linear-gradient(180deg,rgba(255,255,255,.95) 0,rgba(255,255,255,.8) 55%,rgba(255,255,255,0) 100%)}
.libro-tapa:focus-visible{outline:3px solid var(--naranja);outline-offset:-3px}
.libro-pie{padding:10px 12px 12px;display:flex;flex-direction:column;gap:8px}
.libro-pie p{margin:0;font-size:15px;color:var(--tinta-suave);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.libro-pie b{color:var(--noche)}
.libro-acc{display:flex;gap:8px;flex-wrap:wrap}
.libro-acc .btn{flex:1;justify-content:center;padding-left:10px;padding-right:10px}
.libro-acc .btn.cargando,.libro-tapa.cargando{opacity:.6;cursor:progress}
.alm-rejilla{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:20px}
.lector-estante{display:flex;align-items:center;gap:6px;margin:-6px 0 10px;color:var(--tinta-suave)}
.lector-estante .ms{color:var(--naranja-hondo)}
@media (prefers-reduced-motion:reduce){.estante-pista{scroll-behavior:auto}.libro-tapa img{transition:none}}
@media (max-width:640px){.alm-chips{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;margin-left:calc(-1 * clamp(16px,4vw,40px));margin-right:calc(-1 * clamp(16px,4vw,40px));padding:2px clamp(16px,4vw,40px) 6px}.alm-chips::-webkit-scrollbar{display:none}.alm-chips .chip{flex:none}}

/* Modo administrador del Almacén */
.alm-pie{margin-top:8px;text-align:center}
.alm-pie .link{display:inline-flex;align-items:center;gap:6px;color:var(--tinta-suave);font-size:14px;text-decoration:none;border-bottom:0;box-shadow:none}
.alm-pie .link:hover{color:var(--noche)}
.alm-adminbar{display:flex;flex-wrap:wrap;align-items:center;gap:8px 16px;background:#FFF3E0;border:2px dashed var(--naranja-hondo);border-radius:14px;padding:10px 16px;margin-bottom:22px}
.alm-adminbar .ab-txt{flex:1;min-width:220px;text-align:left}
.alm-adminbar>.ms{flex:none;font-size:24px}
.alm-adminbar .ms{color:var(--naranja-hondo)}
.quitar-alm{width:100%;justify-content:center;color:#B3261E;border-color:#B3261E;box-shadow:0 3px 0 #B3261E}
.libro-card.quitado .libro-tapa{cursor:default;filter:grayscale(.6)}
