/* ============================================================
   BASE · reset mínimo + fundamentos (mobile-first)
   ============================================================ */
*,*::before,*::after{ box-sizing:border-box; }

html,body{ margin:0; padding:0; }

body{
  font-family:var(--font-sans);
  color:var(--text);
  background:var(--navy);
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}

h1,h2,h3,h4,p{ margin:0; }
a{ color:inherit; text-decoration:none; }
img,svg{ display:block; }
input,button,textarea,select{ font:inherit; color:inherit; }

/* el atributo hidden siempre gana (oculta aunque haya display:flex) */
[hidden]{ display:none !important; }

/* ---- Shell de la app (placeholder · se reemplaza en su fase) ---- */
#app{
  min-height:100dvh;
  display:flex; align-items:center; justify-content:center;
  background:var(--navy); padding:32px; text-align:center;
}
#app .placeholder{ max-width:360px; }
