:root{
  font-family:Arial,Helvetica,sans-serif;font-size:19px;line-height:1.55;
  color:#233e3b;background:#f5f3eb;color-scheme:light;
  --teal:#245f59;--teal-dark:#194640;--muted:#52685f;
  --line:#9cad9e;--sage:#e9eee2;--focus:#935017;
}
*{box-sizing:border-box}
body{margin:0;min-height:100vh;background:radial-gradient(ellipse at 50% 0,#e5ecd9 0,transparent 60%)}
.brand{padding:38px 24px 24px}
.brand-lockup{display:grid;grid-template-columns:minmax(0,1fr) 1px minmax(0,1fr);align-items:center;gap:32px;max-width:620px;margin:0 auto}
.brand-golden,.brand-masons{min-width:0;display:flex;align-items:center;justify-content:center}
.brand-golden img{display:block;width:210px;max-width:100%;height:auto}
.brand-divider{height:64px;background:#b3c0ad}
.brand-masons{gap:14px;flex-wrap:wrap}
.brand-masons img{display:block;width:66px;height:66px;flex:none}
.brand-masons strong{font-size:1.2rem;letter-spacing:-.025em;line-height:1.25;color:#2c5754;text-align:center;overflow-wrap:anywhere}
.auth-card{width:calc(100% - 40px);max-width:540px;margin:14px auto 0;padding:34px 36px 26px;background:#fffefa;border:1px solid #d0d9c9;border-top:4px solid var(--teal);border-radius:24px;box-shadow:0 12px 40px #284a3510}
.eyebrow{font-size:.82rem;letter-spacing:.065em;font-weight:700;color:var(--teal);margin:0 0 9px}
h1{font-size:2.15rem;font-weight:700;line-height:1.15;letter-spacing:-.045em;margin:0 0 15px;overflow-wrap:anywhere}
p{margin:0 0 20px}
.auth-intro{color:var(--muted);max-width:27em}
#auth-status{padding:13px 16px;border-radius:12px;background:var(--sage);color:#38564a;font-size:.9rem;line-height:1.5;overflow-wrap:anywhere}
label{display:block;font-weight:700;margin:18px 0 8px}
input,button,a{font:inherit}
input{display:block;width:100%;min-width:0;padding:12px 14px;min-height:54px;border:1px solid var(--line);border-radius:11px;background:white;color:inherit}
button,.button-link{min-height:54px;border:0;border-radius:12px;cursor:pointer;padding:13px 18px;display:block;width:100%;font-weight:700;margin-top:22px;text-align:center;overflow-wrap:anywhere}
.primary{background:var(--teal);color:white;text-decoration:none;box-shadow:0 3px 0 #153f3520}
.primary:hover{background:var(--teal-dark)}
.text-button{background:transparent;color:var(--teal);text-decoration:underline;text-underline-offset:.2em;font-weight:400;margin-top:6px}
button:disabled{cursor:wait;opacity:.7}
.hint,footer{font-size:.83rem;line-height:1.55;color:var(--muted)}
.hint{margin-top:18px}
#login-password-hint,#password-hint{margin-top:9px}
.access-note{margin:24px 0 0;padding-top:21px;border-top:1px solid #dce3d5}
.contact{margin:8px 0 0}
.contact a,footer a{color:var(--teal);text-underline-offset:.2em;overflow-wrap:anywhere}
footer{max-width:600px;margin:0 auto;padding:23px 24px 32px;text-align:center}
input:focus-visible,button:focus-visible,a:focus-visible{outline:3px solid var(--focus);outline-offset:4px}
[hidden]{display:none!important}
@media(max-width:600px){
  .brand{padding:25px 22px 17px}
  .brand-lockup{gap:20px;max-width:380px}
  .brand-golden img{width:160px}
  .brand-divider{height:68px}
  .brand-masons{gap:6px;flex-direction:column}
  .brand-masons img{width:49px;height:49px}
  .brand-masons strong{font-size:.96rem}
  .auth-card{width:calc(100% - 28px);margin-top:10px;padding:27px 24px 23px;border-radius:20px}
  h1{font-size:1.95rem}
  #auth-status{padding:12px 13px}
}
@media(max-width:360px){.brand-lockup{gap:15px}.brand-masons strong{font-size:.88rem}.auth-card{padding-inline:20px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}
