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.
| text | on paper #f7f3e8 | on green #72af43 | on orange #f5821f | on overprint #6e5908 |
|---|---|---|---|---|
| ink #14261a | 14.33 AAA | 6.00 AA | 6.12 AA | 2.34 FAIL |
| white #ffffff | 1.11 FAIL | 2.65 FAIL | 2.59 FAIL | 6.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.