/* Visual workshop gate only. Hiding content is not server/API access control. */
.access-pending body { min-height: 100vh; overflow: hidden; background: #f5faf7; }
.access-pending body > *:not(.access-gate) { visibility: hidden; }
.access-gate { position: fixed; z-index: 99999; inset: 0; display: grid; overflow: auto; place-items: center; background: linear-gradient(145deg, #003e1e, #014e25 60%, #00843d); padding: 24px; visibility: visible !important; opacity: 1; transition: opacity 180ms ease; }
.access-gate.is-unlocking { opacity: 0; }
.access-gate-card { width: min(100%, 470px); border-top: 12px solid #f9c22b; background: #fff; color: #2a2926; padding: 38px; box-shadow: 0 24px 70px rgba(0, 0, 0, 0.32); font-family: proxima-nova, Arial, sans-serif; }
.access-gate-mark { display: grid; width: 58px; height: 58px; place-items: center; margin-bottom: 24px; border-radius: 9px; background: #00843d; color: #fff; font-family: Georgia, serif; font-size: 2.2rem; font-weight: 800; line-height: 1; }
.access-gate .access-gate-kicker { margin: 0 0 8px; color: #00843d; font-size: 0.76rem; font-weight: 800; letter-spacing: 0.12em; text-transform: uppercase; }
.access-gate h1 { margin: 0; color: #014e25; font-family: "myriad-pro-condensed", "Arial Narrow", Arial, sans-serif; font-size: clamp(2.5rem, 8vw, 3.5rem); line-height: 1; }
.access-gate .access-gate-intro { margin: 18px 0 24px; color: #605f60; font-size: 1rem; line-height: 1.5; }
.access-gate-form label { display: block; margin-bottom: 7px; color: #2a2926; font-weight: 800; }
.access-gate-form input { display: block; width: 100%; min-height: 50px; border: 1px solid #949494; border-radius: 2px; background: #fff; color: #040404; padding: 10px 12px; font: inherit; }
.access-gate-form input:focus { border-color: #00843d; outline: 3px solid #f9c22b; outline-offset: 2px; }
.access-gate-form button { width: 100%; min-height: 50px; margin-top: 14px; border: 2px solid #00843d; border-radius: 3px; background: #00843d; color: #fff; cursor: pointer; padding: 10px 18px; font: inherit; font-weight: 800; }
.access-gate-form button:hover, .access-gate-form button:focus { border-color: #014e25; background: #014e25; }
.access-gate-form button:disabled { cursor: wait; opacity: 0.75; }
.access-gate-message { min-height: 24px; margin: 10px 0 0; color: #a94442; font-size: 0.9rem; font-weight: 700; }
.access-gate .access-gate-note { margin: 22px 0 0; border-top: 1px solid #d1d1d1; padding-top: 18px; color: #605f60; font-size: 0.78rem; font-weight: 700; letter-spacing: 0.07em; text-transform: uppercase; }

@media (max-width: 520px) {
  .access-gate { padding: 14px; }
  .access-gate-card { padding: 30px 24px; }
}

@media (prefers-reduced-motion: reduce) {
  .access-gate { transition: none; }
}

