/* Sign-in page only. Self-contained: every other stylesheet on the site is behind the sign-in gate. */
:root { --g-paper:#f6f7f3; --g-surface:#fff; --g-ink:#202d28; --g-muted:#6a736b; --g-line:#e1e5dd; --g-green:#214d3c; --g-tint:#edf1e7; --g-sans:Inter,"Helvetica Neue",Arial,sans-serif; }
* { box-sizing:border-box; }
.gate-page { margin:0; background:var(--g-paper); color:var(--g-ink); font:14px/1.6 var(--g-sans); min-height:100vh; }

.gate-brand { display:flex; text-decoration:none; align-items:center; gap:10px; color:var(--g-green); font-weight:600; font-size:18px; }
.gate-card { background:var(--g-surface); border:1px solid var(--g-line); border-radius:14px; padding:28px; }
.gate-card h1 { margin:0 0 6px; font-size:22px; line-height:1.25; color:var(--g-green); }
.gate-card p { margin:0 0 12px; }
.gate-muted { color:var(--g-muted); }
.gate-notice, .gate-error { padding:10px 12px; border-radius:6px; font-size:13px; line-height:1.55; }
.gate-notice { background:var(--g-tint); color:#3a5430; }
.gate-error { background:#fbeeea; border:1px solid #efc9bd; color:#86301c; }
.gate-error[hidden] { display:none; }
.gate-form { display:grid; gap:14px; margin-top:14px; }
.gate-form label { display:grid; gap:6px; font-size:12px; color:#566449; }
.gate-form input { width:100%; border:1px solid #cfd9c2; border-radius:6px; background:#fff; padding:11px 12px; font:14px var(--g-sans); color:var(--g-ink); }
.gate-form input:focus-visible { border-color:#668d40; outline:2px solid #668d4033; }
.gate-hint { margin:0; color:#5f6c52; font-size:12px; line-height:1.5; }
.gate-button { display:inline-flex; align-items:center; justify-content:center; width:100%; min-height:42px; padding:11px 16px; border:1px solid transparent; border-radius:6px; background:var(--g-green); color:#fff; font:500 13px var(--g-sans); cursor:pointer; }
.gate-button:hover { background:#163e2d; }
.gate-button[disabled] { opacity:.65; cursor:progress; }
.gate-links { display:flex; flex-wrap:wrap; gap:4px 18px; margin:6px 0 0; font-size:13px; }
.gate-link { border:0; background:none; padding:6px 0; min-height:32px; color:#386326; text-decoration:underline; text-underline-offset:3px; cursor:pointer; font:inherit; }
.gate-noscript { max-width:440px; margin:24px auto; padding:0 16px; }
@media (prefers-reduced-motion:reduce) { * { transition:none !important; animation:none !important; } }
.gate-top { max-width:1080px; margin:0 auto; padding:22px 20px 0; display:flex; align-items:center; justify-content:space-between; }
.gate-skip { color:var(--g-green); font-size:13px; text-decoration:underline; text-underline-offset:3px; }
#gate-main { max-width:1080px; margin:0 auto; padding:0 20px 24px; }
.gate-hero { display:grid; grid-template-columns:minmax(0,1.15fr) minmax(0,420px); gap:48px; align-items:center; padding:56px 0 64px; }
.gate-kicker { margin:0 0 14px; font-size:11px; letter-spacing:.16em; text-transform:uppercase; color:var(--g-muted); }
.gate-headline { margin:0 0 18px; font-size:clamp(34px,5.4vw,56px); line-height:1.06; letter-spacing:-.02em; color:var(--g-green); font-weight:600; }
.gate-headline em { font-style:normal; color:#668d40; }
.gate-lede { margin:0 0 20px; font-size:17px; line-height:1.65; color:#3d4a43; max-width:54ch; }
.gate-points { margin:0; padding:0; list-style:none; display:grid; gap:8px; color:var(--g-ink); }
.gate-points li { padding-left:22px; position:relative; }
.gate-points li::before { content:""; position:absolute; left:2px; top:.62em; width:8px; height:8px; border-radius:50%; background:var(--g-green); }
.gate-card h2 { margin:0 0 6px; font-size:22px; line-height:1.25; color:var(--g-green); }
.gate-section { padding:44px 0; border-top:1px solid var(--g-line); }
.gate-section h2 { margin:0 0 8px; font-size:24px; line-height:1.25; color:var(--g-green); }
.gate-section p { margin:0 0 12px; max-width:62ch; }
.gate-section-lede { color:var(--g-muted); margin-bottom:22px !important; }
.gate-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:16px; }
.gate-subject { background:var(--g-surface); border:1px solid var(--g-line); border-radius:12px; padding:20px; }
.gate-subject h3 { margin:12px 0 8px; font-size:16px; color:var(--g-ink); }
.gate-subject p { margin:0; font-size:13px; color:#4d5a52; }
.gate-chip { display:inline-block; padding:2px 10px; border-radius:99px; font-size:11px; background:var(--g-tint); color:#3a5430; }
.gate-chip-soft { background:#f0f0ec; color:var(--g-muted); }
.gate-two { display:grid; grid-template-columns:1fr 1fr; gap:48px; }
.gate-section details { border-bottom:1px solid var(--g-line); padding:12px 0; }
.gate-section summary { cursor:pointer; font-weight:500; color:var(--g-ink); min-height:28px; }
.gate-section details p { margin:8px 0 0; color:#4d5a52; }
.gate-foot { max-width:1080px; margin:0 auto; padding:24px 20px 40px; color:var(--g-muted); font-size:12px; border-top:1px solid var(--g-line); }
@media (max-width:900px) { .gate-hero { grid-template-columns:1fr; gap:32px; padding:32px 0 40px; } .gate-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } .gate-two { grid-template-columns:1fr; gap:8px; } }
@media (max-width:560px) { .gate-grid { grid-template-columns:1fr; } .gate-card { padding:22px; } .gate-form input { font-size:16px; } }
.gate-prose { max-width:720px; padding-top:32px; }
.gate-prose h2 { margin:28px 0 8px; font-size:18px; color:var(--g-green); }
.gate-prose p, .gate-prose li { max-width:68ch; }
.gate-prose ul { padding-left:20px; }
.gate-h1-small { font-size:clamp(28px,4vw,38px); margin-bottom:8px; }
.gate-foot a { color:var(--g-green); }
.gate-form select { width:100%; border:1px solid #cfd9c2; border-radius:6px; background:#fff; padding:10px 12px; font:14px var(--g-sans); color:var(--g-ink); }
.gate-form select:focus-visible { border-color:#668d40; outline:2px solid #668d4033; }
.gate-fieldset { border:0; margin:0; padding:0; display:grid; gap:6px; font-size:12px; color:#566449; }
.gate-fieldset legend { padding:0; margin-bottom:4px; }
.gate-form .gate-choice { display:flex; align-items:center; gap:8px; font-size:14px; color:var(--g-ink); }
.gate-form .gate-choice input { width:auto; }
.gate-req { color:var(--g-muted); font-size:11px; }
.gate-notice[hidden] { display:none; }

/* Show / Peek buttons under password boxes (assets/gate/password-toggle.js) */
.pw-controls { display:flex; justify-content:flex-end; gap:6px; margin-top:-2px; }
.pw-toggle { border:1px solid #cfd9c2; border-radius:6px; background:#f6f8f1; color:#3f5a2a; font-family:inherit; font-weight:600; font-size:12px; line-height:1; padding:7px 10px; min-height:32px; cursor:pointer; }
.pw-toggle:hover { background:#edf2e3; }
.pw-toggle:focus-visible { outline:2px solid #668d40; outline-offset:2px; }
.pw-toggle[aria-pressed="true"] { background:#3f5a2a; border-color:#3f5a2a; color:#fff; }
