Doctor Reid · brand & style guide · v3.0 · September 2026

The Specimen design system.

How doctorreid.com looks, sounds and behaves — the tokens, the type, the components and the rules — so every new page, post, PDF or slide reads as one lab. This page is the living reference; the PDF is a snapshot.

Download the PDFdr.css — the shared stylesheetWordmark · wideWordmark · tall

01

The idea: a research lab for the mind.

Doctor Reid is not a clinic website and not a personal brand page. It is a lab notebook turned inside out — a place where a psychiatrist who reads too many papers puts the instruments, the training, the references and the trials in public, for free. The design should feel like a bright, well-kept laboratory on a good morning: clean paper, cool sky light, a little warm sienna ink, and one acid-yellow highlighter.

Three wings organize everything: Tools (measure & train), Blog (field notes & the library) and Discover (trials, podcast, papers). If a new thing doesn't fit a wing, it probably doesn't belong on the site.

The feelingCalm, precise, warm, a little playful. Glass over paper. Serif for ideas, sans for reading, mono for labels and citations.
Not the feelingClinical white-and-blue, wellness pastels, dark-mode neon, stock photos of brains, stethoscopes, or hands holding a pill.
02

Voice & the house rule.

The house rule: every claim cites its source — or says "we don't know yet." It appears in the hero, in the gauge widget, on every results page, and it governs copy everywhere. A number without a source is not allowed on this site. If it can't be cited, it gets phrased qualitatively or cut.

How Reid sounds

  • A friend who reads too many papers. Plain words first, the technical term second, the citation third.
  • Honest about uncertainty. "The evidence is strong here" and "this is where the physiology runs out" are both house phrases.
  • Warm, never saccharine. On results pages the reader may be scared; lead with support, then the score, then what it means, then what to do.
  • Lightly self-deprecating. "The specimen most frequently tested here." "Rounded down for humility." One joke per screen, never on a crisis message.
  • No hype, no fear. Psychedelics, ketamine and GLP-1s are described as drugs with dose-response curves, not miracles or menaces.
Do"A score of 10 or higher is the most common cutoff for possible major depression — at that threshold the PHQ-9 catches about 88% of cases."
Don't"Your results indicate you may be suffering from clinical depression. Seek help immediately."
03

The wordmark.

The "Doctor Reid" mark is Reid's own handwriting. It ships as two transparent PNGs (wide and tall) and is always applied as a CSS mask, so it can be tinted any token color without ever being redrawn, traced, or converted to a font.

