/* ONOMA — estilos compartidos de las páginas de acceso (gate) */
@import url('https://fonts.googleapis.com/css2?family=Montserrat:wght@400;600;700;800;900&display=swap');

* { margin:0; padding:0; box-sizing:border-box; -webkit-tap-highlight-color:transparent; }
html,body { height:100%; background:#0a0a0a; font-family:'Montserrat',sans-serif; }

.gate {
  position:relative;
  width:100%; min-height:100%;
  max-width:480px; margin:0 auto;
  background:#fdfdfb;
  overflow:hidden;
  display:flex; flex-direction:column; align-items:center;
  padding:54px 34px 60px;
  box-shadow:0 0 60px rgba(0,0,0,.5);
}
/* Marco ornamentado */
.gate .marco {
  position:absolute; inset:0; width:100%; height:100%;
  object-fit:fill; pointer-events:none; z-index:1;
}
/* Decoraciones inferiores tenues */
.gate .deco { position:absolute; bottom:70px; width:120px; opacity:.10; z-index:1; }
.gate .deco.luna { left:24px; }
.gate .deco.sol  { right:24px; }

.gate .content {
  position:relative; z-index:2;
  width:100%; flex:1;
  display:flex; flex-direction:column; align-items:center;
}
.gate .logo { width:62%; max-width:290px; margin-top:2px; }

.gate h1 {
  font-size:1.7rem; font-weight:800; color:#111;
  text-align:center; line-height:1.25; margin:0 8px;
}
.gate .lead {
  font-size:1.35rem; font-weight:800; color:#111;
  text-align:center; line-height:1.3; margin:0 4px;
}

/* Botones tipo píldora */
.btn {
  display:flex; align-items:center; justify-content:center;
  width:82%; max-width:340px; min-height:78px;
  border:none; border-radius:46px; cursor:pointer;
  font-family:inherit; font-size:1.35rem; font-weight:800; line-height:1.2;
  text-align:center; padding:14px 24px; text-decoration:none;
  transition:transform .12s ease, filter .12s ease;
}
.btn:active { transform:scale(.97); }
.btn-primary   { background:#1e1e1e; color:#f2f2f2; box-shadow:0 6px 18px rgba(0,0,0,.25); }
.btn-secondary { background:#cfcfcf; color:#111; }

/* Inputs */
.field {
  width:88%; max-width:360px; min-height:64px;
  border:3px solid #4d4d4d; border-radius:40px;
  background:#fff; color:#111;
  font-family:inherit; font-size:1.2rem; font-weight:600;
  text-align:center; padding:12px 22px; outline:none;
}
.field::placeholder { color:#b3b3b3; }

.msg { min-height:1.4em; text-align:center; font-weight:700; font-size:1rem; }
.msg.err { color:#b12; }
.msg.ok  { color:#178a3a; }

.spacer { flex:1; }
.stack { display:flex; flex-direction:column; align-items:center; gap:20px; width:100%; }
.link  { background:none; border:none; color:#555; text-decoration:underline; font:inherit; font-size:.95rem; cursor:pointer; }
