/* Preview gate — full-screen lock until password entered */
html.gate-locked body > :not(#previewGate){
  visibility:hidden;
  pointer-events:none;
}

.preview-gate{
  position:fixed; inset:0; z-index:99999;
  display:grid; place-items:center; padding:24px;
}

.preview-gate-backdrop{
  position:absolute; inset:0;
  background:
    radial-gradient(ellipse 70% 50% at 50% 18%, rgb(var(--warm-rgb) / .14), transparent 62%),
    rgb(var(--ink-rgb) / .97);
}

.preview-gate-card{
  position:relative; z-index:1;
  width:min(100%, 420px);
  padding:28px 26px 24px;
  text-align:center;
}

.preview-gate-mark{
  width:52px; height:52px; margin:0 auto 18px;
  border-radius:50%;
  display:grid; place-items:center;
  background:var(--metal-warm);
  box-shadow:var(--glow-sm);
  font-family:var(--font); font-size:22px; font-weight:700; color:var(--warm-600);
}

.preview-gate-card h1{
  font-size:clamp(26px, 5vw, 34px);
  font-weight:700; letter-spacing:.02em;
  text-transform:uppercase; margin:10px 0 12px;
}

.preview-gate-lede{
  font-size:13px; line-height:1.65; color:var(--text-2);
  margin-bottom:22px;
}

.preview-gate-form{ display:flex; flex-direction:column; gap:10px; text-align:left; }

.preview-gate-label{
  font-family:var(--mono); font-size:9px; font-weight:500;
  letter-spacing:.18em; text-transform:uppercase; color:var(--text-3);
}

.preview-gate-input{
  width:100%; height:46px; padding:0 14px;
  border-radius:var(--r-md);
  border:1px solid rgb(var(--light-rgb) / .12);
  background:rgb(var(--panel-rgb) / .55);
  color:var(--text);
  font-family:var(--font); font-size:14px;
  outline:none;
  transition:border-color var(--t-fast) var(--ease), box-shadow var(--t-fast) var(--ease);
}
.preview-gate-input:focus{
  border-color:rgb(var(--warm-rgb) / .45);
  box-shadow:0 0 0 3px rgb(var(--warm-rgb) / .12);
}

.preview-gate-error{
  font-size:12px; color:#f0a0a0; margin:0;
}

.preview-gate-submit{ width:100%; margin-top:6px; justify-content:center; }

.preview-gate-note{
  margin:18px 0 0; font-size:10.5px; line-height:1.6; color:var(--text-3);
}
