/* ============================================================
   NOVAECOS — Access / Waitlist modal
   Shared across the splash. Dark glass, cyan accent (brand).
   ============================================================ */
.nx-overlay{
  position:fixed; inset:0; z-index:1000;
  display:flex; align-items:center; justify-content:center;
  padding:24px;
  background:radial-gradient(120% 120% at 70% 30%, rgba(0,40,55,.55), rgba(2,4,8,.86));
  backdrop-filter:blur(8px); -webkit-backdrop-filter:blur(8px);
  opacity:0; pointer-events:none;
  transition:opacity .28s ease;
}
.nx-overlay.open{ opacity:1; pointer-events:auto; }

.nx-modal{
  position:relative; width:min(440px,100%);
  border-radius:18px; padding:34px 32px 26px;
  background:linear-gradient(168deg, rgba(12,19,24,.98), rgba(6,10,14,.98));
  border:1px solid rgba(92,242,255,.18);
  box-shadow:0 40px 110px -30px rgba(0,0,0,.92), 0 0 60px -22px rgba(0,229,255,.5),
             inset 0 1px 0 rgba(255,255,255,.05);
  transform:translateY(14px) scale(.985);
  transition:transform .34s cubic-bezier(.18,.9,.28,1.05);
  font-family:'Inter',system-ui,sans-serif; color:#aebcc6;
}
.nx-overlay.open .nx-modal{ transform:none; }

.nx-x{
  position:absolute; top:14px; right:14px; width:30px; height:30px;
  border:0; border-radius:9px; cursor:pointer;
  background:rgba(140,170,190,.06); color:#9fb0ba; font-size:18px; line-height:1;
  transition:background .2s, color .2s;
}
.nx-x:hover{ background:rgba(140,170,190,.13); color:#eaf4f8; }

.nx-eyebrow{
  display:inline-flex; align-items:center; gap:9px; margin-bottom:14px;
  font-family:'JetBrains Mono',ui-monospace,monospace; font-size:10.5px; font-weight:500;
  letter-spacing:.26em; text-transform:uppercase; color:#5cf2ff;
}
.nx-dot{ width:7px; height:7px; border-radius:50%; background:#00e5ff;
  box-shadow:0 0 10px 1px rgba(0,229,255,.9); }

.nx-title{
  font-family:'Newsreader',Georgia,serif; font-weight:500;
  font-size:26px; line-height:1.12; letter-spacing:-.01em; color:#eaf4f8; margin:0 0 10px;
}
.nx-sub{ font-size:14px; line-height:1.55; color:#aebcc6; margin:0 0 22px; }

.nx-label{
  display:block; margin:0 0 7px;
  font-family:'JetBrains Mono',ui-monospace,monospace; font-size:10px; font-weight:500;
  letter-spacing:.16em; text-transform:uppercase; color:#74838f;
}
.nx-label .nx-opt{ text-transform:none; letter-spacing:.02em; color:#5a6b76; font-size:9.5px; margin-left:6px; }

.nx-input{
  width:100%; margin-bottom:16px; padding:12px 14px; border-radius:10px;
  background:rgba(140,170,190,.05); border:1px solid rgba(140,170,190,.18);
  color:#eaf4f8; font-family:'Inter',system-ui,sans-serif; font-size:14.5px;
  outline:none; transition:border-color .2s, box-shadow .2s, background .2s;
}
.nx-input::placeholder{ color:#5a6b76; }
.nx-input:focus{ border-color:rgba(92,242,255,.5); background:rgba(0,229,255,.04);
  box-shadow:0 0 0 3px rgba(0,229,255,.08); }

.nx-msg{ min-height:18px; margin:-4px 0 12px; font-size:12.5px; line-height:1.4; }
.nx-msg.err{ color:#ff8a8a; }
.nx-msg.ok{ color:#5ff0bb; }

.nx-submit{
  width:100%; padding:14px 20px; border:0; border-radius:11px; cursor:pointer;
  font-family:'Inter',system-ui,sans-serif; font-weight:600; font-size:15px; color:#021016;
  background:linear-gradient(180deg,#5cf2ff,#00e5ff);
  box-shadow:0 0 0 1px rgba(92,242,255,.5), 0 10px 30px -8px rgba(0,229,255,.5),
             inset 0 1px 0 rgba(255,255,255,.4);
  transition:transform .18s ease, box-shadow .22s ease, opacity .2s;
}
.nx-submit:hover{ transform:translateY(-1px);
  box-shadow:0 0 0 1px rgba(92,242,255,.7), 0 14px 40px -8px rgba(0,229,255,.62), inset 0 1px 0 rgba(255,255,255,.4); }
.nx-submit:disabled{ opacity:.6; cursor:default; transform:none; }

.nx-foot{
  margin-top:20px; padding-top:16px; border-top:1px solid rgba(140,170,190,.12);
  font-family:'JetBrains Mono',ui-monospace,monospace; font-size:9.5px; letter-spacing:.16em;
  text-transform:uppercase; color:#5a6b76; text-align:center;
}

/* success state */
.nx-success{ text-align:center; padding:6px 0 4px; }
.nx-success .nx-check{
  width:54px; height:54px; margin:0 auto 18px; border-radius:50%;
  display:grid; place-items:center; font-size:24px; color:#021016;
  background:linear-gradient(180deg,#5ff0bb,#10d98a);
  box-shadow:0 0 0 1px rgba(16,217,138,.5), 0 12px 34px -10px rgba(16,217,138,.6);
}
.nx-success h3{ font-family:'Newsreader',Georgia,serif; font-weight:500; font-size:23px;
  color:#eaf4f8; margin:0 0 8px; }
.nx-success p{ font-size:14px; line-height:1.55; color:#aebcc6; margin:0; }

@media (prefers-reduced-motion:reduce){
  .nx-overlay, .nx-modal, .nx-submit{ transition:none; }
}
