/* Front-end password gate (project case studies only) — single password field, no username.
   Soft access control for ivychendesign.com. Styled to match the site
   (dark surface + #ffe600 accent). The overlay is appended to <html> so it
   stays visible while the page body is hidden via .ivy-locked. */
.ivy-gate{
  position:fixed; inset:0; z-index:99999;
  background:#070707;
  display:flex; align-items:center; justify-content:center;
  text-align:center; padding:24px;
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Inter,Helvetica,Arial,sans-serif;
}
.ivy-gate__box{ width:100%; max-width:360px; }
.ivy-gate h1{ color:#fff; font-size:27px; font-weight:700; letter-spacing:-.01em; margin:0 0 10px; }
.ivy-gate p{ color:#837e7e; font-size:15px; line-height:1.6; margin:0 0 26px; }
.ivy-gate__mail{ color:inherit; text-decoration:none; white-space:nowrap; transition:color .15s; }   /* grey like the line; click copies (contact-actions.js) */
.ivy-gate__mail:hover,
.ivy-gate__mail:active{ color:#fff; }
.ivy-gate .toast{ z-index:1; }   /* toast shown inside the overlay while the page is locked */
.ivy-gate form{ display:flex; flex-direction:column; gap:12px; align-items:stretch; }
.ivy-gate input{
  width:100%; box-sizing:border-box; background:#141414; border:1px solid #2a2a2a;
  border-radius:999px; color:#fff; font-size:16px; padding:14px 16px; outline:none;
  text-align:center; transition:border-color .15s;
}
.ivy-gate input:focus{ border-color:#ffe600; }
.ivy-gate input::placeholder{ color:#5a5a5a; }
.ivy-gate button{
  width:100%; cursor:pointer; border:none; background:#ffe600; color:#1a1500;
  font-weight:600; font-size:15px; padding:14px; border-radius:999px;
  transition:transform .15s, opacity .15s;
}
.ivy-gate button:hover{ transform:translateY(-1px); opacity:.92; }
.ivy-gate__err{ color:#ff6b6b; font-size:13px; min-height:16px; }
.ivy-gate.is-error input{ border-color:#ff4d4d; animation:ivyshake .35s; }
@keyframes ivyshake{ 0%,100%{transform:translateX(0)} 25%{transform:translateX(-6px)} 75%{transform:translateX(6px)} }

@media (max-width: 600px){ .ivy-gate input, .ivy-gate button{ font-size:17px; } }   /* iOS Body; ≥16 also stops Safari zooming the field */

/* Hide the page until unlocked (the overlay lives on <html>, so it stays visible) */
html.ivy-locked{ overflow:hidden; }
html.ivy-locked body{ visibility:hidden; }
