Silkscreen · Build Notes Guide · not indexed

Printed, not lit

The eighteenth entry in this portfolio is a screenprinted event poster for Save The Frogs Day 2027 — the 19th Annual, Wednesday, April 28th, 2027. It exists to occupy a register none of the other seventeen entries touches: light, saturated, tactile, printed. No dark ground, no shader, no particle field, no scroll-jacking. The set-piece is overprint — where two inks cross they multiply into a third colour, exactly as silkscreen ink does — and it is CSS mix-blend-mode: multiply, not WebGL.

Why this direction

Thirteen of the portfolio’s seventeen pages sit on a dark or paper-neutral ground, across four registers: dark cinematic, broadsheet, editorial journal, and migration surfaces. Every one of them is serious; nothing is loud. The standing mandate is that each new showcase page demonstrates a completely different style, so this one fills the gap a poster prospect would look for — a festival page, a campaign launch, a kids-and-teachers surface.

The visual reference came from the two fable-25 categories this portfolio had never drawn from — Typography, and Retro & play. Two guides were read for structure and nerve, not palette: Frequency Fest (a festival page whose chaos snaps to an invisible grid, with hierarchy earned through size in a single heavy face) and Raw Matter (a brutalist zine whose print devices — paper grain, halftone, heavy rules, rotated stamps — are all zero-image CSS). What survived the trip: an invisible grid under everything loud, one display face doing all the shouting, curated rotation angles rather than random ones, and paper grain drawn with a repeating-linear-gradient instead of an image.

The palette is measured, and it inverts

Four inks and a paper. The green and orange are the organization’s brand colours, used raw for shapes only; the overprint is derived, not chosen — a per-channel multiply of its two parents (0x72×0xf5/0xff = 109.53 → 0x6e, 0xaf×0x82/0xff = 0x59, 0x43×0x1f/0xff = 0x08#6e5908), declared once in the token block with the derivation in a comment so it cannot drift. Each channel is rounded, not truncated, because that is what the compositor does: the first build of this page truncated the red channel and printed #6d5908, one step away from the colour the browser actually paints.

texton paper #f7f3e8on green #72af43on orange #f5821fon overprint #6e5908
ink #14261a14.33 AAA6.00 AA6.12 AA2.34 FAIL
white #ffffff1.11 FAIL2.65 FAIL2.59 FAIL6.78 AA

Read the last column twice: on paper, green and orange the rule is dark ink only, white never; on the overprint the rule reverses. The overprint is the only ground on the page that takes a white label, and the only ground that refuses the ink. That is why the ordinal stamp — the page’s one white-on-colour moment — lives there, and why every text element sits on a ground somebody chose. Two darker mixes exist for brand-hued text on paper: green→#3f6b1f (5.68 AA, the headings) and orange→#8a4b0f (6.12 AA, the links and the date). Both are the minimum darkening that clears AA.

The overprint is real

Both overprint sites are genuine multiplies, not painted approximations. The frog is two ink layers in one inline SVG — an orange sun laid down first, a green frog group printed over it with mix-blend-mode: multiply, then orange spots multiplied again on top — wrapped in isolation: isolate so each ink stays raw where it sits alone on the paper and multiplies only where inks actually cross. The eye is a knockout: unprinted paper with an ink pupil, exactly as a screenprinter would leave it.

The ordinal stamp is the same mechanics with load-bearing geometry: each ink spans 90% of the stamp’s width, so the middle 80% is overprint, and the white label’s 2.4em side padding puts its text a real margin inside that zone at every size. The first draft used 85% spans, and at 390px the label’s first character came within 2px of the raw green — a fallback font’s wider metrics would have pushed white text onto a 2.65:1 ground. The 90% geometry makes the margin structural (~0.85em) instead of lucky.

Type

Anton (400) does all the shouting — the largest headline in the portfolio, height-capped so the whole sheet fits one viewport — and Archivo (400/700) does everything else. Two families, three weights, self-hosted latin subsets with the licence read out of the shipped binaries into OFL.txt. The build’s first display choice, Alfa Slab One, was rejected at that step: its binary declares the Reserved Font Name “Alfa Slab”, and a latin subset is a Modified Version under OFL-FAQ 2.6, so it could not compliantly ship under its own name. Anton declares no RFN. Body prose is 1.25rem on a 1.1875rem floor; nothing on either page sits below 1.0625rem.

Motion: 400ms, once

Real screenprinting prints one ink at a time, and the sheet has to be in register. That is the page’s entire motion budget: on load the ink layers arrive a few pixels out of register and snap into alignment — 400ms, once, never again. The headline’s snap is a text-shadow ghost landing at zero, so no text is duplicated. The in-register state is the default: every keyframe lives inside @media (prefers-reduced-motion: no-preference), so under reduced motion the page simply renders finished rather than animating faster. Prose never animates — the family invariant holds here as everywhere in this repo. The registration crosshairs in the sheet corners are aria-hidden decoration.

The facts are authored

The subject is real — six portfolio entries are invented companies; this one is not — so every stated fact is verified against the live source of savethefrogs.com/day (fetched 2026-08-26) and recorded in an authored table at briefs/silkscreen-facts.json, which the verify:silkscreen gate reads. The date, the Wednesday, the 19th Annual, the 2009 founding (41 events, 16 countries), the “over 1,700 events” and “60+ countries” figures and the action URLs all trace to source sentences quoted in that file. One sentence was caught and replaced during the build: an unverified “most endangered group of animals” claim gave way to the organization’s own homepage sentence about frog population decline. A number this page cannot point at does not appear on it.

Relationship to /signpost/day/

Said once: the Signpost page is a migration of the existing WordPress /day/ page and stays exactly as it is. This is a new showcase surface at a different slug in a different family. It does not replace, redirect to, or substitute for the Signpost page; both link out to savethefrogs.com/day.

Notes for the gate session

Four things the clauses should know. One: the frog is an inline SVG with role="img" and a written aria-label, not an <img> — the page has zero <img> elements, so clause 4 must not be allowed to pass vacuously; assert the SVG’s accessible name instead. Two: the colour-literal clause should scope to silkscreen.css plus any style attributes — the favicon data-URIs in both heads necessarily carry palette hexes, and the CSS keywords transparent and currentColor appear by design. Three: the facts table is briefs/silkscreen-facts.json; the countries figure legitimately appears as both “60+” and “more than 60”, per the source’s own two phrasings. Four: og.jpg is a 1200×630 screenshot of the sheet — if the sheet changes, re-shoot it.