LUMEN
03FOUNDATIONS

Exacting type, human voice.

Three open-license families, each with one job. The grotesk carries the interface, the serif marks human moments, the mono measures. All are SIL OFL 1.1 and self-hosted, so no font request leaves the EU.

03.1

Families

DISPLAY + UI--font-sans
Aa
GeistHeadlines, UI, body and data labels. A precise grotesk with tight optical spacing at display sizes.
Light 300Regular 400Medium 500Semibold 600
ACCENT + PATIENT--font-serif
Aa
Instrument SerifOne accent word per headline, patient headings and pull quotes. Never used for body, UI or data.
Regular 400Italic 400
DATA + INDICES--font-mono
0.5
Geist MonoSection indices, units, citations, REF/lot codes, spec values and calibration labels.
Regular 400Medium 500
03.2

Fluid scale

Viewport 1440px · resize to see clamp()
Display XXL --text-display-xxl 56–148px · lh .94 · -.045em now 145px
Precision, made visible.
Display XL --text-display-xl 48–112px · lh .96 · -.04em now 109px
Evidence at a glance.
Display L --text-display-l 40–84px · lh 1 · -.035em now 80px
First case in 90 days.
Serif accent --font-serif · 1.08× 43–91px · lh .95 · -.02em now 86px
made visible.
H1 --text-h1 34–60px · lh 1.05 · -.03em now 60px
Robotic-assisted orthopedics
H2 --text-h2 28–44px · lh 1.1 · -.025em now 43px
Clinical outcomes
H3 --text-h3 22–32px · lh 1.2 · -.02em now 31px
Integration and service
H4 --text-h4 19–24px · lh 1.3 · -.01em now 22px
Acquisition models
Lead --text-lead 18–22px · lh 1.5 · 0 now 21px
Implants placed within 0.5 mm of plan, on average, across 412 patients.
Body · patient --text-body-patient 18px · lh 1.65 · 0 now 18px
Your surgeon plans the operation on a 3D model of your own knee.
Body --text-body 16px · lh 1.6 · 0 now 16px
CT-based planning with real-time gap balancing across TKA, UKA and THA.
Small --text-small 14px · lh 1.5 · 0 now 14px
Response within 1 business day · No commitment
Caption · mono --text-caption 12px · lh 1.4 · .08em now 12px
01 — Evidence · VEYRA-01 Study, 2025
03.3

Pairing by register

CLINICIAN · PRECISE Haptic boundaries at ±0.5 mm.

CT-based planning, 330 Hz optical tracking and real-time gap balancing across TKA, UKA and THA.

LEADERSHIP · OUTCOMES 18% more OR time, returned.

Shorter cases, shorter stays and a financing model that fits your capital cycle.

PATIENT · PLAIN LANGUAGE Your knee. Your plan. Your recovery.

Your surgeon plans the operation on a 3D model of your own knee before the day of surgery.

DoSet a single accent word in the serif, at 1.08–1.1× the grotesk size so optical heights match. Patient H1–H2 may be set fully in the serif.
Don'tDon't set data, buttons, labels or more than one phrase per heading in the serif. Don't use the mono for running text.
03.4

Numerals, units & statistics

TABULAR FIGURES
Mean deviation0.5 mm
Procedures, 202511,284
Resting heart rate72 bpm
OR time change−18.0%
Length of stay1.9 days
All data uses font-variant-numeric: tabular-nums, so columns and count-ups don't jitter.
✓WRITE✕NOT
0.5 mmSpace between value and unit
0.5mm
72 bpmUnits lowercase, as in SI
72BPM
18%Percent closed up (US)
18 %
95% CI 0.4–0.6En dash for ranges
95%CI: 0.4-0.6
p < 0.05Spaced operator, leading zero
p<.05
−18%True minus sign (U+2212)
-18%
n = 412Lowercase n for sample size
N=412
1,420 casesUS thousands separator
1.420 cases
03.5

Body & measure

HCP · 16 / 1.6 · MAX 68CH--text-body

ARC registers the patient's anatomy intraoperatively against the CT-based plan. During resection, the haptic boundary limits the saw blade to the planned volume, with real-time feedback on the console. Gap balancing data is recorded for every case and exported to the hospital's registry in HL7 FHIR format.

68ch
PATIENT · 18 / 1.65 · MAX 62CH--text-body-patient

Before your operation, you will have a CT scan of your knee. Your surgeon uses it to plan exactly where your new joint will go. On the day, a robotic arm helps your surgeon follow that plan. Your surgeon is in control the whole time.

62ch · grade 7 reading level
03.6

Self-hosting (GDPR)

@font-face {
  font-family: "Geist";
  src: url("/fonts/Geist[wght].woff2") format("woff2-variations");
  font-weight: 300 700;
  font-display: swap;            /* no invisible text; protects LCP */
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+2013-2014, U+2212, U+00B1;
}
/* Preload only Geist Regular + Medium. Serif and mono load on demand. */
Next up: the grid, spacing and surfaces these styles sit on.