@import url('https://fonts.googleapis.com/css2?family=DM+Mono&family=Space+Grotesk:wght@400;600&display=swap');
*{box-sizing:border-box}body{margin:0;overflow:hidden;background:#01070e;color:#c4eaff;font:12px 'DM Mono',monospace}#scene{position:fixed;inset:0;width:100%;height:100%}header{position:fixed;top:22px;left:28px;right:28px;display:flex;justify-content:space-between;letter-spacing:.13em}.brand{color:#ff9a40}#status{color:#7be8ff}.readout{position:fixed;left:28px;bottom:93px;width:min(400px,70vw);line-height:1.7;color:#70a9bc}.readout div:first-child{color:#ff9a40;font-size:10px;letter-spacing:.12em}.controls{position:fixed;bottom:25px;left:28px;right:28px;display:flex;gap:9px;align-items:center}button,input{border:1px solid #277389;background:#05131d;color:#bdefff;padding:11px 14px;font:inherit}button:hover{border-color:#ff9a40;color:#ffb66e;cursor:pointer}button:disabled{border-color:#1d3a46;color:#4a6a78;cursor:not-allowed;opacity:.5}button:disabled:hover{border-color:#1d3a46;color:#4a6a78}form{display:flex;flex:1;max-width:460px}input{border-right:0;flex:1;min-width:0}#camera{position:fixed;width:120px;height:80px;right:28px;bottom:25px;object-fit:cover;opacity:0;transition:.3s;border:1px solid #277389}#camera.on{opacity:.55}#memoryPanel,#mentesPanel{position:fixed;z-index:3;right:28px;top:60px;width:min(340px,80vw);max-height:56vh;overflow:auto;background:rgba(2,13,24,.92);border:1px solid #277389;padding:14px;display:none;color:#82bbd1}#memoryPanel.open,#mentesPanel.open{display:block}#memoryPanel>div:first-child,#mentesPanel>div:first-child{color:#ff9a40;letter-spacing:.08em;margin-bottom:10px}#clearMemory{padding:7px 9px;font-size:10px;margin-bottom:10px}#memoryItems{font-size:10px;line-height:1.55}.memoryItem{border-top:1px solid #143f55;padding:8px 0}.memoryItem b{color:#ff9a40}.mente{display:inline-block;border:1px solid #20536a;padding:7px;margin:3px;color:#9dd5ee;cursor:pointer}.mente.on{border-color:#ff9a40;color:#ffb66e;background:#17200f}#menteStatus{display:block;margin-top:10px;color:#7aa5b9}
/* ── Aviso legal (patrón del Salón) ── */
.legal-overlay{position:fixed;inset:0;z-index:10;background:rgba(1,4,10,.82);display:none;align-items:center;justify-content:center;padding:18px}.legal-overlay.open{display:flex}.legal-modal{background:rgba(4,16,28,.97);border:1px solid #277389;max-width:440px;width:100%;padding:22px;color:#bdefff;box-shadow:0 0 42px rgba(0,102,255,.22)}.legal-title{color:#ff9a40;font-size:14px;letter-spacing:.06em;margin:0 0 12px;font-family:'Space Grotesk',sans-serif}.legal-list{margin:0 0 14px;padding-left:18px;line-height:1.75;color:#9dd5ee;font-size:11px}.legal-check{display:flex;gap:8px;align-items:center;margin-bottom:14px;color:#70a9bc;cursor:pointer}.legal-accept{border:1px solid #ff9a40;background:transparent;color:#ffb66e;padding:10px 22px;cursor:pointer;font:inherit}.legal-accept:hover{background:#ff9a40;color:#01070e}
/* ── Footer: Powered by AxisDynamics · Contacto ── */
#appFooter{position:fixed;bottom:8px;left:0;right:0;display:flex;justify-content:center;align-items:center;gap:8px;font-size:10px;color:#4a7a8f;z-index:4;pointer-events:none;letter-spacing:.04em}
#appFooter a{color:#4a7a8f;text-decoration:none;pointer-events:auto;transition:color .2s}
#appFooter a:hover{color:#9dd5ee}
#appFooter .footer-brand{color:#7ba8c4;font-weight:600}
#appFooter .footer-sep{opacity:.5}
#contactBtn{background:transparent;border:none;color:#4a7a8f;padding:0;font:inherit;cursor:pointer;pointer-events:auto;transition:color .2s}
#contactBtn:hover{color:#ffb66e;border-color:transparent}
/* ── Modal contacto (patrón del Salón) ── */
.contacto-modal{background:rgba(4,16,28,.97);border:1px solid #277389;max-width:440px;width:100%;padding:20px 22px;color:#bdefff;box-shadow:0 0 42px rgba(0,102,255,.22);max-height:86vh;overflow-y:auto}
.contacto-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:4px}
.contacto-x{background:transparent;border:none;color:#70a9bc;font-size:16px;cursor:pointer;padding:2px 6px}
.contacto-x:hover{color:#ffb66e}
.contacto-sub{color:#82bbd1;font-size:11px;margin:0 0 14px;line-height:1.6}
.contacto-field{display:block;margin-bottom:12px;color:#9dd5ee}
.contacto-field>span{display:block;font-size:10px;letter-spacing:.08em;margin-bottom:5px;color:#ff9a40}
.contacto-input{width:100%;padding:10px 12px;font-size:13px}
.contacto-textarea{min-height:90px;resize:vertical;font-family:inherit}
.contacto-opcional{color:#4a7a8f;font-style:normal;font-size:9px}
.contacto-hp{position:absolute;left:-9999px;opacity:0;height:0;overflow:hidden}
.contacto-error{color:#ff6b6b;font-size:11px;margin-top:10px}
.contacto-ok{text-align:center;padding:14px 6px;color:#9dd5ee;line-height:1.7}
.contacto-ok-icon{font-size:34px;margin-bottom:10px}

/* ══════════════════════════════════════════════════════════════
   📱 MÓVIL — MENTES.GPT adaptado para pantallas táctiles pequeñas
   Punto de quiebre: ≤ 720px (portrait phones, landscape corto)
   ══════════════════════════════════════════════════════════════ */
@media (max-width: 720px){
  header{top:12px;left:14px;right:14px;font-size:10px;flex-wrap:wrap;gap:4px}
  #fps{display:none}
  .readout{left:14px;right:14px;bottom:118px;width:auto;max-width:none;font-size:11px;line-height:1.5;
    background:linear-gradient(180deg,rgba(1,7,14,.92),rgba(1,7,14,.55) 70%,transparent);
    padding:8px 10px 18px;border-radius:6px;max-height:38vh;overflow-y:auto;
    -webkit-overflow-scrolling:touch}
  .controls{bottom:10px;left:12px;right:12px;gap:7px;flex-wrap:wrap}
  .controls button{padding:10px 8px;font-size:10px;flex:1 1 auto;min-width:0;touch-action:manipulation}
  form{flex:1 1 100%;max-width:none;order:5;margin-top:2px}
  input{font-size:16px;padding:12px 10px;flex:1 1 auto} /* ≥16px evita auto-zoom iOS al enfocar */
  #chat button{flex:0 0 auto;padding:10px 18px;font-size:11px}
  #camera{width:86px;height:58px;right:12px;bottom:118px;border-radius:4px}
  #memoryPanel,#mentesPanel{right:10px;left:10px;top:52px;width:auto;max-width:none;max-height:52vh;font-size:11px}
  .mente{padding:9px 11px;margin:4px;font-size:11px}
  .legal-modal{padding:18px;max-height:84vh;overflow-y:auto}
  .legal-list{font-size:11px}
  /* bandas laterales del avatar en móvil no deben tapar el texto */
  #scene{filter:brightness(.92)}
  .brand{font-size:12px;letter-spacing:.1em}
  #status{font-size:9px}
}

/* Muy angosto: botones de acción con texto corto, sin apretarse */
@media (max-width: 400px){
  .controls button{padding:10px 5px;font-size:9px}
  .readout{bottom:112px;font-size:10px}
  header{left:10px;right:10px}
}

/* Footer en móvil: los controles ocupan el borde inferior (2 filas), así el
   footer sube bajo el header, centrado y discreto. En pantallas muy bajas
   (landscape de teléfono) se compacta a la derecha para no estorbar. */
@media (max-width: 720px){
  #appFooter{bottom:auto;top:36px;font-size:9px;gap:6px;z-index:2}
  .contacto-modal{max-width:92vw;padding:16px;max-height:80vh}
}
@media (max-width: 720px) and (max-height: 480px){
  #appFooter{top:auto;bottom:104px;right:12px;left:auto;justify-content:flex-end;font-size:8px}
}
