Two specificity collisions, both invisible in the markup and both my fault
for styling with bare class selectors on a surface that typography.css owns
through #markdownBody:
#markdownBody :is(h1..h6) (1,0,1) beat .vita-entry-title (0,1,0)
#markdownBody p + p (1,0,2) beat .vita-role etc. (0,1,0)
So entry titles rendered at 1.45rem sans with 2.475rem heading margins
instead of 1rem serif — the "too much space" and the odd text sizes — and
every second paragraph in a card picked up the 1.5em essay prose indent,
which is the strange horizontal offset on the date lines.
now.css never hits either, because Now uses no heading elements inside its
cards and emits one paragraph per card. The vita keeps its headings, since a
record page wants a real document outline, and pays with specificity: every
rule is now #markdownBody-scoped, and card paragraphs reset text-indent
outright.
Also restructured onto the layout item-card.css already establishes: title
and date share a baseline with the date flush right, and role, location and
GPA collapse onto one line beneath it, instead of stacking title / role /
lone indented date. Dates moved from <time> to <span> — half of them are
"Fall 2024", "expected 2028" or "Present", which have no valid datetime
value, and a <time> without one is worse than none.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01SUGesXiMmACsLBTGG1xuEU