@import url('https://fonts.googleapis.com/css2?family=IBM+Plex+Sans:wght@400;500;600;700&display=swap');
/* CV pages (cv.html, cv-cto.html): a plain document in the osokin.ai palette
   (same tokens as style.css). One column; print = white sheet, same structure. */
:root{
  --bg:#060A0D; --surface:#0C1319; --border:#1C2B33; --border-hover:#2E4650;
  --cyan:#5FD9E4; --cyan-dim:#3FA8B4;
  --text:#E9F1F2; --text-muted:#8CA3AB; --text-dim:#5A7078;
  --font-heading:'Cormorant',Georgia,serif; --font-body:'Montserrat',system-ui,sans-serif;
}
*{margin:0;padding:0;box-sizing:border-box}
html{background:var(--bg)}
body{font-family:var(--font-body); color:var(--text); background:var(--bg); -webkit-font-smoothing:antialiased;
     font-size:14.5px; line-height:1.55}
a{color:inherit}

.sheet{max-width:840px; margin:40px auto; background:var(--surface); border:1px solid var(--border);
       padding:56px 64px 48px}

header{position:relative; padding-right:140px}
header .photo{position:absolute; right:0; top:0; width:112px; height:112px; object-fit:cover; border-radius:50%; border:1px solid var(--border)}
header h1{font-family:var(--font-heading); font-size:44px; font-weight:600; letter-spacing:.3px; line-height:1.05}
header .target{font-size:15px; color:var(--cyan); margin-top:6px; letter-spacing:.2px}
header .contacts{margin-top:14px; font-size:13px; color:var(--text-muted); display:flex; flex-wrap:wrap; gap:4px 0}
header .contacts a{color:var(--text-muted); text-decoration:none}
header .contacts a:hover{color:var(--cyan)}
header .contacts span+span::before{content:"·"; margin:0 8px; color:var(--text-dim)}
header .contacts .pdf{margin-left:auto; font-size:12.5px; color:var(--cyan-dim); text-decoration:underline}

section{margin-top:28px}
h2{font-family:var(--font-body); font-size:11.5px; font-weight:600; text-transform:uppercase; letter-spacing:.14em; color:var(--cyan);
   padding-bottom:7px; border-bottom:1px solid var(--border); margin-bottom:14px}
.summary{color:var(--text-muted)}

.job{margin-bottom:18px}
.job-top{display:flex; justify-content:space-between; align-items:baseline; gap:16px}
.job-title{font-weight:600; font-size:15px; color:var(--text)}
.job-co{color:var(--text)}
.job-meta{font-size:13px; color:var(--text-dim); white-space:nowrap}
.job-ctx{font-size:13.5px; color:var(--text-dim); margin-top:2px}
.job ul{margin:7px 0 0 18px}
.job li{margin-top:4px; color:var(--text-muted)}
.job li::marker{color:var(--border-hover)}
.job li b{font-weight:600; color:var(--text)}
.job.compact li{font-size:13.5px}

.skills dl{display:grid; grid-template-columns:150px 1fr; gap:7px 16px; font-size:14px}
.skills dt{color:var(--text-dim)}
.skills dd{color:var(--text-muted)}
.skills a{color:var(--text-muted)}
.skills a:hover{color:var(--cyan)}

.edu p{font-size:14px; color:var(--text-muted)}
.edu .deg{font-weight:600; color:var(--text)}

.note{margin-top:28px; font-size:12px; color:var(--text-dim)}

@media(max-width:720px){
  body{font-size:14px}
  .sheet{margin:0; padding:32px 20px 40px; border:none}
  header{padding-right:0}
  header .photo{position:static; display:block; width:96px; height:96px; margin-bottom:14px}
  header h1{font-size:36px}
  .job-top{flex-direction:column; gap:0}
  .job-meta{white-space:normal}
  .skills dl{grid-template-columns:1fr; gap:2px}
  .skills dt{margin-top:6px}
  header .contacts .pdf{margin-left:0; flex-basis:100%; margin-top:6px}
}

