:root{color-scheme:light;--ink: #14161d;--ink-soft: #4a5164;--ink-faint: #7b8296;--rule: #dcdfe8;--accent: #6d13a0;--accent-soft: #f3ebfa;--paper: #ffffff}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;font-family:Public Sans,-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif;font-size:10.5pt;line-height:1.5;color:var(--ink);background:#eceef3;padding:32px 16px}.page{max-width:860px;margin:0 auto;background:var(--paper);padding:48px 52px 56px;box-shadow:0 8px 40px #090b1114}.toolbar{max-width:860px;margin:0 auto 16px;display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;font-size:12px}.toolbar-actions{display:flex;gap:8px;flex-wrap:wrap}.toolbar a,.toolbar button{display:inline-flex;align-items:center;gap:6px;font-family:inherit;font-size:12px;padding:8px 14px;border:1px solid #c9cddb;border-radius:999px;background:#fff;color:var(--ink);cursor:pointer;text-decoration:none;transition:background .15s ease}.toolbar a:hover,.toolbar button:hover{background:var(--accent-soft)}.toolbar a.primary{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:600}.toolbar a.primary:hover{background:#58107f}.cv-head{display:flex;align-items:center;gap:28px;padding-bottom:22px;border-bottom:3px solid var(--accent)}.portrait{width:110px;height:132px;object-fit:cover;object-position:top center;border-radius:8px;flex-shrink:0}.identity{min-width:0}h1{font-family:Rubik,var(--font-system, sans-serif);font-size:25pt;font-weight:600;letter-spacing:-.015em;line-height:1.1;margin:0 0 4px}.role{font-size:12pt;color:var(--accent);font-weight:600;margin:0 0 10px}.contact-list{list-style:none;display:flex;flex-wrap:wrap;gap:4px 14px;margin:0;padding:0;font-size:9.5pt;color:var(--ink-soft)}.contact-list li+li{position:relative;padding-left:14px}.contact-list li+li:before{content:"";position:absolute;left:0;top:50%;width:3px;height:3px;border-radius:50%;background:var(--ink-faint);transform:translateY(-50%)}.contact-list a{color:inherit;text-decoration:none}.contact-list a:hover{text-decoration:underline}.contact-list a.accent{color:var(--accent);font-weight:600}.summary{margin:20px 0 0;font-size:10.5pt;line-height:1.6;color:var(--ink-soft)}.cols{display:grid;grid-template-columns:1.75fr 1fr;gap:40px;margin-top:26px}.main section+section,.side section+section{margin-top:26px}h2.section-title{font-family:Rubik,sans-serif;font-size:9.5pt;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--accent);margin:0 0 14px;padding-bottom:5px;border-bottom:1px solid var(--rule)}.section-intro{margin:-6px 0 14px;font-size:9.5pt;color:var(--ink-faint)}.entry{position:relative;margin-bottom:16px;padding-left:16px;page-break-inside:avoid;break-inside:avoid}.entry:before{content:"";position:absolute;left:0;top:6px;bottom:2px;width:2px;border-radius:2px;background:var(--rule)}.entry:hover:before{background:var(--accent)}.entry-date{display:block;font-size:8.5pt;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-faint)}.entry-title{font-family:Rubik,sans-serif;font-size:11.5pt;font-weight:600;margin:2px 0 0}.entry-org{font-size:9.5pt;color:var(--ink-soft);margin:1px 0 5px}.bullets{margin:4px 0 0;padding-left:15px}.bullets li{font-size:9.5pt;line-height:1.5;margin-bottom:3px;color:var(--ink-soft)}.bullets li::marker{color:var(--accent)}.project-summary{font-size:9.5pt;line-height:1.5;margin:0 0 4px}.stack-line{margin:6px 0 0;font-size:8.5pt;letter-spacing:.02em;color:var(--ink-faint)}.project-links{margin:4px 0 0;display:flex;flex-wrap:wrap;gap:4px 14px;font-size:8.5pt}.project-links a{color:var(--accent);text-decoration:none;font-weight:600}.project-links a:hover{text-decoration:underline}.skill-group+.skill-group{margin-top:14px}.skill-group-title{font-size:9pt;font-weight:700;margin:0 0 6px}.skill-list{list-style:none;margin:0;padding:0}.skill{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:2px 0;font-size:9pt;color:var(--ink-soft)}.skill-name{min-width:0}.lang-level{display:block;font-size:8pt;color:var(--ink-faint)}.meter{display:inline-flex;gap:3px;flex-shrink:0}.dot{width:7px;height:7px;border-radius:50%;background:var(--rule)}.dot.on{background:var(--accent)}.legend{margin:14px 0 0;font-size:7.5pt;line-height:1.5;color:var(--ink-faint)}.facts{margin:0;display:grid;grid-template-columns:auto 1fr;gap:3px 10px;font-size:9pt}.facts dt{color:var(--ink-faint)}.facts dd{margin:0;color:var(--ink-soft)}.docs-note p{margin:0;font-size:9pt;color:var(--ink-soft)}.docs-note a{color:var(--accent);font-weight:600;text-decoration:none}.docs-note a:hover{text-decoration:underline}@media(max-width:46em){body{padding:16px 10px}.page{padding:28px 22px 32px}.cv-head{flex-direction:column;align-items:flex-start;gap:16px}.cols{grid-template-columns:1fr;gap:26px}h1{font-size:21pt}}@page{size:A4;margin:12mm 13mm}@media print{:root{--rule: #d5d8e0}body{background:#fff;padding:0;font-size:9.5pt;-webkit-print-color-adjust:exact;print-color-adjust:exact}.toolbar{display:none}.page{max-width:none;margin:0;padding:0;box-shadow:none}.cols{grid-template-columns:1.75fr 1fr;gap:26px}h1{font-size:21pt}.portrait{width:92px;height:110px}.skill-group,.facts,.docs-note{break-inside:avoid}h2.section-title{break-after:avoid}a{color:inherit;text-decoration:none}.project-links a,.docs-note a,.contact-list a.accent{color:var(--accent)}}
