@page { /* Browsers may ignore CSS vars in @page; PDF size is controlled by generator */ margin: 0; } @font-face { font-family: "Heading Now"; src: url("../font/HeadingNow-95Medium.otf"); } /* Base */ html, body { height: 100%; } html, body { margin: 0; padding: 0; } .page-base { width: 100%; height: 100%; padding: 0; margin: 0; } .interlude { position: relative; overflow: hidden; color: white; padding: 4rem; z-index: 0; /* ensure stacking context */ } .interlude::before { content: ''; position: absolute; inset: 0; background-size: cover; background-position: center; filter: grayscale(20%) brightness(0.7); z-index: -2; } .interlude::after { content: ''; position: absolute; inset: 0; /*background: rgba(128, 0, 128, 0.3); /* purple tint */ */ z-index: -1; } .interlude-caption { color: rgba(225, 225, 225, 1.0); font-family: "Heading Now"; line-height: 2em; rotate: 5deg; } /* Use border-box sizing everywhere to keep dimensions predictable */ html { box-sizing: border-box; } *, *::before, *::after { box-sizing: inherit; } /* Screen preview: render a page at exact CSS inches */ @media screen { #page { width: var(--page-w, 5.5in); height: var(--page-h, 8.5in); background: white; box-shadow: 0 0 0 1px rgba(0,0,0,0.08), 0 8px 24px rgba(0,0,0,0.18); } } /* Print-specific sizing to ensure exact physical dimensions */ @media print { html, body { width: var(--page-w, 5.5in); height: var(--page-h, 8.5in); margin: 0; padding: 0; overflow: hidden; /* Never spill to a second page */ } #page { width: 100%; height: 100%; max-width: var(--page-w, 5.5in); max-height: var(--page-h, 8.5in); margin: 0; padding: 0; overflow: hidden; /* Clip any overflow just in case */ page-break-inside: avoid; /* Legacy */ break-inside: avoid-page; /* Modern */ } /* Avoid browser-added headers/footers if possible (user may need to disable in print dialog) */ body { -webkit-print-color-adjust: exact; print-color-adjust: exact; box-sizing: border-box; background: white; } }