/* Northern Preserve — private passage. Decorative concealment, not an access-control mechanism. */
.footer-tools{display:flex;align-items:center;gap:12px}
.footer-tools>a{font-size:10px;letter-spacing:.12em;color:var(--quiet);white-space:nowrap}
.footer-tools>a:hover{color:var(--text)}
.private-seal{width:44px;height:44px;border:0;border-radius:50%;background:transparent;color:var(--quiet);cursor:pointer;display:grid;place-items:center;transition:color .25s,background .25s}
.private-seal svg{width:13px;height:13px;display:block;transition:transform .25s}
.private-seal:hover{background:var(--surface-2);color:var(--accent-strong)}
.private-seal:hover svg{transform:translateY(-1px)}
.private-access[hidden]{display:none!important}
.private-access{position:fixed;inset:0;z-index:200;display:flex;justify-content:flex-end;isolation:isolate}
.private-backdrop{position:absolute;inset:0;background:rgba(0,0,0,.68);border:0;width:100%;height:100%;opacity:0;cursor:default;transition:opacity .42s;backdrop-filter:blur(0);-webkit-backdrop-filter:blur(0)}
.private-access.is-open .private-backdrop{opacity:1;backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px)}
.private-panel{position:relative;z-index:1;overflow-y:auto;overscroll-behavior:contain;width:min(100%,470px);height:100%;background:#101a23;color:#eef2ef;box-shadow:-24px 0 90px rgba(0,0,0,.32);transform:translateX(100%);transition:transform .6s cubic-bezier(.21,.83,.19,1)}
.private-access.is-open .private-panel{transform:translateX(0)}
.private-edge{position:absolute;left:0;top:0;bottom:0;width:1px;background:linear-gradient(to bottom,transparent,#87a9a0 23%,#87a9a0 65%,transparent);opacity:.45}
.private-panel-inner{max-width:430px;min-height:100%;margin:auto;padding:33px 41px 28px;display:flex;flex-direction:column}
.private-header,.private-foot{display:flex;align-items:center;justify-content:space-between;gap:16px}
.private-micro,.private-foot,.private-eyebrow{color:#90a9b1;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:10px;letter-spacing:.16em}
.private-close{border:1px solid #31424a;display:grid;place-items:center;border-radius:50%;background:none;color:#c5d3ce;width:38px;height:38px;cursor:pointer}
.private-close:hover{background:#21323b;color:#fff}
.private-close svg{height:16px;width:16px}
.private-lock{width:76px;height:86px;margin:95px 0 36px;color:#aec9c0;display:flex;align-items:center}
.private-lock svg{width:60px;height:66px;overflow:visible}
.private-shackle{transform-origin:39px 29px;transition:transform .65s cubic-bezier(.2,.75,.2,1)}
.private-access.is-unlocked .private-shackle{transform:rotate(-30deg) translate(-1px,-3px)}
.private-access.is-unlocked .private-lock-body{stroke:#d3e2d0}
.private-eyebrow{margin:0 0 22px;color:#b3c9c2}
.private-panel h2{font-family:Georgia,"Times New Roman",serif;font-weight:400;font-size:clamp(50px,5vw,65px);line-height:1.04;letter-spacing:-.055em;margin:0 0 22px}
.private-panel h2 em{font-weight:400;color:#b1c9bf}
.private-description{font-size:15px;line-height:1.75;color:#b6c5c8;margin:0 0 40px;max-width:320px}
#private-access-form{width:100%}
#private-access-form label{font-size:11px;letter-spacing:.09em;text-transform:uppercase;font-weight:600;color:#c0d0d0;display:block;margin-bottom:12px}
.private-field{display:flex;align-items:center;min-height:54px;border:1px solid #5b737e;background:#0d151c;transition:border-color .2s}
.private-field:focus-within{border-color:#c0d8d0;box-shadow:0 0 0 1px #c0d8d0}
.private-field input{width:100%;min-width:0;flex:1;border:0;background:transparent;color:#f1f4f2;font-size:16px;outline:0;min-height:52px;padding:14px 15px}
.private-field input::placeholder{color:#92a4a9;opacity:1}
.private-reveal{border:0;background:transparent;color:#b5c7c6;font-size:10px;letter-spacing:.06em;font-weight:600;cursor:pointer;padding:18px 12px}
.private-reveal:hover{color:white}
.private-error{min-height:24px;font-size:12px;color:#ecc8bc;margin:10px 0 3px;line-height:1.4}
.private-enter{width:100%;min-height:55px;background:#b7d3c9;border:1px solid #b7d3c9;color:#0b151b;cursor:pointer;font-weight:650;font-size:13px;display:flex;justify-content:space-between;align-items:center;padding:0 18px;transition:background .2s}
.private-enter:hover{background:#d1e6dc}
.private-enter:disabled{opacity:.66;cursor:wait}
.private-enter span:last-child{font-size:20px;font-weight:400}
.private-foot{border-top:1px solid #31414a;margin-top:auto;padding-top:26px;line-height:1.6;letter-spacing:.06em;font-size:9px}
.private-panel :focus-visible{outline:2px solid #d1e6dc;outline-offset:3px}
@media(max-width:760px){
 .footer-tools{gap:5px}
 .private-panel{width:min(100%,430px)}
 .private-panel-inner{padding:26px 25px 24px}
 .private-lock{margin-top:65px}
 .private-description{margin-bottom:30px}
 .private-foot{padding-top:22px}
}
@media(max-width:410px){.private-panel-inner{padding-left:19px;padding-right:19px}.private-panel h2{font-size:52px}.private-foot{font-size:8px}}
@media(prefers-reduced-motion:reduce){.private-backdrop,.private-panel,.private-shackle,.private-seal,.private-seal svg,.private-enter{transition:none!important}}

/* v2: discrete owner entrance, deliberately without hover/cursor affordances. */
.private-seal,.private-seal:hover,.private-seal:active{
  cursor:default;
  color:var(--quiet);
  background:transparent;
  border-color:transparent;
  box-shadow:none;
}
.private-seal svg,.private-seal:hover svg,.private-seal:active svg{transform:none;transition:none}
.private-seal:focus-visible{outline:2px solid var(--accent-strong);outline-offset:2px}
#private-access-form .private-email-field{margin-bottom:23px}
#private-email{font:inherit;font-size:16px}
#private-access-form input:focus{outline:0}
