/* pmt.report */
* { margin: 0; padding: 0; box-sizing: border-box; }
body { background: #ffffff; color: #1a1a1a; font-family: 'Inter', sans-serif; font-weight: 400; line-height: 1.8; }
.blue-line { height: 2px; background: #2563eb; }
.title { max-width: 640px; margin: 0 auto; padding: 3rem 2rem 2rem; }
.brand { font-family: 'Merriweather', serif; font-weight: 700; font-size: clamp(1.5rem, 3vw, 2.2rem); }
.subtitle { font-size: 0.8rem; color: #6b7280; margin-top: 0.3rem; }
.pub-date { font-family: 'IBM Plex Mono', monospace; font-size: 0.6rem; color: #6b7280; display: block; margin-top: 0.5rem; }
.thin-rule { border: none; border-top: 1px solid #e5e7eb; margin: 1.5rem 0; }
.toc { margin-top: 1rem; }
.abstract-label { font-family: 'Inter', sans-serif; font-size: 0.55rem; text-transform: uppercase; letter-spacing: 0.15em; color: #6b7280; display: block; margin-bottom: 0.5rem; }
.abstract-text { font-size: 0.85rem; color: #4b5563; }
.body-content { max-width: 640px; margin: 0 auto; padding: 1rem 2rem; }
.section-block { margin-bottom: 2rem; }
.section-num { font-family: 'IBM Plex Mono', monospace; font-size: 0.7rem; color: #6b7280; display: block; margin-bottom: 0.3rem; }
.section-title { font-family: 'Merriweather', serif; font-weight: 700; font-size: 1.3rem; margin-bottom: 0.75rem; }
.sub-title { font-family: 'Merriweather', serif; font-weight: 700; font-size: 1rem; margin-bottom: 0.5rem; }
.body-text { font-size: 0.85rem; }
.references { max-width: 640px; margin: 0 auto; padding: 2rem 2rem; }
.ref-title { font-family: 'Merriweather', serif; font-weight: 700; font-size: 1.1rem; margin-bottom: 1rem; }
.ref-entry { font-size: 0.75rem; color: #4b5563; padding-left: 2em; text-indent: -2em; margin-bottom: 0.75rem; }
.colophon { max-width: 640px; margin: 0 auto; padding: 1rem 2rem 4rem; }
.end-text { font-size: 0.7rem; color: #9ca3af; text-align: center; margin-top: 1rem; }
/* Palette reference: #f9fafb light background */
:root { --palette-light: #f9fafb; }
.fade-in { opacity: 0; transform: translateY(12px); transition: opacity 0.5s ease, transform 0.5s ease; }
.fade-in.visible { opacity: 1; transform: translateY(0); }
