function ObChrome({step,total=8,children,foot=true}){return
{step} of {total}
pausa.pt · hello@pausa.pt
{children}
{foot&&

Your fund never sees that you are here. We never sell your data. See privacy policy.

}
} function ObNav({back,next,ok,label='Continue'}){return
{back?Back:}{label}
} const PW_RULES=[['Minimum 12 characters',p=>p.length>=12],['At least 1 lowercase letter',p=>/[a-z]/.test(p)],['At least 1 uppercase letter',p=>/[A-Z]/.test(p)],['At least 1 number',p=>/\d/.test(p)],['At least 1 special character',p=>/[^A-Za-z0-9\s]/.test(p)],['No spaces',p=>p.length>0&&!/\s/.test(p)]]; function Signup({n}){const[s,set]=useStore();const step=Math.min(8,Math.max(1,+n||1)); const[route,setRoute]=useState(s.route||null);const[code,setCode]=useState('');const[fund,setFund]=useState('');const[fq,setFq]=useState('');const[co,setCo]=useState(''); const[email,setEmail]=useState(s.email||'');const[pw,setPw]=useState('Northlight2026');const[pw2,setPw2]=useState('');const[show,setShow]=useState(false); const[name,setName]=useState('');const[yr,setYr]=useState('');const[agree,setAgree]=useState(false); if(step===1)return

How do you have access?

This tells us who covers your sessions. Nothing more.

{['Through a fund that backs my company','Through my company','I have an invitation code'].map((o,i)=>)}
{set({route});go(route===2?'#/signup/2':route===0?'#/signup/3':'#/signup/4')}}/>

Already have an account? Log in

; if(step===2){const ok=/^[A-Z]{3,}-[A-Z0-9]{4}$/.test(code);return

Enter your access code.

Your fund sent this in the email introducing Pausa. It tells us which fund covers your sessions. It does not tell them that you used it.

setCode(e.target.value.toUpperCase().replace(/[^A-Z0-9-]/g,'').slice(0,14))} autoFocus/>
go('#/signup/4')}/>

No code? Use your work email instead.

} if(step===3){const opts=PD.FUNDS.filter(f=>f.toLowerCase().includes(fq.toLowerCase()));return

Which fund backs your company?

We check that your company is in their portfolio. That check happens on our side. Nothing is sent to the fund.

{setFund('');setFq(e.target.value)}}/>
{fq&&!fund&&
{opts.length?opts.slice(0,6).map(o=>):

Not listed yet. Use an invitation code, or tell us at hello@pausa.pt.

}
}
setCo(e.target.value)}/>
{set({fund,company:co});go('#/signup/4')}}/>
} if(step===4){const allOk=PW_RULES.every(([,f])=>f(pw));const ok=/\S+@\S+\.\S+/.test(email)&&allOk&&pw===pw2;return

Create your account.

Use any email you like. It does not need to be your work address.

setEmail(e.target.value)}/>
setPw(e.target.value)} style={{paddingRight:44}}/>
    {PW_RULES.map(([l,f])=>{const o=f(pw);return
  • {l}
  • })}
setPw2(e.target.value)}/>{pw2&&pw!==pw2&&Passwords do not match yet.}
{set({email});go('#/signup/5')}}/>
OR
} if(step===5)return

What should we call you?

First name is all we need. Your clinician will know it. Your fund will not.

setName(e.target.value)} autoFocus/>
{set({name:name.trim()});go('#/signup/6')}}/>
; if(step===6){const y=+yr;const full=yr.length===4;const age=2026-y;const under=full&&age<18;const ok=full&&age>=18&&age<110;return

What year were you born?

Only to confirm you are 18 or over.

setYr(e.target.value.replace(/\D/g,'').slice(0,4))}/>
{under&&
Pausa is built for founders aged 18 and over. If you need support now, SNS 24 on 808 24 24 24, option 4, is free and open 24 hours.
} go('#/signup/7')}/>
} if(step===7)return

What your fund sees, and what it never sees.

{[['lock','Your sessions are confidential.','Your clinician is bound by professional confidentiality under Ordem dos Psicólogos Portugueses rules. Pausa never receives session content.'],['users','Your fund sees numbers, never names.','Your fund receives usage totals once a quarter, and only when at least ten founders in their portfolio are using Pausa. Your name, your company, your bookings and your sessions are never part of that.'],['shield','Special-category data, handled accordingly.','What you tell us is health data under GDPR. We hold it on the legal basis set out in the privacy notice, in the EU, we use it to match you, and we do not sell it to anyone.']].map(([ic,h,p])=>

{h}

{p}

)} go('#/signup/8')}/>
; return

Verify your email.

Check your inbox for the verification link. We sent it to:

{s.email}

Wrong address? Change it.

Beta preview: open the link from the email

} Object.assign(window,{Signup,ObChrome});