.join-intro{padding-block:64px 32px;max-width:800px}
.join-intro h2{margin-bottom:24px}
.join-intro>p:last-child{font-size:1.125rem;color:var(--muted);max-width:680px}
.join-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px;margin-bottom:40px}
.join-option{border-top:2px solid var(--green);padding:28px 0;display:flex;flex-direction:column;align-items:flex-start;gap:20px}
.join-option h3{font-family:var(--serif);font-weight:400;font-size:2rem;line-height:1.2;color:var(--green)}
.join-option p{max-width:540px;color:var(--muted)}
.join-option .button{margin-top:auto;border:1px solid var(--green);cursor:pointer;min-height:48px;border-radius:3px}
.join-help{border-top:1px solid var(--line);padding-block:24px 56px;max-width:760px}
.join-help a,.join-dialog a{text-decoration:underline;text-underline-offset:.18em;overflow-wrap:anywhere}
.join-dialog{width:min(720px,calc(100% - 48px));max-height:calc(100dvh - 48px);border:1px solid var(--line);padding:0;background:var(--paper);color:var(--ink);border-radius:6px;overscroll-behavior:contain}
.join-dialog::backdrop{background:#102a2480}
.join-dialog-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:28px 32px 16px;background:var(--paper)}
.join-dialog h2{font-size:2rem;letter-spacing:-.03em;line-height:1.15}
.join-close{flex:0 0 44px;width:44px;min-height:44px;border:1px solid var(--line);background:var(--paper);color:var(--green);cursor:pointer;font-size:1.7rem;line-height:1}
.join-form{padding:0 32px 32px}
.join-form>p{margin-bottom:24px}
.join-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}
.join-field{min-width:0;display:flex;flex-direction:column;gap:6px;font-size:.9375rem;font-weight:600}
.join-wide{grid-column:1/-1}
.join-field input,.join-field textarea{width:100%;min-width:0;font:inherit;font-size:1rem;font-weight:400;line-height:1.5;color:var(--ink);border:1px solid #819187;border-radius:3px;background:var(--paper);padding:12px}
.join-field textarea{min-height:144px;resize:vertical}
.join-field input:focus-visible,.join-field textarea:focus-visible,.join-check input:focus-visible{outline:3px solid #b36914;outline-offset:3px}
.join-field small{font-weight:400;color:var(--muted)}
.join-privacy{font-size:.875rem;line-height:1.65;color:var(--muted);margin-top:24px}
.join-check{display:flex;align-items:flex-start;gap:10px;font-size:.9375rem;margin-block:20px;cursor:pointer}
.join-check input{width:20px;height:20px;margin-top:3px;flex:0 0 20px;accent-color:var(--green)}
.join-submit{border:1px solid var(--green);cursor:pointer;border-radius:3px;min-height:48px}
.join-submit:disabled{opacity:.55;cursor:not-allowed;transform:none}
.join-status{margin-top:16px;font-size:.9375rem;line-height:1.65;overflow-wrap:anywhere}
.join-status[data-error=true]{color:#943a25}
.join-trap{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}
.join-security{margin-block:16px;min-height:1px}
body.join-modal-open{overflow:hidden}
@media(max-width:760px){
 .join-intro{padding-block:40px 24px}
 .join-intro>p:last-child{font-size:1rem}
 .join-options{grid-template-columns:1fr;gap:8px;margin-bottom:16px}
 .join-option{padding-block:24px}
 .join-option h3{font-size:1.75rem}
 .join-option .button{width:100%;justify-content:center}
 .join-dialog{inset:0;width:100%;max-width:none;height:100dvh;max-height:none;margin:0;border:0;border-radius:0}
 .join-dialog-head{padding:calc(20px + env(safe-area-inset-top)) 20px 16px}
 .join-dialog h2{font-size:1.7rem}
 .join-form{padding:0 20px calc(32px + env(safe-area-inset-bottom))}
 .join-fields{grid-template-columns:1fr;gap:18px}
 .join-submit{width:100%;justify-content:center}
}
@media(prefers-reduced-motion:reduce){.join-option .button,.join-submit{transition:none}}

/* Two equal choices stay together, including on small screens. */
.join-intro{padding-block:32px 24px;max-width:760px}
.join-intro h2{font-size:var(--title-size);letter-spacing:-.025em;margin-bottom:12px}
.join-intro>p:last-child{font-size:1rem;line-height:1.65}
.join-options{gap:20px;margin-bottom:24px;align-items:stretch}
.join-option{border:1px solid var(--line);border-top:3px solid var(--green);border-radius:6px;background:linear-gradient(145deg,#f1f6f2,#fff 75%);padding:24px;gap:14px;min-width:0}
.join-option h3{font-size:1.5rem;line-height:1.3;letter-spacing:-.015em}
.join-option p{font-size:.9375rem;line-height:1.65}
.join-option .button{width:100%;justify-content:center;padding:12px 16px;font-size:.9375rem;line-height:1.4;min-height:46px}
.join-help{padding-block:20px 36px;font-size:.875rem;line-height:1.65}
.join-dialog h2{font-size:1.5rem;line-height:1.3;letter-spacing:-.015em}
.join-dialog-head{padding:22px 28px 16px;align-items:center}
.join-form{padding:0 28px 28px}
.join-form>p{font-size:.9375rem;line-height:1.65;margin-bottom:20px}
.join-field{font-size:.875rem;line-height:1.5}
.join-field small{font-size:.8125rem;line-height:1.5}
.join-fields{gap:16px}
.join-field textarea{min-height:120px}
.join-status:not(:empty){padding:12px 14px;background:var(--green-light);border-radius:4px}
.join-status[data-error=true]:not(:empty){background:#fbefeb}
@media(max-width:760px){
 .join-intro{padding-block:18px 18px}
 .join-intro .eyebrow{font-size:.6875rem;margin-bottom:8px}
 .join-intro>p:last-child{font-size:.9375rem}
 .join-options{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-bottom:18px}
 .join-option{padding:16px 12px;gap:12px}
 .join-option h3{font-size:1.125rem;line-height:1.3;min-height:2.6em}
 .join-option p{font-size:.875rem;line-height:1.5}
 .join-option .button{font-size:.8125rem;padding:10px 8px;min-height:60px;line-height:1.35;gap:0}
 .join-help{font-size:.8125rem;padding-block:16px 28px}
 .join-dialog-head{padding:calc(16px + env(safe-area-inset-top)) 20px 14px}
 .join-dialog h2{font-size:1.25rem}
 .join-form{padding:0 20px calc(24px + env(safe-area-inset-bottom))}
 .join-form>p{font-size:.875rem}
 .join-fields{gap:16px}
}

/* Same paragraph alignment on phone, tablet and desktop. */
.join-intro>p:not(.eyebrow),.join-option p,.join-help,.join-form>p{
 text-align:justify;text-align-last:start;hyphens:auto;-webkit-hyphens:auto;overflow-wrap:break-word;
}
