v3.25.2
Stock Option Plan - Narrative (Details) - USD ($)
$ / shares in Units, $ in Millions
6 Months Ended
Jun. 30, 2025
Jun. 30, 2024
Jan. 01, 2025
Dec. 31, 2024
Share-based Compensation Arrangement by Share-based Payment Award [Line Items]        
Granted (in shares) 169,570 55,500    
Exercise of stock options (in shares) 108      
Shares were issued under the ESPP (in shares) 80,554      
Stock options        
Share-based Compensation Arrangement by Share-based Payment Award [Line Items]        
Stock options, unrecognized compensation cost $ 0.6      
Stock options, cost not yet recognized, remaining weighted average vesting period 2 years 8 months 12 days      
Stock options | 2019 Incentive Award Plan        
Share-based Compensation Arrangement by Share-based Payment Award [Line Items]        
Stock options, expiration period 10 years      
Stock options, vesting period 4 years      
Increase (decrease) in number of shares authorized (in shares)     705,613  
Employee stock purchase plan        
Share-based Compensation Arrangement by Share-based Payment Award [Line Items]        
Shares authorized, percentage 1.00%      
Increase (decrease) in number of shares authorized (in shares)     176,403  
Common stock reserved for future issuance (in shares) 619,593      
Maximum employee payroll deduction percentage 20.00%      
Employee stock purchase plan | 2019 Incentive Award Plan        
Share-based Compensation Arrangement by Share-based Payment Award [Line Items]        
Shares authorized, percentage 4.00%      
Common Shares Available For Grant Under The 2019 Plan        
Share-based Compensation Arrangement by Share-based Payment Award [Line Items]        
Common stock reserved for future issuance (in shares) 2,533,057      
Restricted stock units        
Share-based Compensation Arrangement by Share-based Payment Award [Line Items]        
Unvested shares outstanding (in shares) 1,679,624     1,710,373
Aggregate intrinsic value, vested $ 1.3 $ 0.5    
Awards granted (in dollars per share) $ 3.97 $ 1.89    
Stock options, unrecognized compensation cost $ 4.1      
Stock options, cost not yet recognized, remaining weighted average vesting period 2 years 9 months 18 days