The rules that make print output deterministic.
layout-engine.css
/* Page setup — letter size, zero browser margins */
@page { size: letter; margin: 0; }
/* Screen: constrained to print width for WYSIWYG */
body { max-width: 8.5in; margin: 0 auto; padding: 0.45in 0.5in; }
/* Print overrides — strip padding, shrink type */
@media print {
body { padding: 0.35in 0.42in; font-size: 7.8pt; }
.no-print { display: none !important; }
}
/* Content blocks never break mid-section */
.content-block { page-break-inside: avoid; }
/* Force section starts onto a new page when needed */
.page-break-before { page-break-before: always; }
/* Typographic scale — enforced, not inherited */
h1 { font-size: 18pt; line-height: 1.15; }
h2 { font-size: 11pt; line-height: 1.2; margin-top: 10pt; }
p, li { font-size: 9pt; line-height: 1.45; }
/* Negative-space minimization for dense layouts */
.job { margin-bottom: 7pt; }
.job-bullets li { margin-bottom: 1.5pt; }Page-break control
avoid, always — per section
Type scale
Fixed pt values, not em/rem
Print overrides
Separate @media print block
Density tuning
Margin/padding in pt, not px