@import"https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@400;500&family=IBM+Plex+Sans:ital,wght@0,400;0,500;0,600;1,400&display=swap";:root{--paper: #f5f3ee;--ink: #1c1b19;--ink-2: #4a4843;--ink-3: #85827a;--rule: #d9d5cb;--accent: #b4441c;--mono: "IBM Plex Mono", ui-monospace, monospace;--sans: "IBM Plex Sans", system-ui, sans-serif;color-scheme:light}*{margin:0;padding:0;box-sizing:border-box}html{scroll-behavior:smooth}@media (prefers-reduced-motion: reduce){html{scroll-behavior:auto}}.section{scroll-margin-top:64px}body{background:var(--paper);color:var(--ink);font:400 16px/1.6 var(--sans);-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:underline;text-decoration-color:color-mix(in srgb,var(--accent) 45%,transparent);text-underline-offset:3px}a:hover{color:var(--accent);text-decoration-color:currentColor}code{font:.875em var(--mono);color:var(--ink-2)}strong{font-weight:600}.page{max-width:880px;margin:0 auto;padding:0 24px 64px}.topbar{position:sticky;top:0;z-index:10;display:flex;align-items:center;gap:16px;margin:0 -24px 48px;padding:12px 24px;background:var(--paper);border-bottom:1px solid var(--rule)}.sections{display:flex;gap:4px;flex:1;min-width:0;overflow-x:auto;scrollbar-width:none}.sections::-webkit-scrollbar{display:none}.sections a{font:500 12px/1 var(--mono);letter-spacing:.04em;text-transform:uppercase;padding:8px 10px;color:var(--ink-3);text-decoration:none;white-space:nowrap;border-bottom:2px solid transparent}.sections a:hover{color:var(--ink)}.sections a.current{color:var(--ink);border-bottom-color:var(--accent)}.toolbar{display:flex;gap:4px;flex-shrink:0}.toolbar button{font:500 12px/1 var(--mono);letter-spacing:.06em;padding:7px 10px;border:1px solid var(--rule);background:none;color:var(--ink-3);cursor:pointer}.toolbar button:hover{color:var(--ink);border-color:var(--ink-3)}.toolbar button.active{color:var(--paper);background:var(--ink);border-color:var(--ink)}.toolbar button:last-child{margin-left:12px}.head{display:grid;grid-template-columns:112px minmax(0,1fr);gap:32px;align-items:start;margin-bottom:56px}.photo{width:112px;height:140px;object-fit:cover}.head h1{font-size:44px;line-height:1.05;font-weight:600;letter-spacing:-.02em}.role{font-size:19px;margin-top:10px}.location{color:var(--ink-3);margin-top:2px}.contacts{list-style:none;display:grid;grid-template-columns:repeat(2,max-content);gap:6px 28px;margin-top:18px;font:14px var(--mono)}.contacts a{display:inline-flex;align-items:center;gap:6px}.contacts svg{width:14px;height:14px;flex-shrink:0;fill:none;stroke:var(--accent);stroke-width:2;stroke-linecap:round;stroke-linejoin:round;color:var(--accent)}.section{padding:20px 0 36px;border-top:1px solid var(--ink)}.section-title:before{content:"";display:inline-block;width:8px;height:8px;background:var(--accent);margin-right:10px;vertical-align:1px}.section-title{font:500 12px/1.9 var(--mono);text-transform:uppercase;letter-spacing:.08em;color:var(--ink-2);margin-bottom:20px}.section-body{padding-left:200px}.section-body>*+*{margin-top:12px}.section-body p+p{margin-top:10px}.row{display:grid;grid-template-columns:168px 1fr;gap:32px;margin-left:-200px}.section-body>.row+.row{margin-top:32px}.row-aside{font:13px/1.9 var(--mono);color:var(--ink-3);text-align:right}.job-title{font-size:17px;font-weight:600;line-height:1.5}.job-company{font-weight:500;color:var(--accent)}.row-main>*+*{margin-top:10px}.stack{font:13px/1.6 var(--mono);color:var(--ink-3)}.list{list-style:none}.list li{position:relative;padding-left:18px}.list li+li{margin-top:6px}.list li:before{content:"–";position:absolute;left:0;color:var(--ink-3)}.list ul{list-style:none;margin-top:6px}.list ul li{padding-left:14px;position:relative}.list ul li:before{content:"·";position:absolute;left:2px;color:var(--ink-3)}.subproject{padding-left:16px;border-left:2px solid var(--accent)}.subproject h4{font-size:15px;font-weight:600}.subproject>*+*{margin-top:8px}.highlights{list-style:none;counter-reset:h}.highlights li{counter-increment:h;display:grid;grid-template-columns:32px 1fr}.highlights li+li{margin-top:12px}.highlights li:before{content:counter(h,decimal-leading-zero);font:500 13px/1.85 var(--mono);color:var(--accent)}.section-body>.project+.project{margin-top:24px}.project h3{font-size:16px;font-weight:600}.project p{margin-top:4px;color:var(--ink-2)}.project h3:has(.app-icon){display:flex;align-items:center;gap:12px}.app-icon{width:40px;height:40px;border-radius:9px;border:1px solid var(--rule)}.links{display:flex;gap:16px;font:13px var(--mono);color:var(--accent)}.skills>div{display:grid;grid-template-columns:140px 1fr;gap:16px}.skills>div+div{margin-top:8px}.skills dt{color:var(--ink-3)}.foot{margin-top:48px;padding-top:16px;border-top:1px solid var(--rule);font:12px var(--mono);color:var(--ink-3)}.activity{margin-top:24px;width:max-content;max-width:100%}.activity-scroll{overflow-x:auto;direction:rtl;width:max-content;max-width:100%}.activity-scroll>*{direction:ltr}.activity-months,.activity-grid{display:grid;grid-auto-flow:column;grid-auto-columns:10px;gap:2px;width:max-content}.activity-months span{font:10px var(--mono);color:var(--ink-3);white-space:nowrap;height:16px}.activity-week{display:grid;grid-template-rows:repeat(7,10px);gap:2px}.activity i{display:inline-block;width:10px;height:10px;border-radius:2px}.activity .l0{background:#ededed}.activity .l1{background:#acd5f2}.activity .l2{background:#7fa8c9}.activity .l3{background:#527ba0}.activity .l4{background:#254e77}.activity-foot{display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px;margin-top:10px;font:12px var(--mono);color:var(--ink-3)}.activity-legend{display:inline-flex;align-items:center;gap:3px}@media (max-width: 720px){.page{padding:0 16px 48px}.topbar{flex-direction:column-reverse;align-items:stretch;gap:8px;margin:0 -16px 28px;padding:10px 16px 0}.toolbar{justify-content:flex-end}.section{scroll-margin-top:104px}.head{grid-template-columns:80px minmax(0,1fr);gap:20px}.photo{width:80px;height:100px}.head h1{font-size:32px}.contacts{grid-template-columns:1fr}.section-body{padding-left:0}.row{grid-template-columns:1fr;margin-left:0}.row{gap:2px}.row-aside{text-align:left}.skills>div{grid-template-columns:1fr;gap:0}}@media print{@page{size:A4;margin:14mm 14mm 16mm}:root{--paper: #fff;--ink: #000;--ink-2: #333;--ink-3: #666;--rule: #ccc;--accent: #b4441c}body{font-size:10pt;line-height:1.45}.page{max-width:none;padding:0}.topbar,.foot{display:none}.head{margin-bottom:24px}.head h1{font-size:26pt}.section{padding:10px 0 18px}.section-title{margin-bottom:10px}.section-body{padding-left:130px}.row{grid-template-columns:110px 1fr;gap:20px;margin-left:-130px}.list li,.project,.highlights li,.activity{break-inside:avoid}.activity i{-webkit-print-color-adjust:exact;print-color-adjust:exact}.section-title,.job-title,.subproject h4{break-after:avoid}.section-body>.row+.row{margin-top:18px}a{text-decoration:none}}
