/* ---------- login / auth gate ---------- */
#authGate{position:fixed;inset:0;z-index:1000;display:none;align-items:center;justify-content:center;padding:24px;
  background:radial-gradient(1000px 620px at 50% -12%,#1a1f3d,transparent 60%),linear-gradient(180deg,#07080f,#0a0714)}
.auth-card{width:100%;max-width:342px;display:flex;flex-direction:column;align-items:center;text-align:center;gap:12px;
  background:linear-gradient(180deg,#161a30,#0f1120);border:1px solid #2a3050;border-radius:24px;padding:32px 24px 26px;
  box-shadow:0 30px 80px rgba(0,0,0,.6),inset 0 1px 0 rgba(255,255,255,.06);animation:authpop .35s cubic-bezier(.2,1.3,.35,1) both}
@keyframes authpop{from{opacity:0;transform:translateY(14px) scale(.95)}to{opacity:1;transform:none}}
.auth-ball{width:54px;height:54px;border-radius:50%;position:relative;flex:none;
  background:linear-gradient(180deg,#e3350d 0 46%,#141418 46% 54%,#f2f3fa 54% 100%);border:3px solid #0c0d18;box-shadow:0 6px 20px rgba(227,53,13,.45)}
.auth-ball::after{content:'';position:absolute;inset:0;margin:auto;width:15px;height:15px;border-radius:50%;background:#fff;border:4px solid #0c0d18}
.auth-title{font-family:'Bebas Neue';font-size:34px;letter-spacing:.05em;color:#fff;line-height:1}
.auth-title span{color:#ffcb05}
.auth-title em{font-style:normal;font-size:.58em;color:#8a90b8;letter-spacing:.16em}
.auth-sub{font-size:11px;font-weight:800;letter-spacing:.2em;text-transform:uppercase;color:#8a90b8;margin-top:-3px}
.auth-inp{width:100%;background:#0e1122;border:1px solid #2a3050;border-radius:12px;padding:13px 14px;color:#eef0ff;
  font-family:'Outfit';font-weight:600;font-size:14px;outline:none;transition:.15s}
.auth-inp:focus{border-color:#3b6cff;box-shadow:0 0 0 3px rgba(59,108,255,.18)}
.auth-inp::placeholder{color:#5a6088}
.auth-err{color:#ff6a6a;font-size:12px;font-weight:700;min-height:15px;line-height:1.3}
.auth-btn{width:100%;border:none;border-radius:12px;padding:14px;font-family:'Outfit';font-weight:800;font-size:15px;cursor:pointer;
  background:linear-gradient(180deg,#ffe066,#ffcb05);color:#3a2c00;box-shadow:0 8px 22px rgba(255,203,5,.35);transition:.14s}
.auth-btn:active{transform:scale(.97)}
.auth-spin{width:34px;height:34px;border-radius:50%;border:3px solid #2a2f4d;border-top-color:#ffcb05;animation:spin 1s linear infinite;margin:6px 0}
.auth-msg{font-size:12.5px;color:#8a90b8;font-weight:600}
@keyframes spin{to{transform:rotate(360deg)}}
