@page { size: A4 portrait; margin: 0; }
* { box-sizing: border-box; }
html, body { margin: 0; padding: 0; }
body { background: #e6e4df; color: #19354d; font-family: Georgia, 'Times New Roman', serif; }
.print-tools { max-width: 210mm; margin: 1rem auto; padding: 0 1rem; font: 16px/1.5 Arial, sans-serif; }
.print-tools a { color: #19354d; }
.print-tools button { margin-left: 1rem; padding: .7rem 1rem; border: 0; border-radius: 4px; background: #19354d; color: #fff; font: inherit; cursor: pointer; }
.print-tools p { margin: .5rem 0; }
.poster { --copy-size: 1; width: 210mm; height: 297mm; margin: 0 auto 1rem; padding: 12mm; position: relative; overflow: hidden; background: #fbf8f1; display: flex; flex-direction: column; gap: 4mm; text-align: center; break-inside: avoid; page-break-inside: avoid; }
.poster::before { content: ""; position: absolute; inset: 6mm; border: .35mm solid #b78b38; border-radius: 15px; pointer-events: none; z-index: 3; }
.poster-heading { flex: 0 0 auto; position: relative; z-index: 1; }
.school-logo { display: block; width: 52mm; height: 25mm; object-fit: contain; margin: 0 auto; }
.poster h1 { font-size: 31pt; letter-spacing: .065em; margin: 3mm 0 1mm; line-height: 1.1; }
.poster-photo { flex: 0 0 auto; width: 100%; aspect-ratio: 16 / 9; margin: 0; overflow: hidden; border-radius: 12px; position: relative; z-index: 1; }
.poster-photo img { display: block; width: 100%; height: 100%; min-height: 0; object-fit: cover; }
.poster-copy { flex: 0 0 auto; position: relative; z-index: 1; overflow: hidden; }
.poster-copy-inner { transform-origin: top center; font-size: calc(17pt * var(--copy-size)); line-height: 1.25; overflow-wrap: anywhere; }
.poster h2 { font-size: calc(var(--name-size, 27pt) * var(--copy-size)); line-height: 1.15; margin: 0 0 calc(4mm * var(--copy-size)); text-wrap: balance; }
.poster-copy p { margin: calc(3mm * var(--copy-size)) 0; }
.poster-copy-inner > :last-child { margin-bottom: 0; }
.achievement { font-size: calc(var(--achievement-size, 20pt) * var(--copy-size)); font-weight: bold; line-height: 1.3; text-wrap: balance; }
.teacher { font-size: calc(13.5pt * var(--copy-size)); color: #52606b; }
.teacher-names { font-size: calc(16pt * var(--copy-size)); }
.poster-text { font-size: calc(14pt * var(--copy-size)); }
.poster-footer { flex: 1 0 40mm; min-height: 40mm; display: flex; justify-content: flex-end; align-items: center; }
.school-building { display: block; position: absolute; left: 0; bottom: 0; width: 50%; height: auto; opacity: .65; mix-blend-mode: multiply; pointer-events: none; -webkit-mask-image: linear-gradient(to top, #000 15%, transparent 95%), linear-gradient(to right, #000 40%, transparent 100%); -webkit-mask-composite: source-in; mask-image: linear-gradient(to top, #000 15%, transparent 95%), linear-gradient(to right, #000 40%, transparent 100%); mask-composite: intersect; }
.poster-footer p { position: relative; z-index: 1; max-width: 112mm; margin: 0; padding: 3mm 2mm; text-align: right; font-family: 'Segoe Print', 'Bradley Hand', 'Lucida Handwriting', cursive; font-size: 24pt; font-style: normal; line-height: 1.4; color: #19354d; transform: rotate(-6deg); transform-origin: center; overflow-wrap: anywhere; }
.poster-legacy { padding: 9mm; }
.legacy-artwork { width: 100%; height: 100%; min-height: 0; margin: 0; }
.legacy-artwork img { display: block; width: 100%; height: 100%; object-fit: contain; }
@media print {
 html, body { width: 210mm; height: 297mm; background: #fff; }
 .print-tools { display: none !important; }
 .poster { margin: 0; print-color-adjust: exact; -webkit-print-color-adjust: exact; }
}
