211 lines
3.4 KiB
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;
|
|
}
|