:root.access-pending body > * { visibility:hidden; }
:root.access-pending body > noscript { visibility:visible; }
:root.access-pending body { background:#eef5f2; }
:root.access-locked { overflow:hidden; }
:root.access-locked body { overflow:hidden; }
.access-gate {
  position:fixed; z-index:100000; inset:0; display:grid; place-items:center; min-height:100dvh; padding:24px;
  overflow:auto; visibility:visible!important; color:#173a33;
  background:
    radial-gradient(circle at 12% 8%,rgba(113,187,169,.18),transparent 31%),
    radial-gradient(circle at 91% 90%,rgba(224,190,121,.2),transparent 28%),
    linear-gradient(145deg,#edf6f3 0%,#f7faf8 48%,#eef4f1 100%);
  font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  transition:opacity .22s ease,transform .22s ease;
}
.access-gate[data-leaving="true"] { opacity:0; transform:scale(1.012); }
.access-gate-glow { position:absolute; border-radius:50%; filter:blur(1px); pointer-events:none; }
.access-gate-glow-one { width:210px; height:210px; top:-90px; right:11%; background:rgba(51,132,115,.12); }
.access-gate-glow-two { width:170px; height:170px; bottom:-70px; left:8%; background:rgba(219,169,85,.12); }
.access-gate-card {
  position:relative; width:min(100%,465px); padding:34px 38px 30px; overflow:hidden;
  background:rgba(255,255,255,.94); border:1px solid rgba(255,255,255,.95); border-radius:28px;
  box-shadow:0 30px 90px rgba(39,76,68,.16),0 2px 8px rgba(39,76,68,.05);
}
.access-gate-card::before { content:""; position:absolute; inset:0 0 auto; height:5px; background:linear-gradient(90deg,#286c5e,#78ae9f,#d6b16f); }
.access-gate-brand { display:flex; align-items:center; gap:11px; }
.access-gate-brand span { display:grid; width:40px; height:40px; place-items:center; color:#fff; background:#286c5e; border-radius:13px; font:italic 700 1rem/1 Georgia,serif; box-shadow:0 8px 20px rgba(40,108,94,.2); }
.access-gate-brand strong { font-size:1rem; letter-spacing:-.03em; }
.access-gate-copy { margin:38px 0 30px; }
.access-gate-copy h1 { margin:0; color:#153c34; font-size:clamp(2.25rem,8vw,3.35rem); line-height:.96; letter-spacing:-.065em; }
.access-gate-copy h1 em { color:#4f8c7d; font-family:Georgia,serif; font-weight:500; }
.access-gate-form label { display:block; margin-bottom:9px; color:#264e45; font-size:.72rem; font-weight:760; }
.access-password-field { position:relative; }
.access-password-field input { width:100%; min-height:52px; padding:0 70px 0 15px; color:#173a33; background:#f7faf9; border:1px solid rgba(40,108,94,.2); border-radius:13px; font:650 .9rem/1 system-ui,sans-serif; box-sizing:border-box; }
.access-password-field input:focus { outline:3px solid rgba(40,108,94,.19); border-color:#367d6e; background:#fff; }
.access-password-toggle { position:absolute; top:50%; right:13px; transform:translateY(-50%); padding:7px; color:#407568; background:transparent; border:0; cursor:pointer; font:760 .68rem/1 system-ui,sans-serif; }
.access-password-toggle:focus-visible { outline:2px solid rgba(40,108,94,.35); border-radius:5px; }
.access-gate-message { min-height:20px; margin:7px 2px 5px; color:#a2523b; font-size:.69rem; line-height:1.45; }
.access-gate-message[data-caps-lock="true"]:empty::before { content:"Caps Lock is on."; color:#80652f; }
.access-gate-form[data-error="true"] .access-password-field input { border-color:#bd6a52; box-shadow:0 0 0 3px rgba(189,106,82,.09); }
.access-gate-submit { display:flex; align-items:center; justify-content:space-between; width:100%; min-height:52px; padding:0 18px; color:#fff; background:#246758; border:0; border-radius:13px; cursor:pointer; box-shadow:0 12px 28px rgba(36,103,88,.19); font:760 .78rem/1 system-ui,sans-serif; transition:transform .16s ease,background .16s ease; }
.access-gate-submit:hover { background:#1d594d; transform:translateY(-1px); }
.access-gate-submit:focus-visible { outline:3px solid rgba(40,108,94,.3); outline-offset:3px; }
.access-gate-submit:disabled { opacity:.72; cursor:wait; transform:none; }
.access-gate-submit span { font-size:1rem; }
.access-noscript { position:fixed; z-index:100001; inset:0; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:10px; padding:24px; color:#173a33; background:#eef5f2; text-align:center; font-family:Inter,ui-sans-serif,system-ui,sans-serif; }
.access-noscript strong { font-size:1.35rem; }
.access-noscript span { color:#60766f; font-size:.85rem; }
@media (max-width:560px) {
  .access-gate { align-items:start; padding:14px; }
  .access-gate-card { margin-top:4vh; padding:27px 21px 24px; border-radius:22px; }
  .access-gate-copy { margin:30px 0 26px; }
}
@media (prefers-reduced-motion:reduce) {
  .access-gate,.access-gate-submit { transition:none; }
}
