Creative North Star: “The Engineer’s Kladde” — a Kladde is the German rough notebook an engineer keeps at the bench: dated, candid, drawn by hand, and trusted precisely because it is unpolished.
The site reads as a 30-year engineering journal laid out as a hand-drawn technical zine. Warmth and candor carry the authority: sharp hand lettering (Excalifont, the Excalidraw hand) over a cool paper-white ground with faint fiber grain, a hyperlegible humanist body face, and highlighter yellow/pink/teal swipes marking what matters. Panel borders wobble like marker strokes; the portrait is taped in with translucent tape; the AI-provenance disclosure is a drawn rubber stamp worn proudly, not fine print. There is no mascot — the portrait is the character.
The world explicitly refuses two defaults: the cream-serif “AI-editorial” look (the ground is cool white, never cream) and its terminal opposite (no tracked-out uppercase mono labels; mono is for code only). Dark mode is a night notebook: same drawn language, brightened accents, dark ink board.
Key Characteristics:
Two inks (teal and pink) and three highlighters on plain cool paper, brightening at night to hold contrast on the ink board. All pairings verified ≥ 4.5:1.
gray-* utility resolves to Tailwind neutral (no blue- or warm-tinted grays).The Ink-on-Highlighter Rule. Text sitting on a highlighter fill (#FFE34D, #FF6BAE, #00C7B7, active chips, marker buttons) is always dark ink (#17181A), in both light and dark mode. Highlighter fills never carry light text.
The Cool Paper Rule. The ground is cool paper white (#FCFCF9) with fiber grain — never cream, never warm beige, and never grid paper.
The Neutral-Ramp Rule. Secondary UI text (inactive chips, muted labels) draws from the cool neutral ramp (#404040 / #D4D4D4 and gray-600/gray-400 utilities), never from slate or warm grays.
Display Font: Excalifont (fallback: cursive) — vendored single-weight woff2, OFL-1.1 Body Font: Atkinson Hyperlegible Next (fallback: sans-serif) — via @fontsource Code Font: Fragment Mono (fallback: monospace) — via @fontsource Icon Font: Material Symbols Rounded — functional nav controls only (dropdown carets, mobile menu open/close, external-link markers); decorative glyph uses were removed and stay removed. Illustrative arrows and marks are hand-drawn inline SVG, never icon glyphs.
Character: Sharp technical hand lettering over a hyperlegible humanist body: the pairing of a person’s handwriting with text built to be read. Excalifont carries all headings, buttons, figcaptions, and drawn labels; Atkinson carries every paragraph.
.marker-underline or .marker-underline-pink span.max-w-2xl/max-w-3xl.The Single-Weight Hand Rule. Excalifont ships one weight (400). Display elements never request bold or medium; faux-bold synthesis is banned. Emphasis in display type comes from highlighter swipes and marker underlines, not weight.
The Mono-for-Code Rule. Fragment Mono appears only in code. No tracked-out uppercase mono labels, no eyebrows, no kickers anywhere.
A single centered column, max-w-6xl with px-4 sm:px-6 lg:px-8 gutters, inside a py-12 lg:py-16 main region. Sections separate with generous vertical space (mb-16 lg:mb-24) and drawn dividers: .rule-t/.rule-b wavy ink strokes or 2px dashed borders (border-dashed border-gray-300, dark border-gray-700).
Post cards sit in a 1 → 2 column grid (md:grid-cols-2, gap-8 / 2rem); the sketched TOC uses a 1 → 2 column grid with wide gap-x-12. The intro splits 7/5 on a 12-column grid at lg, with the taped portrait rotated 1° in the narrow column. Standard Tailwind breakpoints (sm 640, md 768, lg 1024). The homepage hero staggers in with .reveal steps (0.08s increments); listing pages lazy-load past 10 posts via /api/*.json.
Depth is drawn, not lit. Surfaces are flat panels with 2px ink borders; shadows appear only as a light pencil smudge responding to hover, paired with a -translate-y-0.5 lift on buttons and chips. The taped photo and dropdown panels carry the pencil shadow at rest to read as physical objects on the page.
2px 3px 10px -2px rgba(23, 24, 26, 0.18), shadow-pencil): the system’s one expressive shadow — hover state for cards, buttons, chips; resting state for the taped photo and nav dropdowns.0 4px 20px -2px rgba(23, 24, 26, 0.05)) and Card (0 10px 30px -5px rgba(23, 24, 26, 0.05)): faint ambient washes, sparingly used.0 1px 3px rgba(23, 24, 26, 0.10)): under tape strips only.0 10px 40px rgba(0, 0, 0, 0.5)): utility-chrome exception — the full-screen lightbox image only, floating over the 92%-black overlay. Not part of the drawn world; never reuse on page surfaces.The Pencil-on-Hover Rule. Panels are flat at rest. shadow-pencil plus a half-step lift is the hover response; no larger or colored shadows exist in this world.
The Already-Drawn Rule. Motion is a drawing gesture: the doodle arrow draws on via stroke-dashoffset (1.1s, cubic-bezier(0.22, 1, 0.36, 1)), hero elements reveal with a 14px rise. Under prefers-reduced-motion, every drawn element renders already drawn — complete, not hidden.
The form language is a marker-drawn box, expressed as the sketch-radius family: 2px ink borders with asymmetric radius pairs built from 255px/225px against a 15px counter-corner — 255px 15px 225px 15px / 15px 225px 15px 255px for .sketch-border and .marker-btn, mirrored (15px 225px 15px 255px / 255px 15px 225px 15px) for .sketch-border-alt, and a tighter 12px counter-corner variant (255px 12px 225px 12px / 12px 225px 12px 255px) for .filter-chip — so straight CSS corners read as hand wobble. Rules are wavy SVG strokes; secondary dividers are dashed. Number badges are irregular teal ink-edged blobs (.doodle-num), not circles. Highlighter marks are rough-edged SVG blob fills painted behind text with box-decoration-break: clone so multi-line swipes stay ragged.
Conventional radii survive in quiet chrome, on the Tailwind scale: chips 0.25rem, rounded-lg 0.5rem on dropdowns and mobile menu items, and the configured rounded 0.75rem / xl 1rem / 2xl 1.5rem / 3xl 2rem steps for softly rounded containers. Two pre-existing utility-chrome exceptions sit outside the zine system and are permitted but never extended: the scrollbar thumb (20px radius) and the lightbox image (4px radius). Arrows and icons drawn as inline SVG use curved, hand-wavering paths (stroke-linecap="round"); functional UI glyphs (menu, dropdown carets, external-link) use Material Symbols Rounded.
.marker-btn): highlighter-yellow fill, ink text, Excalifont text-sm, px-6 py-2.5.sketch-border-alt radii, same type and padding.shadow-pencil + -translate-y-0.5; disabled: 50% opacity.#, text-xs font-medium; hover deepens to full highlighter yellow..filter-chip): drawn ink boxes (12px-counter sketch radii) on the surface color with neutral Chip Text (#404040 light / #D4D4D4 dark); .is-active presses to highlighter yellow with ink text in both modes; hover shows the pencil shadow..sketch-border wobble radii, 2px ink border._includes/post.tailwind.html and the JS template in _includes/lazy-loading.html. Any card change must land in both.rgba(252,252,249,0.9) / dark rgba(22,24,28,0.9), backdrop-blur) with a wavy .rule-b bottom edge; wordmark in Excalifont at 1.3rem with a Stamp Pink terminal period.decoration-wavy decoration-primary decoration-2); the active page carries a .marker-underline teal stroke..marker-btn skip-to-content link as first focusable element.The AI-provenance disclosure (“This site is drawn with AI · checked by Jörn”) rendered as a hand-inked double-outline rubber stamp (.stamp): SVG stroke in Stamp Pink, rotated -2°, Excalifont text-xs. It is a brand feature displayed beneath the portrait, never shrunk into footer fine print.
The portrait sits in a white-mat frame (2px ink border, pencil shadow, slight rotation) with two translucent yellow tape strips (.tape-tl/.tape-tr, rotated ±38°, dashed edges) across the corners, a hand-lettered two-part figcaption, and a Stamp Pink doodle arrow annotation drawn toward it.
Pre-existing utility chrome, deliberately outside the drawn world. Lightbox: 92%-black overlay (rgba(10, 11, 12, 0.92)), image at 4px radius with the Lightbox shadow, 0.3s ease fade — it stays neutral so photographs read unstyled; do not zine-ify it, and do not copy its radius or shadow onto page surfaces. Scrollbar: slim 8px thumb, 20px radius, neutral #D4D4D4 light / #525252 dark.
.rule-t/.rule-b strokes, 2px dashed dividers, sketch-border boxes — never plain solid hairline rules for section structure..marker-underline / highlighter swipes; body emphasis uses Atkinson font-medium with text-primary.post.tailwind.html and the lazy-loading.html JS template when touching post cards..doodle-num blobs, arrows are hand-wavering SVG paths.