/* Brama dostępu (hasło) — prezentacja publiczna. Tokeny z :root w index.html.
   UWAGA: ochrona po stronie klienta = zniechęca przypadkowych, NIE jest realnym zabezpieczeniem
   (hasło i agent-id są w źródle). Realna ochrona = agent prywatny + backend z signed URL. */

/* Zablokuj przewijanie strony pod bramą, dopóki nie odblokowano. */
html:not(.vw-unlocked), html:not(.vw-unlocked) body { overflow: hidden; }

.velo-gate{
  position:fixed;inset:0;z-index:100000;
  display:flex;align-items:center;justify-content:center;padding:24px;
  background:radial-gradient(1200px 600px at 50% -10%, #123a24 0%, var(--ink) 60%);
  font-family:var(--font-body);
}
html.vw-unlocked .velo-gate{display:none}

.velo-gate-card{
  width:min(440px,100%);background:var(--card);color:var(--ink);
  border-radius:calc(var(--radius) + 4px);padding:clamp(28px,5vw,44px);text-align:center;
  box-shadow:0 40px 120px -30px rgba(0,0,0,.6);
}
.velo-gate-logo{width:120px;max-width:60%;height:auto;margin:0 auto 18px;display:block}
.velo-gate-card h2{font-family:var(--font-display);font-size:1.5rem;margin:0 0 8px}
.velo-gate-card p{font-size:.95rem;line-height:1.55;color:var(--ink-soft);margin:0 0 20px}

.velo-gate-form{display:flex;flex-direction:column;gap:12px}
.velo-gate-form input{
  width:100%;font:inherit;font-size:1rem;padding:13px 16px;text-align:center;
  border:1px solid var(--line);border-radius:12px;background:var(--paper);color:var(--ink);
}
.velo-gate-form input:focus{outline:2px solid var(--velo-green);outline-offset:1px}
.velo-gate-form button{
  font-family:var(--font-display);font-weight:600;font-size:1rem;
  padding:13px 22px;border:none;border-radius:999px;cursor:pointer;
  background:var(--velo-green);color:#fff;transition:filter .15s;
}
.velo-gate-form button:hover{filter:brightness(1.1)}
.velo-gate-error{min-height:1.2em;font-size:.88rem;color:#C0392B}

@media (max-width:600px){
  .velo-gate-card h2{font-size:1.3rem}
}
