/* access gate — everything but the gate stays hidden while html.locked */
html.locked,html.locked body{overflow:hidden}
html.locked body>*:not(#gate){visibility:hidden;opacity:0;pointer-events:none}
#gate{--g-bg:#0A0A0A;--g-fg:#D9CBB0;--g-dim:#6B6458;--g-metal:#8A8F94;--g-acc:#E8C872;--g-bad:#E5735C;
  position:fixed;inset:0;z-index:2147483000;background:var(--g-bg);color:var(--g-fg);visibility:visible;
  font:13px/1.7 'JetBrains Mono',ui-monospace,Menlo,monospace;-webkit-font-smoothing:antialiased;
  display:flex;justify-content:center;align-items:flex-start;overflow:auto;padding:16px;transition:opacity .5s}
#gate *{box-sizing:border-box;margin:0}
#gate.out{opacity:0;pointer-events:none}
#gate .gbox{width:100%;max-width:640px;margin-top:10vh;border:1px solid var(--g-metal);background:var(--g-bg)}
#gate .gbox.drag{border-color:var(--g-acc)}
#gate .gbar{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;border-bottom:1px solid var(--g-metal);padding:6px 12px;font-size:12px;color:var(--g-dim)}
#gate .glog{padding:12px;white-space:pre-wrap;overflow-wrap:anywhere;min-height:8em}
#gate .ok{color:var(--g-acc)}
#gate .bad{color:var(--g-bad)}
#gate .dim{color:var(--g-dim)}
#gate form{border-top:1px solid #222;padding:12px;display:flex;flex-direction:column;gap:10px}
#gate textarea{width:100%;background:transparent;border:1px solid #2a2a2a;color:var(--g-fg);font:inherit;font-size:12px;padding:8px;outline:none;resize:vertical;border-radius:0}
#gate textarea::placeholder{color:var(--g-dim)}
#gate textarea:focus{border-color:var(--g-acc)}
#gate .gact{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
#gate button,#gate label.file{background:transparent;color:var(--g-fg);border:1px solid var(--g-metal);font:inherit;font-size:12px;padding:4px 12px;cursor:pointer;border-radius:0}
#gate button[type=submit]{color:var(--g-acc);border-color:var(--g-acc)}
#gate button:hover,#gate button:focus-visible,#gate label.file:hover,#gate label.file:focus-visible{color:var(--g-bg);background:var(--g-acc);border-color:var(--g-acc);outline:none}
#gate button:disabled{opacity:.5;cursor:wait}
#gate .gfoot{color:var(--g-dim);font-size:11px;margin-left:auto}
#gate a{color:var(--g-fg);text-decoration:none;border-bottom:1px solid var(--g-dim)}
#gate a:hover,#gate a:focus-visible{color:var(--g-acc);border-color:var(--g-acc);outline:none}
@media (max-width:480px){#gate .gbox{margin-top:4vh}#gate .gfoot{margin-left:0}}
@media (prefers-reduced-motion:reduce){#gate{transition:none}}