@media print{
  /* A4 document: dates in a left gutter, content on the right. Generated by build-cv-pdf.sh. */
  @page{size:A4; margin:12mm 14mm 13mm}
  :root{--text:#0B1218; --text-muted:#3A464C; --text-dim:#7B878C; --cyan:#2E6F78; --cyan-dim:#2E6F78; --border:#D8DEE1; --border-hover:#A9B4B8}
  html,body{background:#fff; font-size:9.4pt; line-height:1.34}
  .sheet{max-width:none; margin:0; padding:0; border:none; background:#fff}
  .pdf{display:none}

  header{padding-right:0; display:grid; grid-template-columns:1fr 24mm; column-gap:8mm; align-items:center; padding-bottom:3mm; border-bottom:1px solid var(--border)}
  header .photo{position:static; grid-column:2; grid-row:1/4; width:24mm; height:24mm; border:none}
  header h1{grid-column:1; font-size:23pt; line-height:1.05}
  header .target{grid-column:1; font-size:11pt; margin-top:1.5mm}
  header .contacts{grid-column:1; font-size:8.4pt; margin-top:2mm}
  header .contacts span+span::before{margin:0 5px}

  section{margin-top:3.2mm}
  h2{font-size:7.6pt; letter-spacing:.16em; margin-bottom:2.5mm; padding-bottom:1.2mm; break-after:avoid}
  .summary{font-size:9.3pt; line-height:1.38}

  .job{display:grid; grid-template-columns:31mm 1fr; column-gap:4mm; margin-bottom:2.6mm; break-inside:auto}
  .job-top{display:contents}
  .job-meta{grid-column:1; grid-row:1; font-size:8.3pt; white-space:nowrap; padding-top:.8mm; line-height:1.35}
  .job-title{grid-column:2; grid-row:1; font-size:10.2pt; line-height:1.28; break-after:avoid}
  .job-ctx{grid-column:2; font-size:8.6pt; margin-top:.5mm; line-height:1.35; break-after:avoid}
  .job ul{grid-column:2; margin:1.2mm 0 0 4mm}
  .job li,.job.compact li{font-size:9.2pt; margin-top:.5mm; line-height:1.34; padding-left:0; break-inside:avoid}
  .job li:first-child{break-before:avoid}
  .job li::marker{color:var(--border-hover)}

  .skills dl{font-size:9.2pt; gap:1.2mm 4mm; grid-template-columns:31mm 1fr}
  .edu p{font-size:9.2pt}
  .edu .deg{margin-top:0}
  .note{margin-top:2.5mm; font-size:7.8pt}
  a{text-decoration:none; color:inherit}
}

/* ---------- cases (/irevolution-cv): context → task → solution → result ---------- */
.case{border:1px solid var(--border); border-radius:10px; padding:14px 16px 12px; margin-bottom:12px}
.case-top{display:flex; justify-content:space-between; align-items:baseline; gap:16px}
.case-title{font-weight:600; font-size:15px; color:var(--text)}
.case-ctx{font-size:13.5px; color:var(--text-dim); margin-top:2px}
.case dl{display:grid; grid-template-columns:92px 1fr; gap:5px 14px; margin-top:9px; font-size:14px}
.case dt{color:var(--text-dim)}
.case dd{color:var(--text-muted)}
.case dd b{color:var(--text); font-weight:600}
@media(max-width:720px){
  .case{padding:12px 12px 10px}
  .case-top{flex-direction:column; gap:0}
  .case dl{grid-template-columns:1fr; gap:1px}
  .case dt{margin-top:6px}
}
@media print{
  .case{border-radius:2mm; padding:2.6mm 3.2mm 2.2mm; margin-bottom:2.6mm; break-inside:avoid}
  .case-title{font-size:10.2pt}
  .case-ctx{font-size:8.6pt; margin-top:.4mm}
  .case dl{grid-template-columns:22mm 1fr; gap:.8mm 4mm; margin-top:1.6mm; font-size:9.2pt; line-height:1.34}
}

/* ---------- /sber-cv theme: light, Sber-like (white sheet, green accent, plain sans) ---------- */
.theme-sber{
  --bg:#F2F4F7; --surface:#FFFFFF; --border:#E4E8EB; --border-hover:#B2B8BF;
  --cyan:#16882F; --cyan-dim:#16882F;
  --text:#1F1F22; --text-muted:#45494F; --text-dim:#7D838A;
  --font-heading:'Inter',system-ui,sans-serif; --font-body:'Inter',system-ui,sans-serif;
}
.theme-sber .sheet{border:none; border-radius:16px; box-shadow:0 1px 2px rgba(0,0,0,.04),0 8px 32px rgba(31,31,34,.06)}
.theme-sber header h1{font-weight:700; letter-spacing:-.02em; font-size:40px}
.theme-sber header .target{font-weight:500}
.theme-sber .job li::marker{color:var(--cyan)}
.divider{border-top:1px solid var(--border); margin-bottom:14px}
@media(max-width:720px){
  .theme-sber .sheet{border-radius:0; box-shadow:none}
  .theme-sber header h1{font-size:32px}
}
@media print{
  .theme-sber{--cyan:#16882F; --cyan-dim:#16882F; --text:#1F1F22; --text-muted:#3E4247; --text-dim:#7D838A; --border:#DDE2E5; --border-hover:#B2B8BF}
  .theme-sber .sheet{box-shadow:none; border-radius:0}
  .theme-sber header h1{font-size:22pt}
  .divider{margin-bottom:2.5mm}
}

/* ---------- /irevolution-cv theme: corporate logistics + finance ----------
   Blue = trust / global logistics (headings, accents), green = money / growth
   (result figures), warm grey = reliability (neutrals, markers). Plain bold
   sans (IBM Plex Sans). Selected by the page's own PDF link, so
   irevolution-cv.html needs no class (can switch to a class later). */
:root:has(a.pdf[href^="irevolution-cv"]){
  --bg:#EEF1F5; --surface:#FFFFFF; --border:#D9DDE3; --border-hover:#8C857E;
  --cyan:#0D47A1; --cyan-dim:#0D47A1;
  --text:#1F2329; --text-muted:#40464F; --text-dim:#7A746E;
  --ir-green:#1B7F3B; --ir-grey:#8C857E;
  --font-heading:'IBM Plex Sans',system-ui,sans-serif; --font-body:'IBM Plex Sans',system-ui,sans-serif;
}
:root:has(a.pdf[href^="irevolution-cv"]) body{background:var(--bg)}
:root:has(a.pdf[href^="irevolution-cv"]) .sheet{border:none; border-top:6px solid var(--cyan); border-radius:4px; box-shadow:0 2px 6px rgba(31,35,41,.06),0 12px 32px rgba(31,35,41,.06)}
:root:has(a.pdf[href^="irevolution-cv"]) header h1{font-weight:700; letter-spacing:-.015em; font-size:38px; line-height:1.1}
:root:has(a.pdf[href^="irevolution-cv"]) header .target{font-weight:600; font-size:16px}
:root:has(a.pdf[href^="irevolution-cv"]) h2{font-weight:700; letter-spacing:.12em; border-bottom-color:var(--border)}
:root:has(a.pdf[href^="irevolution-cv"]) .case{background:#F7F9FC; border:1px solid var(--border); border-left:4px solid var(--cyan); border-radius:4px}
:root:has(a.pdf[href^="irevolution-cv"]) .case-title{font-weight:700; font-size:16px}
:root:has(a.pdf[href^="irevolution-cv"]) .case dd b{color:var(--ir-green)}
:root:has(a.pdf[href^="irevolution-cv"]) .job-title{font-weight:700}
:root:has(a.pdf[href^="irevolution-cv"]) .job li::marker{color:var(--ir-grey)}
:root:has(a.pdf[href^="irevolution-cv"]) a:hover{color:var(--cyan)}
:root:has(a.pdf[href^="irevolution-cv"]) header .contacts .pdf{color:var(--cyan)}
@media(max-width:720px){
  :root:has(a.pdf[href^="irevolution-cv"]) .sheet{border-radius:0}
  :root:has(a.pdf[href^="irevolution-cv"]) header h1{font-size:30px}
}
@media print{
  :root:has(a.pdf[href^="irevolution-cv"]){--text:#1F2329; --text-muted:#3A4049; --text-dim:#7A746E; --cyan:#0D47A1; --border:#D9DDE3}
  :root:has(a.pdf[href^="irevolution-cv"]) body{background:#fff}
  :root:has(a.pdf[href^="irevolution-cv"]) .sheet{border:none; border-radius:0; box-shadow:none; background:#fff}
  :root:has(a.pdf[href^="irevolution-cv"]) header h1{font-size:22pt}
  :root:has(a.pdf[href^="irevolution-cv"]) header .target{font-size:11pt}
  :root:has(a.pdf[href^="irevolution-cv"]) .case{background:#fff; border-radius:1mm; border-left:1.2mm solid var(--cyan)}
  :root:has(a.pdf[href^="irevolution-cv"]) .case-title{font-size:10.2pt}
  :root:has(a.pdf[href^="irevolution-cv"]) .job{break-inside:avoid}
  :root:has(a.pdf[href^="irevolution-cv"]) .case{padding:2.2mm 3mm 1.8mm; margin-bottom:2.2mm}
  :root:has(a.pdf[href^="irevolution-cv"]) .case dl{gap:.5mm 4mm; margin-top:1.2mm}
  :root:has(a.pdf[href^="irevolution-cv"]) section{margin-top:2.4mm}
  :root:has(a.pdf[href^="irevolution-cv"]) .job{margin-bottom:2.1mm}
  :root:has(a.pdf[href^="irevolution-cv"]) .job li{line-height:1.3}
}
