html:not(.unlocked) body > :not(#gate) { visibility: hidden !important; }
#gate {
  position: fixed; inset: 0; z-index: 9999;
  display: flex; align-items: center; justify-content: center;
  background: #0b1220; color: #e8eef8;
  font-family: system-ui, -apple-system, "PingFang SC", "Noto Sans SC", sans-serif;
}
#gate form {
  width: min(360px, 90vw); display: flex; flex-direction: column; gap: 12px;
  padding: 28px; border: 1px solid rgba(255,255,255,.12); border-radius: 12px;
  background: rgba(255,255,255,.04);
}
#gate .g-title { margin: 0; font-size: 20px; font-weight: 600; letter-spacing: .04em; }
#gate .g-sub { margin: 0 0 4px; opacity: .7; font-size: 14px; }
#gate input {
  height: 44px; border-radius: 8px; border: 1px solid rgba(255,255,255,.18);
  background: rgba(0,0,0,.35); color: #fff; padding: 0 12px; font-size: 16px;
}
#gate button {
  height: 44px; border: 0; border-radius: 8px; cursor: pointer;
  background: #3aa0ff; color: #061018; font-weight: 600; font-size: 15px;
}
#gate .g-err { margin: 0; color: #ff7b7b; font-size: 13px; }
