/* CV design: match the supplied PDF, with responsive browser typography. */
:root {
  --hole:#010101; --clean:#f6f6f3; --blur:#636363;
  --water:#3378ff; --amber:#ff5c39; --grass:#a9d615;
  --plum:#ff53ac; --pulse:#f42d2d; --rays:#febf11;
  --cv-name:clamp(56px,6.666667vw,96px);
  --cv-heading:clamp(24px,2.638889vw,38px);
  --cv-body:clamp(13px,1.111111vw,16px);
  --cv-meta:clamp(11px,.972222vw,14px);
  --cv-label:clamp(10px,.833333vw,12px);
  --cv-space:clamp(24px,2.777778vw,40px);
}
@font-face { font-family:Grotzec;src:url('../fonts/GrotzecCondensedTrial-Bold-BF6621e8d7966af.otf') format('opentype');font-weight:700;font-style:normal;font-display:swap; }
@font-face { font-family:Grotzec;src:url('../fonts/GrotzecCondensedTrial-Demibold-BF6621e8d752d0c.otf') format('opentype');font-weight:600;font-style:normal;font-display:swap; }
@font-face { font-family:Plain;src:url('../fonts/Plain-Regular.otf') format('opentype');font-weight:400;font-style:normal;font-display:swap; }
@font-face { font-family:Plain;src:url('../fonts/Plain-Bold.otf') format('opentype');font-weight:700;font-style:normal;font-display:swap; }
*,*::before,*::after { box-sizing:border-box; }
html { background:var(--clean);color:var(--hole);font-synthesis:none;-webkit-font-smoothing:antialiased; }
body { margin:0;font-family:Plain,Arial,sans-serif;font-size:var(--cv-body);font-weight:400;line-height:1.55;letter-spacing:.02em; }
.page { width:75%;max-width:1080px;margin:0 auto;padding:clamp(60px,7.5vw,108px) 0; }
.cv-header { position:relative; }
.cv-name { margin:0;font-family:Grotzec,'Arial Narrow',sans-serif;font-size:var(--cv-name);font-weight:700;letter-spacing:-.01em;line-height:.92;text-transform:uppercase; }
.cv-subtitle { margin-top:14px;font-family:Grotzec,'Arial Narrow',sans-serif;font-weight:600;font-size:var(--cv-heading);letter-spacing:-.01em;line-height:1.1;text-transform:uppercase;color:var(--blur); }
.cv-bio { max-width:70%;margin:26px 0 0;color:var(--blur);font-size:var(--cv-body);line-height:1.65; }
.cv-contacts { display:flex;align-items:center;flex-wrap:wrap;column-gap:clamp(10px,1.2vw,18px);row-gap:10px;margin-top:24px; }
.cv-contact { color:var(--blur);font-size:var(--cv-meta);letter-spacing:.12em;text-transform:uppercase;text-decoration:none;overflow-wrap:anywhere; }
.cv-contact:hover { color:var(--hole); }
.sep { color:var(--blur);font-size:10px;opacity:.4; }
.cv-download { position:absolute;top:0;right:0;font-size:var(--cv-meta);color:var(--blur);text-underline-offset:4px; }
.divider { height:2px;margin:var(--cv-space) 0 clamp(36px,3.75vw,54px);background:var(--hole); }
.cv-body { display:flex;flex-direction:column;gap:var(--cv-space); }
.left-col,.right-col { min-width:0; }
.right-col { display:flex;flex-direction:column;gap:var(--cv-space); }
.slabel { display:block;margin-bottom:28px;font-size:var(--cv-label);font-weight:700;letter-spacing:.2em;text-transform:uppercase;line-height:1.4; }
.c-water { color:var(--water); }.c-amber { color:var(--amber); }.c-grass { color:var(--grass); }.c-plum { color:var(--plum); }.c-pulse { color:var(--pulse); }.c-rays { color:var(--rays); }
.exp-entry { padding-bottom:var(--cv-space); }
.exp-entry + .exp-entry { border-top:1px solid rgb(1 1 1 / 10%);padding-top:var(--cv-space); }
.exp-entry:last-child { padding-bottom:0; }
.exp-role,.edu-degree { margin:0;font-family:Grotzec,'Arial Narrow',sans-serif;font-size:var(--cv-heading);font-weight:600;line-height:.95;letter-spacing:-.01em;text-transform:uppercase;color:var(--hole); }
.edu-degree { font-weight:700; }
.exp-meta { display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-top:8px; }
.exp-company,.exp-date,.edu-school,.por-org,.award-org { color:var(--blur);font-size:var(--cv-meta);letter-spacing:.12em;text-transform:uppercase;line-height:1.5; }
.exp-date { white-space:nowrap; }
.exp-bullets { display:flex;flex-direction:column;gap:6px;list-style:none;padding:0;margin:10px 0 0; }
.exp-bullets li { position:relative;padding-left:1.4em;color:var(--blur);line-height:1.55; }
.exp-bullets li::before { content:'–';position:absolute;left:0; }
.edu-entry + .edu-entry { border-top:1px solid rgb(1 1 1 / 10%);padding-top:26px;margin-top:26px; }
.edu-school { margin-top:8px; }
.edu-detail,.skill-items,.lang { color:var(--blur); }
.skills-list { display:flex;flex-direction:column;gap:24px; }
.skill-group-name { margin-bottom:4px;font-size:var(--cv-label);font-weight:700;letter-spacing:.2em;text-transform:uppercase; }
.por-list,.awards-list { display:flex;flex-direction:column;gap:24px; }
.por-title,.award-title { font-weight:700; }
.por-org,.award-org { margin-top:2px; }
.langs { display:flex;gap:32px;flex-wrap:wrap; }
a:focus-visible { outline:3px solid var(--water);outline-offset:5px; }
@media (max-width:768px) {
  .page { width:90%;padding:48px 0; }
  .cv-name { font-size:clamp(52px,10vw,76px); }
  .cv-subtitle { max-width:85%;font-size:clamp(22px,4.3vw,30px); }
  .cv-bio { max-width:100%;margin-top:24px; }
  .cv-download { position:static;display:inline-block;margin-top:20px;min-height:24px; }
  .cv-contacts { column-gap:12px;row-gap:10px; }
  .sep { display:none; }
  .cv-contacts .cv-contact { flex-basis:100%; }
  .exp-meta { flex-direction:column;gap:4px; }
  .exp-date { white-space:normal; }
  .slabel { margin-bottom:24px; }
}
@media print {
  .page { width:75%;max-width:none;padding:60px 0; }
  .cv-download { display:none; }
  .exp-entry,.edu-entry,.skills-list > div,.por-list > div,.awards-list > div { break-inside:avoid; }
  body { print-color-adjust:exact;-webkit-print-color-adjust:exact; }
}
