cv-2026/templates/cv-style.css

211 lines
3.4 KiB
CSS

/*
* CV style — mirrors the visual format of base/reference/Oleg_Proskurin_Techlead_resume.docx.pdf.
*
* Key conventions:
* - Serif (Times-like) body font, ~10.5pt, dense single-line spacing.
* - A4 page, ~12mm margins. Single column.
* - Centered name + role at the top, single-line contact row.
* - Section headings: ALL CAPS bold with bottom underline.
* - Job header: company (bold left) | role (bold right), then italic subtitle | dates right.
* - Bullets: disc, hanging indent.
* - Links: blue, underlined.
*/
@page {
size: A4;
margin: 12mm 14mm;
}
:root {
--text: #000;
--link: #1155cc;
--rule: #000;
--muted: #333;
}
* {
box-sizing: border-box;
}
html,
body {
margin: 0;
padding: 0;
}
body {
font-family: 'Times New Roman', Times, 'Liberation Serif', serif;
font-size: 10.5pt;
line-height: 1.25;
color: var(--text);
background: #fff;
-webkit-print-color-adjust: exact;
print-color-adjust: exact;
}
a {
color: var(--link);
text-decoration: underline;
}
/* ───── Header ───── */
.cv-header {
text-align: center;
margin-bottom: 8pt;
}
.cv-header .name {
font-size: 14pt;
font-weight: 700;
letter-spacing: 0.5pt;
margin: 0;
}
.cv-header .role {
font-size: 11pt;
font-weight: 700;
margin: 2pt 0 4pt 0;
}
.cv-header .contacts {
font-size: 10pt;
margin: 0;
}
.cv-header .contacts a {
white-space: nowrap;
}
/* ───── Section ───── */
.cv-section {
margin-top: 8pt;
}
.cv-section > h2 {
font-size: 10.5pt;
font-weight: 700;
text-transform: uppercase;
margin: 0 0 4pt 0;
padding-bottom: 1pt;
border-bottom: 0.5pt solid var(--rule);
}
/* ───── Summary / plain paragraph ───── */
.cv-section p {
margin: 0 0 4pt 0;
text-align: justify;
}
/* ───── Skills block ───── */
.cv-skills p {
margin: 0 0 3pt 0;
}
.cv-skills .skills-category {
font-weight: 700;
}
/* ───── Job entries ───── */
.cv-job {
margin-top: 6pt;
}
/* Keep the job header block (company/role, meta row, descriptor) together
and glued to the first bullet, so the section title never dangles alone
at the bottom of a page. Individual bullets can still flow across pages. */
.cv-job-header,
.cv-job-meta,
.cv-job-desc {
page-break-after: avoid;
break-after: avoid;
page-break-inside: avoid;
break-inside: avoid;
}
.cv-job li {
page-break-inside: avoid;
break-inside: avoid;
}
.cv-job-header {
display: flex;
justify-content: space-between;
align-items: baseline;
gap: 12pt;
}
.cv-job-header .company {
font-weight: 700;
}
.cv-job-header .role {
font-weight: 700;
text-align: right;
}
.cv-job-meta {
display: flex;
justify-content: space-between;
align-items: baseline;
gap: 12pt;
font-style: italic;
color: var(--muted);
margin-top: 1pt;
}
.cv-job-meta .dates {
font-style: italic;
text-align: right;
white-space: nowrap;
}
.cv-job-desc {
font-style: italic;
margin: 2pt 0 0 0;
}
.cv-job ul {
margin: 3pt 0 0 0;
padding-left: 16pt;
}
.cv-job li {
margin: 0 0 2pt 0;
padding-left: 2pt;
}
.cv-job li::marker {
font-size: 1em;
}
/* ───── Portfolio / Education / Languages ───── */
.cv-inline-list {
margin: 0;
}
.cv-portfolio a + a::before {
content: ', ';
color: var(--text);
text-decoration: none;
}
/* ───── Misc ───── */
strong {
font-weight: 700;
}
em {
font-style: italic;
}
hr {
display: none;
}