Rendering the pack to PDF to print it showed the GM filing slug printed on top of the first line of three of the four sheets — both almanac tables and the minute's "Copy 3 of 4" line. The cause is one declaration. .slug is position:absolute at top:6mm, and what kept sheet content clear of it was .sheet's 18mm screen padding. The print block then said padding: 0, so in print — and only in print — content started at the very top and ran under the slug. On screen the pack looked perfect, which is why it survived being built, checked and shipped. Fixed by keeping a top padding in print: padding: 11mm 0 0. Side and bottom margins still come from @page, so nothing else moves. check-handouts could not see this and is not at fault for it: it holds the pack's STRUCTURE — the two almanac sheets sharing one class and one set of columns, every line reading 41 mi, nothing under 11pt — and a collision between an absolutely positioned element and the flow is a property of the rendering, not the markup. It took rendering the file and looking at the pages. The almanac trick itself is unaffected and was verified in the PDF: H03a and H03b print identically but for their dates and their counts, forty-one against fifty-three. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
378 lines
17 KiB
HTML
378 lines
17 KiB
HTML
<!DOCTYPE html>
|
|
<html lang="en-GB">
|
|
<head>
|
|
<meta charset="utf-8">
|
|
<title>CLEAN GROUND — handout pack</title>
|
|
<style>
|
|
/* ─────────────────────────────────────────────────────────────────────────
|
|
CLEAN GROUND — print-ready handout pack. A4, four sheets, one per page.
|
|
|
|
Print from a browser with BACKGROUND GRAPHICS ON, scale 100%, margins
|
|
"default". The cream of H02 and the ruled paper of H03 are backgrounds; with
|
|
them off, H02 prints on white and the almanac loses its rules, which does not
|
|
destroy either handout but does cost most of the effect.
|
|
|
|
THE ONE RULE THIS FILE EXISTS TO ENFORCE. H03a and H03b must be
|
|
indistinguishable except for their dates and figures — that is the entire
|
|
trick, and it dies the moment one of them is styled a hair differently from
|
|
the other. So they are not two designs that happen to match: they share one
|
|
class, `.almanac`, and every dimension they use comes from a variable defined
|
|
once below. There is deliberately no `.almanac-a` or `#h03b` anywhere in this
|
|
file. If you want to change the look of the almanac, change the variable and
|
|
both move together; if you find yourself adding a selector that names only one
|
|
of them, that is the bug, and `check-handouts` will fail the build for it.
|
|
───────────────────────────────────────────────────────────────────────── */
|
|
|
|
:root {
|
|
/* Body copy never goes below 11pt — convention halls are dim and eyes are
|
|
tired. Everything here is at or above that. */
|
|
--body: 11.5pt;
|
|
--lead: 1.45;
|
|
|
|
/* The almanac's entire appearance, in one place, used by both pages. Swap the
|
|
face here if a handwriting font is installed — it changes BOTH, which is the
|
|
point. Keep it monospaced-by-metrics or the columns stop aligning, and the
|
|
columns aligning IS the reveal. */
|
|
--almanac-font: "Courier New", Courier, monospace;
|
|
--almanac-size: 11.5pt;
|
|
--almanac-lead: 26px; /* also the ruled-line pitch — one value, both uses */
|
|
--almanac-ink: #1a2a4a; /* fountain-pen blue-black */
|
|
--almanac-paper: #fbfaf3;
|
|
--almanac-rule: #b9c6d8;
|
|
--almanac-margin-rule: #d4a8a8;
|
|
/* Where the red margin rule sits, measured from the sheet edge, and therefore
|
|
where the writing has to start. Used by both the rule and the indent so they
|
|
cannot drift apart. Sheet padding is 16mm, so the indent makes up the rest. */
|
|
--almanac-margin-x: 26mm;
|
|
}
|
|
|
|
@page { size: A4 portrait; margin: 16mm 15mm; }
|
|
|
|
html, body { margin: 0; padding: 0; background: #6e6e6e; }
|
|
|
|
body {
|
|
font-family: Georgia, "Times New Roman", serif;
|
|
font-size: var(--body);
|
|
line-height: var(--lead);
|
|
color: #111;
|
|
}
|
|
|
|
/* One sheet = one A4 page. On screen they float on grey; in print they are the
|
|
page itself. */
|
|
.sheet {
|
|
box-sizing: border-box;
|
|
width: 210mm;
|
|
min-height: 297mm;
|
|
margin: 10mm auto;
|
|
padding: 18mm 16mm;
|
|
background: #fff;
|
|
box-shadow: 0 2px 14px rgba(0,0,0,.45);
|
|
page-break-after: always;
|
|
position: relative;
|
|
}
|
|
.sheet:last-of-type { page-break-after: auto; }
|
|
|
|
/* The slug is for the GM's pile, not the players. It is small, grey, and sits
|
|
outside the fiction — every sheet says what it is and when it is given. */
|
|
.slug {
|
|
position: absolute; top: 6mm; right: 16mm;
|
|
font-family: -apple-system, "Segoe UI", Helvetica, Arial, sans-serif;
|
|
font-size: 8pt; letter-spacing: .09em; text-transform: uppercase;
|
|
color: #8b8b8b;
|
|
}
|
|
.slug b { color: #5a5a5a; letter-spacing: .12em; }
|
|
|
|
/* ── CG-H01 — coroner's note. White, official, dull on purpose. ───────────── */
|
|
.official {
|
|
font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
|
|
font-size: var(--body);
|
|
line-height: 1.5;
|
|
}
|
|
.official .letterhead {
|
|
border-bottom: 2.5pt solid #000;
|
|
padding-bottom: 3mm; margin-bottom: 2mm;
|
|
display: flex; justify-content: space-between; align-items: baseline;
|
|
font-weight: 700; letter-spacing: .04em; font-size: 11.5pt;
|
|
}
|
|
.official .letterhead .doctype { font-weight: 700; font-size: 11pt; }
|
|
.official .refline {
|
|
display: flex; justify-content: space-between;
|
|
font-size: 11pt; color: #333;
|
|
border-bottom: .75pt solid #666;
|
|
padding-bottom: 4mm; margin-bottom: 6mm;
|
|
}
|
|
.official dl { display: grid; grid-template-columns: 30mm 1fr; gap: 1.5mm 4mm; margin: 0 0 7mm; }
|
|
.official dt { font-weight: 700; letter-spacing: .05em; font-size: 11pt; }
|
|
.official dd { margin: 0; }
|
|
.official p { margin: 0 0 4.5mm; max-width: 155mm; }
|
|
.official .signoff { margin-top: 12mm; padding-left: 95mm; line-height: 1.35; }
|
|
.official .signoff .name { font-family: Georgia, serif; font-style: italic; font-size: 14pt; }
|
|
.official .signoff .role { font-size: 11pt; color: #333; }
|
|
|
|
/* ── CG-H02 — 1962 committee minute. Cream, typewriter, twice-copied. ─────── */
|
|
.minute {
|
|
font-family: "Courier New", Courier, monospace;
|
|
font-size: 11.5pt;
|
|
line-height: 1.62;
|
|
color: #241f1a;
|
|
}
|
|
/* The cream is on the SHEET so it reaches the paper edge in print. */
|
|
.sheet--cream { background: #f3ecd9; }
|
|
/* Photocopy grain: faint, uneven, and cheap. Two overlapping gradients rather
|
|
than an image, so this file stays self-contained and prints the same anywhere. */
|
|
.sheet--cream::before {
|
|
content: ""; position: absolute; inset: 0; pointer-events: none;
|
|
background:
|
|
repeating-linear-gradient(92deg, rgba(0,0,0,.035) 0 1px, transparent 1px 4px),
|
|
radial-gradient(120% 80% at 8% 4%, rgba(0,0,0,.07), transparent 55%),
|
|
radial-gradient(90% 70% at 96% 98%, rgba(0,0,0,.05), transparent 60%);
|
|
mix-blend-mode: multiply;
|
|
}
|
|
.minute > * { position: relative; }
|
|
.minute .head {
|
|
display: flex; justify-content: space-between;
|
|
font-weight: 700; letter-spacing: .05em;
|
|
}
|
|
.minute .head .classification { letter-spacing: .3em; }
|
|
.minute .subhead {
|
|
display: flex; justify-content: space-between;
|
|
border-bottom: 1pt solid #4a4038;
|
|
padding-bottom: 3mm; margin-bottom: 7mm;
|
|
}
|
|
.minute h2 {
|
|
font-family: inherit; font-size: 12.5pt; font-weight: 700;
|
|
letter-spacing: .12em; text-align: center;
|
|
margin: 0 0 9mm; text-decoration: underline;
|
|
}
|
|
.minute ol { margin: 0; padding: 0; list-style: none; counter-reset: para; }
|
|
.minute ol li {
|
|
counter-increment: para;
|
|
display: grid; grid-template-columns: 9mm 1fr; gap: 3mm;
|
|
margin-bottom: 6mm;
|
|
}
|
|
.minute ol li::before { content: counter(para) "."; font-weight: 700; }
|
|
.minute .signoff {
|
|
margin-top: 12mm; padding-left: 68mm;
|
|
display: grid; grid-template-columns: 26mm 1fr; gap: 1mm 3mm;
|
|
}
|
|
.minute .signoff .lab { color: #3b332c; }
|
|
|
|
/* ── CG-H03a / CG-H03b — Ivy's almanac. ONE class, used twice. ────────────
|
|
Every value comes from the variables above. Nothing below names a or b. */
|
|
.sheet--almanac { background: var(--almanac-paper); }
|
|
.almanac {
|
|
font-family: var(--almanac-font);
|
|
font-size: var(--almanac-size);
|
|
color: var(--almanac-ink);
|
|
line-height: var(--almanac-lead);
|
|
/* Ruled paper: the pitch IS the line-height, so writing sits on the rules. */
|
|
background:
|
|
linear-gradient(to bottom, transparent calc(var(--almanac-lead) - 1px),
|
|
var(--almanac-rule) calc(var(--almanac-lead) - 1px), var(--almanac-rule) var(--almanac-lead));
|
|
background-size: 100% var(--almanac-lead);
|
|
padding-top: 2px;
|
|
/* 16mm of that is the sheet's own padding; this is the remainder. */
|
|
padding-left: calc(var(--almanac-margin-x) - 16mm);
|
|
}
|
|
/* The red margin rule, down the left of the sheet, both pages alike. */
|
|
.sheet--almanac::before {
|
|
content: ""; position: absolute; top: 0; bottom: 0; left: var(--almanac-margin-x);
|
|
border-left: 1pt solid var(--almanac-margin-rule);
|
|
}
|
|
.almanac table { width: 100%; border-collapse: collapse; table-layout: fixed; }
|
|
.almanac th, .almanac td {
|
|
text-align: left; font-weight: 400; padding: 0;
|
|
line-height: var(--almanac-lead); height: var(--almanac-lead);
|
|
white-space: nowrap; overflow: hidden;
|
|
}
|
|
.almanac th { border-bottom: 1px solid var(--almanac-ink); }
|
|
/* Fixed columns so both pages align to the millimetre — the identical "41 mi"
|
|
column is the reveal and it only lands if it lines up across two sheets. */
|
|
.almanac col.day { width: 10%; }
|
|
.almanac col.weather { width: 22%; }
|
|
.almanac col.walked { width: 12%; }
|
|
.almanac col.clean { width: 24%; }
|
|
.almanac col.notes { width: 32%; }
|
|
.almanac .count { margin-top: calc(var(--almanac-lead) * 2); }
|
|
|
|
@media print {
|
|
html, body { background: #fff; }
|
|
/* Side and bottom margins come from @page; the TOP padding must survive, because the
|
|
slug is absolutely positioned at top:6mm and the screen rule's 18mm padding is what
|
|
kept sheet content clear of it. Zeroing padding here printed the slug on top of the
|
|
first line of three of the four sheets — both almanac tables and the minute's
|
|
"Copy 3 of 4". Found by rendering the pack to PDF and looking at it, which no
|
|
structural check can do. */
|
|
.sheet { margin: 0; box-shadow: none; width: auto; min-height: 0; padding: 11mm 0 0; }
|
|
.sheet--cream, .sheet--almanac { -webkit-print-color-adjust: exact; print-color-adjust: exact; }
|
|
.screen-only { display: none !important; }
|
|
}
|
|
|
|
.screen-only {
|
|
max-width: 210mm; margin: 10mm auto 0; padding: 6mm 8mm;
|
|
background: #fffbe6; border: 1pt solid #d8cf9a;
|
|
font-family: -apple-system, "Segoe UI", Helvetica, Arial, sans-serif; font-size: 11pt;
|
|
}
|
|
.screen-only h1 { font-size: 12pt; margin: 0 0 3mm; letter-spacing: .05em; }
|
|
.screen-only li { margin-bottom: 2mm; }
|
|
</style>
|
|
</head>
|
|
<body>
|
|
|
|
<div class="screen-only">
|
|
<h1>CLEAN GROUND — handout pack · print instructions</h1>
|
|
<ul>
|
|
<li><b>A4 portrait, scale 100%, background graphics ON.</b> Without backgrounds, H02 prints white and the almanac loses its rules.</li>
|
|
<li><b>Four sheets, one per page</b>, in handing order: H01 (Act One), H03a (Act Two), H02 (Act Three, depot), H03b (Act Three, laid beside H03a).</li>
|
|
<li><b>H03a and H03b must come off the same printer, same tray, same session.</b> Two different papers and the trick dies before anyone reads a word.</li>
|
|
<li><b>Staging:</b> H03a is given in Act Two and nothing is said about it. H03b goes down <i>flat on the table beside it</i> in Act Three. Do not explain. The table will do it out loud.</li>
|
|
<li>Body text is 11.5pt throughout. Do not scale below 100% to fit.</li>
|
|
</ul>
|
|
</div>
|
|
|
|
<!-- ══ CG-H01 ══ Act One, once Braithwaite has looked ═══════════════════════ -->
|
|
<section class="sheet">
|
|
<div class="slug"><b>CG-H01</b> · Act One</div>
|
|
<div class="official">
|
|
<div class="letterhead">
|
|
<span>HM CORONER — NORTH NORTHUMBERLAND</span>
|
|
<span class="doctype">PRELIMINARY NOTE</span>
|
|
</div>
|
|
<div class="refline">
|
|
<span>Ref: NN/1174/26</span>
|
|
<span>Not for release</span>
|
|
</div>
|
|
|
|
<dl>
|
|
<dt>DECEASED</dt><dd>Unidentified male</dd>
|
|
<dt>FOUND</dt><dd>29 August, stone sheep pen, Sike Head march</dd>
|
|
<dt>BY</dt><dd>Mrs M. Swinburne, of Sike Head</dd>
|
|
</dl>
|
|
|
|
<p>Estimated age at death, from dentition and general condition: forty to forty-five
|
|
years.</p>
|
|
|
|
<p>Bone density, joint surfaces and vascular condition are those of a man in his
|
|
ninetieth year. I have written that sentence three times and I am content with it.</p>
|
|
|
|
<p>No dental record answers to this mouth. No fingerprint record answers to these
|
|
hands. Enquiries with the National Insurance index return nothing. He is not a missing
|
|
person anywhere I can reach.</p>
|
|
|
|
<p>Dressed in wool and cotton of good but old manufacture, mended repeatedly and
|
|
competently by hand. The boots have been resoled, by my count, nine times, and not by
|
|
a tradesman.</p>
|
|
|
|
<p>Lungs, turn-ups and hair carry a fine grey particulate which I am not equipped to
|
|
identify and have sent onward.</p>
|
|
|
|
<p>Cause of death: exhaustion, on a body that had no reserve left to draw on. There is
|
|
no injury. Nobody did this to him.</p>
|
|
|
|
<p>I would be glad to be told what this was, in due course, if anyone is ever able to
|
|
tell me.</p>
|
|
|
|
<div class="signoff">
|
|
<div class="name">J. A. Corbridge</div>
|
|
<div class="role">Assistant Pathologist</div>
|
|
</div>
|
|
</div>
|
|
</section>
|
|
|
|
<!-- ══ CG-H03a ══ Act Two, when she decides to trust them ═══════════════════ -->
|
|
<section class="sheet sheet--almanac">
|
|
<div class="slug"><b>CG-H03a</b> · Act Two</div>
|
|
<div class="almanac">
|
|
<table>
|
|
<colgroup>
|
|
<col class="day"><col class="weather"><col class="walked"><col class="clean"><col class="notes">
|
|
</colgroup>
|
|
<thead>
|
|
<tr><th>DAY</th><th>WEATHER</th><th>WALKED</th><th>TO CLEAN GROUND</th><th>NOTES</th></tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr><td>Mon</td><td>low cloud</td><td>7 mi</td><td>41 mi</td><td>Ground softer.</td></tr>
|
|
<tr><td>Tue</td><td>dry, cold</td><td>8 mi</td><td>41 mi</td><td>Passed the lorry.</td></tr>
|
|
<tr><td>Wed</td><td>rain</td><td>5 mi</td><td>41 mi</td><td>Rested at noon.</td></tr>
|
|
<tr><td>Thu</td><td>dry</td><td>8 mi</td><td>41 mi</td><td>Thursday again.</td></tr>
|
|
<tr><td>Fri</td><td>low cloud</td><td>7 mi</td><td>41 mi</td><td>Alec is tired.</td></tr>
|
|
<tr><td>Sat</td><td>rain</td><td>6 mi</td><td>41 mi</td><td>Passed the lorry.</td></tr>
|
|
<tr><td>Sun</td><td>dry, bright</td><td>9 mi</td><td>41 mi</td><td>Good day. Sang.</td></tr>
|
|
</tbody>
|
|
</table>
|
|
<div class="count">Counted this morning: forty-one.</div>
|
|
</div>
|
|
</section>
|
|
|
|
<!-- ══ CG-H02 ══ Act Three, in the buried depot ═════════════════════════════ -->
|
|
<section class="sheet sheet--cream">
|
|
<div class="slug"><b>CG-H02</b> · Act Three</div>
|
|
<div class="minute">
|
|
<div class="head">
|
|
<span>COMMITTEE ON CONTINGENT ARRANGEMENTS</span>
|
|
<span class="classification">SECRET</span>
|
|
</div>
|
|
<div class="subhead">
|
|
<span>Minute of the meeting of 26 October 1962</span>
|
|
<span>Copy 3 of 4</span>
|
|
</div>
|
|
|
|
<h2>RESERVE ENTRY (NORTHERN) — AUTHORISED</h2>
|
|
|
|
<ol>
|
|
<li>The Committee approved the entry of a reserve holding of ground in the northern
|
|
march, of eleven miles and a fraction, to be recorded twice in order that one record
|
|
may be drawn upon without disturbance to the other.</li>
|
|
|
|
<li>The purpose of the reserve is to hold persons displaced by a general exchange, in
|
|
a place which is not on any list that an adversary may obtain. Members were reminded
|
|
that an unrecorded place cannot be targeted and cannot be requisitioned.</li>
|
|
|
|
<li>The entry is pegged to the standing boundary oak at Sike Head, being the feature
|
|
to which the march was recorded before the survey of 1861 and therefore the older of
|
|
the two authorities. The Committee was satisfied that the tree is in good health.</li>
|
|
|
|
<li>The Registrar drew the Committee's attention to the consequence of paragraph 2.
|
|
A place recorded as the place to which the displaced go is a place the record must
|
|
afterwards furnish with displaced persons. The Committee noted this and did not
|
|
regard it as an obstacle.</li>
|
|
|
|
<li>The entry is to be reviewed at the rising of the emergency, and cancelled if it
|
|
is found not to have been drawn upon.</li>
|
|
</ol>
|
|
|
|
<div class="signoff">
|
|
<span class="lab">Signed</span><span>(illegible)<br>Chairman</span>
|
|
<span class="lab">Minuted by</span><span>A.E.W.<br>Clerk (Junior)</span>
|
|
</div>
|
|
</div>
|
|
</section>
|
|
|
|
<!-- ══ CG-H03b ══ Act Three, and not before ═════════════════════════════════ -->
|
|
<section class="sheet sheet--almanac">
|
|
<div class="slug"><b>CG-H03b</b> · Act Three</div>
|
|
<div class="almanac">
|
|
<table>
|
|
<colgroup>
|
|
<col class="day"><col class="weather"><col class="walked"><col class="clean"><col class="notes">
|
|
</colgroup>
|
|
<thead>
|
|
<tr><th>DAY</th><th>WEATHER</th><th>WALKED</th><th>TO CLEAN GROUND</th><th>NOTES</th></tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr><td>Mon</td><td>dry</td><td>8 mi</td><td>41 mi</td><td>Passed the lorry.</td></tr>
|
|
<tr><td>Tue</td><td>rain</td><td>6 mi</td><td>41 mi</td><td>Ada's chest again.</td></tr>
|
|
<tr><td>Wed</td><td>low cloud</td><td>7 mi</td><td>41 mi</td><td>Ground softer.</td></tr>
|
|
<tr><td>Thu</td><td>dry, cold</td><td>8 mi</td><td>41 mi</td><td>Thursday again.</td></tr>
|
|
<tr><td>Fri</td><td>dry</td><td>7 mi</td><td>41 mi</td><td>Passed the lorry.</td></tr>
|
|
<tr><td>Sat</td><td>low cloud</td><td>6 mi</td><td>41 mi</td><td>Rested at noon.</td></tr>
|
|
<tr><td>Sun</td><td>rain</td><td>5 mi</td><td>41 mi</td><td>Nobody sang.</td></tr>
|
|
</tbody>
|
|
</table>
|
|
<div class="count">Counted this morning: fifty-three.</div>
|
|
</div>
|
|
</section>
|
|
|
|
</body>
|
|
</html>
|