/* name gate (modal) — CSP-safe, no inline styles */
.gate{
  position:fixed;inset:0;z-index:10;
  display:flex;justify-content:center;align-items:flex-start;
  padding:14vh 16px 16px;
  background:rgba(2,5,3,.72);backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px);
  overflow-y:auto;
  animation:gate-in .35s ease-out;
}
.gate.hidden{display:none}
@keyframes gate-in{from{opacity:0}to{opacity:1}}
.gate-box{
  width:min(420px,100%);
  background:rgba(3,10,6,.95);
  border:1px solid rgba(41,255,122,.35);border-radius:10px;
  box-shadow:0 0 0 1px rgba(0,0,0,.6),0 0 50px rgba(41,255,122,.14);
}
.gate-body{display:flex;flex-direction:column;gap:14px;padding:20px 18px 16px;text-align:left}
.gate-body label{font-size:clamp(17px,5vw,21px);color:var(--fg);letter-spacing:.03em}
.gate-body input{
  font:inherit;font-size:18px; /* >=16px: no zoom-on-focus */
  width:100%;padding:12px 14px;border-radius:6px;
  background:#020604;color:var(--green);caret-color:var(--green);
  border:1px solid rgba(41,255,122,.4);outline:none;
  -webkit-appearance:none;appearance:none;
}
.gate-body input:focus{border-color:var(--green);box-shadow:0 0 0 3px rgba(41,255,122,.18)}
.gate-body input::placeholder{color:var(--muted)}
.gate-body button[type=submit]{
  font:inherit;font-size:17px;font-weight:700;letter-spacing:.12em;
  min-height:48px;border-radius:6px;cursor:pointer;
  background:var(--green);color:#03140a;border:0;
  -webkit-tap-highlight-color:transparent;
}
.gate-body button[type=submit]:active{transform:translateY(1px);filter:brightness(.9)}
.gate-msg{min-height:1.4em;font-size:14px;color:var(--red)}
.gate-msg:empty{min-height:0}
.gate-skip{
  align-self:center;font:inherit;font-size:12px;letter-spacing:.1em;
  background:none;border:0;color:var(--muted);padding:6px 10px;cursor:pointer;
}
.gate-box.shake{animation:shake .35s linear}
@media (prefers-reduced-motion:reduce){.gate,.gate-box.shake{animation:none}}