UseFileTintSize
Nav (all pages)wideInk · sienna on hover190×32 desktop · 150×26 mobile
FooterwideSub140×24
Signature (about, PI's note)tallSienna180–200 wide
Blog-post top barwideInk120×20
Print / PDF / slideseitherInk or siennaNever below 90 px wide
.wm{display:inline-block;background-color:var(--ink);
  -webkit-mask:url("/assets/wm_wide.png") no-repeat center / contain;
  mask:url("/assets/wm_wide.png") no-repeat center / contain}
.wm.tall{-webkit-mask-image:url("/assets/wm_tall.png");mask-image:url("/assets/wm_tall.png")}
DoTint with ink, paper, sienna or sub. Keep clear space of at least the x-height of the "D" around it. Pair with the mono kicker "a research lab for the mind".
Don'tStretch, outline, add a drop shadow, put it in a box, set it in a typeface, rotate it, use acid yellow as the tint on paper (fails contrast), or place it over the photo.
04

Color.

Warm paper, cool sky, one sienna accent and one acid highlight. Ink does the heavy lifting; sienna is for the things you can click; acid is the highlighter you use twice a page. Everything is exposed as CSS custom properties in dr.css.

Core palette

Ink#231A12Text, dark surfaces, primary buttons
Ink 2#4C4238Body copy on light surfaces
Sub#6E6157Secondary text, kickers, labels
Sub 2#9A8E80Tertiary text, dates, footnotes
Paper#F5F1E4Page mid-tone · text on ink
Paper 2#F1E7D2Page base (bottom of gradient)
Sky#EAF0F4Page top (top of gradient)
Sienna#8C4D2EThe accent: links, arrows, hover, signature
Acid#EAED78Highlight: underlines, selection, primary CTA on ink
Mist#B3C3D0Cool tint: blobs, gauges, data
Green#3E9B5FLive/positive: enrolling dot, progress
Tan#E7CDB8Warm blob tint

Page background

The page is never flat: linear-gradient(180deg, Sky 0%, Paper 40%, Paper 2 100%) plus three fixed blurred blobs (mist, pale acid, tan) at 55% opacity, filter: blur(70px). Glass cards read against it; solid white cards do not (use rgba(255,255,255,.62), never #fff, for surfaces).

Severity bands (screeners only)

Bands carry meaning, so they are the one place saturated color appears. Each band has an ink and a tint; the ink is used for text and the dot, the tint for the pill background and range-bar segment.

Band · green#3E9B5F · #E4F1E8Minimal / negative screen
Band · amber#B98A2A · #F7EDCFMild
Band · orange#C9784E · #F6E1D2Moderate
Band · red#A83A2E · #F3D6D1Severe / positive screen
Band · blue#4A6E9B · #DDE7F2Informational (personality, tasks)
Band · purple#6E4E9B · #E6DEF2Experience scales (MEQ, CEQ)
MinimalMildModerateSevereCompleteModerate challenge
ContrastInk on paper 13:1 · Sub on paper 5.1:1 · Sienna on paper 6.2:1 · Paper on ink 13:1. All body text passes AA; sub-2 is for non-essential metadata only.
NeverAcid as text color on paper. Green as a link color (it means "live"). Red anywhere except a severe band or a crisis block.
05

Typography.

Three families from Google Fonts, loaded once in the head of every page. Fraunces carries the ideas (display, headings, big numbers, italic emphasis at weight 300). Instrument Sans carries the reading. JetBrains Mono, small and uppercase with wide tracking, carries labels, kickers, citations, dates and anything that should feel like a specimen tag.

h1 · Fraunces 400 · opsz 144 · clamp(2.5rem, 6.2vw, 4.8rem) · lh 1.04 · ls −.02em

Inner space, under the microscope.

h2 · Fraunces 400 · clamp(1.9rem, 4.2vw, 3rem)

The lab has three wings.

h3 · Fraunces 600 · 1.35–1.8rem

Measure

h4 · Fraunces 600 · 1.2–1.4rem · card titles

Why placebo keeps beating our best antidepressants

score · Fraunces 600 · 4.2rem · ls −.04em18 out of 27
body · Instrument Sans 400 · 17px · lh 1.55Free, evidence-based tools to help you understand yourself, ease mental and emotional suffering, and learn to thrive.
lede · Instrument Sans 400 · 1.1rem · ink-2 · max 60chEvery claim cites its source — or says "we don't know yet."
kicker · JetBrains Mono 400 · .64rem · ls .12em · uppercase · subDoctor Reid · a research lab for the mind · Orem, Utah
chip / source · Mono · .56–.6rem · pill borderBerman 2000 · Zarate 2006 psychedelics

Italic Fraunces at weight 300 is the emphasis device — one italic phrase per heading, never a whole heading. Bold in body copy is Instrument Sans 600; never bold a serif heading further. Numbers in running text use the sans; numbers that are the point (scores, counts, years in a fact tile) use Fraunces 600.

<link href="https://fonts.googleapis.com/css2?family=Fraunces:ital,opsz,wght@0,9..144,300;0,9..144,400;0,9..144,600;1,9..144,300;1,9..144,400;1,9..144,600&family=Instrument+Sans:ital,wght@0,400;0,500;0,600;1,400&family=JetBrains+Mono:wght@400;500&display=swap" rel="stylesheet">
06

Surfaces & depth.

Two surfaces only. Glassrgba(255,255,255,.62) fill, rgba(255,255,255,.85) 1px border, backdrop-filter: blur(12–14px), radius 20–28px, shadow 0 18px 40px −18px rgba(35,26,18,.30). Ink — solid #231A12, paper text, an acid radial glow in the top-right corner, radius 28px, used once per page for the one thing you most want clicked.

Glass card

Everything sits on this.

Radius 20 · blur 12 · border .85 white

Ink surface

One per page. Make it count.

Acid glow top-right, paper text.

TokenValueUsed for
--r-sm12pxinputs, notes, small callouts
--r20pxcards, widgets, question blocks
--r-lg26pxwings, result box
--r-xl28pxink surfaces, photo bottom corners
--r-pill999pxbuttons, chips, bands, options
--shadow0 18px 40px −18px rgba(35,26,18,.30)resting cards
--shadow-lg0 30px 60px −25px rgba(35,26,18,.45)ink surfaces, modals, the photo
--hair / --hair-2rgba(35,26,18,.10 / .18)dividers, borders on pale surfaces
07

Components.

Pills (buttons & nav)

One dark pill per screen (the primary action). Acid pill only on an ink surface. Sienna pill only for crisis/urgent actions. Hover lifts 1px; dark pills turn sienna on hover.

Chips, kickers, links

Kicker · Section labelsource chipselected🔗 linkUnderlined link →Mono label

Links inside prose are .ulink: ink text, 2px acid underline, sienna on hover. Arrows are the → character, never an icon font. "🔗 link" chips copy a deep link to the section.

Rows (the wing lists)

Name left, plain-language descriptor right in sub color. Coming-soon items sit at 55% opacity and gain a sienna "· soon" suffix automatically.

Cards & widgets

A card is glass with a mono kicker, a serif h4, a sans paragraph and a sienna "→" line pinned to the bottom. A widget (homepage) is a 216px glass card that floats (6–7s ease, ±10px), always links somewhere real, and shows only a real, cited fact: title row with a white icon tile, the visual (gauge, bars, line, list), a source chip, a sienna "go" line.

Forms

Not at allSeveral daysMore than half the days

Inputs are .field: translucent white, hairline border, sienna focus ring, 12px radius. Answer options are pills; the selected option inverts to ink.

Callouts

Author's note. Acid tint — used for scale intros and Reid's asides.
Info tint — used for "shared result" notices.
Crisis block. Red tint, always above the score, always with 988 and 911.
08

Screener results.

The results page is the most important screen on the site and follows a fixed order, top to bottom. Nothing may be inserted above the crisis block.

  1. Head — kicker "PHQ-9 results", serif h2 "Your PHQ-9 results", privacy line.
  2. Crisis block (only if the scale has a crisis item and it was answered above 0) — red tint, 988 / 911 pills.
  3. Score card — band pill · instrument name · big Fraunces score "out of N" · range bar with the reader's marker · interpretation paragraph · clinical note · action row (Copy results link · Print / save PDF · Email · Retake · Try another · Send a friend a blank X) · save-to-account prompt.
  4. Takeaway cards — "What this means" (acid dot) and "What to do next" (green dot, numbered).
  5. Review your answers — collapsed accordion; crisis item answer shown in red.
  6. About the scale & how scoring works — collapsed: about, scoring, ranges table, check-a-score box, worth knowing, citation.
  7. Important — please read — the four fixed disclaimers.
ModerateGeneralized Anxiety Disorder scale
12out of 21
0–4Minimal5–9Mild10–14Moderate15–21Severe

Range-bar segment widths are proportional to the band's share of the score range. The marker is ink with a white ring. Band labels use the instrument's own words ("Moderately severe", "Probable PTSD", "Screen positive"), never invented ones.

Content lives in two objects in screeners/index.html: SCALE_META[id] (bands, about, scoring, worthKnowing, citation, crisisItem) and RESULT_INFO[id_style] (what, next[]). Every scale has a _default entry. Adding a scale means adding both.

09

Layout & motion.

TokenValueNotes
--wrap1220pxhomepage, blog grid, podcast, tools
--narrow820pxscreeners app, long reading
--gutter1.4remside padding at every width
Breakpoints1020 · 980 · 900 · 760 · 700 · 600widgets stack ≤1020 · wings stack ≤980 · nav collapses ≤900 · about stacks ≤760
Section rhythm3.6rem top · 1.6rem below heading.shead centered serif h2 + sub paragraph ≤52ch

Motion is quiet. Sections reveal on scroll (16px rise, .6s ease, once). Homepage widgets float ±10px over 6–7s. Cards lift 4px on hover, pills 1px. The "now enrolling" dot pulses. Everything respects prefers-reduced-motion, which disables reveal and float entirely. No parallax, no scroll-jacking, no autoplay.

10

Imagery.

One photograph of Reid (the seated studio portrait, reid_web.jpg, 880×1329) is the site's only photo. It is cropped into the archborder-radius: 180px 180px 28px 28px — with a soft white halo behind it and the long shadow. The 300×300 crop (face.jpg) exists for avatars and social cards only. Data visuals are drawn in CSS/SVG in the palette (gauge, bars, line); illustrations, if any, are line-based and single-color sienna. Emoji are allowed as small icon tiles (white 22–36px rounded squares) but never inline in headings.

DoArch crop · halo · palette-tinted SVG charts · white icon tiles · the wordmark as the signature.
Don'tStock photos · brain illustrations · gradients other than the page gradient · duotone treatments of the portrait · AI-generated "lab" imagery.
11

Writing patterns.

ElementPatternExample
Page kickerWing · what this is · optional place"Wing 01 · Tools" · "Discover · the podcast · since 2021"
Page h1Plain statement, one italic turn"Measure it. Then train it." · "I'm Reid. This is the lab."
Section h2Sentence case, ends with a period, italic tail"Field notes, fresh from the bench."
Card kickerWing · topic"Understand · placebo" · "Train · tummo"
Row descriptorlowercase · what · time"depression · 2 min" · "yogi claims, graded"
Go lineVerb + object + →"Take a screener →" · "Open the wiki →"
Source chipAuthor Year · Author Year"Zeidan 2010 · Jha 2007"
Coming soonNever "coming soon!" in copy — use the .soon row or the ink "On the bench" band"ROCS · the 7-item OCD screen · soon"
DisclaimerMono, uppercase, centered, one line"Educational only · not a diagnosis · crisis: call or text 988"

Spelling: American. Oxford comma. "eating disorder" (no hyphen as a noun), "eating-disorder science" (hyphen as a modifier). "Psychedelic-assisted therapy". Numbers: numerals for scores, counts and minutes ("2 min", "30 instruments"); words for anything under ten in prose. Dates in mono as "Sep 2026".

12

Site map & files.

RoutePageBuilt from
/Homepage — hero, widgets, three wings, field notes, enroll band, PI's note, sourcesbuild/home.py
/tools/Measure & Train hubbuild/tools.py
/screeners/ · #phq9 · #anxious · #history · ?r=…The instruments app (Supabase auth)edit screeners/index.html directly
/blog/ · /blog/<slug>/Field notes index and postsbuild/add_post.pyblog.py
/podcast/Psychedelic Therapy Frontiers archive (live RSS)build/podcast.py
/cv/The CV Library (its own design system, intentionally)standalone
/about/ · /style-guide/ · /404.htmlAbout, this guide, not-foundbuild/about.py · build/styleguide.py
/assets/dr.css · wm_wide.png · wm_tall.png · reid_web.jpg · face.jpg · favicon.svg · this guide as PDFshared by every page

Deploy: drag the site_v3 folder onto Netlify (Deploys → drag & drop). _headers sets no-cache on HTML and a day of cache on assets; _redirects forwards the retired /resources to /blog/. The domain stays pointed at Netlify from Squarespace DNS.

Adding a page: copy the head from build/common.py (fonts + /assets/dr.css), use nav() and FOOTER, write page-specific CSS in the page's own <style>, keep tokens from dr.css. Adding a blog post: python3 build/add_post.py post.html --slug my-post --tag "Understand · topic" --wing understand.