/* 午夜剧场 — 访问密码门（独立样式，去掉这个文件即回到无门状态） */
body.locked{overflow:hidden}

.gate{position:fixed;inset:0;z-index:9999;display:flex;align-items:center;justify-content:center;
  padding:24px;background:radial-gradient(130% 95% at 50% 0%,#1d1013 0%,#0d0809 58%,#090506 100%)}
.gate::before{content:'';position:absolute;inset:0;pointer-events:none;
  background:repeating-linear-gradient(0deg,rgba(255,255,255,.02) 0 1px,transparent 1px 3px)}
.gate-box{position:relative;width:min(380px,100%);text-align:center;padding:40px 28px 30px;
  background:linear-gradient(180deg,rgba(30,17,20,.97),rgba(12,7,8,.99));
  border:1px solid var(--line);border-radius:16px;
  box-shadow:0 0 0 1px rgba(201,138,61,.16),0 34px 70px -32px rgba(0,0,0,.95),
             0 0 60px -22px rgba(224,65,79,.4)}
.gate-moon{font-size:42px;line-height:1;margin-bottom:12px;
  filter:drop-shadow(0 0 18px rgba(201,138,61,.6))}
.gate-box h1{font-size:26px;font-weight:800;letter-spacing:.22em;margin-bottom:14px;color:var(--fg)}
.gate-box h1::after{content:'';display:block;width:56px;height:1px;margin:14px auto 0;
  background:linear-gradient(90deg,transparent,var(--accent-2),transparent)}
.gate-sub{color:var(--fg-dim);font-size:12.5px;letter-spacing:.18em;margin-bottom:26px}
.gate-box form{display:flex;flex-direction:column;gap:10px}
.gate-box input{background:#0a0506;border:1px solid var(--line);border-radius:10px;padding:13px 16px;
  color:var(--fg);font-size:16px;letter-spacing:.22em;text-align:center;outline:none;transition:.2s}
.gate-box input::placeholder{letter-spacing:.08em;color:#6a5659}
.gate-box input:focus{border-color:var(--accent-2);box-shadow:0 0 0 3px rgba(201,138,61,.14)}
.gate-box button{background:linear-gradient(180deg,#e0414f,#ad2935);color:#fff;border:0;border-radius:10px;
  padding:13px 16px;font-size:15px;font-weight:800;letter-spacing:.24em;cursor:pointer;transition:.18s}
.gate-box button:hover{box-shadow:0 0 26px -4px rgba(224,65,79,.62)}
.gate-err{min-height:17px;margin-top:12px;font-size:12.5px;color:var(--accent);letter-spacing:.04em}
.shake{animation:zkShake .4s}
@keyframes zkShake{0%,100%{transform:translateX(0)}20%{transform:translateX(-9px)}
  40%{transform:translateX(8px)}60%{transform:translateX(-5px)}80%{transform:translateX(3px)}}
@media (max-width:720px){.gate-box{padding:34px 22px 26px}.gate-box h1{font-size:23px}}
